]> Creatis software - CreaPhase.git/blob - octave_packages/m/plot/axes.m
update packages
[CreaPhase.git] / octave_packages / m / plot / axes.m
1 ## Copyright (C) 2005-2012 John W. Eaton
2 ##
3 ## This file is part of Octave.
4 ##
5 ## Octave is free software; you can redistribute it and/or modify it
6 ## under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 3 of the License, or (at
8 ## your option) any later version.
9 ##
10 ## Octave is distributed in the hope that it will be useful, but
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 ## General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with Octave; see the file COPYING.  If not, see
17 ## <http://www.gnu.org/licenses/>.
18
19 ## -*- texinfo -*-
20 ## @deftypefn  {Function File} {} axes ()
21 ## @deftypefnx {Function File} {} axes (@var{property}, @var{value}, @dots{})
22 ## @deftypefnx {Function File} {} axes (@var{h})
23 ## Create an axes object and return a handle to it.
24 ## @end deftypefn
25
26 ## Author: jwe
27
28 function h = axes (varargin)
29
30   if (nargin == 0 || nargin > 1)
31     ## Create an axes object.
32     idx = find (strcmpi (varargin(1:2:end), "parent"), 1, "first");
33     if (! isempty (idx) && length (varargin) >= 2*idx)
34       cf = varargin{2*idx};
35       varargin([2*idx-1, 2*idx]) = [];
36     else
37       cf = gcf ();
38     endif
39     tmp = __go_axes__ (cf, varargin{:});
40     if (__is_handle_visible__ (tmp))
41       set (ancestor (cf, "figure"), "currentaxes", tmp);
42     endif
43   else
44     ## arg is axes handle.
45     tmp = varargin{1};
46     if (length(tmp) == 1 && ishandle (tmp)
47         && strcmp (get (tmp, "type"), "axes"))
48       if (__is_handle_visible__ (tmp))
49         parent = ancestor (tmp, "figure");
50         set (0, "currentfigure", parent);
51         set (parent, "currentaxes", tmp);
52       endif
53     else
54       error ("axes: expecting argument to be a scalar axes handle");
55     endif
56   endif
57
58   if (nargout > 0)
59     h = tmp;
60   endif
61
62 endfunction