SLIK (Simple Lisp Interface Kit) is a CLOS-based GUI toolkit that provides a thin abstraction layer over CLX. SLIK is part of PRISM, a radiation therapy planning system developed at Radiation Oncology Department, University of Washington, Seattle.

Both source code and documentation are available. You can also download the entire PRISM system, which includes SLIK, and of course includes lots of examples.

Although it was originally developed for Allegro CL, SLIK also compiles and runs with CMUCL. There seem to be problems that prevent SLIK from running with CLISP, but more investigation is needed.

N.B. The latest version no longer uses OpenGL and does not require the Mesa3D libraries. It will work with CLISP provided the CLX symbols are exported from the XLIB package.

The main advantages of SLIK are:

  • ease of use
  • limited footprint
  • since the removal of OpenGL code, the entire remaining code is available under the Lisp Lesser GNU Public License (LLGPL).
A few disadvantages:
  • widgets have a simple look more similar to that of a control panel rather than that of modern user interface toolkits. However, the look and feel of the widgets can be somewhat customised with parameter changes.
  • only basic widgets are available (add more and send the code back to UW - they will add it in)

Bugs in the demos

The previously noted bug concerning the handling of graphic contexts in the demos has been fixed, and the manual now explains how graphic contexts are obtained from named colors.

The sample2 demo has another bug with CMUCL: when the needle of the dialbox is turned to an angle greater than 90 degrees, the program crashes. This is due to a wrong declaration statement [which declaration?] in the drawing function. Commenting out the declaration should fix the bug.

Quick assessment (2024-05-05)

Screenshot of SLIK demo