Mercurial > octave
diff scripts/plot/__plt_get_axis_arg__.m @ 7215:dd88d61d443f
[project @ 2007-11-29 16:44:45 by jwe]
author | jwe |
---|---|
date | Thu, 29 Nov 2007 16:46:40 +0000 |
parents | a1dbe9d80eee |
children | 5389a52df87b |
line wrap: on
line diff
--- a/scripts/plot/__plt_get_axis_arg__.m Thu Nov 29 03:40:04 2007 +0000 +++ b/scripts/plot/__plt_get_axis_arg__.m Thu Nov 29 16:46:40 2007 +0000 @@ -20,13 +20,21 @@ ## Author: jwe -function [h, varargin] = __plt_get_axis_arg__ (caller, varargin) +function [h, varargin, narg] = __plt_get_axis_arg__ (caller, varargin) + + if (islogical (caller)) + nogca = caller; + caller = varargin{1}; + varargin(1) = []; + else + nogca = false; + endif if (nargin > 1 && length (varargin) > 0 && ishandle (varargin{1})) tmp = varargin{1}; obj = get (tmp); - if (strcmp (obj.type, "axes")) - h = tmp; + if (strcmp (obj.type, "axes") || strcmp (obj.type, "hggroup")) + h = ancestor (tmp, "axes"); varargin(1) = []; if (isempty (varargin)) varargin = {}; @@ -35,10 +43,19 @@ error ("%s: expecting first argument to be axes handle", caller); endif else - h = gca (); + f = get (0, "currentfigure"); + if (! isempty (f)) + h = get (f, 'currentaxes'); + elseif (nogca) + h = NaN; + else + h = gca (); + endif if (nargin < 2) varargin = {}; endif endif + narg = length (varargin); + endfunction