ClassPackage: cgToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.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-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version