- Common Lisp 100%
Simple Wizard dialog framework for LispWorks
Introduction
In the lack of build-in support for Wizard dialogs in CAPI I've implemented a simple wizard library inspired by Qt's QWizard classes. The aim was to create a simple wizard "framework" to be able to quickly configure delivered apps.
Usage
Put it to some QL/ASDF aware location in your source tree (I bet you know how to do it already).
(ql:quickload "lw-wizard")
To run examples, load the demo system:
(ql:quickload "lw-wizard-demo")
Then run:
(lw.wizard.demo:simple-wizard-main)
And
(lw.wizard.demo:license-wizard-main)
These examples replicates relevant examples in Qt's documentation; see it for details.
The file simple-wizard.lisp implements simple wizard example; license-wizard.lisp implements
license wizard example.
Differences from Qt examples:
- No pixmap/logo/etc support
- No tags/rich text in labels (unless package rich-text is loaded)
- No "Print" button or custom buttons in License wizard.
But it works! See the example sources for usage and details. In contrast to Qt, the design is based on callbacks rather than subclassing.
wizard-start function wasn't tested on OSX, should be wrapped with some OSX-related CAPI dialog
macros.
Some limitations and notes.
Field types
Registered field types currently supported are:
capi:text-input-pane(including mandatory)capi:check-button(including mandatory)capi:radio-button-panel
Validation
The callbacks on-enter and on-leave could not be used for validation, yet.
For custom validation, subclass the class wizard-page and overload the method lw.wizard:page-complete-p
More examples
See setup-wizard for inspiration.