# HG changeset patch
# User Ben Abbott
# Date 1223424696 14400
# Node ID 9b21d37cad7ac40f19a7f6d337b11d416cb00a3e
# Parent 9a0a66f650b179c6af41998e18dd2362cc6bc419
cla.m: Add matlab function cla().
diff -r 9a0a66f650b1 -r 9b21d37cad7a scripts/ChangeLog
--- a/scripts/ChangeLog Tue Oct 07 15:49:03 2008 +0200
+++ b/scripts/ChangeLog Tue Oct 07 20:11:36 2008 -0400
@@ -1,3 +1,7 @@
+2008-10-07 Ben Abbott
+
+ * plot/cla.m: Add matlab function cla().
+
2008-10-06 John W. Eaton
* plot/__add_datasource__.m, plot/__axes_limits__.m,
diff -r 9a0a66f650b1 -r 9b21d37cad7a scripts/plot/Makefile.in
--- a/scripts/plot/Makefile.in Tue Oct 07 15:49:03 2008 +0200
+++ b/scripts/plot/Makefile.in Tue Oct 07 20:11:36 2008 -0400
@@ -82,6 +82,7 @@
barh.m \
box.m \
caxis.m \
+ cla.m \
clf.m \
close.m \
closereq.m \
diff -r 9a0a66f650b1 -r 9b21d37cad7a scripts/plot/cla.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/cla.m Tue Oct 07 20:11:36 2008 -0400
@@ -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 ()
+## Deletes the children of the current axis with visible handles.
+## @deftypefnx {Function File} {} cla ('reset')
+## Deletes all the children of the current axis, including the children
+## with hidden handles.
+## @deftypefnx {Function File} {} cla (@var{hax})
+## Deletes the children of axis @var{hax} with visible handles.
+## @deftypefnx {Function File} {} cla (@var{hax}, 'reset')
+## Deletes all the children of axis @var{hax}, including the children
+## with hidden handles.
+## @seealso{clf}
+## @end deftypefn
+
+## Author: Ben Abbott address@hidden
+## Created: 2008-10-03
+
+## PKG_ADD: mark_as_command cla
+
+function [ ] = cla (varargin)
+
+ if (nargin > 2)
+ usage ();
+ elseif nargin > 1
+ if (ishandle (varargin{1}) && strcmpi (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}) && strcmpi (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
+
+