# HG changeset patch # User Pantxo Diribarne # Date 1374187991 -7200 # Node ID 64d603f8bcd9aca791b57350a39e4272b8ff1044 # Parent 942d892524b35171d38353c207ef72446459065a __get_axis_args.m: search for 'parent' in property/value pairs and use it as fall back axes. diff -r 942d892524b3 -r 64d603f8bcd9 scripts/plot/__plt_get_axis_arg__.m --- a/scripts/plot/__plt_get_axis_arg__.m Thu Jul 18 22:17:35 2013 -0400 +++ b/scripts/plot/__plt_get_axis_arg__.m Fri Jul 19 00:53:11 2013 +0200 @@ -33,6 +33,11 @@ nogca = false; endif + + ## Search for parent property + charargs = cellfun (@ischar,varargin); + isparent = strcmp (lower (varargin(charargs)), "parent"); + ## Figure handles are integers, but object handles are non-integer, ## therefore ignore integer scalars. if (nargin > 1 && length (varargin) > 0 && isnumeric (varargin{1}) @@ -50,6 +55,22 @@ else error ("%s: expecting first argument to be axes handle", caller); endif + elseif (numel (varargin) > 1 && any (isparent)) + tmp = find (charargs); + idx = tmp(isparent)(1); + if (idx < numel (varargin) && ishandle (varargin{idx+1})) + tmp = varargin{idx+1}; + obj = get (tmp); + if ((strcmp (obj.type, "axes") && ! strcmp (obj.tag, "legend")) + || strcmp (obj.type, "hggroup")) + h = ancestor (tmp, "axes"); + varargin(idx:idx+1) = []; + else + error ("%s: expecting parent value to be axes handle", caller); + endif + else + error ("%s: expecting parent value to be axes handle", caller); + endif else f = get (0, "currentfigure"); if (isempty (f))