Partial fix for 4855 : std err mesages for all on/off graphics property + add boolean...
Pierre LANDO [Mon, 19 Oct 2009 08:28:50 +0000 (10:28 +0200)]
62 files changed:
scilab/modules/graphics/sci_gateway/c/sci_set.c
scilab/modules/graphics/src/c/getHandleProperty/getPropertyAssignedValue.c
scilab/modules/graphics/src/c/getHandleProperty/getPropertyAssignedValue.h
scilab/modules/graphics/src/c/getHandleProperty/set_alignment_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_anti_aliasing_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arc_drawing_method_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arrow_size_factor_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_arrow_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_clear_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_dimensionning_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_position_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_resize_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_rotation_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_scale_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_auto_ticks_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_reverse_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_axes_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_bar_layout_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_bar_width_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_box_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_callback_type_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_cdata_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_closed_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_flag_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_color_range_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_colored_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_cube_scaling_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_axes_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_entity_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_current_figure_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_bounds_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_data_mapping_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_default_values_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_dimension_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_event_handler_enable_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_event_handler_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_id_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_name_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_size_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_figure_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_fill_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_filled_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_fractional_font_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_handle_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_immediate_drawing_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_interp_color_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_interp_color_vector_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_isoview_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_line_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_mark_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_old_style_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_pixmap_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_surface_mode_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tics_segment_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_tight_limits_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_visible_property.c
scilab/modules/graphics/src/c/getHandleProperty/set_zoom_state_property.c
scilab/modules/graphics/tests/nonreg_tests/bug_4855.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_4855.tst

index 32aac65..a51f1db 100644 (file)
@@ -132,6 +132,10 @@ int sci_set(char *fname, unsigned long fname_len)
                        {
                                GetRhsVar(3,MATRIX_OF_DOUBLE_DATATYPE,&numrow3,&numcol3,&l3);
                        }
+                       else if ( valueType == sci_boolean )
+                       {
+                               GetRhsVar(3,MATRIX_OF_BOOLEAN_DATATYPE,&numrow3,&numcol3,&l3);
+                       }
                        else  if ( valueType == sci_handles )
                        {
                                GetRhsVar(3,GRAPHICAL_HANDLE_DATATYPE,&numrow3,&numcol3,&l3);
index 8e051b3..559cbb3 100644 (file)
@@ -139,6 +139,37 @@ BOOL isStringParamEqual( size_t stackPointer, const char * str )
   }
 }
 /*--------------------------------------------------------------------------*/
+int tryGetBooleanValueFromStack(size_t stackPointer, int valueType, int nbRow, int nbCol, char* propertyName)
+{
+  if(valueType == sci_strings)
+  {
+    if(isStringParamEqual(stackPointer, "on"))  return TRUE;
+    if(isStringParamEqual(stackPointer, "off")) return FALSE;
+    if(isStringParamEqual(stackPointer, "1"))   return TRUE;
+    if(isStringParamEqual(stackPointer, "0"))   return FALSE;
+    if(isStringParamEqual(stackPointer, "T"))   return TRUE;
+    if(isStringParamEqual(stackPointer, "F"))   return FALSE;
+
+    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), propertyName, "on", "off");
+    return NOT_A_BOOLEAN_VALUE;
+  }
+
+  if(valueType == sci_boolean)
+  {
+    return (int) *istk(stackPointer);
+  }
+
+  if(valueType == sci_matrix)
+  {
+    if(getDoubleFromStack(stackPointer) == 0) return FALSE;
+    return TRUE;    
+  }
+
+  Scierror(999, _("Wrong type for '%s' property: String expected.\n"), propertyName);
+  return NOT_A_BOOLEAN_VALUE;
+}
+
+/*--------------------------------------------------------------------------*/
 /*--------------------------------------------------------------------------*/
 int getStackListNbElement( int paramNum )
 {
index 198af85..12f1bdf 100644 (file)
@@ -100,6 +100,14 @@ GRAPHICS_IMPEXP unsigned long getHandleFromStack( size_t stackPointer ) ;
  *         FALSE otherwise
  */
 GRAPHICS_IMPEXP BOOL isStringParamEqual( size_t stackPointer, const char * str ) ;
+
+/**
+ * @return TRUE if the given parameter is 'on', %T, 'T', 1, ...
+ *         FALSE if the given parameter is 'off', %F, 'F', 0, ...
+ *         NOT_A_BOOLEAN_VALUE otherwise
+ */
+GRAPHICS_IMPEXP int tryGetBooleanValueFromStack(size_t stackPointer, int valueType, int nbRow, int nbCol, char* propertyName);
+static int NOT_A_BOOLEAN_VALUE = 2*FALSE - TRUE;    // with that we are sure to be nether equal to TRUE nor FALSE
 /*------------------------------------------------------------------------------*/
 /* Tlist */
 typedef struct 
index fc84fa8..40c57ba 100644 (file)
@@ -37,7 +37,7 @@ int set_alignment_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( sciGetEntityType( pobj ) != SCI_TEXT )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"alignment");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"alignment");
     return SET_PROPERTY_ERROR ;
   }
 
index 10191e4..e6e6ad9 100644 (file)
@@ -43,7 +43,7 @@ int set_anti_aliasing_property( sciPointObj * pobj, size_t stackPointer, int val
 
   if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"), "anti_aliasing") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"), "anti_aliasing") ;
     return SET_PROPERTY_ERROR ;
   }
 
index cb4a8bb..01a8bb6 100644 (file)
@@ -31,13 +31,13 @@ int set_arc_drawing_method_property( sciPointObj * pobj, size_t stackPointer, in
 
   if ( sciGetEntityType(pobj) != SCI_ARC && sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"drawing_method") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"arc_drawing_method") ;
     return SET_PROPERTY_ERROR ;
   }
 
   if ( !isParameterStringMatrix( valueType ) )
   {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "drawing_method");
