Add LV_BTNMATRIX_CTRL_CHECKABLE for modifiers

This commit is contained in:
Johannes Marbach 2021-09-13 20:08:44 +02:00
parent f578456d47
commit c0e99da8f5
2 changed files with 29 additions and 8 deletions

View file

@ -24,7 +24,7 @@ static const char * const keycaps_lower_terminal_us[] = { \
};
static const lv_btnmatrix_ctrl_t attributes_lower_terminal_us[] = { \
LV_KEYBOARD_CTRL_BTN_FLAGS | 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, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
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, \
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, \
@ -86,7 +86,7 @@ static const char * const keycaps_upper_terminal_us[] = { \
};
static const lv_btnmatrix_ctrl_t attributes_upper_terminal_us[] = { \
LV_KEYBOARD_CTRL_BTN_FLAGS | 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, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
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, \
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, \
@ -148,7 +148,7 @@ static const char * const keycaps_numbers_terminal_us[] = { \
};
static const lv_btnmatrix_ctrl_t attributes_numbers_terminal_us[] = { \
LV_KEYBOARD_CTRL_BTN_FLAGS | 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, LV_KEYBOARD_CTRL_BTN_FLAGS | 3, \
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, \
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, \

View file

@ -351,16 +351,37 @@ def key_to_keycap(key, view_id, layout_id):
return keycap
def key_is_modifier(key, data_buttons):
"""Return true if a key acts as a modifier..
key -- the key in question
data_buttons -- the "buttons" object from the layout's YAML file
"""
return key in data_buttons and 'modifier' in data_buttons[key]
def key_to_attributes(key, data_buttons):
"""Return the LVGL button attributes for a key.
key -- the key in question
data_buttons -- the "buttons" object from the layout's YAML file
"""
if key in ['period', 'colon', '"'] or key not in data_buttons:
return '2'
width = 7 if key == 'space' else 3
return f'LV_KEYBOARD_CTRL_BTN_FLAGS | {width}'
attributes = []
if key in data_buttons and key not in ['period', 'colon', '"']:
attributes.append('LV_KEYBOARD_CTRL_BTN_FLAGS')
if key_is_modifier(key, data_buttons):
attributes.append('LV_BTNMATRIX_CTRL_CHECKABLE')
if key not in data_buttons or key in ['period', 'colon', '"']:
attributes.append('2')
elif key == 'space':
attributes.append('7')
else:
attributes.append('3')
return ' | '.join(attributes)
def keycap_to_c_value(keycap):
@ -523,7 +544,7 @@ def get_keycaps_attrs_modifiers_switchers_scancodes(args, layout_id, view_id, da
keycaps_in_row.append(keycap_to_c_value(keycap))
attrs_in_row.append(key_to_attributes(key, data_buttons))
if key in data_buttons and 'modifier' in data_buttons[key]:
if key_is_modifier(key, data_buttons):
modifier_idxs.append(idx)
if key in data_buttons and 'action' in data_buttons[key]: