Docked demo_gui() resized the Desktop 51/20051/5
Samuel GOUGEON [Thu, 24 May 2018 20:29:40 +0000 (22:29 +0200)]
 After https://codereview.scilab.org/19812
 Avoids cherry-picking https://codereview.scilab.org/19816

Change-Id: Iacf54106f3578d574fed0a04a661d06abd0f9943

scilab/modules/demo_tools/macros/resize_demo_gui.sci
scilab/modules/graphics/demos/2d_3d_plots/subplot.dem.sce
scilab/modules/graphics/macros/clf.sci
scilab/modules/graphics/macros/isDocked.sci [new file with mode: 0644]

index b659619..066ab43 100644 (file)
@@ -3,6 +3,7 @@
 // Copyright (C) 2008 - INRIA - Pierre MARECHAL
 // Copyright (C) 2012 - DIGITEO - Vincent COUVERT
 // Copyright (C) 2014 - Scilab Enterprises - Anais AUBERT
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
@@ -17,7 +18,9 @@
 function resize_demo_gui(frame_number)
     axes_w = frame_number * 250; // axes width
     demo_fig = get("scilab_demo_fig");
-    demo_fig.axes_size(1) = axes_w;
+    if ~isDocked(demo_fig)
+        demo_fig.axes_size(1) = axes_w;
+    end
     demo_fig.children($:-1:$-(frame_number-1)).visible = "on";
     //hide other frame
     demo_fig.children($-frame_number:-1:1).visible = "off";
index 3f85a84..00bef6f 100644 (file)
@@ -16,7 +16,9 @@ function demo_subplot()
     my_handle.figure_name = my_plot_desc;
 
     f = gcf();
-    f.axes_size = [790, 570];
+    if ~isDocked(f)
+        f.axes_size = [790, 570];
+    end
     subplot(2,2,1);
     plot3d();
     subplot(2,2,2);
index ded79e8..64fba5d 100644 (file)
@@ -186,17 +186,3 @@ function clf(varargin)
         end
     end
 endfunction
-
-function yn = isDocked(fh)
-    // http://fileexchange.scilab.org/toolboxes/360000
-    sf = size(fh)
-    fh = fh(:)
-    fs = matrix(fh.figure_size,2,-1)'
-    as = matrix(fh.axes_size,2,-1)'
-
-    yn = (fh.dockable=="on" & ((fs(:,1)-as(:,1)) > 20)')
-    // A test on vertical dimensions is more complicated, due to switchable
-    // menubar, toolbar and infobar.
-    yn = matrix(yn, sf)
-endfunction
-
diff --git a/scilab/modules/graphics/macros/isDocked.sci b/scilab/modules/graphics/macros/isDocked.sci
new file mode 100644 (file)
index 0000000..c719e3b
--- /dev/null
@@ -0,0 +1,31 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function yn = isDocked(fh)
+    // http://fileexchange.scilab.org/toolboxes/360000
+    // Shared internal function used by clf(), fchamp(), etc.
+    //
+    // fh: matrix of figures handles
+    // yn: matrix of booleans
+    //
+    // yn(i) is %T if fh(i) is docked, %F otherwise
+
+    sf = size(fh)
+    fh = fh(:)
+    fs = matrix(fh.figure_size,2,-1)'
+    as = matrix(fh.axes_size,2,-1)'
+
+    yn = (fh.dockable=="on" & ((fs(:,1)-as(:,1)) > 20)')
+    // A test on vertical dimensions is more complicated, due to switchable
+    // menubar, toolbar and infobar.
+    yn = matrix(yn, sf)
+endfunction