diff options
Diffstat (limited to 'source/blender/windowmanager/WM_keymap.h')
-rw-r--r-- | source/blender/windowmanager/WM_keymap.h | 56 |
1 files changed, 21 insertions, 35 deletions
diff --git a/source/blender/windowmanager/WM_keymap.h b/source/blender/windowmanager/WM_keymap.h index 068dbb32be2..591da28ded2 100644 --- a/source/blender/windowmanager/WM_keymap.h +++ b/source/blender/windowmanager/WM_keymap.h @@ -37,6 +37,20 @@ void WM_keyconfig_update_operatortype(void); /* Keymap */ +/** Parameters for matching events, passed into functions that create key-map items. */ +typedef struct KeyMapItem_Params { + /** #wmKeyMapItem.type */ + int16_t type; + /** #wmKeyMapItem.val */ + int8_t value; + /** #wmKeyMapItem `ctrl, shift, alt, oskey` */ + int8_t modifier; + /** #wmKeyMapItem.keymodifier */ + int16_t keymodifier; + /** #wmKeyMapItem.direction */ + int8_t direction; +} KeyMapItem_Params; + void WM_keymap_clear(struct wmKeyMap *keymap); /** @@ -44,11 +58,7 @@ void WM_keymap_clear(struct wmKeyMap *keymap); */ wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction); + const KeyMapItem_Params *params); wmKeyMapItem *WM_keymap_add_item_copy(struct wmKeyMap *keymap, wmKeyMapItem *kmi_src); bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi); @@ -87,41 +97,25 @@ bool WM_keymap_item_compare(const struct wmKeyMapItem *k1, const struct wmKeyMap */ wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction); + const KeyMapItem_Params *params); /** * Pie-menu wrapper for #WM_keymap_add_item. */ wmKeyMapItem *WM_keymap_add_menu_pie(struct wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction); + const KeyMapItem_Params *params); /** * Panel (popover) wrapper for #WM_keymap_add_item. */ wmKeyMapItem *WM_keymap_add_panel(struct wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction); + const KeyMapItem_Params *params); /** * Tool wrapper for #WM_keymap_add_item. */ wmKeyMapItem *WM_keymap_add_tool(struct wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction); + const KeyMapItem_Params *params); wmKeyMap *WM_keymap_guess_from_context(const struct bContext *C); @@ -154,18 +148,10 @@ wmKeyMap *WM_modalkeymap_ensure(struct wmKeyConfig *keyconf, const struct EnumPropertyItem *items); wmKeyMap *WM_modalkeymap_find(struct wmKeyConfig *keyconf, const char *idname); wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, - int type, - int val, - int modifier, - int keymodifier, - int direction, + const KeyMapItem_Params *params, int value); wmKeyMapItem *WM_modalkeymap_add_item_str(struct wmKeyMap *km, - int type, - int val, - int modifier, - int keymodifier, - int direction, + const KeyMapItem_Params *params, const char *value); const wmKeyMapItem *WM_modalkeymap_find_propvalue(const wmKeyMap *km, int propvalue); void WM_modalkeymap_assign(struct wmKeyMap *km, const char *opname); |