Mercurial > hg > octave-lojdl
changeset 8199:ec1b4cd5fbbb
cla.m: Add matlab function cla().
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Wed, 08 Oct 2008 12:55:27 -0400 |
parents | 5ac184c05811 |
children | 837487bd3450 |
files | scripts/ChangeLog scripts/plot/Makefile.in scripts/plot/cla.m |
diffstat | 3 files changed, 94 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2008-10-07 Ben Abbott <bpabbott@mac.com> + + * plot/cla.m: New function. + * plot/Makefile.in (SOURCES): Add it to the list. + 2008-10-07 John W. Eaton <jwe@octave.org> * miscellaneous/delete.m: Pass array of handles to __go_delete__.
--- 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 \
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 +## <http://www.gnu.org/licenses/>. + +## -*- 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 <bpabbott@mac.com> +## 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