/cl-clue

The Common Lisp User Interface Environment (CLUE) is a portable system for user interface programming in Common Lisp. CLUE, which is based on the X Window System and the Common Lisp Object System (CLOS), extends the CLX interface to provide an architectural model for the construction of interactive Lisp applications. Modelled on the Xt toolkit library, CLUE could be described as a translation of the Xt “intrinsics” into the domain of Common Lisp and CLOS.

Primary LanguageCommon Lisp

Common Lisp User Interface Environment (CLUE)

Copyright (C) 1988, 1989, 1990 Texas Instruments Incorporated

Related Systems

CLUE relies upon two other systems — CLX and CLOS.

CLX, the Common Lisp X Interface, may be found in the X11 distribution from MIT (see lib/CLX/*). CLUE requires R3 CLX or later.

CLOS, the Common Lisp Object System, is a draft standard extension to ANSI Common Lisp for object-oriented programming. Xerox PCL (Portable Common Loops) is an implementation of CLOS which is available publicly at no cost by sending a request to CommonLoops.pa@xerox.com.

Installation

Use the functions compile-clue and load-clue in the file clue/defsystem.l. For Lisp machine users, this file also contains a defsystem definition, so that CLUE can be built via (make-system ‘clue).

IMPORTANT NOTE: CLUE requires CLX to use DEFCLASS for window and drawable types. How you accomplish this depends on which version of CLX you are using.

With R3 CLX, you must build CLX differently by compiling and loading clue/clos-patch.l immediately after the CLX/dependent.l file. See the functions compile-clos-clx and load-clos-clx functions in clue/defsystem.l.

R4 CLX will automatically use DEFCLASS for window, etc. if it is compiled in an environment containing CLOS. Thus, with R4 CLX, no changes are typically needed before building CLX. However, this depends upon parts of CLX which may be implementation-dependent (see def-clx-class in CLX/depdefs.l).

Examples

clue/examples/menu.l implements a simple pop-up menu and several related functions. See clue/doc/examples.text for a detailed description of these examples.

Documentation

The directory clue/doc/* contains several documents describing CLUE.

CLUE.PS, CLUE.TEX

The CLUE specification which defines all CLUE features. LaTeX and PostScript versions are included.

EXAMPLES.TEXT

Describes the example in clue/examples/menu.l. First-time readers should have first read The Quick and Dirty Guide To CLUE and should have some familiarity with the CLUE specification.

RELEASE.<release#>

Release notes for the current and previous versions of CLUE. The highest <release#> identifies the version of the software in these directories. The release notes contain important information which must be read before using CLUE.

TURBO-CLUE.PS, TURBO-CLUE.TEX

The Quick and Dirty Guide To CLUE. This tutorial introduces the novice CLUE programmer to the CLUE way of life with examples, advice, installation notes, and exercises. LaTeX and PostScript versions are included.

From the higher level director in the original distribution:

Common Lisp User Interface Environment (CLUE)

Copyright (C) 1988, 1989, 1990 Texas Instruments Incorporated

From the original release, higher level doc.

Welcome to CLUE and its companion systems! Included are the following subdirectories.

clue/clue

The Common Lisp User Interface Environment (CLUE) is a portable system for user interface programming in Common Lisp. CLUE, which is based on the X Window System and the Common Lisp Object System (CLOS), extends the CLX interface to provide an architectural model for the construction of interactive Lisp applications. Modelled on the Xt toolkit library, CLUE could be described as a translation of the Xt “intrinsics” into the domain of Common Lisp and CLOS.

clue/clio

Common Lisp Interactive Objects (CLIO) is a set of CLOS classes that represent the standard components of an object-oriented user interface — such as text, menus, buttons, scroller, and dialogs. CLIO is designed to be a portable system written in Common Lisp and based on CLX, CLUE, and CLOS. CLIO specifies an application progam interface that is look-and-feel independent. That is, the look-and-feel of CLIO components is encapsulated within the implementation of the CLIO interface. A sample implementation for OPEN LOOK (TM AT&T) is provided.

clue/pictures

Pictures is an object-oriented graphics package built on CLX, CLUE, and CLOS. Pictures provides a set of classes for creating, transforming, and interacting with hierarchical structures of 2D graphical primitives.

Notes on the new version:

  • Running demos:

(in-package :clue-example) (just-say-lisp nil) (pick-one nil)

New ASDF release: minor modernization (including tex docs), created an ASDF project.