From 897188317b5875cc00a0f1c797790df8ac13687f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 11 Feb 2022 17:50:12 +0700 Subject: Rename `iced_virtual` to `iced_pure` `virtual` is a reserved keyword in Rust :grimacing: --- examples/pure/counter/src/main.rs | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 examples/pure/counter/src/main.rs (limited to 'examples/pure/counter/src') diff --git a/examples/pure/counter/src/main.rs b/examples/pure/counter/src/main.rs new file mode 100644 index 00000000..e2746d40 --- /dev/null +++ b/examples/pure/counter/src/main.rs @@ -0,0 +1,54 @@ +use iced::{Alignment, Element, Sandbox, Settings}; +use iced_pure::{Button, Column, Pure, State, Text}; + +pub fn main() -> iced::Result { + Counter::run(Settings::default()) +} + +struct Counter { + value: i32, + state: State, +} + +#[derive(Debug, Clone, Copy)] +enum Message { + IncrementPressed, + DecrementPressed, +} + +impl Sandbox for Counter { + type Message = Message; + + fn new() -> Self { + Self { + value: 0, + state: State::new(), + } + } + + fn title(&self) -> String { + String::from("Counter - Iced") + } + + fn update(&mut self, message: Message) { + match message { + Message::IncrementPressed => { + self.value += 1; + } + Message::DecrementPressed => { + self.value -= 1; + } + } + } + + fn view(&mut self) -> Element<'_, Message> { + let content = Column::new() + .padding(20) + .align_items(Alignment::Center) + .push(Button::new("Increment").on_press(Message::IncrementPressed)) + .push(Text::new(self.value.to_string()).size(50)) + .push(Button::new("Decrement").on_press(Message::DecrementPressed)); + + Pure::new(&mut self.state, content).into() + } +} -- cgit From 66d69b5c9a183091e05e82bbe21b3203f75c1b18 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 11 Feb 2022 17:51:33 +0700 Subject: Expose `iced_pure` through a `pure` feature in `iced` Besides exposing the `iced_pure` crate, enabling the `pure` feature also provides pure versions of both the `Application` and `Sandbox` traits! :tada: --- examples/pure/counter/src/main.rs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'examples/pure/counter/src') diff --git a/examples/pure/counter/src/main.rs b/examples/pure/counter/src/main.rs index e2746d40..00cb3fc7 100644 --- a/examples/pure/counter/src/main.rs +++ b/examples/pure/counter/src/main.rs @@ -1,5 +1,5 @@ -use iced::{Alignment, Element, Sandbox, Settings}; -use iced_pure::{Button, Column, Pure, State, Text}; +use iced::pure::{Button, Column, Element, Sandbox, Text}; +use iced::{Alignment, Settings}; pub fn main() -> iced::Result { Counter::run(Settings::default()) @@ -7,7 +7,6 @@ pub fn main() -> iced::Result { struct Counter { value: i32, - state: State, } #[derive(Debug, Clone, Copy)] @@ -20,10 +19,7 @@ impl Sandbox for Counter { type Message = Message; fn new() -> Self { - Self { - value: 0, - state: State::new(), - } + Self { value: 0 } } fn title(&self) -> String { @@ -41,14 +37,13 @@ impl Sandbox for Counter { } } - fn view(&mut self) -> Element<'_, Message> { - let content = Column::new() + fn view(&self) -> Element { + Column::new() .padding(20) .align_items(Alignment::Center) .push(Button::new("Increment").on_press(Message::IncrementPressed)) .push(Text::new(self.value.to_string()).size(50)) - .push(Button::new("Decrement").on_press(Message::DecrementPressed)); - - Pure::new(&mut self.state, content).into() + .push(Button::new("Decrement").on_press(Message::DecrementPressed)) + .into() } } -- cgit From 43a7ad72ef070929278e6d03d98077ac267fe2a6 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 11 Feb 2022 18:42:15 +0700 Subject: Expose function helpers to build widgets in `pure::widget` `button("Hello")` is easier to write and read than `Button::new("Hello")`. --- examples/pure/counter/src/main.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'examples/pure/counter/src') diff --git a/examples/pure/counter/src/main.rs b/examples/pure/counter/src/main.rs index 00cb3fc7..4cb79a0e 100644 --- a/examples/pure/counter/src/main.rs +++ b/examples/pure/counter/src/main.rs @@ -1,4 +1,5 @@ -use iced::pure::{Button, Column, Element, Sandbox, Text}; +use iced::pure::widget::{button, column, text}; +use iced::pure::{Element, Sandbox}; use iced::{Alignment, Settings}; pub fn main() -> iced::Result { @@ -38,12 +39,12 @@ impl Sandbox for Counter { } fn view(&self) -> Element { - Column::new() + column() .padding(20) .align_items(Alignment::Center) - .push(Button::new("Increment").on_press(Message::IncrementPressed)) - .push(Text::new(self.value.to_string()).size(50)) - .push(Button::new("Decrement").on_press(Message::DecrementPressed)) + .push(button("Increment").on_press(Message::IncrementPressed)) + .push(text(self.value).size(50)) + .push(button("Decrement").on_press(Message::DecrementPressed)) .into() } } -- cgit From dee3dba632709f57b5573dbe28827ad481287648 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 12 Feb 2022 14:22:17 +0700 Subject: Reuse `Text` widget from `iced_native` in `iced_pure` --- examples/pure/counter/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples/pure/counter/src') diff --git a/examples/pure/counter/src/main.rs b/examples/pure/counter/src/main.rs index 4cb79a0e..9b520347 100644 --- a/examples/pure/counter/src/main.rs +++ b/examples/pure/counter/src/main.rs @@ -43,7 +43,7 @@ impl Sandbox for Counter { .padding(20) .align_items(Alignment::Center) .push(button("Increment").on_press(Message::IncrementPressed)) - .push(text(self.value).size(50)) + .push(text(self.value.to_string()).size(50)) .push(button("Decrement").on_press(Message::DecrementPressed)) .into() } -- cgit From d7100fd2597da82d97eaf196d50573ea64f3f8ff Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 16 Mar 2022 17:37:19 +0700 Subject: Export widget modules in `iced_pure` ... and fix collisions with the new `helpers` --- examples/pure/counter/src/main.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'examples/pure/counter/src') diff --git a/examples/pure/counter/src/main.rs b/examples/pure/counter/src/main.rs index 9b520347..726009df 100644 --- a/examples/pure/counter/src/main.rs +++ b/examples/pure/counter/src/main.rs @@ -1,5 +1,4 @@ -use iced::pure::widget::{button, column, text}; -use iced::pure::{Element, Sandbox}; +use iced::pure::{button, column, text, Element, Sandbox}; use iced::{Alignment, Settings}; pub fn main() -> iced::Result { -- cgit