diff options
author | 2024-03-16 05:33:47 +0100 | |
---|---|---|
committer | 2024-03-16 05:33:47 +0100 | |
commit | c22269bff3085012d326a0df77bf27ad5bcb41b7 (patch) | |
tree | 1083f21d012ab2bac88fb51537d4dc431bc7f170 /examples/sierpinski_triangle | |
parent | 0524e9b4571d264018656418f02a1f9e27e268d7 (diff) | |
download | iced-c22269bff3085012d326a0df77bf27ad5bcb41b7.tar.gz iced-c22269bff3085012d326a0df77bf27ad5bcb41b7.tar.bz2 iced-c22269bff3085012d326a0df77bf27ad5bcb41b7.zip |
Introduce `Program` API
Diffstat (limited to 'examples/sierpinski_triangle')
-rw-r--r-- | examples/sierpinski_triangle/src/main.rs | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/examples/sierpinski_triangle/src/main.rs b/examples/sierpinski_triangle/src/main.rs index 01a114bb..bb8e67da 100644 --- a/examples/sierpinski_triangle/src/main.rs +++ b/examples/sierpinski_triangle/src/main.rs @@ -1,25 +1,20 @@ -use std::fmt::Debug; - -use iced::executor; use iced::mouse; use iced::widget::canvas::event::{self, Event}; use iced::widget::canvas::{self, Canvas}; use iced::widget::{column, row, slider, text}; -use iced::{ - Application, Color, Command, Length, Point, Rectangle, Renderer, Settings, - Size, Theme, -}; +use iced::{Color, Length, Point, Rectangle, Renderer, Size, Theme}; use rand::Rng; +use std::fmt::Debug; fn main() -> iced::Result { - SierpinskiEmulator::run(Settings { - antialiasing: true, - ..Settings::default() - }) + iced::sandbox(SierpinskiEmulator::update, SierpinskiEmulator::view) + .title("Sierpinski Triangle - Iced") + .antialiased() + .run() } -#[derive(Debug)] +#[derive(Debug, Default)] struct SierpinskiEmulator { graph: SierpinskiGraph, } @@ -31,27 +26,8 @@ pub enum Message { PointRemoved, } -impl Application for SierpinskiEmulator { - type Executor = executor::Default; - type Message = Message; - type Theme = Theme; - type Flags = (); - - fn new(_flags: Self::Flags) -> (Self, iced::Command<Self::Message>) { - let emulator = SierpinskiEmulator { - graph: SierpinskiGraph::new(), - }; - (emulator, Command::none()) - } - - fn title(&self) -> String { - "Sierpinski Triangle Emulator".to_string() - } - - fn update( - &mut self, - message: Self::Message, - ) -> iced::Command<Self::Message> { +impl SierpinskiEmulator { + fn update(&mut self, message: Message) { match message { Message::IterationSet(cur_iter) => { self.graph.iteration = cur_iter; @@ -67,11 +43,9 @@ impl Application for SierpinskiEmulator { } self.graph.redraw(); - - Command::none() } - fn view(&self) -> iced::Element<'_, Self::Message> { + fn view(&self) -> iced::Element<'_, Message> { column![ Canvas::new(&self.graph) .width(Length::Fill) @@ -167,10 +141,6 @@ impl canvas::Program<Message> for SierpinskiGraph { } impl SierpinskiGraph { - fn new() -> SierpinskiGraph { - SierpinskiGraph::default() - } - fn redraw(&mut self) { self.cache.clear(); } |