<> <> <> <> <> DIRECTORY IO, Buttons, Labels, NumberLabels, ChoiceButtons, ViewerClasses; CKViewerButtons: CEDAR DEFINITIONS = BEGIN CKViewer: TYPE = REF CKViewerData; CKViewerData: TYPE = RECORD [ height: NAT, container: ViewerClasses.Viewer, state: CKViewerState, buttons: CKViewerButtons, panel: CKViewerPanel ]; CKViewerState: TYPE = RECORD [ quit, aToggle, bToggle, slow: BOOLEAN, freeze, scramble, roll: BOOLEAN, random, symmetric, diag: BOOLEAN, testPattern, cbars, converge: BOOLEAN, bigRed, bigGreen, bigBlue: BOOLEAN, smallRed, smallGreen, smallBlue: BOOLEAN, testingPanel: BOOLEAN, bpp: [0..24] ]; CKViewerButtons: TYPE = RECORD [ quitButton, twentyfourButton, eightButton, fourButton, twoButton, oneButton: Buttons.Button, aChanButtton, bChanButton, slowButton: Buttons.Button, freezeButton, scrambleButton, rollButton: Buttons.Button, randomButton, symmetricButton, diagButton: Buttons.Button, testButton, cBarsButton, convergeButton: Buttons.Button, bigRedButton, bigGreenButton, bigBlueButton: Buttons.Button, smallRedButton, smallGreenButton, smallBlueButton: Buttons.Button ]; CKViewerPanel: TYPE = RECORD [ passLabel: Labels.Label, -- readonly passcount passCount: NumberLabels.NumberLabel, -- readonly passcount stopGo: ChoiceButtons.EnumTypeRef, --large STOP/GO button tableOp: ChoiceButtons.EnumTypeRef, --ReadOnly,WriteOnly,RW,RWCheck table: ChoiceButtons.EnumTypeRef, --A only, B only, C only, All Tables action: ChoiceButtons.EnumTypeRef, --fixed, random, cycle pattern: ChoiceButtons.PromptDataRef, --24 bit pattern in OCTAL firstAddr: ChoiceButtons.PromptDataRef, --starting address for test lastAddr: ChoiceButtons.PromptDataRef, --ending address for test incAddr: ChoiceButtons.PromptDataRef, --address increment report: ChoiceButtons.EnumTypeRef, --verbose, terse, none script: ViewerClasses.Viewer, --error reporting typescript stream: IO.STREAM --output stream for script ]; Quit: Buttons.ButtonProc; Bpp24: Buttons.ButtonProc; Bpp8: Buttons.ButtonProc; Bpp4: Buttons.ButtonProc; Bpp2: Buttons.ButtonProc; Bpp1: Buttons.ButtonProc; AChan: Buttons.ButtonProc; BChan: Buttons.ButtonProc; Slow: Buttons.ButtonProc; Freeze: Buttons.ButtonProc; Scramble: Buttons.ButtonProc; Roll: Buttons.ButtonProc; CKRandom: Buttons.ButtonProc; Symmetric: Buttons.ButtonProc; Diag: Buttons.ButtonProc; TestPattern: Buttons.ButtonProc; CBars: Buttons.ButtonProc; Converge: Buttons.ButtonProc; BigRed: Buttons.ButtonProc; BigGreen: Buttons.ButtonProc; BigBlue: Buttons.ButtonProc; SmallRed: Buttons.ButtonProc; SmallGreen: Buttons.ButtonProc; SmallBlue: Buttons.ButtonProc; Go: PROC [ckViewer: CKViewer]; CreateCKViewer: PROC RETURNS [CKViewer]; SetStaticButtons: PUBLIC PROC [ckv: CKViewer, button: Buttons.Button]; RestartCKViewer: PROC [ckViewer: CKViewer]; END.