Mercurial > hg > octave-nkf
diff scripts/plot/isprop.m @ 17488:278ef6bd821d
isprop.m: Overhaul function.
* scripts/plot/isprop.m: Add note that input may also be an array of object
handles. Use variable names in error() messages. Avoid unnecessary catch
block in try/catch statement. Add %!error input validation tests.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 25 Sep 2013 11:57:10 -0700 |
parents | eaab03308c0b |
children |
line wrap: on
line diff
--- a/scripts/plot/isprop.m +++ b/scripts/plot/isprop.m @@ -17,8 +17,11 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {@var{res} =} isprop (@var{h}, @var{prop}) +## @deftypefn {Function File} {@var{res} =} isprop (@var{h}, "@var{prop}") ## Return true if @var{prop} is a property of the object with handle @var{h}. +## +## @var{h} may also be an array of handles in which case @var{res} will be a +## logical array indicating whether each handle has the property @var{prop}. ## @seealso{get, set} ## @end deftypefn @@ -26,23 +29,21 @@ function res = isprop (h, prop) - if (nargin < 1 || nargin > 2) + if (nargin != 2) print_usage (); endif if (! all (ishandle (h))) - error ("isprop: first input argument must be a handle"); + error ("isprop: H must be a graphics handle or vector of handles"); elseif (! ischar (prop)) - error ("isprop: second input argument must be string"); + error ("isprop: PROP name must be a string"); endif res = false (size (h)); - for n = 1:numel (res) - res(n) = true; + for i = 1:numel (res) try - v = get (h(n), prop); - catch - res(n) = false; + v = get (h(i), prop); + res(i) = true; end_try_catch endfor endfunction @@ -52,3 +53,9 @@ %!assert (isprop (0, "screenpixelsperinch"), true) %!assert (isprop (zeros (2, 3), "visible"), true (2, 3)) +%!error isprop () +%!error isprop (1) +%!error isprop (1,2,3) +%!error <H must be a graphics handle> isprop ({1}, "visible") +%!error <PROP name must be a string> isprop (0, {"visible"}) +