summaryrefslogtreecommitdiffstats
path: root/pure/src/widget
diff options
context:
space:
mode:
Diffstat (limited to 'pure/src/widget')
-rw-r--r--pure/src/widget/button.rs7
-rw-r--r--pure/src/widget/checkbox.rs5
-rw-r--r--pure/src/widget/column.rs3
-rw-r--r--pure/src/widget/container.rs3
-rw-r--r--pure/src/widget/element.rs163
-rw-r--r--pure/src/widget/pane_grid.rs3
-rw-r--r--pure/src/widget/progress_bar.rs3
-rw-r--r--pure/src/widget/radio.rs5
-rw-r--r--pure/src/widget/row.rs3
-rw-r--r--pure/src/widget/rule.rs3
-rw-r--r--pure/src/widget/scrollable.rs2
-rw-r--r--pure/src/widget/space.rs3
-rw-r--r--pure/src/widget/text.rs3
-rw-r--r--pure/src/widget/text_input.rs4
-rw-r--r--pure/src/widget/tree.rs2
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};