diff options
author | Campbell Barton <campbell@blender.org> | 2022-04-04 06:47:06 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-04-04 07:32:42 +0300 |
commit | f699dbba86156ad3f24c24e3d369f0708b3fd1b5 (patch) | |
tree | e244f3f17a5a2166d443d25c14abb915d316f1a2 /source/blender/windowmanager/intern | |
parent | 0ef96cd3922dbc16271f2dbaca0c7752db92a40d (diff) |
Cleanup: use event parameters for functions that create key-map items
Replace 5 arguments with a single struct as the same arguments
are used in many places.
This didn't read well and was confusing with both arguments named
`val` & `value` in the case of WM_modalkeymap_add_item.
Diffstat (limited to 'source/blender/windowmanager/intern')
-rw-r--r-- | source/blender/windowmanager/intern/wm_keymap.c | 64 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_keymap_utils.c | 36 |
2 files changed, 37 insertions, 63 deletions
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c index ffac585cde7..1fa5e64093f 100644 --- a/source/blender/windowmanager/intern/wm_keymap.c +++ b/source/blender/windowmanager/intern/wm_keymap.c @@ -456,32 +456,35 @@ bool WM_keymap_poll(bContext *C, wmKeyMap *keymap) return true; } -static void keymap_event_set( - wmKeyMapItem *kmi, short type, short val, int modifier, short keymodifier, int direction) +static void keymap_event_set(wmKeyMapItem *kmi, const KeyMapItem_Params *params) { - kmi->type = type; - kmi->val = val; - kmi->keymodifier = keymodifier; - kmi->direction = direction; + kmi->type = params->type; + kmi->val = params->value; + kmi->keymodifier = params->keymodifier; + kmi->direction = params->direction; - if (modifier == KM_ANY) { + if (params->modifier == KM_ANY) { kmi->shift = kmi->ctrl = kmi->alt = kmi->oskey = KM_ANY; } else { /* Only one of the flags should be set. */ - BLI_assert(((modifier & (KM_SHIFT | KM_SHIFT_ANY)) != (KM_SHIFT | KM_SHIFT_ANY)) && - ((modifier & (KM_CTRL | KM_CTRL_ANY)) != (KM_CTRL | KM_CTRL_ANY)) && - ((modifier & (KM_ALT | KM_ALT_ANY)) != (KM_ALT | KM_ALT_ANY)) && - ((modifier & (KM_OSKEY | KM_OSKEY_ANY)) != (KM_OSKEY | KM_OSKEY_ANY))); - - kmi->shift = ((modifier & KM_SHIFT) ? KM_MOD_HELD : - ((modifier & KM_SHIFT_ANY) ? KM_ANY : KM_NOTHING)); - kmi->ctrl = ((modifier & KM_CTRL) ? KM_MOD_HELD : - ((modifier & KM_CTRL_ANY) ? KM_ANY : KM_NOTHING)); - kmi->alt = ((modifier & KM_ALT) ? KM_MOD_HELD : - ((modifier & KM_ALT_ANY) ? KM_ANY : KM_NOTHING)); - kmi->oskey = ((modifier & KM_OSKEY) ? KM_MOD_HELD : - ((modifier & KM_OSKEY_ANY) ? KM_ANY : KM_NOTHING)); + BLI_assert(((params->modifier & (KM_SHIFT | KM_SHIFT_ANY)) != (KM_SHIFT | KM_SHIFT_ANY)) && + ((params->modifier & (KM_CTRL | KM_CTRL_ANY)) != (KM_CTRL | KM_CTRL_ANY)) && + ((params->modifier & (KM_ALT | KM_ALT_ANY)) != (KM_ALT | KM_ALT_ANY)) && + ((params->modifier & (KM_OSKEY | KM_OSKEY_ANY)) != (KM_OSKEY | KM_OSKEY_ANY))); + + kmi->shift = ((params->modifier & KM_SHIFT) ? + KM_MOD_HELD : + ((params->modifier & KM_SHIFT_ANY) ? KM_ANY : KM_NOTHING)); + kmi->ctrl = ((params->modifier & KM_CTRL) ? + KM_MOD_HELD : + ((params->modifier & KM_CTRL_ANY) ? KM_ANY : KM_NOTHING)); + kmi->alt = ((params->modifier & KM_ALT) ? + KM_MOD_HELD : + ((params->modifier & KM_ALT_ANY) ? KM_ANY : KM_NOTHING)); + kmi->oskey = ((params->modifier & KM_OSKEY) ? + KM_MOD_HELD : + ((params->modifier & KM_OSKEY_ANY) ? KM_ANY : KM_NOTHING)); } } @@ -498,18 +501,14 @@ static void keymap_item_set_id(wmKeyMap *keymap, wmKeyMapItem *kmi) wmKeyMapItem *WM_keymap_add_item(wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction) + const KeyMapItem_Params *params) { wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry"); BLI_addtail(&keymap->items, kmi); BLI_strncpy(kmi->idname, idname, OP_MAX_TYPENAME); - keymap_event_set(kmi, type, val, modifier, keymodifier, direction); + keymap_event_set(kmi, params); wm_keymap_item_properties_set(kmi); keymap_item_set_id(keymap, kmi); @@ -922,15 +921,14 @@ wmKeyMap *WM_modalkeymap_find(wmKeyConfig *keyconf, const char *idname) return NULL; } -wmKeyMapItem *WM_modalkeymap_add_item( - wmKeyMap *km, int type, int val, int modifier, int keymodifier, int direction, int value) +wmKeyMapItem *WM_modalkeymap_add_item(wmKeyMap *km, const KeyMapItem_Params *params, int value) { wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry"); BLI_addtail(&km->items, kmi); kmi->propvalue = value; - keymap_event_set(kmi, type, val, modifier, keymodifier, direction); + keymap_event_set(kmi, params); keymap_item_set_id(km, kmi); @@ -940,11 +938,7 @@ wmKeyMapItem *WM_modalkeymap_add_item( } wmKeyMapItem *WM_modalkeymap_add_item_str(wmKeyMap *km, - int type, - int val, - int modifier, - int keymodifier, - int direction, + const KeyMapItem_Params *params, const char *value) { wmKeyMapItem *kmi = MEM_callocN(sizeof(wmKeyMapItem), "keymap entry"); @@ -952,7 +946,7 @@ wmKeyMapItem *WM_modalkeymap_add_item_str(wmKeyMap *km, BLI_addtail(&km->items, kmi); BLI_strncpy(kmi->propvalue_str, value, sizeof(kmi->propvalue_str)); - keymap_event_set(kmi, type, val, modifier, keymodifier, direction); + keymap_event_set(kmi, params); keymap_item_set_id(km, kmi); diff --git a/source/blender/windowmanager/intern/wm_keymap_utils.c b/source/blender/windowmanager/intern/wm_keymap_utils.c index 24c221221d1..5a35570296a 100644 --- a/source/blender/windowmanager/intern/wm_keymap_utils.c +++ b/source/blender/windowmanager/intern/wm_keymap_utils.c @@ -31,42 +31,27 @@ wmKeyMapItem *WM_keymap_add_menu(wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction) + const KeyMapItem_Params *params) { - wmKeyMapItem *kmi = WM_keymap_add_item( - keymap, "WM_OT_call_menu", type, val, modifier, keymodifier, direction); + wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_menu", params); RNA_string_set(kmi->ptr, "name", idname); return kmi; } wmKeyMapItem *WM_keymap_add_menu_pie(wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction) + const KeyMapItem_Params *params) { - wmKeyMapItem *kmi = WM_keymap_add_item( - keymap, "WM_OT_call_menu_pie", type, val, modifier, keymodifier, direction); + wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_menu_pie", params); RNA_string_set(kmi->ptr, "name", idname); return kmi; } wmKeyMapItem *WM_keymap_add_panel(wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction) + const KeyMapItem_Params *params) { - wmKeyMapItem *kmi = WM_keymap_add_item( - keymap, "WM_OT_call_panel", type, val, modifier, keymodifier, direction); + wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_call_panel", params); RNA_string_set(kmi->ptr, "name", idname); /* TODO: we might want to disable this. */ RNA_boolean_set(kmi->ptr, "keep_open", false); @@ -75,14 +60,9 @@ wmKeyMapItem *WM_keymap_add_panel(wmKeyMap *keymap, wmKeyMapItem *WM_keymap_add_tool(wmKeyMap *keymap, const char *idname, - int type, - int val, - int modifier, - int keymodifier, - int direction) + const KeyMapItem_Params *params) { - wmKeyMapItem *kmi = WM_keymap_add_item( - keymap, "WM_OT_tool_set_by_id", type, val, modifier, keymodifier, direction); + wmKeyMapItem *kmi = WM_keymap_add_item(keymap, "WM_OT_tool_set_by_id", params); RNA_string_set(kmi->ptr, "name", idname); return kmi; } |