Mercurial > hg > octave-lyh
annotate scripts/plot/linkprop.m @ 10791:3140cb7a05a1
Add spellchecker scripts for Octave and run spellcheck of documentation
interpreter/doccheck: New directory for spelling/grammar scripts.
interpreter/doccheck/README: Instructions for using scripts.
interpreter/doccheck/spellcheck: Script to spellcheck a Texinfo file.
interpreter/doccheck/aspell.conf: GNU Aspell configuration file for
Octave documentation.
interpreter/doccheck/aspell-octave.en.pws: Private Aspell dictionary.
interpreter/doccheck/add_to_aspell_dict: Script to add new
Octave-specific words to
private Aspell dictionary.
interpreter/octave.texi: New @nospell macro which forces Aspell
to ignore the word marked by the macro.
interpreter/mk_doc_cache.m: Skip new @nospell macro when building
doc_cache.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sat, 17 Jul 2010 19:53:01 -0700 |
parents | 95c3e38098bf |
children | fd0a3ac60b0e |
rev | line source |
---|---|
9245 | 1 ## Copyright (C) 2008, 2009 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 -*- |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
20 ## @deftypefn {Function File} {@var{hlink} =} linkprop (@var{h}, @var{prop}) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
21 ## Links graphics object properties, such that a change in one is |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8190
diff
changeset
|
22 ## propagated to the others. The properties to link are given as a |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
23 ## string of cell string array by @var{prop} and the objects containing |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
24 ## these properties by the handle array @var{h}. |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
25 ## |
10791
3140cb7a05a1
Add spellchecker scripts for Octave and run spellcheck of documentation
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
26 ## An example of the use of linkprop is |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
27 ## |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
28 ## @example |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
29 ## @group |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
30 ## x = 0:0.1:10; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
31 ## subplot (1, 2, 1); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
32 ## h1 = plot (x, sin (x)); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
33 ## subplot (1, 2, 2); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
34 ## h2 = plot (x, cos (x)); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
35 ## hlink = linkprop ([h1, h2], @{"color","linestyle"@}); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
36 ## set (h1, "color", "green"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
37 ## set (h2, "linestyle", "--"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
38 ## @end group |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
39 ## @end example |
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 ## @end deftypefn |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
42 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
43 function hlink = linkprop (h, prop) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
44 if (ischar (prop)) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
45 prop = {prop}; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
46 elseif (!iscellstr (prop)) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
47 error ("linkprop: properties must be a string or cell string array"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
48 endif |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
49 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
50 for i = 1 : numel (h) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
51 for j = 1 : numel (prop) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
52 addlistener (h(i), prop{j}, {@update_prop, h, prop{j}}); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
53 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
54 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
55 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
56 ## This should be an object that when destroyed removes the links |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
57 ## The below is not quite right. As when you call "clear hlink" the |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
58 ## hggroup continues to exist. |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
59 hlink = hggroup (); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
60 set (hlink, "deletefcn", {@delete_prop, h, prop}); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
61 endfunction |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
62 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
63 function update_prop (h, d, hlist, prop) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
64 persistent recursion = false; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
65 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
66 ## Don't allow recursion |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
67 if (! recursion) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
68 unwind_protect |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
69 recursion = true; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
70 val = get (h, prop); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
71 for hh = hlist(:)' |
10549 | 72 if (hh != h) |
73 oldval = get (hh, prop); | |
74 if (! isequal (val, oldval)) | |
75 set (hh, prop, val); | |
76 endif | |
77 endif | |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
78 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
79 unwind_protect_cleanup |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
80 recursion = false; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
81 end_unwind_protect |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
82 endif |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
83 endfunction |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
84 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
85 function delete_prop (h, d, hlist, prop) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
86 ## FIXME. Actually need to delete the linked properties. |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
87 ## However, only warn if the graphics objects aren't being deleted. |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
88 warn = false; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
89 for h = hlist(:)' |
8190
73d6b71788c0
use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents:
8070
diff
changeset
|
90 if (ishandle (h) && !strcmpi (get (h, "beingdeleted"), "on")) |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
91 warn = true; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
92 break; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
93 endif |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
94 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
95 if (warn) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
96 warning ("linkprop: can not remove linked properties"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
97 endif |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
98 endfunction |