+    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "arc_drawing_method");
     return SET_PROPERTY_ERROR ;
   }
 
index 39d09c4..6af6e93 100644 (file)
@@ -38,7 +38,7 @@ int set_arrow_size_factor_property( sciPointObj * pobj, size_t stackPointer, int
 
   if ( sciGetEntityType(pobj) != SCI_POLYLINE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"arrow_size_factor");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"arrow_size_factor");
     return SET_PROPERTY_ERROR ;
   }
   pPOLYLINE_FEATURE(pobj)->arsize_factor = getDoubleFromStack( stackPointer ) ;
index 391b242..da7c411 100644 (file)
@@ -39,7 +39,7 @@ int set_arrow_size_property( sciPointObj * pobj, size_t stackPointer, int valueT
 
   if ( sciGetEntityType(pobj) != SCI_SEGS )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"arrow_size") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"arrow_size") ;
     return SET_PROPERTY_ERROR ;
   }
 
index dd919f4..2b9a32d 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_clear_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_clear");
-    return SET_PROPERTY_ERROR ;
-  }
-
        if (pobj == NULL)
        {
-               /* If no object is specified, use the current subwin */
                pobj = sciGetCurrentSubWin();
        }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetAddPlot( pobj, FALSE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetAddPlot( pobj, TRUE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_clear", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_clear");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+
+  if(b==TRUE)
+    return sciSetAddPlot(pobj, FALSE);
+  return sciSetAddPlot(pobj, TRUE);
 }
 /*------------------------------------------------------------------------*/
 
index 24929f6..cac5a9c 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_dimensionning_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_dimensionning");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType( pobj ) != SCI_TEXT )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_dimensionning") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_dimensionning") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetAutoSize( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetAutoSize( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_dimensionning", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_dimensionning");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
+  return sciSetAutoSize(pobj, b);
 }
 /*------------------------------------------------------------------------*/
 
index 035e9c0..9307c23 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_position_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_position");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_LABEL )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_position");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_position");
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetAutoPosition( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetAutoPosition( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_position", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_position");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetAutoPosition(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 87842b7..528fc9b 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_resize_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  int status = SET_PROPERTY_ERROR;
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_resize");
-    return SET_PROPERTY_ERROR ;
-  }
-
        if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_resize");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_resize");
     return SET_PROPERTY_ERROR ;
   }
 
-  /* disable protection since this function will call Java */
-  disableFigureSynchronization(pobj);
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    status = sciSetResize( pobj, TRUE );
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    status = sciSetResize( pobj, FALSE );
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_resize", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_resize");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  int status = sciSetResize(pobj, b);
   enableFigureSynchronization(pobj);
-  /* return set property unchanged since repaint is not really needed */
        return sciSetNoRedrawStatus((SetPropertyStatus)status);
 }
 /*------------------------------------------------------------------------*/
index b300afa..065d846 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_rotation_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_rotation");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_LABEL )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_rotation");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_rotation");
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetAutoRotation( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetAutoRotation( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_rotation", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_rotation");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetAutoRotation(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 17c5f90..d7034b8 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_auto_scale_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "auto_scale");
-    return SET_PROPERTY_ERROR ;
-  }
-
        if (sciGetEntityType(pobj) != SCI_FIGURE && sciGetEntityType(pobj) != SCI_SUBWIN)
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_scale");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_scale");
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetAutoScale( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetAutoScale( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "auto_scale", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "auto_scale");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetAutoScale(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 85dbea2..eb4f0d4 100644 (file)
@@ -45,7 +45,7 @@ int set_auto_ticks_property( sciPointObj * pobj, size_t stackPointer, int valueT
 
   if ( sciGetEntityType( pobj ) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"auto_ticks") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"auto_ticks") ;
     return SET_PROPERTY_ERROR ;
   }
 
index 2a71482..8a56b7a 100644 (file)
@@ -41,7 +41,7 @@ int set_axes_bounds_property( sciPointObj * pobj, size_t stackPointer, int value
 
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"axes_bounds") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"axes_bounds") ;
     return SET_PROPERTY_ERROR ;
   }
   if ( nbRow * nbCol != 4 )
index b435269..9d8b61c 100644 (file)
@@ -42,7 +42,7 @@ int set_axes_reverse_property( sciPointObj * pobj, size_t stackPointer, int valu
 
   if ( sciGetEntityType( pobj ) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"axes_reverse") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"axes_reverse") ;
     return SET_PROPERTY_ERROR ;
   }
 
index 278d248..cdb2776 100644 (file)
@@ -44,7 +44,7 @@ int set_axes_size_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"axes_size");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"axes_size");
     return SET_PROPERTY_ERROR ;
   }
 
index ded1caa..29b9d29 100644 (file)
@@ -42,7 +42,7 @@ int set_axes_visible_property( sciPointObj * pobj, size_t stackPointer, int valu
 
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"axes_visible") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"axes_visible") ;
     return SET_PROPERTY_ERROR ;
   }
 
index 9a20ffb..41471c4 100644 (file)
@@ -39,7 +39,7 @@ int set_bar_layout_property( sciPointObj * pobj, size_t stackPointer, int valueT
 
   if ( sciGetEntityType(pobj) != SCI_POLYLINE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"bar_layout") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"bar_layout") ;
     return SET_PROPERTY_ERROR ;
   }
   
index d3a646e..f1560c1 100644 (file)
@@ -39,7 +39,7 @@ int set_bar_width_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( sciGetEntityType (pobj) != SCI_POLYLINE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"bar_width") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"bar_width") ;
     return SET_PROPERTY_ERROR ;
   }
   pPOLYLINE_FEATURE (pobj)->bar_width = getDoubleFromStack( stackPointer ) ;
