drawcontext/src/DrawContext.i3


 Copyright (c) 2000 California Institute of Technology 
 All rights reserved. See the file COPYRIGHT for a full description. 
 $Id: DrawContext.i3,v 1.2 2001-09-19 15:30:31 wagner Exp $ 

INTERFACE DrawContext;
IMPORT Transform;
IMPORT Region;
IMPORT Rect;
IMPORT Line;
IMPORT LinoText;
IMPORT TextBounder;
TYPE
  T <: Public;
  Public = OBJECT METHODS
    (* the following methods refer to local coordinates *)

    line(l: Line.T);
    text(t: LinoText.T);
    boundText(t: LinoText.T): Rect.T;
    regionVisible(r: Region.T): BOOLEAN;

    (* the following methods refer to global coordinates *)

    setClip(r: Region.T);
    (* limit subsequent drawing to r *)

    setTransform(t: Transform.T);
    (* define local coordinates *)

    preTransform(t: Transform.T): Transform.T;
    (* precede existing transform by t, returning old transform. E.g.
       restore := ctx.preTransform(myCellTransform);
       ctx.setTransform(restore); *)

    setTextBounder(tb: TextBounder.T);
    (* textBounder must be initialized if text is to be transformed *)
  END;

END DrawContext.