diff options
Diffstat (limited to 'source/blender/windowmanager/wm_event_types.h')
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 2301405a8ea..1edded22232 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -369,6 +369,18 @@ enum { (event_type >= LEFTCTRLKEY && event_type <= LEFTSHIFTKEY) == false && \ (event_type >= UNKNOWNKEY && event_type <= GRLESSKEY) == false) +/* internal helpers*/ +#define _VA_IS_EVENT_MOD2(v, a) (CHECK_TYPE_INLINE(v, wmEvent *), \ + ((v)->a)) +#define _VA_IS_EVENT_MOD3(v, a, b) \ + (_VA_IS_EVENT_MOD2(v, a) || ((v)->b)) +#define _VA_IS_EVENT_MOD4(v, a, b, c) \ + (_VA_IS_EVENT_MOD3(v, a, b) || ((v)->c)) +#define _VA_IS_EVENT_MOD5(v, a, b, c, d) \ + (_VA_IS_EVENT_MOD4(v, a, b, c) || ((v)->d)) + +/* reusable IS_EVENT_MOD(event, shift, ctrl, alt, oskey), macro */ +#define IS_EVENT_MOD(...) VA_NARGS_CALL_OVERLOAD(_VA_IS_EVENT_MOD, __VA_ARGS__) /* ********** wmEvent.val ********** */ |