index 04f13cd..9d62d65 100644 (file)
@@ -85,7 +85,7 @@ int set_box_property( sciPointObj * pobj, size_t stackPointer, int valueType, in
   }
        
 
-       Scierror(999, _("%s property does not exist for this handle.\n"),"box") ;
+       Scierror(999, _("'%s' property does not exist for this handle.\n"),"box") ;
   return SET_PROPERTY_ERROR ;
 
 }
index 2e2f0e2..caefb4d 100644 (file)
@@ -56,7 +56,7 @@ int set_callback_type_property( sciPointObj * pobj, size_t stackPointer, int val
     }
   else
     {
-      Scierror(999, _("%s property does not exist for this handle.\n"),"callback_type");
+      Scierror(999, _("'%s' property does not exist for this handle.\n"),"callback_type");
       return SET_PROPERTY_ERROR ;
     }
 
index e875e1c..7e793bf 100644 (file)
@@ -43,7 +43,7 @@ int set_cdata_mapping_property( sciPointObj * pobj, size_t stackPointer, int val
 
   if ( sciGetEntityType(pobj) != SCI_SURFACE || pSURFACE_FEATURE(pobj)->typeof3d != SCI_FAC3D )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"cdata_mapping") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"cdata_mapping") ;
     return SET_PROPERTY_ERROR ;
   }
 
index c023fd2..5b4eb59 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_closed_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "closed");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if(sciGetEntityType(pobj) != SCI_POLYLINE)
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"closed") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"closed") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    pPOLYLINE_FEATURE(pobj)->closed = 1 ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pPOLYLINE_FEATURE(pobj)->closed = 0 ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "closed", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_SUCCEED ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "closed");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  pPOLYLINE_FEATURE(pobj)->closed = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 95ecff1..d0ea8ae 100644 (file)
@@ -43,7 +43,7 @@ int set_color_flag_property( sciPointObj * pobj, size_t stackPointer, int valueT
 
   if ( sciGetEntityType(pobj) != SCI_SURFACE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"color_flag") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"color_flag") ;
     return SET_PROPERTY_ERROR ;
   }
   if ( nbRow * nbCol != 1 )
index 8d8b518..7799777 100644 (file)
@@ -44,7 +44,7 @@ int set_color_mode_property( sciPointObj * pobj, size_t stackPointer, int valueT
 
   if ( sciGetEntityType(pobj) != SCI_SURFACE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"color_mode") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"color_mode") ;
     return SET_PROPERTY_ERROR ;
   }
 
index 2960869..a240fdd 100644 (file)
@@ -40,7 +40,7 @@ int set_color_range_property( sciPointObj * pobj, size_t stackPointer, int value
 
   if ( sciGetEntityType(pobj) != SCI_FEC )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"color_range") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"color_range") ;
     return SET_PROPERTY_ERROR ;
   }
 
index 6574334..2f5b09e 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_colored_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "colored");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType( pobj ) != SCI_SEGS || pSEGS_FEATURE(pobj)->ptype == 0 )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"colored") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"colored") ;
     return SET_PROPERTY_ERROR ;
   }
 
-    if ( isStringParamEqual( stackPointer, "on") )
-    {
-      pSEGS_FEATURE(pobj)->typeofchamp = 1 ;
-    }
-    else if ( isStringParamEqual( stackPointer, "off") )
-    {
-      pSEGS_FEATURE(pobj)->typeofchamp = 0 ;
-    }
-    else
-    {
-      Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "colored", "on", "off");
-      return SET_PROPERTY_ERROR ;
-    }
-
-    return SET_PROPERTY_SUCCEED ;
-
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "colored");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  pSEGS_FEATURE(pobj)->typeofchamp = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 5f5467f..213f181 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_cube_scaling_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "cube_scaling");
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"cube_scaling") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( isStringParamEqual(stackPointer, "on" ) )
-  {
-    pSUBWIN_FEATURE (pobj)->cube_scaling = TRUE ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off") )
-  {
-    pSUBWIN_FEATURE (pobj)->cube_scaling = FALSE ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "cube_scaling", "on", "off");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"cube_scaling") ;
     return SET_PROPERTY_ERROR ;
   }
-  return SET_PROPERTY_SUCCEED ;
 
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "cube_scaling");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  pSUBWIN_FEATURE (pobj)->cube_scaling = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 580b84c..825deb4 100644 (file)
@@ -41,7 +41,7 @@ int set_current_axes_property( sciPointObj * pobj, size_t stackPointer, int valu
        if (pobj != NULL)
        {
                /* This property should not be called on an handle */
-               Scierror(999, _("%s property does not exist for this handle.\n"), "current_axes");
+               Scierror(999, _("'%s' property does not exist for this handle.\n"), "current_axes");
                return SET_PROPERTY_ERROR;
        }
 
index 3af97d1..6427457 100644 (file)
@@ -36,7 +36,7 @@ int set_current_entity_property( sciPointObj * pobj, size_t stackPointer, int va
        if (pobj != NULL)
        {
                /* This property should not be called on an handle */
-               Scierror(999, _("%s property does not exist for this handle.\n"), "current_entity");
+               Scierror(999, _("'%s' property does not exist for this handle.\n"), "current_entity");
                return -1;
        }
 
index 730873c..0646dd1 100644 (file)
@@ -39,7 +39,7 @@ int set_current_figure_property( sciPointObj * pobj, size_t stackPointer, int va
        if (pobj != NULL)
        {
                /* This property should not be called on an handle */
-               Scierror(999, _("%s property does not exist for this handle.\n"), "current_figure");
+               Scierror(999, _("'%s' property does not exist for this handle.\n"), "current_figure");
                return SET_PROPERTY_ERROR;
        }
 
index 279a6fb..b4361dc 100644 (file)
@@ -151,7 +151,7 @@ int set_data_bounds_property( sciPointObj * pobj, size_t stackPointer, int value
   }
   else
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"data_bounds") ; 
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"data_bounds") ; 
     return SET_PROPERTY_ERROR ;
   }
 
