vtext/src/VTInterval.i3


Copyright (C) 1994, Digital Equipment Corp.

INTERFACE VTInterval;

IMPORT VTDef, VText;

TYPE
  T = VTDef.T;
  ColorScheme = VTDef.ColorScheme;
  I = VTDef.I;
  Index = VTDef.Index;
  Interval = VText.Interval;
  IntervalOptions = VTDef.IntervalOptions;
  IntervalStyle = VTDef.IntervalStyle;
  OnOffState = VTDef.OnOffState;
  Tint = VTDef.Tint;
  View = VTDef.View;

  Private = VTDef.PublicInterval OBJECT
              l, r: I;
              next: Interval := NIL
            END;

REVEAL Interval <: Private;

PROCEDURE New (vt: T; iL, iR: Index; READONLY options: IntervalOptions):
  Interval;

PROCEDURE ExplodeInterval (READONLY     interval      : Interval;
                           VAR (* OUT*) indexL, indexR: Index;
                           VAR (* OUT*) options       : IntervalOptions;
                           VAR (* OUT*) state         : OnOffState       );

PROCEDURE MakeOptions (style                  : IntervalStyle;
                       whiteBlack, whiteStroke: ColorScheme;
                       leading                : Tint           ):
  IntervalOptions;

PROCEDURE Switch (interval: Interval; state: OnOffState) RAISES {VTDef.Error};

PROCEDURE Move (interval: Interval; iL, iR: Index) RAISES {VTDef.Error};

PROCEDURE ChangeOptions (interval: Interval; READONLY options: IntervalOptions)
  RAISES {VTDef.Error};

PROCEDURE Delete (interval: Interval) RAISES {VTDef.Error};

PROCEDURE Close (interval: Interval);

PROCEDURE Fix (vt: T);

PROCEDURE CurrentOptions (view: View; at: I; VAR (*OUT*) from, to: I):
  IntervalOptions;

END VTInterval.