Vuo 2.4.4
Loading...
Searching...
No Matches
VuoModifierKey.c
Go to the documentation of this file.
1
10#include <string.h>
12#include <Carbon/Carbon.h>
13#include "VuoModifierKey.h"
14
16#ifdef VUO_COMPILER
18 "title" : "Modifier Key",
19 "version" : "1.0.0",
20 "dependencies" : [
21 "VuoList_VuoModifierKey",
22 "Carbon.framework"
23 ]
24 });
25#endif
27
33{
34 const char *valueAsString = "";
35 if (json_object_get_type(js) == json_type_string)
36 valueAsString = json_object_get_string(js);
37
38 VuoModifierKey value = VuoModifierKey_Any;
39
40 if (! strcmp(valueAsString, "any")) {
41 value = VuoModifierKey_Any;
42 } else if (! strcmp(valueAsString, "command")) {
43 value = VuoModifierKey_Command;
44 } else if (! strcmp(valueAsString, "option")) {
45 value = VuoModifierKey_Option;
46 } else if (! strcmp(valueAsString, "control")) {
47 value = VuoModifierKey_Control;
48 } else if (! strcmp(valueAsString, "shift")) {
49 value = VuoModifierKey_Shift;
50 } else if (! strcmp(valueAsString, "none")) {
51 value = VuoModifierKey_None;
52 }
53
54 return value;
55}
56
61json_object * VuoModifierKey_getJson(const VuoModifierKey value)
62{
63 char *valueAsString = "";
64
65 switch (value) {
66 case VuoModifierKey_Any:
67 valueAsString = "any";
68 break;
69 case VuoModifierKey_Command:
70 valueAsString = "command";
71 break;
72 case VuoModifierKey_Option:
73 valueAsString = "option";
74 break;
75 case VuoModifierKey_Control:
76 valueAsString = "control";
77 break;
78 case VuoModifierKey_Shift:
79 valueAsString = "shift";
80 break;
81 case VuoModifierKey_None:
82 valueAsString = "none";
83 break;
84 }
85
86 return json_object_new_string(valueAsString);
87}
88
93{
95 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_Any);
96 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_Command);
97 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_Option);
98 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_Control);
99 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_Shift);
100 VuoListAppendValue_VuoModifierKey(l, VuoModifierKey_None);
101 return l;
102}
103
109{
110 char *valueAsString = "";
111
112 switch (value) {
113 case VuoModifierKey_Any:
114 valueAsString = "Any";
115 break;
116 case VuoModifierKey_Command:
117 valueAsString = "Command";
118 break;
119 case VuoModifierKey_Option:
120 valueAsString = "Option";
121 break;
122 case VuoModifierKey_Control:
123 valueAsString = "Control";
124 break;
125 case VuoModifierKey_Shift:
126 valueAsString = "Shift";
127 break;
128 case VuoModifierKey_None:
129 valueAsString = "None";
130 break;
131 }
132
133 return strdup(valueAsString);
134}
135
139bool VuoModifierKey_doMacEventFlagsMatch(unsigned long flags, VuoModifierKey modifierKey)
140{
141 bool isCommand = (flags & kCGEventFlagMaskCommand);
142 bool isOption = (flags & kCGEventFlagMaskAlternate);
143 bool isControl = (flags & kCGEventFlagMaskControl);
144 bool isShift = (flags & kCGEventFlagMaskShift);
145
146 switch (modifierKey)
147 {
148 case VuoModifierKey_Any:
149 return true;
150 case VuoModifierKey_Command:
151 return isCommand;
152 case VuoModifierKey_Option:
153 return isOption;
154 case VuoModifierKey_Control:
155 return isControl;
156 case VuoModifierKey_Shift:
157 return isShift;
158 case VuoModifierKey_None:
159 return ! isCommand && ! isOption && ! isControl && ! isShift;
160 }
161
162 return false;
163}