lego/src/SplitterVBT.i3


Copyright (C) 1994, Digital Equipment Corp.
<* PRAGMA LL *>
<* PRAGMA SUBTYPE *>
A SplitterVBT.T is a parent window that partitions its screen into a row or column of children windows, depending on the {\em axis} of the split, with adjusting bars between all children. The adjusting bars allow the user to adjust the allocation of screen real estate among the splitter's children, subject to the size constraints of each child.

A SplitterVBT is subclass of an HVSplit, but through the MultiSpit interface, only the ``interesting'' children of the HVSplit are exposed. That is, adjusting bars are never exposed to the client: they are inserted automatically when a new child is added, and removed as necessary. To access all children, including the adjusting bars, use the Split interface instead. The HVSplit routines Move, Adjust, FeasibleRange, AvailSize, and AxisOf can be used.

INTERFACE SplitterVBT;

IMPORT Axis, HVSplit, PaintOp, Pixmap;

TYPE
  <* SUBTYPE T <: MultiSplit.T *>
  T <: Public;
  Public = HVSplit.T OBJECT
           METHODS
             <* LL <= VBT.mu *>
             init (hv      : Axis.T;
                   size    : REAL      := DefaultSize;
                   op      : PaintOp.T := PaintOp.BgFg;
                   txt     : Pixmap.T  := Pixmap.Gray;
                   saveBits: BOOLEAN   := FALSE;
                   parlim  : INTEGER   := -1            ): T;
           END;
The call v.init(...) initializes v as a SplitterVBT with no children. See the HVSplit interface for an explanation of parameters saveBits and parlim. See the HVBar interface for an explanation of the size, op, and txt parameters.

CONST
  DefaultSize = 2.0;

END SplitterVBT.