d79af025a7221e66217d56868226805e351ed2c8
[scilab.git] / scilab / modules / graphic_objects / src / jni / Builder.hxx
1 /* Generated by GIWS (version 2.0.2) with command:
2 giws --disable-return-size-array --output-dir . --throws-exception-on-error --description-file builder.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 This software is governed by the CeCILL-B license under French law and
12 abiding by the rules of distribution of free software.  You can  use,
13 modify and/ or redistribute the software under the terms of the CeCILL-B
14 license as circulated by CEA, CNRS and INRIA at the following URL
15 "http://www.cecill.info".
16
17 As a counterpart to the access to the source code and  rights to copy,
18 modify and redistribute granted by the license, users are provided only
19 with a limited warranty  and the software's author,  the holder of the
20 economic rights,  and the successive licensors  have only  limited
21 liability.
22
23 In this respect, the user's attention is drawn to the risks associated
24 with loading,  using,  modifying and/or developing or reproducing the
25 software by the user in light of its specific status of free software,
26 that may mean  that it is complicated to manipulate,  and  that  also
27 therefore means  that it is reserved for developers  and  experienced
28 professionals having in-depth computer knowledge. Users are therefore
29 encouraged to load and test the software's suitability as regards their
30 requirements in conditions enabling the security of their systems and/or
31 data to be ensured and,  more generally, to use and operate it in the
32 same conditions as regards security.
33
34 The fact that you are presently reading this means that you have had
35 knowledge of the CeCILL-B license and that you accept its terms.
36 */
37
38
39 #ifndef __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_BUILDER_BUILDER__
40 #define __ORG_SCILAB_MODULES_GRAPHIC_OBJECTS_BUILDER_BUILDER__
41 #include <iostream>
42 #include <string>
43 #include <string.h>
44 #include <stdlib.h>
45 #include <jni.h>
46
47 #include "GiwsException.hxx"
48
49         #if defined(_MSC_VER) /* Defined anyway with Visual */
50             #include <Windows.h>
51         #else
52             typedef signed char byte;
53         #endif
54
55
56 #ifndef GIWSEXPORT
57 # if defined(_MSC_VER) || defined(__WIN32__) || defined(__CYGWIN__)
58 #   if defined(STATIC_LINKED)
59 #     define GIWSEXPORT
60 #   else
61 #     define GIWSEXPORT __declspec(dllexport)
62 #   endif
63 # else
64 #   if __GNUC__ >= 4
65 #     define GIWSEXPORT __attribute__ ((visibility ("default")))
66 #   else
67 #     define GIWSEXPORT
68 #   endif
69 # endif
70 #endif
71
72 namespace org_scilab_modules_graphic_objects_builder {
73 class GIWSEXPORT Builder {
74
75 private:
76 JavaVM * jvm;
77
78 protected:
79 jmethodID jintcreateRectjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjintintjintintjintintID; // cache method id
80 jmethodID jintcloneGraphicContextjintintjintintID; // cache method id
81 jmethodID jintcloneFontContextjintintjintintID; // cache method id
82 jmethodID jintcreateHiddenLabeljintintID; // cache method id
83 jmethodID jbooleanisAxesRedrawingjintintID; // cache method id
84 jmethodID jintcreateLabeljintintjintintID; // cache method id
85 jmethodID jintcreateNewFigureWithAxesID; // cache method id
86 jmethodID voidcloneMenusjintintjintintID; // cache method id
87 jmethodID jintcloneAxesModeljintintID; // cache method id
88 jmethodID jintcreateSubWinjintintID; // cache method id
89 jmethodID jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID; // cache method id
90 jclass stringArrayClass;
91 jmethodID jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id
92 jmethodID jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID; // cache method id
93 jmethodID jintcreateCompoundjintintjintArray_intintID; // cache method id
94 jmethodID jintcreateCompoundSeqjintintjintintID; // cache method id
95 jmethodID jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID; // cache method id
96 jmethodID jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID; // cache method id
97 jmethodID jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id
98 jmethodID jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID; // cache method id
99 jmethodID jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID; // cache method id
100 jmethodID jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID; // cache method id
101 jmethodID jintcreateSurfacejintintjintintjintintjintintID; // cache method id
102 jmethodID voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id
103 jmethodID jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id
104
105
106
107 jobject instance;
108 jclass instanceClass; // cache class
109
110                        
111 // Caching (if any)
112
113
114 /**
115 * Get the environment matching to the current thread.
116 */
117 virtual JNIEnv * getCurrentEnv();
118
119 public:
120 // Constructor
121 /**
122 * Create a wrapping of the object from a JNIEnv.
123 * It will call the default constructor
124 * @param JEnv_ the Java Env
125 */
126 Builder(JavaVM * jvm_);
127
128 /**
129 * Create a wrapping of an already existing object from a JNIEnv.
130 * The object must have already been instantiated
131 * @param JEnv_ the Java Env
132 * @param JObj the object
133 */
134 Builder(JavaVM * jvm_, jobject JObj);
135
136
137 /** 
138 * This is a fake constructor to avoid the constructor
139 * chaining when dealing with extended giws classes 
140 */
141 #ifdef FAKEGIWSDATATYPE
142 Builder(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
143 #endif
144
145 // Destructor
146 ~Builder();
147
148 // Generic method
149 // Synchronization methods
150 /**
151 * Enter monitor associated with the object.
152 * Equivalent of creating a "synchronized(obj)" scope in Java.
153 */
154 void synchronize();
155
156 /**
157 * Exit monitor associated with the object.
158 * Equivalent of ending a "synchronized(obj)" scope.
159 */
160 void endSynchronize();
161
162 // Methods
163 static int createRect(JavaVM * jvm_, int pparentsubwinUID, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline);
164
165 static int cloneGraphicContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier);
166
167 static int cloneFontContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier);
168
169 static int createHiddenLabel(JavaVM * jvm_, int parent);
170
171 static bool isAxesRedrawing(JavaVM * jvm_, int subWin);
172
173 static int createLabel(JavaVM * jvm_, int parent, int type);
174
175 static int createNewFigureWithAxes(JavaVM * jvm_);
176
177 static void cloneMenus(JavaVM * jvm_, int model, int newParent);
178
179 static int cloneAxesModel(JavaVM * jvm_, int parent);
180
181 static int createSubWin(JavaVM * jvm_, int parent);
182
183 static int createText(JavaVM * jvm_, int parent, char const* const* text, int textSize, int rows, int cols, double x, double y, bool autoSize, double const* userSize, int userSizeSize, int centerPos, int foreground, bool isForeground, int background, bool isBackground, bool boxed, bool line, bool filled, int align);
184
185 static int createArc(JavaVM * jvm_, int parent, double x, double y, double h, double w, double start, double end, int foreground, bool isForeground, int background, bool isBackground, bool filled, bool line);
186
187 static int createAxis(JavaVM * jvm_, int parent, int dir, int tics, double const* vx, int vxSize, double const* vy, int vySize, int subint, char const* format, int fontSize, int textColor, int ticsColor, bool seg);
188
189 static int createCompound(JavaVM * jvm_, int parent, int const* children, int childrenSize);
190
191 static int createCompoundSeq(JavaVM * jvm_, int parent, int childrenCount);
192
193 static int createFec(JavaVM * jvm_, int parent, double const* zminmax, int zminmaxSize, int const* colminmax, int colminmaxSize, int const* colout, int coloutSize, bool with_mesh);
194
195 static int createGrayplot(JavaVM * jvm_, int parent, int type, double const* pvecx, int pvecxSize, int n1, int n2);
196
197 static int createPolyline(JavaVM * jvm_, int parent, bool closed, int plot, int foreground, bool isForeground, int const* background, int backgroundSize, int mark_style, bool isMarkStyle, int mark_foreground, bool isMarkForeground, int mark_background, bool isMarkBackground, bool isline, bool isfilled, bool ismark, bool isinterp);
198
199 static int createLegend(JavaVM * jvm_, int parent, char const* const* text, int textSize, int const* handles, int handlesSize);
200
201 static int createSegs(JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vz, int vzSize, bool isVZ, int const* style, int styleSize, double arsize);
202
203 static int createChamp(JavaVM * jvm_, int parent, double const* vx, int vxSize, double const* vy, int vySize, double const* vfx, int vfxSize, double const* vfy, int vfySize, double arsize, bool typeofchamp);
204
205 static int createSurface(JavaVM * jvm_, int parent, int typeof3d, int colorFlag, int colorMode);
206
207 static void initSubWinTo3d(JavaVM * jvm_, int parent, char const* legend, bool isLegend, int const* flag, int flagSize, double alpha, double theta, double const* ebox, int eboxSize, double const* x, int xSize, double const* y, int ySize, double const* z, int zSize);
208
209 static int createLight(JavaVM * jvm_, int parent, int type, bool visible, double const* pos, int posSize, double const* dir, int dirSize, double const* ambient, int ambientSize, double const* diffuse, int diffuseSize, double const* specular, int specularSize);
210
211
212                         /**
213                         * Get class name to use for static methods
214                         * @return class name to use for static methods
215                         */
216                         
217                 static const std::string className()
218                 {
219                 return "org/scilab/modules/graphic_objects/builder/Builder";
220                 }
221                 
222
223                         /**
224                         * Get class to use for static methods
225                         * @return class to use for static methods
226                         */
227                         
228                 static jclass initClass(JNIEnv * curEnv)
229                 {
230                     static jclass cls = 0;
231
232                     if (cls == 0)
233                     {
234                         jclass _cls = curEnv->FindClass(className().c_str());
235                         if (_cls)
236                         {
237                             cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls));
238                         }
239                     }
240
241                     return cls;
242                  }
243                 
244 };
245
246
247 }
248 #endif