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 \