annotate scripts/plot/drawnow.m @ 11758:7cc783e52ddb release-3-0-x

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