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/Cargo.toml | 10 ++++++++ examples/pure/counter/README.md | 18 +++++++++++++ examples/pure/counter/index.html | 12 +++++++++ examples/pure/counter/src/main.rs | 54 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 examples/pure/counter/Cargo.toml create mode 100644 examples/pure/counter/README.md create mode 100644 examples/pure/counter/index.html create mode 100644 examples/pure/counter/src/main.rs (limited to 'examples/pure') diff --git a/examples/pure/counter/Cargo.toml b/examples/pure/counter/Cargo.toml new file mode 100644 index 00000000..1363bfd5 --- /dev/null +++ b/examples/pure/counter/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "pure_counter" +version = "0.1.0" +authors = ["Héctor Ramón Jiménez "] +edition = "2021" +publish = false + +[dependencies] +iced = { path = "../../.." } +iced_pure = { path = "../../../pure" } diff --git a/examples/pure/counter/README.md b/examples/pure/counter/README.md new file mode 100644 index 00000000..4d9fc5b9 --- /dev/null +++ b/examples/pure/counter/README.md @@ -0,0 +1,18 @@ +## Counter + +The classic counter example explained in the [`README`](../../README.md). + +The __[`main`]__ file contains all the code of the example. + +
+ + + +
+ +You can run it with `cargo run`: +``` +cargo run --package counter +``` + +[`main`]: src/main.rs diff --git a/examples/pure/counter/index.html b/examples/pure/counter/index.html new file mode 100644 index 00000000..d2e368e4 --- /dev/null +++ b/examples/pure/counter/index.html @@ -0,0 +1,12 @@ + + + + + + Counter - Iced + + + + + + 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