Add full options management to figure
[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 src/jni/ --throws-exception-on-error --description-file src/jni/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 jintcreateFigurejbooleanbooleanjintintjintintjbooleanbooleanjbooleanbooleanID; // cache method id
87 jmethodID voidcloneMenusjintintjintintID; // cache method id
88 jmethodID jintcloneAxesModeljintintID; // cache method id
89 jmethodID jintcreateSubWinjintintID; // cache method id
90 jmethodID jintcreateTextjintintjobjectArray_java_lang_Stringjava_lang_StringjintintjintintjdoubledoublejdoubledoublejbooleanbooleanjdoubleArray_doubledoublejintintjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjintintID; // cache method id
91 jclass stringArrayClass;
92 jmethodID jintcreateArcjintintjdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejdoubledoublejintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id
93 jmethodID jintcreateAxisjintintjintintjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejintintjstringjava_lang_StringjintintjintintjintintjbooleanbooleanID; // cache method id
94 jmethodID jintcreateCompoundjintintjintArray_intintID; // cache method id
95 jmethodID jintcreateCompoundSeqjintintjintintID; // cache method id
96 jmethodID jintcreateFecjintintjdoubleArray_doubledoublejintArray_intintjintArray_intintjbooleanbooleanID; // cache method id
97 jmethodID jintcreateGrayplotjintintjintintjdoubleArray_doubledoublejintintjintintID; // cache method id
98 jmethodID jintcreatePolylinejintintjbooleanbooleanjintintjintintjbooleanbooleanjintArray_intintjintintjbooleanbooleanjintintjbooleanbooleanjintintjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanjbooleanbooleanID; // cache method id
99 jmethodID jintcreateLegendjintintjobjectArray_java_lang_Stringjava_lang_StringjintArray_intintID; // cache method id
100 jmethodID jintcreateSegsjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejbooleanbooleanjintArray_intintjdoubledoubleID; // cache method id
101 jmethodID jintcreateChampjintintjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubledoublejbooleanbooleanID; // cache method id
102 jmethodID jintcreateSurfacejintintjintintjintintjintintID; // cache method id
103 jmethodID voidinitSubWinTo3djintintjstringjava_lang_StringjbooleanbooleanjintArray_intintjdoubledoublejdoubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id
104 jmethodID jintcreateLightjintintjintintjbooleanbooleanjdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoublejdoubleArray_doubledoubleID; // cache method id
105
106
107
108 jobject instance;
109 jclass instanceClass; // cache class
110
111                        
112 // Caching (if any)
113
114
115 /**
116 * Get the environment matching to the current thread.
117 */
118 virtual JNIEnv * getCurrentEnv();
119
120 public:
121 // Constructor
122 /**
123 * Create a wrapping of the object from a JNIEnv.
124 * It will call the default constructor
125 * @param JEnv_ the Java Env
126 */
127 Builder(JavaVM * jvm_);
128
129 /**
130 * Create a wrapping of an already existing object from a JNIEnv.
131 * The object must have already been instantiated
132 * @param JEnv_ the Java Env
133 * @param JObj the object
134 */
135 Builder(JavaVM * jvm_, jobject JObj);
136
137
138 /** 
139 * This is a fake constructor to avoid the constructor
140 * chaining when dealing with extended giws classes 
141 */
142 #ifdef FAKEGIWSDATATYPE
143 Builder(fakeGiwsDataType::fakeGiwsDataType /* unused */) {}
144 #endif
145
146 // Destructor
147 ~Builder();
148
149 // Generic method
150 // Synchronization methods
151 /**
152 * Enter monitor associated with the object.
153 * Equivalent of creating a "synchronized(obj)" scope in Java.
154 */
155 void synchronize();
156
157 /**
158 * Exit monitor associated with the object.
159 * Equivalent of ending a "synchronized(obj)" scope.
160 */
161 void endSynchronize();
162
163 // Methods
164 static int createRect(JavaVM * jvm_, int pparentsubwinUID, double x, double y, double height, double width, int foreground, int background, int isfilled, int isline);
165
166 static int cloneGraphicContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier);
167
168 static int cloneFontContext(JavaVM * jvm_, int sourceIdentifier, int destIdentifier);
169
170 static int createHiddenLabel(JavaVM * jvm_, int parent);
171
172 static bool isAxesRedrawing(JavaVM * jvm_, int subWin);
173
174 static int createLabel(JavaVM * jvm_, int parent, int type);
175
176 static int createNewFigureWithAxes(JavaVM * jvm_);
177
178 static int createFigure(JavaVM * jvm_, bool dockable, int menubarType, int toolbarType, bool defaultAxes, bool visible);
179
180 static void cloneMenus(JavaVM * jvm_, int model, int newParent);
181
182 static int cloneAxesModel(JavaVM * jvm_, int parent);
183
184 static int createSubWin(JavaVM * jvm_, int parent);
185
186 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);
187
188 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);
189
190 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);
191
192 static int createCompound(JavaVM * jvm_, int parent, int const* children, int childrenSize);
193
194 static int createCompoundSeq(JavaVM * jvm_, int parent, int childrenCount);
195
196 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);
197
198 static int createGrayplot(JavaVM * jvm_, int parent, int type, double const* pvecx, int pvecxSize, int n1, int n2);
199
200 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);
201
202 static int createLegend(JavaVM * jvm_, int parent, char const* const* text, int textSize, int const* handles, int handlesSize);
203
204 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);
205
206 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);
207
208 static int createSurface(JavaVM * jvm_, int parent, int typeof3d, int colorFlag, int colorMode);
209
210 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);
211
212 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);
213
214
215                         /**
216                         * Get class name to use for static methods
217                         * @return class name to use for static methods
218                         */
219                         
220                 static const std::string className()
221                 {
222                 return "org/scilab/modules/graphic_objects/builder/Builder";
223                 }
224                 
225
226                         /**
227                         * Get class to use for static methods
228                         * @return class to use for static methods
229                         */
230                         
231                 static jclass initClass(JNIEnv * curEnv)
232                 {
233                     static jclass cls = 0;
234
235                     if (cls == 0)
236                     {
237                         jclass _cls = curEnv->FindClass(className().c_str());
238                         if (_cls)
239                         {
240                             cls = static_cast<jclass>(curEnv->NewGlobalRef(_cls));
241                         }
242                     }
243
244                     return cls;
245                  }
246                 
247 };
248
249
250 }
251 #endif