view doc/interpreter/gui.txi @ 20628:3af34e1ef330

Preliminary inclusion of uixx objects properties in the manual (bug #46076) * doc/interpreter/genpropdoc.m: add uixx objects to the list of supported graphics objects * doc/interpreter/genpropdoc.m (get_doc): add uixx objects and their specific properties (currently empty documentation) * doc/interpreter/plot.txi("Interacting with Plots"): add a note and a reference about ui* family of functions. * doc/interpreter/plot.txi("Interacting with Plots"): for consistency, remove "uimenu" reference. All the other uixx are already in the gui section * doc/interpreter/plot.txi("graphics data structure"): add uixx objects * doc/interpreter/gui.txi("UI Elements"): add "uimenu" function reference * doc/module.mk: add rules to build uixx properties texi files. * graphics.in.h: make uixx "__object__" property (Octave internal) hidden so that it does not appear in the documentation.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Fri, 09 Oct 2015 16:25:27 +0200
parents 21dbaf135667
children
line wrap: on
line source

@c Copyright (C) 2012-2015 Rik Wehbring
@c
@c This file is part of Octave.
@c
@c Octave is free software; you can redistribute it and/or modify it
@c under the terms of the GNU General Public License as published by the
@c Free Software Foundation; either version 3 of the License, or (at
@c your option) any later version.
@c
@c Octave is distributed in the hope that it will be useful, but WITHOUT
@c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@c FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
@c for more details.
@c
@c You should have received a copy of the GNU General Public License
@c along with Octave; see the file COPYING.  If not, see
@c <http://www.gnu.org/licenses/>.

@node GUI Development
@chapter GUI Development

Octave is principally a batch or command-line language.  However, it does
offer some features for constructing graphical interfaces that interact with
users.

The GUI elements available are I/O dialogs, a progress bar, and UI elements
for plot windows.  For example, rather than hardcoding a filename for output
results a script can open a dialog box and allow the user to choose a file.
Similarly, if a calculation is expected to take a long time a script can
display a progress bar.  The various UI elements can be used to fully customize
the plot window with menubars, context menus, 

Several utility functions make it possible to store private data for use with
a GUI which will not pollute the user's variable space.

Finally, a program written in Octave might want to have long term storage of
preferences or state variables.  This can be done with user-defined
preferences.

@menu
* I/O Dialogs::
* Progress Bar::
* UI Elements::
* GUI Utility Functions::
* User-Defined Preferences::
@end menu

@node I/O Dialogs
@section I/O Dialogs

Simple dialog menus are available for choosing directories or files.  They
return a string variable which can then be used with any command requiring
a file name.

@DOCSTRING(uigetdir)

@DOCSTRING(uigetfile)

@DOCSTRING(uiputfile)

@node Progress Bar
@section Progress Bar
@cindex Progress Bar

@DOCSTRING(waitbar)

@node UI Elements
@section UI Elements

The @nospell{ui*} series of functions work best with the @code{qt} graphics
toolkit, although some functionality is available with the @code{fltk} toolkit.
There is no support for the @code{gnuplot} toolkit.

@DOCSTRING(uimenu)

@DOCSTRING(uicontextmenu)

@DOCSTRING(uicontrol)

@DOCSTRING(uipanel)

@DOCSTRING(uipushtool)

@DOCSTRING(uitoggletool)

@DOCSTRING(uitoolbar)

@node GUI Utility Functions
@section GUI Utility Functions

These functions do not implement a GUI element but are useful when developing
programs that do.  The functions @code{uiwait}, @code{uiresume}, and
@code{waitfor} are only available with the @code{qt} or @code{fltk} toolkits.

@DOCSTRING(desktop)

@DOCSTRING(guidata)

@DOCSTRING(guihandles)

@DOCSTRING(have_window_system)

@DOCSTRING(isguirunning)

@DOCSTRING(uiwait)

@DOCSTRING(uiresume)

@DOCSTRING(waitfor)

@node User-Defined Preferences
@section User-Defined Preferences

@DOCSTRING(getpref)

@DOCSTRING(setpref)

@DOCSTRING(addpref)

@DOCSTRING(rmpref)

@DOCSTRING(ispref)

@DOCSTRING(prefdir)

@DOCSTRING(preferences)