<<>> <> <> <> <<>> <> <> <<>> DIRECTORY Buttons USING [Button], ChoiceButtons USING [EnumTypeRef], IO USING [STREAM], IPMaster USING [Version], Rope USING [ROPE], ViewerClasses USING [Viewer], XNSPrint USING [Properties, StatusChangedProc], XTSetter; XTSetterPrivate: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Viewer: TYPE ~ ViewerClasses.Viewer; Properties: TYPE ~ XNSPrint.Properties; Options: TYPE ~ XTSetter.Options; OptionsRep: TYPE ~ XTSetter.OptionsRep; Screen: TYPE ~ XTSetter.Screen; Info: TYPE ~ XTSetter.Info; InfoRep: TYPE ~ XTSetter.InfoRep; ProductionProgressProc: TYPE ~ XTSetter.ProductionProgressProc; IPProducer: TYPE ~ XTSetter.IPProducer; <> PrinterVersion: TYPE ~ REF PrinterVersionRep; PrinterVersionRep: TYPE ~ RECORD [ version: IPMaster.Version, -- what IP level the printer supports mayCompress: BOOL, -- TRUE if printer supports compressed masters (Zipper/Quoth style) shouldCompress: BOOL, -- TRUE if compression should be defaulted (Zipper style) hasPressFonts: BOOL -- TRUE if printer has press fonts ]; <> Tool: TYPE ~ REF ToolRep; ToolRep: TYPE ~ MONITORED RECORD [ <<-- General tool information>> printerName: ROPE, -- name of printer associated to this tool version: PrinterVersion, -- Version understood by this printer printerProperties: Properties, -- what the printer knows to do feedBack: STREAM, -- output only, to viewer typescript viewer: Viewer, -- the top-level tool viewer currentOptions: Options ¬ NIL, <<-- All about the options viewer if present>> optionsViewer: Viewer, optionsStaple, optionsTwoSided, optionsKeepIP, optionsCompress: BoolButton, optionsCopies, optionsFirstpage, optionsLastpage: IntButton, optionsDevice: RopeButton, optionsStyle: RopeButton, optionsScale: RealButton, optionsPaper: ChoiceButtons.EnumTypeRef, <<-- All about the printer status viewer if present>> printerStatusViewer: Viewer, printerStatusMedia, printerStatusSpooler, printerStatusFormatter, printerStatusMarkingEngine: Viewer, printerStatusTimer: CONDITION, <<-- All about the request status viewer if present>> requestStatusContainer, requestStatusRule: Viewer, <<-- To generate unique file names>> unique: INT ¬ 0 ]; <> <> BoolButtonActionProc: TYPE ~ PROC [state: BoolButton]; BoolButton: TYPE ~ REF BoolButtonRep; BoolButtonRep: TYPE ~ RECORD [ button: Buttons.Button, flag: BOOL, -- The current value of the button trueStyle: ATOM, -- how to display the TRUE value click: BoolButtonActionProc -- optional call-back on click ]; IntButton: TYPE ~ REF IntButtonRep; IntButtonRep: TYPE ~ RECORD [ button: Buttons.Button, default: INT, text: Viewer -- Private: the viewer that contains the number ]; RealButton: TYPE ~ REF RealButtonRep; RealButtonRep: TYPE ~ RECORD [ button: Buttons.Button, default: REAL, text: Viewer -- Private: the viewer that contains the number ]; RopeButton: TYPE ~ REF RopeButtonRep; RopeButtonRep: TYPE ~ RECORD [ button: Buttons.Button, defaults: LIST OF ROPE, text: Viewer -- Private: the viewer that contains the current rope ]; StatusReport: TYPE ~ REF StatusReportRep; StatusReportRep: TYPE ~ RECORD [ tool: Tool, -- back pointer viewer: Viewer, -- pointer to the status viewer to destroy it pie, stop, info, comment: Viewer, -- pie chart, stop button, request status, print object name stopRequired: BOOL ¬ FALSE, -- stop button has been hit formatting: BOOL ¬ TRUE, -- IP Producer active sending: BOOL ¬ FALSE -- IP Consumer active ]; GetOptionsInternal: PROC [tool: Tool, reset: BOOL ¬ TRUE] RETURNS [options: Options]; <> <<>> CreateStatusReport: PROC [tool: Tool, title: ROPE] RETURNS [state: StatusReport]; <> <<>> ResizeStatusContainer: PROC [tool: Tool]; <> <<>> SetSendingStatus: PROC [state: StatusReport]; <> <<>> PrintStatusUpdate: XNSPrint.StatusChangedProc; <> <<>> END.