NodeStyleWorks4Impl.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Rick Beach, June 3, 1985 5:44:34 pm PDT
Implements JaM commands for style rules and commands to load styles.
DIRECTORY
NodeStyleWorks USING [colorOps, DoStyleOp, glueOps, Param, ParamRec, realOps, RegisterStyleCommand],
Rope USING [ROPE],
TJaM USING [CommandProc, Frame];
NodeStyleWorks4Impl: CEDAR MONITOR
IMPORTS NodeStyleWorks
EXPORTS NodeStyleWorks
~ BEGIN OPEN NodeStyleWorks;
Frame: TYPE ~ TJaM.Frame;
ROPE: TYPE ~ Rope.ROPE;
Initialization
This must be first to pick up the Preregister calls in the start code.
opsList: LIST OF RECORD[name: ATOM, op: TJaM.CommandProc] ← NIL;
Preregister: PROC [param: Param, op: TJaM.CommandProc] RETURNS [Param] ~ {
opsList ← CONS[[param.opName, op], opsList];
RETURN [param];
};
RegisterWorks4: PUBLIC PROC [frame: Frame] ~ {
WHILE opsList # NIL DO
RegisterStyleCommand[frame, opsList.first.name, opsList.first.op];
opsList ← opsList.rest;
ENDLOOP;
};
Letter Spacing Glue
LetterspacingOp: TJaM.CommandProc ~ { DoStyleOp[frame, letterspacingParam] };
letterspacingParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $letterspacing, real[letterspacing]]], LetterspacingOp];
LetterspacingStretchOp: TJaM.CommandProc ~ { DoStyleOp[frame, letterspacingStretchParam] };
letterspacingStretchParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $letterspacingStretch, real[letterspacingStretch]]], LetterspacingStretchOp];
LetterspacingShrinkOp: TJaM.CommandProc ~ { DoStyleOp[frame, letterspacingShrinkParam] };
letterspacingShrinkParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $letterspacingShrink, real[letterspacingShrink]]], LetterspacingShrinkOp];
LetterspacingGlueOp: TJaM.CommandProc ~ { DoStyleOp[frame, letterspacingGlueParam] };
letterspacingGlueParam: Param ← Preregister[NEW[glue ParamRec ← [glueOps, $letterspacingGlue, glue[letterspacing, letterspacingStretch, letterspacingShrink]]], LetterspacingGlueOp];
Pagebreak Glue
PagebreakOp: TJaM.CommandProc ~ { DoStyleOp[frame, pagebreakParam] };
pagebreakParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $pagebreak, real[pagebreak]]], PagebreakOp];
PagebreakStretchOp: TJaM.CommandProc ~ { DoStyleOp[frame, pagebreakStretchParam] };
pagebreakStretchParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $pagebreakStretch, real[pagebreakStretch]]], PagebreakStretchOp];
PagebreakShrinkOp: TJaM.CommandProc ~ { DoStyleOp[frame, pagebreakShrinkParam] };
pagebreakShrinkParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $pagebreakShrink, real[pagebreakShrink]]], PagebreakShrinkOp];
PagebreakGlueOp: TJaM.CommandProc ~ { DoStyleOp[frame, pagebreakGlueParam] };
pagebreakGlueParam: Param ← Preregister[NEW[glue ParamRec ← [glueOps, $pagebreakGlue, glue[pagebreak, pagebreakStretch, pagebreakShrink]]], PagebreakGlueOp];
Underline Dimensions and Color
UnderlineThicknessOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineThicknessParam] };
underlineThicknessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $underlineThickness, real[underlineThickness]]], UnderlineThicknessOp];
UnderlineDescentOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineDescentParam] };
underlineDescentParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $underlineDescent, real[underlineDescent]]], UnderlineDescentOp];
UnderlineHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineHueParam] };
underlineHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $underlineHue, real[underlineHue]]], UnderlineHueOp];
UnderlineSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineSaturationParam] };
underlineSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $underlineSaturation, real[underlineSaturation]]], UnderlineSaturationOp];
UnderlineBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineBrightnessParam] };
underlineBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $underlineBrightness, real[underlineBrightness]]], UnderlineBrightnessOp];
UnderlineColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, underlineColorParam] };
underlineColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $underlineColor, color[underlineHue, underlineSaturation, underlineBrightness]]], UnderlineColorOp];
Strikeout Dimensions and Color
StrikeoutThicknessOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutThicknessParam] };
strikeoutThicknessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $strikeoutThickness, real[strikeoutThickness]]], StrikeoutThicknessOp];
StrikeoutAscentOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutAscentParam] };
strikeoutAscentParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $strikeoutAscent, real[strikeoutAscent]]], StrikeoutAscentOp];
StrikeoutHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutHueParam] };
strikeoutHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $strikeoutHue, real[strikeoutHue]]], StrikeoutHueOp];
StrikeoutSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutSaturationParam] };
strikeoutSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $strikeoutSaturation, real[strikeoutSaturation]]], StrikeoutSaturationOp];
StrikeoutBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutBrightnessParam] };
strikeoutBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $strikeoutBrightness, real[strikeoutBrightness]]], StrikeoutBrightnessOp];
StrikeoutColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, strikeoutColorParam] };
strikeoutColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $strikeoutColor, color[strikeoutHue, strikeoutSaturation, strikeoutBrightness]]], StrikeoutColorOp];
Outline Box Dimensions and Color
OutlineBoxThicknessOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxThicknessParam] };
outlineBoxThicknessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBoxThickness, real[outlineboxThickness]]], OutlineBoxThicknessOp];
OutlineBoxBearoffOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxBearoffParam] };
outlineBoxBearoffParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBoxBearoff, real[outlineboxBearoff]]], OutlineBoxBearoffOp];
OutlineBoxHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxHueParam] };
outlineBoxHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBoxHue, real[outlineboxHue]]], OutlineBoxHueOp];
OutlineBoxSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxSaturationParam] };
outlineBoxSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBoxSaturation, real[outlineboxSaturation]]], OutlineBoxSaturationOp];
OutlineBoxBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxBrightnessParam] };
outlineBoxBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBoxBrightness, real[outlineboxBrightness]]], OutlineBoxBrightnessOp];
OutlineBoxColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBoxColorParam] };
outlineBoxColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $outlineBoxColor, color[outlineboxHue, outlineboxSaturation, outlineboxBrightness]]], OutlineBoxColorOp];
Background Dimensions and Color
BackgroundAscentOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundAscentParam] };
backgroundAscentParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $backgroundAscent, real[backgroundAscent]]], BackgroundAscentOp];
BackgroundDescentOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundDescentParam] };
backgroundDescentParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $backgroundDescent, real[backgroundDescent]]], BackgroundDescentOp];
BackgroundHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundHueParam] };
backgroundHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $backgroundHue, real[backgroundHue]]], BackgroundHueOp];
BackgroundSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundSaturationParam] };
backgroundSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $backgroundSaturation, real[backgroundSaturation]]], BackgroundSaturationOp];
BackgroundBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundBrightnessParam] };
backgroundBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $backgroundBrightness, real[backgroundBrightness]]], BackgroundBrightnessOp];
BackgroundColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, backgroundColorParam] };
backgroundColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $backgroundColor, color[backgroundHue, backgroundSaturation, backgroundBrightness]]], BackgroundColorOp];
Area Color
AreaHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, areaHueParam] };
areaHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $areaHue, real[areaHue]]], AreaHueOp];
AreaSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, areaSaturationParam] };
areaSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $areaSaturation, real[areaSaturation]]], AreaSaturationOp];
AreaBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, areaBrightnessParam] };
areaBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $areaBrightness, real[areaBrightness]]], AreaBrightnessOp];
AreaColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, areaColorParam] };
areaColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $areaColor, color[areaHue, areaSaturation, areaBrightness]]], AreaColorOp];
Outline Color
OutlineHueOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineHueParam] };
outlineHueParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineHue, real[outlineHue]]], OutlineHueOp];
OutlineSaturationOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineSaturationParam] };
outlineSaturationParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineSaturation, real[outlineSaturation]]], OutlineSaturationOp];
OutlineBrightnessOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineBrightnessParam] };
outlineBrightnessParam: Param ← Preregister[NEW[real ParamRec ← [realOps, $outlineBrightness, real[outlineBrightness]]], OutlineBrightnessOp];
OutlineColorOp: TJaM.CommandProc ~ { DoStyleOp[frame, outlineColorParam] };
outlineColorParam: Param ← Preregister[NEW[color ParamRec ← [colorOps, $outlineColor, color[outlineHue, outlineSaturation, outlineBrightness]]], OutlineColorOp];
END.