| Allegro CL version 10.0 Unrevised from 9.0 to 10.0. 9.0 version |
A non-instantiable class that can be mixed with the grid-column
class to
create grid columns whose cells act like combo-box
controls. Each cell in
the column will implement the pseudo-control if the row of that cell
is an instance of a grid-row
subclass that mixes in the
widget-row-mixin
class.
Instances of this may use real combo-boxes or simulations
(such as pop-up menus). Which is used depends on the value of the
use-real-combo-box property.
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-combo-box-column (combo-box-column-mixin my-subclass-of-grid-column) ...)
The draw-cell method provided by this mixin will call read-cell-value to find the value to draw in the cell, and then call the column's data-read-converter function to convert the value to the actual string to draw.
When the user clicks on the down-arrow gadget displayed in the cell,
the cell-click
method provided by this mixin displays a list of choices and calls
write-cell-value
with the new choice if the user selects one. When the user clicks
anywhere else in the cell, other properties of the grid-column
determine whether this
gesture displays the list of choices, initiates type-in, or does
nothing. The user may alternately press the spacebar to emulate
clicking on the down-arrow or the enter key to emulate clicking
elsewhere in the cell.
The typable property of the column may be used to indicate whether the user may optionally type in a new value directly. When the typable property is true, the edit-start-trigger and edit-end-trigger properties of the column may be used to determine what gesture the user must make to initiate and complete the typing in of a new value for the cell. This type of column may also be given a template-string to restrict what the user may enter.
The range-reader property should be used to determine the set of choices that will be presented in each cell's drop-down list. The on-print property may be used to convert the choices to strings to be displayed in the cell's drop-down list (though the column's data-read-converter is called to convert the cell's actual value to the string displayed in the cell).
The click-must-be-on-gadget property
may be used to determine where the user must click within the cell to
display the list of choices when the typable property is nil
. (When typable is true, the user must
always click on the drop-down arrow to show the list of choices, since
clicking elsewhere in the cell initiates type-in instead.)
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.
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 9.0 page.
Created 2015.5.21.
| Allegro CL version 10.0 Unrevised from 9.0 to 10.0. 9.0 version |