annotate scripts/plot/gnuplot_drawnow.m @ 9945:b4661b498a7e

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