Rename Step to Screen in tour example

This commit is contained in:
Héctor Ramón Jiménez 2024-06-16 23:18:45 +02:00
parent e0b4ddf7b7
commit e9141e7abf
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -22,7 +22,7 @@ pub fn main() -> iced::Result {
} }
pub struct Tour { pub struct Tour {
step: Step, screen: Screen,
slider: u8, slider: u8,
layout: Layout, layout: Layout,
spacing: u16, spacing: u16,
@ -59,18 +59,18 @@ pub enum Message {
impl Tour { impl Tour {
fn title(&self) -> String { fn title(&self) -> String {
let screen = match self.step { let screen = match self.screen {
Step::Welcome => "Welcome", Screen::Welcome => "Welcome",
Step::Radio => "Radio button", Screen::Radio => "Radio button",
Step::Toggler => "Toggler", Screen::Toggler => "Toggler",
Step::Slider => "Slider", Screen::Slider => "Slider",
Step::Text => "Text", Screen::Text => "Text",
Step::Image => "Image", Screen::Image => "Image",
Step::RowsAndColumns => "Rows and columns", Screen::RowsAndColumns => "Rows and columns",
Step::Scrollable => "Scrollable", Screen::Scrollable => "Scrollable",
Step::TextInput => "Text input", Screen::TextInput => "Text input",
Step::Debugger => "Debugger", Screen::Debugger => "Debugger",
Step::End => "End", Screen::End => "End",
}; };
format!("{} - Iced", screen) format!("{} - Iced", screen)
@ -79,13 +79,13 @@ impl Tour {
fn update(&mut self, event: Message) { fn update(&mut self, event: Message) {
match event { match event {
Message::BackPressed => { Message::BackPressed => {
if let Some(step) = self.step.previous() { if let Some(screen) = self.screen.previous() {
self.step = step; self.screen = screen;
} }
} }
Message::NextPressed => { Message::NextPressed => {
if let Some(step) = self.step.next() { if let Some(screen) = self.screen.next() {
self.step = step; self.screen = screen;
} }
} }
Message::SliderChanged(value) => { Message::SliderChanged(value) => {
@ -137,7 +137,7 @@ impl Tour {
fn view(&self) -> Element<Message> { fn view(&self) -> Element<Message> {
let controls = let controls =
row![] row![]
.push_maybe(self.step.previous().is_some().then(|| { .push_maybe(self.screen.previous().is_some().then(|| {
padded_button("Back") padded_button("Back")
.on_press(Message::BackPressed) .on_press(Message::BackPressed)
.style(button::secondary) .style(button::secondary)
@ -147,18 +147,18 @@ impl Tour {
padded_button("Next").on_press(Message::NextPressed) padded_button("Next").on_press(Message::NextPressed)
})); }));
let screen = match self.step { let screen = match self.screen {
Step::Welcome => self.welcome(), Screen::Welcome => self.welcome(),
Step::Radio => self.radio(), Screen::Radio => self.radio(),
Step::Toggler => self.toggler(), Screen::Toggler => self.toggler(),
Step::Slider => self.slider(), Screen::Slider => self.slider(),
Step::Text => self.text(), Screen::Text => self.text(),
Step::Image => self.image(), Screen::Image => self.image(),
Step::RowsAndColumns => self.rows_and_columns(), Screen::RowsAndColumns => self.rows_and_columns(),
Step::Scrollable => self.scrollable(), Screen::Scrollable => self.scrollable(),
Step::TextInput => self.text_input(), Screen::TextInput => self.text_input(),
Step::Debugger => self.debugger(), Screen::Debugger => self.debugger(),
Step::End => self.end(), Screen::End => self.end(),
}; };
let content: Element<_> = column![screen, controls,] let content: Element<_> = column![screen, controls,]
@ -180,18 +180,18 @@ impl Tour {
} }
fn can_continue(&self) -> bool { fn can_continue(&self) -> bool {
match self.step { match self.screen {
Step::Welcome => true, Screen::Welcome => true,
Step::Radio => self.language == Some(Language::Rust), Screen::Radio => self.language == Some(Language::Rust),
Step::Toggler => self.toggler, Screen::Toggler => self.toggler,
Step::Slider => true, Screen::Slider => true,
Step::Text => true, Screen::Text => true,
Step::Image => true, Screen::Image => true,
Step::RowsAndColumns => true, Screen::RowsAndColumns => true,
Step::Scrollable => true, Screen::Scrollable => true,
Step::TextInput => !self.input_value.is_empty(), Screen::TextInput => !self.input_value.is_empty(),
Step::Debugger => true, Screen::Debugger => true,
Step::End => false, Screen::End => false,
} }
} }
@ -498,7 +498,7 @@ impl Tour {
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[derive(Debug, Clone, Copy, PartialEq, Eq)]
enum Step { enum Screen {
Welcome, Welcome,
Slider, Slider,
RowsAndColumns, RowsAndColumns,
@ -512,7 +512,7 @@ enum Step {
End, End,
} }
impl Step { impl Screen {
const ALL: &'static [Self] = &[ const ALL: &'static [Self] = &[
Self::Welcome, Self::Welcome,
Self::Slider, Self::Slider,
@ -527,25 +527,25 @@ impl Step {
Self::End, Self::End,
]; ];
pub fn next(self) -> Option<Step> { pub fn next(self) -> Option<Screen> {
Self::ALL Self::ALL
.get( .get(
Self::ALL Self::ALL
.iter() .iter()
.copied() .copied()
.position(|step| step == self) .position(|screen| screen == self)
.expect("Step must exist") .expect("Screen must exist")
+ 1, + 1,
) )
.copied() .copied()
} }
pub fn previous(self) -> Option<Step> { pub fn previous(self) -> Option<Screen> {
let position = Self::ALL let position = Self::ALL
.iter() .iter()
.copied() .copied()
.position(|step| step == self) .position(|screen| screen == self)
.expect("Step must exist"); .expect("Screen must exist");
if position > 0 { if position > 0 {
Some(Self::ALL[position - 1]) Some(Self::ALL[position - 1])
@ -632,7 +632,7 @@ pub enum Layout {
impl Default for Tour { impl Default for Tour {
fn default() -> Self { fn default() -> Self {
Self { Self {
step: Step::Welcome, screen: Screen::Welcome,
slider: 50, slider: 50,
layout: Layout::Row, layout: Layout::Row,
spacing: 20, spacing: 20,