From 18fb74f20092b2703a90afdb01f39754445998da Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 9 Nov 2022 04:05:31 +0100 Subject: Introduce `Custom` variants for every style in the built-in `Theme` --- native/src/overlay/menu.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'native/src/overlay') diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs index 08135872..3b55eba1 100644 --- a/native/src/overlay/menu.rs +++ b/native/src/overlay/menu.rs @@ -178,7 +178,7 @@ where font, text_size, padding, - style, + style: style.clone(), })); state.tree.diff(&container as &dyn Widget<_, _>); @@ -288,7 +288,7 @@ where layout: Layout<'_>, cursor_position: Point, ) { - let appearance = theme.appearance(self.style); + let appearance = theme.appearance(&self.style); let bounds = layout.bounds(); renderer.fill_quad( @@ -460,7 +460,7 @@ where _cursor_position: Point, viewport: &Rectangle, ) { - let appearance = theme.appearance(self.style); + let appearance = theme.appearance(&self.style); let bounds = layout.bounds(); let text_size = -- cgit From 1283f2153cf300272a4cb3464f8166b0ec9c83de Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 9 Nov 2022 23:50:23 +0100 Subject: Implement `Overlay::operate` for `overlay::element::Map` --- native/src/overlay/element.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'native/src/overlay') diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs index b919c221..9500df27 100644 --- a/native/src/overlay/element.rs +++ b/native/src/overlay/element.rs @@ -141,6 +141,49 @@ where self.content.layout(renderer, bounds, position) } + fn operate( + &self, + layout: Layout<'_>, + operation: &mut dyn widget::Operation, + ) { + struct MapOperation<'a, B> { + operation: &'a mut dyn widget::Operation, + } + + impl<'a, T, B> widget::Operation for MapOperation<'a, B> { + fn container( + &mut self, + id: Option<&widget::Id>, + operate_on_children: &mut dyn FnMut( + &mut dyn widget::Operation, + ), + ) { + self.operation.container(id, &mut |operation| { + operate_on_children(&mut MapOperation { operation }); + }); + } + + fn focusable( + &mut self, + state: &mut dyn widget::operation::Focusable, + id: Option<&widget::Id>, + ) { + self.operation.focusable(state, id); + } + + fn scrollable( + &mut self, + state: &mut dyn widget::operation::Scrollable, + id: Option<&widget::Id>, + ) { + self.operation.scrollable(state, id); + } + } + + self.content + .operate(layout, &mut MapOperation { operation }); + } + fn on_event( &mut self, event: Event, -- cgit From 1480ab20306e463b69b2229dcd5e81d4c66b2a64 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 10 Nov 2022 00:10:53 +0100 Subject: Fix broken documentation links --- native/src/overlay/element.rs | 2 +- native/src/overlay/menu.rs | 14 +------------- 2 files changed, 2 insertions(+), 14 deletions(-) (limited to 'native/src/overlay') diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs index 9500df27..2c558086 100644 --- a/native/src/overlay/element.rs +++ b/native/src/overlay/element.rs @@ -104,7 +104,7 @@ where .draw(renderer, theme, style, layout, cursor_position) } - /// Applies an [`Operation`] to the [`Element`]. + /// Applies a [`widget::Operation`] to the [`Element`]. pub fn operate( &self, layout: Layout<'_>, diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs index 3b55eba1..2e4f70b5 100644 --- a/native/src/overlay/menu.rs +++ b/native/src/overlay/menu.rs @@ -9,7 +9,7 @@ use crate::text::{self, Text}; use crate::touch; use crate::widget::container::{self, Container}; use crate::widget::scrollable::{self, Scrollable}; -use crate::widget::tree::{self, Tree}; +use crate::widget::Tree; use crate::{ Clipboard, Color, Element, Layout, Length, Padding, Point, Rectangle, Shell, Size, Vector, Widget, @@ -199,18 +199,6 @@ where Renderer: text::Renderer, Renderer::Theme: StyleSheet + container::StyleSheet, { - fn tag(&self) -> tree::Tag { - self.container.tag() - } - - fn state(&self) -> tree::State { - self.container.state() - } - - fn children(&self) -> Vec { - self.container.children() - } - fn layout( &self, renderer: &Renderer, -- cgit From c4bca3f2af7ae9b2c8dfc3af48ab73dad852ed34 Mon Sep 17 00:00:00 2001 From: Cory Forsstrom Date: Fri, 11 Nov 2022 08:43:36 -0800 Subject: Add text input operations --- native/src/overlay/element.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'native/src/overlay') diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs index 2c558086..09eee86d 100644 --- a/native/src/overlay/element.rs +++ b/native/src/overlay/element.rs @@ -178,6 +178,14 @@ where ) { self.operation.scrollable(state, id); } + + fn text_input( + &mut self, + state: &mut dyn widget::operation::TextInput, + id: Option<&widget::Id>, + ) { + self.operation.text_input(state, id) + } } self.content -- cgit From 9a601c095420d3eba23df470becc112b928f9f62 Mon Sep 17 00:00:00 2001 From: Cory Forsstrom Date: Fri, 18 Nov 2022 12:09:18 -0800 Subject: Get widget operations working w/ overlay --- native/src/overlay/element.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'native/src/overlay') diff --git a/native/src/overlay/element.rs b/native/src/overlay/element.rs index 09eee86d..4f5ef32a 100644 --- a/native/src/overlay/element.rs +++ b/native/src/overlay/element.rs @@ -106,7 +106,7 @@ where /// Applies a [`widget::Operation`] to the [`Element`]. pub fn operate( - &self, + &mut self, layout: Layout<'_>, operation: &mut dyn widget::Operation, ) { @@ -142,7 +142,7 @@ where } fn operate( - &self, + &mut self, layout: Layout<'_>, operation: &mut dyn widget::Operation, ) { -- cgit