diff options
author | 2019-09-19 15:01:12 +0200 | |
---|---|---|
committer | 2019-09-19 15:01:12 +0200 | |
commit | f9de39ddaa3020a9585b1648afb0ead45dfd7aa9 (patch) | |
tree | 04289787e353b4b059354d22ce53f2b79464431c /src | |
parent | dd093c79d7da84675be648c7df2ebfc85b5039f2 (diff) | |
download | iced-f9de39ddaa3020a9585b1648afb0ead45dfd7aa9.tar.gz iced-f9de39ddaa3020a9585b1648afb0ead45dfd7aa9.tar.bz2 iced-f9de39ddaa3020a9585b1648afb0ead45dfd7aa9.zip |
Unify `web` and `ggez` tour examples :tada:
Diffstat (limited to 'src')
-rw-r--r-- | src/color.rs | 19 | ||||
-rw-r--r-- | src/element.rs | 9 | ||||
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/user_interface.rs | 10 | ||||
-rw-r--r-- | src/widget.rs | 2 | ||||
-rw-r--r-- | src/widget/button.rs | 2 | ||||
-rw-r--r-- | src/widget/checkbox.rs | 2 | ||||
-rw-r--r-- | src/widget/column.rs | 2 | ||||
-rw-r--r-- | src/widget/image.rs | 4 | ||||
-rw-r--r-- | src/widget/radio.rs | 2 | ||||
-rw-r--r-- | src/widget/row.rs | 2 | ||||
-rw-r--r-- | src/widget/slider.rs | 2 | ||||
-rw-r--r-- | src/widget/text.rs | 2 |
13 files changed, 42 insertions, 18 deletions
diff --git a/src/color.rs b/src/color.rs new file mode 100644 index 00000000..5cc3a084 --- /dev/null +++ b/src/color.rs @@ -0,0 +1,19 @@ +/// A color in the sRGB color space. +#[derive(Debug, Clone, Copy, PartialEq)] +#[allow(missing_docs)] +pub struct Color { + pub r: f32, + pub g: f32, + pub b: f32, + pub a: f32, +} + +impl Color { + /// The black color. + pub const BLACK: Color = Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 1.0, + }; +} diff --git a/src/element.rs b/src/element.rs index 70d06f42..c13bf4a0 100644 --- a/src/element.rs +++ b/src/element.rs @@ -223,7 +223,10 @@ impl<'a, Message, Renderer> Element<'a, Message, Renderer> { } } - pub(crate) fn compute_layout(&self, renderer: &Renderer) -> result::Layout { + pub(crate) fn compute_layout( + &self, + renderer: &mut Renderer, + ) -> result::Layout { let node = self.widget.node(renderer); node.0.compute_layout(geometry::Size::undefined()).unwrap() @@ -264,7 +267,7 @@ impl<'a, A, B, Renderer> Widget<B, Renderer> for Map<'a, A, B, Renderer> where A: Copy, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { self.widget.node(renderer) } @@ -337,7 +340,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer> where Renderer: renderer::Debugger, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { self.element.widget.node(renderer) } @@ -200,6 +200,7 @@ pub mod input; pub mod renderer; pub mod widget; +mod color; mod element; mod event; mod hasher; @@ -215,6 +216,7 @@ mod vector; #[doc(no_inline)] pub use stretch::{geometry::Size, number::Number}; +pub use color::Color; pub use element::Element; pub use event::Event; pub use hasher::Hasher; diff --git a/src/user_interface.rs b/src/user_interface.rs index 2c7cbf82..6a69f81a 100644 --- a/src/user_interface.rs +++ b/src/user_interface.rs @@ -69,7 +69,7 @@ impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> { /// let user_interface = UserInterface::build( /// counter.view(), /// cache, - /// &renderer, + /// &mut renderer, /// ); /// /// // Update and draw the user interface here... @@ -82,7 +82,7 @@ impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> { pub fn build<E: Into<Element<'a, Message, Renderer>>>( root: E, cache: Cache, - renderer: &Renderer, + renderer: &mut Renderer, ) -> Self { let root = root.into(); @@ -153,7 +153,7 @@ impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> { /// let mut user_interface = UserInterface::build( /// counter.view(), /// cache, - /// &renderer, + /// &mut renderer, /// ); /// /// // Update the user interface @@ -236,7 +236,7 @@ impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> { /// let mut user_interface = UserInterface::build( /// counter.view(), /// cache, - /// &renderer, + /// &mut renderer, /// ); /// /// let messages = user_interface.update(events.drain(..)); @@ -302,7 +302,7 @@ impl Cache { Cache { hash: hasher.finish(), - layout: root.compute_layout(&()), + layout: root.compute_layout(&mut ()), cursor_position: Point::new(0.0, 0.0), } } diff --git a/src/widget.rs b/src/widget.rs index 30606934..45451f47 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -59,7 +59,7 @@ pub trait Widget<Message, Renderer>: std::fmt::Debug { /// [`Node`]: ../struct.Node.html /// [`Widget`]: trait.Widget.html /// [`Layout`]: ../struct.Layout.html - fn node(&self, renderer: &Renderer) -> Node; + fn node(&self, renderer: &mut Renderer) -> Node; /// Draws the [`Widget`] using the associated `Renderer`. /// diff --git a/src/widget/button.rs b/src/widget/button.rs index 6f5d9908..d2ea70e4 100644 --- a/src/widget/button.rs +++ b/src/widget/button.rs @@ -133,7 +133,7 @@ where Renderer: self::Renderer, Message: Copy + std::fmt::Debug, { - fn node(&self, _renderer: &Renderer) -> Node { + fn node(&self, _renderer: &mut Renderer) -> Node { Node::new(self.style.height(50)) } diff --git a/src/widget/checkbox.rs b/src/widget/checkbox.rs index 4ae167ad..6c13252d 100644 --- a/src/widget/checkbox.rs +++ b/src/widget/checkbox.rs @@ -98,7 +98,7 @@ where Color: 'static + Copy + std::fmt::Debug, Renderer: self::Renderer + text::Renderer<Color>, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { Row::<(), Renderer>::new() .spacing(15) .align_items(Align::Center) diff --git a/src/widget/column.rs b/src/widget/column.rs index ff754e98..831f5b8f 100644 --- a/src/widget/column.rs +++ b/src/widget/column.rs @@ -136,7 +136,7 @@ impl<'a, Message, Renderer> Column<'a, Message, Renderer> { impl<'a, Message, Renderer> Widget<Message, Renderer> for Column<'a, Message, Renderer> { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { let mut children: Vec<Node> = self .children .iter() diff --git a/src/widget/image.rs b/src/widget/image.rs index 8c869ab8..1601234e 100644 --- a/src/widget/image.rs +++ b/src/widget/image.rs @@ -99,7 +99,7 @@ where Renderer: self::Renderer<I>, I: Clone, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { renderer.node( self.style, &self.image, @@ -144,7 +144,7 @@ pub trait Renderer<I> { /// [`Style`]: ../../struct.Style.html /// [`Image`]: struct.Image.html fn node( - &self, + &mut self, style: Style, image: &I, width: Option<u16>, diff --git a/src/widget/radio.rs b/src/widget/radio.rs index 27c0ff17..ba082ef5 100644 --- a/src/widget/radio.rs +++ b/src/widget/radio.rs @@ -111,7 +111,7 @@ where Renderer: self::Renderer + text::Renderer<Color>, Message: Copy + std::fmt::Debug, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { Row::<(), Renderer>::new() .spacing(15) .align_items(Align::Center) diff --git a/src/widget/row.rs b/src/widget/row.rs index 959528dc..181020e3 100644 --- a/src/widget/row.rs +++ b/src/widget/row.rs @@ -133,7 +133,7 @@ impl<'a, Message, Renderer> Row<'a, Message, Renderer> { impl<'a, Message, Renderer> Widget<Message, Renderer> for Row<'a, Message, Renderer> { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { let mut children: Vec<Node> = self .children .iter() diff --git a/src/widget/slider.rs b/src/widget/slider.rs index 8a0cea01..fb6db8c9 100644 --- a/src/widget/slider.rs +++ b/src/widget/slider.rs @@ -107,7 +107,7 @@ impl<'a, Message, Renderer> Widget<Message, Renderer> for Slider<'a, Message> where Renderer: self::Renderer, { - fn node(&self, _renderer: &Renderer) -> Node { + fn node(&self, _renderer: &mut Renderer) -> Node { Node::new(self.style.height(25)) } diff --git a/src/widget/text.rs b/src/widget/text.rs index b529cfd2..457a6814 100644 --- a/src/widget/text.rs +++ b/src/widget/text.rs @@ -113,7 +113,7 @@ where Color: Copy + std::fmt::Debug, Renderer: self::Renderer<Color>, { - fn node(&self, renderer: &Renderer) -> Node { + fn node(&self, renderer: &mut Renderer) -> Node { renderer.node(self.style, &self.content, self.size) } |