figure position set using [x y w h] now set the axes_size instead of figure size
Vincent COUVERT [Tue, 21 Jul 2009 12:35:41 +0000 (14:35 +0200)]
scilab/RELEASE_NOTES_5.2.X [new file with mode: 0644]
scilab/modules/gui/help/en_US/figure.xml
scilab/modules/gui/src/cpp/SetUicontrolPosition.cpp
scilab/modules/gui/src/cpp/SetUicontrolPosition.hxx

diff --git a/scilab/RELEASE_NOTES_5.2.X b/scilab/RELEASE_NOTES_5.2.X
new file mode 100644 (file)
index 0000000..51a7326
--- /dev/null
@@ -0,0 +1,10 @@
+                      Scilab 5.2 Release_Notes
+                      ========================
+
+Known incompatibilities:
+
+- Fonction "figure": when setting the size of the figure using the "Position" 
+  property with a matrix such as [x y width height], the values of width and 
+  height no more set the window size itself but the size of the virtual graphics
+  window (the part of the figure which contains uicontrols and graphics) as if
+  the user sets the axes_size property of a figure.
index bf911dd..c6a8572 100644 (file)
       <varlistentry>
         <term>Position</term>
         <listitem>
-          <para>allows to control the geometrical aspect of the control.
+          <para>allows to control the geometrical aspect of the figure.
     It is a [1,4] real vector [x y width height] where the letters stand for the x
-    location of the left bottom corner, the y location of the left bottom
-    corner, the width and the height of the uicontrol.
+    location of the top left corner, the y location of the top left corner, the width and the height of the virtual graphics window
+    (the part of the figure which contains uicontrols and graphics).
+    See the <emphasis role="bold">axes_size</emphasis> property description in <link linkend="figure_properties">figure properties</link> help page.
     One can also set this property by giving a string where the fields are separated by a "|", ie "x|y|width|height".
            </para>
         </listitem>
index daff735..6210248 100644 (file)
@@ -29,6 +29,8 @@ int SetUicontrolPosition(sciPointObj* sciObj, size_t stackPointer, int valueType
   int * returnValues = NULL;
 
   sciPointObj *parent = NULL;
+
+  int status = 0;
   
   if (stackPointer == -1) /* Default values setting */
     {
@@ -104,7 +106,12 @@ int SetUicontrolPosition(sciPointObj* sciObj, size_t stackPointer, int valueType
     }
   else if( sciGetEntityType(sciObj) == SCI_FIGURE ) /* Uicontrol figure */
   {
-    return (int)(sciInitScreenPosition(sciObj, xInt, yInt) & sciSetWindowDim(sciObj, widthInt, heightInt));
+    /* disable protection since this function will call Java */
+    disableFigureSynchronization(sciObj);
+    status = sciSetDimension(sciObj, widthInt, heightInt) ;
+    enableFigureSynchronization(sciObj);
+    return (int)(sciInitScreenPosition(sciObj, xInt, yInt) & status);
+    //return (int)(sciInitScreenPosition(sciObj, xInt, yInt) & sciSetWindowDim(sciObj, widthInt, heightInt));
   }
   else /* All other uicontrol styles */
     {
index 2e11dea..2ba9960 100644 (file)
@@ -28,6 +28,7 @@ extern "C"
 #include "SetPropertyStatus.h"
 #include "UicontrolStyleToString.h"
 #include "HandleManagement.h"
+#include "GraphicSynchronizerInterface.h"
 }
 
 #endif /* __SET_UICONTROL_POSITION_HXX__ */