Libmacro  0.2
Libmacro is an extensible macro and hotkey library.
trigger_flags.h File Reference

mcr_TriggerFlags - Enumerates behavior of triggering modifiers More...

#include "mcr/base/base.h"

Go to the source code of this file.

Macros

#define MCR_TF_MASK(number)   (MCR_TF_ANY & (number))
 
#define MCR_TF_USER_MASK(number)   ((number) & (~MCR_TF_ANY))
 

Enumerations

enum  mcr_TriggerFlags {
  MCR_TF_UNDEFINED = 0, MCR_TF_NONE = 1, MCR_TF_SOME = MCR_TF_NONE << 1, MCR_TF_INEQUAL = MCR_TF_NONE | MCR_TF_SOME,
  MCR_TF_ALL = MCR_TF_SOME << 1, MCR_TF_ALL_OR_NOTHING = MCR_TF_NONE | MCR_TF_ALL, MCR_TF_MATCH = MCR_TF_SOME | MCR_TF_ALL, MCR_TF_ANY = MCR_TF_NONE | MCR_TF_SOME | MCR_TF_ALL,
  MCR_TF_USER = MCR_TF_ALL << 1
}
 

Detailed Description

mcr_TriggerFlags - Enumerates behavior of triggering modifiers

Definition in file trigger_flags.h.

Macro Definition Documentation

§ MCR_TF_MASK

#define MCR_TF_MASK (   number)    (MCR_TF_ANY & (number))

Make valid mcr_TriggerFlags from any number

Definition at line 70 of file trigger_flags.h.

§ MCR_TF_USER_MASK

#define MCR_TF_USER_MASK (   number)    ((number) & (~MCR_TF_ANY))

Remove valid mcr_TriggerFlags from any number, leaving only user defined flags.

Definition at line 75 of file trigger_flags.h.

Enumeration Type Documentation

§ mcr_TriggerFlags

Logical triggering bahavior of modifiers.

This will define behaviour of how modifiers may or may not trigger a dispatch to receivers.
These flags act as a function between the registered modifier, and triggering modifier. The end result is a multi-function machine of the two modifier variables.
Given none=001, some=010, all=100 the following is the function table:
000 defaulted to all flags set
001 none of
010 some of
011 none or some of
100 all of
101 none or all of
110 some or all of
111 none, some, or all of (trigger any)

Enumerator
MCR_TF_UNDEFINED 

Invalid flags

MCR_TF_NONE 

None of this modifier may be included.

MCR_TF_SOME 

Some flag of this modifier must be included, but not all.

MCR_TF_INEQUAL 

Anything except an exact match

MCR_TF_ALL 

All flags of this modifier must be included, and not any others.

MCR_TF_ALL_OR_NOTHING 

All or nothing match

MCR_TF_MATCH 

At least one mod flag matches

MCR_TF_ANY 

All flags set (-1 also works)

MCR_TF_USER 

At this number and above may be used to extend flag logic.

Definition at line 49 of file trigger_flags.h.