* Bug #13690 fixed - tight_limits property can now manage X, Y and Z axis separately. 81/15681/4
Vincent COUVERT [Tue, 9 Dec 2014 16:22:40 +0000 (17:22 +0100)]
Change-Id: I387201c8f60591c74649dbeaf75c6f17c92c4099

18 files changed:
scilab/CHANGES_5.5.X
scilab/modules/graphic_objects/includes/graphicObjectProperties.h
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Axes.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/axes/Box.java
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/graphicObject/GraphicObjectProperties.java
scilab/modules/graphic_objects/src/scripts/propertiesMap.properties
scilab/modules/graphics/help/en_US/axes_operations/axes_properties.xml
scilab/modules/graphics/macros/ged.sci
scilab/modules/graphics/sci_gateway/c/sci_set.c
scilab/modules/graphics/src/c/InitObjects.c
scilab/modules/graphics/src/c/Plo2dn.c
scilab/modules/graphics/src/c/getHandleProperty/get_tight_limits_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tight_limits_property.c
scilab/modules/graphics/tests/nonreg_tests/bug_13690.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_13690.tst [new file with mode: 0644]
scilab/modules/gui/src/java/org/scilab/modules/gui/editor/AxesHandler.java
scilab/modules/gui/src/java/org/scilab/modules/gui/ged/MessagesGED.java
scilab/modules/gui/src/java/org/scilab/modules/gui/ged/graphic_objects/properties/Axes.java

index 8f86ae2..f970456 100644 (file)
@@ -31,6 +31,8 @@ Scilab Bug Fixes
 
 * Bug #13677 fixed - Indentation of examples in assert_checkerror help page was wrong.
 
+* Bug #13690 fixed - tight_limits property can now manage X, Y and Z axis separately.
+
 
                      Changes between version 5.5.0 and 5.5.1
                      =======================================
index 1c9df88..d04a7e2 100755 (executable)
 #define __GO_ROTATION_ANGLES_3D__ 168
 #define __GO_BOX_TYPE__ 169
 #define __GO_HIDDEN_AXIS_COLOR__ 170
