annotate scripts/miscellaneous/isappdata.m @ 20595:c1a6c31ac29a

eliminate more simple uses of error_state * ov-classdef.cc: Eliminate simple uses of error_state.
author John W. Eaton <jwe@octave.org>
date Tue, 06 Oct 2015 00:20:02 -0400
parents 4197fc428c7d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19731
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 19631
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 -*-
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
20 ## @deftypefn {Function File} {@var{valid} =} isappdata (@var{h}, @var{name})
11431
0d9640d755b1 Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents: 11180
diff changeset
21 ## Return true if the named application data, @var{name}, exists for the
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
22 ## graphics object with handle @var{h}.
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
23 ##
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
24 ## @var{h} may also be a vector of graphics handles.
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
25 ## @seealso{getappdata, setappdata, rmappdata, guidata, get, set, getpref, setpref}
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
26 ## @end deftypefn
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
27
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
28 ## Author: Ben Abbott <bpabbott@mac.com>
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
29 ## Created: 2010-07-15
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
30
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
31 function valid = isappdata (h, name)
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
32
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
33 if (nargin < 1 || nargin > 2)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
34 print_usage ();
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
35 endif
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
36
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
37 if (! all (ishandle (h(:))))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
38 error ("isappdata: 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
39 elseif (! ischar (name))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
40 error ("isappdata: NAME must be a string");
19631
db92e7e28e1f strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 19298
diff changeset
41 endif
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
42
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
43 valid = false (size (h));
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
44 for i = 1:numel (h)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
45 try
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
46 appdata = get (h(i), "__appdata__");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
47 if (isfield (appdata, name))
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
48 valid(i) = true;
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
49 endif
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
50 end_try_catch
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
51 endfor
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
52
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
53 endfunction
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
54
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
55
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
56 %!test
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
57 %! unwind_protect
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
58 %! setappdata (0, "%hello%", "world");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
59 %! assert (isappdata (0, "%hello%"), true);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
60 %! assert (isappdata ([0 0], "%hello%"), [true, true]);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
61 %! assert (isappdata (0, "%foobar%"), false);
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
62 %! unwind_protect_cleanup
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
63 %! rmappdata (0, "%hello%");
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
64 %! end_unwind_protect
11180
1a26199cb212 Add new appdata functions.
Ben Abbott <bpabbott@mac.com>
parents:
diff changeset
65
19298
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
66 ## Test input validation
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
67 %!error isappdata ()
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
68 %!error isappdata (1,2,3)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
69 %!error <H must be a scalar .* graphic handle> isappdata (-1, "hello")
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
70 %!error <NAME must be a string> isappdata (0, 1)
f0dcb44826f6 Overhaul appdata family of functions (getappdata, isappdata, rmappdata, setappdata).
Rik <rik@octave.org>
parents: 17795
diff changeset
71