Mercurial > hg > octave-lyh
annotate scripts/plot/gnuplot_drawnow.m @ 9771:4634a0e9ea1b
gnuplot_drawnow.m (gnuplot_default_term): don't set term to x11 unless DISPLAY is set
author | Stefan Hepp <stefan@stefant.org> |
---|---|
date | Mon, 02 Nov 2009 21:34:04 -0500 |
parents | 40acd13920e3 |
children | ccad98db781b |
rev | line source |
---|---|
8920 | 1 ## Copyright (C) 2005, 2006, 2007, 2008, 2009 John W. Eaton |
7408 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
19 ## -*- texinfo -*- | |
20 ## @deftypefn {Function File} {} drawnow () | |
21 ## Update and display the current graphics. | |
22 ## | |
23 ## Octave automatically calls drawnow just before printing a prompt, | |
24 ## when @code{sleep} or @code{pause} is called, or while waiting for | |
25 ## command-line input. | |
26 ## @end deftypefn | |
27 | |
28 ## Author: jwe | |
29 | |
30 function gnuplot_drawnow (h, term, file, mono, debug_file) | |
31 | |
32 if (nargin < 4) | |
33 mono = false; | |
34 endif | |
35 | |
36 if (nargin >= 3 && nargin <= 5) | |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
37 ## Produce various output formats, or redirect gnuplot stream to a |
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
38 ## debug file. |
7408 | 39 plot_stream = []; |
40 fid = []; | |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
41 printing = ! output_to_screen (gnuplot_trim_term (term)); |
9055
8651fcc89556
gnuplot_drawnow.m: Always set figure property "__plot_stream__" to the active gnuplot steam.
Ben Abbott <bpabbott@mac.com>
parents:
9011
diff
changeset
|
42 default_plot_stream = get (h, "__plot_stream__"); |
7408 | 43 unwind_protect |
9113
4bb94a71913b
__gnuplot_open_stream__.m: New function and its application.
Ben Abbott <bpabbott@mac.com>
parents:
9107
diff
changeset
|
44 plot_stream = __gnuplot_open_stream__ (2, h); |
9008
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
45 if (__gnuplot_has_feature__ ("variable_GPVAL_TERMINALS")) |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
46 available_terminals = __gnuplot_get_var__ (plot_stream, "GPVAL_TERMINALS"); |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
47 available_terminals = regexp (available_terminals, "\\b\\w+\\b", "match"); |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
48 gnuplot_supports_term = any (strcmpi (available_terminals, |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
49 gnuplot_trim_term (term))); |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
50 else |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
51 gnuplot_supports_term = true; |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
52 endif |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
53 if (gnuplot_supports_term) |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
54 [enhanced, implicit_margin] = gnuplot_set_term (plot_stream (1), true, |
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
55 h, term, file); |
9011
dd5725531732
gnuplot_drawnow.m: When printing, pass scalar plot_stream to __gnuplot_draw_figure__, and close all plot streams when done.
Ben Abbott <bpabbott@mac.com>
parents:
9008
diff
changeset
|
56 __go_draw_figure__ (h, plot_stream(1), enhanced, mono, printing, implicit_margin); |
9002
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
57 if (nargin == 5) |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
58 fid = fopen (debug_file, "wb"); |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
59 [enhanced, implicit_margin] = gnuplot_set_term (fid, true, h, term, file); |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
60 __go_draw_figure__ (h, fid, enhanced, mono, printing, implicit_margin); |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
61 endif |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
62 else |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
63 error ("gnuplot_drawnow: the gnuplot terminal, \"%s\", is not available.", |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
64 gnuplot_trim_term (term)) |
7408 | 65 endif |
66 unwind_protect_cleanup | |
9055
8651fcc89556
gnuplot_drawnow.m: Always set figure property "__plot_stream__" to the active gnuplot steam.
Ben Abbott <bpabbott@mac.com>
parents:
9011
diff
changeset
|
67 set (h, "__plot_stream__", default_plot_stream); |
7408 | 68 if (! isempty (plot_stream)) |
9011
dd5725531732
gnuplot_drawnow.m: When printing, pass scalar plot_stream to __gnuplot_draw_figure__, and close all plot streams when done.
Ben Abbott <bpabbott@mac.com>
parents:
9008
diff
changeset
|
69 pclose (plot_stream(1)); |
9561
c60a9e1a0372
try to avoid gnuplot zombies
John W. Eaton <jwe@octave.org>
parents:
9478
diff
changeset
|
70 if (numel (plot_stream) > 1) |
9011
dd5725531732
gnuplot_drawnow.m: When printing, pass scalar plot_stream to __gnuplot_draw_figure__, and close all plot streams when done.
Ben Abbott <bpabbott@mac.com>
parents:
9008
diff
changeset
|
71 pclose (plot_stream(2)); |
dd5725531732
gnuplot_drawnow.m: When printing, pass scalar plot_stream to __gnuplot_draw_figure__, and close all plot streams when done.
Ben Abbott <bpabbott@mac.com>
parents:
9008
diff
changeset
|
72 endif |
9561
c60a9e1a0372
try to avoid gnuplot zombies
John W. Eaton <jwe@octave.org>
parents:
9478
diff
changeset
|
73 if (numel (plot_stream) > 2) |
c60a9e1a0372
try to avoid gnuplot zombies
John W. Eaton <jwe@octave.org>
parents:
9478
diff
changeset
|
74 waitpid (plot_stream(3)); |
c60a9e1a0372
try to avoid gnuplot zombies
John W. Eaton <jwe@octave.org>
parents:
9478
diff
changeset
|
75 endif |
7408 | 76 endif |
77 if (! isempty (fid)) | |
78 fclose (fid); | |
79 endif | |
80 end_unwind_protect | |
81 elseif (nargin == 1) | |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
82 ## Graphics terminal for display. |
8249 | 83 plot_stream = get (h, "__plot_stream__"); |
7408 | 84 if (isempty (plot_stream)) |
9113
4bb94a71913b
__gnuplot_open_stream__.m: New function and its application.
Ben Abbott <bpabbott@mac.com>
parents:
9107
diff
changeset
|
85 plot_stream = __gnuplot_open_stream__ (2, h); |
8789
d9bff42fec43
gnuplot_drawnow.m: Only close the gnuplot window and send position/size info when the figure's position property has changed.
Ben Abbott <bpabbott@mac.com>
parents:
8762
diff
changeset
|
86 new_stream = true; |
d9bff42fec43
gnuplot_drawnow.m: Only close the gnuplot window and send position/size info when the figure's position property has changed.
Ben Abbott <bpabbott@mac.com>
parents:
8762
diff
changeset
|
87 else |
d9bff42fec43
gnuplot_drawnow.m: Only close the gnuplot window and send position/size info when the figure's position property has changed.
Ben Abbott <bpabbott@mac.com>
parents:
8762
diff
changeset
|
88 new_stream = false; |
7408 | 89 endif |
8789
d9bff42fec43
gnuplot_drawnow.m: Only close the gnuplot window and send position/size info when the figure's position property has changed.
Ben Abbott <bpabbott@mac.com>
parents:
8762
diff
changeset
|
90 enhanced = gnuplot_set_term (plot_stream (1), new_stream, h); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
91 __go_draw_figure__ (h, plot_stream (1), enhanced, mono, 0); |
7680
a0ec02774303
Use popen2 for communication with gnuplot
David Bateman <dbateman@free.fr>
parents:
7408
diff
changeset
|
92 fflush (plot_stream (1)); |
7408 | 93 else |
94 print_usage (); | |
95 endif | |
96 | |
97 endfunction | |
98 | |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
99 function implicit_margin = gnuplot_implicit_margin (term, opts_str) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
100 ## gnuplot has an implicit margin of 50pts for PS output. |
8901
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
101 if (strcmpi (term, "postscript")) |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
102 if (isempty (strfind (opts_str, " eps")) |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
103 && isempty (strfind (opts_str, "eps "))) |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
104 implicit_margin = 50/72; |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
105 else |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
106 ## When zero, the behavior of gnuplot changes. |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
107 implicit_margin = 1/72; |
821f0242e8c1
gnuplot_drawnow.m: Fix unintended shift of plot image for the gnuplot postscript+eps terminal.
Ben Abbott <bpabbott@mac.com>
parents:
8889
diff
changeset
|
108 endif |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
109 else |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
110 implicit_margin = 0.0; |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
111 endif |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
112 endfunction |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
113 |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
114 function [enhanced, implicit_margin] = gnuplot_set_term (plot_stream, new_stream, h, term, file) |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
115 ## Generate the gnuplot "set terminal <term> ..." command. |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
116 ## When "term" originates from print.m, it may include other options. |
8793
4c989d52f35c
gnuplot_drawnow.m (gnuplot_set_term): adjust nargin checks for new signature
John W. Eaton <jwe@octave.org>
parents:
8789
diff
changeset
|
117 if (nargin < 4) |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
118 ## This supports the gnuplot backend. |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
119 term = gnuplot_default_term (); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
120 opts_str = ""; |
7408 | 121 else |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
122 ## Get the one word terminal id and save the remaining as options to |
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
123 ## be passed on to gnuplot. The terminal may respect the backend. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
124 [term, opts_str] = gnuplot_trim_term (term); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
125 if (strcmpi (term, "pdf") && strcmpi (opts_str, "color")) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
126 ## FIXME -- "color" for the pdf terminal produces a gnuplot error. |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
127 opts_str = ""; |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
128 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
129 endif |
7408 | 130 |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
131 implicit_margin = gnuplot_implicit_margin (term, opts_str); |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
132 |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
133 enhanced = gnuplot_is_enhanced_term (term); |
7408 | 134 |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
135 ## Set the terminal. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
136 if (! isempty (term)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
137 |
7408 | 138 if (enhanced) |
139 enh_str = "enhanced"; | |
140 else | |
141 enh_str = ""; | |
142 endif | |
143 | |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
144 if (! isempty (h) && isfigure (h)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
145 |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
146 ## Generate gnuoplot title string for backend plot windows. |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
147 if (output_to_screen (term)) |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
148 fig.numbertitle = get (h, "numbertitle"); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
149 fig.name = get (h, "name"); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
150 if (strcmpi (get (h, "numbertitle"), "on")) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
151 title_str = sprintf ("Figure %d", h); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
152 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
153 title_str = ""; |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
154 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
155 if (! isempty (fig.name) && ! isempty (title_str)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
156 title_str = sprintf ("%s: %s", title_str, fig.name); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
157 elseif (! isempty (fig.name) && isempty (title_str)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
158 title_str = fig.name; |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
159 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
160 if (! isempty (title_str)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
161 title_str = sprintf ("title \"%s\"", title_str); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
162 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
163 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
164 title_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
165 endif |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
166 if (! (any (strfind (opts_str, " size ") > 0) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
167 || any (strfind (opts_str, "size ") == 1))) |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
168 ## Convert position to units used by gnuplot. |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
169 if (output_to_screen (term)) |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
170 ## Get figure size in pixels. Rely on listener |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
171 ## to handle coversion of position property. |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
172 units = get (h, "units"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
173 unwind_protect |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
174 set (h, "units", "pixels"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
175 position_in_pixesl = get (h, "position"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
176 unwind_protect_cleanup |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
177 set (h, "units", units); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
178 end_unwind_protect |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
179 gnuplot_pos = position_in_pixesl(1:2); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
180 gnuplot_size = position_in_pixesl(3:4); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
181 else |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
182 ## Get size of the printed plot in inches. Rely on listener |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
183 ## to handle coversion of papersize property. |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
184 paperunits = get (h, "paperunits"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
185 unwind_protect |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
186 set (h, "paperunits", "inches"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
187 gnuplot_size = get (h, "papersize"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
188 unwind_protect_cleanup |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
189 set (h, "paperunits", paperunits); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
190 end_unwind_protect |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
191 if (term_units_are_pixels (term)) |
9107
d0d507cbd123
Improvements to printing functionality.
Ben Abbott <bpabbott@mac.com>
parents:
9055
diff
changeset
|
192 ## Convert to inches using the property set by print(). |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
193 gnuplot_size = gnuplot_size * get (h, "__pixels_per_inch__"); |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
194 else |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
195 ## Implicit margins are in units of "inches" |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
196 gnuplot_size = gnuplot_size - implicit_margin; |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
197 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
198 endif |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
199 [begin_match, end_match, te, match] = regexp (opts_str, "(\\s-r\\d+)|(^-r\\d+)"); |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
200 if (! isempty (begin_match)) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
201 error ("gnuplot_drawnow.m: specifying resultion, '%s', not supported for terminal '%s'", |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
202 strtrim (match{1}), term) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
203 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
204 if (all (gnuplot_size > 0)) |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
205 ## Set terminal size. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
206 terminals_with_size = {"emf", "gif", "jpeg", "latex", "pbm", ... |
9161
406ed43c0233
gnuplot_drawnow.m: For figure size/position treat 'wxt' as 'x11'.
Ben Abbott <bpabbott@mac.com>
parents:
9113
diff
changeset
|
207 "pdf", "png", "postscript", "svg", ... |
9468
5af462716bff
Add support for gnuplot's Lua-TikZ terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9398
diff
changeset
|
208 "epslatex", "pstex", "pslatex", "tikz"}; |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
209 if (__gnuplot_has_feature__ ("x11_figure_position")) |
8638
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
210 terminals_with_size{end+1} = "x11"; |
9398
684312a5291c
Add feature 'wxt_has_size' to __gnuplot_has_feature__.m & apply in gnuplot_drawnow.m.
Ben Abbott <bpabbott@mac.com>
parents:
9393
diff
changeset
|
211 endif |
684312a5291c
Add feature 'wxt_has_size' to __gnuplot_has_feature__.m & apply in gnuplot_drawnow.m.
Ben Abbott <bpabbott@mac.com>
parents:
9393
diff
changeset
|
212 if (__gnuplot_has_feature__ ("wxt_figure_size")) |
9161
406ed43c0233
gnuplot_drawnow.m: For figure size/position treat 'wxt' as 'x11'.
Ben Abbott <bpabbott@mac.com>
parents:
9113
diff
changeset
|
213 terminals_with_size{end+1} = "wxt"; |
8638
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
214 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
215 if (any (strncmpi (term, terminals_with_size, 3))) |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
216 if (term_units_are_pixels (term)) |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
217 size_str = sprintf ("size %d,%d", gnuplot_size); |
9468
5af462716bff
Add support for gnuplot's Lua-TikZ terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9398
diff
changeset
|
218 elseif (strcmp (term, "tikz")) |
5af462716bff
Add support for gnuplot's Lua-TikZ terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9398
diff
changeset
|
219 size_str = sprintf ("size %.15gin,%.15gin", gnuplot_size); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
220 else |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
221 size_str = sprintf ("size %.15g,%.15g", gnuplot_size); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
222 endif |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
223 if (strncmpi (term, "X11", 3) && __gnuplot_has_feature__ ("x11_figure_position")) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
224 ## X11 allows the window to be positioned as well. |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
225 units = get (0, "units"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
226 unwind_protect |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
227 set (0, "units", "pixels"); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
228 screen_size = get (0, "screensize")(3:4); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
229 unwind_protect_cleanup |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
230 set (0, "units", units); |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
231 end_unwind_protect |
8638
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
232 if (all (screen_size > 0)) |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
233 ## For X11, set the figure positon as well as the size |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
234 ## gnuplot position is UL, Octave's is LL (same for screen/window) |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
235 gnuplot_pos(2) = screen_size(2) - gnuplot_pos(2) - gnuplot_size(2); |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
236 gnuplot_pos = max (gnuplot_pos, 1); |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
237 size_str = sprintf ("%s position %d,%d", size_str, |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
238 gnuplot_pos(1), gnuplot_pos(2)); |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
239 endif |
20e93feaa7f8
gnuplot_drawnow.m: gnuplot_drawnow.m: respect x11 figure position property
Ben Abbott <bpabbott@mac.com>
parents:
8624
diff
changeset
|
240 endif |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
241 elseif (strncmpi (term, "aqua", 3)) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
242 ## Aqua has size, but the format is different. |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
243 size_str = sprintf ("size %d %d", gnuplot_size); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
244 elseif (strncmpi (term, "fig", 3)) |
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
245 ## Fig also has size, but the format is different. |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
246 size_str = sprintf ("size %.15g %.15g", gnuplot_size); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
247 elseif (any (strncmpi (term, {"corel", "hpgl"}, 3))) |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
248 ## The size for corel and hpgl are goes at the end (implicit). |
9393
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
249 size_str = sprintf ("%.15g %.15g", gnuplot_size); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
250 elseif (any (strncmpi (term, {"dxf"}, 3))) |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
251 ## DXF uses autocad units. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
252 size_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
253 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
254 size_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
255 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
256 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
257 size_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
258 warning ("gnuplot_set_term: size is zero") |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
259 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
260 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
261 ## A specified size take priority over the figure properies. |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
262 size_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
263 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
264 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
265 if isempty (h) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
266 disp ("gnuplot_set_term: figure handle is empty") |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
267 elseif !isfigure(h) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
268 disp ("gnuplot_set_term: not a figure handle") |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
269 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
270 title_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
271 size_str = ""; |
7408 | 272 endif |
273 | |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
274 ## Set the gnuplot terminal (type, enhanced, title, options & size). |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
275 term_str = sprintf ("set terminal %s", term); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
276 if (! isempty (enh_str)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
277 term_str = sprintf ("%s %s", term_str, enh_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
278 endif |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
279 if (! isempty (title_str)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
280 term_str = sprintf ("%s %s", term_str, title_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
281 endif |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
282 if (nargin > 3 && ischar (opts_str)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
283 ## Options must go last. |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
284 term_str = sprintf ("%s %s", term_str, opts_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
285 endif |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
286 if (! isempty (size_str) && new_stream) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
287 ## size_str comes after other options to permit specification of |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
288 ## the canvas size for terminals cdr/corel. |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
289 term_str = sprintf ("%s %s", term_str, size_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
290 endif |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
291 ## Work around the gnuplot feature of growing the x11 window and |
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
292 ## flickering window (x11, windows, & wxt) when the mouse and |
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
293 ## multiplot are set in gnuplot. |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
294 fputs (plot_stream, "unset multiplot;\n"); |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
295 flickering_terms = {"x11", "windows", "wxt"}; |
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
296 if (! any (strcmp (term, flickering_terms)) |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
297 || numel (findall (h, "type", "axes")) > 1 |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
298 || numel (findall (h, "type", "image")) > 0) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
299 fprintf (plot_stream, "%s\n", term_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
300 if (nargin == 5) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
301 if (! isempty (file)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
302 fprintf (plot_stream, "set output '%s';\n", file); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
303 endif |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
304 endif |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
305 fputs (plot_stream, "set multiplot;\n"); |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
306 elseif (any (strcmp (term, flickering_terms))) |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
307 fprintf (plot_stream, "%s\n", term_str); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
308 if (nargin == 5) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
309 if (! isempty (file)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
310 fprintf (plot_stream, "set output '%s';\n", file); |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
311 endif |
9107
d0d507cbd123
Improvements to printing functionality.
Ben Abbott <bpabbott@mac.com>
parents:
9055
diff
changeset
|
312 endif |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
313 endif |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
314 else |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
315 ## gnuplot will pick up the GNUTERM environment variable itself |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
316 ## so no need to set the terminal type if not also setting the |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
317 ## figure title, enhanced mode, or position. |
7408 | 318 endif |
319 | |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
320 |
7408 | 321 endfunction |
322 | |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
323 function term = gnuplot_default_term () |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
324 term = getenv ("GNUTERM"); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
325 ## If not specified, guess the terminal type. |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
326 if (isempty (term)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
327 if (ismac ()) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
328 term = "aqua"; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
329 elseif (! isunix ()) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
330 term = "windows"; |
9771
4634a0e9ea1b
gnuplot_drawnow.m (gnuplot_default_term): don't set term to x11 unless DISPLAY is set
Stefan Hepp <stefan@stefant.org>
parents:
9632
diff
changeset
|
331 elseif (! isempty (getenv ("DISPLAY"))) |
4634a0e9ea1b
gnuplot_drawnow.m (gnuplot_default_term): don't set term to x11 unless DISPLAY is set
Stefan Hepp <stefan@stefant.org>
parents:
9632
diff
changeset
|
332 term = "x11"; |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
333 else |
9771
4634a0e9ea1b
gnuplot_drawnow.m (gnuplot_default_term): don't set term to x11 unless DISPLAY is set
Stefan Hepp <stefan@stefant.org>
parents:
9632
diff
changeset
|
334 term = "unknown"; |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
335 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
336 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
337 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
338 |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
339 function [term, opts] = gnuplot_trim_term (string) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
340 ## Extract the terminal type and terminal options (from print.m) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
341 string = deblank (string); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
342 n = strfind (string, ' '); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
343 if (isempty (n)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
344 term = string; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
345 opts = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
346 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
347 term = string(1:(n-1)); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
348 opts = string((n+1):end); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
349 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
350 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
351 |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
352 function have_enhanced = gnuplot_is_enhanced_term (term) |
7408 | 353 persistent enhanced_terminals; |
354 if (isempty (enhanced_terminals)) | |
355 ## Don't include pstex, pslatex or epslatex here as the TeX commands | |
356 ## should not be interpreted in that case. | |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
357 enhanced_terminals = {"aqua", "dumb", "png", "jpeg", "gif", "pm", ... |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
358 "windows", "wxt", "svg", "postscript", "x11", "pdf"}; |
7408 | 359 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
360 if (nargin < 1) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
361 ## Determine the default gnuplot terminal. |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
362 term = gnuplot_default_term (); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
363 endif |
9334
4f96a7770492
print.m: properly render mono figures, and favor cairo terminals.
Ben Abbott <bpabbott@mac.com>
parents:
9249
diff
changeset
|
364 have_enhanced = any (strncmp (enhanced_terminals, term, min (numel (term), 3))); |
7408 | 365 endfunction |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
366 |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
367 function ret = output_to_screen (term) |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
368 ret = any (strcmpi ({"aqua", "wxt", "x11", "windows", "pm"}, term)); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
369 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
370 |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
371 function ret = term_units_are_pixels (term) |
9334
4f96a7770492
print.m: properly render mono figures, and favor cairo terminals.
Ben Abbott <bpabbott@mac.com>
parents:
9249
diff
changeset
|
372 ret = any (strncmpi ({"emf", "gif", "jpeg", "pbm", "png", "svg"}, term, 3)); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
373 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
374 |