-#define __GO_TIGHT_LIMITS__ 171
-#define __GO_DATA_BOUNDS__ 172
-#define __GO_REAL_DATA_BOUNDS__ 173
-#define __GO_ZOOM_ENABLED__ 174
-#define __GO_ZOOM_BOX__ 175
-#define __GO_AUTO_SCALE__ 176
-#define __GO_FIRST_PLOT__ 177
-#define __GO_MARGINS__ 178
-#define __GO_AUTO_MARGINS__ 179
-#define __GO_AXES_BOUNDS__ 180
-#define __GO_CLIP_PROPERTY__ 181
-#define __GO_CLIP_STATE__ 182
-#define __GO_CLIP_BOX__ 183
-#define __GO_CLIP_BOX_SET__ 184
-#define __GO_LINE__ 185
-#define __GO_LINE_MODE__ 186
-#define __GO_LINE_STYLE__ 187
-#define __GO_LINE_THICKNESS__ 188
-#define __GO_LINE_COLOR__ 189
-#define __GO_FILL_MODE__ 190
-#define __GO_MARK__ 191
-#define __GO_MARK_MODE__ 192
-#define __GO_MARK_STYLE__ 193
-#define __GO_MARK_SIZE_UNIT__ 194
-#define __GO_MARK_SIZE__ 195
-#define __GO_MARK_FOREGROUND__ 196
-#define __GO_MARK_BACKGROUND__ 197
-#define __GO_MARK_OFFSET__ 198
-#define __GO_MARK_STRIDE__ 199
-#define __GO_SELECTED__ 200
-#define __GO_TICKS_DIRECTION__ 201
-#define __GO_X_NUMBER_TICKS__ 202
-#define __GO_Y_NUMBER_TICKS__ 203
-#define __GO_X_TICKS_COORDS__ 204
-#define __GO_Y_TICKS_COORDS__ 205
-#define __GO_TICKS_COLOR__ 206
-#define __GO_TICKS_SEGMENT__ 207
-#define __GO_TICKS_STYLE__ 208
-#define __GO_SUBTICKS__ 209
-#define __GO_NUMBER_TICKS_LABELS__ 210
-#define __GO_TICKS_LABELS__ 211
-#define __GO_FORMATN__ 212
-#define __GO_FONT__ 213
-#define __GO_FONT_STYLE__ 214
-#define __GO_FONT_SIZE__ 215
-#define __GO_FONT_COLOR__ 216
-#define __GO_FONT_FRACTIONAL__ 217
-#define __GO_Z_BOUNDS__ 218
-#define __GO_OUTSIDE_COLOR__ 219
-#define __GO_COLOR_RANGE__ 220
-#define __GO_DATA_MAPPING__ 221
-#define __GO_FONT_ANGLE__ 222
-#define __GO_AUTO_POSITION__ 223
-#define __GO_CORNERS__ 224
-#define __GO_AUTO_ROTATION__ 225
-#define __GO_LINKS__ 226
-#define __GO_LINKS_COUNT__ 227
-#define __GO_LEGEND_LOCATION__ 228
-#define __GO_MARKS_COUNT__ 229
-#define __GO_LINE_WIDTH__ 230
-#define __GO_CLOSED__ 231
-#define __GO_ARROW_SIZE_FACTOR__ 232
-#define __GO_POLYLINE_STYLE__ 233
-#define __GO_INTERP_COLOR_VECTOR__ 234
-#define __GO_INTERP_COLOR_VECTOR_SET__ 235
-#define __GO_INTERP_COLOR_MODE__ 236
-#define __GO_X_SHIFT__ 237
-#define __GO_Y_SHIFT__ 238
-#define __GO_Z_SHIFT__ 239
-#define __GO_BAR_WIDTH__ 240
-#define __GO_SURFACE_MODE__ 241
-#define __GO_COLOR_MODE__ 242
-#define __GO_COLOR_FLAG__ 243
-#define __GO_ALIGNMENT__ 244
-#define __GO_BOX__ 245
-#define __GO_TEXT_BOX__ 246
-#define __GO_TEXT_BOX_MODE__ 247
-#define __GO_AUTO_DIMENSIONING__ 248
-#define __GO_FORMATTED_TEXT__ 249
-#define __GO_TEXT_ARRAY_DIMENSIONS__ 250
-#define __GO_TEXT_STRINGS__ 251
-#define __GO_BASE__ 252
-#define __GO_BASE_X__ 253
-#define __GO_BASE_Y__ 254
-#define __GO_BASE_Z__ 255
-#define __GO_DIRECTION__ 256
-#define __GO_DIRECTION_X__ 257
-#define __GO_DIRECTION_Y__ 258
-#define __GO_DIRECTION_Z__ 259
-#define __GO_ARROW_SIZE__ 260
-#define __GO_SEGS_COLORS__ 261
-#define __GO_COLORED__ 262
-#define __GO_ARROWS__ 263
-#define __GO_NUMBER_ARROWS__ 264
-#define __GO_CHAMP_DIMENSIONS__ 265
-#define __GO_BOUNDING_BOX__ 266
-#define __GO_MAX_LENGTH__ 267
-#define __GO_MAX_USABLE_LENGTH__ 268
-#define __GO_HIDDEN_COLOR__ 269
-#define __GO_STYLE__ 270
-#define __GO_UI_CHECKBOX__ 271
-#define __GO_UI_EDIT__ 272
-#define __GO_UI_SPINNER__ 273
-#define __GO_UI_FRAME__ 274
-#define __GO_UI_FRAME_SCROLLABLE__ 275
-#define __GO_UI_IMAGE__ 276
-#define __GO_UI_LISTBOX__ 277
-#define __GO_UI_POPUPMENU__ 278
-#define __GO_UI_PUSHBUTTON__ 279
-#define __GO_UI_RADIOBUTTON__ 280
-#define __GO_UI_SLIDER__ 281
-#define __GO_UI_TABLE__ 282
-#define __GO_UI_TEXT__ 283
-#define __GO_UI_LAYER__ 284
-#define __GO_UI_BACKGROUNDCOLOR__ 285
-#define __GO_UI_ENABLE__ 286
-#define __GO_UI_FONTANGLE__ 287
-#define __GO_UI_FONTNAME__ 288
-#define __GO_UI_FONTSIZE__ 289
-#define __GO_UI_FONTUNITS__ 290
-#define __GO_UI_FONTWEIGHT__ 291
-#define __GO_UI_FOREGROUNDCOLOR__ 292
-#define __GO_UI_HORIZONTALALIGNMENT__ 293
-#define __GO_UI_LISTBOXTOP__ 294
-#define __GO_UI_LISTBOXTOP_SIZE__ 295
-#define __GO_UI_MAX__ 296
-#define __GO_UI_MIN__ 297
-#define __GO_UI_RELIEF__ 298
-#define __GO_UI_STRING__ 299
-#define __GO_UI_TAB_STRING__ 300
-#define __GO_UI_STRING_SIZE__ 301
-#define __GO_UI_STRING_COLNB__ 302
-#define __GO_UI_TOOLTIPSTRING__ 303
-#define __GO_UI_TOOLTIPSTRING_SIZE__ 304
-#define __GO_UI_SLIDERSTEP__ 305
-#define __GO_UI_UNITS__ 306
-#define __GO_UI_VALUE__ 307
-#define __GO_UI_TAB_VALUE__ 308
-#define __GO_UI_VALUE_SIZE__ 309
-#define __GO_UI_VERTICALALIGNMENT__ 310
-#define __GO_UIPARENTMENU__ 311
-#define __GO_UICHILDMENU__ 312
-#define __GO_UICHECKEDMENU__ 313
-#define __GO_UI_CHECKED__ 314
-#define __GO_UI_LABEL__ 315
-#define __GO_UI_MNEMONIC__ 316
-#define __GO_UI_ACCELERATOR__ 317
-#define __GO_UI_SEPARATOR__ 318
-#define __GO_UI_ICON__ 319
-#define __GO_CONSOLE__ 320
-#define __GO_SHOWHIDDENHANDLES__ 321
-#define __GO_SHOWHIDDENPROPERTIES__ 322
-#define __GO_USEDEPRECATEDLF__ 323
-#define __GO_WAITBAR__ 324
-#define __GO_PROGRESSIONBAR__ 325
-#define __GO_UI_MESSAGE__ 326
-#define __GO_UI_MESSAGE_SIZE__ 327
-#define __GO_DATATIP__ 328
-#define __GO_DATATIP_DATA__ 329
-#define __GO_DATATIP_ORIENTATION__ 330
-#define __GO_DATATIP_3COMPONENT__ 331
-#define __GO_DATATIP_AUTOORIENTATION__ 332
-#define __GO_DATATIP_INTERP_MODE__ 333
-#define __GO_DATATIP_DISPLAY_FNC__ 334
-#define __GO_DATATIP_BOX_MODE__ 335
-#define __GO_DATATIP_LABEL_MODE__ 336
-#define __GO_DATATIP_MARK__ 337
-#define __GO_AMBIENTCOLOR__ 338
-#define __GO_DIFFUSECOLOR__ 339
-#define __GO_SPECULARCOLOR__ 340
-#define __GO_COLOR_MATERIAL__ 341
-#define __GO_MATERIAL_SHININESS__ 342
-#define __GO_LIGHT__ 343
-#define __GO_LIGHT_TYPE__ 344
-#define __GO_DATATIPS__ 345
-#define __GO_DATATIPS_COUNT__ 346
-#define __GO_DATATIP_INDEXES__ 347
-#define __GO_DATA_MODEL_DISPLAY_FUNCTION__ 348
-#define __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ 349
-#define __GO_RESIZE__ 350
-#define __GO_TOOLBAR__ 351
-#define __GO_TOOLBAR_VISIBLE__ 352
-#define __GO_MENUBAR__ 353
-#define __GO_MENUBAR_VISIBLE__ 354
-#define __GO_INFOBAR_VISIBLE__ 355
-#define __GO_DOCKABLE__ 356
-#define __GO_LAYOUT__ 357
-#define __GO_LAYOUT_SET__ 358
-#define __GO_UI_TAB__ 359
-#define __GO_UI_GRIDBAG_GRID__ 360
-#define __GO_UI_GRIDBAG_WEIGHT__ 361
-#define __GO_UI_GRIDBAG_FILL__ 362
-#define __GO_UI_GRIDBAG_ANCHOR__ 363
-#define __GO_UI_GRIDBAG_PADDING__ 364
-#define __GO_UI_GRIDBAG_PREFERREDSIZE__ 365
-#define __GO_UI_GRID_GRID__ 366
-#define __GO_UI_GRID_PADDING__ 367
-#define __GO_UI_BORDER_POSITION__ 368
-#define __GO_UI_BORDER_PREFERREDSIZE__ 369
-#define __GO_GRID_OPT_GRID__ 370
-#define __GO_GRID_OPT_PADDING__ 371
-#define __GO_BORDER_OPT_PADDING__ 372
-#define __GO_UI_FRAME_BORDER__ 373
-#define __GO_UI_FRAME_BORDER_COLOR__ 374
-#define __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ 375
-#define __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ 376
-#define __GO_UI_FRAME_BORDER_IN_BORDER__ 377
-#define __GO_UI_FRAME_BORDER_JUSTIFICATION__ 378
-#define __GO_UI_FRAME_BORDER_OUT_BORDER__ 379
-#define __GO_UI_FRAME_BORDER_ROUNDED__ 380
-#define __GO_UI_FRAME_BORDER_SHADOW_IN__ 381
-#define __GO_UI_FRAME_BORDER_SHADOW_OUT__ 382
-#define __GO_UI_FRAME_BORDER_TITLE__ 383
-#define __GO_UI_FRAME_BORDER_POSITION__ 384
-#define __GO_UI_FRAME_BORDER_STYLE__ 385
-#define __GO_UI_GROUP_NAME__ 386
-#define __GO_UI_TITLE_POSITION__ 387
-#define __GO_UI_TITLE_SCROLL__ 388
-#define __GO_UI_FRAME_BORDER_TYPE__ 389
-#define __GO_UI_SCROLLABLE__ 390
+#define __GO_X_TIGHT_LIMITS__ 171
+#define __GO_Y_TIGHT_LIMITS__ 172
+#define __GO_Z_TIGHT_LIMITS__ 173
+#define __GO_DATA_BOUNDS__ 174
+#define __GO_REAL_DATA_BOUNDS__ 175
+#define __GO_ZOOM_ENABLED__ 176
+#define __GO_ZOOM_BOX__ 177
+#define __GO_AUTO_SCALE__ 178
+#define __GO_FIRST_PLOT__ 179
+#define __GO_MARGINS__ 180
+#define __GO_AUTO_MARGINS__ 181
+#define __GO_AXES_BOUNDS__ 182
+#define __GO_CLIP_PROPERTY__ 183
+#define __GO_CLIP_STATE__ 184
+#define __GO_CLIP_BOX__ 185
+#define __GO_CLIP_BOX_SET__ 186
+#define __GO_LINE__ 187
+#define __GO_LINE_MODE__ 188
+#define __GO_LINE_STYLE__ 189
+#define __GO_LINE_THICKNESS__ 190
+#define __GO_LINE_COLOR__ 191
+#define __GO_FILL_MODE__ 192
+#define __GO_MARK__ 193
+#define __GO_MARK_MODE__ 194
+#define __GO_MARK_STYLE__ 195
+#define __GO_MARK_SIZE_UNIT__ 196
+#define __GO_MARK_SIZE__ 197
+#define __GO_MARK_FOREGROUND__ 198
+#define __GO_MARK_BACKGROUND__ 199
+#define __GO_MARK_OFFSET__ 200
+#define __GO_MARK_STRIDE__ 201
+#define __GO_SELECTED__ 202
+#define __GO_TICKS_DIRECTION__ 203
+#define __GO_X_NUMBER_TICKS__ 204
+#define __GO_Y_NUMBER_TICKS__ 205
+#define __GO_X_TICKS_COORDS__ 206
+#define __GO_Y_TICKS_COORDS__ 207
+#define __GO_TICKS_COLOR__ 208
+#define __GO_TICKS_SEGMENT__ 209
+#define __GO_TICKS_STYLE__ 210
+#define __GO_SUBTICKS__ 211
+#define __GO_NUMBER_TICKS_LABELS__ 212
+#define __GO_TICKS_LABELS__ 213
+#define __GO_FORMATN__ 214
+#define __GO_FONT__ 215
+#define __GO_FONT_STYLE__ 216
+#define __GO_FONT_SIZE__ 217
+#define __GO_FONT_COLOR__ 218
+#define __GO_FONT_FRACTIONAL__ 219
+#define __GO_Z_BOUNDS__ 220
+#define __GO_OUTSIDE_COLOR__ 221
+#define __GO_COLOR_RANGE__ 222
+#define __GO_DATA_MAPPING__ 223
+#define __GO_FONT_ANGLE__ 224
+#define __GO_AUTO_POSITION__ 225
+#define __GO_CORNERS__ 226
+#define __GO_AUTO_ROTATION__ 227
+#define __GO_LINKS__ 228
+#define __GO_LINKS_COUNT__ 229
+#define __GO_LEGEND_LOCATION__ 230
+#define __GO_MARKS_COUNT__ 231
+#define __GO_LINE_WIDTH__ 232
+#define __GO_CLOSED__ 233
+#define __GO_ARROW_SIZE_FACTOR__ 234
+#define __GO_POLYLINE_STYLE__ 235
+#define __GO_INTERP_COLOR_VECTOR__ 236
+#define __GO_INTERP_COLOR_VECTOR_SET__ 237
+#define __GO_INTERP_COLOR_MODE__ 238
+#define __GO_X_SHIFT__ 239
+#define __GO_Y_SHIFT__ 240
+#define __GO_Z_SHIFT__ 241
+#define __GO_BAR_WIDTH__ 242
+#define __GO_SURFACE_MODE__ 243
+#define __GO_COLOR_MODE__ 244
+#define __GO_COLOR_FLAG__ 245
+#define __GO_ALIGNMENT__ 246
+#define __GO_BOX__ 247
+#define __GO_TEXT_BOX__ 248
+#define __GO_TEXT_BOX_MODE__ 249
+#define __GO_AUTO_DIMENSIONING__ 250
+#define __GO_FORMATTED_TEXT__ 251
+#define __GO_TEXT_ARRAY_DIMENSIONS__ 252
+#define __GO_TEXT_STRINGS__ 253
+#define __GO_BASE__ 254
+#define __GO_BASE_X__ 255
+#define __GO_BASE_Y__ 256
+#define __GO_BASE_Z__ 257
+#define __GO_DIRECTION__ 258
+#define __GO_DIRECTION_X__ 259
+#define __GO_DIRECTION_Y__ 260
+#define __GO_DIRECTION_Z__ 261
+#define __GO_ARROW_SIZE__ 262
+#define __GO_SEGS_COLORS__ 263
+#define __GO_COLORED__ 264
+#define __GO_ARROWS__ 265
+#define __GO_NUMBER_ARROWS__ 266
+#define __GO_CHAMP_DIMENSIONS__ 267
+#define __GO_BOUNDING_BOX__ 268
+#define __GO_MAX_LENGTH__ 269
+#define __GO_MAX_USABLE_LENGTH__ 270
+#define __GO_HIDDEN_COLOR__ 271
+#define __GO_STYLE__ 272
+#define __GO_UI_CHECKBOX__ 273
+#define __GO_UI_EDIT__ 274
+#define __GO_UI_SPINNER__ 275
+#define __GO_UI_FRAME__ 276
+#define __GO_UI_FRAME_SCROLLABLE__ 277
+#define __GO_UI_IMAGE__ 278
+#define __GO_UI_LISTBOX__ 279
+#define __GO_UI_POPUPMENU__ 280
+#define __GO_UI_PUSHBUTTON__ 281
+#define __GO_UI_RADIOBUTTON__ 282
+#define __GO_UI_SLIDER__ 283
+#define __GO_UI_TABLE__ 284
+#define __GO_UI_TEXT__ 285
+#define __GO_UI_LAYER__ 286
+#define __GO_UI_BACKGROUNDCOLOR__ 287
+#define __GO_UI_ENABLE__ 288
+#define __GO_UI_FONTANGLE__ 289
+#define __GO_UI_FONTNAME__ 290
+#define __GO_UI_FONTSIZE__ 291
+#define __GO_UI_FONTUNITS__ 292
+#define __GO_UI_FONTWEIGHT__ 293
+#define __GO_UI_FOREGROUNDCOLOR__ 294
+#define __GO_UI_HORIZONTALALIGNMENT__ 295
+#define __GO_UI_LISTBOXTOP__ 296
+#define __GO_UI_LISTBOXTOP_SIZE__ 297
+#define __GO_UI_MAX__ 298
+#define __GO_UI_MIN__ 299
+#define __GO_UI_RELIEF__ 300
+#define __GO_UI_STRING__ 301
+#define __GO_UI_TAB_STRING__ 302
+#define __GO_UI_STRING_SIZE__ 303
+#define __GO_UI_STRING_COLNB__ 304
+#define __GO_UI_TOOLTIPSTRING__ 305
+#define __GO_UI_TOOLTIPSTRING_SIZE__ 306
+#define __GO_UI_SLIDERSTEP__ 307
+#define __GO_UI_UNITS__ 308
+#define __GO_UI_VALUE__ 309
+#define __GO_UI_TAB_VALUE__ 310
+#define __GO_UI_VALUE_SIZE__ 311
+#define __GO_UI_VERTICALALIGNMENT__ 312
+#define __GO_UIPARENTMENU__ 313
+#define __GO_UICHILDMENU__ 314
+#define __GO_UICHECKEDMENU__ 315
+#define __GO_UI_CHECKED__ 316
+#define __GO_UI_LABEL__ 317
+#define __GO_UI_MNEMONIC__ 318
+#define __GO_UI_ACCELERATOR__ 319
+#define __GO_UI_SEPARATOR__ 320
+#define __GO_UI_ICON__ 321
+#define __GO_CONSOLE__ 322
+#define __GO_SHOWHIDDENHANDLES__ 323
+#define __GO_SHOWHIDDENPROPERTIES__ 324
+#define __GO_USEDEPRECATEDLF__ 325
+#define __GO_WAITBAR__ 326
+#define __GO_PROGRESSIONBAR__ 327
+#define __GO_UI_MESSAGE__ 328
+#define __GO_UI_MESSAGE_SIZE__ 329
+#define __GO_DATATIP__ 330
+#define __GO_DATATIP_DATA__ 331
+#define __GO_DATATIP_ORIENTATION__ 332
+#define __GO_DATATIP_3COMPONENT__ 333
+#define __GO_DATATIP_AUTOORIENTATION__ 334
+#define __GO_DATATIP_INTERP_MODE__ 335
+#define __GO_DATATIP_DISPLAY_FNC__ 336
+#define __GO_DATATIP_BOX_MODE__ 337
+#define __GO_DATATIP_LABEL_MODE__ 338
+#define __GO_DATATIP_MARK__ 339
+#define __GO_AMBIENTCOLOR__ 340
+#define __GO_DIFFUSECOLOR__ 341
+#define __GO_SPECULARCOLOR__ 342
+#define __GO_COLOR_MATERIAL__ 343
+#define __GO_MATERIAL_SHININESS__ 344
+#define __GO_LIGHT__ 345
+#define __GO_LIGHT_TYPE__ 346
+#define __GO_DATATIPS__ 347
+#define __GO_DATATIPS_COUNT__ 348
+#define __GO_DATATIP_INDEXES__ 349
+#define __GO_DATA_MODEL_DISPLAY_FUNCTION__ 350
+#define __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ 351
+#define __GO_RESIZE__ 352
+#define __GO_TOOLBAR__ 353
+#define __GO_TOOLBAR_VISIBLE__ 354
+#define __GO_MENUBAR__ 355
+#define __GO_MENUBAR_VISIBLE__ 356
+#define __GO_INFOBAR_VISIBLE__ 357
+#define __GO_DOCKABLE__ 358
+#define __GO_LAYOUT__ 359
+#define __GO_LAYOUT_SET__ 360
+#define __GO_UI_TAB__ 361
+#define __GO_UI_GRIDBAG_GRID__ 362
+#define __GO_UI_GRIDBAG_WEIGHT__ 363
+#define __GO_UI_GRIDBAG_FILL__ 364
+#define __GO_UI_GRIDBAG_ANCHOR__ 365
+#define __GO_UI_GRIDBAG_PADDING__ 366
+#define __GO_UI_GRIDBAG_PREFERREDSIZE__ 367
+#define __GO_UI_GRID_GRID__ 368
+#define __GO_UI_GRID_PADDING__ 369
+#define __GO_UI_BORDER_POSITION__ 370
+#define __GO_UI_BORDER_PREFERREDSIZE__ 371
+#define __GO_GRID_OPT_GRID__ 372
+#define __GO_GRID_OPT_PADDING__ 373
+#define __GO_BORDER_OPT_PADDING__ 374
+#define __GO_UI_FRAME_BORDER__ 375
+#define __GO_UI_FRAME_BORDER_COLOR__ 376
+#define __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ 377
+#define __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ 378
+#define __GO_UI_FRAME_BORDER_IN_BORDER__ 379
+#define __GO_UI_FRAME_BORDER_JUSTIFICATION__ 380
+#define __GO_UI_FRAME_BORDER_OUT_BORDER__ 381
+#define __GO_UI_FRAME_BORDER_ROUNDED__ 382
+#define __GO_UI_FRAME_BORDER_SHADOW_IN__ 383
+#define __GO_UI_FRAME_BORDER_SHADOW_OUT__ 384
+#define __GO_UI_FRAME_BORDER_TITLE__ 385
+#define __GO_UI_FRAME_BORDER_POSITION__ 386
+#define __GO_UI_FRAME_BORDER_STYLE__ 387
+#define __GO_UI_GROUP_NAME__ 388
+#define __GO_UI_TITLE_POSITION__ 389
+#define __GO_UI_TITLE_SCROLL__ 390
+#define __GO_UI_FRAME_BORDER_TYPE__ 391
+#define __GO_UI_SCROLLABLE__ 392
 
 #endif /* !__GRAPHIC_OBJECT_PROPERTIES_H__ */
