Mercurial > octave-nkf
diff scripts/plot/private/__uiobject_split_args__.m @ 13284:5ab9c721ce59
Add uicontrol and uipanel m-scripts.
* scripts/plot/uicontrol.m: New file
* scripts/plot/uipanel.m: Likewise.
* scripts/plot/private/__uiobject_split_args__.m: Likewise.
* scripts/plot/modules.mk (plot_PRIVATE_FCN_FILES): Add
__uiobject_split_args__.m.
(plot_FCN_FILES): Add uicontrol.m and uipanel.m.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Thu, 06 Oct 2011 23:39:05 +0100 |
parents | |
children | 22ce748da25f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/plot/private/__uiobject_split_args__.m Thu Oct 06 23:39:05 2011 +0100 @@ -0,0 +1,63 @@ +## Copyright (C) 2011 Michael Goffioul +## +## 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 3 of the License, 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, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {[@var{p}, @var{args}] =} __uiobject_split_args__ (@var{who}, @dots{}) +## @end deftypefn + +## Author: goffioul + +function [parent, args] = __uiobject_split_args__ (who, varargin) + + parent = []; + args = {}; + offset = 1; + + if (nargin > 1) + if (ishandle (varargin{1})) + parent = varargin{1}; + offset = 2; + elseif (! ischar (varargin{1})) + error ("%s: invalid parent handle.", who); + endif + + if (nargin > offset) + args = varargin(offset:end); + endif + endif + + if (! isempty (args)) + i = find (strcmpi (args(1:2:end), "parent"), 1, "first"); + if (! isempty (i) && length (args) >= 2*i) + parent = args{2*i}; + if (! ishandle (parent)) + error ("%s: invalid parent handle.", who); + endif + args([2*i-1, 2*i]) = []; + endif + endif + + if (! isempty (parent)) + if (isempty (find (strcmpi (get (parent, "type"), {"figure", "uipanel", "uibuttongroup"})))) + error ("%s: invalid parent, the parent must be a figure, uipanel or uibuttongroup handle", who); + endif + else + parent = gcf (); + endif + +endfunction