xset / xget auto clear property mapped. 23/5823/2
Bruno JOFRET [Thu, 5 Jan 2012 11:43:44 +0000 (12:43 +0100)]
Change-Id: I3b1a5dffd9c9747b2b6c8c2bd8e84f44fd5a23b8

scilab/modules/graphics/sci_gateway/c/sci_xget.c
scilab/modules/graphics/sci_gateway/c/sci_xset.c
scilab/modules/graphics/tests/unit_tests/xset_xget.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/unit_tests/xset_xget.tst

index 05e9088..d542811 100644 (file)
@@ -430,10 +430,11 @@ int xgetg( char * str, char * str1, int * len,int  lx0,int lx1)
     }
     else if ( strcmp(str,"auto clear")==0)
     {
-        int autoclear;
-        sciPointObj * subwin = sciGetFirstTypedSelectedSon( sciGetCurrentFigure(), SCI_SUBWIN ) ;
-        //autoclear = !(sciGetAddPlot(subwin));
-        if (autoclear == 1)
+        int iAutoClear = 0;
+        int* piAutoClear = &iAutoClear;
+
+        getGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_AUTO_CLEAR__, jni_bool, &piAutoClear);
+        if (iAutoClear == 1)
         {
             strncpy(str1,"on",2);
             *len=2;
index 22a0512..efe25fa 100644 (file)
@@ -2,6 +2,7 @@
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2006 - INRIA - Fabrice Leray
 * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
+* Copyright (C) 2012 - Scilab Enterprises - Bruno JOFRET
 *
 * This file must be used under the terms of the CeCILL.
 * This source file is licensed as described in the file COPYING, which
@@ -89,7 +90,7 @@ int sci_xset( char *fname, unsigned long fname_len )
         /* second argument is not a scalar it must be a string */
         GetRhsVar(2,STRING_DATATYPE,&m2,&n2,&l2);
         xsetg(cstk(l1),cstk(l2),m1,m2);
-        LhsVar(1)=0;
+        LhsVar(1) = 0;
         PutLhsVar();
         return 0;
     }