index d159fe3..127f58a 100644 (file)
 
 package org.scilab.modules.graphic_objects.axes;
 
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ARC_DRAWING_METHOD__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_CLEAR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_MARGINS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_SCALE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTO_SUBTICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES_BOUNDS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BACKGROUND__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_BOX_TYPE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_BOX_SET__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_BOX__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CLIP_STATE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_CUBE_SCALING__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_DATA_BOUNDS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FILLED__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FIRST_PLOT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_FRACTIONAL__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_SIZE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_FONT_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_GRID_POSITION__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN_AXIS_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_HIDDEN_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ISOVIEW__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_MODE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_LINE_THICKNESS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARGINS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_BACKGROUND__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_FOREGROUND__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_MODE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE_UNIT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_SIZE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_MARK_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_REAL_DATA_BOUNDS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ROTATION_ANGLES_3D__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ROTATION_ANGLES__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_TITLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_VIEW__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_AUTO_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_FORMAT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_GRID_THICKNESS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LABEL__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LOCATION__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_LOG_FLAG__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_NUMBER_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_REVERSE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_ST_FACTORS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_SUBTICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS_LABELS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS_LOCATIONS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_AXIS_VISIBLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_X_TIGHT_LIMITS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_AUTO_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_FORMAT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_GRID_THICKNESS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LABEL__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LOCATION__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_LOG_FLAG__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_NUMBER_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_REVERSE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_ST_FACTORS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_SUBTICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS_LABELS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS_LOCATIONS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_AXIS_VISIBLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ZOOM_BOX__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_ZOOM_ENABLED__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_AUTO_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_FORMAT__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_COLOR__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_STYLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_GRID_THICKNESS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LABEL__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LOCATION__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_LOG_FLAG__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_NUMBER_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_REVERSE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_ST_FACTORS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_SUBTICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS_LABELS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS_LOCATIONS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_TICKS__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__;
+import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__;
+
+import java.util.ArrayList;
+
 import org.scilab.modules.graphic_objects.arc.Arc.ArcDrawingMethod;
 import org.scilab.modules.graphic_objects.arc.Arc.ArcProperty;
 import org.scilab.modules.graphic_objects.axes.AxisProperty.AxisLocation;
@@ -34,13 +129,6 @@ import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
 import org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties;
 import org.scilab.modules.graphic_objects.graphicObject.Visitor;
 import org.scilab.modules.graphic_objects.textObject.FormattedText;
-import org.scilab.modules.graphic_objects.lighting.ColorTriplet;
-import org.scilab.modules.graphic_objects.lighting.Light;
-import org.scilab.modules.graphic_objects.lighting.Light.LightProperty;
-
-import java.util.ArrayList;
-
-import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
 
 /**
  * Axes class
@@ -346,8 +434,12 @@ public class Axes extends GraphicObject {
                 return Box.BoxProperty.BOX;
             case __GO_HIDDEN_AXIS_COLOR__ :
                 return Box.BoxProperty.HIDDENAXISCOLOR;
-            case __GO_TIGHT_LIMITS__ :
-                return Box.BoxProperty.TIGHTLIMITS;
+            case __GO_X_TIGHT_LIMITS__ :
+                return Box.BoxProperty.XTIGHTLIMITS;
+            case __GO_Y_TIGHT_LIMITS__ :
+                return Box.BoxProperty.YTIGHTLIMITS;
+            case __GO_Z_TIGHT_LIMITS__ :
+                return Box.BoxProperty.ZTIGHTLIMITS;
             case __GO_DATA_BOUNDS__ :
                 return Box.BoxProperty.DATABOUNDS;
             case __GO_REAL_DATA_BOUNDS__ :
@@ -556,8 +648,12 @@ public class Axes extends GraphicObject {
                     return getBoxType();
                 case HIDDENAXISCOLOR:
                     return getHiddenAxisColor();
-                case TIGHTLIMITS:
-                    return getTightLimits();
+                case XTIGHTLIMITS:
+                    return getXTightLimits();
+                case YTIGHTLIMITS:
+                    return getYTightLimits();
+                case ZTIGHTLIMITS:
+                    return getZTightLimits();
                 case DATABOUNDS:
                     return getDataBounds();
                 case REALDATABOUNDS:
@@ -766,8 +862,12 @@ public class Axes extends GraphicObject {
                     return setBoxType((Integer) value);
                 case HIDDENAXISCOLOR:
                     return setHiddenAxisColor((Integer) value);
-                case TIGHTLIMITS:
-                    return setTightLimits((Boolean) value);
+                case XTIGHTLIMITS:
+                    return setXTightLimits((Boolean) value);
+                case YTIGHTLIMITS:
+                    return setYTightLimits((Boolean) value);
+                case ZTIGHTLIMITS:
+                    return setZTightLimits((Boolean) value);
                 case DATABOUNDS:
                     return setDataBounds((Double[]) value);
                 case REALDATABOUNDS:
@@ -2105,17 +2205,45 @@ public class Axes extends GraphicObject {
     }
 
     /**
-     * @return the tight limits
+     * @return the X axis tight limits
      */
