pub struct TextInput<'a> {
pub title: &'a str,
pub message: &'a str,
pub value: &'a str,
pub mode: TextInputMode,
pub owner: Option<&'a dyn HasWindowHandle>,
}Expand description
Text input dialog.
The text input dialog allows the user to enter text, which is returned as a string.
let name = rustydialogs::TextInput {
title: "User Name",
message: "Enter your name:",
value: "",
mode: rustydialogs::TextInputMode::SingleLine,
owner: None,
}.show();
if let Some(name) = name {
println!("Hello, {name}!");
}Fields§
§title: &'a strThe title of the dialog.
message: &'a strThe message to display to the user.
value: &'a strThe initial value to display in the text input.
mode: TextInputModeThe mode of the text input, which determines the type of dialog shown and how the input is handled.
owner: Option<&'a dyn HasWindowHandle>The owner window of the dialog.
Implementations§
Source§impl<'a> TextInput<'a>
impl<'a> TextInput<'a>
Sourcepub fn show(&self) -> Option<String>
pub fn show(&self) -> Option<String>
Show the dialog.
Returns Some(String) if the user provided input and confirmed the dialog, or None if the user cancelled the dialog.
Examples found in repository?
examples/text_input.rs (line 16)
1fn main() {
2 let mode = match std::process::id() / 4 % 3 {
3 0 => rustydialogs::TextInputMode::SingleLine,
4 1 => rustydialogs::TextInputMode::MultiLine,
5 _ => rustydialogs::TextInputMode::Password,
6 };
7
8 let input = rustydialogs::TextInput {
9 title: "TextInput",
10 message: "Enter some text:",
11 value: "default value",
12 mode,
13 owner: None,
14 };
15
16 match input.show() {
17 Some(value) => println!("TextInput: {value}"),
18 None => println!("Canceled"),
19 }
20}More examples
examples/tests.rs (line 326)
315fn test_text_input() {
316 println!("\n{}", Color("==== Testing TextInput ====", "120;190;255"));
317
318 step("Enter `Hello, Rust!` and press OK.",
319 Some("Hello, Rust!".to_string()),
320 || rustydialogs::TextInput {
321 title: "[tests] TextInput",
322 message: "Instruction: Enter `Hello, Rust!` and press OK.",
323 value: "",
324 mode: rustydialogs::TextInputMode::SingleLine,
325 owner: None,
326 }.show()
327 );
328
329 step("Enter `Password123` and press OK.",
330 Some(String::from("Password123")),
331 || rustydialogs::TextInput {
332 title: "[tests] TextInput",
333 message: "Instruction: Enter `Password123` and press OK.",
334 value: "",
335 mode: rustydialogs::TextInputMode::Password,
336 owner: None,
337 }.show()
338 );
339
340 step("Enter these three lines and press OK.",
341 Some(String::from("Line 1\nLine 2\nLine 3")),
342 || rustydialogs::TextInput {
343 title: "[tests] TextInput",
344 message: "Instruction: Enter these three lines and press OK.\nLine 1\nLine 2\nLine 3",
345 value: "",
346 mode: rustydialogs::TextInputMode::MultiLine,
347 owner: None,
348 }.show()
349 );
350
351 step("Dismiss the dialog.",
352 None,
353 || rustydialogs::TextInput {
354 title: "[tests] Dismiss TextInput",
355 message: "Instruction: Dismiss the dialog (e.g. by pressing Esc or clicking the close button).",
356 value: "",
357 mode: rustydialogs::TextInputMode::SingleLine,
358 owner: None,
359 }.show()
360 );
361}Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for TextInput<'a>
impl<'a> !RefUnwindSafe for TextInput<'a>
impl<'a> !Send for TextInput<'a>
impl<'a> !Sync for TextInput<'a>
impl<'a> Unpin for TextInput<'a>
impl<'a> UnsafeUnpin for TextInput<'a>
impl<'a> !UnwindSafe for TextInput<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more