Mercurial > octave
changeset 21825:f1f17f13b3b9
Add dialog function (Bug #48136)
* scripts/gui/dialog.m: new file
* scripts/gui/module.mk: add dialog.m to installed files
* doc/interpreter/gui.txi: add dialog to i/o dialogs help section
author | John Donoghue <john.donoghue@ieee.org> |
---|---|
date | Sun, 05 Jun 2016 16:17:31 -0400 |
parents | 6780a8657be3 |
children | f3455f8ff86d |
files | doc/interpreter/gui.txi scripts/gui/dialog.m scripts/gui/module.mk |
diffstat | 3 files changed, 130 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/gui.txi Thu May 05 20:03:26 2016 +0100 +++ b/doc/interpreter/gui.txi Sun Jun 05 16:17:31 2016 -0400 @@ -85,6 +85,11 @@ @cindex dialog, displaying a warning dialog @DOCSTRING(warndlg) +For creating new dialog types, there is a dialog function. + +@cindex dialog, displaying a modal dialog +@DOCSTRING(dialog) + @node Progress Bar @section Progress Bar @cindex Progress Bar
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/gui/dialog.m Sun Jun 05 16:17:31 2016 -0400 @@ -0,0 +1,124 @@ +## Copyright (C) 2016 John Donoghue +## +## 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 {} {@var{h} = } dialog (@dots{}, "@var{property}", @var{value}, @dots{}) +## +## Create an empty modal dialog window that other uicontrols can be added to. +## +## The dialog box is a figure object with properties as recommended for a dialog box. +## +## The default properties differing from a figure are: +## +## @table @asis +## @item buttondownfcn +## @code{if isempty(allchild(gcbf)), close(gcbf), end} +## +## @item colormap +## [] +## +## @item color +## defaultuicontrolbackgroundcolor +## +## @item dockcontrols +## off +## +## @item handlevisibility +## callback +## +## @item integerhandle +## off +## +## @item inverthardcopy +## off +## +## @item menubar +## none +## +## @item numbertitle +## off +## +## @item paperpositionmode +## auto +## +## @item resize +## off +## +## @item visible +## on +## +## @item windowstyle +## modal +## +## @end table +## +## +## Multiple property-value pairs may be specified for the dialog object, but +## they must appear in pairs. +## +## The return value @var{h} is a graphics handle to the created figure. +## object. +## +## Examples: +## +## @example +## @group +## +## % create an empty dialog window titled 'Dialog Example' +## h = dialog ("name", "Dialog Example"); +## +## % create a button (default style) +## b = uicontrol (h, "string", "OK", "position",[10 10 150 40], "callback","delete(gcf)"); +## +## % wait for dialog to resume or close +## uiwait (h); +## +## @end group +## @end example +## +## @seealso{figure, uiwait} +## +## @end deftypefn + +## Author: jdonoghue + +function h = dialog (varargin) + + tmph = figure ( ... + "buttondownfcn", "if isempty(allchild(gcbf)), close(gcbf), endif", ... + "color", get(0,"defaultuicontrolbackgroundcolor"), ... + "colormap", [], ... + "dockcontrols", "off", ... + "handlevisibility", "callback", ... + "integerhandle", "off", ... + "inverthardcopy", "off", ... + "menubar", "none", ... + "numbertitle", "off", ... + "paperpositionmode", "auto", ... + "resize", "off", ... + "toolbar", "none", ... + "visible", "on", + "windowstyle", "modal", ... + varargin{:} ); + + if (nargout > 0) + h = tmph; + endif +endfunction + +
--- a/scripts/gui/module.mk Thu May 05 20:03:26 2016 +0100 +++ b/scripts/gui/module.mk Sun Jun 05 16:17:31 2016 -0400 @@ -13,6 +13,7 @@ scripts/gui/private/__uiputfile_fltk__.m scripts_gui_FCN_FILES = \ + scripts/gui/dialog.m \ scripts/gui/errordlg.m \ scripts/gui/guidata.m \ scripts/gui/guihandles.m \