diff options
author | 2023-02-19 17:43:13 -0800 | |
---|---|---|
committer | 2023-06-14 11:03:41 +0200 | |
commit | b0205e03d8e4794850e55e8c4bf83a40dd41aa9d (patch) | |
tree | cb2fd958de24dd74896373f6c0ac5084c0d7595a /runtime/src/overlay/nested.rs | |
parent | 4de6ee6fa18be5b8fa511bffe93bbec2c5811bfc (diff) | |
download | iced-b0205e03d8e4794850e55e8c4bf83a40dd41aa9d.tar.gz iced-b0205e03d8e4794850e55e8c4bf83a40dd41aa9d.tar.bz2 iced-b0205e03d8e4794850e55e8c4bf83a40dd41aa9d.zip |
Use nested for lazy widgets
Diffstat (limited to '')
-rw-r--r-- | runtime/src/overlay/nested.rs (renamed from runtime/src/user_interface/overlay.rs) | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/runtime/src/user_interface/overlay.rs b/runtime/src/overlay/nested.rs index 1211d55b..5c5fafde 100644 --- a/runtime/src/user_interface/overlay.rs +++ b/runtime/src/overlay/nested.rs @@ -21,6 +21,12 @@ where Self { overlay: element } } + /// Returns the position of the [`Nested`] overlay. + pub fn position(&self) -> Point { + self.overlay.position() + } + + /// Returns the layout [`Node`] of the [`Nested`] overlay. pub fn layout( &mut self, renderer: &Renderer, @@ -36,7 +42,7 @@ where where Renderer: renderer::Renderer, { - let translation = position - Point::ORIGIN; + let translation = position - element.position(); let node = element.layout(renderer, bounds, translation); @@ -58,6 +64,7 @@ where recurse(&mut self.overlay, renderer, bounds, position) } + /// Draws the [`Nested`] overlay using the associated `Renderer`. pub fn draw( &mut self, renderer: &mut Renderer, @@ -127,6 +134,7 @@ where recurse(&mut self.overlay, layout, renderer, theme, style, cursor); } + /// Applies a [`widget::Operation`] to the [`Nested`] overlay. pub fn operate( &mut self, layout: Layout<'_>, @@ -157,6 +165,7 @@ where recurse(&mut self.overlay, layout, renderer, operation) } + /// Processes a runtime [`Event`]. pub fn on_event( &mut self, event: Event, @@ -247,6 +256,7 @@ where status } + /// Returns the current [`mouse::Interaction`] of the [`Nested`] overlay. pub fn mouse_interaction( &mut self, layout: Layout<'_>, @@ -298,6 +308,7 @@ where .unwrap_or_default() } + /// Returns true if the cursor is over the [`Nested`] overlay. pub fn is_over( &mut self, layout: Layout<'_>, |