LPA Portable Dialog Manager

This document describes the Portable Dialog Manager (PDM) toolkit which is available for WIN-PROLOG, MacProlog and Quintus Prolog. The PDM provides a platform-independent interface between Prolog programs and the host machine's graphics user interface (GUI) dialog subsystem. Programs written with the PDM are directly portable between the Windows, Macintosh and Quintus Prolog platforms.


The Portable Dialog Manager provides the following benefits:

  • Supported by three Prolog implementations: WIN-PROLOG, Quintus Prolog and MacProlog32, giving portability across different hardware platforms, operating systems and GUI drivers.
  • Straightforward transfer across implementations due to total compatibility at both source-code and target-code levels.
  • Short development time through dialog generation from the minimum of detail and automatic placement of control items using a 'best fit' algorithm.
  • Quick re-design of dialog layouts using relative rather than absolute control item locations.
  • Personalised source terminology enabled by the ability to declare 'house presentation styles', and an extensible language for user-defined expressions.
  • Comprehensive set of examples including a generic database front-end builder and front-ends to ORACLE and Prolog stock databases.


The Portable Dialog Manager has the following features:

  • Different modes of invoking dialogs: Modal dialogs for presenting and gathering information; Modeless dialogs for activating processes.
  • Comprehensive set of control items: push buttons to control dialog behaviour; various forms of text fields including editable, non-editable, scrollable and non-scrollable; multiple choice lists presented as either scrollable list boxes or a grid of toggle buttons; single-choice lists presented as either scrollable list boxes, popup list boxes, or a grid of radio buttons; non-functional picture fields for displaying icons and bitmaps.
  • Attachment of Prolog-defined callback procedures to any combination of control fields: four pre-defined terminations - close, true, fail and abort; conditional termination used in password-style dialogs; mnemonic referencing of fields within callback procedures; continuous dialogs with general field updates; enabling and disabling of control fields.
  • Compile time programming hooks: abstraction of 'house presentation styles' (plain or based on other styles); horizontal and vertical gaps between adjacent fields simply controlled by the programmer; programmer-defined synonyms allow the use of their own terminology in source texts.