File: CKViewerButtonsImpl.mesa
Last Edited by: Pier, July 21, 1983 2:23 pm
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.