-    public Boolean getTightLimits() {
-        return box.getTightLimits();
+    public Boolean getXTightLimits() {
+        return box.getXTightLimits();
     }
 
     /**
-     * @param tightLimits the tightLimits to set
+     * @return the Y axis tight limits
      */
-    public UpdateStatus setTightLimits(Boolean tightLimits) {
-        return box.setTightLimits(tightLimits);
+    public Boolean getYTightLimits() {
+        return box.getYTightLimits();
+    }
+
+    /**
+     * @return the Z axis tight limits
+     */
+    public Boolean getZTightLimits() {
+        return box.getZTightLimits();
+    }
+
+    /**
+     * @param tightLimits the tightLimits to set for X axis
+     */
+    public UpdateStatus setXTightLimits(Boolean tightLimits) {
+        return box.setXTightLimits(tightLimits);
+    }
+
+    /**
+     * @param tightLimits the tightLimits to set for Y axis
+     */
+    public UpdateStatus setYTightLimits(Boolean tightLimits) {
+        return box.setYTightLimits(tightLimits);
+    }
+
+    /**
+     * @param tightLimits the tightLimits to set for Z axis
+     */
+    public UpdateStatus setZTightLimits(Boolean tightLimits) {
+        return box.setZTightLimits(tightLimits);
     }
 
     /**
@@ -2276,10 +2404,14 @@ public class Axes extends GraphicObject {
             }
         }
 
-        if (!getTightLimits()) {
-            for (int i = 0 ; i < 6 ; i += 2) {
-                round(bounds, i);
-            }
+        if (!getXTightLimits()) {
+            round(bounds, 0);
+        }
+        if (!getYTightLimits()) {
+            round(bounds, 2);
+        }
+        if (!getZTightLimits()) {
+            round(bounds, 4);
         }
 
         return bounds;
index ec64ab3..9cbf389 100644 (file)
@@ -21,7 +21,7 @@ import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.UpdateStat
  */
 public class Box {
     /** Box properties names */
-    public enum BoxProperty { BOX, HIDDENAXISCOLOR, TIGHTLIMITS, DATABOUNDS, REALDATABOUNDS, ZOOMENABLED, ZOOMBOX, AUTOSCALE, FIRSTPLOT };
+    public enum BoxProperty { BOX, HIDDENAXISCOLOR, XTIGHTLIMITS, YTIGHTLIMITS, ZTIGHTLIMITS, DATABOUNDS, REALDATABOUNDS, ZOOMENABLED, ZOOMBOX, AUTOSCALE, FIRSTPLOT };
 
     /** Box type */
     public static enum BoxType { OFF, ON, HIDDEN_AXES, BACK_HALF;
@@ -54,7 +54,7 @@ public class Box {
     private int hiddenAxisColor;
 
     /** Specifies whether tight limits are enforced or not */
-    private boolean tightLimits;
+    private boolean[] tightLimits;
 
     /** Data bounding box (6-element array) */
     private double[] dataBounds;
@@ -81,7 +81,7 @@ public class Box {
     public Box() {
         box = BoxType.OFF;
         hiddenAxisColor = 0;
-        tightLimits = false;
+        tightLimits = new boolean[] {false, false, false};
         dataBounds = new double[] {0, 1, 0, 1, -1, 1};
         realDataBounds = new double[6];
         zoomEnabled = false;
@@ -97,7 +97,11 @@ public class Box {
     public Box(Box box) {
         this.box = box.box;
         hiddenAxisColor = box.hiddenAxisColor;
-        tightLimits = box.tightLimits;
+
+        tightLimits = new boolean[3];
+        for (int i = 0; i < tightLimits.length; i++) {
+            tightLimits[i] = box.tightLimits[i];
+        }
 
         dataBounds = new double[6];
 
@@ -241,18 +245,56 @@ public class Box {
     }
 
     /**
-     * @return the tightLimits
+     * @return the tightLimits for X axis
+     */
+    public Boolean getXTightLimits() {
+        return tightLimits[0];
+    }
+
+    /**
+     * @return the tightLimits for Y axis
+     */
+    public Boolean getYTightLimits() {
+        return tightLimits[1];
+    }
+
+    /**
+     * @return the tightLimits for X axis
+     */
+    public Boolean getZTightLimits() {
+        return tightLimits[2];
+    }
+
+    /**
+     * @param tightLimits the tightLimits to set for X axis
      */
-    public Boolean getTightLimits() {
-        return tightLimits;
+    public UpdateStatus setXTightLimits(Boolean tightLimits) {
+        if (this.tightLimits[0] != tightLimits) {
+            this.tightLimits[0] = tightLimits;
+            return UpdateStatus.Success;
+        }
+
+        return UpdateStatus.NoChange;
+    }
+
+    /**
+     * @param tightLimits the tightLimits to set for Y axis
+     */
+    public UpdateStatus setYTightLimits(Boolean tightLimits) {
+        if (this.tightLimits[1] != tightLimits) {
+            this.tightLimits[1] = tightLimits;
+            return UpdateStatus.Success;
+        }
+
+        return UpdateStatus.NoChange;
     }
 
     /**
-     * @param tightLimits the tightLimits to set
+     * @param tightLimits the tightLimits to set for Z axis
      */
-    public UpdateStatus setTightLimits(Boolean tightLimits) {
-        if (this.tightLimits != tightLimits) {
-            this.tightLimits = tightLimits;
+    public UpdateStatus setZTightLimits(Boolean tightLimits) {
+        if (this.tightLimits[2] != tightLimits) {
+            this.tightLimits[2] = tightLimits;
             return UpdateStatus.Success;
         }
 
index 490990a..8882668 100755 (executable)
@@ -192,225 +192,227 @@ public class GraphicObjectProperties {
     public static final int __GO_ROTATION_ANGLES_3D__ = 168;
     public static final int __GO_BOX_TYPE__ = 169;
     public static final int __GO_HIDDEN_AXIS_COLOR__ = 170;
-    public static final int __GO_TIGHT_LIMITS__ = 171;
-    public static final int __GO_DATA_BOUNDS__ = 172;
-    public static final int __GO_REAL_DATA_BOUNDS__ = 173;
-    public static final int __GO_ZOOM_ENABLED__ = 174;
-    public static final int __GO_ZOOM_BOX__ = 175;
-    public static final int __GO_AUTO_SCALE__ = 176;
-    public static final int __GO_FIRST_PLOT__ = 177;
-    public static final int __GO_MARGINS__ = 178;
-    public static final int __GO_AUTO_MARGINS__ = 179;
-    public static final int __GO_AXES_BOUNDS__ = 180;
-    public static final int __GO_CLIP_PROPERTY__ = 181;
-    public static final int __GO_CLIP_STATE__ = 182;
-    public static final int __GO_CLIP_BOX__ = 183;
-    public static final int __GO_CLIP_BOX_SET__ = 184;
-    public static final int __GO_LINE__ = 185;
-    public static final int __GO_LINE_MODE__ = 186;
-    public static final int __GO_LINE_STYLE__ = 187;
-    public static final int __GO_LINE_THICKNESS__ = 188;
-    public static final int __GO_LINE_COLOR__ = 189;
-    public static final int __GO_FILL_MODE__ = 190;
-    public static final int __GO_MARK__ = 191;
-    public static final int __GO_MARK_MODE__ = 192;
-    public static final int __GO_MARK_STYLE__ = 193;
-    public static final int __GO_MARK_SIZE_UNIT__ = 194;
-    public static final int __GO_MARK_SIZE__ = 195;
-    public static final int __GO_MARK_FOREGROUND__ = 196;
-    public static final int __GO_MARK_BACKGROUND__ = 197;
-    public static final int __GO_MARK_OFFSET__ = 198;
-    public static final int __GO_MARK_STRIDE__ = 199;
-    public static final int __GO_SELECTED__ = 200;
-    public static final int __GO_TICKS_DIRECTION__ = 201;
-    public static final int __GO_X_NUMBER_TICKS__ = 202;
-    public static final int __GO_Y_NUMBER_TICKS__ = 203;
-    public static final int __GO_X_TICKS_COORDS__ = 204;
-    public static final int __GO_Y_TICKS_COORDS__ = 205;
-    public static final int __GO_TICKS_COLOR__ = 206;
-    public static final int __GO_TICKS_SEGMENT__ = 207;
-    public static final int __GO_TICKS_STYLE__ = 208;
-    public static final int __GO_SUBTICKS__ = 209;
-    public static final int __GO_NUMBER_TICKS_LABELS__ = 210;
-    public static final int __GO_TICKS_LABELS__ = 211;
-    public static final int __GO_FORMATN__ = 212;
-    public static final int __GO_FONT__ = 213;
-    public static final int __GO_FONT_STYLE__ = 214;
-    public static final int __GO_FONT_SIZE__ = 215;
-    public static final int __GO_FONT_COLOR__ = 216;
-    public static final int __GO_FONT_FRACTIONAL__ = 217;
-    public static final int __GO_Z_BOUNDS__ = 218;
-    public static final int __GO_OUTSIDE_COLOR__ = 219;
-    public static final int __GO_COLOR_RANGE__ = 220;
-    public static final int __GO_DATA_MAPPING__ = 221;
-    public static final int __GO_FONT_ANGLE__ = 222;
-    public static final int __GO_AUTO_POSITION__ = 223;
-    public static final int __GO_CORNERS__ = 224;
-    public static final int __GO_AUTO_ROTATION__ = 225;
-    public static final int __GO_LINKS__ = 226;
-    public static final int __GO_LINKS_COUNT__ = 227;
-    public static final int __GO_LEGEND_LOCATION__ = 228;
-    public static final int __GO_MARKS_COUNT__ = 229;
-    public static final int __GO_LINE_WIDTH__ = 230;
-    public static final int __GO_CLOSED__ = 231;
-    public static final int __GO_ARROW_SIZE_FACTOR__ = 232;
-    public static final int __GO_POLYLINE_STYLE__ = 233;
-    public static final int __GO_INTERP_COLOR_VECTOR__ = 234;
-    public static final int __GO_INTERP_COLOR_VECTOR_SET__ = 235;
-    public static final int __GO_INTERP_COLOR_MODE__ = 236;
-    public static final int __GO_X_SHIFT__ = 237;
-    public static final int __GO_Y_SHIFT__ = 238;
-    public static final int __GO_Z_SHIFT__ = 239;
-    public static final int __GO_BAR_WIDTH__ = 240;
-    public static final int __GO_SURFACE_MODE__ = 241;
-    public static final int __GO_COLOR_MODE__ = 242;
-    public static final int __GO_COLOR_FLAG__ = 243;
-    public static final int __GO_ALIGNMENT__ = 244;
-    public static final int __GO_BOX__ = 245;
-    public static final int __GO_TEXT_BOX__ = 246;
-    public static final int __GO_TEXT_BOX_MODE__ = 247;
-    public static final int __GO_AUTO_DIMENSIONING__ = 248;
-    public static final int __GO_FORMATTED_TEXT__ = 249;
-    public static final int __GO_TEXT_ARRAY_DIMENSIONS__ = 250;
-    public static final int __GO_TEXT_STRINGS__ = 251;
-    public static final int __GO_BASE__ = 252;
-    public static final int __GO_BASE_X__ = 253;
-    public static final int __GO_BASE_Y__ = 254;
-    public static final int __GO_BASE_Z__ = 255;
-    public static final int __GO_DIRECTION__ = 256;
-    public static final int __GO_DIRECTION_X__ = 257;
-    public static final int __GO_DIRECTION_Y__ = 258;
-    public static final int __GO_DIRECTION_Z__ = 259;
-    public static final int __GO_ARROW_SIZE__ = 260;
-    public static final int __GO_SEGS_COLORS__ = 261;
-    public static final int __GO_COLORED__ = 262;
-    public static final int __GO_ARROWS__ = 263;
-    public static final int __GO_NUMBER_ARROWS__ = 264;
-    public static final int __GO_CHAMP_DIMENSIONS__ = 265;
-    public static final int __GO_BOUNDING_BOX__ = 266;
-    public static final int __GO_MAX_LENGTH__ = 267;
-    public static final int __GO_MAX_USABLE_LENGTH__ = 268;
-    public static final int __GO_HIDDEN_COLOR__ = 269;
-    public static final int __GO_STYLE__ = 270;
-    public static final int __GO_UI_CHECKBOX__ = 271;
-    public static final int __GO_UI_EDIT__ = 272;
-    public static final int __GO_UI_SPINNER__ = 273;
-    public static final int __GO_UI_FRAME__ = 274;
-    public static final int __GO_UI_FRAME_SCROLLABLE__ = 275;
-    public static final int __GO_UI_IMAGE__ = 276;
-    public static final int __GO_UI_LISTBOX__ = 277;
-    public static final int __GO_UI_POPUPMENU__ = 278;
-    public static final int __GO_UI_PUSHBUTTON__ = 279;
-    public static final int __GO_UI_RADIOBUTTON__ = 280;
-    public static final int __GO_UI_SLIDER__ = 281;
-    public static final int __GO_UI_TABLE__ = 282;
-    public static final int __GO_UI_TEXT__ = 283;
-    public static final int __GO_UI_LAYER__ = 284;
-    public static final int __GO_UI_BACKGROUNDCOLOR__ = 285;
-    public static final int __GO_UI_ENABLE__ = 286;
-    public static final int __GO_UI_FONTANGLE__ = 287;
-    public static final int __GO_UI_FONTNAME__ = 288;
-    public static final int __GO_UI_FONTSIZE__ = 289;
-    public static final int __GO_UI_FONTUNITS__ = 290;
-    public static final int __GO_UI_FONTWEIGHT__ = 291;
-    public static final int __GO_UI_FOREGROUNDCOLOR__ = 292;
-    public static final int __GO_UI_HORIZONTALALIGNMENT__ = 293;
-    public static final int __GO_UI_LISTBOXTOP__ = 294;
-    public static final int __GO_UI_LISTBOXTOP_SIZE__ = 295;
-    public static final int __GO_UI_MAX__ = 296;
-    public static final int __GO_UI_MIN__ = 297;
-    public static final int __GO_UI_RELIEF__ = 298;
-    public static final int __GO_UI_STRING__ = 299;
-    public static final int __GO_UI_TAB_STRING__ = 300;
-    public static final int __GO_UI_STRING_SIZE__ = 301;
-    public static final int __GO_UI_STRING_COLNB__ = 302;
-    public static final int __GO_UI_TOOLTIPSTRING__ = 303;
-    public static final int __GO_UI_TOOLTIPSTRING_SIZE__ = 304;
-    public static final int __GO_UI_SLIDERSTEP__ = 305;
-    public static final int __GO_UI_UNITS__ = 306;
-    public static final int __GO_UI_VALUE__ = 307;
-    public static final int __GO_UI_TAB_VALUE__ = 308;
-    public static final int __GO_UI_VALUE_SIZE__ = 309;
-    public static final int __GO_UI_VERTICALALIGNMENT__ = 310;
-    public static final int __GO_UIPARENTMENU__ = 311;
-    public static final int __GO_UICHILDMENU__ = 312;
-    public static final int __GO_UICHECKEDMENU__ = 313;
-    public static final int __GO_UI_CHECKED__ = 314;
-    public static final int __GO_UI_LABEL__ = 315;
-    public static final int __GO_UI_MNEMONIC__ = 316;
-    public static final int __GO_UI_ACCELERATOR__ = 317;
-    public static final int __GO_UI_SEPARATOR__ = 318;
-    public static final int __GO_UI_ICON__ = 319;
-    public static final int __GO_CONSOLE__ = 320;
-    public static final int __GO_SHOWHIDDENHANDLES__ = 321;
-    public static final int __GO_SHOWHIDDENPROPERTIES__ = 322;
-    public static final int __GO_USEDEPRECATEDLF__ = 323;
-    public static final int __GO_WAITBAR__ = 324;
-    public static final int __GO_PROGRESSIONBAR__ = 325;
-    public static final int __GO_UI_MESSAGE__ = 326;
-    public static final int __GO_UI_MESSAGE_SIZE__ = 327;
-    public static final int __GO_DATATIP__ = 328;
-    public static final int __GO_DATATIP_DATA__ = 329;
-    public static final int __GO_DATATIP_ORIENTATION__ = 330;
-    public static final int __GO_DATATIP_3COMPONENT__ = 331;
-    public static final int __GO_DATATIP_AUTOORIENTATION__ = 332;
-    public static final int __GO_DATATIP_INTERP_MODE__ = 333;
-    public static final int __GO_DATATIP_DISPLAY_FNC__ = 334;
-    public static final int __GO_DATATIP_BOX_MODE__ = 335;
-    public static final int __GO_DATATIP_LABEL_MODE__ = 336;
-    public static final int __GO_DATATIP_MARK__ = 337;
-    public static final int __GO_AMBIENTCOLOR__ = 338;
-    public static final int __GO_DIFFUSECOLOR__ = 339;
-    public static final int __GO_SPECULARCOLOR__ = 340;
-    public static final int __GO_COLOR_MATERIAL__ = 341;
-    public static final int __GO_MATERIAL_SHININESS__ = 342;
-    public static final int __GO_LIGHT__ = 343;
-    public static final int __GO_LIGHT_TYPE__ = 344;
-    public static final int __GO_DATATIPS__ = 345;
-    public static final int __GO_DATATIPS_COUNT__ = 346;
-    public static final int __GO_DATATIP_INDEXES__ = 347;
-    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION__ = 348;
-    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ = 349;
-    public static final int __GO_RESIZE__ = 350;
-    public static final int __GO_TOOLBAR__ = 351;
-    public static final int __GO_TOOLBAR_VISIBLE__ = 352;
-    public static final int __GO_MENUBAR__ = 353;
-    public static final int __GO_MENUBAR_VISIBLE__ = 354;
-    public static final int __GO_INFOBAR_VISIBLE__ = 355;
-    public static final int __GO_DOCKABLE__ = 356;
-    public static final int __GO_LAYOUT__ = 357;
-    public static final int __GO_LAYOUT_SET__ = 358;
-    public static final int __GO_UI_TAB__ = 359;
-    public static final int __GO_UI_GRIDBAG_GRID__ = 360;
-    public static final int __GO_UI_GRIDBAG_WEIGHT__ = 361;
-    public static final int __GO_UI_GRIDBAG_FILL__ = 362;
-    public static final int __GO_UI_GRIDBAG_ANCHOR__ = 363;
-    public static final int __GO_UI_GRIDBAG_PADDING__ = 364;
-    public static final int __GO_UI_GRIDBAG_PREFERREDSIZE__ = 365;
-    public static final int __GO_UI_GRID_GRID__ = 366;
-    public static final int __GO_UI_GRID_PADDING__ = 367;
-    public static final int __GO_UI_BORDER_POSITION__ = 368;
-    public static final int __GO_UI_BORDER_PREFERREDSIZE__ = 369;
-    public static final int __GO_GRID_OPT_GRID__ = 370;
-    public static final int __GO_GRID_OPT_PADDING__ = 371;
-    public static final int __GO_BORDER_OPT_PADDING__ = 372;
-    public static final int __GO_UI_FRAME_BORDER__ = 373;
-    public static final int __GO_UI_FRAME_BORDER_COLOR__ = 374;
-    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ = 375;
-    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ = 376;
-    public static final int __GO_UI_FRAME_BORDER_IN_BORDER__ = 377;
-    public static final int __GO_UI_FRAME_BORDER_JUSTIFICATION__ = 378;
-    public static final int __GO_UI_FRAME_BORDER_OUT_BORDER__ = 379;
-    public static final int __GO_UI_FRAME_BORDER_ROUNDED__ = 380;
-    public static final int __GO_UI_FRAME_BORDER_SHADOW_IN__ = 381;
-    public static final int __GO_UI_FRAME_BORDER_SHADOW_OUT__ = 382;
-    public static final int __GO_UI_FRAME_BORDER_TITLE__ = 383;
-    public static final int __GO_UI_FRAME_BORDER_POSITION__ = 384;
-    public static final int __GO_UI_FRAME_BORDER_STYLE__ = 385;
-    public static final int __GO_UI_GROUP_NAME__ = 386;
-    public static final int __GO_UI_TITLE_POSITION__ = 387;
-    public static final int __GO_UI_TITLE_SCROLL__ = 388;
-    public static final int __GO_UI_FRAME_BORDER_TYPE__ = 389;
-    public static final int __GO_UI_SCROLLABLE__ = 390;
+    public static final int __GO_X_TIGHT_LIMITS__ = 171;
+    public static final int __GO_Y_TIGHT_LIMITS__ = 172;
+    public static final int __GO_Z_TIGHT_LIMITS__ = 173;
+    public static final int __GO_DATA_BOUNDS__ = 174;
+    public static final int __GO_REAL_DATA_BOUNDS__ = 175;
+    public static final int __GO_ZOOM_ENABLED__ = 176;
+    public static final int __GO_ZOOM_BOX__ = 177;
+    public static final int __GO_AUTO_SCALE__ = 178;
+    public static final int __GO_FIRST_PLOT__ = 179;
+    public static final int __GO_MARGINS__ = 180;
+    public static final int __GO_AUTO_MARGINS__ = 181;
+    public static final int __GO_AXES_BOUNDS__ = 182;
+    public static final int __GO_CLIP_PROPERTY__ = 183;
+    public static final int __GO_CLIP_STATE__ = 184;
+    public static final int __GO_CLIP_BOX__ = 185;
+    public static final int __GO_CLIP_BOX_SET__ = 186;
+    public static final int __GO_LINE__ = 187;
+    public static final int __GO_LINE_MODE__ = 188;
+    public static final int __GO_LINE_STYLE__ = 189;
+    public static final int __GO_LINE_THICKNESS__ = 190;
+    public static final int __GO_LINE_COLOR__ = 191;
+    public static final int __GO_FILL_MODE__ = 192;
+    public static final int __GO_MARK__ = 193;
+    public static final int __GO_MARK_MODE__ = 194;
+    public static final int __GO_MARK_STYLE__ = 195;
+    public static final int __GO_MARK_SIZE_UNIT__ = 196;
+    public static final int __GO_MARK_SIZE__ = 197;
+    public static final int __GO_MARK_FOREGROUND__ = 198;
+    public static final int __GO_MARK_BACKGROUND__ = 199;
+    public static final int __GO_MARK_OFFSET__ = 200;
+    public static final int __GO_MARK_STRIDE__ = 201;
+    public static final int __GO_SELECTED__ = 202;
+    public static final int __GO_TICKS_DIRECTION__ = 203;
+    public static final int __GO_X_NUMBER_TICKS__ = 204;
+    public static final int __GO_Y_NUMBER_TICKS__ = 205;
+    public static final int __GO_X_TICKS_COORDS__ = 206;
+    public static final int __GO_Y_TICKS_COORDS__ = 207;
+    public static final int __GO_TICKS_COLOR__ = 208;
+    public static final int __GO_TICKS_SEGMENT__ = 209;
+    public static final int __GO_TICKS_STYLE__ = 210;
+    public static final int __GO_SUBTICKS__ = 211;
+    public static final int __GO_NUMBER_TICKS_LABELS__ = 212;
+    public static final int __GO_TICKS_LABELS__ = 213;
+    public static final int __GO_FORMATN__ = 214;
+    public static final int __GO_FONT__ = 215;
+    public static final int __GO_FONT_STYLE__ = 216;
+    public static final int __GO_FONT_SIZE__ = 217;
+    public static final int __GO_FONT_COLOR__ = 218;
+    public static final int __GO_FONT_FRACTIONAL__ = 219;
+    public static final int __GO_Z_BOUNDS__ = 220;
+    public static final int __GO_OUTSIDE_COLOR__ = 221;
+    public static final int __GO_COLOR_RANGE__ = 222;
+    public static final int __GO_DATA_MAPPING__ = 223;
+    public static final int __GO_FONT_ANGLE__ = 224;
+    public static final int __GO_AUTO_POSITION__ = 225;
+    public static final int __GO_CORNERS__ = 226;
+    public static final int __GO_AUTO_ROTATION__ = 227;
+    public static final int __GO_LINKS__ = 228;
+    public static final int __GO_LINKS_COUNT__ = 229;
+    public static final int __GO_LEGEND_LOCATION__ = 230;
+    public static final int __GO_MARKS_COUNT__ = 231;
+    public static final int __GO_LINE_WIDTH__ = 232;
+    public static final int __GO_CLOSED__ = 233;
+    public static final int __GO_ARROW_SIZE_FACTOR__ = 234;
+    public static final int __GO_POLYLINE_STYLE__ = 235;
+    public static final int __GO_INTERP_COLOR_VECTOR__ = 236;
+    public static final int __GO_INTERP_COLOR_VECTOR_SET__ = 237;
+    public static final int __GO_INTERP_COLOR_MODE__ = 238;
+    public static final int __GO_X_SHIFT__ = 239;
+    public static final int __GO_Y_SHIFT__ = 240;
+    public static final int __GO_Z_SHIFT__ = 241;
+    public static final int __GO_BAR_WIDTH__ = 242;
+    public static final int __GO_SURFACE_MODE__ = 243;
+    public static final int __GO_COLOR_MODE__ = 244;
+    public static final int __GO_COLOR_FLAG__ = 245;
+    public static final int __GO_ALIGNMENT__ = 246;
+    public static final int __GO_BOX__ = 247;
+    public static final int __GO_TEXT_BOX__ = 248;
+    public static final int __GO_TEXT_BOX_MODE__ = 249;
+    public static final int __GO_AUTO_DIMENSIONING__ = 250;
+    public static final int __GO_FORMATTED_TEXT__ = 251;
+    public static final int __GO_TEXT_ARRAY_DIMENSIONS__ = 252;
+    public static final int __GO_TEXT_STRINGS__ = 253;
+    public static final int __GO_BASE__ = 254;
+    public static final int __GO_BASE_X__ = 255;
+    public static final int __GO_BASE_Y__ = 256;
+    public static final int __GO_BASE_Z__ = 257;
+    public static final int __GO_DIRECTION__ = 258;
+    public static final int __GO_DIRECTION_X__ = 259;
+    public static final int __GO_DIRECTION_Y__ = 260;
+    public static final int __GO_DIRECTION_Z__ = 261;
+    public static final int __GO_ARROW_SIZE__ = 262;
+    public static final int __GO_SEGS_COLORS__ = 263;
+    public static final int __GO_COLORED__ = 264;
+    public static final int __GO_ARROWS__ = 265;
+    public static final int __GO_NUMBER_ARROWS__ = 266;
+    public static final int __GO_CHAMP_DIMENSIONS__ = 267;
+    public static final int __GO_BOUNDING_BOX__ = 268;
+    public static final int __GO_MAX_LENGTH__ = 269;
+    public static final int __GO_MAX_USABLE_LENGTH__ = 270;
+    public static final int __GO_HIDDEN_COLOR__ = 271;
+    public static final int __GO_STYLE__ = 272;
+    public static final int __GO_UI_CHECKBOX__ = 273;
+    public static final int __GO_UI_EDIT__ = 274;
+    public static final int __GO_UI_SPINNER__ = 275;
+    public static final int __GO_UI_FRAME__ = 276;
+    public static final int __GO_UI_FRAME_SCROLLABLE__ = 277;
+    public static final int __GO_UI_IMAGE__ = 278;
+    public static final int __GO_UI_LISTBOX__ = 279;
+    public static final int __GO_UI_POPUPMENU__ = 280;
+    public static final int __GO_UI_PUSHBUTTON__ = 281;
+    public static final int __GO_UI_RADIOBUTTON__ = 282;
+    public static final int __GO_UI_SLIDER__ = 283;
+    public static final int __GO_UI_TABLE__ = 284;
+    public static final int __GO_UI_TEXT__ = 285;
+    public static final int __GO_UI_LAYER__ = 286;
+    public static final int __GO_UI_BACKGROUNDCOLOR__ = 287;
+    public static final int __GO_UI_ENABLE__ = 288;
+    public static final int __GO_UI_FONTANGLE__ = 289;
+    public static final int __GO_UI_FONTNAME__ = 290;
+    public static final int __GO_UI_FONTSIZE__ = 291;
+    public static final int __GO_UI_FONTUNITS__ = 292;
+    public static final int __GO_UI_FONTWEIGHT__ = 293;
+    public static final int __GO_UI_FOREGROUNDCOLOR__ = 294;
+    public static final int __GO_UI_HORIZONTALALIGNMENT__ = 295;
+    public static final int __GO_UI_LISTBOXTOP__ = 296;
+    public static final int __GO_UI_LISTBOXTOP_SIZE__ = 297;
+    public static final int __GO_UI_MAX__ = 298;
+    public static final int __GO_UI_MIN__ = 299;
+    public static final int __GO_UI_RELIEF__ = 300;
+    public static final int __GO_UI_STRING__ = 301;
+    public static final int __GO_UI_TAB_STRING__ = 302;
+    public static final int __GO_UI_STRING_SIZE__ = 303;
+    public static final int __GO_UI_STRING_COLNB__ = 304;
+    public static final int __GO_UI_TOOLTIPSTRING__ = 305;
+    public static final int __GO_UI_TOOLTIPSTRING_SIZE__ = 306;
+    public static final int __GO_UI_SLIDERSTEP__ = 307;
+    public static final int __GO_UI_UNITS__ = 308;
+    public static final int __GO_UI_VALUE__ = 309;
+    public static final int __GO_UI_TAB_VALUE__ = 310;
+    public static final int __GO_UI_VALUE_SIZE__ = 311;
+    public static final int __GO_UI_VERTICALALIGNMENT__ = 312;
+    public static final int __GO_UIPARENTMENU__ = 313;
+    public static final int __GO_UICHILDMENU__ = 314;
+    public static final int __GO_UICHECKEDMENU__ = 315;
+    public static final int __GO_UI_CHECKED__ = 316;
+    public static final int __GO_UI_LABEL__ = 317;
+    public static final int __GO_UI_MNEMONIC__ = 318;
+    public static final int __GO_UI_ACCELERATOR__ = 319;
+    public static final int __GO_UI_SEPARATOR__ = 320;
+    public static final int __GO_UI_ICON__ = 321;
+    public static final int __GO_CONSOLE__ = 322;
+    public static final int __GO_SHOWHIDDENHANDLES__ = 323;
+    public static final int __GO_SHOWHIDDENPROPERTIES__ = 324;
+    public static final int __GO_USEDEPRECATEDLF__ = 325;
+    public static final int __GO_WAITBAR__ = 326;
+    public static final int __GO_PROGRESSIONBAR__ = 327;
+    public static final int __GO_UI_MESSAGE__ = 328;
+    public static final int __GO_UI_MESSAGE_SIZE__ = 329;
+    public static final int __GO_DATATIP__ = 330;
+    public static final int __GO_DATATIP_DATA__ = 331;
+    public static final int __GO_DATATIP_ORIENTATION__ = 332;
+    public static final int __GO_DATATIP_3COMPONENT__ = 333;
+    public static final int __GO_DATATIP_AUTOORIENTATION__ = 334;
+    public static final int __GO_DATATIP_INTERP_MODE__ = 335;
+    public static final int __GO_DATATIP_DISPLAY_FNC__ = 336;
+    public static final int __GO_DATATIP_BOX_MODE__ = 337;
+    public static final int __GO_DATATIP_LABEL_MODE__ = 338;
+    public static final int __GO_DATATIP_MARK__ = 339;
+    public static final int __GO_AMBIENTCOLOR__ = 340;
+    public static final int __GO_DIFFUSECOLOR__ = 341;
+    public static final int __GO_SPECULARCOLOR__ = 342;
+    public static final int __GO_COLOR_MATERIAL__ = 343;
+    public static final int __GO_MATERIAL_SHININESS__ = 344;
+    public static final int __GO_LIGHT__ = 345;
+    public static final int __GO_LIGHT_TYPE__ = 346;
+    public static final int __GO_DATATIPS__ = 347;
+    public static final int __GO_DATATIPS_COUNT__ = 348;
+    public static final int __GO_DATATIP_INDEXES__ = 349;
+    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION__ = 350;
+    public static final int __GO_DATA_MODEL_DISPLAY_FUNCTION_SIZE__ = 351;
+    public static final int __GO_RESIZE__ = 352;
+    public static final int __GO_TOOLBAR__ = 353;
+    public static final int __GO_TOOLBAR_VISIBLE__ = 354;
+    public static final int __GO_MENUBAR__ = 355;
+    public static final int __GO_MENUBAR_VISIBLE__ = 356;
+    public static final int __GO_INFOBAR_VISIBLE__ = 357;
+    public static final int __GO_DOCKABLE__ = 358;
+    public static final int __GO_LAYOUT__ = 359;
+    public static final int __GO_LAYOUT_SET__ = 360;
+    public static final int __GO_UI_TAB__ = 361;
+    public static final int __GO_UI_GRIDBAG_GRID__ = 362;
+    public static final int __GO_UI_GRIDBAG_WEIGHT__ = 363;
+    public static final int __GO_UI_GRIDBAG_FILL__ = 364;
+    public static final int __GO_UI_GRIDBAG_ANCHOR__ = 365;
+    public static final int __GO_UI_GRIDBAG_PADDING__ = 366;
+    public static final int __GO_UI_GRIDBAG_PREFERREDSIZE__ = 367;
+    public static final int __GO_UI_GRID_GRID__ = 368;
+    public static final int __GO_UI_GRID_PADDING__ = 369;
+    public static final int __GO_UI_BORDER_POSITION__ = 370;
+    public static final int __GO_UI_BORDER_PREFERREDSIZE__ = 371;
+    public static final int __GO_GRID_OPT_GRID__ = 372;
+    public static final int __GO_GRID_OPT_PADDING__ = 373;
+    public static final int __GO_BORDER_OPT_PADDING__ = 374;
+    public static final int __GO_UI_FRAME_BORDER__ = 375;
+    public static final int __GO_UI_FRAME_BORDER_COLOR__ = 376;
+    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_IN__ = 377;
+    public static final int __GO_UI_FRAME_BORDER_HIGHLIGHT_OUT__ = 378;
+    public static final int __GO_UI_FRAME_BORDER_IN_BORDER__ = 379;
+    public static final int __GO_UI_FRAME_BORDER_JUSTIFICATION__ = 380;
+    public static final int __GO_UI_FRAME_BORDER_OUT_BORDER__ = 381;
+    public static final int __GO_UI_FRAME_BORDER_ROUNDED__ = 382;
+    public static final int __GO_UI_FRAME_BORDER_SHADOW_IN__ = 383;
+    public static final int __GO_UI_FRAME_BORDER_SHADOW_OUT__ = 384;
+    public static final int __GO_UI_FRAME_BORDER_TITLE__ = 385;
+    public static final int __GO_UI_FRAME_BORDER_POSITION__ = 386;
+    public static final int __GO_UI_FRAME_BORDER_STYLE__ = 387;
+    public static final int __GO_UI_GROUP_NAME__ = 388;
+    public static final int __GO_UI_TITLE_POSITION__ = 389;
+    public static final int __GO_UI_TITLE_SCROLL__ = 390;
+    public static final int __GO_UI_FRAME_BORDER_TYPE__ = 391;
+    public static final int __GO_UI_SCROLLABLE__ = 392;
 
 }
index 747d368..8713e12 100755 (executable)
@@ -188,7 +188,9 @@ __GO_ROTATION_ANGLES__
 __GO_ROTATION_ANGLES_3D__
 __GO_BOX_TYPE__
 __GO_HIDDEN_AXIS_COLOR__
-__GO_TIGHT_LIMITS__
+__GO_X_TIGHT_LIMITS__
+__GO_Y_TIGHT_LIMITS__
+__GO_Z_TIGHT_LIMITS__
 __GO_DATA_BOUNDS__
 __GO_REAL_DATA_BOUNDS__
 __GO_ZOOM_ENABLED__
index a5f4f8b..619484c 100644 (file)
                             <listitem>
                                 <para>
                                     3 character string that sets the scale (linear or logarithmic) along the axes.
-                                    Each character speficfies the scale for respectivgly the X, Y and Z axes.
+                                    Each character speficfies the scale for respectively the X, Y and Z axes.
                                     They should take a value between <literal>'n'</literal> for linear scale or
                                     <literal>'l'</literal> for logarithmic scale.
                                 </para>
                             <term>tight_limits: </term>
                             <listitem>
                                 <para>
-                                    If this property value is <literal>"on"</literal> axes adapt to fit exactly with the minima and
-                                    maxima values of the data bounds. If this field value is <literal>"off"</literal>, axes may
-                                    enlarge boundaries such as to produce pretty tics labels.
+                                    A <literal>1x3</literal> string vector giving the tight_limits status
+                                    for each axis. This property specifies whether each axis fits exactly with the minima and
+                                    maxima values of the data bounds. If an item is <literal>"off"</literal>, the corresponding axis may
+                                    enlarge boundaries such as to produce pretty tics labels. For a global setting (all axes at once), you have to set its value
+                                    to <literal>"on"</literal> or <literal>"off"</literal> (single string). To act on a single axis,
+                                    the syntax is <literal>tight_limits(N)</literal> where <literal>N</literal> is
+                                    <literal>1,2</literal> or <literal>3</literal> corresponding to the
+                                    <literal>x,y</literal> or <literal>z</literal> axis.
                                 </para>
                             </listitem>
                         </varlistentry>
@@ -1045,6 +1050,10 @@ a.ticks_st=[1 1;0 m(2)];
                     </itemizedlist>
                 </revremark>
             </revision>
+            <revision>
+                <revnumber>5.5.2</revnumber>
+                <revremark>tight_limits property can now manage X, Y and Z axis separately.</revremark>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index 1989eb0..1cc533f 100644 (file)
@@ -578,7 +578,7 @@ function ged_axes(h)
     TCL_SetVar("curvis",h.visible)
     TCL_SetVar("curfontsize",string(h.font_size))
     TCL_SetVar("curfontcolor",string(h.font_color))
-    TCL_SetVar("limToggle",h.tight_limits)
+    TCL_SetVar("limToggle",h.tight_limits(1))
     TCL_SetVar("isoToggle",h.isoview)
     TCL_SetVar("cubToggle",h.cube_scaling)
     TCL_SetVar("viewToggle",h.view)
index 497516d..2d64863 100644 (file)
@@ -373,7 +373,7 @@ int sci_set(char *fname, unsigned long fname_len)
                     sciErr = getMatrixOfHandle(pvApiCtx, piAddr3, &iRows3, &iCols3, (long long**)&pvData);
                     break;
                 case sci_strings :
-                    if (strcmp(pstProperty, "tics_labels") != 0 && strcmp(pstProperty, "auto_ticks") != 0 &&
+                    if (strcmp(pstProperty, "tics_labels") != 0 && strcmp(pstProperty, "auto_ticks") != 0 && strcmp(pstProperty, "tight_limits") != 0 &&
                             strcmp(pstProperty, "axes_visible") != 0 && strcmp(pstProperty, "axes_reverse") != 0 &&
                             strcmp(pstProperty, "text") != 0 && stricmp(pstProperty, "string") != 0 &&
                             stricmp(pstProperty, "tooltipstring") != 0 && stricmp(pstProperty, "ticks_format") != 0) /* Added for uicontrols */
index b764f33..d9f54b6 100644 (file)
@@ -551,7 +551,9 @@ int InitAxesModel()
     setGraphicObjectProperty(iAxesmdlUID, __GO_REAL_DATA_BOUNDS__, dataBounds, jni_double_vector, 6);
 
     tightLimits = 0;
-    setGraphicObjectProperty(iAxesmdlUID, __GO_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+    setGraphicObjectProperty(iAxesmdlUID, __GO_X_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+    setGraphicObjectProperty(iAxesmdlUID, __GO_Y_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+    setGraphicObjectProperty(iAxesmdlUID, __GO_Z_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
 
     /* Sets the default arc drawing method to lines (1), which is faster */
     arcDrawingMethod = 1;
index 0b72de2..6e81ca4 100644 (file)
@@ -656,10 +656,10 @@ int re_index_brect(double *brect, double *drect)
 BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
 {
     BOOL haschanged = FALSE;
-    BOOL tightLimitsPrev = FALSE;
+    BOOL xTightLimitsPrev = FALSE, yTightLimitsPrev = FALSE, zTightLimitsPrev = FALSE;
     BOOL isoviewPrev = FALSE;
     int boxPrev = 0;
-    int tightLimits = 0;
+    int tightLimits = 0, xTightLimits = 0, yTightLimits = 0, zTightLimits = 0;
     int firstPlot = 0;
     int axisVisible = 0;
     int boxType = 0;
@@ -689,8 +689,13 @@ BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
     getGraphicObjectProperty(iSubwinUID, __GO_Y_AXIS_LOCATION__, jni_int, (void**)&piTmp);
     yLocationPrev = iTmp;
 
-    getGraphicObjectProperty(iSubwinUID, __GO_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
-    tightLimitsPrev = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_X_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    xTightLimitsPrev = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_Y_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    yTightLimitsPrev = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_Z_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    zTightLimitsPrev = iTmp;
+
     getGraphicObjectProperty(iSubwinUID, __GO_ISOVIEW__, jni_bool, (void **)&piTmp);
     isoviewPrev = iTmp;
 
@@ -707,7 +712,9 @@ BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
         case '7':
         case '8':
             tightLimits = 1;
-            setGraphicObjectProperty(iSubwinUID, __GO_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_X_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_Y_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_Z_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
             break;
         case '3':
         case '4':
@@ -718,7 +725,9 @@ BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
         case '6':
             /* pretty axes */
             tightLimits = 0;
-            setGraphicObjectProperty(iSubwinUID, __GO_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_X_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_Y_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
+            setGraphicObjectProperty(iSubwinUID, __GO_Z_TIGHT_LIMITS__, &tightLimits, jni_bool, 1);
             break;
     }
 
@@ -838,8 +847,13 @@ BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
     getGraphicObjectProperty(iSubwinUID, __GO_Y_AXIS_LOCATION__, jni_int, (void**)&piTmp);
     yLocation = iTmp;
 
-    getGraphicObjectProperty(iSubwinUID, __GO_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
-    tightLimits = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_X_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    xTightLimits = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_Y_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    yTightLimits = iTmp;
+    getGraphicObjectProperty(iSubwinUID, __GO_Z_TIGHT_LIMITS__, jni_bool, (void **)&piTmp);
+    zTightLimits = iTmp;
+
     getGraphicObjectProperty(iSubwinUID, __GO_ISOVIEW__, jni_bool, (void **)&piTmp);
     isoview = iTmp;
 
@@ -847,7 +861,9 @@ BOOL strflag2axes_properties(int iSubwinUID, char *strflag)
     if (axesVisible[0] != axesVisiblePrev[0]
             || axesVisible[1] != axesVisiblePrev[1]
             || axesVisible[2] != axesVisiblePrev[2]
-            || xLocation != xLocationPrev || yLocation != yLocationPrev || boxType != boxPrev || tightLimits != tightLimitsPrev || isoview != isoviewPrev)
+            || xLocation != xLocationPrev || yLocation != yLocationPrev || boxType != boxPrev
+            || xTightLimits != xTightLimitsPrev || yTightLimits != yTightLimitsPrev || zTightLimits != zTightLimitsPrev
+            || isoview != isoviewPrev)
     {
         haschanged = TRUE;
     }
index b467731..044f730 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
  * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
  * Copyright (C) 2011 - DIGITEO - Vincent Couvert
+ * Copyright (C) 2014 - Scilab Enterprises - Vincent Couvert
  *
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*        a handle                                                        */
 /*------------------------------------------------------------------------*/
 
+#include <string.h>
 #include "getHandleProperty.h"
+#include "GetProperty.h"
 #include "returnProperty.h"
 #include "Scierror.h"
 #include "localization.h"
+#ifdef _MSC_VER
+#include "strdup_windows.h"
+#endif
 
 #include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
 /*------------------------------------------------------------------------*/
 int get_tight_limits_property(void* _pvCtx, int iObjUID)
 {
+    char * tightLimits[3]  = { NULL, NULL, NULL };
+    int const axesTightLimitsPropertiesNames[3] = {__GO_X_TIGHT_LIMITS__, __GO_Y_TIGHT_LIMITS__, __GO_Z_TIGHT_LIMITS__};
     int iTightLimits = 0;
     int* piTightLimits = &iTightLimits;
 
-    getGraphicObjectProperty(iObjUID, __GO_TIGHT_LIMITS__, jni_bool, (void **)&piTightLimits);
+    int i = 0;
+    int j = 0;
+    int status = -1;
 
-    if (piTightLimits == NULL)
+    for (i = 0 ; i < 3 ; i++)
     {
-        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
-        return -1;
-    }
+        getGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[i], jni_bool, (void **)&piTightLimits);
+
+        if (piTightLimits == NULL)
+        {
+            Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
+            return -1;
+        }
+
+        if (iTightLimits)
+        {
+            tightLimits[i] = strdup("on");
+        }
+        else
+        {
+            tightLimits[i] = strdup("off");
+        }
+
+        if (tightLimits[i] == NULL)
+        {
+            for (j = 0 ; j < i ; j++)
+            {
+                free(tightLimits[j]);
+            }
+
+            Scierror(999, _("%s: No more memory.\n"), "get_tight_limits_property");
+            return -1;
+        }
 
-    if (iTightLimits)
-    {
-        return sciReturnString(_pvCtx, "on");
     }
-    else
+
+    status = sciReturnRowStringVector(_pvCtx, tightLimits, 3);
+
+    for (i = 0 ; i < 3 ; i++)
     {
-        return sciReturnString(_pvCtx, "off");
+        free(tightLimits[i]);
     }
 
+    return status;
 }
 /*------------------------------------------------------------------------*/
index 16ed4aa..50716ba 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
  * Copyright (C) 2010 - DIGITEO - Manuel Juliachs
+ * Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
  *
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*        a handle                                                        */
 /*------------------------------------------------------------------------*/
 
+#include <string.h>
+
 #include "setHandleProperty.h"
 #include "SetProperty.h"
 #include "getPropertyAssignedValue.h"
 #include "SetPropertyStatus.h"
+#include "GetProperty.h"
 #include "Scierror.h"
 #include "localization.h"
 
 #include "setGraphicObjectProperty.h"
+#include "getGraphicObjectProperty.h"
 #include "graphicObjectProperties.h"
 
 /*------------------------------------------------------------------------*/
 int set_tight_limits_property(void* _pvCtx, int iObjUID, void* _pvData, int valueType, int nbRow, int nbCol)
 {
-    BOOL status = FALSE;
+    BOOL status[3];
+    char ** values = NULL;
+    int mSize = nbRow * nbCol;
 
-    int b =  (int)FALSE;
+    int const axesTightLimitsPropertiesNames[3] = {__GO_X_TIGHT_LIMITS__, __GO_Y_TIGHT_LIMITS__, __GO_Z_TIGHT_LIMITS__};
 
-    b = tryGetBooleanValueFromStack(_pvData, valueType, nbRow, nbCol, "tight_limits");
-    if (b == NOT_A_BOOLEAN_VALUE)
+    if (mSize == 1)
     {
-        return SET_PROPERTY_ERROR;
-    }
+        int tightLimits = (int) FALSE;
+
+        tightLimits = tryGetBooleanValueFromStack(((char**)_pvData)[0], valueType, nbRow, nbCol, "tight_limits");
 
-    status = setGraphicObjectProperty(iObjUID, __GO_TIGHT_LIMITS__, &b, jni_bool, 1);
+        if (tightLimits == NOT_A_BOOLEAN_VALUE)
+        {
+            return SET_PROPERTY_ERROR;
+        }
 
-    if (status == TRUE)
+        status[0] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[0], &tightLimits, jni_bool, 1);
+        status[1] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[1], &tightLimits, jni_bool, 1);
+        status[2] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[2], &tightLimits, jni_bool, 1);
+
+        if (status[0] == TRUE && status[1] == TRUE && status[2] == TRUE)
+        {
+            return SET_PROPERTY_SUCCEED;
+        }
+        else
+        {
+            Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
+            return SET_PROPERTY_ERROR;
+        }
+    }
+    else if (mSize == 2 || mSize == 3)
     {
-        return SET_PROPERTY_SUCCEED;
+        int i;
+        BOOL tightLimits[3];
+        int iTightLimits = 0;
+        int *piTightLimits = &iTightLimits;
+
+        if (valueType != sci_strings)
+        {
+            Scierror(999, _("Wrong type for '%s' property: String matrix expected.\n"), "tight_limits");
+            return SET_PROPERTY_ERROR;
+        }
+
+        getGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[0], jni_bool, (void **)&piTightLimits);
+
+        if (piTightLimits == NULL)
+        {
+            Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
+            return SET_PROPERTY_ERROR;
+        }
+
+        tightLimits[0] = iTightLimits;
+
+        getGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[1], jni_bool, (void **)&piTightLimits);
+        tightLimits[1] = iTightLimits;
+
+        getGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[2], jni_bool, (void **)&piTightLimits);
+        tightLimits[2] = iTightLimits;
+
+        values = (char**)_pvData;
+
+        for (i = 0; i < mSize; i++)
+        {
+            if (strcmp(values[i], "off") == 0)
+            {
+                tightLimits[i] = FALSE;
+            }
+            else if (strcmp(values[i], "on") == 0)
+            {
+                tightLimits[i] = TRUE;
+            }
+            else
+            {
+                Scierror(999, _("Wrong value for '%s' property: '%s' or '%s' expected.\n"), "tight_limits", "on", "off");
+                return SET_PROPERTY_ERROR;
+            }
+        }
+
+        status[0] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[0], &tightLimits[0], jni_bool, 1);
+        status[1] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[1], &tightLimits[1], jni_bool, 1);
+        status[2] = setGraphicObjectProperty(iObjUID, axesTightLimitsPropertiesNames[2], &tightLimits[2], jni_bool, 1);
+
+        if (status[0] == TRUE && status[1] == TRUE && status[2] == TRUE)
+        {
+            return SET_PROPERTY_SUCCEED;
+        }
+        else
+        {
+            Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
+            return SET_PROPERTY_ERROR;
+        }
     }
     else
     {
-        Scierror(999, _("'%s' property does not exist for this handle.\n"), "tight_limits");
+        Scierror(999, _("Wrong size for '%s' property: At most %d elements expected.\n"), "tight_limits", 3);
         return SET_PROPERTY_ERROR;
     }
+    return SET_PROPERTY_ERROR;
 }
 /*------------------------------------------------------------------------*/
 
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13690.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_13690.dia.ref
new file mode 100644 (file)
index 0000000..63b4fc3
--- /dev/null
@@ -0,0 +1,50 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// <-- Non-regression test for bug 13690 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13690
+//
+// <-- Short Description -->
+// tight_limits property could not manage X, Y and Z axis separately.
+// Defaults
+a=gca();
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Change all values (old behavior)
+a.tight_limits = "on";
+assert_checkequal(a.tight_limits, ["on" "on" "on"]);
+// Back to defaults
+a.tight_limits = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Change X-axis
+a.tight_limits(1) = "on";
+assert_checkequal(a.tight_limits, ["on" "off" "off"]);
+a.tight_limits(1) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Change Y-axis
+a.tight_limits(2) = "on";
+assert_checkequal(a.tight_limits, ["off" "on" "off"]);
+a.tight_limits(2) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Change Z-axis
+a.tight_limits(3) = "on";
+assert_checkequal(a.tight_limits, ["off" "off" "on"]);
+a.tight_limits(3) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Change all at once
+a.tight_limits = ["on" "on" "on"];
+assert_checkequal(a.tight_limits, ["on" "on" "on"]);
+a.tight_limits = ["off" "off" "off"];
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+// Save/load
+a=gca();
+a.tight_limits = ["off" "on" "off"];
+save(TMPDIR + filesep() + "bug_13690.sod", "a");
+clear a
+load(TMPDIR + filesep() + "bug_13690.sod");
+assert_checkequal(a.tight_limits, ["off" "on" "off"]);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_13690.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_13690.tst
new file mode 100644 (file)
index 0000000..d848e1e
--- /dev/null
@@ -0,0 +1,60 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vincent COUVERT
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+// <-- Non-regression test for bug 13690 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13690
+//
+// <-- Short Description -->
+// tight_limits property could not manage X, Y and Z axis separately.
+
+// Defaults
+a=gca();
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Change all values (old behavior)
+a.tight_limits = "on";
+assert_checkequal(a.tight_limits, ["on" "on" "on"]);
+
+// Back to defaults
+a.tight_limits = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Change X-axis
+a.tight_limits(1) = "on";
+assert_checkequal(a.tight_limits, ["on" "off" "off"]);
+a.tight_limits(1) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Change Y-axis
+a.tight_limits(2) = "on";
+assert_checkequal(a.tight_limits, ["off" "on" "off"]);
+a.tight_limits(2) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Change Z-axis
+a.tight_limits(3) = "on";
+assert_checkequal(a.tight_limits, ["off" "off" "on"]);
+a.tight_limits(3) = "off";
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Change all at once
+a.tight_limits = ["on" "on" "on"];
+assert_checkequal(a.tight_limits, ["on" "on" "on"]);
+a.tight_limits = ["off" "off" "off"];
+assert_checkequal(a.tight_limits, ["off" "off" "off"]);
+
+// Save/load
+a=gca();
+a.tight_limits = ["off" "on" "off"];
+save(TMPDIR + filesep() + "bug_13690.sod", "a");
+clear a
+load(TMPDIR + filesep() + "bug_13690.sod");
+assert_checkequal(a.tight_limits, ["off" "on" "off"]);
index abca19a..1231fa3 100644 (file)
@@ -95,7 +95,9 @@ public class AxesHandler {
         GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_Z_AXIS_VISIBLE__, true);
         GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_VISIBLE__, true);
         GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_CLIP_STATE__, 1);
-        GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_TIGHT_LIMITS__, true);
+        GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_X_TIGHT_LIMITS__, true);
+        GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__, true);
+        GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__, true);
         GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_BOX_TYPE__, 1);
         GraphicController.getController().setProperty(axes, GraphicObjectProperties.__GO_FILLED__, true);
     }
@@ -140,8 +142,12 @@ public class AxesHandler {
 
         GraphicController.getController().setProperty(axesTo, GraphicObjectProperties.__GO_DATA_BOUNDS__, newBounds);
 
-        Boolean tight_lim = (Boolean)GraphicController.getController().getProperty(axesFrom, GraphicObjectProperties.__GO_TIGHT_LIMITS__);
-        GraphicController.getController().setProperty(axesTo, GraphicObjectProperties.__GO_TIGHT_LIMITS__, tight_lim);
+        Boolean x_tight_lim = (Boolean)GraphicController.getController().getProperty(axesFrom, GraphicObjectProperties.__GO_X_TIGHT_LIMITS__);
+        GraphicController.getController().setProperty(axesTo, GraphicObjectProperties.__GO_X_TIGHT_LIMITS__, x_tight_lim);
+        Boolean y_tight_lim = (Boolean)GraphicController.getController().getProperty(axesFrom, GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__);
+        GraphicController.getController().setProperty(axesTo, GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__, y_tight_lim);
+        Boolean z_tight_lim = (Boolean)GraphicController.getController().getProperty(axesFrom, GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__);
+        GraphicController.getController().setProperty(axesTo, GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__, z_tight_lim);
     }
 
     /**
@@ -306,7 +312,9 @@ public class AxesHandler {
         Integer fontColor = axesFrom.getFontColor();
         boolean fontFractional = axesFrom.getFontFractional();
         Integer hiddenColor = axesFrom.getHiddenColor();
-        boolean tightLimits = axesFrom.getTightLimits();
+        boolean XTightLimits = axesFrom.getXTightLimits();
+        boolean YTightLimits = axesFrom.getYTightLimits();
+        boolean ZTightLimits = axesFrom.getZTightLimits();
 
         clone.setXAxisLabel(xLabelUID);
         clone.setYAxisLabel(yLabelUID);
@@ -342,7 +350,9 @@ public class AxesHandler {
         clone.setFontColor(fontColor);
         clone.setFontFractional(fontFractional);
         clone.setHiddenColor(hiddenColor);
-        clone.setTightLimits(tightLimits);
+        clone.setXTightLimits(XTightLimits);
+        clone.setYTightLimits(YTightLimits);
+        clone.setZTightLimits(ZTightLimits);
 
         return cloneUID;
     }
index 4b00c56..bf4fb3b 100644 (file)
@@ -199,7 +199,9 @@ public class MessagesGED {
     public static final String x_left = Messages.gettext("X Left");
     public static final String y_up = Messages.gettext("Y Up");
     public static final String log_flags = Messages.gettext("Log Flags");
-    public static final String tight_limits = Messages.gettext("Tight Limits");
+    public static final String x_tight_limits = Messages.gettext("X Tight Limits");
+    public static final String y_tight_limits = Messages.gettext("Y Tight Limits");
+    public static final String z_tight_limits = Messages.gettext("Z Tight Limits");
 
     //Control - Tooltip
     public static final String x_position_tooltip = Messages.gettext("Enter a x position.");
index dda2086..3f34864 100644 (file)
@@ -1102,24 +1102,67 @@ public class Axes extends ContentLayout {
      * @param UID objectID.
      */
     public void tightLimits(JPanel panel, int ROW, int COLUMN, int LEFTMARGIN, final Integer UID) {
-        JLabel lTightLimits = new JLabel();
-        final JComboBox cTightLimits = new JComboBox();
+        boolean enable = false;
 
-        addLabelComboBox(panel, lTightLimits, MessagesGED.tight_limits,
-                         cTightLimits, new String[] {MessagesGED.off , MessagesGED.on},
+        /* X axes */
+        JLabel lXTightLimits = new JLabel();
+        final JComboBox cXTightLimits = new JComboBox();
+
+        addLabelComboBox(panel, lXTightLimits, MessagesGED.x_tight_limits,
+                         cXTightLimits, new String[] {MessagesGED.off , MessagesGED.on},
                          LEFTMARGIN, COLUMN, ROW++);
-        cTightLimits.addActionListener(new ActionListener() {
+        cXTightLimits.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent evt) {
                 GraphicController.getController().setProperty(
-                    UID, GraphicObjectProperties.__GO_TIGHT_LIMITS__,
-                    cTightLimits.getSelectedIndex() == 0 ? false : true);
+                    UID, GraphicObjectProperties.__GO_X_TIGHT_LIMITS__,
+                    cXTightLimits.getSelectedIndex() == 0 ? false : true);
             }
         });
         //Get the current status of the property: Tight Limits
-        boolean enable = (Boolean) GraphicController.getController()
-                         .getProperty(UID, GraphicObjectProperties.__GO_TIGHT_LIMITS__);
-        cTightLimits.setSelectedIndex(enable ? 1 : 0);
+        enable = (Boolean) GraphicController.getController()
+                 .getProperty(UID, GraphicObjectProperties.__GO_X_TIGHT_LIMITS__);
+        cXTightLimits.setSelectedIndex(enable ? 1 : 0);
+
+        /* Y axes */
+        JLabel lYTightLimits = new JLabel();
+        final JComboBox cYTightLimits = new JComboBox();
+
+        addLabelComboBox(panel, lYTightLimits, MessagesGED.y_tight_limits,
+                         cYTightLimits, new String[] {MessagesGED.off , MessagesGED.on},
+                         LEFTMARGIN, COLUMN, ROW++);
+        cYTightLimits.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent evt) {
+                GraphicController.getController().setProperty(
+                    UID, GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__,
+                    cYTightLimits.getSelectedIndex() == 0 ? false : true);
+            }
+        });
+        //Get the current status of the property: Tight Limits
+        enable = (Boolean) GraphicController.getController()
+                 .getProperty(UID, GraphicObjectProperties.__GO_Y_TIGHT_LIMITS__);
+        cYTightLimits.setSelectedIndex(enable ? 1 : 0);
+
+        /* Z axes */
+        JLabel lZTightLimits = new JLabel();
+        final JComboBox cZTightLimits = new JComboBox();
+
+        addLabelComboBox(panel, lZTightLimits, MessagesGED.z_tight_limits,
+                         cZTightLimits, new String[] {MessagesGED.off , MessagesGED.on},
+                         LEFTMARGIN, COLUMN, ROW++);
+        cZTightLimits.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent evt) {
+                GraphicController.getController().setProperty(
+                    UID, GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__,
+                    cZTightLimits.getSelectedIndex() == 0 ? false : true);
+            }
+        });
+        //Get the current status of the property: Tight Limits
+        enable = (Boolean) GraphicController.getController()
+                 .getProperty(UID, GraphicObjectProperties.__GO_Z_TIGHT_LIMITS__);
+        cZTightLimits.setSelectedIndex(enable ? 1 : 0);
     }
 
     /**