diff options
author | julianeisel <julian_eisel@web.de> | 2015-01-26 04:51:09 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-01-26 05:34:30 +0300 |
commit | 146a0e94477372f3dc5e52902cc99aba642c5a9c (patch) | |
tree | 2c90ab1af8f96f4351eb286544311abcc7548500 /source/blender/windowmanager/wm_event_types.h | |
parent | b636599fde2a0f86377d8b338c59d635340c5ba5 (diff) |
UI: macro for checking modifiers
Useful for UI handling where its common to check multiple modifiers at once.
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 ********** */ |