<> <> <> <> <> <<>> DIRECTORY AdjustColor USING [ByeProc, Color, Flavor, TRC], Rope USING [ROPE] ; AdjustColorStd: CEDAR DEFINITIONS = BEGIN Color: TYPE ~ AdjustColor.Color; TRC: TYPE ~ AdjustColor.TRC; Flavor: TYPE ~ AdjustColor.Flavor; StdAdjuster: TYPE ~ REF StdAdjusterRec; StdAdjusterRec: TYPE ~ RECORD [ flavor: Flavor, doc: Rope.ROPE, --Intended for the message Window setProc: SetProc _ NIL, --Establishes TRC when controls change byeProc: ByeProc _ NIL, --Called when client loses control private: REF _ NIL, --Implementation data clientData: REF _ NIL ]; Control: TYPE ~ {dark, contrast, white, black}; Setting: TYPE ~ REAL; --Constrained in range [0.0 .. 1.0]; Settings: TYPE ~ ARRAY Control OF Setting; SetProc: TYPE ~ PROC [settings: Settings, whatChanged: ARRAY Control OF BOOL, old: REF TRC _ NIL] RETURNS [trc: REF TRC]; ByeProc: TYPE ~ AdjustColor.ByeProc; DuplicateName: ERROR; NoSuchName: ERROR; RegisterStdAdjuster: PROC [adjuster: StdAdjusterRec, initialSettings: Settings _ ALL[.5]]; RequestControl: PROC [flavor: Flavor] RETURNS [granted: BOOLEAN]; <> <<>> ClientDataForName: PROC [flavor: Flavor] RETURNS [clientData: REF]; <> CurrentTRC: PROC RETURNS [trc: REF TRC]; NormalizeAdjustments: PROC; <> SetAdjustments: PROC [settings: Settings]; <> END.