summaryrefslogtreecommitdiffstats
path: root/examples/tour.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-07 07:19:05 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-07 07:19:05 +0100
commitcdee847cea47b84568048ff8f48194a24dab80f1 (patch)
treec53cdefe7a346e223ad84190bb07a3267c84cbce /examples/tour.rs
parent34bdfe941613d4bb51848eec1dc0f99f2a59ff21 (diff)
downloadiced-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.rs44
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:",