Copyright (C) 1994, Digital Equipment Corp.
<*PRAGMA LL*>
Every installed VBT has a DpyFilter above it to catch messages telling the
window to move to a new display, or to add new cloned copies.
INTERFACE DpyFilter;
IMPORT VBT, JoinParent, JoinedVBT;
TYPE
T <: Public;
Public = JoinParent.T OBJECT
METHODS
init (ch: JoinedVBT.T; enabled := TRUE): T
END;
VAR ChangeDisplay, AddDisplay: VBT.MiscCodeType;
TYPE
Message = REF RECORD
oldAuth, newAuth : TEXT;
x, y, width, height, screen: INTEGER;
iconic, status : BOOLEAN;
newDisplay : REF ARRAY OF TEXT
END;
In a MiscCode of type ChangeDisplay or AddDisplay, the first detail
should be a MiscDetail.FromRef of a Message. The status field of the
message should be set to FALSE before returning if the message is
unacceptable.
PROCEDURE New (ch: JoinedVBT.T; enabled := TRUE): T;
PROCEDURE SetEnabled (ch: VBT.T; enabled := TRUE);
Find the lowest T ancestor of ch, and set whether or not it
automatically handles ChangeDisplay messages. When disabled,
ChangeDisplay and AddDisplay misc codes are simply relayed to the
child.
PROCEDURE GetEnabled (ch: VBT.T): BOOLEAN;
Return the enabled state of the lowest T ancestor of ch, or TRUE if
there is no such ancestor.
END DpyFilter.