index 9e265b8..8b32ab4 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -34,13 +35,13 @@ int set_data_mapping_property( sciPointObj * pobj, size_t stackPointer, int valu
 
   if ( !isParameterStringMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"data_mapping") ;
+    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "data_mapping");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( sciGetEntityType(pobj) != SCI_GRAYPLOT )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"data_mapping") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"data_mapping") ;
     return SET_PROPERTY_ERROR ;
   }
 
@@ -51,7 +52,7 @@ int set_data_mapping_property( sciPointObj * pobj, size_t stackPointer, int valu
   }
   else
   {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"scaled","direct");
+    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "data_mapping", "'scaled'", "'direct'");
     return SET_PROPERTY_ERROR ;
   }
 
index c008ba3..1664d7e 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -31,13 +32,13 @@ int set_default_values_property( sciPointObj * pobj, size_t stackPointer, int va
 {
   if ( !isParameterDoubleMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"default_values") ;
+    Scierror(999, _("Wrong type for '%s' property: Real expected.\n"), "default_values");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( getDoubleFromStack( stackPointer ) != 1 )
   {
-    Scierror(999, _("Value must be %d to set default values.\n"),1) ;
+    Scierror(999, _("Wrong value for '%s' property: Must be '%s'.\n"), "default_values", "1");
     return SET_PROPERTY_ERROR ;
   }
 
@@ -55,7 +56,7 @@ int set_default_values_property( sciPointObj * pobj, size_t stackPointer, int va
     return sciSetDefaultValues();
   }
 
-       Scierror(999, _("%s property does not exist for this handle.\n"), "default_values");
+       Scierror(999, _("'%s' property does not exist for this handle.\n"), "default_values");
   return SET_PROPERTY_ERROR ;
 }
 /*------------------------------------------------------------------------*/
index 81a591f..85298fa 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -32,13 +33,13 @@ int set_dimension_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( !isParameterDoubleMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"figure_position") ;
+    Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "dimension");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( nbRow * nbCol != 2 )
   {
-    Scierror(999, _("Wrong size for %s property: Vector of size %d expected.\n"),"dimension",2) ;
+    Scierror(999, _("Wrong size for '%s' property: %d elements expected.\n"),"dimension",2) ;
     return SET_PROPERTY_ERROR ;
   }
 
index 18f6e66..c0f70f2 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2007 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*------------------------------------------------------------------------*/
 int set_event_handler_enable_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-       int status;
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"event_handler_enable") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType( pobj ) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"event_handler_enable");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"event_handler_enable");
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    status = sciSetIsEventHandlerEnable( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    status = sciSetIsEventHandlerEnable( pobj, FALSE ) ;
-  }
-       else
-       {
-               Scierror(999, _("%s: Wrong type for input argument #%d: '%s' or '%s' expected.\n"), "set_event_handler_enable_property",2,"on","off");
-               return SET_PROPERTY_ERROR ;
-       }
-
-       return sciSetNoRedrawStatus((SetPropertyStatus)status);
+  int b =  tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "event_handler_enable");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
+  return sciSetNoRedrawStatus(sciSetIsEventHandlerEnable(pobj, b));
 }
 /*------------------------------------------------------------------------*/
index 5c89f9b..cc1979e 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2007 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -30,13 +31,13 @@ int set_event_handler_property( sciPointObj * pobj, size_t stackPointer, int val
 
   if ( !isParameterStringMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"event_handler") ;
+    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "event_handler");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( sciGetEntityType( pobj ) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"event_handler");
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"event_handler");
     return SET_PROPERTY_ERROR ;
   }
 
index 0c0f0b6..ecacf09 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -34,7 +35,7 @@ int set_figure_id_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( !isParameterDoubleMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"figure_id") ;
+    Scierror(999, _("Wrong type for '%s' property: Integer expected.\n"), "figure_id");
     return SET_PROPERTY_ERROR ;
   }
 
@@ -42,7 +43,7 @@ int set_figure_id_property( sciPointObj * pobj, size_t stackPointer, int valueTy
 
   if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property undefined for this object.\n"), "figure_id") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"figure_id");
     return SET_PROPERTY_ERROR ;
   }
 
index 4bf6eb7..d6d5cde 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -33,13 +34,13 @@ int set_figure_name_property( sciPointObj * pobj, size_t stackPointer, int value
   int status;
   if ( !isParameterStringMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"figure_name") ;
+    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "figure_name");
     return SET_PROPERTY_ERROR ;
   }
 
        if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property undefined for this object.\n"), "figure_name") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"figure_name");
     return SET_PROPERTY_ERROR ;
   }
 
index 5fd6e28..3d3004a 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -34,19 +35,19 @@ int set_figure_size_property( sciPointObj * pobj, size_t stackPointer, int value
   int status;
   if ( sciGetEntityType(pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s undefined for this object.\n"), "figure_size") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"figure_size");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( !isParameterDoubleMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"figure_position") ;
+    Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "figure_size");
     return SET_PROPERTY_ERROR ;
   }
 
   if ( nbRow * nbCol != 2 )
   {
-    Scierror(999, _("Wrong size for %s property: Vector of size %d expected.\n"),"dimension",2) ;
+    Scierror(999, _("Wrong size for '%s' property: %d elements expected.\n"),"figure_size",2) ;
     return SET_PROPERTY_ERROR ;
   }
 
index 81b8bb1..f1c5afa 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
@@ -31,7 +32,7 @@ int set_figure_style_property( sciPointObj * pobj, size_t stackPointer, int valu
 
   if ( !isParameterStringMatrix( valueType ) )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"figure_style") ;
+    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "figure_style");
     return SET_PROPERTY_ERROR ;
   }
 
