Line data Source code
1 0 : /*
2 :
3 : OOConstToJSString.h
4 :
5 : Convert various sets of integer constants to JavaScript strings and back again.
6 : See also: OOConstToString.h.
7 :
8 :
9 : Oolite
10 : Copyright (C) 2004-2013 Giles C Williams and contributors
11 :
12 : This program is free software; you can redistribute it and/or
13 : modify it under the terms of the GNU General Public License
14 : as published by the Free Software Foundation; either version 2
15 : of the License, or (at your option) any later version.
16 :
17 : This program is distributed in the hope that it will be useful,
18 : but WITHOUT ANY WARRANTY; without even the implied warranty of
19 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 : GNU General Public License for more details.
21 :
22 : You should have received a copy of the GNU General Public License
23 : along with this program; if not, write to the Free Software
24 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 : MA 02110-1301, USA.
26 :
27 : */
28 :
29 : #import "OOJavaScriptEngine.h"
30 :
31 :
32 0 : void OOConstToJSStringInit(JSContext *context);
33 0 : void OOConstToJSStringDestroy(void);
34 :
35 : struct ConstTable;
36 :
37 :
38 : // Private functions, don't use directly.
39 0 : JSString *OOJSStringFromConstantPRIVATE(JSContext *context, NSInteger value, struct ConstTable *table);
40 0 : NSUInteger OOConstantFromJSStringPRIVATE(JSContext *context, JSString *string, struct ConstTable *table, NSInteger defaultValue);
41 0 : NSUInteger OOConstantFromJSValuePRIVATE(JSContext *context, jsval value, struct ConstTable *table, NSInteger defaultValue);
42 :
43 :
44 : /* JSString *OOJSStringFromEntityStatus(JSContext *, OOEntityStatus)
45 : jsval OOJSValueFromEntityStatus(JSContext *, OOEntityStatus)
46 : OOEntityStatus OOEntityStatusFromJSString(JSContext *, JSString *)
47 : OOEntityStatus OOEntityStatusFromJSValue(JSContext *, jsval)
48 :
49 : Convert between JavaScript strings and OOEntityStatus.
50 : */
51 0 : OOINLINE JSString *OOJSStringFromEntityStatus(JSContext *context, OOEntityStatus value)
52 : {
53 : extern struct ConstTable gOOEntityStatusConstTable;
54 : return OOJSStringFromConstantPRIVATE(context, value, &gOOEntityStatusConstTable);
55 : }
56 :
57 :
58 0 : OOINLINE jsval OOJSValueFromEntityStatus(JSContext *context, OOEntityStatus value)
59 : {
60 : return STRING_TO_JSVAL(OOJSStringFromEntityStatus(context, value));
61 : }
62 :
63 :
64 0 : OOINLINE OOEntityStatus OOEntityStatusFromJSString(JSContext *context, JSString *string)
65 : {
66 : extern struct ConstTable gOOEntityStatusConstTable;
67 : return (OOEntityStatus)OOConstantFromJSStringPRIVATE(context, string, &gOOEntityStatusConstTable, kOOEntityStatusDefault);
68 : }
69 :
70 :
71 0 : OOINLINE OOEntityStatus OOEntityStatusFromJSValue(JSContext *context, jsval value)
72 : {
73 : extern struct ConstTable gOOEntityStatusConstTable;
74 : return (OOEntityStatus)OOConstantFromJSValuePRIVATE(context, value, &gOOEntityStatusConstTable, kOOEntityStatusDefault);
75 : }
76 :
77 :
78 : /* JSString *OOJSStringFromScanClass(JSContext *, OOScanClass)
79 : jsval OOJSValueFromScanClass(JSContext *, OOScanClass)
80 : OOScanClass OOScanClassFromJSString(JSContext *, JSString *)
81 : OOScanClass OOScanClassFromJSValue(JSContext *, jsval)
82 :
83 : Convert between JavaScript strings and OOScanClass.
84 : */
85 0 : OOINLINE JSString *OOJSStringFromScanClass(JSContext *context, OOScanClass value)
86 : {
87 : extern struct ConstTable gOOScanClassConstTable;
88 : return OOJSStringFromConstantPRIVATE(context, value, &gOOScanClassConstTable);
89 : }
90 :
91 :
92 0 : OOINLINE jsval OOJSValueFromScanClass(JSContext *context, OOScanClass value)
93 : {
94 : return STRING_TO_JSVAL(OOJSStringFromScanClass(context, value));
95 : }
96 :
97 :
98 0 : OOINLINE OOScanClass OOScanClassFromJSString(JSContext *context, JSString *string)
99 : {
100 : extern struct ConstTable gOOScanClassConstTable;
101 : return (OOScanClass)OOConstantFromJSStringPRIVATE(context, string, &gOOScanClassConstTable, kOOScanClassDefault);
102 : }
103 :
104 :
105 0 : OOINLINE OOScanClass OOScanClassFromJSValue(JSContext *context, jsval value)
106 : {
107 : extern struct ConstTable gOOScanClassConstTable;
108 : return (OOScanClass)OOConstantFromJSValuePRIVATE(context, value, &gOOScanClassConstTable, kOOScanClassDefault);
109 : }
110 :
111 :
112 : /* JSString *OOJSStringFromCompassMode(JSContext *, OOCompassMode)
113 : jsval OOJSValueFromCompassMode(JSContext *, OOCompassMode)
114 : OOCompassMode OOCompassModeFromJSString(JSContext *, JSString *)
115 : OOCompassMode OOCompassModeFromJSValue(JSContext *, jsval)
116 :
117 : Convert between JavaScript strings and OOCompassMode.
118 : */
119 0 : OOINLINE JSString *OOJSStringFromCompassMode(JSContext *context, OOCompassMode value)
120 : {
121 : extern struct ConstTable gOOCompassModeConstTable;
122 : return OOJSStringFromConstantPRIVATE(context, value, &gOOCompassModeConstTable);
123 : }
124 :
125 :
126 0 : OOINLINE jsval OOJSValueFromCompassMode(JSContext *context, OOCompassMode value)
127 : {
128 : return STRING_TO_JSVAL(OOJSStringFromCompassMode(context, value));
129 : }
130 :
131 :
132 0 : OOINLINE OOCompassMode OOCompassModeFromJSString(JSContext *context, JSString *string)
133 : {
134 : extern struct ConstTable gOOCompassModeConstTable;
135 : return (OOCompassMode)OOConstantFromJSStringPRIVATE(context, string, &gOOCompassModeConstTable, kOOCompassModeDefault);
136 : }
137 :
138 :
139 0 : OOINLINE OOCompassMode OOCompassModeFromJSValue(JSContext *context, jsval value)
140 : {
141 : extern struct ConstTable gOOCompassModeConstTable;
142 : return (OOCompassMode)OOConstantFromJSValuePRIVATE(context, value, &gOOCompassModeConstTable, kOOCompassModeDefault);
143 : }
144 :
145 :
146 : /* JSString *OOJSStringFromGUIScreenID(JSContext *, OOGUIScreenID)
147 : jsval OOJSValueFromGUIScreenID(JSContext *, OOGUIScreenID)
148 : OOGUIScreenID OOGUIScreenIDFromJSString(JSContext *, JSString *)
149 : OOGUIScreenID OOGUIScreenIDFromJSValue(JSContext *, jsval)
150 :
151 : Convert between JavaScript strings and OOGUIScreenID.
152 : */
153 0 : OOINLINE JSString *OOJSStringFromGUIScreenID(JSContext *context, OOGUIScreenID value)
154 : {
155 : extern struct ConstTable gOOGUIScreenIDConstTable;
156 : return OOJSStringFromConstantPRIVATE(context, value, &gOOGUIScreenIDConstTable);
157 : }
158 :
159 :
160 0 : OOINLINE jsval OOJSValueFromGUIScreenID(JSContext *context, OOGUIScreenID value)
161 : {
162 : return STRING_TO_JSVAL(OOJSStringFromGUIScreenID(context, value));
163 : }
164 :
165 :
166 0 : OOINLINE OOGUIScreenID OOGUIScreenIDFromJSString(JSContext *context, JSString *string)
167 : {
168 : extern struct ConstTable gOOGUIScreenIDConstTable;
169 : return (OOGUIScreenID)OOConstantFromJSStringPRIVATE(context, string, &gOOGUIScreenIDConstTable, kOOGUIScreenIDDefault);
170 : }
171 :
172 :
173 0 : OOINLINE OOGUIScreenID OOGUIScreenIDFromJSValue(JSContext *context, jsval value)
174 : {
175 : extern struct ConstTable gOOGUIScreenIDConstTable;
176 : return (OOGUIScreenID)OOConstantFromJSValuePRIVATE(context, value, &gOOGUIScreenIDConstTable, kOOGUIScreenIDDefault);
177 : }
178 :
179 :
180 :
181 : /* JSString *OOJSStringFromGalacticHyperspaceBehaviour(JSContext *, OOGalacticHyperspaceBehaviour)
182 : jsval OOJSValueFromGalacticHyperspaceBehaviour(JSContext *, OOGalacticHyperspaceBehaviour)
183 : OOGalacticHyperspaceBehaviour OOGalacticHyperspaceBehaviourFromJSString(JSContext *, JSString *)
184 : OOGalacticHyperspaceBehaviour OOGalacticHyperspaceBehaviourFromJSValue(JSContext *, jsval)
185 :
186 : Convert between JavaScript strings and OOGalacticHyperspaceBehaviour.
187 : */
188 0 : OOINLINE JSString *OOJSStringFromGalacticHyperspaceBehaviour(JSContext *context, OOGalacticHyperspaceBehaviour value)
189 : {
190 : extern struct ConstTable gOOGalacticHyperspaceBehaviourConstTable;
191 : return OOJSStringFromConstantPRIVATE(context, value, &gOOGalacticHyperspaceBehaviourConstTable);
192 : }
193 :
194 :
195 0 : OOINLINE jsval OOJSValueFromGalacticHyperspaceBehaviour(JSContext *context, OOGalacticHyperspaceBehaviour value)
196 : {
197 : return STRING_TO_JSVAL(OOJSStringFromGalacticHyperspaceBehaviour(context, value));
198 : }
199 :
200 :
201 0 : OOINLINE OOGalacticHyperspaceBehaviour OOGalacticHyperspaceBehaviourFromJSString(JSContext *context, JSString *string)
202 : {
203 : extern struct ConstTable gOOGalacticHyperspaceBehaviourConstTable;
204 : return (OOGalacticHyperspaceBehaviour)OOConstantFromJSStringPRIVATE(context, string, &gOOGalacticHyperspaceBehaviourConstTable, kOOGalacticHyperspaceBehaviourDefault);
205 : }
206 :
207 :
208 0 : OOINLINE OOGalacticHyperspaceBehaviour OOGalacticHyperspaceBehaviourFromJSValue(JSContext *context, jsval value)
209 : {
210 : extern struct ConstTable gOOGalacticHyperspaceBehaviourConstTable;
211 : return (OOGalacticHyperspaceBehaviour)OOConstantFromJSValuePRIVATE(context, value, &gOOGalacticHyperspaceBehaviourConstTable, kOOGalacticHyperspaceBehaviourDefault);
212 : }
213 :
214 :
215 :
216 : /* JSString *OOJSStringFromViewID(JSContext *, OOViewID)
217 : jsval OOJSValueFromViewID(JSContext *, OOViewID)
218 : OOViewID OOViewIDFromJSString(JSContext *, JSString *)
219 : OOViewID OOViewIDFromJSValue(JSContext *, jsval)
220 :
221 : Convert between JavaScript strings and OOViewID.
222 : */
223 0 : OOINLINE JSString *OOJSStringFromViewID(JSContext *context, OOViewID value)
224 : {
225 : extern struct ConstTable gOOViewIDConstTable;
226 : return OOJSStringFromConstantPRIVATE(context, value, &gOOViewIDConstTable);
227 : }
228 :
229 :
230 0 : OOINLINE jsval OOJSValueFromViewID(JSContext *context, OOViewID value)
231 : {
232 : return STRING_TO_JSVAL(OOJSStringFromViewID(context, value));
233 : }
234 :
235 :
236 0 : OOINLINE OOViewID OOViewIDFromJSString(JSContext *context, JSString *string)
237 : {
238 : extern struct ConstTable gOOViewIDConstTable;
239 : return (OOViewID)OOConstantFromJSStringPRIVATE(context, string, &gOOViewIDConstTable, kOOViewIDDefault);
240 : }
241 :
242 :
243 0 : OOINLINE OOViewID OOViewIDFromJSValue(JSContext *context, jsval value)
244 : {
245 : extern struct ConstTable gOOViewIDConstTable;
246 : return (OOViewID)OOConstantFromJSValuePRIVATE(context, value, &gOOViewIDConstTable, kOOViewIDDefault);
247 : }
248 :
249 :
250 :
251 : /* JSString *OOJSStringFromShipDamageType(JSContext *, OOShipDamageType)
252 : jsval OOJSValueFromShipDamageType(JSContext *, OOShipDamageType)
253 :
254 : Convert OOShipDamageType to JavaScript strings.
255 : */
256 0 : OOINLINE JSString *OOJSStringFromShipDamageType(JSContext *context, OOShipDamageType value)
257 : {
258 : extern struct ConstTable gOOShipDamageTypeConstTable;
259 : return OOJSStringFromConstantPRIVATE(context, value, &gOOShipDamageTypeConstTable);
260 : }
261 :
262 :
263 0 : OOINLINE jsval OOJSValueFromShipDamageType(JSContext *context, OOShipDamageType value)
264 : {
265 : return STRING_TO_JSVAL(OOJSStringFromShipDamageType(context, value));
266 : }
267 :
268 :
269 :
270 0 : OOINLINE JSString *OOJSStringFromLegalStatusReason(JSContext *context, OOLegalStatusReason value)
271 : {
272 : extern struct ConstTable gOOLegalStatusReasonConstTable;
273 : return OOJSStringFromConstantPRIVATE(context, value, &gOOLegalStatusReasonConstTable);
274 : }
275 :
276 :
277 0 : OOINLINE jsval OOJSValueFromLegalStatusReason(JSContext *context, OOLegalStatusReason value)
278 : {
279 : return STRING_TO_JSVAL(OOJSStringFromLegalStatusReason(context, value));
280 : }
|