cmvbt/src/HoverVBT.i3


 Copyright 1996-2000, Critical Mass, Inc. All Rights Reserved. 
 See file COPYRIGHT-CMASS for details. 

INTERFACE HoverVBT;
A HoverVBT is a filter that can notify its descendants if the mouse is sitting over them.

IMPORT Filter, Time, VBT;

TYPE
  T <: Filter.T;

TYPE
  CallBack = PROCEDURE (v: VBT.T;  ref: REFANY);

PROCEDURE New (ch: VBT.T): T;
== NEW(T).init(ch)

PROCEDURE Register (v: VBT.T;  delay: Time.T;  cb: CallBack;  ref: REFANY);
Registers v so that if an ancestor of v is a hover vbt and it notices the mouse sitting over v for at least delay seconds, cb(v,ref) will be called. The callback calls generated by a given hover vbt are serialized and made with no locks held. CallBack procedures must be top-level procedures. At most one registration is maintained for a vbt and it is determined by the last call to Register.

END HoverVBT.