<> <> <<>> DIRECTORY ViewerClasses USING [Viewer], MathDisplayExpr USING [DisplayExpr]; ViewExprOps: CEDAR DEFINITIONS ~ BEGIN <> Viewer: TYPE ~ ViewerClasses.Viewer; DisplayExpr: TYPE ~ MathDisplayExpr.DisplayExpr; <> PaintEnqueue: PROC[v: Viewer]; <> <> <<>> PaintDequeue: PUBLIC PROC[v: Viewer]; <> <> <<>> FlushPaintQueue: PROC[]; <> <> <<>> <> noSelection: ERROR; GetSelection: PROC[flavor: ATOM] RETURNS[Viewer, DisplayExpr]; <> << currently active selection of type flavor. >> << SIGNALS noSelection if no such selection exists.>> <<>> Active: PROC[flavor: ATOM] RETURNS[BOOL]; <> << Otherwise returns FALSE.>> <<>> Select: PROC[flavor: ATOM, viewer: Viewer, expr: DisplayExpr]; <> << If a previous selection existed, its associated viewer is repainted.>> << If expr is unselectable, primary selection is cleared (and viewer repainted).>> <<>> UnSelect: PROC[flavor: ATOM]; <> << Repaints associated viewer if selection was active.>> <<>> <<>> UnSelectViewer: PROC[v: Viewer]; <> <<>> <<>> <<>> END. <<>> <<>> <<>> <<>> <<>>