@@ -48,7 +49,7 @@ int set_figure_style_property( sciPointObj * pobj, size_t stackPointer, int valu
   }
   else
   {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"old","new");
+    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "figure_style", "'old'", "'new'");
     return SET_PROPERTY_ERROR ;
   }
   return SET_PROPERTY_ERROR ;
index c53b7d7..4d8e239 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*------------------------------------------------------------------------*/
 int set_fill_mode_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"fill_mode") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetIsFilled( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetIsFilled( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "fill_mode");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetIsFilled(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 6f980ee..e0ecc2e 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*------------------------------------------------------------------------*/
 int set_filled_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"filled") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if (sciGetEntityType(pobj) != SCI_SUBWIN)
   {
-    Scierror(999, _("%s property undefined for this object.\n"), "filled") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"filled");
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetIsFilled( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetIsFilled( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "filled");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetIsFilled(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index ae862b7..ac18992 100644 (file)
@@ -28,7 +28,6 @@
 /*------------------------------------------------------------------------*/
 int set_fractional_font_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
   if (   sciGetEntityType(pobj) != SCI_SUBWIN
       && sciGetEntityType(pobj) != SCI_TEXT
       && sciGetEntityType(pobj) != SCI_LABEL
@@ -39,25 +38,11 @@ int set_fractional_font_property( sciPointObj * pobj, size_t stackPointer, int v
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "fractional_font");
-    return SET_PROPERTY_ERROR ;
-  }
+  int b =  tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "fractional_font");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  sciSetIsUsingFractionalMetrics(pobj, b);
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    sciSetIsUsingFractionalMetrics(pobj, TRUE);
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    sciSetIsUsingFractionalMetrics(pobj, FALSE);
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "fractional_font", "on", "off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_SUCCEED ;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 92602fa..b32dfc1 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_handle_visible_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"handle_visible") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if (sciGetEntityType (pobj) != SCI_UIMENU)
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"handle_visible") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"handle_visible") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    pUIMENU_FEATURE(pobj)->handle_visible = TRUE ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pUIMENU_FEATURE(pobj)->handle_visible = FALSE ;
-  }
-  else
-  {
-    Scierror(999, _("%s: Wrong input argument: '%s' or '%s' expected.\n"),"set_handle_visible_property","on","off");
-    return SET_PROPERTY_ERROR ;
-  }
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "zoom_state");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
-  return SET_PROPERTY_SUCCEED ;
+  pUIMENU_FEATURE(pobj)->handle_visible = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 1faff14..67dee24 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_immediate_drawing_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"immediate_drawing") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType (pobj) != SCI_FIGURE )
   {
     Scierror(999, _("%s property undefined for this object.\n"), "immediate_drawing") ;
     return SET_PROPERTY_ERROR ;
   }
   
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    sciSetImmediateDrawingMode(pobj, TRUE);
-    return SET_PROPERTY_SUCCEED ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    sciSetImmediateDrawingMode(pobj, FALSE);
-    return SET_PROPERTY_SUCCEED ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "immediate_drawing");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+
+  sciSetImmediateDrawingMode(pobj, b);
+  return SET_PROPERTY_SUCCEED ;  
 }
 /*------------------------------------------------------------------------*/
index cbaa497..5c00952 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*------------------------------------------------------------------------*/
 int set_interp_color_mode_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"interp_color_mode") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if( sciGetEntityType(pobj) != SCI_POLYLINE )
   {
-    Scierror(999, _("%s can only be set on %s objects.\n"),"interp_color_mode","Polyline") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"interp_color_mode");
     return SET_PROPERTY_ERROR ;
   }
 
-  if( isStringParamEqual( stackPointer, "on" ) )
-  {
-    if ( sciGetInterpVector(pobj) == NULL )
-    {
-      Scierror(999, _("You must first specify an %s for this object.\n"),"interp_color_vector");
-      return SET_PROPERTY_ERROR ;
-    }
-    else
-    {
-      pPOLYLINE_FEATURE (pobj)->isinterpshaded = TRUE ;
-    }
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pPOLYLINE_FEATURE (pobj)->isinterpshaded = FALSE ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_SUCCEED ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "interp_color_mode");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
+  pPOLYLINE_FEATURE (pobj)->isinterpshaded = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index cd00c8e..b8ed371 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
  * Copyright (C) 2006 - INRIA - Allan Cornet
  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+ * Copyright (C) 2009 - DIGITEO - Pierre Lando
  * 
  * This file must be used under the terms of the CeCILL.
  * This source file is licensed as described in the file COPYING, which
 /*------------------------------------------------------------------------*/
 int set_interp_color_vector_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterDoubleMatrix( valueType ) )
+  if( sciGetEntityType(pobj) != SCI_POLYLINE )
   {
-    Scierror(999, _("Incompatible type for property %s.\n"),"interp_color_vector") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"interp_color_vector");
     return SET_PROPERTY_ERROR ;
   }
 
-  if( sciGetEntityType(pobj) != SCI_POLYLINE )
+  if ( !isParameterDoubleMatrix( valueType ) )
   {
-    Scierror(999, _("%s can only be set on %s objects.\n"),"interp_color_vector","Polyline");
+    Scierror(999, _("Wrong type for '%s' property: Real matrix expected.\n"), "interp_color_vector");
     return SET_PROPERTY_ERROR ;
   }
 
