Adapt coloring to new ctrl flags
This commit is contained in:
parent
5a4cce77ea
commit
e1e09ed17f
3 changed files with 54 additions and 43 deletions
72
main.c
72
main.c
|
|
@ -81,6 +81,13 @@ static void terminal_resize_timer_cb(lv_timer_t *timer);
|
|||
*/
|
||||
static void set_theme(bool is_dark);
|
||||
|
||||
/**
|
||||
* Handle LV_EVENT_DRAW_PART_BEGIN events from the keyboard widget.
|
||||
*
|
||||
* @param event the event object
|
||||
*/
|
||||
static void keyboard_draw_part_begin_cb(lv_event_t *event);
|
||||
|
||||
/**
|
||||
* Handle LV_EVENT_VALUE_CHANGED events from the keyboard widget.
|
||||
*
|
||||
|
|
@ -124,6 +131,38 @@ static void set_theme(bool is_dark) {
|
|||
lv_theme_default_init(NULL, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_CYAN), is_dark, &montserrat_extended_32);
|
||||
}
|
||||
|
||||
static void keyboard_draw_part_begin_cb(lv_event_t *event) {
|
||||
lv_obj_t *obj = lv_event_get_target(event);
|
||||
lv_btnmatrix_t *btnm = (lv_btnmatrix_t *)obj;
|
||||
lv_obj_draw_part_dsc_t *dsc = lv_event_get_param(event);
|
||||
|
||||
if (dsc->part != LV_PART_ITEMS) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (lv_btnmatrix_get_selected_btn(obj) == dsc->id) { /* key is held down */
|
||||
if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_MOD_INACTIVE) == SQ2LV_CTRL_MOD_INACTIVE) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_TEAL, 1);
|
||||
} else if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_MOD_ACTIVE) == SQ2LV_CTRL_MOD_ACTIVE) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_TEAL, 1);
|
||||
} else if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_NON_CHAR) == SQ2LV_CTRL_NON_CHAR) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE_GREY, 3);
|
||||
} else {
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_BLUE_GREY, 1);
|
||||
}
|
||||
} else { /* key is not held down */
|
||||
if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_MOD_INACTIVE) == SQ2LV_CTRL_MOD_INACTIVE) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE_GREY, 4);
|
||||
} else if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_MOD_ACTIVE) == SQ2LV_CTRL_MOD_ACTIVE) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_TEAL);
|
||||
} else if ((btnm->ctrl_bits[dsc->id] & SQ2LV_CTRL_NON_CHAR) == SQ2LV_CTRL_NON_CHAR) {
|
||||
dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE_GREY, 4);
|
||||
} else {
|
||||
dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_BLUE_GREY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void keyboard_value_changed_cb(lv_event_t *event) {
|
||||
lv_obj_t *kb = lv_event_get_target(event);
|
||||
|
||||
|
|
@ -186,39 +225,6 @@ static void pop_checked_modifier_keys(void) {
|
|||
}
|
||||
}
|
||||
|
||||
static void keyboard_draw_part_begin_cb(lv_event_t *event) {
|
||||
lv_obj_t *obj = lv_event_get_target(event);
|
||||
lv_obj_draw_part_dsc_t *dsc = lv_event_get_param(event);
|
||||
|
||||
if (dsc->part != LV_PART_ITEMS) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (lv_btnmatrix_get_selected_btn(obj) == dsc->id) { /* key is held down */
|
||||
if (lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_CHECKED)) {
|
||||
if (lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_CHECKABLE)) { /* inactive modifiers */
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_TEAL, 1);
|
||||
} else { /* non-letters */
|
||||
dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE_GREY, 3);
|
||||
}
|
||||
} else {
|
||||
if (lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_CHECKABLE)) { /* active modifiers */
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_TEAL, 1);
|
||||
} else { /* letters */
|
||||
dsc->rect_dsc->bg_color = lv_palette_lighten(LV_PALETTE_BLUE_GREY, 1);
|
||||
}
|
||||
}
|
||||
} else { /* key is not held down */
|
||||
if (lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_CHECKED)) { /* inactive modifiers & non-letters */
|
||||
dsc->rect_dsc->bg_color = lv_palette_darken(LV_PALETTE_BLUE_GREY, 4);
|
||||
} else if (lv_btnmatrix_has_btn_ctrl(obj, dsc->id, LV_BTNMATRIX_CTRL_CHECKABLE)) { /* active modifiers */
|
||||
dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_TEAL);
|
||||
} else { /* letters */
|
||||
dsc->rect_dsc->bg_color = lv_palette_main(LV_PALETTE_BLUE_GREY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Main
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@ static const char * const keycaps_lower_terminal_us[] = { \
|
|||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t attributes_lower_terminal_us[] = { \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, 2, 2, 2, 2, 2, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
SQ2LV_CTRL_MOD_INACTIVE | 3, 2, 2, 2, 2, 2, 2, 2, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_lower_terminal_us = 2;
|
||||
|
|
@ -87,11 +87,11 @@ static const char * const keycaps_upper_terminal_us[] = { \
|
|||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t attributes_upper_terminal_us[] = { \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, 2, 2, 2, 2, 2, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
SQ2LV_CTRL_MOD_ACTIVE | 3, 2, 2, 2, 2, 2, 2, 2, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
SQ2LV_CTRL_NON_CHAR | 3, 7, SQ2LV_CTRL_NON_CHAR | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_upper_terminal_us = 2;
|
||||
|
|
@ -149,11 +149,11 @@ static const char * const keycaps_numbers_terminal_us[] = { \
|
|||
};
|
||||
|
||||
static const lv_btnmatrix_ctrl_t attributes_numbers_terminal_us[] = { \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | LV_BTNMATRIX_CTRL_CHECKABLE | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_MOD_INACTIVE | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
|
||||
2, 2, 2, 2, 2, 2, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
|
||||
LV_KEYBOARD_CTRL_BTN_FLAGS | 3, LV_KEYBOARD_CTRL_BTN_FLAGS | 7, 2, LV_KEYBOARD_CTRL_BTN_FLAGS | 3 \
|
||||
2, 2, 2, 2, 2, 2, 2, SQ2LV_CTRL_NON_CHAR | 3, \
|
||||
SQ2LV_CTRL_NON_CHAR | 3, 7, 2, SQ2LV_CTRL_NON_CHAR | 3 \
|
||||
};
|
||||
|
||||
static const int num_modifiers_numbers_terminal_us = 2;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,11 @@
|
|||
|
||||
#define SQ2LV_SCANCODES_ENABLED 1
|
||||
|
||||
/* Key attributes */
|
||||
#define SQ2LV_CTRL_NON_CHAR (LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CLICK_TRIG | LV_BTNMATRIX_CTRL_CHECKED)
|
||||
#define SQ2LV_CTRL_MOD_ACTIVE (LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CLICK_TRIG | LV_BTNMATRIX_CTRL_CHECKABLE)
|
||||
#define SQ2LV_CTRL_MOD_INACTIVE (LV_BTNMATRIX_CTRL_NO_REPEAT | LV_BTNMATRIX_CTRL_CLICK_TRIG | LV_BTNMATRIX_CTRL_CHECKABLE | LV_BTNMATRIX_CTRL_CHECKED)
|
||||
|
||||
/* Layout IDs, values can be used as indexes into the sq2lv_layouts array */
|
||||
typedef enum {
|
||||
SQ2LV_LAYOUT_TERMINAL_US = 0
|
||||
|
|
@ -20,7 +25,7 @@ typedef struct {
|
|||
const int num_keys;
|
||||
/* Key caps */
|
||||
const char ** const keycaps;
|
||||
/* Button matrix attributes */
|
||||
/* Key attributes */
|
||||
const lv_btnmatrix_ctrl_t * const attributes;
|
||||
/* Number of modifier keys */
|
||||
const int num_modifiers;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue