summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-19 15:01:12 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-19 15:01:12 +0200
commitf9de39ddaa3020a9585b1648afb0ead45dfd7aa9 (patch)
tree04289787e353b4b059354d22ce53f2b79464431c /src
parentdd093c79d7da84675be648c7df2ebfc85b5039f2 (diff)
downloadiced-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.rs19
-rw-r--r--src/element.rs9
-rw-r--r--src/lib.rs2
-rw-r--r--src/user_interface.rs10
-rw-r--r--src/widget.rs2
-rw-r--r--src/widget/button.rs2
-rw-r--r--src/widget/checkbox.rs2
-rw-r--r--src/widget/column.rs2
-rw-r--r--src/widget/image.rs4
-rw-r--r--src/widget/radio.rs2
-rw-r--r--src/widget/row.rs2
-rw-r--r--src/widget/slider.rs2
-rw-r--r--src/widget/text.rs2
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)
}
diff --git a/src/lib.rs b/src/lib.rs
index c1c18b41..56eee559 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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)
}