8221ed481fea585a8c06e3dbda13367110ed5b66
[scilab.git] / scilab / modules / gui / src / jni / CallScilabBridge.hxx
1 /* Generated by GIWS (version 2.0.2) with command:
2 giws --disable-return-size-array --output-dir src/jni/ --throws-exception-on-error --description-file src/jni/CallScilabBridge.giws.xml
3 */
4 /*
5
6 This is generated code.
7
8 This software is a computer program whose purpose is to hide the complexity
9 of accessing Java objects/methods from C++ code.
10
11 Copyright (C) 2012 - 2016 - Scilab Enterprises
12
13 This file is hereby licensed under the terms of the GNU GPL v2.0,
14 pursuant to article 5.3.4 of the CeCILL v.2.1.
15 This file was originally licensed under the terms of the CeCILL v2.1,
16 and continues to be available under such terms.
17 For more information, see the COPYING file which you should have received
18 along with this program.
19 */
20
21
22 #ifndef __ORG_SCILAB_MODULES_GUI_BRIDGE_CALLSCILABBRIDGE__
23 #define __ORG_SCILAB_MODULES_GUI_BRIDGE_CALLSCILABBRIDGE__
24 #include <iostream>
25 #include <string>
26 #include <string.h>
27 #include <stdlib.h>
28 #include <jni.h>
29
30 #include "GiwsException.hxx"
31
32         #if defined(_MSC_VER) /* Defined anyway with Visual */
33             #include <Windows.h>
34         #else
35             typedef signed char byte;
36         #endif
37
38
39 #ifndef GIWSEXPORT
40 # if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__)
41 #   if defined(STATIC_LINKED)
42 #     define GIWSEXPORT
43 #   else
44 #     define GIWSEXPORT __declspec(dllexport)
45 #   endif
46 # else
47 #   if __GNUC__ >= 4
48 #     define GIWSEXPORT __attribute__ ((visibility ("default")))
49 #   else
50 #     define GIWSEXPORT
51 #   endif
52 # endif
53 #endif
54
55 namespace org_scilab_modules_gui_bridge {
56 class GIWSEXPORT CallScilabBridge {
57
58 private:
59 JavaVM * jvm;
60
61 protected:
62 jmethodID voidsetMenuEnabledjintintjstringjava_lang_StringjbooleanbooleanID; // cache method id
63 jmethodID voidsetSubMenuEnabledjintintjstringjava_lang_StringjintintjbooleanbooleanID; // cache method id
64 jmethodID voidremoveMenujintintjstringjava_lang_StringID; // cache method id
65 jmethodID jstringdisplayAndWaitContextMenujintintID; // cache method id
66 jmethodID jintnewMessageBoxID; // cache method id
67 jmethodID voidsetMessageBoxTitlejintintjstringjava_lang_StringID; // cache method id
68 jmethodID voidsetMessageBoxMessagejintintjstringjava_lang_StringID; // cache method id
69 jmethodID voidsetMessageBoxMessagejintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
70 jclass stringArrayClass;
71 jmethodID voidmessageBoxDisplayAndWaitjintintID; // cache method id
72 jmethodID jintgetMessageBoxSelectedButtonjintintID; // cache method id
73 jmethodID voidsetMessageBoxDefaultSelectedButtonsjintintjintArray_intintID; // cache method id
74 jmethodID jintArray_getMessageBoxUserSelectedButtonsjintintID; // cache method id
75 jmethodID voidsetMessageBoxButtonsLabelsjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
76 jmethodID voidsetMessageBoxInitialValuejintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
77 jmethodID jobjectArray_getMessageBoxValuejintintID; // cache method id
78 jmethodID jintgetMessageBoxValueSizejintintID; // cache method id
79 jmethodID voidsetMessageBoxListBoxItemsjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
80 jmethodID jintgetMessageBoxSelectedItemjintintID; // cache method id
81 jmethodID voidsetMessageBoxLineLabelsjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
82 jmethodID voidsetMessageBoxColumnLabelsjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
83 jmethodID voidsetMessageBoxDefaultInputjintintjobjectArray_java_lang_Stringjava_lang_StringID; // cache method id
84 jmethodID voidsetMessageBoxModaljintintjbooleanbooleanID; // cache method id
85 jmethodID voidsetMessageBoxIconjintintjstringjava_lang_StringID; // cache method id
86 jmethodID voidlaunchHelpBrowserjobjectArray_java_lang_Stringjava_lang_Stringjstringjava_lang_StringID; // cache method id
87 jmethodID voidsearchKeywordjobjectArray_java_lang_Stringjava_lang_Stringjstringjava_lang_Stringjstringjava_lang_StringjbooleanbooleanID; // cache method id
88 jmethodID jintnewExportFileChooserjintintID; // cache method id
89 jmethodID jintnewFontChooserID; // cache method id
90 jmethodID voidfontChooserDisplayAndWaitjintintID; // cache method id
91 jmethodID voidsetFontChooserFontNamejintintjstringjava_lang_StringID; // cache method id
92 jmethodID voidsetFontChooserFontSizejintintjintintID; // cache method id
93 jmethodID voidsetFontChooserBoldjintintjbooleanbooleanID; // cache method id
94 jmethodID voidsetFontChooserItalicjintintjbooleanbooleanID; // cache method id
95 jmethodID jstringgetFontChooserFontNamejintintID; // cache method id
96 jmethodID jintgetFontChooserFontSizejintintID; // cache method id
97 jmethodID jbooleangetFontChooserBoldjintintID; // cache method id
98 jmethodID jbooleangetFontChooserItalicjintintID; // cache method id
99 jmethodID jintnewColorChooserID; // cache method id
100 jmethodID voidcolorChooserDisplayAndWaitjintintID; // cache method id
101 jmethodID voidsetColorChooserDefaultColorjintintjintArray_intintID; // cache method id
102 jmethodID jintArray_getColorChooserSelectedColorjintintID; // cache method id
103 jmethodID voidsetColorChooserTitlejintintjstringjava_lang_StringID; // cache method id
104 jmethodID jstringgetClipboardContentsID; // cache method id
105 jmethodID voidpasteClipboardIntoConsoleID; // cache method id
106 jmethodID voidcopyConsoleSelectionID; // cache method id
107 jmethodID voidemptyClipboardID; // cache method id
108 jmethodID voidsetClipboardContentsjstringjava_lang_StringID; // cache method id
109 jmethodID voidcopyFigureToClipBoardjintintID; // cache method id
110 jmethodID jintgetScreenResolutionID; // cache method id
111 jmethodID jdoublegetScreenWidthID; // cache method id
112 jmethodID jdoublegetScreenHeightID; // cache method id
113 jmethodID jintgetScreenDepthID; // cache method id
114 jmethodID jbooleanprintFigurejintintjbooleanbooleanjbooleanbooleanID; // cache method id
115 jmethodID jbooleanprintFilejstringjava_lang_StringID; // cache method id
116 jmethodID jbooleanprintStringjstringjava_lang_Stringjstringjava_lang_StringID; // cache method id
117 jmethodID jbooleanpageSetupID; // cache method id
118 jmethodID voidrequestFocusjintintID; // cache method id
119 jmethodID voidraiseWindowjintintID; // cache method id
120 jmethodID voiduseCanvasForDisplayjbooleanbooleanID; // cache method id
121 jmethodID jbooleanuseCanvasForDisplayID; // cache method id
122 jmethodID voidscilabAboutBoxID; // cache method id
123 jmethodID voidfireClosingFinishedjintintID; // cache method id
124
125
126
127 jobject instance;
128 jclass instanceClass; // cache class
129
130                        
131 // Caching (if any)
132
133
134 /**
135 * Get the environment matching to the current thread.
136 */
137 virtual JNIEnv * getCurrentEnv();
138
139 public:
140 // Constructor
141 /**
142 * Create a wrapping of the object from a JNIEnv.
143 * It will call the default constructor
144 * @param JEnv_ the Java Env
145 */
146 CallScilabBridge(JavaVM * jvm_);
147
148 /**
149 * Create a wrapping of an already existing object from a JNIEnv.
150 * The object must have already been instantiated
151 * @param JEnv_ the Java Env
152 * @param JObj the object
153 */
154 CallScilabBridge(JavaVM * jvm_, jobject JObj);
155
156
157 /** 
158 * This is a fake constructor to avoid the constructor
159 * chaining when dealing with extended giws classes 
160 */
161 #ifdef FAKEGIWSDATATYPE
162 CallScilabBridge(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
163 #endif
164
165 // Destructor
166 ~CallScilabBridge();
167
168 // Generic method
169 // Synchronization methods
170 /**
171 * Enter monitor associated with the object.
172 * Equivalent of creating a "synchronized(obj)" scope in Java.
173 */
174 void synchronize();
175
176 /**
177 * Exit monitor associated with the object.
178 * Equivalent of ending a "synchronized(obj)" scope.
179 */
180 void endSynchronize();
181
182 // Methods
183 static void setMenuEnabled(JavaVM * jvm_, int parentUID, char const* menuName, bool status);
184
185 static void setSubMenuEnabled(JavaVM * jvm_, int parentUID, char const* menuName, int position, bool status);
186
187 static void removeMenu(JavaVM * jvm_, int parentUID, char const* menuName);
188
189 static char* displayAndWaitContextMenu(JavaVM * jvm_, int UID);
190
191 static int newMessageBox(JavaVM * jvm_);
192
193 static void setMessageBoxTitle(JavaVM * jvm_, int id, char const* title);
194
195 static void setMessageBoxMessage(JavaVM * jvm_, int id, char const* message);
196
197 static void setMessageBoxMessage(JavaVM * jvm_, int id, char const* const* message, int messageSize);
198
199 static void messageBoxDisplayAndWait(JavaVM * jvm_, int id);
200
201 static int getMessageBoxSelectedButton(JavaVM * jvm_, int id);
202
203 static void setMessageBoxDefaultSelectedButtons(JavaVM * jvm_, int id, int const* index, int indexSize);
204
205 static int* getMessageBoxUserSelectedButtons(JavaVM * jvm_, int id);
206
207 static void setMessageBoxButtonsLabels(JavaVM * jvm_, int id, char const* const* labels, int labelsSize);
208
209 static void setMessageBoxInitialValue(JavaVM * jvm_, int id, char const* const* value, int valueSize);
210
211 static char** getMessageBoxValue(JavaVM * jvm_, int id);
212
213 static int getMessageBoxValueSize(JavaVM * jvm_, int id);
214
215 static void setMessageBoxListBoxItems(JavaVM * jvm_, int id, char const* const* items, int itemsSize);
216
217 static int getMessageBoxSelectedItem(JavaVM * jvm_, int id);
218
219 static void setMessageBoxLineLabels(JavaVM * jvm_, int id, char const* const* labels, int labelsSize);
220
221 static void setMessageBoxColumnLabels(JavaVM * jvm_, int id, char const* const* labels, int labelsSize);
222
223 static void setMessageBoxDefaultInput(JavaVM * jvm_, int id, char const* const* values, int valuesSize);
224
225 static void setMessageBoxModal(JavaVM * jvm_, int id, bool status);
226
227 static void setMessageBoxIcon(JavaVM * jvm_, int id, char const* name);
228
229 static void launchHelpBrowser(JavaVM * jvm_, char const* const* helps, int helpsSize, char const* language);
230
231 static void searchKeyword(JavaVM * jvm_, char const* const* helps, int helpsSize, char const* keyword, char const* language, bool fullText);
232
233 static int newExportFileChooser(JavaVM * jvm_, int figureUID);
234
235 static int newFontChooser(JavaVM * jvm_);
236
237 static void fontChooserDisplayAndWait(JavaVM * jvm_, int objID);
238
239 static void setFontChooserFontName(JavaVM * jvm_, int objID, char const* fontName);
240
241 static void setFontChooserFontSize(JavaVM * jvm_, int objID, int fontSize);
242
243 static void setFontChooserBold(JavaVM * jvm_, int objID, bool bold);
244
245 static void setFontChooserItalic(JavaVM * jvm_, int objID, bool italic);
246
247 static char* getFontChooserFontName(JavaVM * jvm_, int objID);
248
249 static int getFontChooserFontSize(JavaVM * jvm_, int objID);
250
251 static bool getFontChooserBold(JavaVM * jvm_, int objID);
252
253 static bool getFontChooserItalic(JavaVM * jvm_, int objID);
254
255 static int newColorChooser(JavaVM * jvm_);
256
257 static void colorChooserDisplayAndWait(JavaVM * jvm_, int objID);
258
259 static void setColorChooserDefaultColor(JavaVM * jvm_, int objID, int const* rgb, int rgbSize);
260
261 static int* getColorChooserSelectedColor(JavaVM * jvm_, int objID);
262
263 static void setColorChooserTitle(JavaVM * jvm_, int objID, char const* title);
264
265 static char* getClipboardContents(JavaVM * jvm_);
266
267 static void pasteClipboardIntoConsole(JavaVM * jvm_);
268
269 static void copyConsoleSelection(JavaVM * jvm_);
270
271 static void emptyClipboard(JavaVM * jvm_);
272
273 static void setClipboardContents(JavaVM * jvm_, char const* text);
274
275 static void copyFigureToClipBoard(JavaVM * jvm_, int figID);
276
277 static int getScreenResolution(JavaVM * jvm_);
278
279 static double getScreenWidth(JavaVM * jvm_);
280
281 static double getScreenHeight(JavaVM * jvm_);
282
283 static int getScreenDepth(JavaVM * jvm_);
284
285 static bool printFigure(JavaVM * jvm_, int figID, bool postScript, bool displayDialog);
286
287 static bool printFile(JavaVM * jvm_, char const* fileName);
288
289 static bool printString(JavaVM * jvm_, char const* theString, char const* pageHeader);
290
291 static bool pageSetup(JavaVM * jvm_);
292
293 static void requestFocus(JavaVM * jvm_, int objUID);
294
295 static void raiseWindow(JavaVM * jvm_, int objID);
296
297 static void useCanvasForDisplay(JavaVM * jvm_, bool onOrOff);
298
299 static bool useCanvasForDisplay(JavaVM * jvm_);
300
301 static void scilabAboutBox(JavaVM * jvm_);
302
303 static void fireClosingFinished(JavaVM * jvm_, int figUID);
304
305
306                         /**
307                         * Get class name to use for static methods
308                         * @return class name to use for static methods
309                         */
310                         
311                 static const std::string className()
312                 {
313                 return "org/scilab/modules/gui/bridge/CallScilabBridge";
314                 }
315                 
316
317                         /**
318                         * Get class to use for static methods
319                         * @return class to use for static methods
320                         */
321                         
322                 static jclass initClass(JNIEnv * curEnv)
323                 {
324                     static jclass cls = 0;
325
326                     if (cls == 0)
327                     {
328                         jclass _cls = curEnv->FindClass(className().c_str());
329                         if (_cls)
330                         {
331                             cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls));
332                         }
333                     }
334
335                     return cls;
336                  }
337                 
338 };
339
340
341 }
342 #endif