diff options
Diffstat (limited to '')
| -rw-r--r-- | native/src/element.rs | 27 | ||||
| -rw-r--r-- | native/src/lib.rs | 12 | ||||
| -rw-r--r-- | native/src/style.rs | 4 | ||||
| -rw-r--r-- | native/src/widget.rs | 2 | ||||
| -rw-r--r-- | native/src/widget/button.rs | 26 | ||||
| -rw-r--r-- | native/src/widget/checkbox.rs | 4 | ||||
| -rw-r--r-- | native/src/widget/column.rs | 2 | ||||
| -rw-r--r-- | native/src/widget/image.rs | 4 | ||||
| -rw-r--r-- | native/src/widget/radio.rs | 4 | ||||
| -rw-r--r-- | native/src/widget/row.rs | 2 | ||||
| -rw-r--r-- | native/src/widget/slider.rs | 2 | ||||
| -rw-r--r-- | native/src/widget/text.rs | 2 | 
12 files changed, 51 insertions, 40 deletions
| diff --git a/native/src/element.rs b/native/src/element.rs index 417e3463..cf96b7ea 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -41,6 +41,10 @@ where          }      } +    pub fn node(&self, renderer: &Renderer) -> Node { +        self.widget.node(renderer) +    } +      pub fn draw(          &self,          renderer: &mut Renderer, @@ -97,22 +101,22 @@ where      ///      /// ```      /// # mod counter { -    /// #     use iced_native::{button, Button}; +    /// #     use iced_native::{text, Text};      /// #      /// #     #[derive(Debug, Clone, Copy)]      /// #     pub enum Message {} -    /// #     pub struct Counter(button::State); +    /// #     pub struct Counter;      /// #      /// #     impl Counter { -    /// #         pub fn view(&mut self) -> Button<Message> { -    /// #             Button::new(&mut self.0, "_") +    /// #         pub fn view(&mut self) -> Text { +    /// #             Text::new("")      /// #         }      /// #     }      /// # }      /// #      /// # mod iced_wgpu {      /// #     use iced_native::{ -    /// #         button, row, Button, Node, Point, Rectangle, Style, Layout, Row +    /// #         text, row, Text, Node, Point, Rectangle, Style, Layout, Row      /// #     };      /// #     pub struct Renderer;      /// # @@ -127,16 +131,15 @@ where      /// #         ) {}      /// #     }      /// # -    /// #     impl button::Renderer for Renderer { -    /// #         fn node<Message>(&self, _button: &Button<'_, Message>) -> Node { +    /// #     impl text::Renderer for Renderer { +    /// #         fn node(&self, _text: &Text) -> Node {      /// #             Node::new(Style::default())      /// #         }      /// # -    /// #         fn draw<Message>( +    /// #         fn draw(      /// #             &mut self, -    /// #             _button: &Button<'_, Message>, +    /// #             _text: &Text,      /// #             _layout: Layout<'_>, -    /// #             _cursor_position: Point,      /// #         ) {}      /// #     }      /// # } @@ -289,7 +292,7 @@ where      A: Copy,      Renderer: crate::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          self.widget.node(renderer)      } @@ -359,7 +362,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer>  where      Renderer: crate::Renderer + renderer::Debugger,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          self.element.widget.node(renderer)      } diff --git a/native/src/lib.rs b/native/src/lib.rs index 6067f49d..18ce3a37 100644 --- a/native/src/lib.rs +++ b/native/src/lib.rs @@ -89,14 +89,14 @@  //! #     impl button::Renderer for Renderer {  //! #         fn node<Message>(  //! #             &self, -//! #             _button: &Button<'_, Message> +//! #             _button: &Button<'_, Message, Self>  //! #         ) -> Node {  //! #             Node::new(Style::default())  //! #         }  //! #  //! #         fn draw<Message>(  //! #             &mut self, -//! #             _button: &Button<'_, Message>, +//! #             _button: &Button<'_, Message, Self>,  //! #             _layout: Layout<'_>,  //! #             _cursor_position: Point,  //! #         ) {} @@ -125,7 +125,7 @@  //!             .push(  //!                 // The increment button. We tell it to produce an  //!                 // `IncrementPressed` message when pressed -//!                 Button::new(&mut self.increment_button, "+") +//!                 Button::new(&mut self.increment_button, Text::new("+"))  //!                     .on_press(Message::IncrementPressed),  //!             )  //!             .push( @@ -135,7 +135,7 @@  //!             .push(  //!                 // The decrement button. We tell it to produce a  //!                 // `DecrementPressed` message when pressed -//!                 Button::new(&mut self.decrement_button, "-") +//!                 Button::new(&mut self.decrement_button, Text::new("-"))  //!                     .on_press(Message::DecrementPressed),  //!             )  //!     } @@ -212,7 +212,9 @@ mod user_interface;  pub(crate) use iced_core::Vector; -pub use iced_core::{Align, Color, Justify, Length, Point, Rectangle}; +pub use iced_core::{ +    Align, Background, Color, Justify, Length, Point, Rectangle, +};  #[doc(no_inline)]  pub use stretch::{geometry::Size, number::Number}; diff --git a/native/src/style.rs b/native/src/style.rs index b1c49fd4..70a7ff74 100644 --- a/native/src/style.rs +++ b/native/src/style.rs @@ -74,12 +74,12 @@ impl Style {          self      } -    pub(crate) fn align_items(mut self, align: Align) -> Self { +    pub fn align_items(mut self, align: Align) -> Self {          self.0.align_items = into_align_items(align);          self      } -    pub(crate) fn justify_content(mut self, justify: Justify) -> Self { +    pub fn justify_content(mut self, justify: Justify) -> Self {          self.0.justify_content = into_justify_content(justify);          self      } diff --git a/native/src/widget.rs b/native/src/widget.rs index eff098a6..b7181c1b 100644 --- a/native/src/widget.rs +++ b/native/src/widget.rs @@ -67,7 +67,7 @@ where      /// [`Node`]: ../struct.Node.html      /// [`Widget`]: trait.Widget.html      /// [`Layout`]: ../struct.Layout.html -    fn node(&self, renderer: &mut Renderer) -> Node; +    fn node(&self, renderer: &Renderer) -> Node;      /// Draws the [`Widget`] using the associated `Renderer`.      /// diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs index 5ae4e045..1f881660 100644 --- a/native/src/widget/button.rs +++ b/native/src/widget/button.rs @@ -10,14 +10,18 @@ use crate::input::{mouse, ButtonState};  use crate::{Element, Event, Hasher, Layout, Node, Point, Widget};  use std::hash::Hash; -pub use iced_core::button::*; +pub use iced_core::button::State; -impl<'a, Message, Renderer> Widget<Message, Renderer> for Button<'a, Message> +pub type Button<'a, Message, Renderer> = +    iced_core::Button<'a, Message, Element<'a, Message, Renderer>>; + +impl<'a, Message, Renderer> Widget<Message, Renderer> +    for Button<'a, Message, Renderer>  where      Renderer: self::Renderer,      Message: Copy + std::fmt::Debug,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } @@ -68,9 +72,9 @@ where      }      fn hash_layout(&self, state: &mut Hasher) { -        self.label.hash(state);          self.width.hash(state);          self.align_self.hash(state); +        self.content.hash_layout(state);      }  } @@ -81,31 +85,33 @@ where  ///  /// [`Button`]: struct.Button.html  /// [renderer]: ../../renderer/index.html -pub trait Renderer: crate::Renderer { +pub trait Renderer: crate::Renderer + Sized {      /// Creates a [`Node`] for the provided [`Button`].      ///      /// [`Node`]: ../../struct.Node.html      /// [`Button`]: struct.Button.html -    fn node<Message>(&self, button: &Button<'_, Message>) -> Node; +    fn node<Message>(&self, button: &Button<'_, Message, Self>) -> Node;      /// Draws a [`Button`].      ///      /// [`Button`]: struct.Button.html      fn draw<Message>(          &mut self, -        button: &Button<'_, Message>, +        button: &Button<'_, Message, Self>,          layout: Layout<'_>,          cursor_position: Point,      ) -> Self::Primitive;  } -impl<'a, Message, Renderer> From<Button<'a, Message>> +impl<'a, Message, Renderer> From<Button<'a, Message, Renderer>>      for Element<'a, Message, Renderer>  where -    Renderer: self::Renderer, +    Renderer: 'static + self::Renderer,      Message: 'static + Copy + std::fmt::Debug,  { -    fn from(button: Button<'a, Message>) -> Element<'a, Message, Renderer> { +    fn from( +        button: Button<'a, Message, Renderer>, +    ) -> Element<'a, Message, Renderer> {          Element::new(button)      }  } diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs index 1954305a..c069bfdc 100644 --- a/native/src/widget/checkbox.rs +++ b/native/src/widget/checkbox.rs @@ -10,7 +10,7 @@ impl<Message, Renderer> Widget<Message, Renderer> for Checkbox<Message>  where      Renderer: self::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } @@ -64,7 +64,7 @@ pub trait Renderer: crate::Renderer {      ///      /// [`Node`]: ../../struct.Node.html      /// [`Checkbox`]: struct.Checkbox.html -    fn node<Message>(&mut self, checkbox: &Checkbox<Message>) -> Node; +    fn node<Message>(&self, checkbox: &Checkbox<Message>) -> Node;      /// Draws a [`Checkbox`].      /// diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs index 6228d711..7e10e662 100644 --- a/native/src/widget/column.rs +++ b/native/src/widget/column.rs @@ -11,7 +11,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer>  where      Renderer: self::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          let mut children: Vec<Node> = self              .children              .iter() diff --git a/native/src/widget/image.rs b/native/src/widget/image.rs index 2bce36c2..5197d5b1 100644 --- a/native/src/widget/image.rs +++ b/native/src/widget/image.rs @@ -11,7 +11,7 @@ where      Renderer: self::Renderer<I>,      I: Clone,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } @@ -45,7 +45,7 @@ pub trait Renderer<I>: crate::Renderer {      ///      /// [`Node`]: ../../struct.Node.html      /// [`Image`]: struct.Image.html -    fn node(&mut self, image: &Image<I>) -> Node; +    fn node(&self, image: &Image<I>) -> Node;      /// Draws an [`Image`].      /// diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs index 1bc052aa..22308f81 100644 --- a/native/src/widget/radio.rs +++ b/native/src/widget/radio.rs @@ -11,7 +11,7 @@ where      Renderer: self::Renderer,      Message: Copy + std::fmt::Debug,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } @@ -61,7 +61,7 @@ pub trait Renderer: crate::Renderer {      ///      /// [`Node`]: ../../struct.Node.html      /// [`Radio`]: struct.Radio.html -    fn node<Message>(&mut self, radio: &Radio<Message>) -> Node; +    fn node<Message>(&self, radio: &Radio<Message>) -> Node;      /// Draws a [`Radio`] button.      /// diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs index 9d023210..b1d4a5b2 100644 --- a/native/src/widget/row.rs +++ b/native/src/widget/row.rs @@ -11,7 +11,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer>  where      Renderer: self::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          let mut children: Vec<Node> = self              .children              .iter() diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 77095cb7..643efdf4 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -15,7 +15,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer> for Slider<'a, Message>  where      Renderer: self::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } diff --git a/native/src/widget/text.rs b/native/src/widget/text.rs index a032b4fc..62f2d7b7 100644 --- a/native/src/widget/text.rs +++ b/native/src/widget/text.rs @@ -9,7 +9,7 @@ impl<Message, Renderer> Widget<Message, Renderer> for Text  where      Renderer: self::Renderer,  { -    fn node(&self, renderer: &mut Renderer) -> Node { +    fn node(&self, renderer: &Renderer) -> Node {          renderer.node(&self)      } | 
