## 35 GUI Development

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

The GUI elements available are I/O dialogs and a progress bar. 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.

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.