Mercurial > hg > octave-nkf
diff scripts/plot/__uiobject_init_figure__.in @ 6257:44c91c5dfe1d
[project @ 2007-01-30 19:16:52 by jwe]
author | jwe |
---|---|
date | Tue, 30 Jan 2007 19:16:55 +0000 |
parents | |
children | b649aa46950d |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/scripts/plot/__uiobject_init_figure__.in @@ -0,0 +1,58 @@ +## Copyright (C) 2005 John W. Eaton +## +## This file is part of Octave. +## +## Octave 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, or (at your option) +## any later version. +## +## Octave 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, write to the Free +## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +## 02110-1301, USA. + +## -*- texinfo -*- +## @deftypefn {Function File} {@var{f} =} __uiobject_init_figure__ (@var{f}) +## Create figure in __uiobject_list__ and make it the current figure. +## If @var{f} already exists, make it the current figure but don't +## reinitialize it. If @var{f} is not specified, allocate a new +## figure handle and initialize it. +## @end deftypefn + +## Author: jwe + +function f = __uiobject_init_figure__ (f) + + __uiobject_globals__; + + if (nargin == 0 || nargin == 1) + + if (nargin == 0) + if (isempty (__uiobject_figure_handles_free_list__)) + f = max (__uiobject_handles__) + 1; + else + f = __uiobject_figure_handles_free_list__(1); + __uiobject_figure_handles_free_list__(1) = []; + endif + endif + + __uiobject_handles__ = union (__uiobject_handles__, f); + + if (! ishandle (f)) + idx = __uiobject_alloc__ (); + __uiobject_list__(idx).handle = f; + __uiobject_list__(idx).object = __uiobject_figure_ctor__ (); + __uiobject_adopt__ (0, f); + endif + set (0, "currentfigure", f); + else + print_usage (); + endif + +endfunction