# 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 + +