ui/src/vbt/PlttFrnds.i3


Copyright (C) 1994, Digital Equipment Corp.
 by Steve Glassman, Mark Manasse and Greg Nelson           

<*PRAGMA LL*>

INTERFACE PlttFrnds;
Each entry in a palette can be NIL, or a distinguished value to indicate that it is under evaluation. Each palette will be allocated large enough to contain every entry, even if it isn't resolved.

IMPORT ScrnPaintOp, ScrnFont, ScrnCursor, ScrnPixmap, Palette, PaintOp, Font,
       Pixmap, Cursor;

TYPE
  Context = MUTEX OBJECT
    ops: REF ARRAY OF Palette.OpClosure := NIL;
    nextOp := NUMBER(PaintOp.Predefined);
    fonts: REF ARRAY OF Palette.FontClosure := NIL;
    nextFont := NUMBER(Font.Predefined);
    cursors: REF ARRAY OF Palette.CursorClosure := NIL;
    nextCursor := NUMBER(Cursor.Predefined);
    pixmaps: REF ARRAY OF Palette.PixmapClosure := NIL;
    nextPixmap := NUMBER(Pixmap.Predefined)
  END;

VAR
  con: Context;

  noOp: ScrnPaintOp.T;
  noFont: ScrnFont.T;
  noCursor: ScrnCursor.T;
  noPixmap:ScrnPixmap.T;

END PlttFrnds.