Mercurial > hg > octave-nkf
annotate scripts/miscellaneous/getappdata.m @ 20815:a260a6acb70f
fix test failures introduced by a22d8a2eb0e5
* scripts/ode/private/integrate_adaptive.m: fix stepping backwards, fix
invocation of OutputFcn, fix text of some error messages
* scripts/ode/private/integrate_const.m: remove use of option OutputSave
* scripts/ode/private/integrate_n_steps.m: remove use of option OutputSave
author | Carlo de Falco <carlo.defalco@polimi.it> |
---|---|
date | Sun, 11 Oct 2015 23:09:01 +0200 |
parents | e9f89866074c |
children |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19833
diff
changeset
|
1 ## Copyright (C) 2010-2015 Ben Abbott |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
2 ## |
17795
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3 ## This file is part of Octave. |
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4 ## |
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or |
11180 | 8 ## (at your option) any later version. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
9 ## |
17795
0a8c35ae5ce1
maint: Fix various problems with GPL copyright statements.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, |
11180 | 11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 ## GNU General Public License for more details. | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
14 ## |
11180 | 15 ## You should have received a copy of the GNU General Public License |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
19 ## -*- texinfo -*- | |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
20 ## @deftypefn {Function File} {@var{value} =} getappdata (@var{h}, @var{name}) |
16489
36dba9be680b
doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents:
14868
diff
changeset
|
21 ## @deftypefnx {Function File} {@var{appdata} =} getappdata (@var{h}) |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
22 ## Return the @var{value} of the application data @var{name} for the graphics |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
23 ## object with handle @var{h}. |
19790
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17795
diff
changeset
|
24 ## |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
25 ## @var{h} may also be a vector of graphics handles. If no second argument |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
26 ## @var{name} is given then @code{getappdata} returns a structure, |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
27 ## @var{appdata}, whose fields correspond to the appdata properties. |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16491
diff
changeset
|
28 ## |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
29 ## @seealso{setappdata, isappdata, rmappdata, guidata, get, set, getpref, setpref} |
11180 | 30 ## @end deftypefn |
31 | |
32 ## Author: Ben Abbott <bpabbott@mac.com> | |
33 ## Created: 2010-07-15 | |
34 | |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
35 function value = getappdata (h, name) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
36 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
37 if (nargin < 1 || nargin > 2) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
38 print_usage (); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
39 endif |
11180 | 40 |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
41 if (! all (ishandle (h(:)))) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
42 error ("getappdata: H must be a scalar or vector of graphic handles"); |
19794
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19793
diff
changeset
|
43 endif |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
44 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
45 if (nargin == 2) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
46 if (! ischar (name)) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
47 error ("getappdata: NAME must be a string"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
48 endif |
19794
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19793
diff
changeset
|
49 |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
50 value = cell (numel (h), 1); |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
51 appdata = struct (); |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
52 for i = 1:numel (h) |
19833
3da4b083e0b8
getappdata.m: fix output for multiple handles (bug #44097)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19794
diff
changeset
|
53 value{i} = []; |
3da4b083e0b8
getappdata.m: fix output for multiple handles (bug #44097)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19794
diff
changeset
|
54 pval = get (h(i)); |
20072
e9f89866074c
maint: Cleanup some .m files to follow Octave coding conventions.
John W. Eaton <jwe@octave.org>
parents:
19898
diff
changeset
|
55 if (isfield (pval, "__appdata__") && isfield (pval.__appdata__, name)) |
19833
3da4b083e0b8
getappdata.m: fix output for multiple handles (bug #44097)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19794
diff
changeset
|
56 value{i} = pval.__appdata__.(name); |
13243
f9aec0bcf826
getappdata: return empty matrix for nonexistent property names
John W. Eaton <jwe@octave.org>
parents:
13174
diff
changeset
|
57 endif |
13174
bd2cd4fd3edf
maint: use specific endif, endfor tokens instead of simple end
John W. Eaton <jwe@octave.org>
parents:
12642
diff
changeset
|
58 endfor |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
59 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
60 if (i == 1) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
61 value = value{1}; |
12597
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
62 endif |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
63 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
64 else # nargin == 1 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
65 if (numel (h) != 1) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
66 error ("getappdata: Only one handle H may be used when fetching appdata"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
67 endif |
12597
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
68 try |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
69 value = get (h, "__appdata__"); |
12597
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
70 catch |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
71 value = struct (); |
12597
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
72 end_try_catch |
11180 | 73 endif |
74 | |
75 endfunction | |
76 | |
19456
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
77 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
78 %!test |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
79 %! unwind_protect |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
80 %! setappdata (0, "%data1%", ones (3), "%data2%", "hello world"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
81 %! assert (getappdata (0, "%data1%"), ones (3)); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
82 %! assert (getappdata (0, "%data2%"), "hello world"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
83 %! appdata = getappdata (0); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
84 %! name1 = "%data1%"; name2 = "%data2%"; |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
85 %! assert (appdata.(name1), ones (3)); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
86 %! assert (appdata.(name2), "hello world"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
87 %! unwind_protect_cleanup |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
88 %! rmappdata (0, "%data1%", "%data2%"); |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
89 %! end_unwind_protect |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
90 |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
91 ## Test input validation |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
92 %!error getappdata () |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
93 %!error getappdata (1,2,3) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
94 %!error <H must be a scalar .* graphic handle> getappdata (-1, "hello") |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
95 %!error <NAME must be a string> getappdata (0, 1) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
96 %!error <Only one handle H may be used when fetching appdata> getappdata ([0 0]) |
f0dcb44826f6
Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents:
19047
diff
changeset
|
97 |