diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_screen.h | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h index 7b5df98d148..4274d59cb9f 100644 --- a/source/blender/blenkernel/BKE_screen.h +++ b/source/blender/blenkernel/BKE_screen.h @@ -67,6 +67,13 @@ struct wmWindowManager; #define BKE_ST_MAXNAME 64 +typedef struct wmSpaceTypeListenerParams { + struct wmWindow *window; + struct ScrArea *area; + struct wmNotifier *notifier; + const struct Scene *scene; +} wmSpaceTypeListenerParams; + typedef struct SpaceType { struct SpaceType *next, *prev; @@ -85,10 +92,7 @@ typedef struct SpaceType { /* exit is called when the area is hidden or removed */ void (*exit)(struct wmWindowManager *wm, struct ScrArea *area); /* Listeners can react to bContext changes */ - void (*listener)(struct wmWindow *win, - struct ScrArea *area, - struct wmNotifier *wmn, - struct Scene *scene); + void (*listener)(wmSpaceTypeListenerParams *params); /* called when the mouse moves out of the area */ void (*deactivate)(struct ScrArea *area); @@ -134,6 +138,23 @@ typedef struct SpaceType { /* region types are also defined using spacetypes_init, via a callback */ +typedef struct wmRegionListenerParams { + struct ScrArea *area; /* Can be NULL when the region is not part of an area. */ + struct ARegion *region; + struct wmNotifier *notifier; + const struct Scene *scene; +} wmRegionListenerParams; + +typedef struct wmRegionMessageSubscribeParams { + const struct bContext *context; + struct wmMsgBus *message_bus; + struct WorkSpace *workspace; + struct Scene *scene; + struct bScreen *screen; + struct ScrArea *area; + struct ARegion *region; +} wmRegionMessageSubscribeParams; + typedef struct ARegionType { struct ARegionType *next, *prev; @@ -158,19 +179,9 @@ typedef struct ARegionType { /* snap the size of the region (can be NULL for no snapping). */ int (*snap_size)(const struct ARegion *region, int size, int axis); /* contextual changes should be handled here */ - void (*listener)(struct wmWindow *win, - struct ScrArea *area, - struct ARegion *region, - struct wmNotifier *wmn, - const struct Scene *scene); + void (*listener)(wmRegionListenerParams *params); /* Optional callback to generate subscriptions. */ - void (*message_subscribe)(const struct bContext *C, - struct WorkSpace *workspace, - struct Scene *scene, - struct bScreen *screen, - struct ScrArea *area, - struct ARegion *region, - struct wmMsgBus *mbus); + void (*message_subscribe)(wmRegionMessageSubscribeParams *params); void (*free)(struct ARegion *); |