DIRECTORY Buttons, UserExec, Process, CKViewerButtons; CKViewerButtonsImpl: PROGRAM IMPORTS CKViewerButtons, Buttons, Process, UserExec EXPORTS CKViewerButtons = BEGIN CKViewer: TYPE = CKViewerButtons.CKViewer; CKViewerData: TYPE = CKViewerButtons.CKViewerData; Quit: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.quit _ TRUE; }; Bpp24: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bpp _ 24; ResetBPPButtons[ckv]; Buttons.SetDisplayStyle[ckv.buttons.twentyfourButton, $WhiteOnBlack]; }; Bpp8: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bpp _ 8; ResetBPPButtons[ckv]; Buttons.SetDisplayStyle[ckv.buttons.eightButton, $WhiteOnBlack]; }; Bpp4: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bpp _ 4; ResetBPPButtons[ckv]; Buttons.SetDisplayStyle[ckv.buttons.fourButton, $WhiteOnBlack]; }; Bpp2: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bpp _ 2; ResetBPPButtons[ckv]; Buttons.SetDisplayStyle[ckv.buttons.twoButton, $WhiteOnBlack]; }; Bpp1: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bpp _ 1; ResetBPPButtons[ckv]; Buttons.SetDisplayStyle[ckv.buttons.oneButton, $WhiteOnBlack]; }; AChan: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.aToggle _ TRUE; }; BChan: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bToggle _ TRUE; }; Slow: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.slow _ NOT ckv.state.slow; }; Freeze: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.freeze _ NOT ckv.state.freeze; }; Scramble: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.freeze _ TRUE; ckv.state.scramble _ TRUE; }; Roll: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.freeze _ TRUE; ckv.state.roll _ TRUE; }; CKRandom: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.random _ TRUE; }; Symmetric: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.symmetric _ TRUE; }; TestPattern: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.testPattern _ TRUE; }; CBars: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.cbars _ TRUE; }; Converge: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.converge _ TRUE; }; BigRed: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bigRed _ TRUE; }; BigGreen: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bigGreen _ TRUE; }; BigBlue: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.bigBlue _ TRUE; }; SmallRed: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.smallRed _ TRUE; }; SmallGreen: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.smallGreen _ TRUE; }; SmallBlue: PUBLIC Buttons.ButtonProc = TRUSTED { ckv: CKViewer _ NARROW[clientData]; ckv.state.smallBlue _ TRUE; }; ResetBPPButtons: PROC [ckv: CKViewer] = TRUSTED { Buttons.SetDisplayStyle[button: ckv.buttons.twentyfourButton, style: $BlackOnWhite]; Buttons.SetDisplayStyle[button: ckv.buttons.eightButton, style: $BlackOnWhite]; Buttons.SetDisplayStyle[button: ckv.buttons.fourButton, style: $BlackOnWhite]; Buttons.SetDisplayStyle[button: ckv.buttons.twoButton, style: $BlackOnWhite]; Buttons.SetDisplayStyle[button: ckv.buttons.oneButton, style: $BlackOnWhite]; }; ForkInit: UserExec.CommandProc = TRUSTED { ckViewer: CKViewer; ckViewer _ CKViewerButtons.CreateCKViewer[]; Process.Detach[FORK CKViewerButtons.Go[ckViewer]]; }; UserExec.RegisterCommand[name: "CKViewer", proc: ForkInit, briefDoc: "ColorKinetic with viewer control panel"]; END. TFile: CKViewerButtonsImpl.mesa Last Edited by: Pier, July 21, 1983 2:23 pm �Ê‚˜Jšœ™J™+J™šÏk ˜ J˜Jšœ ˜ Jšœ˜Jšœ˜J˜—Jšœ�œ�œ,˜QJš�œ�˜J˜Jšœ �œ˜*šœ�œ!˜3J™—šœ�œ�œ˜+Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ�œ�œ˜,Jšœ�œ ˜#Jšœ˜Jšœ˜JšœE˜E˜J˜——šœ�œ�œ˜+Jšœ�œ ˜#Jšœ˜Jšœ˜Jšœ@˜@J˜J˜—šœ�œ�œ˜+Jšœ�œ ˜#Jšœ˜Jšœ˜Jšœ?˜?˜J˜——šœ�œ�œ˜+Jšœ�œ ˜#Jšœ˜Jšœ˜Jšœ>˜>Jšœ˜J˜J˜—šœ�œ�œ˜+Jšœ�œ ˜#Jšœ˜Jšœ˜Jšœ>˜>Jšœ˜J˜—šœ�œ�œ˜,Jšœ�œ ˜#Jšœ�œ˜Jšœ˜J˜—šœ�œ�œ˜,Jšœ�œ ˜#Jšœ�œ˜Jšœ˜J˜—šœ�œ�œ˜+Jšœ�œ ˜#Jšœ�œ˜$Jšœ˜J˜—šœ�œ�œ˜-Jšœ�œ ˜#Jšœ�œ˜(Jšœ˜—J˜šœ �œ�œ˜/Jšœ�œ ˜#Jšœ�œ˜Jšœ�œ˜Jšœ˜—J˜šœ�œ�œ˜+Jšœ�œ ˜#Jšœ�œ˜Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜/Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—šœ �œ�œ˜0Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—šœ �œ�œ˜2Jšœ�œ ˜#Jšœ�œ˜Jšœ˜J˜—šœ�œ�œ˜,Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜/Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ�œ�œ˜-Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜/Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜.Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜/Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜1Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šœ �œ�œ˜0Jšœ�œ ˜#Jšœ�œ˜Jšœ˜—J˜šÏnœ�œ�œ˜2JšœT˜TJšœO˜OJšœN˜NJšœM˜MJšœM˜MJ˜—J˜šœ!�œ˜*J˜J˜,Jšœ�œ˜2˜J˜——Jšœo˜oJ˜J˜Jš�œ˜—…—è¾