| Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version | ||||||||||
A non-instantiable class that can be mixed with the grid-column class to create grid
columns whose cells draw lamp widgets. Each cell in the column will
display a lamp if the row of that cell is an instance of a grid-row subclass that mixes in the
widget-row-mixin class.
To ensure that this mixin class' methods take precedence over other methods that specialize on grid-column, this mixin class generally should appear first in a defclass expression's list of superclasses, as in:
(defclass my-lamp-column (lamp-column-mixin my-subclass-of-grid-column) ...)
The draw-cell method provided
by this mixin will draw (in each cell) the single lamp widget that is
the value of the lamp-widget
property of the grid column. It will call read-cell-value to determine the state of the
lamp (off, on, or blinking) in each cell. The grid column may be given
a data-read-converter function
to convert arbitrary application values into corresponding lamp state
values (nil, t, and
:blinking).
The grid column may be given a title-reader property to determine the string to
display in each lamp cell. If there is no title-reader function or it returns nil, then no label will be displayed beside the lamp
image (and the lamp image will be centered within the grid cell).
Here is a typical expression for creating a lamp grid column. It
assumes that the data-object of each grid-row has a slot called danger-level
containing one of the values :low,
:moderate, or :high.
(make-instance 'my-lamp-column
:name :danger-level
:proportional nil
:section-size 24
:data-reader 'danger-level
:data-read-converter (lambda (user-value)
(case user-value
(:low nil)
(:moderate t)
(:high :blinking)))
:lamp-widget (make-instance 'lamp
:on-color red
:lamp-shape :triangle
:lamp-width 16
:lamp-height 12))
The Employee grid example in the Navigator Dialog includes a lamp column.
See the section Built-In Grid Cell Widgets on the page for the
grid-widget class for an
overview of the grid column mixins.
A quicker but less object-oriented alternative to using the widget-column-mixin classes is to
write cell-widget methods.
See the lamp widget.
Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.1 page.
Created 2010.1.21.
| Allegro CL version 8.2 Unrevised from 8.1 to 8.2. 8.1 version | ||||||||||