+
+
   if( ( nbCol == 3 && sciGetNbPoints(pobj) == 3 ) || 
       ( nbCol == 4 && sciGetNbPoints(pobj) == 4 ) )
   {
index 50b1e52..9389992 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_isoview_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"isoview") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
     Scierror(999, _("%s property does not exist for this handle.\n"),"isoview") ;
     return SET_PROPERTY_ERROR ;
   }
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    pSUBWIN_FEATURE (pobj)->isoview = TRUE ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pSUBWIN_FEATURE (pobj)->isoview = FALSE ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  return SET_PROPERTY_SUCCEED ;
 
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "isoview");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  pSUBWIN_FEATURE (pobj)->isoview = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 66787c4..8c0cb98 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_line_mode_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"line_mode") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetIsLine( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetIsLine( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("%s: Wrong input argument: '%s' or '%s' expected.\n"),"set_line_mode_property","on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "line_mode");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetIsLine(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 9703406..36b00c8 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_mark_mode_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"mark_mode") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetIsMark( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetIsMark( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off") ;
-    return SET_PROPERTY_ERROR ;
-  }
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "mark_mode");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetIsMark(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index b89002e..da6f93d 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_old_style_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  getStringFromStack( stackPointer ) ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "old_style");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"old_style") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
-  if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return SET_PROPERTY_UNCHANGED ;
-  }
-  else if ( isStringParamEqual( stackPointer, "on" ) )
+  if(b)
   {
     Scierror(999, _("Old graphic mode is no longer available. Please refer to the set help page.\n")) ;
     return SET_PROPERTY_ERROR ;
   }
   else
   {
-    Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
+    return SET_PROPERTY_UNCHANGED ;
   }
 }
 /*------------------------------------------------------------------------*/
index dfd7086..aed1e6d 100644 (file)
 #include "Scierror.h"
 #include "localization.h"
 #include "GetProperty.h"
+#include "SetPropertyStatus.h"
 
 /*------------------------------------------------------------------------*/
 int set_pixmap_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
   if ( sciGetEntityType (pobj) != SCI_FIGURE )
   {
-    Scierror(999, _("%s property undefined for this object.\n"), "pixmap") ;
-    return -1;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"pixmap");
+    return SET_PROPERTY_ERROR;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    sciSetPixmapMode(pobj, TRUE) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    sciSetPixmapMode(pobj, FALSE);
-  }
-  else
-  {
-         Scierror(999, _("Wrong value for argument: '%s' or '%s' expected.\n"),"on","off");
-    return -1 ;
-  }
-  return 0 ;
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "pixmap");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+
+  sciSetPixmapMode(pobj, b);
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
index 02e0b6a..66f7b06 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_surface_mode_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"surface_mode") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_PLOT3D &&
        sciGetEntityType(pobj) != SCI_FAC3D  &&
        sciGetEntityType(pobj) != SCI_SURFACE   )
   {
-    Scierror(999, _("%s does not exist for this handle.\n"), "surface_mode") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"surface_mode") ;
     return SET_PROPERTY_ERROR ;
   }
+  
+  int b =  tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "surface_mode");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetIsLine( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetIsLine( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for input argument: '%s' or '%s' expected.\n"),"on","off") ;
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+  return sciSetIsLine(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 1ca7b85..b95ab2a 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_tics_segment_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"tics_segment") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_AXES )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"tics_segment") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_segment") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    pAXES_FEATURE (pobj)->seg = 1;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pAXES_FEATURE (pobj)->seg = 0 ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value for argument: %s or %s expected.\n"),"on","off");
-    return SET_PROPERTY_ERROR ;
-  }
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "tics_segment");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
 
-  return SET_PROPERTY_SUCCEED ;
+  pAXES_FEATURE (pobj)->seg = b;
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
 
index c1b8468..7adea94 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_tight_limits_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"tight_limits") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"tight_limits") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"tight_limits") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    pSUBWIN_FEATURE (pobj)->tight_limits = TRUE ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    pSUBWIN_FEATURE (pobj)->tight_limits = FALSE ;
-  }
-  else
-  {
-    Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected."),"set_tight_limits_property",2,"on","off") ;
-    return SET_PROPERTY_ERROR ;
-  }
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "tight_limits");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  pSUBWIN_FEATURE (pobj)->tight_limits=b;
   return SET_PROPERTY_SUCCEED ;
 }
 /*------------------------------------------------------------------------*/
index bfa2518..3667a9f 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_visible_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-
-  if ( !isParameterStringMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"visible") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( (sciGetEntityType(pobj) == SCI_UIMENU) || (sciGetEntityType(pobj) == SCI_UICONTROL) )
     {
       return SetUiobjectVisible(pobj, stackPointer, valueType, nbRow, nbCol);
     }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
-  {
-    return sciSetVisibility( pobj, TRUE ) ;
-  }
-  else if ( isStringParamEqual( stackPointer, "off" ) )
-  {
-    return sciSetVisibility( pobj, FALSE ) ;
-  }
-  else
-  {
-    Scierror(999, _("Wrong value: '%s' or '%s' expected.\n"),"on","off") ;
-    return SET_PROPERTY_ERROR ;
-  }
+  int b =  tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "visible");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+  
+  return sciSetVisibility(pobj, b);
 }
 /*------------------------------------------------------------------------*/
