diff options
Diffstat (limited to 'source/blender/windowmanager/wm_event_types.h')
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 2d3624704d0..b4e81dc54c8 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -44,7 +44,10 @@ enum { /* non-event, for example disabled timer */ EVENT_NONE = 0x0000, - /* ********** Start of Input devices. ********** */ +/* ********** Start of Input devices. ********** */ + +/* Minimum mouse value (inclusive). */ +#define _EVT_MOUSE_MIN 0x0001 /* MOUSE: 0x000x, 0x001x */ LEFTMOUSE = 0x0001, @@ -74,6 +77,9 @@ enum { * paint and drawing tools however will want to handle these. */ INBETWEEN_MOUSEMOVE = 0x0011, +/* Maximum keyboard value (inclusive). */ +#define _EVT_MOUSE_MAX 0x0011 /* 17 */ + /* IME event, GHOST_kEventImeCompositionStart in ghost */ WM_IME_COMPOSITE_START = 0x0014, /* IME event, GHOST_kEventImeComposition in ghost */ @@ -358,12 +364,6 @@ enum { /** Test whether the event is timer event. */ #define ISTIMER(event_type) ((event_type) >= TIMER && (event_type) <= TIMERF) -/* for event checks */ -/* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */ -/* Unused, see #wm_eventmatch, see: T30479. */ -// #define ISTEXTINPUT(event_type) ((event_type) >= ' ' && (event_type) <= 255) -/* NOTE: an alternative could be to check `event->utf8_buf`. */ - /** Test whether the event is a key on the keyboard (including modifier keys). */ #define ISKEYBOARD(event_type) \ (((event_type) >= _EVT_KEYBOARD_MIN && (event_type) <= _EVT_KEYBOARD_MAX) || \ @@ -385,13 +385,16 @@ enum { (((event_type) >= EVT_LEFTCTRLKEY && (event_type) <= EVT_LEFTSHIFTKEY) || \ (event_type) == EVT_OSKEY) -/** Test whether the event is a mouse button. */ -#define ISMOUSE(event_type) \ - (((event_type) >= LEFTMOUSE && (event_type) <= BUTTON7MOUSE) || (event_type) == MOUSESMARTZOOM) -/** Test whether the event is a mouse wheel. */ -#define ISMOUSE_WHEEL(event_type) ((event_type) >= WHEELUPMOUSE && (event_type) <= WHEELOUTMOUSE) -/** Test whether the event is a mouse (track-pad) gesture. */ -#define ISMOUSE_GESTURE(event_type) ((event_type) >= MOUSEPAN && (event_type) <= MOUSEROTATE) +/** + * Test whether the event is any kind: + * #ISMOUSE_MOTION, #ISMOUSE_BUTTON, #ISMOUSE_WHEEL & #ISMOUSE_GESTURE. + * + * \note It's best to use more specific check if possible as mixing motion/buttons/gestures + * is very broad and not necessarily obvious which kinds of events are important. + */ +#define ISMOUSE(event_type) ((event_type) >= _EVT_MOUSE_MIN && (event_type) <= _EVT_MOUSE_MAX) +/** Test whether the event is a mouse button (excluding mouse-wheel). */ +#define ISMOUSE_MOTION(event_type) ELEM(event_type, MOUSEMOVE, INBETWEEN_MOUSEMOVE) /** Test whether the event is a mouse button (excluding mouse-wheel). */ #define ISMOUSE_BUTTON(event_type) \ (ELEM(event_type, \ @@ -402,6 +405,10 @@ enum { BUTTON5MOUSE, \ BUTTON6MOUSE, \ BUTTON7MOUSE)) +/** Test whether the event is a mouse wheel. */ +#define ISMOUSE_WHEEL(event_type) ((event_type) >= WHEELUPMOUSE && (event_type) <= WHEELOUTMOUSE) +/** Test whether the event is a mouse (track-pad) gesture. */ +#define ISMOUSE_GESTURE(event_type) ((event_type) >= MOUSEPAN && (event_type) <= MOUSESMARTZOOM) /** Test whether the event is a NDOF event. */ #define ISNDOF(event_type) ((event_type) >= _NDOF_MIN && (event_type) <= _NDOF_MAX) |