Vuo 2.4.4
Loading...
Searching...
No Matches
VuoControlCode.c
Go to the documentation of this file.
1
10#include "VuoControlCode.h"
11
13#ifdef VUO_COMPILER
15 "title" : "Control Code",
16 "description" : "Special characters like spaces, returns, and tab.",
17 "keywords" : [ ],
18 "version" : "1.0.0",
19 "dependencies" : [
20 "VuoText",
21 "VuoList_VuoControlCode"
22 ]
23 });
24#endif
26
31{
32 if( code == VuoControlCode_NewLineUnix )
33 return VuoText_make("\n");
34 else if( code == VuoControlCode_NewLineWindows )
35 return VuoText_make("\r\n");
36 else if( code == VuoControlCode_NewLineMacOS9 )
37 return VuoText_make("\r");
38 else if( code == VuoControlCode_Tab )
39 return VuoText_make("\t");
40 else if( code == VuoControlCode_Space )
41 return VuoText_make(" ");
42 else if( code == VuoControlCode_EmSpace )
43 return VuoText_make("\u2003");
44 else if( code == VuoControlCode_EnSpace )
45 return VuoText_make("\u2002");
46
47 return VuoText_make("");
48}
49
58{
59 const char *valueAsString = "";
60 if (json_object_get_type(js) == json_type_string)
61 valueAsString = json_object_get_string(js);
62
63 VuoControlCode value = VuoControlCode_NewLineUnix;
64
65 if(strcmp(valueAsString, "newline-unix") == 0)
66 value = VuoControlCode_NewLineUnix;
67 else if(strcmp(valueAsString, "newline-windows") == 0)
68 value = VuoControlCode_NewLineWindows;
69 else if(strcmp(valueAsString, "newline-macos9") == 0)
70 value = VuoControlCode_NewLineMacOS9;
71 else if(strcmp(valueAsString, "tab") == 0)
72 value = VuoControlCode_Tab;
73 else if(strcmp(valueAsString, "space") == 0)
74 value = VuoControlCode_Space;
75 else if(strcmp(valueAsString, "em-space") == 0)
76 value = VuoControlCode_EmSpace;
77 else if(strcmp(valueAsString, "en-space") == 0)
78 value = VuoControlCode_EnSpace;
79
80 return value;
81}
82
86json_object *VuoControlCode_getJson(const VuoControlCode value)
87{
88 char *valueAsString = "newline-unix";
89
90 if(value == VuoControlCode_NewLineUnix)
91 valueAsString = "newline-unix";
92 else if(value == VuoControlCode_NewLineWindows)
93 valueAsString = "newline-windows";
94 else if(value == VuoControlCode_NewLineMacOS9)
95 valueAsString = "newline-macos9";
96 else if(value == VuoControlCode_Tab)
97 valueAsString = "tab";
98 else if(value == VuoControlCode_Space)
99 valueAsString = "space";
100 else if(value == VuoControlCode_EmSpace)
101 valueAsString = "em-space";
102 else if(value == VuoControlCode_EnSpace)
103 valueAsString = "en-space";
104
105 return json_object_new_string(valueAsString);
106}
107
112{
114
115 VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineUnix);
116 VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineWindows);
117 VuoListAppendValue_VuoControlCode(l, VuoControlCode_NewLineMacOS9);
118
119 // Sorted by ascending width.
120 VuoListAppendValue_VuoControlCode(l, VuoControlCode_Space);
121 VuoListAppendValue_VuoControlCode(l, VuoControlCode_EnSpace);
122 VuoListAppendValue_VuoControlCode(l, VuoControlCode_EmSpace);
123 VuoListAppendValue_VuoControlCode(l, VuoControlCode_Tab);
124
125 return l;
126}
127
132{
133 char *valueAsString = "New Line (Unix + macOS)";
134
135 if(value == VuoControlCode_NewLineWindows)
136 valueAsString = "New Line (Windows)";
137 else if(value == VuoControlCode_NewLineMacOS9)
138 valueAsString = "New Line (Mac OS 9)";
139 else if(value == VuoControlCode_Tab)
140 valueAsString = "Tab";
141 else if(value == VuoControlCode_Space)
142 valueAsString = "Space";
143 else if(value == VuoControlCode_EmSpace)
144 valueAsString = "Em Space";
145 else if(value == VuoControlCode_EnSpace)
146 valueAsString = "En Space";
147
148 return strdup(valueAsString);
149}
150
155{
156 return valueA == valueB;
157}
158
163{
164 return valueA < valueB;
165}