annotate scripts/plot/util/linkprop.m @ 20602:af5591ef9790 stable

__gnuplot_drawnow__.m: Use "screenpixelsperinch" instead of constant value (bug #46122).
author ederag <edera@gmx.fr>
date Tue, 06 Oct 2015 11:07:10 +0200
parents 9fc020886ae9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19731
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19631
diff changeset
1 ## Copyright (C) 2008-2015 David Bateman
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
2 ##
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
3 ## This file is part of Octave.
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
4 ##
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
8 ## your option) any later version.
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
9 ##
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
13 ## General Public License for more details.
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
14 ##
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
18
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
19 ## -*- texinfo -*-
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
20 ## @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, "@var{prop}")
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
21 ## @deftypefnx {Function File} {@var{hlink} =} linkprop (@var{h}, @{"@var{prop1}", "@var{prop2}", @dots{}@})
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
22 ## Link graphic object properties, such that a change in one is propagated to
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
23 ## the others.
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
24 ##
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
25 ## The input @var{h} is a vector of graphic handles to link.
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
26 ##
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
27 ## @var{prop} may be a string when linking a single property, or a cell array
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
28 ## of strings for multiple properties. During the linking process all
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
29 ## properties in @var{prop} will initially be set to the values that exist on
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
30 ## the first object in the list @var{h}.
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
31 ##
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
32 ## The function returns @var{hlink} which is a special object describing the
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
33 ## link. As long as the reference @var{hlink} exists the link between graphic
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
34 ## objects will be active. This means that @var{hlink} must be preserved in
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
35 ## a workspace variable, a global variable, or otherwise stored using a
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
36 ## function such as @code{setappdata}, @code{guidata}. To unlink properties,
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
37 ## execute @code{clear @var{hlink}}.
17122
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 14327
diff changeset
38 ##
eaab03308c0b doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents: 14327
diff changeset
39 ## An example of the use of @code{linkprop} is
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
40 ##
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
41 ## @example
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
42 ## @group
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
43 ## x = 0:0.1:10;
14327
4d917a6a858b doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
44 ## subplot (1,2,1);
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
45 ## h1 = plot (x, sin (x));
14327
4d917a6a858b doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
46 ## subplot (1,2,2);
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
47 ## h2 = plot (x, cos (x));
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
48 ## hlink = linkprop ([h1, h2], @{"color","linestyle"@});
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
49 ## set (h1, "color", "green");
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
50 ## set (h2, "linestyle", "--");
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
51 ## @end group
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
52 ## @end example
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
53 ##
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
54 ## @seealso{linkaxes}
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
55 ## @end deftypefn
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
56
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
57 function hlink = linkprop (h, prop)
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
58
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
59 if (nargin != 2)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
60 print_usage ();
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
61 endif
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
62
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
63 if (numel (h) < 2)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
64 error ("linkprop: H must contain at least 2 handles");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
65 elseif (! all (ishandle (h(:))))
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
66 error ("linkprop: invalid graphic handle in input H");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
67 endif
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
68
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
69 if (ischar (prop))
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
70 prop = {prop};
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
71 elseif (! iscellstr (prop))
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
72 error ("linkprop: PROP must be a string or cell string array");
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
73 endif
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
74
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
75 h = h(:)'; # set() prefers column vectors
19631
db92e7e28e1f strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 18763
diff changeset
76 ## Match all objects to the first one in the list before linking
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
77 for j = 1 : numel (prop)
19631
db92e7e28e1f strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 18763
diff changeset
78 set (h(2:end), prop{j}, get (h(1), prop{j}));
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
79 endfor
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
80
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
81 ## Add listeners to all objects
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
82 for i = 1 : numel (h)
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
83 for j = 1 : numel (prop)
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
84 addlistener (h(i), prop{j},
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
85 {@update_prop, [h(1:i-1),h(i+1:end)], prop{j}});
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
86 endfor
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
87 endfor
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
88
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
89 hlink = onCleanup (@() delete_linkprop (h, prop));
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
90
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
91 endfunction
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
92
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
93 function update_prop (h, ~, hlist, prop)
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
94 persistent recursion = false;
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
95
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
96 ## Don't allow recursion
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
97 if (! recursion)
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
98 unwind_protect
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
99 recursion = true;
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
100 set (hlist(ishandle (hlist)), prop, get (h, prop));
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
101 unwind_protect_cleanup
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
102 recursion = false;
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
103 end_unwind_protect
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
104 endif
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
105 endfunction
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
106
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
107 function delete_linkprop (hlist, prop)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
108
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
109 for i = 1 : numel (hlist)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
110 if (ishandle (hlist(i)))
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
111 for j = 1 : numel (prop)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
112 dellistener (hlist(i), prop{j}),
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
113 endfor
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
114 endif
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
115 endfor
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
116
8070
3b53b25e2550 Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff changeset
117 endfunction
17338
1c89599167a6 maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents: 17122
diff changeset
118
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
119
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
120 %!demo
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
121 %! clf;
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
122 %! x = 0:0.1:10;
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
123 %! subplot (1,2,1);
18763
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
124 %! h1 = plot (x, sin (x), 'r');
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
125 %! subplot (1,2,2);
18763
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
126 %! h2 = plot (x, cos (x), 'b');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
127 %! input ('Type <RETURN> to link plots');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
128 %! hlink = linkprop ([h1, h2], {'color', 'linestyle'});
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
129 %! input ('Type <RETURN> to change color');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
130 %! set (h1, 'color', 'green');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
131 %! input ('Type <RETURN> to change linestyle');
d1750be79dee linkaxes.m: Implement new function linkaxes.
Willem Atsma <willem.atsma@tanglebridge.com>
parents: 18757
diff changeset
132 %! set (h2, 'linestyle', '--');
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
133
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
134 %!test
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
135 %! hf1 = figure ("visible", "off");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
136 %! hl1 = plot (1:10, "or");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
137 %! hf2 = figure ("visible", "off");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
138 %! hl2 = plot (1:10, "-*g");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
139 %! hf3 = figure ("visible", "off");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
140 %! hl3 = plot (1:10, "-xb");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
141 %! unwind_protect
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
142 %! hlink = linkprop ([hl1, hl2, hl3], {"color", "linestyle"});
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
143 %! ## Test initial values taken from first object in list
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
144 %! assert (get (hl2, "color"), [1 0 0]);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
145 %! assert (get (hl3, "linestyle"), "none");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
146 %! ## Test linking
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
147 %! set (hl2, "color", "b");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
148 %! assert (get (hl1, "color"), [0 0 1]);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
149 %! assert (get (hl3, "color"), [0 0 1]);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
150 %! set (hl3, "linestyle", "--");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
151 %! assert (get (hl1, "linestyle"), "--");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
152 %! assert (get (hl2, "linestyle"), "--");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
153 %! ## Test linking of remaining objects after deletion of one object
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
154 %! delete (hl2);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
155 %! set (hl1, "linestyle", ":");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
156 %! assert (get (hl3, "linestyle"), ":");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
157 %! ## Test deletion of link
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
158 %! clear hlink;
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
159 %! set (hl1, "color", "g");
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
160 %! assert (get (hl3, "color"), [0 0 1]);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
161 %! unwind_protect_cleanup
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
162 %! close ([hf1 hf2 hf3]);
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
163 %! end_unwind_protect
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
164
19867
9fc020886ae9 maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19731
diff changeset
165 ## Test input validation
18757
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
166 %!error linkprop ()
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
167 %!error linkprop (1)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
168 %!error linkprop (1,2,3)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
169 %!error <H must contain at least 2 handles> linkprop (1, "color")
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
170 %!error <invalid graphic handle in input H> linkprop ([pi, e], "color")
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
171 %!error <PROP must be a string or cell string array> linkprop ([0, 0], 1)
e68788478aa1 linkprop.m: Overhaul function for performance and Matlab compatibility.
Rik <rik@octave.org>
parents: 17744
diff changeset
172