ui/src/split/OverlayVBT.i3


 Copyright (C) 1993, Digital Equipment Corporation                         
 All rights reserved.                                                      
 See the file COPYRIGHT for a full description.                            
                                                                           
 Last modified on Tue Apr  4 11:36:49 PDT 1995 by msm                      
<* PRAGMA LL *>
An OverlayVBT is a filter that can paint on top of its child.

INTERFACE OverlayVBT;

IMPORT VBT, Region, Filter;

TYPE
  T <: Public;
  Public =
    Filter.T OBJECT
    METHODS
      <* LL.sup <= VBT.mu *>
      init (ch: VBT.T): T;
      <* LL = VBT.mu.v *>
      set (READONLY rgn: Region.T);
      (* client-supplied method: *)
      <* LL.sup = ch *>
      paint (READONLY rgn: Region.T);
    END;
The call v.init(..) initializes v as an OverlayVBT with child ch and an empty overlay region. By setting the region to be non-empty, the client's paint method will be called as needed to maintain the client overlay; the region supplied will be the subset of the region that needs to be repaired. Clients may want to override the reshape method to set an appropriate region.

REVEAL VBT.Split <: VBT.Leaf;
So that painting on a T is known to be legit.

END OverlayVBT.