-- LoomDefs.mesa edited by Sweet June 13, 1979 9:58 AM
DIRECTORY
DisplayDefs: FROM "displaydefs" USING [GrayArray],
ParameterDefs: FROM "ParameterDefs" USING [ParameterItemDescriptor, ParameterItemHandle],
StreamDefs: FROM "streamdefs" USING [StreamHandle],
WindowDefs: FROM "WindowDefs" USING [RefreshSequencer, SubwindowHandle, WindowBox, WindowHandle];
LoomDefs: DEFINITIONS =
BEGIN OPEN ParameterDefs, WindowDefs;
-- types and constants
Pedal: TYPE = [0..8);
Harness: TYPE = [0..8);
ColorName: TYPE = CHARACTER ['A..'Q];
ColorChunk: TYPE = RECORD [color: ColorName, count: CARDINAL];
ColorDesc: TYPE = RECORD [repeat: CARDINAL, d: DESCRIPTOR FOR ARRAY OF ColorChunk];
OverlapRec: TYPE = RECORD [next: POINTER TO OverlapRec, under, show: ColorName];
PaintAction: TYPE = {pause, run, stop};
-- shared variables from LoomDisplay
GrayData: ARRAY ColorName OF DisplayDefs.GrayArray;
woBase, poBase: POINTER;
woString, poString: STRING;
warpSizeString, weftSizeString: STRING;
warpSize, weftSize: CARDINAL;
warpColorString, weftColorString: STRING;
overlapString: STRING;
weaveWindow: WindowHandle;
tieup: ARRAY Pedal OF STRING;
-- shared variables from LoomControl
titleString, input, output: STRING;
nParams, poParmNum: CARDINAL;
parameterSW, msgSW: SubwindowHandle;
controlWindow: WindowHandle;
autoRepaint: BOOLEAN;
-- shared variables from LoomSetup
parameterItems: DESCRIPTOR FOR ARRAY OF ParameterItemHandle;
-- procedures from LoomDisplay
LoomDisplay: PROGRAM;
RepaintAllWeave: PUBLIC PROCEDURE;
RepaintPart: PROCEDURE [x1, x2, y1, y2: CARDINAL];
ReadFile: PROCEDURE [in: StreamDefs.StreamHandle];
WriteFile: PROCEDURE [out: StreamDefs.StreamHandle];
PausePainting: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
ResumePainting: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
CancelPainting: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
-- procedures from LoomControl
LoomControl: PROGRAM;
PostLine: PROCEDURE [s: STRING];
Repaint: PUBLIC PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
DisplayWeaveWindowContents: PROCEDURE [
window: WindowHandle,
wBox: WindowBox,
refreshSequencer: RefreshSequencer]
RETURNS [WindowBox];
Load: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
Dump: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
Press: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
StdPedal: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
UpDown: PROCEDURE [
sw: SubwindowHandle, items: ParameterItemDescriptor ← NULL,
index: CARDINAL ← NULL];
MakeToolInactive: PUBLIC PROCEDURE;
-- procedures from LoomSetup
LoomSetup: PROGRAM;
DestroyThisTool: PROCEDURE;
MakeMyMenu: PROCEDURE;
FreeMyMenu: PROCEDURE;
PaintCommands: PROCEDURE [action: PaintAction];
MakeMeAParameterSubwindow: PROCEDURE;
END.