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-19 05:57:11 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-19 08:17:21 +0300
commiteae2942474fa06b369b3fc6ebdeddad90ca38d43 (patch)
tree9f86fe5ccf647da525906186f617171c0e6aadeb /source/blender/windowmanager/wm_event_system.h
parent55ac296358a45fd11700df328fb47f061c8aca4f (diff)
WM: move UI handler to it's own type
Diffstat (limited to 'source/blender/windowmanager/wm_event_system.h')
-rw-r--r--source/blender/windowmanager/wm_event_system.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/source/blender/windowmanager/wm_event_system.h b/source/blender/windowmanager/wm_event_system.h
index e585d40ebb9..3e9793521ae 100644
--- a/source/blender/windowmanager/wm_event_system.h
+++ b/source/blender/windowmanager/wm_event_system.h
@@ -44,6 +44,7 @@ struct wmEventHandler_KeymapFn {
enum eWM_EventHandlerType {
WM_HANDLER_TYPE_DEFAULT,
WM_HANDLER_TYPE_GIZMO,
+ WM_HANDLER_TYPE_UI,
};
typedef struct wmEventHandler {
@@ -67,13 +68,6 @@ typedef struct wmEventHandler {
struct ARegion *op_region; /* for derived/modal handlers */
short op_region_type; /* for derived/modal handlers */
- /* ui handler */
- wmUIHandlerFunc ui_handle; /* callback receiving events */
- wmUIHandlerRemoveFunc ui_remove; /* callback when handler is removed */
- void *ui_userdata; /* user data pointer */
- struct ScrArea *ui_area; /* for derived/modal handlers */
- struct ARegion *ui_region; /* for derived/modal handlers */
- struct ARegion *ui_menu; /* for derived/modal handlers */
/* drop box handler */
ListBase *dropboxes;
@@ -87,6 +81,22 @@ typedef struct wmEventHandler_Gizmo {
struct wmGizmoMap *gizmo_map;
} wmEventHandler_Gizmo;
+/** #WM_HANDLER_TYPE_UI */
+typedef struct wmEventHandler_UI {
+ wmEventHandler base;
+
+ wmUIHandlerFunc handle_fn; /* callback receiving events */
+ wmUIHandlerRemoveFunc remove_fn; /* callback when handler is removed */
+ void *user_data; /* user data pointer */
+
+ /** Store context for this handler for derived/modal handlers. */
+ struct {
+ struct ScrArea *area;
+ struct ARegion *region;
+ struct ARegion *menu;
+ } context;
+} wmEventHandler_UI;
+
/* wm_event_system.c */
void wm_event_free_all (wmWindow *win);
void wm_event_free (wmEvent *event);