Mercurial > hg > octave-lyh
annotate scripts/plot/__gnuplot_drawnow__.m @ 12301:3eb4049b5393 release-3-4-x
rename gnuplot_drawnow to __gnuplot_drawnow__
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 30 Jan 2011 04:22:39 -0500 |
parents | scripts/plot/gnuplot_drawnow.m@b0084095098e |
children | 5236c9518f88 b265b592c796 |
rev | line source |
---|---|
11523 | 1 ## Copyright (C) 2005-2011 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 -*- | |
12301
3eb4049b5393
rename gnuplot_drawnow to __gnuplot_drawnow__
John W. Eaton <jwe@octave.org>
parents:
11589
diff
changeset
|
20 ## @deftypefn {Function File} {} __gnuplot_drawnow__ (@var{h}, @var{term}, @var{file}, @var{mono}, @var{debug_file}) |
3eb4049b5393
rename gnuplot_drawnow to __gnuplot_drawnow__
John W. Eaton <jwe@octave.org>
parents:
11589
diff
changeset
|
21 ## Undocumented internal function. |
7408 | 22 ## @end deftypefn |
23 | |
24 ## Author: jwe | |
25 | |
12301
3eb4049b5393
rename gnuplot_drawnow to __gnuplot_drawnow__
John W. Eaton <jwe@octave.org>
parents:
11589
diff
changeset
|
26 function __gnuplot_drawnow__ (h, term, file, mono, debug_file) |
7408 | 27 |
28 if (nargin < 4) | |
29 mono = false; | |
30 endif | |
31 | |
32 if (nargin >= 3 && nargin <= 5) | |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
33 ## 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
|
34 ## debug file. |
7408 | 35 plot_stream = []; |
36 fid = []; | |
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
|
37 default_plot_stream = get (h, "__plot_stream__"); |
7408 | 38 unwind_protect |
9113
4bb94a71913b
__gnuplot_open_stream__.m: New function and its application.
Ben Abbott <bpabbott@mac.com>
parents:
9107
diff
changeset
|
39 plot_stream = __gnuplot_open_stream__ (2, h); |
10968
f5c863803e29
gnuplot_drawnow.m: Use new function __gnuplot_has_terminal__().
Ben Abbott <bpabbott@mac.com>
parents:
10913
diff
changeset
|
40 gnuplot_supports_term = __gnuplot_has_terminal__ (term, plot_stream); |
9008
7a7cf569528d
gnuplot_drawnow.m: Check that gnuplot has internal variable "GPVAL_TERMINALS".
Ben Abbott <bpabbott@mac.com>
parents:
9002
diff
changeset
|
41 if (gnuplot_supports_term) |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
42 enhanced = gnuplot_set_term (plot_stream (1), true, h, term, file); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
43 __go_draw_figure__ (h, plot_stream(1), enhanced, mono); |
9002
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
44 if (nargin == 5) |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
45 fid = fopen (debug_file, "wb"); |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
46 enhanced = gnuplot_set_term (fid, true, h, term, file); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
47 __go_draw_figure__ (h, fid, enhanced, mono); |
9002
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
48 endif |
5cc15e4b4e5c
gnuplot_drawnow.m: Verify the gnuplot terminal is supported.
Ben Abbott <bpabbott@mac.com>
parents:
8920
diff
changeset
|
49 else |
12301
3eb4049b5393
rename gnuplot_drawnow to __gnuplot_drawnow__
John W. Eaton <jwe@octave.org>
parents:
11589
diff
changeset
|
50 error ("__gnuplot_drawnow__: the gnuplot terminal, \"%s\", is not available", |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
51 gnuplot_trim_term (term)); |
7408 | 52 endif |
53 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
|
54 set (h, "__plot_stream__", default_plot_stream); |
7408 | 55 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
|
56 pclose (plot_stream(1)); |
9561
c60a9e1a0372
try to avoid gnuplot zombies
John W. Eaton <jwe@octave.org>
parents:
9478
diff
changeset
|
57 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
|
58 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
|
59 endif |
10549 | 60 if (numel (plot_stream) > 2) |
61 waitpid (plot_stream(3)); | |
62 endif | |
7408 | 63 endif |
64 if (! isempty (fid)) | |
65 fclose (fid); | |
66 endif | |
67 end_unwind_protect | |
68 elseif (nargin == 1) | |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
69 ## Graphics terminal for display. |
8249 | 70 plot_stream = get (h, "__plot_stream__"); |
7408 | 71 if (isempty (plot_stream)) |
9113
4bb94a71913b
__gnuplot_open_stream__.m: New function and its application.
Ben Abbott <bpabbott@mac.com>
parents:
9107
diff
changeset
|
72 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
|
73 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
|
74 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
|
75 new_stream = false; |
7408 | 76 endif |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
77 term = gnuplot_default_term (); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
78 if (strcmp (term, "dumb")) |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
79 ## popen2 eats stdout of gnuplot, use temporary file instead |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
80 dumb_tmp_file = tmpnam (); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
81 enhanced = gnuplot_set_term (plot_stream (1), new_stream, h, ... |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
82 term, dumb_tmp_file); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
83 else |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
84 enhanced = gnuplot_set_term (plot_stream (1), new_stream, h, term); |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
10968
diff
changeset
|
85 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
86 __go_draw_figure__ (h, plot_stream (1), enhanced, mono); |
7680
a0ec02774303
Use popen2 for communication with gnuplot
David Bateman <dbateman@free.fr>
parents:
7408
diff
changeset
|
87 fflush (plot_stream (1)); |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
88 if (strcmp (term, "dumb")) |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
89 fid = -1; |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
90 while (fid < 0) |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
91 pause (0.1); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
92 fid = fopen (dumb_tmp_file, 'r'); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
93 endwhile |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
94 ## reprint the plot on screen |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
95 [a, count] = fscanf (fid, '%c', Inf); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
96 fclose (fid); |
9945
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
97 if (count>0) |
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
98 if (a(1)==12) |
10549 | 99 ## avoid ^L at the beginning |
100 a = a(2:end); | |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
10968
diff
changeset
|
101 endif |
9945
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
102 puts (a); |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
10968
diff
changeset
|
103 endif |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
104 unlink (dumb_tmp_file); |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
105 endif |
7408 | 106 else |
107 print_usage (); | |
108 endif | |
109 | |
110 endfunction | |
111 | |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
112 function enhanced = 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
|
113 ## Generate the gnuplot "set terminal <term> ..." command. |
d6c99b2ee941
print.m: reimplement options -landscape and -portrait.
Ben Abbott <bpabbott@mac.com>
parents:
9334
diff
changeset
|
114 ## 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
|
115 if (nargin < 4) |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
116 ## This supports the gnuplot graphics toolkit. |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
117 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
|
118 opts_str = ""; |
7408 | 119 else |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
120 ## Get the one word terminal id and save the remaining as options to |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
121 ## be passed on to gnuplot. The terminal may respect the graphics |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11576
diff
changeset
|
122 ## toolkit. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
123 [term, opts_str] = gnuplot_trim_term (term); |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
124 term = lower (term); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
125 if (strcmpi (term, "lua")) |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11576
diff
changeset
|
126 ## Replace "lau tikz" with |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
127 term = "tikz"; |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
128 opts_str = strrep (opts_str, "tikz", ""); |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
129 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
130 endif |
7408 | 131 |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
132 if (strfind (opts_str, "noenhanced")) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
133 enhanced = false; |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
134 else |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
135 enhanced = gnuplot_is_enhanced_term (term); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
136 endif |
7408 | 137 |
8624
ff7d90d92db8
gnuplot_drawnow.m: style fixes.
Ben Abbott <bpabbott@mac.com>
parents:
8610
diff
changeset
|
138 ## Set the terminal. |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
139 if (! isempty (term)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
140 |
7408 | 141 if (enhanced) |
142 enh_str = "enhanced"; | |
143 else | |
144 enh_str = ""; | |
145 endif | |
146 | |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
147 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
|
148 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
149 ## Generate gnuplot title string for plot windows. |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
150 if (output_to_screen (term) && ~strcmp (term, "dumb")) |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
151 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
|
152 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
|
153 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
|
154 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
|
155 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
156 title_str = ""; |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
157 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
158 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
|
159 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
|
160 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
|
161 title_str = fig.name; |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
162 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
163 if (! isempty (title_str)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
164 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
|
165 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
166 if (strcmp (term, "aqua")) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
167 ## Adjust axes-label and tick-label spacing. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11576
diff
changeset
|
168 opts_str = sprintf ("%s font \"%s,%d\"", opts_str, |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
169 get (0, "defaultaxesfontname"), |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
170 get (0, "defaultaxesfontsize") / 1.5); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
171 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
172 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
173 title_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
174 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
175 |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11576
diff
changeset
|
176 if (! (any (strfind (opts_str, " size ") > 0) |
10549 | 177 || any (strfind (opts_str, "size ") == 1))) |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
178 ## Get figure size in pixels. Rely on listener to handle coversion. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
179 units = get (h, "units"); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
180 unwind_protect |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
181 set (h, "units", "pixels"); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
182 position_in_pixels = get (h, "position"); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
183 unwind_protect_cleanup |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
184 set (h, "units", units); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
185 end_unwind_protect |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
186 gnuplot_pos = position_in_pixels(1:2); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
187 gnuplot_size = position_in_pixels(3:4); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
188 if (! (output_to_screen (term) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
189 || any (strcmp (term, {"emf", "gif", "jpeg", "pbm", "png", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
190 "pngcairo", "svg"})))) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
191 ## Convert to inches |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
192 gnuplot_pos = gnuplot_pos / 72; |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
193 gnuplot_size = gnuplot_size / 72; |
10549 | 194 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
195 if (all (gnuplot_size > 0)) |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
196 terminals_with_size = {"canvas", "emf", "epslatex", "fig", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
197 "gif", "jpeg", "latex", "pbm", "pdf", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
198 "pdfcairo", "postscript", "png", "pngcairo", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
199 "pstex", "pslatex", "svg", "tikz"}; |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
200 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
|
201 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
|
202 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
|
203 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
|
204 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
|
205 endif |
11120
a44f979a35ce
style fixes for some .m files
John W. Eaton <jwe@octave.org>
parents:
11113
diff
changeset
|
206 switch (term) |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
207 case terminals_with_size |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
208 size_str = sprintf ("size %g,%g", gnuplot_size); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
209 case "tikz" |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
210 size_str = sprintf ("size %gin,%gin", gnuplot_size); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
211 case "dumb" |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
212 new_stream = 1; |
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
213 if (~isempty (getenv ("COLUMNS")) && ~isempty (getenv ("LINES"))) |
9945
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
214 ## Let dumb use full text screen size (minus prompt lines). |
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
215 n = sprintf ("%i", -2 - length (find (sprintf ("%s", PS1) == "\n"))); |
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
216 ## n = the number of times \n appears in PS1 |
b4661b498a7e
gnuplot_drawnow.m: Prunec prompt lines from dumb terminal output.
Ben Abbott <bpabbott@mac.com>
parents:
9785
diff
changeset
|
217 size_str = ["size ", getenv("COLUMNS"), ",", getenv("LINES"), n]; |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
218 else |
10549 | 219 ## Use the gnuplot default. |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
220 size_str = ""; |
11113
a8ac114ec9ab
Stylefixes, replace end by endif.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
10968
diff
changeset
|
221 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
222 case {"aqua", "fig", "corel"} |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
223 size_str = sprintf ("size %g %g", gnuplot_size); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
224 case "dxf" |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
225 size_str = ""; |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
226 otherwise |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
227 size_str = ""; |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
228 endswitch |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
229 if (strncmpi (term, "x11", 3) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
230 && __gnuplot_has_feature__ ("x11_figure_position")) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
231 ## X11 allows the window to be positioned as well. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
232 units = get (0, "units"); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
233 unwind_protect |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
234 set (0, "units", "pixels"); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
235 screen_size = get (0, "screensize")(3:4); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
236 unwind_protect_cleanup |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
237 set (0, "units", units); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
238 end_unwind_protect |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
239 if (all (screen_size > 0)) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
240 ## For X11, set the figure positon as well as the size |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
241 ## gnuplot position is UL, Octave's is LL (same for screen/window) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
242 gnuplot_pos(2) = screen_size(2) - gnuplot_pos(2) - gnuplot_size(2); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
243 gnuplot_pos = max (gnuplot_pos, 1); |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11576
diff
changeset
|
244 size_str = sprintf ("%s position %d,%d", size_str, |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
245 gnuplot_pos(1), gnuplot_pos(2)); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
246 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
247 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
248 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
249 size_str = ""; |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
250 warning ("gnuplot_set_term: size is zero"); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
251 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
252 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
253 ## 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
|
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 if isempty (h) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
258 disp ("gnuplot_set_term: figure handle is empty"); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
259 elseif !isfigure(h) |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
260 disp ("gnuplot_set_term: not a figure handle"); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
261 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
262 title_str = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
263 size_str = ""; |
7408 | 264 endif |
265 | |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
266 ## 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
|
267 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
|
268 if (! isempty (enh_str)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
269 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
|
270 endif |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
271 if (! isempty (title_str)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
272 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
|
273 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
274 if (isempty (strfind (term, "corel"))) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
275 if (! isempty (size_str) && new_stream) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
276 ## size_str comes after other options to permit specification of |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
277 ## the canvas size for terminals cdr/corel. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
278 term_str = sprintf ("%s %s", term_str, size_str); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
279 endif |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
280 if (nargin > 3 && ischar (opts_str)) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
281 ## Options must go last. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
282 term_str = sprintf ("%s %s", term_str, opts_str); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
283 endif |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
284 else |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
285 if (nargin > 3 && ischar (opts_str)) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
286 ## Options must go last. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
287 term_str = sprintf ("%s %s", term_str, opts_str); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
288 endif |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
289 if (! isempty (size_str) && new_stream) |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
290 ## size_str comes after other options to permit specification of |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
291 ## the canvas size for terminals cdr/corel. |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
292 term_str = sprintf ("%s %s", term_str, size_str); |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
293 endif |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
294 endif |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
295 |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
296 ## 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
|
297 ## 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
|
298 ## 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
|
299 fputs (plot_stream, "unset multiplot;\n"); |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
300 flickering_terms = {"x11", "windows", "wxt", "dumb"}; |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
301 if (! any (strcmp (term, flickering_terms)) |
11246
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
302 || have_non_legend_axes (h) |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
303 || 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
|
304 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
|
305 if (nargin == 5) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
306 if (! isempty (file)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
307 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
|
308 endif |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
309 endif |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
310 fputs (plot_stream, "set multiplot;\n"); |
9632
40acd13920e3
gnuplot_drawnow.m: Avoid flickering plot windows.
Ben Abbott <bpabbott@mac.com>
parents:
9561
diff
changeset
|
311 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
|
312 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
|
313 if (nargin == 5) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
314 if (! isempty (file)) |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
315 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
|
316 endif |
9107
d0d507cbd123
Improvements to printing functionality.
Ben Abbott <bpabbott@mac.com>
parents:
9055
diff
changeset
|
317 endif |
8610
85c9906abfd1
use endif and endfor instead of end
John W. Eaton <jwe@octave.org>
parents:
8530
diff
changeset
|
318 endif |
9478
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
319 else |
7e1e90837fef
Avoid the flickering x11 window seen with rapid gnuplot updates.
Ben Abbott <bpabbott@mac.com>
parents:
9468
diff
changeset
|
320 ## 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
|
321 ## 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
|
322 ## figure title, enhanced mode, or position. |
7408 | 323 endif |
324 | |
325 endfunction | |
326 | |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
327 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
|
328 term = getenv ("GNUTERM"); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
329 ## 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
|
330 if (isempty (term)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
331 if (ismac ()) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
332 term = "aqua"; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
333 elseif (! isunix ()) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
334 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
|
335 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
|
336 term = "x11"; |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
337 else |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
338 term = "dumb"; |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
339 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
340 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
341 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
342 |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
343 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
|
344 ## 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
|
345 string = deblank (string); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
346 n = strfind (string, ' '); |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
347 if (isempty (n)) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
348 term = string; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
349 opts = ""; |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
350 else |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
351 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
|
352 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
|
353 endif |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
354 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
355 |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
356 function have_enhanced = gnuplot_is_enhanced_term (term) |
7408 | 357 persistent enhanced_terminals; |
358 if (isempty (enhanced_terminals)) | |
359 ## Don't include pstex, pslatex or epslatex here as the TeX commands | |
360 ## should not be interpreted in that case. | |
10913
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
361 enhanced_terminals = {"aqua", "canvas", "dumb", "emf", "gif", "jpeg", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
362 "pdf", "pdfcairo", "pm", "png", "pngcairo", ... |
dd6b90f44ae5
Unify gnuplot printing with the fltk backend.
Ben Abbott <bpabbott@mac.com>
parents:
10635
diff
changeset
|
363 "postscript", "svg", "windows", "wxt", "x11"}; |
7408 | 364 endif |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
365 if (nargin < 1) |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
366 ## 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
|
367 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
|
368 endif |
9334
4f96a7770492
print.m: properly render mono figures, and favor cairo terminals.
Ben Abbott <bpabbott@mac.com>
parents:
9249
diff
changeset
|
369 have_enhanced = any (strncmp (enhanced_terminals, term, min (numel (term), 3))); |
7408 | 370 endfunction |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
371 |
8889
665b264b6a50
Compatible support of figure paper properties and resolution for the gnuplot backend.
Ben Abbott <bpabbott@mac.com>
parents:
8813
diff
changeset
|
372 function ret = output_to_screen (term) |
9785
ccad98db781b
gnuplot_drawnow.m: Support gnuplot's dumb terminal.
Ben Abbott <bpabbott@mac.com>
parents:
9771
diff
changeset
|
373 ret = any (strcmpi ({"aqua", "dumb", "wxt", "x11", "windows", "pm"}, term)); |
8356
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
374 endfunction |
d750feaefa8e
gnuplot_drawnow.m: Add support of properites to gp backend.
Ben Abbott <bpabbott@mac.com>
parents:
8249
diff
changeset
|
375 |
11246
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
376 function retval = have_non_legend_axes (h) |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
377 retval = false; |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
378 all_axes = findall (h, "type", "axes"); |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
379 if (! isempty (all_axes)) |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
380 n_all_axes = numel (all_axes); |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
381 all_axes_tags = get (all_axes, "tag"); |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
382 legend_axes = strcmp (all_axes_tags, "legend"); |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
383 if (! isempty (legend_axes)) |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
384 n_legend_axes = sum (legend_axes); |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
385 retval = (n_all_axes - n_legend_axes) > 1; |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
386 endif |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
387 endif |
c463aed850b0
allow legend and gcf to work when no figure is present
John W. Eaton <jwe@octave.org>
parents:
11198
diff
changeset
|
388 endfunction |