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šœ˜—…—è¾