diff options
author | 2019-12-07 07:19:05 +0100 | |
---|---|---|
committer | 2019-12-07 07:19:05 +0100 | |
commit | cdee847cea47b84568048ff8f48194a24dab80f1 (patch) | |
tree | c53cdefe7a346e223ad84190bb07a3267c84cbce /examples/tour.rs | |
parent | 34bdfe941613d4bb51848eec1dc0f99f2a59ff21 (diff) | |
download | iced-cdee847cea47b84568048ff8f48194a24dab80f1.tar.gz iced-cdee847cea47b84568048ff8f48194a24dab80f1.tar.bz2 iced-cdee847cea47b84568048ff8f48194a24dab80f1.zip |
Showcase new `TextInput::password` in `tour`
Diffstat (limited to 'examples/tour.rs')
-rw-r--r-- | examples/tour.rs | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/examples/tour.rs b/examples/tour.rs index b06fbc37..77ed21ab 100644 --- a/examples/tour.rs +++ b/examples/tour.rs @@ -140,6 +140,7 @@ impl Steps { Step::Scrollable, Step::TextInput { value: String::new(), + is_secure: false, state: text_input::State::new(), }, Step::Debugger, @@ -210,6 +211,7 @@ enum Step { Scrollable, TextInput { value: String, + is_secure: bool, state: text_input::State, }, Debugger, @@ -226,6 +228,7 @@ pub enum StepMessage { LanguageSelected(Language), ImageWidthChanged(f32), InputChanged(String), + ToggleSecureInput(bool), DebugToggled(bool), } @@ -277,6 +280,12 @@ impl<'a> Step { *value = new_value; } } + + StepMessage::ToggleSecureInput(toggle) => { + if let Step::TextInput { is_secure, .. } = self { + *is_secure = toggle; + } + } }; } @@ -328,7 +337,11 @@ impl<'a> Step { spacing, } => Self::rows_and_columns(*layout, spacing_slider, *spacing), Step::Scrollable => Self::scrollable(), - Step::TextInput { value, state } => Self::text_input(value, state), + Step::TextInput { + value, + is_secure, + state, + } => Self::text_input(value, *is_secure, state), Step::Debugger => Self::debugger(debug), Step::End => Self::end(), } @@ -582,22 +595,31 @@ impl<'a> Step { fn text_input( value: &str, + is_secure: bool, state: &'a mut text_input::State, ) -> Column<'a, StepMessage> { + let text_input = TextInput::new( + state, + "Type something to continue...", + value, + StepMessage::InputChanged, + ) + .padding(10) + .size(30); Self::container("Text input") .push(Text::new( "Use a text input to ask for different kinds of information.", )) - .push( - TextInput::new( - state, - "Type something to continue...", - value, - StepMessage::InputChanged, - ) - .padding(10) - .size(30), - ) + .push(if is_secure { + text_input.password() + } else { + text_input + }) + .push(Checkbox::new( + is_secure, + "Enable password mode", + StepMessage::ToggleSecureInput, + )) .push(Text::new( "A text input produces a message every time it changes. It is \ very easy to keep track of its contents:", |