Mercurial > hg > octave-lyh
annotate scripts/miscellaneous/getappdata.m @ 17498:a0014fa5cf63
Merge the official development
author | LYH <lyh.kernel@gmail.com> |
---|---|
date | Thu, 26 Sep 2013 02:22:02 +0800 |
parents | eaab03308c0b |
children |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13243
diff
changeset
|
1 ## Copyright (C) 2010-2012 Ben Abbott |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
2 ## |
11180 | 3 ## This program is free software; you can redistribute it and/or modify |
4 ## it under the terms of the GNU General Public License as published by | |
5 ## the Free Software Foundation; either version 2 of the License, or | |
6 ## (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
|
7 ## |
11180 | 8 ## This program is distributed in the hope that it will be useful, |
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 ## 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
|
12 ## |
11180 | 13 ## You should have received a copy of the GNU General Public License |
14 ## along with Octave; see the file COPYING. If not, see | |
15 ## <http://www.gnu.org/licenses/>. | |
16 | |
17 ## -*- texinfo -*- | |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
18 ## @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
|
19 ## @deftypefnx {Function File} {@var{appdata} =} getappdata (@var{h}) |
36dba9be680b
doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents:
14868
diff
changeset
|
20 ## |
12575
d0b799dafede
Grammarcheck files for 3.4.1 release.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
21 ## Return the @var{value} for named application data for the object(s) with |
11180 | 22 ## handle(s) @var{h}. |
16489
36dba9be680b
doc: Make documentation compatible with Texinfo 5.0 (bug #38392)
Amod Mulay <amodmulay1@gmail.com>
parents:
14868
diff
changeset
|
23 ## |
16491
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
24 ## @code{getappdata(@var{h})} returns a structure, @var{appdata}, whose fields |
b10a23fe80bb
doc: Tweak docstrings of functions changed for Texinfo 5.0 compatibility.
Rik <rik@octave.org>
parents:
16489
diff
changeset
|
25 ## correspond to the appdata properties. |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16491
diff
changeset
|
26 ## |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
16491
diff
changeset
|
27 ## @seealso{setappdata, guidata, get, set, getpref, setpref} |
11180 | 28 ## @end deftypefn |
29 | |
30 ## Author: Ben Abbott <bpabbott@mac.com> | |
31 ## Created: 2010-07-15 | |
32 | |
33 function val = getappdata (h, name) | |
34 | |
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
|
35 if (all (ishandle (h)) && nargin == 2 && ischar (name)) |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
36 ## FIXME - Is there a better way to handle non-existent appdata |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
37 ## and missing fields? |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
38 val = 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
|
39 appdata = struct (); |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
40 for nh = 1:numel (h) |
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
|
41 try |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
42 appdata = get (h(nh), "__appdata__"); |
13243
f9aec0bcf826
getappdata: return empty matrix for nonexistent property names
John W. Eaton <jwe@octave.org>
parents:
13174
diff
changeset
|
43 end_try_catch |
f9aec0bcf826
getappdata: return empty matrix for nonexistent property names
John W. Eaton <jwe@octave.org>
parents:
13174
diff
changeset
|
44 if (! isfield (appdata, name)) |
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
|
45 appdata.(name) = []; |
13243
f9aec0bcf826
getappdata: return empty matrix for nonexistent property names
John W. Eaton <jwe@octave.org>
parents:
13174
diff
changeset
|
46 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
|
47 val(nh) = {appdata.(name)}; |
13174
bd2cd4fd3edf
maint: use specific endif, endfor tokens instead of simple end
John W. Eaton <jwe@octave.org>
parents:
12642
diff
changeset
|
48 endfor |
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
|
49 if (nh == 1) |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
50 val = val{1}; |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
51 endif |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
52 elseif (ishandle (h) && numel (h) == 1 && nargin == 1) |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
53 try |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
54 val = get (h, "__appdata__"); |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
55 catch |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
56 val = struct (); |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
57 end_try_catch |
e12a7c0a1fc5
getappdata.m: If no property name is provided, return a structure representing the appdata.
Ben Abbott <bpabbott@mac.com>
parents:
12590
diff
changeset
|
58 else |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
59 error ("getappdata: invalid input"); |
11180 | 60 endif |
61 | |
62 endfunction | |
63 |