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

mcr_Trigger - Receive dispatch and trigger actions. More...

Go to the source code of this file.

Classes

struct  mcr_Trigger
 

Macros

#define mcr_Trigger_data(triggerPt)   (triggerPt ? (triggerPt)->instance.data_member.data : NULL)
 mcr_Instance_data
 

Functions

MCR_API bool mcr_Trigger_receive (struct mcr_DispatchReceiver *dispReceiver, struct mcr_Signal *dispatchSignal, unsigned int mods)
 mcr_DispatchReceiver_fnc for triggers More...
 
MCR_API bool mcr_Macro_receive (struct mcr_DispatchReceiver *dispPt, struct mcr_Signal *sigPt, unsigned int mods)
 
MCR_API void mcr_Trigger_init (struct mcr_Trigger *triggerPt)
 
MCR_API void mcr_Trigger_ctor (struct mcr_Trigger *triggerPt, struct mcr_ITrigger *itrigPt, mcr_Trigger_receive_fnc trigger, void *actor)
 
MCR_API void mcr_Trigger_deinit (struct mcr_Trigger *trigPt)
 
MCR_API int mcr_Trigger_copy (struct mcr_Trigger *dstPt, const struct mcr_Trigger *srcPt)
 
MCR_API int mcr_Trigger_compare (const struct mcr_Trigger *lhsTriggerPt, const struct mcr_Trigger *rhsTriggerPt)
 
MCR_API int mcr_Trigger_add_dispatch (struct mcr_context *ctx, struct mcr_Trigger *trigPt, struct mcr_Signal *interceptPt)
 
MCR_API void mcr_Trigger_remove_dispatch (struct mcr_context *ctx, struct mcr_Trigger *trigPt, struct mcr_ISignal *isigPt)
 

Detailed Description

mcr_Trigger - Receive dispatch and trigger actions.

Receive dispatch from mcr_ITrigger::receive.

Definition in file trigger.h.

Function Documentation

§ mcr_Macro_receive()

MCR_API bool mcr_Macro_receive ( struct mcr_DispatchReceiver dispPt,
struct mcr_Signal sigPt,
unsigned int  mods 
)

?

§ mcr_Trigger_add_dispatch()

MCR_API int mcr_Trigger_add_dispatch ( struct mcr_context ctx,
struct mcr_Trigger trigPt,
struct mcr_Signal interceptPt 
)

Add trigger as receiver and dispatch function into mcr_IDispatcher_add

Parameters
interceptPtopt Signal to determine dispatch logic
Returns
reterr

§ mcr_Trigger_compare()

MCR_API int mcr_Trigger_compare ( const struct mcr_Trigger lhsTriggerPt,
const struct mcr_Trigger rhsTriggerPt 
)

Compare two triggers

Parameters
lhsTriggerPtopt mcr_Trigger *
rhsTriggerPtopt mcr_Trigger *
Returns
retcmp

§ mcr_Trigger_copy()

MCR_API int mcr_Trigger_copy ( struct mcr_Trigger dstPt,
const struct mcr_Trigger srcPt 
)

mcr_Instance_copy, then copy trigger and actor

Parameters
dstPtmcr_Trigger * Destination to copy to
srcPtopt mcr_Trigger * Source to copy from
Returns
reterr

§ mcr_Trigger_ctor()

MCR_API void mcr_Trigger_ctor ( struct mcr_Trigger triggerPt,
struct mcr_ITrigger itrigPt,
mcr_Trigger_receive_fnc  trigger,
void *  actor 
)

mcr_Trigger_init and mcr_Trigger_set_all

Parameters
triggerPtopt
itrigPtopt mcr_Trigger.itrigger
triggeropt mcr_Trigger::trigger
actoropt mcr_Trigger::actor

§ mcr_Trigger_deinit()

MCR_API void mcr_Trigger_deinit ( struct mcr_Trigger trigPt)

§ mcr_Trigger_init()

MCR_API void mcr_Trigger_init ( struct mcr_Trigger triggerPt)

ctor

Parameters
triggerPtopt

§ mcr_Trigger_receive()

MCR_API bool mcr_Trigger_receive ( struct mcr_DispatchReceiver dispReceiver,
struct mcr_Signal dispatchSignal,
unsigned int  mods 
)

mcr_DispatchReceiver_fnc for triggers

Precondition
mcr_DispatchReceiver::receiver must be a mcr_Trigger *
mcr_DispatchReceiver.dispatch must be mcr_Trigger_receive This is the default receiver function, when none is provided to add dispatcher receiver. If mcr_Trigger::trigger is null this will do nothing.
Parameters
triggerPtmcr_Trigger *
dispatchSignalopt Intercepted signal
modsIntercepted modifiers
Returns
False to not block intercepted signal, otherwise do block

§ mcr_Trigger_remove_dispatch()

MCR_API void mcr_Trigger_remove_dispatch ( struct mcr_context ctx,
struct mcr_Trigger trigPt,
struct mcr_ISignal isigPt 
)

Remove trigger from mcr_IDispatcher_remove

Parameters
isigPtopt Signal interface to find dispatcher to remove from
Returns
reterr