@@ -259,20 +260,8 @@ int sci_xset( char *fname, unsigned long fname_len )
     }
     else if ( strcmp(cstk(l1),"dashes") == 0)
     {
-        sciSetLineStyle(subwin, x[0]);
-    }
-    else if ( strcmp(cstk(l1),"auto clear") == 0)
-    {
-        if ( x[0] == 1 )
-        {
-            //sciSetAddPlot(subwin, TRUE);
-            //sciSetAddPlot(sciGetParent(subwin), TRUE);
-        }
-        else
-        {
-            //sciSetAddPlot(subwin, FALSE);
-            //sciSetAddPlot(sciGetParent(subwin), FALSE);
-        }
+        int lineStyle = (int) x[0];
+        setGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_LINE_STYLE__, &lineStyle, jni_int, 1);
     }
     else if ( strcmp(cstk(l1),"wresize") == 0)
     {
@@ -361,15 +350,14 @@ int xsetg(char * str,char * str1,int lx0,int lx1)
     }
     else if ( strcmp(str,"auto clear")==0)
     {
-        sciPointObj * subwin = sciGetFirstTypedSelectedSon(sciGetCurrentFigure(), SCI_SUBWIN);
-        if (strcmp(str1,"on")==0 )
+        int bAutoClear = (int) FALSE;
+
+        if (strcmp(str1,"on") == 0)
         {
-            //sciSetAddPlot( subwin,FALSE);
-        }
-        else{
-            //sciSetAddPlot( subwin,TRUE);
+            bAutoClear = (int) TRUE;
         }
-        forceRedraw(subwin);
+
+        setGraphicObjectProperty(getOrCreateDefaultSubwin(), __GO_AUTO_CLEAR__, &bAutoClear, jni_bool, 1);
     }
     else if ( strcmp(str,"default")==0)
     {
diff --git a/scilab/modules/graphics/tests/unit_tests/xset_xget.dia.ref b/scilab/modules/graphics/tests/unit_tests/xset_xget.dia.ref
new file mode 100644 (file)
index 0000000..e3254a9
--- /dev/null
@@ -0,0 +1,119 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+// test xset and xget
+// colormap
+c_map = graycolormap(512);
+xset("colormap", c_map);
+out = xget("colormap");
+assert_checkequal(out, c_map);
+// mark size
+xset("mark size", 456);
+out = xget("mark size");
+assert_checkequal(out, 456);
+// mark
+xset("mark", 4, 5);
+out = xget("mark");
+assert_checkequal(out, [4 5]);
+// font
+out = xget("font");
+assert_checkequal(out, [6 1]);
+xset("font", 8, 2);
+out = xget("font");
+assert_checkequal(out, [8 2]);
+// line style
+xset("line style", 8);
+out = xget("line style");
+assert_checkequal(out, 8);
+// font size
+out = xget("font size");
+assert_checkequal(out, 2);
+xset("font size", 42);
+out = xget("font size");
+assert_checkequal(out, 42);
+// fpf
+out = xget("fpf");
+assert_checkequal(out, "");
+xset("fpf", "%s.%s");
+out = xget("fpf");
+assert_checkequal(out, "%s.%s");
+// auto clear
+out = xget("auto clear");
+assert_checkequal(out, "off");
+xset("auto clear", "on")
+out = xget("auto clear");
+assert_checkequal(out, "on");
+// dashes
+out = xget("dashes");
+assert_checkequal(out, 8);
+xset("dashes", 2);
+out = xget("dashes");
+assert_checkequal(out, 2);
+// hidden3d
+out = xget("hidden3d");
+assert_checkequal(out, 4);
+xset("hidden3d", 21);
+out = xget("hidden3d");
+assert_checkequal(out, 21);
+// window figure
+f = gcf();
+out = xget("window");
+assert_checkequal(out, f.figure_id);
+out = xget("figure");
+assert_checkequal(out, f.figure_id);
+// thickness
+out = xget("thickness");
+assert_checkequal(out, 1);
+xset("thickness", 5);
+out = xget("thickness");
+assert_checkequal(out, 5);
+// wdim wpdim
+out = xget("wdim");
+assert_checkequal(out, f.position([3, 4]));
+out = xget("wpdim");
+assert_checkequal(out, f.position([3, 4]));
+// wpos
+out = xget("wpos");
+assert_checkequal(out, f.position([1, 2]));
+// viewport
+out = xget("viewport");
+assert_checkequal(out, f.viewport);
+// background
+out = xget("background");
+assert_checkequal(out, -2);
+// color foreground pattern
+out = xget("color");
+assert_checkequal(out, -1);
+out = xget("foreground");
+assert_checkequal(out, -1);
+out = xget("pattern");
+assert_checkequal(out, -1);
+// lastpattern
+out = xget("lastpattern");
+assert_checkequal(out, 512);
+// line mode
+out = xget("line mode");
+assert_checkequal(out, 1);
+// pixmap
+out = xget("pixmap");
+assert_checkequal(out, 0);
+// white
+out = xget("white");
+assert_checkequal(out, 514);
+// wresize
+out = xget("wresize");
+assert_checkequal(out, 1);
+// clipgrf
+out = xget("clipgrf");
+assert_checkequal(out, 0);
+// clipoff
+out = xget("clipoff");
+assert_checkequal(out, 1);
+// clipping => clip_box + clip_state
+xset("clipping", 1,2,3,4);
+out = xget("clipping");
+assert_checkequal(out, [1,2,3,4]);
index cd90f0e..da08e55 100644 (file)
@@ -26,11 +26,6 @@ xset("mark", 4, 5);
 out = xget("mark");
 assert_checkequal(out, [4 5]);
 
-// line style
-xset("line style", 8);
-out = xget("line style");
-assert_checkequal(out, 8);
-
 // font
 out = xget("font");
 assert_checkequal(out, [6 1]);
@@ -38,6 +33,11 @@ xset("font", 8, 2);
 out = xget("font");
 assert_checkequal(out, [8 2]);
 
+// line style
+xset("line style", 8);
+out = xget("line style");
+assert_checkequal(out, 8);
+
 // font size
 out = xget("font size");
 assert_checkequal(out, 2);
@@ -54,18 +54,18 @@ assert_checkequal(out, "%s.%s");
 
 
 // auto clear
-//out = xget("auto clear");
-//assert_checkequal(out, "off");
-//xset("auto clear", "on")
-//out = xget("auto clear");
-//assert_checkequal(out, "om");
+out = xget("auto clear");
+assert_checkequal(out, "off");
+xset("auto clear", "on")
+out = xget("auto clear");
+assert_checkequal(out, "on");
 
 // dashes
 out = xget("dashes");
 assert_checkequal(out, 8);
-xset("dashes", 12);
+xset("dashes", 2);
 out = xget("dashes");
-assert_checkequal(out, 12);
+assert_checkequal(out, 2);
 
 // hidden3d
 out = xget("hidden3d");