Graphics/Input/
Key.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use crate::LVGL;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Key_type {
    Up,
    Down,
    Right,
    Left,
    Escape,
    Delete,
    Backspace,
    Enter,
    Next,
    Previous,
    Home,
    End,
    Character(u8),
}

impl From<u32> for Key_type {
    fn from(Value: u32) -> Key_type {
        match Value {
            LVGL::lv_key_t_LV_KEY_UP => Key_type::Up,
            LVGL::lv_key_t_LV_KEY_DOWN => Key_type::Down,
            LVGL::lv_key_t_LV_KEY_RIGHT => Key_type::Right,
            LVGL::lv_key_t_LV_KEY_LEFT => Key_type::Left,
            LVGL::lv_key_t_LV_KEY_ESC => Key_type::Escape,
            LVGL::lv_key_t_LV_KEY_DEL => Key_type::Delete,
            LVGL::lv_key_t_LV_KEY_BACKSPACE => Key_type::Backspace,
            LVGL::lv_key_t_LV_KEY_ENTER => Key_type::Enter,
            LVGL::lv_key_t_LV_KEY_NEXT => Key_type::Next,
            LVGL::lv_key_t_LV_KEY_PREV => Key_type::Previous,
            LVGL::lv_key_t_LV_KEY_HOME => Key_type::Home,
            LVGL::lv_key_t_LV_KEY_END => Key_type::End,
            Character => Key_type::Character(Character as u8),
        }
    }
}

impl From<Key_type> for u32 {
    fn from(Value: Key_type) -> u32 {
        match Value {
            Key_type::Up => LVGL::lv_key_t_LV_KEY_UP,
            Key_type::Down => LVGL::lv_key_t_LV_KEY_DOWN,
            Key_type::Right => LVGL::lv_key_t_LV_KEY_RIGHT,
            Key_type::Left => LVGL::lv_key_t_LV_KEY_LEFT,
            Key_type::Escape => LVGL::lv_key_t_LV_KEY_ESC,
            Key_type::Delete => LVGL::lv_key_t_LV_KEY_DEL,
            Key_type::Backspace => LVGL::lv_key_t_LV_KEY_BACKSPACE,
            Key_type::Enter => LVGL::lv_key_t_LV_KEY_ENTER,
            Key_type::Next => LVGL::lv_key_t_LV_KEY_NEXT,
            Key_type::Previous => LVGL::lv_key_t_LV_KEY_PREV,
            Key_type::Home => LVGL::lv_key_t_LV_KEY_HOME,
            Key_type::End => LVGL::lv_key_t_LV_KEY_END,
            Key_type::Character(Character) => Character as u32,
        }
    }
}