graphics/input/
key.rs

1use crate::lvgl;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq)]
4pub enum Key {
5    Up,
6    Down,
7    Right,
8    Left,
9    Escape,
10    Delete,
11    Backspace,
12    Enter,
13    Next,
14    Previous,
15    Home,
16    End,
17    Character(u8),
18}
19
20impl From<u32> for Key {
21    fn from(value: u32) -> Key {
22        match value {
23            lvgl::lv_key_t_LV_KEY_UP => Key::Up,
24            lvgl::lv_key_t_LV_KEY_DOWN => Key::Down,
25            lvgl::lv_key_t_LV_KEY_RIGHT => Key::Right,
26            lvgl::lv_key_t_LV_KEY_LEFT => Key::Left,
27            lvgl::lv_key_t_LV_KEY_ESC => Key::Escape,
28            lvgl::lv_key_t_LV_KEY_DEL => Key::Delete,
29            lvgl::lv_key_t_LV_KEY_BACKSPACE => Key::Backspace,
30            lvgl::lv_key_t_LV_KEY_ENTER => Key::Enter,
31            lvgl::lv_key_t_LV_KEY_NEXT => Key::Next,
32            lvgl::lv_key_t_LV_KEY_PREV => Key::Previous,
33            lvgl::lv_key_t_LV_KEY_HOME => Key::Home,
34            lvgl::lv_key_t_LV_KEY_END => Key::End,
35            character => Key::Character(character as u8),
36        }
37    }
38}
39
40impl From<Key> for u32 {
41    fn from(value: Key) -> u32 {
42        match value {
43            Key::Up => lvgl::lv_key_t_LV_KEY_UP,
44            Key::Down => lvgl::lv_key_t_LV_KEY_DOWN,
45            Key::Right => lvgl::lv_key_t_LV_KEY_RIGHT,
46            Key::Left => lvgl::lv_key_t_LV_KEY_LEFT,
47            Key::Escape => lvgl::lv_key_t_LV_KEY_ESC,
48            Key::Delete => lvgl::lv_key_t_LV_KEY_DEL,
49            Key::Backspace => lvgl::lv_key_t_LV_KEY_BACKSPACE,
50            Key::Enter => lvgl::lv_key_t_LV_KEY_ENTER,
51            Key::Next => lvgl::lv_key_t_LV_KEY_NEXT,
52            Key::Previous => lvgl::lv_key_t_LV_KEY_PREV,
53            Key::Home => lvgl::lv_key_t_LV_KEY_HOME,
54            Key::End => lvgl::lv_key_t_LV_KEY_END,
55            Key::Character(character) => character as u32,
56        }
57    }
58}