summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-06-22 01:04:07 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-06-29 07:18:24 +0200
commit2128472c2a8afcb59927712497c4f613612e9dcc (patch)
tree6a5446ce13d3e98f8f87b0527a5c53016dc4470e
parent0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2 (diff)
downloadiced-2128472c2a8afcb59927712497c4f613612e9dcc.tar.gz
iced-2128472c2a8afcb59927712497c4f613612e9dcc.tar.bz2
iced-2128472c2a8afcb59927712497c4f613612e9dcc.zip
Remove `layout` method from `core::Renderer` trait
-rw-r--r--core/src/renderer.rs15
-rw-r--r--graphics/src/renderer.rs13
-rw-r--r--runtime/src/user_interface.rs13
3 files changed, 9 insertions, 32 deletions
diff --git a/core/src/renderer.rs b/core/src/renderer.rs
index 7c73d2e4..1b327e56 100644
--- a/core/src/renderer.rs
+++ b/core/src/renderer.rs
@@ -5,26 +5,13 @@ mod null;
#[cfg(debug_assertions)]
pub use null::Null;
-use crate::layout;
-use crate::{Background, BorderRadius, Color, Element, Rectangle, Vector};
+use crate::{Background, BorderRadius, Color, Rectangle, Vector};
/// A component that can be used by widgets to draw themselves on a screen.
pub trait Renderer: Sized {
/// The supported theme of the [`Renderer`].
type Theme;
- /// Lays out the elements of a user interface.
- ///
- /// You should override this if you need to perform any operations before or
- /// after layouting. For instance, trimming the measurements cache.
- fn layout<Message>(
- &mut self,
- element: &Element<'_, Message, Self>,
- limits: &layout::Limits,
- ) -> layout::Node {
- element.as_widget().layout(self, limits)
- }
-
/// Draws the primitives recorded in the given closure in a new layer.
///
/// The layer will clip its contents to the provided `bounds`.
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs
index 9acfc2b7..459faf40 100644
--- a/graphics/src/renderer.rs
+++ b/graphics/src/renderer.rs
@@ -3,13 +3,10 @@ use crate::backend::{self, Backend};
use crate::Primitive;
use iced_core::image;
-use iced_core::layout;
use iced_core::renderer;
use iced_core::svg;
use iced_core::text::{self, Text};
-use iced_core::{
- Background, Color, Element, Font, Point, Rectangle, Size, Vector,
-};
+use iced_core::{Background, Color, Font, Point, Rectangle, Size, Vector};
use std::borrow::Cow;
use std::marker::PhantomData;
@@ -84,14 +81,6 @@ impl<B: Backend, T> Renderer<B, T> {
impl<B: Backend, T> iced_core::Renderer for Renderer<B, T> {
type Theme = T;
- fn layout<Message>(
- &mut self,
- element: &Element<'_, Message, Self>,
- limits: &layout::Limits,
- ) -> layout::Node {
- element.as_widget().layout(self, limits)
- }
-
fn with_layer(&mut self, bounds: Rectangle, f: impl FnOnce(&mut Self)) {
let current = self.start_layer();
diff --git a/runtime/src/user_interface.rs b/runtime/src/user_interface.rs
index 619423fd..34b2ada0 100644
--- a/runtime/src/user_interface.rs
+++ b/runtime/src/user_interface.rs
@@ -95,8 +95,9 @@ where
let Cache { mut state } = cache;
state.diff(root.as_widget());
- let base =
- renderer.layout(&root, &layout::Limits::new(Size::ZERO, bounds));
+ let base = root
+ .as_widget()
+ .layout(renderer, &layout::Limits::new(Size::ZERO, bounds));
UserInterface {
root,
@@ -226,8 +227,8 @@ where
if shell.is_layout_invalid() {
let _ = ManuallyDrop::into_inner(manual_overlay);
- self.base = renderer.layout(
- &self.root,
+ self.base = self.root.as_widget().layout(
+ renderer,
&layout::Limits::new(Size::ZERO, self.bounds),
);
@@ -322,8 +323,8 @@ where
}
shell.revalidate_layout(|| {
- self.base = renderer.layout(
- &self.root,
+ self.base = self.root.as_widget().layout(
+ renderer,
&layout::Limits::new(Size::ZERO, self.bounds),
);