<> <> <> 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.