annotate scripts/miscellaneous/rmappdata.m @ 20214:eba80000fa0d rc-4-0-0-2

maint: Bump version number for 4.0.0-rc2.
author John W. Eaton <jwe@octave.org>
date Fri, 20 Mar 2015 16:19:38 -0400
parents 4197fc428c7d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19898
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19794
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
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
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
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
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
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
18
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
19 ## -*- texinfo -*-
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
20 ## @deftypefn {Function File} {} rmappdata (@var{h}, @var{name})
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
21 ## @deftypefnx {Function File} {} rmappdata (@var{h}, @var{name1}, @var{name2}, @dots{})
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
22 ## Delete the application data @var{name} from the graphics object with handle
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
23 ## @var{h}.
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
24 ##
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
25 ## @var{h} may also be a vector of graphics handles. Multiple application data
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
26 ## names may be supplied to delete several properties at once.
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
27 ##
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
28 ## @seealso{setappdata, getappdata, isappdata}
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
29 ## @end deftypefn
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
30
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
31 ## Author: Ben Abbott <bpabbott@mac.com>
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
32 ## Created: 2010-07-15
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
33
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
34 function rmappdata (h, varargin)
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
35
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
36 if (nargin < 2)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
37 print_usage ();
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
38 endif
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
39
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
40 h = h(:).';
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
41 if (! all (ishandle (h)))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
42 error ("rmappdata: H must be a scalar or vector of graphic handles");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
43 elseif (! iscellstr (varargin))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
44 error ("rmappdata: NAME must be a string");
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
45 endif
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
46
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
47 for hg = h
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
48 if (isprop (hg, "__appdata__"))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
49 appdata = get (hg, "__appdata__");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
50 vld = isfield (appdata, varargin);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
51 if (! all (vld))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
52 ## FIXME: Should we bother to error out? Or just silently continue?
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
53 missing = varargin{find (! vld, 1)};
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
54 error ("rmappdata: appdata '%s' is not present", missing);
19794
db92e7e28e1f strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 19456
diff changeset
55 endif
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
56 appdata = rmfield (appdata, varargin);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
57 set (hg, "__appdata__", appdata);
15331
aaf938d17e0c Verify appdata exists before removing a propery. Also verify the property
Philip Nienhuis <philipnienhuis>
parents: 14868
diff changeset
58 endif
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
59 endfor
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
60
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
61 endfunction
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
62
17338
1c89599167a6 maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents: 15331
diff changeset
63
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
64 %!test
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
65 %! setappdata (0, "%hello%", "world");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
66 %! rmappdata (0, "%hello%");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
67 %! assert (isappdata (0, "%hello%"), false);
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
68
15331
aaf938d17e0c Verify appdata exists before removing a propery. Also verify the property
Philip Nienhuis <philipnienhuis>
parents: 14868
diff changeset
69 %!test
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
70 %! setappdata (0, "%data1%", ones (3));
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
71 %! setappdata (0, "%data2%", {"hello", "world"});
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
72 %! rmappdata (0, "%data1%", "%data2%");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
73 %! assert (isappdata (0, "%data1%"), false);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
74 %! assert (isappdata (0, "%data2%"), false);
15331
aaf938d17e0c Verify appdata exists before removing a propery. Also verify the property
Philip Nienhuis <philipnienhuis>
parents: 14868
diff changeset
75
19456
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
76 ## Test input validation
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
77 %!error rmappdata ()
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
78 %!error rmappdata (1)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
79 %!error <H must be a scalar .* graphic handle> rmappdata (-1, "hello")
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
80 %!error <NAME must be a string> rmappdata (0, 1)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
81 %!error <appdata 'foobar' is not present> rmappdata (0, "foobar")
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
82