1 /* -*- Mode: C++; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // -------------------------------------------------------------------------*/
10 #include "squirreljme.h"
11 #include "cc_squirreljme_jvm_mle_UIFormShelf.h"
13 // The class to forward to
14 #define SWINGUIFORM_CLASSNAME "cc/squirreljme/emulator/uiform/SwingFormShelf"
16 // Descriptors for calls
17 #define SWINGUIFORM_CALLBACK_DISPLAY_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;Lcc/squirreljme/jvm/mle/callbacks/UIDisplayCallback;)V"
18 #define SWINGUIFORM_CALLBACK_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;Lcc/squirreljme/jvm/mle/callbacks/UIFormCallback;)V"
19 #define SWINGUIFORM_DISPLAYS_DESC "()[Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;"
20 #define SWINGUIFORM_DISPLAYCURRENT_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;)Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;"
21 #define SWINGUIFORM_DISPLAYSHOWZ_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;Z)V"
22 #define SWINGUIFORM_DISPLAYSHOW_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;)V"
23 #define SWINGUIFORM_EQUALSDISPLAY_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;)Z"
24 #define SWINGUIFORM_EQUALSDRAWABLE_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDrawableBracket;Lcc/squirreljme/jvm/mle/brackets/UIDrawableBracket;)Z"
25 #define SWINGUIFORM_EQUALSFORM_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;)Z"
26 #define SWINGUIFORM_EQUALSITEM_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;)Z"
27 #define SWINGUIFORM_EQUALSWIDGET_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;)Z"
28 #define SWINGUIFORM_FLUSHEVENTS_DESC "()V"
29 #define SWINGUIFORM_FORMDELETE_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;)V"
30 #define SWINGUIFORM_FORMITEMATPOSITION_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;I)Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;"
31 #define SWINGUIFORM_FORMITEMCOUNT_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;)I"
32 #define SWINGUIFORM_FORMITEMPOSITIONGET_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;)I"
33 #define SWINGUIFORM_FORMITEMPOSITIONSET_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;I)V"
34 #define SWINGUIFORM_FORMITEMREMOVE_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;I)Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;"
35 #define SWINGUIFORM_FORMNEW_DESC "()Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;"
36 #define SWINGUIFORM_INJECTOR_DESC "()Lcc/squirreljme/jvm/mle/callbacks/UIFormCallback;"
37 #define SWINGUIFORM_ITEMDELETE_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;)V"
38 #define SWINGUIFORM_ITEMFORM_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;)Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;"
39 #define SWINGUIFORM_ITEMNEW_DESC "(I)Lcc/squirreljme/jvm/mle/brackets/UIItemBracket;"
40 #define SWINGUIFORM_FORMREFRESH_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIFormBracket;)V"
41 #define SWINGUIFORM_LATER_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;I)V"
42 #define SWINGUIFORM_METRIC_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIDisplayBracket;I)I"
43 #define SWINGUIFORM_WIDGETPROPERTY_INT_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;III)V"
44 #define SWINGUIFORM_WIDGETPROPERTY_STR_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;IILjava/lang/String;)V"
45 #define SWINGUIFORM_WIDGETPROPERTY_GET_INT_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;II)I"
46 #define SWINGUIFORM_WIDGETPROPERTY_GET_STR_DESC "(Lcc/squirreljme/jvm/mle/brackets/UIWidgetBracket;II)Ljava/lang/String;"
48 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_callbackDisplay(JNIEnv
* env
,
49 jclass classy
, jobject display
, jobject callback
)
51 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
52 "callback", SWINGUIFORM_CALLBACK_DISPLAY_DESC
, display
, callback
);
55 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_callback(JNIEnv
* env
,
56 jclass classy
, jobject form
, jobject callback
)
58 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
59 "callback", SWINGUIFORM_CALLBACK_DESC
, form
, callback
);
62 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_displays(JNIEnv
* env
,
65 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
66 "displays", SWINGUIFORM_DISPLAYS_DESC
);
69 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_displayCurrent(JNIEnv
* env
,
70 jclass classy
, jobject display
)
72 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
73 "displayCurrent", SWINGUIFORM_DISPLAYCURRENT_DESC
,
77 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_displayShowZ(JNIEnv
* env
,
78 jclass classy
, jobject display
, jboolean shown
)
80 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
81 "displayShow", SWINGUIFORM_DISPLAYSHOWZ_DESC
,
85 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_displayShow(JNIEnv
* env
,
86 jclass classy
, jobject display
, jobject form
)
88 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
89 "displayShow", SWINGUIFORM_DISPLAYSHOW_DESC
,
93 JNIEXPORT jboolean JNICALL
Impl_mle_FormShelf_equalsDisplay(JNIEnv
* env
,
94 jclass classy
, jobject a
, jobject b
)
96 return forwardCallStaticBoolean(env
,SWINGUIFORM_CLASSNAME
,
97 "equals", SWINGUIFORM_EQUALSDISPLAY_DESC
,
101 JNIEXPORT jboolean JNICALL
Impl_mle_FormShelf_equalsDrawable(JNIEnv
* env
,
102 jclass classy
, jobject a
, jobject b
)
104 return forwardCallStaticBoolean(env
,SWINGUIFORM_CLASSNAME
,
105 "equals", SWINGUIFORM_EQUALSDRAWABLE_DESC
,
109 JNIEXPORT jboolean JNICALL
Impl_mle_FormShelf_equalsForm(JNIEnv
* env
,
110 jclass classy
, jobject a
, jobject b
)
112 return forwardCallStaticBoolean(env
,SWINGUIFORM_CLASSNAME
,
113 "equals", SWINGUIFORM_EQUALSFORM_DESC
,
117 JNIEXPORT jboolean JNICALL
Impl_mle_FormShelf_equalsItem(JNIEnv
* env
,
118 jclass classy
, jobject a
, jobject b
)
120 return forwardCallStaticBoolean(env
,SWINGUIFORM_CLASSNAME
,
121 "equals", SWINGUIFORM_EQUALSITEM_DESC
,
125 JNIEXPORT jboolean JNICALL
Impl_mle_FormShelf_equalsWidget(JNIEnv
* env
,
126 jclass classy
, jobject a
, jobject b
)
128 return forwardCallStaticBoolean(env
,SWINGUIFORM_CLASSNAME
,
129 "equals", SWINGUIFORM_EQUALSWIDGET_DESC
,
133 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_flushEvents(JNIEnv
* env
,
136 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
137 "flushEvents", SWINGUIFORM_FLUSHEVENTS_DESC
);
140 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_formDelete(JNIEnv
* env
,
141 jclass classy
, jobject form
)
143 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
144 "formDelete", SWINGUIFORM_FORMDELETE_DESC
,
148 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_formItemAtPosition(JNIEnv
* env
,
149 jclass classy
, jobject form
, jint position
)
151 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
152 "formItemAtPosition", SWINGUIFORM_FORMITEMATPOSITION_DESC
,
156 JNIEXPORT jint JNICALL
Impl_mle_FormShelf_formItemCount(JNIEnv
* env
,
157 jclass classy
, jobject form
)
159 return forwardCallStaticInteger(env
, SWINGUIFORM_CLASSNAME
,
160 "formItemCount", SWINGUIFORM_FORMITEMCOUNT_DESC
,
164 JNIEXPORT jint JNICALL
Impl_mle_FormShelf_formItemPositionGet(JNIEnv
* env
,
165 jclass classy
, jobject form
, jobject item
)
167 return forwardCallStaticInteger(env
, SWINGUIFORM_CLASSNAME
,
168 "formItemPosition", SWINGUIFORM_FORMITEMPOSITIONGET_DESC
,
172 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_formItemPositionSet(JNIEnv
* env
,
173 jclass classy
, jobject form
, jobject item
, jint position
)
175 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
176 "formItemPosition", SWINGUIFORM_FORMITEMPOSITIONSET_DESC
,
177 form
, item
, position
);
180 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_formItemRemove(JNIEnv
* env
,
181 jclass classy
, jobject form
, jint position
)
183 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
184 "formItemRemove", SWINGUIFORM_FORMITEMREMOVE_DESC
,
188 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_formNew(JNIEnv
* env
,
191 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
192 "formNew", SWINGUIFORM_FORMNEW_DESC
);
195 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_formRefresh(JNIEnv
* env
,
196 jclass classy
, jobject form
)
198 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
199 "formRefresh", SWINGUIFORM_FORMREFRESH_DESC
, form
);
202 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_injector(JNIEnv
* env
,
205 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
206 "injector", SWINGUIFORM_INJECTOR_DESC
);
209 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_itemDelete(JNIEnv
* env
,
210 jclass classy
, jobject form
)
212 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
213 "itemDelete", SWINGUIFORM_ITEMDELETE_DESC
,
217 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_itemForm(JNIEnv
* env
,
218 jclass classy
, jobject item
)
220 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
221 "itemForm", SWINGUIFORM_ITEMFORM_DESC
,
225 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_itemNew(JNIEnv
* env
,
226 jclass classy
, jint type
)
228 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
229 "itemNew", SWINGUIFORM_ITEMNEW_DESC
,
233 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_later(JNIEnv
* env
, jclass classy
,
234 jobject displayKey
, jint serialKey
)
236 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
237 "later", SWINGUIFORM_LATER_DESC
,
238 displayKey
, serialKey
);
241 JNIEXPORT jint JNICALL
Impl_mle_FormShelf_metric(JNIEnv
* env
, jclass classy
,
242 jobject display
, jint metricId
)
244 return forwardCallStaticInteger(env
, SWINGUIFORM_CLASSNAME
,
245 "metric", SWINGUIFORM_METRIC_DESC
,
249 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_widgetPropertyInt(JNIEnv
* env
,
250 jclass classy
, jobject item
, jint property
, jint sub
, jint newValue
)
252 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
253 "widgetProperty", SWINGUIFORM_WIDGETPROPERTY_INT_DESC
,
254 item
, property
, sub
, newValue
);
257 JNIEXPORT
void JNICALL
Impl_mle_FormShelf_widgetPropertyStr(JNIEnv
* env
,
258 jclass classy
, jobject item
, jint property
, jint sub
, jobject newValue
)
260 forwardCallStaticVoid(env
, SWINGUIFORM_CLASSNAME
,
261 "widgetProperty", SWINGUIFORM_WIDGETPROPERTY_STR_DESC
,
262 item
, property
, sub
, newValue
);
265 JNIEXPORT jint JNICALL
Impl_mle_FormShelf_widgetPropertyGetInt(JNIEnv
* env
,
266 jclass classy
, jobject item
, jint property
, jint sub
)
268 return forwardCallStaticInteger(env
, SWINGUIFORM_CLASSNAME
,
269 "widgetPropertyInt", SWINGUIFORM_WIDGETPROPERTY_GET_INT_DESC
,
270 item
, property
, sub
);
273 JNIEXPORT jobject JNICALL
Impl_mle_FormShelf_widgetPropertyGetStr(JNIEnv
* env
,
274 jclass classy
, jobject item
, jint property
, jint sub
)
276 return forwardCallStaticObject(env
, SWINGUIFORM_CLASSNAME
,
277 "widgetPropertyStr", SWINGUIFORM_WIDGETPROPERTY_GET_STR_DESC
,
278 item
, property
, sub
);
281 static const JNINativeMethod mleFormMethods
[] =
283 {"callback", SWINGUIFORM_CALLBACK_DISPLAY_DESC
, (void*)Impl_mle_FormShelf_callbackDisplay
},
284 {"callback", SWINGUIFORM_CALLBACK_DESC
, (void*)Impl_mle_FormShelf_callback
},
285 {"displays", SWINGUIFORM_DISPLAYS_DESC
, (void*)Impl_mle_FormShelf_displays
},
286 {"displayCurrent", SWINGUIFORM_DISPLAYCURRENT_DESC
, (void*)Impl_mle_FormShelf_displayCurrent
},
287 {"displayShow", SWINGUIFORM_DISPLAYSHOWZ_DESC
, (void*)Impl_mle_FormShelf_displayShowZ
},
288 {"displayShow", SWINGUIFORM_DISPLAYSHOW_DESC
, (void*)Impl_mle_FormShelf_displayShow
},
289 {"equals", SWINGUIFORM_EQUALSDISPLAY_DESC
, (void*)Impl_mle_FormShelf_equalsDisplay
},
290 {"equals", SWINGUIFORM_EQUALSDRAWABLE_DESC
, (void*)Impl_mle_FormShelf_equalsDrawable
},
291 {"equals", SWINGUIFORM_EQUALSFORM_DESC
, (void*)Impl_mle_FormShelf_equalsForm
},
292 {"equals", SWINGUIFORM_EQUALSITEM_DESC
, (void*)Impl_mle_FormShelf_equalsItem
},
293 {"equals", SWINGUIFORM_EQUALSWIDGET_DESC
, (void*)Impl_mle_FormShelf_equalsWidget
},
294 {"flushEvents", SWINGUIFORM_FLUSHEVENTS_DESC
, (void*)Impl_mle_FormShelf_flushEvents
},
295 {"formDelete", SWINGUIFORM_FORMDELETE_DESC
, (void*)Impl_mle_FormShelf_formDelete
},
296 {"formItemAtPosition", SWINGUIFORM_FORMITEMATPOSITION_DESC
, (void*)Impl_mle_FormShelf_formItemAtPosition
},
297 {"formItemCount", SWINGUIFORM_FORMITEMCOUNT_DESC
, (void*)Impl_mle_FormShelf_formItemCount
},
298 {"formItemPosition", SWINGUIFORM_FORMITEMPOSITIONGET_DESC
, (void*)Impl_mle_FormShelf_formItemPositionGet
},
299 {"formItemPosition", SWINGUIFORM_FORMITEMPOSITIONSET_DESC
, (void*)Impl_mle_FormShelf_formItemPositionSet
},
300 {"formItemRemove", SWINGUIFORM_FORMITEMREMOVE_DESC
, (void*)Impl_mle_FormShelf_formItemRemove
},
301 {"formNew", SWINGUIFORM_FORMNEW_DESC
, (void*)Impl_mle_FormShelf_formNew
},
302 {"formRefresh", SWINGUIFORM_FORMREFRESH_DESC
, (void*)Impl_mle_FormShelf_formRefresh
},
303 {"injector", SWINGUIFORM_INJECTOR_DESC
, (void*)Impl_mle_FormShelf_injector
},
304 {"itemDelete", SWINGUIFORM_ITEMDELETE_DESC
, (void*)Impl_mle_FormShelf_itemDelete
},
305 {"itemForm", SWINGUIFORM_ITEMFORM_DESC
, (void*)Impl_mle_FormShelf_itemForm
},
306 {"itemNew", SWINGUIFORM_ITEMNEW_DESC
, (void*)Impl_mle_FormShelf_itemNew
},
307 {"later", SWINGUIFORM_LATER_DESC
, (void*)Impl_mle_FormShelf_later
},
308 {"metric", SWINGUIFORM_METRIC_DESC
, (void*)Impl_mle_FormShelf_metric
},
309 {"widgetProperty", SWINGUIFORM_WIDGETPROPERTY_INT_DESC
, (void*)Impl_mle_FormShelf_widgetPropertyInt
},
310 {"widgetProperty", SWINGUIFORM_WIDGETPROPERTY_STR_DESC
, (void*)Impl_mle_FormShelf_widgetPropertyStr
},
311 {"widgetPropertyInt", SWINGUIFORM_WIDGETPROPERTY_GET_INT_DESC
, (void*)Impl_mle_FormShelf_widgetPropertyGetInt
},
312 {"widgetPropertyStr", SWINGUIFORM_WIDGETPROPERTY_GET_STR_DESC
, (void*)Impl_mle_FormShelf_widgetPropertyGetStr
},
315 jint JNICALL
mleFormInit(JNIEnv
* env
, jclass classy
)
317 return (*env
)->RegisterNatives(env
,
318 (*env
)->FindClass(env
, "cc/squirreljme/jvm/mle/UIFormShelf"),
319 mleFormMethods
, sizeof(mleFormMethods
) / sizeof(JNINativeMethod
));