summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-09 05:06:04 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-09 05:10:10 +0100
commite953b1828d5b8dbdd145829f47c4817137e37f0d (patch)
tree9c775128e047e4a141f2aefb691e7e31a801ba93 /examples
parente66d38403d09b265f111d9e1b59af6143464d912 (diff)
downloadiced-e953b1828d5b8dbdd145829f47c4817137e37f0d.tar.gz
iced-e953b1828d5b8dbdd145829f47c4817137e37f0d.tar.bz2
iced-e953b1828d5b8dbdd145829f47c4817137e37f0d.zip
Allow applications to control the window title
`iced_winit` will change the window title dynamically at runtime!
Diffstat (limited to 'examples')
-rw-r--r--examples/scroll.rs4
-rw-r--r--examples/todos.rs4
-rw-r--r--examples/tour.rs55
3 files changed, 45 insertions, 18 deletions
diff --git a/examples/scroll.rs b/examples/scroll.rs
index 608923fe..5a725f0c 100644
--- a/examples/scroll.rs
+++ b/examples/scroll.rs
@@ -25,6 +25,10 @@ pub enum Message {
impl Application for Example {
type Message = Message;
+ fn title(&self) -> String {
+ String::from("Scroll - Iced")
+ }
+
fn update(&mut self, message: Message) {
match message {
Message::AddItem => {
diff --git a/examples/todos.rs b/examples/todos.rs
index 2ebbcc7c..5257fc12 100644
--- a/examples/todos.rs
+++ b/examples/todos.rs
@@ -25,6 +25,10 @@ pub enum Message {
impl Application for Todos {
type Message = Message;
+ fn title(&self) -> String {
+ String::from("Todos - Iced")
+ }
+
fn update(&mut self, message: Message) {
match message {
Message::InputChanged(value) => {
diff --git a/examples/tour.rs b/examples/tour.rs
index c5daa2c5..ac654a5e 100644
--- a/examples/tour.rs
+++ b/examples/tour.rs
@@ -7,9 +7,7 @@ use iced::{
pub fn main() {
env_logger::init();
- let tour = Tour::new();
-
- tour.run();
+ Tour::new().run()
}
pub struct Tour {
@@ -35,6 +33,10 @@ impl Tour {
impl Application for Tour {
type Message = Message;
+ fn title(&self) -> String {
+ format!("{} - Iced", self.steps.title())
+ }
+
fn update(&mut self, event: Message) {
match event {
Message::BackPressed => {
@@ -52,6 +54,7 @@ impl Application for Tour {
fn view(&mut self) -> Element<Message> {
let Tour {
steps,
+ scroll,
back_button,
next_button,
..
@@ -93,7 +96,7 @@ impl Application for Tour {
.height(Length::Fill)
.justify_content(Justify::Center)
.push(
- Scrollable::new(&mut self.scroll)
+ Scrollable::new(scroll)
.align_items(Align::Center)
.push(element),
)
@@ -178,6 +181,10 @@ impl Steps {
self.current + 1 < self.steps.len()
&& self.steps[self.current].can_continue()
}
+
+ fn title(&self) -> &str {
+ self.steps[self.current].title()
+ }
}
enum Step {
@@ -277,6 +284,21 @@ impl<'a> Step {
};
}
+ fn title(&self) -> &str {
+ match self {
+ Step::Welcome => "Welcome",
+ Step::Radio { .. } => "Radio button",
+ Step::Slider { .. } => "Slider",
+ Step::Text { .. } => "Text",
+ Step::Image { .. } => "Image",
+ Step::RowsAndColumns { .. } => "Rows and columns",
+ Step::Scrollable => "Scrollable",
+ Step::TextInput { .. } => "Text input",
+ Step::Debugger => "Debugger",
+ Step::End => "End",
+ }
+ }
+
fn can_continue(&self) -> bool {
match self {
Step::Welcome => true,
@@ -294,30 +316,27 @@ impl<'a> Step {
fn view(&mut self, debug: bool) -> Element<StepMessage> {
match self {
- Step::Welcome => Self::welcome().into(),
- Step::Radio { selection } => Self::radio(*selection).into(),
- Step::Slider { state, value } => Self::slider(state, *value).into(),
+ Step::Welcome => Self::welcome(),
+ Step::Radio { selection } => Self::radio(*selection),
+ Step::Slider { state, value } => Self::slider(state, *value),
Step::Text {
size_slider,
size,
color_sliders,
color,
- } => Self::text(size_slider, *size, color_sliders, *color).into(),
- Step::Image { width, slider } => Self::image(*width, slider).into(),
+ } => Self::text(size_slider, *size, color_sliders, *color),
+ Step::Image { width, slider } => Self::image(*width, slider),
Step::RowsAndColumns {
layout,
spacing_slider,
spacing,
- } => {
- Self::rows_and_columns(*layout, spacing_slider, *spacing).into()
- }
- Step::Scrollable => Self::scrollable().into(),
- Step::TextInput { value, state } => {
- Self::text_input(value, state).into()
- }
- Step::Debugger => Self::debugger(debug).into(),
- Step::End => Self::end().into(),
+ } => Self::rows_and_columns(*layout, spacing_slider, *spacing),
+ Step::Scrollable => Self::scrollable(),
+ Step::TextInput { value, state } => Self::text_input(value, state),
+ Step::Debugger => Self::debugger(debug),
+ Step::End => Self::end(),
}
+ .into()
}
fn container(title: &str) -> Column<'a, StepMessage> {