Please enable JavaScript to view this site.

A-Shell Development History

XTREE enhancement: Add the new "property sheet" (aka "vertical") mode. This is specified by the new flag XTF2_PROPSHEET (&h00000800).

A "property sheet" is a control made up of two columns and a variable number of rows; the first column contains labels (attributes); the second column contains the data corresponding to the labels (attribute values).

There was nothing stopping you from previously implementing such a structure with a two-column XTREE. But it was difficult, if not impossible, to support a variety of different data formats (checkboxes, radio buttons, different widths of editable text, lists, etc.), since in the property sheet configuration, they would all be in the same column and the XTREE configuration scheme tends to limit each column to a single data format.

The XTF2_PROPSHEET option addresses this by effectively rotating the tree 90 degrees so that the columns (according to the coldef) are displayed as rows. The column titles become the row headers or labels.

But there are several limitations to keep in mind:

You are limited to a single row of data (which appears as a column). In fact, rather than specify an array of one item, you can just specify a singular structure (whose fields line up with the column definitions.) Since the usual object is to edit this structure, you can specify a copy of the same structure for the answer parameter (remember to set the XTF2_ANSEQDATA flag), or specify the same variable for both parameters.
You cannot define any hidden columns. (This includes the columns that would be needed to support any row-oriented features like row color, row font.
None of the following are supported: XTF_MSEL, XTF_DRAGDROP, XTF_REORD, XTF_SORT, XTF_MLVL, XTF_SPLIT.
Column colors (RBGbg, RGBfg) are not (yet) supported. But you can assign background colors to individual cells using cformat B.

See the EXLIB sample program XTRA15.BP for an example of property sheet mode.