annotate scripts/plot/drawnow.m @ 7189:e8d953d03f6a

[project @ 2007-11-26 20:42:09 by dbateman]
author dbateman
date Mon, 26 Nov 2007 20:42:11 +0000
parents a1dbe9d80eee
children b48a21816f2e
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
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
30 function drawnow (term, file, 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
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
41 if (nargin == 2 || nargin == 3)
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
42 h = get (0, "currentfigure");
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
43 if (h)
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
44 f = get (h);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
45 plot_stream = [];
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
46 fid = [];
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
47 unwind_protect
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
48 [plot_stream, enhanced] = open_gnuplot_stream ([], term, file);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
49 __go_draw_figure__ (f, plot_stream, enhanced);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
50 if (nargin == 3)
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
51 fid = fopen (debug_file, "wb");
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
52 enhanced = init_plot_stream (fid, [], term, file);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
53 __go_draw_figure__ (f, fid, enhanced);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
54 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
55 unwind_protect_cleanup
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
56 if (! isempty (plot_stream))
6432
5bec61ae1576 [project @ 2007-03-23 02:19:10 by jwe]
jwe
parents: 6425
diff changeset
57 pclose (plot_stream);
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
58 endif
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
59 if (! isempty (fid))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
60 fclose (fid);
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
61 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
62 end_unwind_protect
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
63 else
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
64 error ("drawnow: nothing to draw");
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
65 endif
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
66 elseif (nargin == 0)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
67 for h = __go_figure_handles__ ()
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
68 if (! (isnan (h) || h == 0))
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
69 f = get (h);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
70 if (f.__modified__)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
71 plot_stream = f.__plot_stream__;
6779
301ca8b69d03 [project @ 2007-07-18 17:43:51 by jwe]
jwe
parents: 6758
diff changeset
72 figure_is_visible = strcmp (f.visible, "on");
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
73 if (figure_is_visible)
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
74 if (isempty (plot_stream))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
75 [plot_stream, enhanced] = open_gnuplot_stream (h);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
76 set (h, "__enhanced__", enhanced);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
77 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
78 enhanced = f.__enhanced__;
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
79 endif
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
80 __go_draw_figure__ (f, plot_stream, enhanced);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
81 elseif (! isempty (plot_stream))
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
82 pclose (plot_stream);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
83 set (h, "__plot_stream__", []);
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
84 set (h, "__enhanced__", false);
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
85 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
86 set (h, "__modified__", false);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
87 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
88 endif
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
89 endfor
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
90 else
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
91 print_usage ();
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
92 endif
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
93
6454
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
94 unwind_protect_cleanup
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
95
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
96 drawnow_executing--;
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
97 __request_drawnow__ (false);
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
98
7c9b4a6e090b [project @ 2007-03-26 14:28:24 by jwe]
jwe
parents: 6451
diff changeset
99 end_unwind_protect
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
100
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
101 endfunction
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
102
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
103 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
104
6418
2efe282221ed [project @ 2007-03-20 16:46:47 by jwe]
jwe
parents: 6405
diff changeset
105 ## 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
106 ## more than once, but that is not fatal.
2efe282221ed [project @ 2007-03-20 16:46:47 by jwe]
jwe
parents: 6405
diff changeset
107 persistent __go_close_all_registered__;
6298
4553ff6b7ec7 [project @ 2007-02-10 16:33:33 by jwe]
jwe
parents: 6289
diff changeset
108
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
109 cmd = gnuplot_binary ();
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
110
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
111 plot_stream = popen (cmd, "w");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
112
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
113 if (plot_stream < 0)
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
114 error ("drawnow: failed to open connection to gnuplot");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
115 else
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 (! isempty (h))
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
118 set (h, "__plot_stream__", plot_stream);
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
119 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
120
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
121 enhanced = init_plot_stream (plot_stream, h, varargin{:});
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
122
6425
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
123 if (isempty (__go_close_all_registered__))
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
124 atexit ("__go_close_all__");
0cc5ca7b1e91 [project @ 2007-03-21 15:57:19 by jwe]
jwe
parents: 6419
diff changeset
125 __go_close_all_registered__ = true;
6257
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
126 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
127
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
128 endif
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
129
44c91c5dfe1d [project @ 2007-01-30 19:16:52 by jwe]
jwe
parents:
diff changeset
130 endfunction
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
131
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
132 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
133
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
134 if (nargin == 4)
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
135 enhanced = enhanced_term (term);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
136 if (! isempty (term))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
137 if (enhanced)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
138 fprintf (plot_stream, "set terminal %s enhanced;\n", term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
139 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
140 fprintf (plot_stream, "set terminal %s;\n", term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
141 endif
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
142 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
143 if (! isempty (file))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
144 fprintf (plot_stream, "set output \"%s\";\n", file);
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
145 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
146 else
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
147
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
148 ## Guess the terminal type.
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
149 term = getenv ("GNUTERM");
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
150 if (isempty (term))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
151 if (! isempty (getenv ("DISPLAY")))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
152 term = "x11";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
153 elseif (! isunix ())
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
154 term = "windows";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
155 else
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
156 ## 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
157 ## 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
158 ## 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
159 ## using windows. Those diehards still running octave from
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
160 ## 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
161 term = "aqua";
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
162 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
163 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
164
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
165 enhanced = enhanced_term (term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
166 if (enhanced)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
167 enh_str = "enhanced";
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
168 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
169 enh_str = "";
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
170 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
171
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
172 ## 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
173 if (isempty (h))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
174 h = 0;
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
175 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
176
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
177 if (strcmp (term, "x11"))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
178 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
179 enh_str, h);
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
180 elseif (strcmp (term, "aqua"))
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
181 ## 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
182 ## gnuplot 4.2 documentation says.
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
183 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
184 elseif (strcmp (term, "wxt"))
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
185 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
186 enh_str, h);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
187
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
188 elseif (enhanced)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
189 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
190 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
191 ## gnuplot will pick up the GNUTERM environment variable itself
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
192 ## 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
193 ## figure title or enhanced mode.
6870
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
194
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
195 endif
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
196
e2e5425905ac [project @ 2007-09-06 20:18:20 by jwe]
jwe
parents: 6866
diff changeset
197 endfunction
7189
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
198
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
199 function have_enhanced = enhanced_term (term)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
200 persistent enhanced_terminals;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
201
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
202 if (isempty (enhanced_terminals))
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
203 ## 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
204 ## should not be interpreted in that case.
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
205 if (compare_versions (__gnuplot_version__ (), "4.0", ">"))
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
206 enhanced_terminals = {"aqua", "dumb", "png", "jpeg", "gif", "pm", ...
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
207 "windows", "wxt", "svg", "postscript", "x11"};
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
208 else
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
209 enhanced_terminals = {"x11", "postscript"};
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
210 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
211 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
212
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
213 term = tolower (term);
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
214
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
215 have_enhanced = false;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
216 for i = 1 : length (enhanced_terminals)
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
217 t = enhanced_terminals{i};
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
218 if (strncmp (term, t, min (length (term), length(t))))
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
219 have_enhanced = true;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
220 break;
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
221 endif
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
222 endfor
e8d953d03f6a [project @ 2007-11-26 20:42:09 by dbateman]
dbateman
parents: 7017
diff changeset
223 endfunction