changeset 14417:12d13534265c

Add support for figure positioning for gnuplot Windows terminals. * __gnuplot_drawnow__.m: Support postion and size options for Windows term. * __gnuplot_has_feature__.m: As of gnuplot-4.4.0 the Windows terminal accepts the position and size options.
author Ben Abbott <bpabbott@mac.com>
date Tue, 28 Feb 2012 07:42:40 -0500
parents 59e20a5e2ca8
children 933101fd5cbb
files scripts/plot/__gnuplot_drawnow__.m scripts/plot/private/__gnuplot_has_feature__.m
diffstat 2 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/plot/__gnuplot_drawnow__.m	Mon Feb 27 07:50:26 2012 -0500
+++ b/scripts/plot/__gnuplot_drawnow__.m	Tue Feb 28 07:42:40 2012 -0500
@@ -197,6 +197,9 @@
                                  "gif", "jpeg", "latex", "pbm", "pdf", ...
                                  "pdfcairo", "postscript", "png", "pngcairo", ...
                                  "pstex", "pslatex", "svg", "tikz"};
+          if (__gnuplot_has_feature__ ("windows_figure_position"))
+            terminals_with_size{end+1} = "windows";
+          endif
           if (__gnuplot_has_feature__ ("x11_figure_position"))
             terminals_with_size{end+1} = "x11";
           endif
@@ -226,9 +229,11 @@
           otherwise
             size_str = "";
           endswitch
-          if (strncmpi (term, "x11", 3)
-              && __gnuplot_has_feature__ ("x11_figure_position"))
-            ## X11 allows the window to be positioned as well.
+          if ((strncmpi (term, "x11", 3)
+               && __gnuplot_has_feature__ ("x11_figure_position"))
+              || (strcmpi (term, "windows")
+                  && __gnuplot_has_feature__ ("windows_figure_position")))
+            ## X11/Windows allows the window to be positioned as well.
             units = get (0, "units");
             unwind_protect
               set (0, "units", "pixels");
@@ -237,7 +242,7 @@
               set (0, "units", units);
             end_unwind_protect
             if (all (screen_size > 0))
-              ## For X11, set the figure positon as well as the size
+              ## For X11/Windows, set the figure positon as well as the size
               ## gnuplot position is UL, Octave's is LL (same for screen/window)
               gnuplot_pos(2) = screen_size(2) - gnuplot_pos(2) - gnuplot_size(2);
               gnuplot_pos = max (gnuplot_pos, 1);
--- a/scripts/plot/private/__gnuplot_has_feature__.m	Mon Feb 27 07:50:26 2012 -0500
+++ b/scripts/plot/private/__gnuplot_has_feature__.m	Tue Feb 28 07:42:40 2012 -0500
@@ -34,7 +34,8 @@
               "epslatexstandalone_terminal",
               "screen_coordinates_for_{lrtb}margin",
               "variable_GPVAL_TERMINALS",
-              "key_has_font_properties"};
+              "key_has_font_properties",
+              "windows_figure_position"};
 
   if (isempty (has_features))
     try
@@ -43,8 +44,8 @@
       ## Don't throw an error if gnuplot isn't installed
       gnuplot_version = "0.0.0";
     end_try_catch
-    versions = {"4.2.5", "4.4", "4.4", "4.4", "4.2", "4.2", "4.4", "4.4", "4.4"};
-    operators = {">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">="};
+    versions = {"4.2.5", "4.4", "4.4", "4.4", "4.2", "4.2", "4.4", "4.4", "4.4", "4.4"};
+    operators = {">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">="};
     have_features = logical (zeros (size (features)));
     for n = 1 : numel (have_features)
       has_features(n) = compare_versions (gnuplot_version, versions{n}, operators{n});