| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |
A grid-column
that is an instance of this class allows the user to select and/or
move grid-row
s
by clicking the cells where they cross the grid-column
. The selectable property of a row must
also be true before the row may be interactively selected, and the
movable property
of a row must also be true before the row may be interactively moved.
In other words, a row may be interactively selected at a particular
cell if the row is a selectable one and the column at
that cell is an instance of row-selecting-column-mixin
; and
(likewise) a row may be interactively moved (among the rows in its
grid-row-section
)
at a particular cell if the row is a movable one and the column at that
cell is an instance of row-selecting-column-mixin
.
This feature is typically used only in a grid-column
that serves as a set of
row headers, so that the special row-selecting and/or -moving behavior
does not override other cell-click behavior in the body of
the grid-widget
. Nevertheless, it may
sometimes be desirable to use this class for multiple columns of a
grid.
The user uses this feature by moving the mouse cursor into a cell in a
selectable or
movable
grid-row
where it crosses a
row-selecting-column-mixin column. The user may click and drag
vertically in this cell to reposition the grid-row
, or click and release
without moving the mouse more than *start-drag-slack*
pixels to toggle
the selected
property of the row. When the mouse button is released after a drag,
the row is positioned among the rows in its grid-row-section
so that it is just
below all of the rows whose vertical centers are above the final
vertical center of the drag box (this should be intuitive). A drag
may be canceled either by pressing the Escape key before releasing the
mouse button or by releasing the mouse button while the drag box is
positioned where the row would snap back to where it was already.
An individual selectable grid-row
may be added to the
current set of selected rows in its grid-row-section
by holding down the
control key while clicking the row; if the row is already selected,
then this deselects the row instead. If the shift key is held down
while clicking a selectable row, then the range of
rows that just encompasses all of the rows that were already selected
plus the row that was clicked are then left in a selected state
(regardless of their selected state beforehand).
This class must be mixed with grid-column
(or one of its subclasses)
to make an instantiable class. It is best to specify such mixin
classes ahead of the grid-column
class in the list of superclasses for
a new class, so that the small amount of special behavior from the
mixin class will override the more general behavior of the grid-column
class. For
example:
(defclass my-row-selecting-column (row-selecting-column-mixin grid-column)())
The above default mouse click behavior may be overridden by custom cell-click methods.
For an example of row-selecting-column-mixin
, see the
Navigator
dialog example (on the Examples tab) entitled "Grid-Widget: a
basic replicated editable-text column". See also the class row-header-column
,
which combines this class with row-sizing-column-mixin
and grid-column
for use as
a typical column of row headers.
See also slide-subsection.
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 |