diff options
Diffstat (limited to 'pure/src/widget')
-rw-r--r-- | pure/src/widget/button.rs | 7 | ||||
-rw-r--r-- | pure/src/widget/checkbox.rs | 5 | ||||
-rw-r--r-- | pure/src/widget/column.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/container.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/element.rs | 163 | ||||
-rw-r--r-- | pure/src/widget/pane_grid.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/progress_bar.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/radio.rs | 5 | ||||
-rw-r--r-- | pure/src/widget/row.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/rule.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/scrollable.rs | 2 | ||||
-rw-r--r-- | pure/src/widget/space.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/text.rs | 3 | ||||
-rw-r--r-- | pure/src/widget/text_input.rs | 4 | ||||
-rw-r--r-- | pure/src/widget/tree.rs | 2 |
15 files changed, 30 insertions, 182 deletions
diff --git a/pure/src/widget/button.rs b/pure/src/widget/button.rs index 4380b608..f99d3018 100644 --- a/pure/src/widget/button.rs +++ b/pure/src/widget/button.rs @@ -1,6 +1,6 @@ use crate::overlay; use crate::widget::tree::{self, Tree}; -use crate::widget::{Element, Widget}; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout; @@ -10,9 +10,10 @@ use iced_native::widget::button; use iced_native::{ Clipboard, Layout, Length, Padding, Point, Rectangle, Shell, }; -use iced_style::button::StyleSheet; -pub use button::State; +pub use iced_style::button::{Style, StyleSheet}; + +use button::State; pub struct Button<'a, Message, Renderer> { content: Element<'a, Message, Renderer>, diff --git a/pure/src/widget/checkbox.rs b/pure/src/widget/checkbox.rs index 3448e616..971980e3 100644 --- a/pure/src/widget/checkbox.rs +++ b/pure/src/widget/checkbox.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; @@ -7,7 +8,7 @@ use iced_native::renderer; use iced_native::text; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; -pub use iced_native::widget::Checkbox; +pub use iced_native::widget::checkbox::{Checkbox, Style, StyleSheet}; impl<'a, Message, Renderer> Widget<Message, Renderer> for Checkbox<'a, Message, Renderer> diff --git a/pure/src/widget/column.rs b/pure/src/widget/column.rs index 37ff96c5..6b447270 100644 --- a/pure/src/widget/column.rs +++ b/pure/src/widget/column.rs @@ -1,6 +1,7 @@ use crate::flex; use crate::overlay; -use crate::widget::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; diff --git a/pure/src/widget/container.rs b/pure/src/widget/container.rs index ebf69cab..91db1f3f 100644 --- a/pure/src/widget/container.rs +++ b/pure/src/widget/container.rs @@ -1,5 +1,6 @@ //! Decorate content and apply alignment. -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::alignment; use iced_native::event::{self, Event}; diff --git a/pure/src/widget/element.rs b/pure/src/widget/element.rs deleted file mode 100644 index 3d5697fe..00000000 --- a/pure/src/widget/element.rs +++ /dev/null @@ -1,163 +0,0 @@ -use crate::widget::tree::{self, Tree}; -use crate::widget::Widget; - -use iced_native::event::{self, Event}; -use iced_native::layout::{self, Layout}; -use iced_native::mouse; -use iced_native::renderer; -use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; - -pub struct Element<'a, Message, Renderer> { - widget: Box<dyn Widget<Message, Renderer> + 'a>, -} - -impl<'a, Message, Renderer> Element<'a, Message, Renderer> { - pub fn new(widget: impl Widget<Message, Renderer> + 'a) -> Self { - Self { - widget: Box::new(widget), - } - } - - pub fn as_widget(&self) -> &dyn Widget<Message, Renderer> { - self.widget.as_ref() - } - - pub fn as_widget_mut(&mut self) -> &mut dyn Widget<Message, Renderer> { - self.widget.as_mut() - } - - pub fn map<B>( - self, - f: impl Fn(Message) -> B + 'a, - ) -> Element<'a, B, Renderer> - where - Message: 'a, - Renderer: iced_native::Renderer + 'a, - B: 'a, - { - Element::new(Map::new(self.widget, f)) - } -} - -struct Map<'a, A, B, Renderer> { - widget: Box<dyn Widget<A, Renderer> + 'a>, - mapper: Box<dyn Fn(A) -> B + 'a>, -} - -impl<'a, A, B, Renderer> Map<'a, A, B, Renderer> { - pub fn new<F>( - widget: Box<dyn Widget<A, Renderer> + 'a>, - mapper: F, - ) -> Map<'a, A, B, Renderer> - where - F: 'a + Fn(A) -> B, - { - Map { - widget, - mapper: Box::new(mapper), - } - } -} - -impl<'a, A, B, Renderer> Widget<B, Renderer> for Map<'a, A, B, Renderer> -where - Renderer: iced_native::Renderer + 'a, - A: 'a, - B: 'a, -{ - fn tag(&self) -> tree::Tag { - self.widget.tag() - } - - fn state(&self) -> tree::State { - self.widget.state() - } - - fn children(&self) -> Vec<Tree> { - self.widget.children() - } - - fn diff(&self, tree: &mut Tree) { - self.widget.diff(tree) - } - - fn width(&self) -> Length { - self.widget.width() - } - - fn height(&self) -> Length { - self.widget.height() - } - - fn layout( - &self, - renderer: &Renderer, - limits: &layout::Limits, - ) -> layout::Node { - self.widget.layout(renderer, limits) - } - - fn on_event( - &mut self, - tree: &mut Tree, - event: Event, - layout: Layout<'_>, - cursor_position: Point, - renderer: &Renderer, - clipboard: &mut dyn Clipboard, - shell: &mut Shell<'_, B>, - ) -> event::Status { - let mut local_messages = Vec::new(); - let mut local_shell = Shell::new(&mut local_messages); - - let status = self.widget.on_event( - tree, - event, - layout, - cursor_position, - renderer, - clipboard, - &mut local_shell, - ); - - shell.merge(local_shell, &self.mapper); - - status - } - - fn draw( - &self, - tree: &Tree, - renderer: &mut Renderer, - style: &renderer::Style, - layout: Layout<'_>, - cursor_position: Point, - viewport: &Rectangle, - ) { - self.widget.draw( - tree, - renderer, - style, - layout, - cursor_position, - viewport, - ) - } - - fn mouse_interaction( - &self, - tree: &Tree, - layout: Layout<'_>, - cursor_position: Point, - viewport: &Rectangle, - renderer: &Renderer, - ) -> mouse::Interaction { - self.widget.mouse_interaction( - tree, - layout, - cursor_position, - viewport, - renderer, - ) - } -} diff --git a/pure/src/widget/pane_grid.rs b/pure/src/widget/pane_grid.rs index 717c9ceb..34a56bcc 100644 --- a/pure/src/widget/pane_grid.rs +++ b/pure/src/widget/pane_grid.rs @@ -54,7 +54,8 @@ pub use iced_style::pane_grid::{Line, StyleSheet}; /// ## Example /// /// ``` -/// # use iced_pure::widget::{pane_grid, text}; +/// # use iced_pure::widget::pane_grid; +/// # use iced_pure::text; /// # /// # type PaneGrid<'a, Message> = /// # iced_pure::widget::PaneGrid<'a, Message, iced_native::renderer::Null>; diff --git a/pure/src/widget/progress_bar.rs b/pure/src/widget/progress_bar.rs index 9b996f02..3f4ffd55 100644 --- a/pure/src/widget/progress_bar.rs +++ b/pure/src/widget/progress_bar.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; diff --git a/pure/src/widget/radio.rs b/pure/src/widget/radio.rs index ce3ede84..c20f8f3e 100644 --- a/pure/src/widget/radio.rs +++ b/pure/src/widget/radio.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; @@ -7,7 +8,7 @@ use iced_native::renderer; use iced_native::text; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; -pub use iced_native::widget::Radio; +pub use iced_native::widget::radio::{Radio, Style, StyleSheet}; impl<'a, Message, Renderer> Widget<Message, Renderer> for Radio<'a, Message, Renderer> diff --git a/pure/src/widget/row.rs b/pure/src/widget/row.rs index fa0efa68..d7f90540 100644 --- a/pure/src/widget/row.rs +++ b/pure/src/widget/row.rs @@ -1,6 +1,7 @@ use crate::flex; use crate::overlay; -use crate::widget::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; diff --git a/pure/src/widget/rule.rs b/pure/src/widget/rule.rs index 375bed9e..40b1fc90 100644 --- a/pure/src/widget/rule.rs +++ b/pure/src/widget/rule.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; diff --git a/pure/src/widget/scrollable.rs b/pure/src/widget/scrollable.rs index 1548fa9d..f9a51200 100644 --- a/pure/src/widget/scrollable.rs +++ b/pure/src/widget/scrollable.rs @@ -9,7 +9,7 @@ use iced_native::renderer; use iced_native::widget::scrollable; use iced_native::{Clipboard, Length, Point, Rectangle, Shell, Vector}; -pub use iced_style::scrollable::StyleSheet; +pub use iced_style::scrollable::{Scrollbar, Scroller, StyleSheet}; /// A widget that can vertically display an infinite amount of content with a /// scrollbar. diff --git a/pure/src/widget/space.rs b/pure/src/widget/space.rs index c04d962a..b408153b 100644 --- a/pure/src/widget/space.rs +++ b/pure/src/widget/space.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; diff --git a/pure/src/widget/text.rs b/pure/src/widget/text.rs index bfcbaa4b..edc35cd1 100644 --- a/pure/src/widget/text.rs +++ b/pure/src/widget/text.rs @@ -1,4 +1,5 @@ -use crate::{Element, Tree, Widget}; +use crate::widget::Tree; +use crate::{Element, Widget}; use iced_native::layout::{self, Layout}; use iced_native::renderer; diff --git a/pure/src/widget/text_input.rs b/pure/src/widget/text_input.rs index dec11164..d6041d7f 100644 --- a/pure/src/widget/text_input.rs +++ b/pure/src/widget/text_input.rs @@ -1,5 +1,5 @@ use crate::widget::tree::{self, Tree}; -use crate::widget::{Element, Widget}; +use crate::{Element, Widget}; use iced_native::event::{self, Event}; use iced_native::layout::{self, Layout}; @@ -9,7 +9,7 @@ use iced_native::text; use iced_native::widget::text_input; use iced_native::{Clipboard, Length, Padding, Point, Rectangle, Shell}; -pub use iced_style::text_input::StyleSheet; +pub use iced_style::text_input::{Style, StyleSheet}; /// A field that can be filled with text. /// diff --git a/pure/src/widget/tree.rs b/pure/src/widget/tree.rs index 3fcf0922..bd7c259c 100644 --- a/pure/src/widget/tree.rs +++ b/pure/src/widget/tree.rs @@ -1,4 +1,4 @@ -use crate::widget::Element; +use crate::Element; use std::any::{self, Any}; |