index 0ddd0c3..8dfe08c 100644 (file)
 /*------------------------------------------------------------------------*/
 int set_zoom_state_property( sciPointObj * pobj, size_t stackPointer, int valueType, int nbRow, int nbCol )
 {
-  
-  if ( !isParameterDoubleMatrix( valueType ) )
-  {
-    Scierror(999, _("Incompatible type for property %s.\n"),"zoom_state") ;
-    return SET_PROPERTY_ERROR ;
-  }
-
   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
   {
-    Scierror(999, _("%s property does not exist for this handle.\n"),"zoom_state") ;
+    Scierror(999, _("'%s' property does not exist for this handle.\n"),"zoom_state") ;
     return SET_PROPERTY_ERROR ;
   }
 
-  if ( isStringParamEqual( stackPointer, "on" ) )
+  int b = tryGetBooleanValueFromStack(stackPointer, valueType, nbRow, nbCol, "zoom_state");
+  if(b == NOT_A_BOOLEAN_VALUE) return SET_PROPERTY_ERROR;
+
+  if(b)
   { 
-    if ( ! sciGetZooming(pobj) )
+    if(sciGetZooming(pobj))
     {
-      Scierror(999, "Object is already zoomed.\n") ;
-      return SET_PROPERTY_ERROR ;
+      Scierror(999, "Object is already zoomed.\n");
+      return SET_PROPERTY_ERROR;
     }
     else
     {
-      Scierror(999, "set zoom box ( set('zoom_box',[xmin ymin xmax ymax])).\n") ;
-      return SET_PROPERTY_ERROR ;
+      Scierror(999, "set zoom box ( set('zoom_box',[xmin ymin xmax ymax])).\n");
+      return SET_PROPERTY_ERROR;
     }
   }
-  else if ( isStringParamEqual( stackPointer, "off" ) ) 
+  else
   { 
     unzoom();
-    return sciSetZooming( pobj, FALSE ) ;
+    return sciSetZooming(pobj, FALSE);
   }
-  else
-  {
-    Scierror(999, _("%s: Wrong input argument: '%s' or '%s' expected.\n"),"set_zoom_state_property","on","off");
-    return SET_PROPERTY_ERROR ;
-  }
-  return SET_PROPERTY_ERROR ;
+
+  return SET_PROPERTY_SUCCEED;
 }
 /*------------------------------------------------------------------------*/
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_4855.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_4855.dia.ref
new file mode 100644 (file)
index 0000000..c88009b
--- /dev/null
@@ -0,0 +1,178 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - pierre.lando@scilab.org
+//
+//// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 4855 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4855
+//
+// <-- Short Description -->
+//   Use the standard error messages when setting graphics properties with bad values.
+// Check error messages from this settings :
+// alignment
+// anti_aliasing
+// arc_drawing_method
+// arrow_size_factor
+// arrow_size
+// auto_clear
+// auto_dimensionning
+// auto_position
+// auto_resize
+// auto_rotation
+// auto_scale
+// auto_ticks
+// axes_bounds
+// axes_reverse
+// axes_size
+// axes_visible
+// background
+// bar_layout
+// bar_width
+// box
+// callbackmevent
+// callback
+// callback_type
+// cdata_mapping
+// clip_box
+// clip_state
+// closed
+// colored
+// color_flag
+// color_map
+// color_mode
+// color_range
+// cube_scaling
+// current_axes
+// current_entity
+// current_figure
+// data_bounds
+// Test 'on/off' property over a "Figure"
+function test(varargin); endfunction;
+function [svalue, value]=TestedParameter(i);
+  if i == 0 then svalue = "on"; value = "on"; end;
+  if i == 1 then svalue = "off"; value = %f; end;
+  if i == 2 then svalue = "on"; value = 1; end;
+  if i == 3 then svalue = "off"; value = 0; end;
+  if i == 4 then svalue = "on"; value = %t; end;
+  if i == 5 then svalue = "off"; value = "0"; end;
+  if i == 6 then svalue = "on"; value = "1"; end;
+  if i == 5 then svalue = "off"; value = "F"; end;
+  if i == 6 then svalue = "on"; value = "T"; end;
+  if i == 9 then svalue = "off"; value = "off"; end;
+endfunction;
+f=gcf();
+f.event_handler='test';
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  f.auto_resize = value;
+  f.pixmap = value;
+  f.immediate_drawing = value;
+  f.visible = value;
+  f.event_handler_enable = value;
+  if f.auto_resize <> svalue then bugmes();quit;end;
+  if f.pixmap <> svalue then bugmes();quit;end;
+  if f.immediate_drawing <> svalue then bugmes();quit;end;
+  if f.visible <> svalue then bugmes();quit;end;
+  if f.event_handler_enable <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an "Axes"
+a=gca();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  a.visible = value;
+  a.filled = value;
+  a.fractional_font = value;
+  a.isoview = value;
+  a.cube_scaling = value;
+  a.tight_limits = value;
+  a.auto_clear = value;
+  a.auto_scale = value;
+  a.line_mode = value;
+  a.mark_mode = value;
+  if a.visible <> svalue then bugmes();quit;end;
+  if a.filled <> svalue then bugmes();quit;end;
+  if a.fractional_font <> svalue then bugmes();quit;end;
+  if a.isoview <> svalue then bugmes();quit;end;
+  if a.cube_scaling <> svalue then bugmes();quit;end;
+  if a.tight_limits <> svalue then bugmes();quit;end;
+  if a.auto_clear <> svalue then bugmes();quit;end;
+  if a.auto_scale <> svalue then bugmes();quit;end;
+  if a.line_mode <> svalue then bugmes();quit;end;
+  if a.mark_mode <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an 'Plot3d'
+plot3d();
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.surface_mode = value;
+  e.mark_mode = value;
+  if e.surface_mode <> svalue then bugmes();quit;end;
+  if e.mark_mode <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an 'Polyline'
+plot2d(1:4,cos(1:4));
+e=gce(); e=e.children(1);
+e.interp_color_vector=[1:4];
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.closed = value;
+  e.line_mode = value;
+  e.fill_mode = value;
+  e.interp_color_mode = value;
+  e.mark_mode = value;
+  if e.visible <> svalue then bugmes();quit;end;
+  if e.closed <> svalue then bugmes();quit;end;
+  if e.line_mode <> svalue then bugmes();quit;end;
+  if e.fill_mode <> svalue then bugmes();quit;end;
+  if e.interp_color_mode <> svalue then bugmes();quit;end;
+  if e.mark_mode <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an 'Text'
+xstring(0,0,'test');
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.line_mode = value;
+  e.fill_mode = value;
+  e.fractional_font = value;
+  e.auto_dimensionning = value;
+  if e.visible <> svalue then bugmes();quit;end;
+  if e.line_mode <> svalue then bugmes();quit;end;
+  if e.fill_mode <> svalue then bugmes();quit;end;
+  if e.fractional_font <> svalue then bugmes();quit;end;
+  if e.auto_dimensionning <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an 'Label'
+a=gca();
+e=a.title;
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.fill_mode = value;
+  e.fractional_font = value;
+  e.auto_position = value;
+  e.auto_rotation = value;
+  if e.visible <> svalue then bugmes();quit;end;
+  if e.fill_mode <> svalue then bugmes();quit;end;
+  if e.fractional_font <> svalue then bugmes();quit;end;
+  if e.auto_position <> svalue then bugmes();quit;end;
+  if e.auto_rotation <> svalue then bugmes();quit;end;
+end;
+// Test 'on/off' property over an 'Champ'
+champ(-5:5,-5:5,rand(11,11),rand(11,11));
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.colored = value;
+  if e.visible <> svalue then bugmes();quit;end;
+  if e.colored <> svalue then bugmes();quit;end;
+end;
index 072f3c7..baf583a 100644 (file)
@@ -5,7 +5,6 @@
 //// This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
