ClassPackage: cgToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version

row-sizing-column-mixin

A grid-column that is an instance of this class allows the user to interactively change the height of grid-rows where they cross the grid-column. The resizable property of a row must also be true before interactive resizing is possible for that row. In other words, a row may be interactively resized at a particular cell if the row is a resizable one and the column at that cell is an instance of row-sizing-column-mixin.

This feature is typically used only in a column that serves as a set of row headers, so that the special row-sizing mouse cursor does not appear frequently as the user moves the mouse over the body of the grid (which might be distracting), and/or to prevent the user from inadvertantly resizing a row slightly if they click too near a cell's border when they mean to click in its interior. Nevertheless, it may sometimes be desirable to use this class for multiple columns, or even every column, of a grid.

The user uses this feature by moving the mouse cursor to the bottom border of a cell in a resizable row where it crosses a row-sizing-column-mixin column. The mouse cursor will change to indicate where resizing may be initiated; this area ranges from the bottom edge of the border to *grid-border-mouse-slack* pixels above that. The user may click and drag vertically in this area to resize the grid-row. If the uniform-resizing property of the grid section is true, then all of the rows in the clicked grid-row-section will be sized to the specified size, though if the control key is held down then the behavior of the uniform-resizing property is reversed. The drag may be canceled either by pressing the Escape key before releasing the mouse button or by releasing the mouse button above the top of the row (which would otherwise makes its height be negative).

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-sizing-column (row-sizing-column-mixin grid-column)())

The above default mouse click behavior may be overridden by custom cell-click methods.

The height of a grid-row is stored as its section-size property. See also stretch-subsection.

See the grid-widget class for an overview of writing grid-widget code.


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.

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