<<>> <> <> <> DIRECTORY ImagerFont USING [Font], Rope USING [ROPE], ViewerClasses USING [Viewer]; Histograph: CEDAR DEFINITIONS = BEGIN Font: TYPE = ImagerFont.Font; ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; <> NewHistograph: PROC [ dataWidth: NAT ¬ 480, -- # of samples buffered for display dataHeight: NAT ¬ 100, -- # of vertical units for samples maxSample: INT ¬ 100, -- sample corresponding to the height averageFactor: REAL ¬ 0.9, -- used to compute declining average vertiLog: NAT ¬ 0, -- log base to use on Y-axis (0, 1 => linear) title: ROPE ¬ NIL, -- graph title subTitle: ROPE ¬ NIL, -- graph sub-title firstSampleX: NAT ¬ 64, -- x position of first sample numberW: INTEGER ¬ 32, -- # of units for displaying numbers name: ROPE ¬ NIL, -- name to use if top-level viewer parent: Viewer ¬ NIL, -- parent viewer wx: INTEGER ¬ 0, -- x position in parent wy: INTEGER ¬ 0, -- y position in parent historical: BOOL ¬ TRUE, -- => strip chart style, else random access border: BOOL ¬ FALSE, -- => give returned viewer a border childXbound: BOOL ¬ FALSE, -- => make right bound match parent tickX: NAT ¬ 60, -- # of units to use between horizontal ticks tickY: NAT ¬ 25, -- # of units to use between vertical ticks numberFont: Font ¬ NIL, -- font for numbers (default: Helvetica8) smallFont: Font ¬ NIL, -- font for subTitle (default: Helvetica8) largeFont: Font ¬ NIL] -- font for title (default: Helvetica10) RETURNS [Viewer]; <<... creates a new Histograph class of viewer.>> FetchSample: PROC [viewer: Viewer, index: NAT] RETURNS [REAL]; <> Reset: PROC [viewer: Viewer, paint: BOOL ¬ TRUE]; <> <> AddSample: PROC [viewer: Viewer, sample: REAL, paint: BOOL ¬ TRUE]; <> <<>> <> StoreSample: PROC [viewer: Viewer, index: NAT, sample: REAL, paint: BOOL ¬ TRUE]; <> ModifySample: PROC [viewer: Viewer, index: NAT, sample: REAL, paint: BOOL ¬ TRUE]; <> <> Error: ERROR [code: ATOM, message: ROPE]; <> <<$historical: historical = FALSE was required>> <<$notHistorical: historical = TRUE was required>> <<$notHistograph: viewer data not from this implementation>> <<$invalidIndex: index > dataWidth>> <<>> END.