-// <-- INTERACTIVE TEST -->
 // <-- TEST WITH GRAPHIC -->
 //
 // <-- Non-regression test for bug 4855 -->
 // current_entity
 // current_figure
 // data_bounds
+
+
+// Test 'on/off' property over a "Figure"
+function test(varargin); endfunction;
+
+function [svalue, value]=TestedParameter(i);
+  if i == 0 then svalue = "on"; value = "on"; end;
+  if i == 1 then svalue = "off"; value = %f; end;
+  if i == 2 then svalue = "on"; value = 1; end;
+  if i == 3 then svalue = "off"; value = 0; end;
+  if i == 4 then svalue = "on"; value = %t; end;
+  if i == 5 then svalue = "off"; value = "0"; end;
+  if i == 6 then svalue = "on"; value = "1"; end;
+  if i == 5 then svalue = "off"; value = "F"; end;
+  if i == 6 then svalue = "on"; value = "T"; end;
+  if i == 9 then svalue = "off"; value = "off"; end;
+endfunction;
+
+
+f=gcf();
+f.event_handler='test';
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  f.auto_resize = value;
+  f.pixmap = value;
+  f.immediate_drawing = value;
+  f.visible = value;
+  f.event_handler_enable = value;
+
+  if f.auto_resize <> svalue then pause; end;
+  if f.pixmap <> svalue then pause; end;
+  if f.immediate_drawing <> svalue then pause; end;
+  if f.visible <> svalue then pause; end;
+  if f.event_handler_enable <> svalue then pause; end;
+end;
+
+// Test 'on/off' property over an "Axes"
+a=gca();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  a.visible = value;
+  a.filled = value;
+  a.fractional_font = value;
+  a.isoview = value;
+  a.cube_scaling = value;
+  a.tight_limits = value;
+  a.auto_clear = value;
+  a.auto_scale = value;
+  a.line_mode = value;
+  a.mark_mode = value;
+
+  if a.visible <> svalue then pause; end;
+  if a.filled <> svalue then pause; end;
+  if a.fractional_font <> svalue then pause; end;
+  if a.isoview <> svalue then pause; end;
+  if a.cube_scaling <> svalue then pause; end;
+  if a.tight_limits <> svalue then pause; end;
+  if a.auto_clear <> svalue then pause; end;
+  if a.auto_scale <> svalue then pause; end;
+  if a.line_mode <> svalue then pause; end;
+  if a.mark_mode <> svalue then pause; end;
+end;
+
+// Test 'on/off' property over an 'Plot3d'
+plot3d();
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.surface_mode = value;
+  e.mark_mode = value;
+
+  if e.surface_mode <> svalue then pause; end;
+  if e.mark_mode <> svalue then pause; end;
+end;
+
+// Test 'on/off' property over an 'Polyline'
+plot2d(1:4,cos(1:4));
+e=gce(); e=e.children(1);
+e.interp_color_vector=[1:4];
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.closed = value;
+  e.line_mode = value;
+  e.fill_mode = value;
+  e.interp_color_mode = value;
+  e.mark_mode = value;
+
+  if e.visible <> svalue then pause; end;
+  if e.closed <> svalue then pause; end;
+  if e.line_mode <> svalue then pause; end;
+  if e.fill_mode <> svalue then pause; end;
+  if e.interp_color_mode <> svalue then pause; end;
+  if e.mark_mode <> svalue then pause; end;
+end;
+
+
+// Test 'on/off' property over an 'Text'
+xstring(0,0,'test');
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.line_mode = value;
+  e.fill_mode = value;
+  e.fractional_font = value;
+  e.auto_dimensionning = value;
+
+  if e.visible <> svalue then pause; end;
+  if e.line_mode <> svalue then pause; end;
+  if e.fill_mode <> svalue then pause; end;
+  if e.fractional_font <> svalue then pause; end;
+  if e.auto_dimensionning <> svalue then pause; end;
+end;
+
+// Test 'on/off' property over an 'Label'
+a=gca();
+e=a.title;
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.fill_mode = value;
+  e.fractional_font = value;
+  e.auto_position = value;
+  e.auto_rotation = value;
+
+  if e.visible <> svalue then pause; end;
+  if e.fill_mode <> svalue then pause; end;
+  if e.fractional_font <> svalue then pause; end;
+  if e.auto_position <> svalue then pause; end;
+  if e.auto_rotation <> svalue then pause; end;
+end;
+
+// Test 'on/off' property over an 'Champ'
+champ(-5:5,-5:5,rand(11,11),rand(11,11));
+e=gce();
+for i = [0:9] do
+  [svalue, value]=TestedParameter(i);
+  e.visible = value;
+  e.colored = value;
+
+  if e.visible <> svalue then pause; end;
+  if e.colored <> svalue then pause; end;
+end;