Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-02-20 06:29:29 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-20 06:37:15 +0300
commiteffe750ec103d56ff96f12ce64ac977a8ae51909 (patch)
treefd081fdade0458fa388b55d277034aa38588d146 /source/blender/windowmanager/WM_api.h
parent855b3e68ef272f6ddb3b496cf8e6d074733e99d4 (diff)
WM: support dynamic keymap handlers
Add getter callback support for 'WM_HANDLER_TYPE_KEYMAP' type handlers this is needed for key-maps which change based on the active tool. Replaces 'sneaky_handler' hack which temporarily inserted a handler.
Diffstat (limited to 'source/blender/windowmanager/WM_api.h')
-rw-r--r--source/blender/windowmanager/WM_api.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index ae4f4cb338c..4b4473da625 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -198,12 +198,20 @@ struct wmEventHandler_Keymap *WM_event_add_keymap_handler_bb(
struct wmEventHandler_Keymap *WM_event_add_keymap_handler_priority(
ListBase *handlers, wmKeyMap *keymap, int priority);
+typedef struct wmKeyMap *(wmEventHandler_KeymapDynamicFn)(wmWindowManager *wm, struct wmEventHandler_Keymap *handler) ATTR_WARN_UNUSED_RESULT;
+
+struct wmKeyMap *WM_event_get_keymap_from_toolsystem(struct wmWindowManager *wm, struct wmEventHandler_Keymap *handler);
+
+struct wmEventHandler_Keymap *WM_event_add_keymap_handler_dynamic(
+ ListBase *handlers, wmEventHandler_KeymapDynamicFn *keymap_fn, void *user_data);
+
void WM_event_remove_keymap_handler(ListBase *handlers, wmKeyMap *keymap);
void WM_event_set_keymap_handler_callback(
struct wmEventHandler_Keymap *handler,
void (keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data),
void *user_data);
+wmKeyMap *WM_event_get_keymap_from_handler(wmWindowManager *wm, struct wmEventHandler_Keymap *handler);
typedef int (*wmUIHandlerFunc)(struct bContext *C, const struct wmEvent *event, void *userdata);
typedef void (*wmUIHandlerRemoveFunc)(struct bContext *C, void *userdata);