Mercurial > hg > octave-lyh
changeset 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 | 5d3d802c772e |
children | cb9b60b1c9bb |
files | scripts/plot/module.mk scripts/plot/private/__uiobject_split_args__.m scripts/plot/uicontrol.m scripts/plot/uipanel.m |
diffstat | 4 files changed, 134 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
old mode 100644 new mode 100755 --- a/scripts/plot/module.mk +++ b/scripts/plot/module.mk @@ -46,7 +46,8 @@ plot/private/__quiver__.m \ plot/private/__scatter__.m \ plot/private/__stem__.m \ - plot/private/__tight_eps_bbox__.m + plot/private/__tight_eps_bbox__.m \ + plot/private/__uiobject_split_args__.m plot_FCN_FILES = \ plot/__gnuplot_drawnow__.m \ @@ -174,9 +175,11 @@ plot/trimesh.m \ plot/triplot.m \ plot/trisurf.m \ + plot/uicontrol.m \ plot/uigetdir.m \ plot/uigetfile.m \ plot/uimenu.m \ + plot/uipanel.m \ plot/uiputfile.m \ plot/view.m \ plot/waitforbuttonpress.m \
new file mode 100755 --- /dev/null +++ b/scripts/plot/private/__uiobject_split_args__.m @@ -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
new file mode 100755 --- /dev/null +++ b/scripts/plot/uicontrol.m @@ -0,0 +1,36 @@ +## 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{handle} =} uicontrol ('Name', value, @dots{}) +## @deftypefnx {Function File} {@var{handle} =} uicontrol (@var{parent}, 'Name', value, @dots{}) +## @deftypefnx {Function File} uicontrol (@var{handle}) +## @end deftypefn + +## Author: goffioul + +function handle = uicontrol (varargin) + + if (nargin == 1 && ishandle (varargin{1}) && strcmpi (get (varargin{1}, "type"), "uicontrol")) + error ("uicontrol focusing not implemented yet."); + else + [h, args] = __uiobject_split_args__ ("uicontrol", varargin{:}); + handle = __go_uicontrol__ (h, args{:}); + endif + +endfunction
new file mode 100755 --- /dev/null +++ b/scripts/plot/uipanel.m @@ -0,0 +1,31 @@ +## 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{handle} =} uipanel ('Name', value, @dots{}) +## @deftypefnx {Function File} {@var{handle} =} uipanel (@var{parent}, 'Name', value, @dots{}) +## @end deftypefn + +## Author: goffioul + +function handle = uipanel (varargin) + + [h, args] = __uiobject_split_args__ ("uipanel", varargin{:}); + handle = __go_uipanel__ (h, args{:}); + +endfunction