Libmacro  0.2
Libmacro is an extensible macro and hotkey library.
modifier.h
Go to the documentation of this file.
1 /* Libmacro - A multi-platform, extendable macro and hotkey C library
2  Copyright (C) 2013 Jonathan Pelletier, New Paradigm Software
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
23 #ifndef MCR_STANDARD_MODIFIER_H_
24 #define MCR_STANDARD_MODIFIER_H_
25 
26 #include "mcr/base/base.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
35 struct mcr_Modifier {
37  unsigned int modifiers;
46 };
47 
53 MCR_API int mcr_Modifier_send(struct mcr_Signal *signalPt);
54 MCR_API void mcr_Modifier_send_member(struct mcr_Modifier *modPt, struct mcr_context *ctx);
55 /* Default allocate, deallocate, init, deinit, compare, and copy */
56 
62 MCR_API void mcr_Modifier_modify(struct mcr_Modifier *modPt,
63  unsigned int modifier, enum mcr_ApplyType applyModifier);
64 
66 MCR_API struct mcr_ISignal *mcr_iModifier(struct mcr_context *ctx);
68 #define mcr_Modifier_data(sigPt) \
69 mcr_castpt(struct mcr_Modifier, mcr_Signal_data(sigPt))
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 #endif
enum mcr_ApplyType apply
Definition: modifier.h:41
bool internal_flag
Definition: modifier.h:45
unsigned int modifiers
Definition: modifier.h:37
MCR_API void mcr_Modifier_modify(struct mcr_Modifier *modPt, unsigned int modifier, enum mcr_ApplyType applyModifier)
MCR_API struct mcr_ISignal * mcr_iModifier(struct mcr_context *ctx)
Base module implements mcr_base - Libmacro first module.
MCR_API int mcr_Modifier_send(struct mcr_Signal *signalPt)
Modify internal modifiers.
mcr_ApplyType
Definition: types.h:160