summaryrefslogtreecommitdiffstats
path: root/examples/sierpinski_triangle
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-16 05:33:47 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-16 05:33:47 +0100
commitc22269bff3085012d326a0df77bf27ad5bcb41b7 (patch)
tree1083f21d012ab2bac88fb51537d4dc431bc7f170 /examples/sierpinski_triangle
parent0524e9b4571d264018656418f02a1f9e27e268d7 (diff)
downloadiced-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.rs50
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();
}