pub fn wait_for_key() -> i32Examples found in repository?
More examples
examples/ex_text.rs (line 21)
7fn main() {
8 new_app();
9 let mut hello_text = new_text("Hello, world", 0, 0);
10 hello_text = set_text_effects(hello_text, vec![TextEffect::Italic, TextEffect::Bold]);
11 hello_text = center_text(hello_text, true, true);
12
13 let region = new_region(0, 0, 20, 5, None, Border::All);
14 let mut top_left_text = new_text("Top", 3, 2);
15 top_left_text = set_text_region(top_left_text, ®ion);
16
17 // Region must be rendered before the text that it contains
18 render_region(®ion);
19 render_text(&top_left_text);
20 render_text(&hello_text);
21 wait_for_key();
22}examples/ex_region.rs (line 19)
7fn main() {
8 new_app();
9 let mut str_vec = vec![];
10 for i in 1..21 {
11 str_vec.push(format!("item {}", i));
12 }
13 let region = new_region(1, 1, 12, 10, Some("Title"), Border::All);
14 let mut list = new_list(2, 2, 10, 8, str_vec);
15 list = set_list_fill_width(list, true);
16 loop {
17 render_region(®ion);
18 render_list(&list);
19 let ch = wait_for_key();
20 if ch == KEY_UP {
21 list = move_prev_list_item(list);
22 } else if ch == KEY_DOWN {
23 list = move_next_list_item(list);
24 }
25 }
26}examples/ex_input.rs (line 18)
8fn main() {
9 new_app();
10 let mut active_input = 0;
11 let mut input_username = new_input(2, 2, 30, "Username", false);
12 let mut input_password = new_input(2, 3, 30, "Password", true);
13 let mut result_text = new_text("", 2, 4);
14 loop {
15 render_input(&input_username);
16 render_input(&input_password);
17 render_text(&result_text);
18 let ch = wait_for_key();
19 if ch == KEY_DOWN {
20 active_input = 1;
21 } else if ch == KEY_UP {
22 active_input = 0;
23 } else if ch == KEY_BACKSPACE {
24 if active_input == 0 {
25 input_username = remove_input_last_char(input_username);
26 } else {
27 input_password = remove_input_last_char(input_password);
28 }
29 } else if ch == KEY_RETURN {
30 let username = get_input_value(&input_username);
31 let password = get_input_value(&input_password);
32 result_text = set_text_content(result_text, &format!("result: {}|{}", username, password));
33 } else {
34 let input_char = char::from_u32(ch as u32).unwrap();
35 if active_input == 0 {
36 input_username = add_input_char(input_username, input_char);
37 } else {
38 input_password = add_input_char(input_password, input_char);
39 }
40 }
41 }
42}examples/ex_list.rs (line 42)
7fn main() {
8 new_app();
9 let mut str_vec = vec![];
10 let mut current_list = 1;
11 for i in 1..21 {
12 str_vec.push(format!("item {}", i));
13 }
14 let mut list_1 = new_list(10, 2, 20, 10, str_vec.clone());
15 let item_vec = vec![
16 String::from("This is long"),
17 String::from("This is longer"),
18 String::from("This is even longer"),
19 String::from("This is the longest one"),
20 ];
21 let mut list_2 = new_list(30, 2, 20, 10, item_vec.clone());
22
23 let mut instruction = new_text("Use <- to focus left list and -> for right list", 10, 12);
24 instruction = set_text_effects(instruction, vec![TextEffect::Bold]);
25
26 list_1 = set_list_fill_width(list_1, true);
27 list_2 = set_list_fill_width(list_2, true);
28 list_2 = set_list_text_overflow(list_2, TextOverflow::Ellipsis);
29
30 let _j_key = translate_key('j');
31 let _k_key = translate_key('k');
32 let up_key = KEY_UP;
33 let down_key = KEY_DOWN;
34 let left_key = KEY_LEFT;
35 let right_key = KEY_RIGHT;
36 let enter_key = KEY_RETURN;
37
38 loop {
39 render_list(&list_1);
40 render_list(&list_2);
41 render_text(&instruction);
42 let ch = wait_for_key();
43 if ch == _k_key || ch == up_key {
44 if current_list == 1 {
45 list_1 = move_prev_list_item(list_1);
46 } else {
47 list_2 = move_prev_list_item(list_2);
48 }
49 } else if ch == _j_key || ch == down_key {
50 if current_list == 1 {
51 list_1 = move_next_list_item(list_1);
52 } else {
53 list_2 = move_next_list_item(list_2);
54 }
55 } else if ch == left_key {
56 current_list = 1;
57 } else if ch == right_key {
58 current_list = 2;
59 } else if ch == enter_key {
60 let result_1 = str_vec
61 .get(get_list_selected_index(&list_1) as usize)
62 .unwrap();
63 let result_text_1 = new_text(&format!("Selected in left list: {}", result_1), 10, 13);
64 let result_2 = item_vec
65 .get(get_list_selected_index(&list_2) as usize)
66 .unwrap();
67 let result_text_2 = new_text(&format!("Selected in right list: {}", result_2), 10, 14);
68 render_text(&result_text_1);
69 render_text(&result_text_2);
70 }
71 }
72}