# A The dialog editor

The dialog editor is a GUI based tool for the definition of dialog windows (windows with controls). It supports the following phases of the definition of a GUI:

- Specifying the required controls
  Prototypes of controls are dragged to the target dialog window. They are moved to---roughly---the right location.
- Refining the controls
  The controls may be refined: specifying labels, sizes, fonts, items in menus, etc.
- Fixing the layout and size of the window
  The layout specification for the dialog window is established. The Dialog Editor guesses the layout intentions of the user and translates these into XPCE's dialog-window symbolic layout statements.
- Specifying behaviour
  Both internal behaviour and the link to the application may be established using graphics. The dialog may be tested, while graphical animation illustrates how user-actions are processed and transferred to the application.
- Generation of code
  A Prolog description of the dialog window is realised by dragging the dialog from the list of dialog-windows to a PceEmacs window running in Prolog mode.
- Linking the dialog in the application
  The generated code is a clause of the predicate dialog/2. The first argument of this clause identifies the dialog, while the second arguments describes the structure and behaviour of the dialog. The body is empty. The library predicate make_dialog/2 is used to create a dialog window from the description of dialog/2.

## Section Index