Copyright (C) 1994, Digital Equipment Corp.
by Steve Glassman, Mark Manasse and Greg Nelson
<*PRAGMA LL*>
INTERFACE MouseSplit;
The procedures in this interface implement the semantics described
in the VBT interface for delivering mouseclicks and positions to
split children, and for setting the cursor and cage of a split
parent.
IMPORT VBT, ScrnCursor, VBTClass;
TYPE Public = VBTClass.Public OBJECT
<* LL >= SELF *>
effectiveCursor: ScrnCursor.T := NIL;
<* LL >= {SELF, VBT.mu} *>
mouseRef: MouseRef := NIL
END;
TYPE MouseRef <: REFANY;
REVEAL VBT.Split <: Public;
PROCEDURE Mouse(v: VBT.Split; READONLY cd: VBT.MouseRec);
PROCEDURE Position(v: VBT.Split; READONLY cd: VBT.PositionRec);
PROCEDURE Setcage(v: VBT.Split; ch: VBT.T);
PROCEDURE Setcursor(v: VBT.Split; ch: VBT.T);
PROCEDURE Getcursor(v: VBT.Split): ScrnCursor.T;
PROCEDURE InvalidateCache(v: VBT.Split);
Clear any cached results of the child locate method. If v's methods
come from this interface, you must call this procedure whenever
the geometry of v changes.
END MouseSplit.