diff options
Diffstat (limited to 'main/keyboard.h')
| -rw-r--r-- | main/keyboard.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/main/keyboard.h b/main/keyboard.h index 495c499..9c4118f 100644 --- a/main/keyboard.h +++ b/main/keyboard.h | |||
| @@ -5,11 +5,6 @@ | |||
| 5 | #include <stdbool.h> | 5 | #include <stdbool.h> |
| 6 | 6 | ||
| 7 | #define KB_INPUT_MAX 64 | 7 | #define KB_INPUT_MAX 64 |
| 8 | #define KB_KEY_W 28 | ||
| 9 | #define KB_KEY_H 36 | ||
| 10 | #define KB_KEY_GAP 2 | ||
| 11 | #define KB_ROW_COUNT 4 | ||
| 12 | #define KB_START_Y 70 | ||
| 13 | 8 | ||
| 14 | typedef enum { | 9 | typedef enum { |
| 15 | KB_ALPHA_LOWER, | 10 | KB_ALPHA_LOWER, |
| @@ -28,18 +23,29 @@ typedef enum { | |||
| 28 | } kb_action_t; | 23 | } kb_action_t; |
| 29 | 24 | ||
| 30 | typedef struct { | 25 | typedef struct { |
| 31 | kb_action_t action; | ||
| 32 | char ch; | ||
| 33 | } kb_result_t; | ||
| 34 | |||
| 35 | typedef struct { | ||
| 36 | char input[KB_INPUT_MAX + 1]; | 26 | char input[KB_INPUT_MAX + 1]; |
| 37 | int cursor; | 27 | int cursor; |
| 38 | bool reveal; | 28 | bool reveal; |
| 39 | kb_layer_t layer; | 29 | kb_layer_t layer; |
| 40 | } kb_state_t; | 30 | } kb_state_t; |
| 41 | 31 | ||
| 32 | typedef struct { | ||
| 33 | kb_action_t action; | ||
| 34 | char ch; | ||
| 35 | } kb_result_t; | ||
| 36 | |||
| 37 | typedef struct { | ||
| 38 | int key_w; | ||
| 39 | int key_h; | ||
| 40 | int key_gap; | ||
| 41 | int start_y; | ||
| 42 | int screen_w; | ||
| 43 | int row_count; | ||
| 44 | } kb_layout_t; | ||
| 45 | |||
| 42 | void kb_state_init(kb_state_t *st); | 46 | void kb_state_init(kb_state_t *st); |
| 47 | void kb_set_layout(const kb_layout_t *layout); | ||
| 48 | const kb_layout_t *kb_get_layout(void); | ||
| 43 | int kb_get_row_keys(int row, kb_layer_t layer, const char **keys_out); | 49 | int kb_get_row_keys(int row, kb_layer_t layer, const char **keys_out); |
| 44 | kb_result_t kb_hit_test(int tx, int ty, kb_layer_t layer); | 50 | kb_result_t kb_hit_test(int tx, int ty, kb_layer_t layer); |
| 45 | void kb_apply(kb_state_t *st, kb_result_t result); | 51 | void kb_apply(kb_state_t *st, kb_result_t result); |