annotate scripts/plot/drawnow.m @ 7333:66dfb0abd3d3

[project @ 2007-12-21 21:22:43 by jwe]
author jwe
date Fri, 21 Dec 2007 21:22:43 +0000
parents 3fade00a6ac7
children 4e291a77212a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7017
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
1 ## Copyright (C) 2005, 2006, 2007 John W. Eaton
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
2 ##
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
3 ## This file is part of Octave.
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
4 ##
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
8 ## your option) any later version.
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
9 ##
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
13 ## General Public License for more details.
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
14 ##
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6895
diff changeset
17 ## <http://www.gnu.org/licenses/>.
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
18
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
19 ## -*- texinfo -*-
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
20 ## @deftypefn {Function File} {} drawnow ()
6895
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6870
diff changeset
21 ## Update and display the current graphics.
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6870
diff changeset
22 ##
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6870
diff changeset
23 ## Octave automatically calls drawnow just before printing a prompt,
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6870
diff changeset
24 ## when @code{sleep} or @code{pause} is called, or while waiting for
76e3d985ae56 [project @ 2007-09-13 18:22:38 by jwe]
jwe
parents: 6870
diff changeset
25 ## command-line input.
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
26 ## @end deftypefn
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
27
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
28 ## Author: jwe
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
29
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
30 function drawnow (term, file, mono, debug_file)
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
31
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
32 persistent drawnow_executing = 0;
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
33
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
34 unwind_protect
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
35
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
36 ## If this is a recursive call, do nothing.
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
37 if (++drawnow_executing > 1)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
38 return;
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
39 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
40
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
41 if (nargin < 3)
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
42 mono = false;
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
43 endif
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
44
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
45 if (nargin >= 2 && nargin <= 4)
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
46 h = get (0, "currentfigure");
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
47 if (h)
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
48 f = get (h);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
49 plot_stream = [];
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
50 fid = [];
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
51 unwind_protect
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
52 [plot_stream, enhanced] = open_gnuplot_stream ([], term, file);
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
53 __go_draw_figure__ (f, plot_stream, enhanced, mono);
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
54 if (nargin == 4)
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
55 fid = fopen (debug_file, "wb");
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
56 enhanced = init_plot_stream (fid, [], term, file);
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
57 __go_draw_figure__ (f, fid, enhanced, mono);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
58 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
59 unwind_protect_cleanup
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
60 if (! isempty (plot_stream))
6432
5bec61ae1576 [project @ 2007-03-23 02:19:10 by jwe]
jwe
parents: 6425
diff changeset
61 pclose (plot_stream);
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
62 endif
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
63 if (! isempty (fid))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
64 fclose (fid);
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
65 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
66 end_unwind_protect
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
67 else
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
68 error ("drawnow: nothing to draw");
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
69 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
70 elseif (nargin == 0)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
71 for h = __go_figure_handles__ ()
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
72 if (! (isnan (h) || h == 0))
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
73 f = get (h);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
74 if (f.__modified__)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
75 plot_stream = f.__plot_stream__;
6779
301ca8b69d03 [project @ 2007-07-18 17:43:51 by jwe]
jwe
parents: 6758
diff changeset
76 figure_is_visible = strcmp (f.visible, "on");
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
77 if (figure_is_visible)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
78 if (isempty (plot_stream))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
79 [plot_stream, enhanced] = open_gnuplot_stream (h);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
80 set (h, "__enhanced__", enhanced);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
81 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
82 enhanced = f.__enhanced__;
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
83 endif
7269
3fade00a6ac7 [project @ 2007-12-07 19:26:20 by jwe]
jwe
parents: 7211
diff changeset
84 __go_draw_figure__ (f, plot_stream, enhanced, mono);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
85 elseif (! isempty (plot_stream))
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
86 pclose (plot_stream);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
87 set (h, "__plot_stream__", []);
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
88 set (h, "__enhanced__", false);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
89 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
90 set (h, "__modified__", false);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
91 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
92 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
93 endfor
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
94 else
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
95 print_usage ();
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
96 endif
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
97
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
98 unwind_protect_cleanup
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
99
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
100 drawnow_executing--;
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
101 __request_drawnow__ (false);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
102
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
103 end_unwind_protect
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
104
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
105 endfunction
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
106
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
107 function [plot_stream, enhanced] = open_gnuplot_stream (h, varargin)
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
108
6418
2efe282221ed [project @ 2007-03-20 16:46:47 by jwe]
jwe
parents: 6405
diff changeset
109 ## If drawnow is cleared, it is possible to register __go_close_all__
2efe282221ed [project @ 2007-03-20 16:46:47 by jwe]
jwe
parents: 6405
diff changeset
110 ## more than once, but that is not fatal.
2efe282221ed [project @ 2007-03-20 16:46:47 by jwe]
jwe
parents: 6405
diff changeset
111 persistent __go_close_all_registered__;
6298
4553ff6b7ec7 [project @ 2007-02-10 16:33:33 by jwe]
jwe
parents: 6289
diff changeset
112
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
113 cmd = gnuplot_binary ();
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
114
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
115 plot_stream = popen (cmd, "w");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
116
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
117 if (plot_stream < 0)
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
118 error ("drawnow: failed to open connection to gnuplot");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
119 else
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
120
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
121 if (! isempty (h))
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
122 set (h, "__plot_stream__", plot_stream);
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
123 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
124
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
125 enhanced = init_plot_stream (plot_stream, h, varargin{:});
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
126
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
127 if (isempty (__go_close_all_registered__))
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
128 atexit ("__go_close_all__");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
129 __go_close_all_registered__ = true;
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
130 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
131
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
132 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
133
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
134 endfunction
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
135
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
136 function enhanced = init_plot_stream (plot_stream, h, term, file)
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
137
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
138 if (nargin == 4)
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
139 enhanced = enhanced_term (term);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
140 if (! isempty (term))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
141 if (enhanced)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
142 fprintf (plot_stream, "set terminal %s enhanced;\n", term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
143 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
144 fprintf (plot_stream, "set terminal %s;\n", term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
145 endif
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
146 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
147 if (! isempty (file))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
148 fprintf (plot_stream, "set output \"%s\";\n", file);
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
149 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
150 else
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
151
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
152 ## Guess the terminal type.
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
153 term = getenv ("GNUTERM");
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
154 if (isempty (term))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
155 if (! isempty (getenv ("DISPLAY")))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
156 term = "x11";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
157 elseif (! isunix ())
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
158 term = "windows";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
159 else
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
160 ## This should really be checking for os x before setting
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
161 ## the terminal type to aqua, but nobody will notice because
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
162 ## every other unix will be using x11 and windows will be
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
163 ## using windows. Those diehards still running octave from
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
164 ## a linux console know how to set the GNUTERM variable.
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
165 term = "aqua";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
166 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
167 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
168
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
169 enhanced = enhanced_term (term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
170 if (enhanced)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
171 enh_str = "enhanced";
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
172 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
173 enh_str = "";
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
174 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
175
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
176 ## If no 'h' (why not?) then open the terminal as Figure 0.
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
177 if (isempty (h))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
178 h = 0;
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
179 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
180
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
181 if (strcmp (term, "x11"))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
182 fprintf (plot_stream, "set terminal x11 %s title \"Figure %d\"\n",
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
183 enh_str, h);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
184 elseif (strcmp (term, "aqua"))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
185 ## Aqua doesn't understand the 'title' option despite what the
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
186 ## gnuplot 4.2 documentation says.
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
187 fprintf (plot_stream, "set terminal aqua %d %s\n", h, enh_str);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
188 elseif (strcmp (term, "wxt"))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
189 fprintf (plot_stream, "set terminal wxt %s title \"Figure %d\"\n",
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
190 enh_str, h);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
191
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
192 elseif (enhanced)
7211
621111e57a86 [project @ 2007-11-28 19:00:05 by jwe]
jwe
parents: 7191
diff changeset
193 fprintf (plot_stream, "set terminal %s %s\n", term, enh_str);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
194 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
195 ## gnuplot will pick up the GNUTERM environment variable itself
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
196 ## so no need to set the terminal type if not also setting the
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
197 ## figure title or enhanced mode.
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
198
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
199 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
200
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
201 endfunction
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
202
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
203 function have_enhanced = enhanced_term (term)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
204 persistent enhanced_terminals;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
205
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
206 if (isempty (enhanced_terminals))
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
207 ## Don't include pstex, pslatex or epslatex here as the TeX commands
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
208 ## should not be interpreted in that case.
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
209 if (compare_versions (__gnuplot_version__ (), "4.0", ">"))
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
210 enhanced_terminals = {"aqua", "dumb", "png", "jpeg", "gif", "pm", ...
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
211 "windows", "wxt", "svg", "postscript", "x11"};
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
212 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
213 enhanced_terminals = {"x11", "postscript"};
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
214 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
215 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
216
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
217 term = tolower (term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
218
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
219 have_enhanced = false;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
220 for i = 1 : length (enhanced_terminals)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
221 t = enhanced_terminals{i};
7191
b48a21816f2e [project @ 2007-11-26 21:24:32 by jwe]
jwe
parents: 7189
diff changeset
222 if (strncmp (term, t, min (length (term), length (t))))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
223 have_enhanced = true;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
224 break;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
225 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
226 endfor
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
227 endfunction