diff options
| author | 2023-04-17 23:46:18 +0200 | |
|---|---|---|
| committer | 2023-04-17 23:46:18 +0200 | |
| commit | 619ba9294d5e0f7913f82838d78018fc6714d26a (patch) | |
| tree | b0631aa66875e0e9f486665227c306832ac19a5b /examples/tour | |
| parent | d206b82ebb7617337cd378bd19542a7abf8a4529 (diff) | |
| parent | e3730106e9d4f75de199e1b83cf285b8ff031968 (diff) | |
| download | iced-619ba9294d5e0f7913f82838d78018fc6714d26a.tar.gz iced-619ba9294d5e0f7913f82838d78018fc6714d26a.tar.bz2 iced-619ba9294d5e0f7913f82838d78018fc6714d26a.zip  | |
Merge branch 'advanced-text' into incremental-rendering
Diffstat (limited to 'examples/tour')
| -rw-r--r-- | examples/tour/src/main.rs | 84 | 
1 files changed, 65 insertions, 19 deletions
diff --git a/examples/tour/src/main.rs b/examples/tour/src/main.rs index de063d00..9c38ad0e 100644 --- a/examples/tour/src/main.rs +++ b/examples/tour/src/main.rs @@ -5,7 +5,7 @@ use iced::widget::{      scrollable, slider, text, text_input, toggler, vertical_space,  };  use iced::widget::{Button, Column, Container, Slider}; -use iced::{Color, Element, Length, Renderer, Sandbox, Settings}; +use iced::{Color, Element, Font, Length, Renderer, Sandbox, Settings};  pub fn main() -> iced::Result {      env_logger::init(); @@ -127,6 +127,7 @@ impl Steps {                  Step::TextInput {                      value: String::new(),                      is_secure: false, +                    is_showing_icon: false,                  },                  Step::Debugger,                  Step::End, @@ -171,14 +172,32 @@ impl Steps {  enum Step {      Welcome, -    Slider { value: u8 }, -    RowsAndColumns { layout: Layout, spacing: u16 }, -    Text { size: u16, color: Color }, -    Radio { selection: Option<Language> }, -    Toggler { can_continue: bool }, -    Image { width: u16 }, +    Slider { +        value: u8, +    }, +    RowsAndColumns { +        layout: Layout, +        spacing: u16, +    }, +    Text { +        size: u16, +        color: Color, +    }, +    Radio { +        selection: Option<Language>, +    }, +    Toggler { +        can_continue: bool, +    }, +    Image { +        width: u16, +    },      Scrollable, -    TextInput { value: String, is_secure: bool }, +    TextInput { +        value: String, +        is_secure: bool, +        is_showing_icon: bool, +    },      Debugger,      End,  } @@ -194,6 +213,7 @@ pub enum StepMessage {      ImageWidthChanged(u16),      InputChanged(String),      ToggleSecureInput(bool), +    ToggleTextInputIcon(bool),      DebugToggled(bool),      TogglerChanged(bool),  } @@ -256,6 +276,14 @@ impl<'a> Step {                      *can_continue = value;                  }              } +            StepMessage::ToggleTextInputIcon(toggle) => { +                if let Step::TextInput { +                    is_showing_icon, .. +                } = self +                { +                    *is_showing_icon = toggle +                } +            }          };      } @@ -303,9 +331,11 @@ impl<'a> Step {                  Self::rows_and_columns(*layout, *spacing)              }              Step::Scrollable => Self::scrollable(), -            Step::TextInput { value, is_secure } => { -                Self::text_input(value, *is_secure) -            } +            Step::TextInput { +                value, +                is_secure, +                is_showing_icon, +            } => Self::text_input(value, *is_secure, *is_showing_icon),              Step::Debugger => Self::debugger(debug),              Step::End => Self::end(),          } @@ -530,14 +560,25 @@ impl<'a> Step {              )      } -    fn text_input(value: &str, is_secure: bool) -> Column<'a, StepMessage> { -        let text_input = text_input( -            "Type something to continue...", -            value, -            StepMessage::InputChanged, -        ) -        .padding(10) -        .size(30); +    fn text_input( +        value: &str, +        is_secure: bool, +        is_showing_icon: bool, +    ) -> Column<'a, StepMessage> { +        let mut text_input = text_input("Type something to continue...", value) +            .on_input(StepMessage::InputChanged) +            .padding(10) +            .size(30); + +        if is_showing_icon { +            text_input = text_input.icon(text_input::Icon { +                font: Font::default(), +                code_point: '🚀', +                size: Some(28.0), +                spacing: 10.0, +                side: text_input::Side::Right, +            }); +        }          Self::container("Text input")              .push("Use a text input to ask for different kinds of information.") @@ -551,6 +592,11 @@ impl<'a> Step {                  is_secure,                  StepMessage::ToggleSecureInput,              )) +            .push(checkbox( +                "Show icon", +                is_showing_icon, +                StepMessage::ToggleTextInputIcon, +            ))              .push(                  "A text input produces a message every time it changes. It is \                   very easy to keep track of its contents:",  | 
