Function wait_for_key

Source
pub fn wait_for_key() -> i32
Examples found in repository?
examples/ex_tag.rs (line 10)
6fn main() {
7  new_app();
8  let tag = new_tag("Hello", 10, 10);
9  render_tag(&tag);
10  wait_for_key();
11}
More examples
Hide additional 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, &region);
16
17  // Region must be rendered before the text that it contains
18  render_region(&region);
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(&region);
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}