Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
ret_obj = clo(obj, in1, in2)
CLO Clear object CLO(H) deletes all children of the object with visible handles. CLO(..., 'reset') deletes all children (including ones with hidden handles) and also resets all object properties to their default values. CLO(..., HSAVE) deletes all children except those specified in HSAVE. See also CLF, CLA, RESET, HOLD.
| This function is called by | |
|---|---|
function ret_obj = clo(obj, in1, in2)
% Copyright 1984-2000 The MathWorks, Inc.
% $Revision: 1.3 $ $Date: 2000/06/01 02:54:03 $
% decode input args:
hsave = [];
do_reset = '';
error(nargchk(1, 3, nargin));
if nargin > 1
if isstr(in1), do_reset = in1; else, hsave = in1; end
if nargin > 2
if isstr(in2), do_reset = in2; else, hsave = in2; end
end
end
% error-check input args
if ~isempty(do_reset)
if ~strcmp(do_reset, 'reset')
error('Unknown command option.')
else
do_reset = 1;
end
else
do_reset = 0;
end
if any(~ishandle(hsave))
error('Bad handle')
end
hsave = find_kids(obj, hsave);
kids_to_delete = [];
if do_reset
kids_to_delete = findobj(allchild(obj),'flat','serializable','on');
else
kids_to_delete = findobj(get(obj,'Children'),'flat',...
'HandleVisibility','on', 'serializable','on');
end
kids_to_delete = setdiff(kids_to_delete, hsave);
delete(kids_to_delete);
if do_reset, reset(obj(ishandle(obj))), end
% now that IntegerHandle can be changed by reset, make sure
% we're returning the new handle:
if (nargout ~= 0)
ret_obj = obj(ishandle(obj));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function hsave_out = find_kids(obj, hsave)
%
%
%
hsave_out = [];
for kid=hsave(:)'
while ~isempty(kid)
parent = get(kid,'parent');
if ~isempty(parent) & parent == obj
hsave_out(end + 1) = kid;
break;
else
kid = parent;
end
end
end