summaryrefslogtreecommitdiffstats
path: root/examples/layout
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/layout
parent0524e9b4571d264018656418f02a1f9e27e268d7 (diff)
downloadiced-c22269bff3085012d326a0df77bf27ad5bcb41b7.tar.gz
iced-c22269bff3085012d326a0df77bf27ad5bcb41b7.tar.bz2
iced-c22269bff3085012d326a0df77bf27ad5bcb41b7.zip
Introduce `Program` API
Diffstat (limited to 'examples/layout')
-rw-r--r--examples/layout/src/main.rs35
1 files changed, 10 insertions, 25 deletions
diff --git a/examples/layout/src/main.rs b/examples/layout/src/main.rs
index 17c51e3d..fc3a1f82 100644
--- a/examples/layout/src/main.rs
+++ b/examples/layout/src/main.rs
@@ -1,4 +1,3 @@
-use iced::executor;
use iced::keyboard;
use iced::mouse;
use iced::widget::{
@@ -6,15 +5,19 @@ use iced::widget::{
row, scrollable, text,
};
use iced::{
- color, Alignment, Application, Command, Element, Font, Length, Point,
- Rectangle, Renderer, Settings, Subscription, Theme,
+ color, Alignment, Element, Font, Length, Point, Rectangle, Renderer,
+ Subscription, Theme,
};
pub fn main() -> iced::Result {
- Layout::run(Settings::default())
+ iced::sandbox(Layout::update, Layout::view)
+ .title(Layout::title)
+ .subscription(Layout::subscription)
+ .theme(Layout::theme)
+ .run()
}
-#[derive(Debug)]
+#[derive(Default, Debug)]
struct Layout {
example: Example,
explain: bool,
@@ -29,28 +32,12 @@ enum Message {
ThemeSelected(Theme),
}
-impl Application for Layout {
- type Message = Message;
- type Theme = Theme;
- type Executor = executor::Default;
- type Flags = ();
-
- fn new(_flags: Self::Flags) -> (Self, Command<Message>) {
- (
- Self {
- example: Example::default(),
- explain: false,
- theme: Theme::Light,
- },
- Command::none(),
- )
- }
-
+impl Layout {
fn title(&self) -> String {
format!("{} - Layout - Iced", self.example.title)
}
- fn update(&mut self, message: Self::Message) -> Command<Message> {
+ fn update(&mut self, message: Message) {
match message {
Message::Next => {
self.example = self.example.next();
@@ -65,8 +52,6 @@ impl Application for Layout {
self.theme = theme;
}
}
-
- Command::none()
}
fn subscription(&self) -> Subscription<Message> {