dps/src/SlideXDLE.i3


Copyright (C) 1994, Digital Equipment Corp.

INTERFACE SlideXDLE;

IMPORT DisplayList, DisplayListStack, DPS, DPSWindow;
IMPORT Linked2Tree, PopupMenuDLE, Rd;

TYPE Page = RECORD
  fixed: DisplayList.T := NIL;
  visible: DisplayListStack.T := NIL;
  invisible: Linked2Tree.T := NIL;
  END;

TYPE T = DisplayList.T OBJECT
  initialized: BOOLEAN := FALSE;
  window: DPS.T := NIL;
  canMouseChildren: BOOLEAN := FALSE;
  backgroundPopup: PopupMenuDLE.T;
  pages: ARRAY [0..9] OF Page;
  page: INTEGER := 0;
  lastPage: INTEGER := 0;
  minimumHeight, maximumHeight: REAL := 0.0;
 METHODS
  AppendFixed (e: Linked2Tree.E) := AppendFixed;
  AppendVariable (e: Linked2Tree.E) := AppendVariable;
  AllInvisible () := AllInvisible;
  NextVisible () := NextVisible;
 OVERRIDES
  Prepend := Prepend;
  Append := Append;
  InsertBefore := InsertBefore;
  InsertAfter := InsertAfter;
  MakeChildLast := MakeChildLast;
  MakeChildFirst := MakeChildFirst;
  Mouse := Mouse;
  Char := Char;
  Repaint := Repaint;
  END;
TYPE E = T;
TYPE R = T;

PROCEDURE Init (t: T; window: DPSWindow.T);

PROCEDURE AddPage ( t: T; window: DPSWindow.T;
 data: Rd.T; page: INTEGER := 999999 );

PROCEDURE Prepend (t: T; e: Linked2Tree.E);
PROCEDURE Append (t: T; e: Linked2Tree.E);
PROCEDURE InsertBefore (t: T; e, before: Linked2Tree.E);
PROCEDURE InsertAfter (t: T; e, after: Linked2Tree.E);

PROCEDURE MakeChildLast (t: T; e: Linked2Tree.E): Linked2Tree.E;
PROCEDURE MakeChildFirst (t: T; e: Linked2Tree.E): Linked2Tree.E;

PROCEDURE Mouse (e: E; t: DPSWindow.T; event: DPS.MouseEvent): BOOLEAN;
PROCEDURE Char (e: E; t: DPSWindow.T; char: CHAR): BOOLEAN;

PROCEDURE Repaint (t: T; box: DPS.Box; only: REFANY): TEXT;

PROCEDURE AppendFixed (t: T; e: Linked2Tree.E);
PROCEDURE AppendVariable (t: T; e: Linked2Tree.E); (* = Append *)

PROCEDURE AllInvisible (t: T);
PROCEDURE NextVisible (t: T);

  END SlideXDLE.