# HG changeset patch # User Ben Abbott # Date 1223484927 14400 # Node ID ec1b4cd5fbbb3fe608f03cf20369ba388507c697 # Parent 5ac184c0581168c9c627fead187057dcf1d3bfb8 cla.m: Add matlab function cla(). diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2008-10-07 Ben Abbott + + * plot/cla.m: New function. + * plot/Makefile.in (SOURCES): Add it to the list. + 2008-10-07 John W. Eaton * miscellaneous/delete.m: Pass array of handles to __go_delete__. diff --git a/scripts/plot/Makefile.in b/scripts/plot/Makefile.in --- a/scripts/plot/Makefile.in +++ b/scripts/plot/Makefile.in @@ -82,6 +82,7 @@ barh.m \ box.m \ caxis.m \ + cla.m \ clf.m \ close.m \ closereq.m \ diff --git a/scripts/plot/cla.m b/scripts/plot/cla.m new file mode 100644 --- /dev/null +++ b/scripts/plot/cla.m @@ -0,0 +1,88 @@ +## Copyright (C) 2008 Ben Abbott +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} cla () +## @deftypefnx {Function File} {} cla ("reset") +## @deftypefnx {Function File} {} cla (@var{hax}) +## @deftypefnx {Function File} {} cla (@var{hax}, "reset") +## Delete the children of the current axes with visible handles. +## If @var{hax} is specified and is an axes object handle, operate on it +## instead of the current axes. If the optional argument @code{"reset"} +## is specified, also delete the children with hidden handles. +## @seealso{clf} +## @end deftypefn + +## Author: Ben Abbott +## Created: 2008-10-03 + +## PKG_ADD: mark_as_command cla + +function cla (varargin) + + if (nargin > 2) + print_usage (); + elseif (nargin > 1) + if (ishandle (varargin{1}) + && strcmp (get (varargin{1}, "type"), "axes") + && ischar (varargin{2}) && strcmpi (varargin{2}, "reset")) + oldhax = gca; + hax = varargin{1}; + do_reset = true; + else + print_usage (); + endif + elseif (nargin == 1) + if (ishandle (varargin{1}) + && strcmp (get (varargin{1}, "type"), "axes")) + oldhax = gca; + hax = varargin{1}; + do_reset = false; + elseif (ischar (varargin{1}) && strcmpi (varargin{1}, "reset")) + hax = gca; + oldhax = hax; + do_reset = true; + else + print_usage (); + endif + else + hax = gca; + oldhax = hax; + do_reset = false; + end + + if (do_reset) + hc = get (hax, "children"); + else + hc = findobj (get (hax, "children"), "flat", "visible", "on"); + hc = setdiff (hc, hax); + end + + ## Delete the children of the axis. + delete (hc); + + ## FIXME: The defaults should be "reset()" below, but so far there is + ## no method to determine the defaults, much less return an object's + ## properties to their default values. Instead make a close + ## approximation. + + axes (hax); + axis auto + + ## Set the current axis back to where it was upon entry. + axes (oldhax); + +endfunction