Mercurial > hg > octave-lyh
annotate scripts/miscellaneous/setappdata.m @ 17508:9b2443f97a3e
Merge the official development
author | LYH <lyh.kernel@gmail.com> |
---|---|
date | Thu, 26 Sep 2013 04:47:20 +0800 |
parents | eaab03308c0b |
children |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13174
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:
11563
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:
11563
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:
11563
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 -*- | |
18 ## @deftypefn {Function File} {} setappdata (@var{h}, @var{name}, @var{value}) | |
12575
d0b799dafede
Grammarcheck files for 3.4.1 release.
Rik <octave@nomad.inbox5.com>
parents:
11589
diff
changeset
|
19 ## Set the named application data to @var{value} for the object(s) with |
11563
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
20 ## handle(s) @var{h}. If the application data with the specified name does |
11180 | 21 ## not exist, it is created. |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
22 ## @seealso{getappdata, guidata, get, set, getpref, setpref} |
11180 | 23 ## @end deftypefn |
24 | |
25 ## Author: Ben Abbott <bpabbott@mac.com> | |
26 ## Created: 2010-07-15 | |
27 | |
28 function setappdata (h, varargin) | |
29 | |
30 if (! (all (ishandle (h)) && mod (numel (varargin), 2) == 0)) | |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
31 error ("setappdata: invalid input"); |
11180 | 32 endif |
33 | |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
34 for nh = 1:numel (h) |
11180 | 35 if (! isfield (get (h(nh)), "__appdata__")) |
36 addproperty ("__appdata__", h(nh), "any", struct ()); | |
13174
bd2cd4fd3edf
maint: use specific endif, endfor tokens instead of simple end
John W. Eaton <jwe@octave.org>
parents:
12575
diff
changeset
|
37 endif |
11180 | 38 appdata = get (h(nh), "__appdata__"); |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
39 for narg = 1:2:numel (varargin) |
11180 | 40 if (iscellstr (varargin{narg})) |
41 ## Handle cell arrays like set() does. | |
42 set (h(nh), "__appdata__", appdata); | |
43 setappdata (h(nh), vertcat (varargin{narg}', varargin{narg+1}'){:}); | |
44 appdata = get (h(nh), "__appdata__"); | |
45 elseif (ischar (varargin{narg})) | |
46 appdata.(varargin{narg}) = varargin{narg+1}; | |
47 else | |
11589
b0084095098e
missing semicolons in script files
John W. Eaton <jwe@octave.org>
parents:
11588
diff
changeset
|
48 error ("setappdata: invalid input"); |
11180 | 49 endif |
50 endfor | |
51 set (h(nh), "__appdata__", appdata); | |
52 endfor | |
53 | |
54 endfunction | |
55 | |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
56 |
11180 | 57 %!test |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
58 %! setappdata (0, "hello", "world"); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
59 %! assert (isappdata (0, "hello"), true); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
60 %! assert (getappdata (0, "hello"), "world"); |
11180 | 61 |