<> <> <> <> <> <> <> <> <> <> <<>> DIRECTORY Ascii USING [Lower], NodeStyle USING [FontAlphabets, FontFace, FontUnderlining, GetFontSize, GetPrintSpaceWidth, GetScreenSpaceWidth, GetTabLoc, GetTabRealCode, LeaderTabStop, LineFormatting, PointsPerCentimeter, PointsPerDidot, PointsPerFil, PointsPerFill, PointsPerFilll, PointsPerInch, PointsPerMillimeter, PointsPerPica, Style, RulesTabStop, RuleTabStop, TabAlign, TabArrayRec, TabStop, TabStopRec], NodeStyleWorks USING [AddRealError, colorOps, DoStyleOp, glueOps, LoadProc, NameError, nameOps, OpsRec, Param, ParamRec, PercentError, realOps, RegisterStyleCommand, SetNameProc, StoreError, StyleError, StyleForFrame, TryToPopName, TryToPopReal, TryToPopRope], Rope USING [ActionType, Fetch, IsEmpty, Length, Map, ROPE], TextLooks USING [Looks, noLooks], TJaM USING [AGet, Array, AtomFromRope, CommandProc, Frame, PopArray, PopReal, PopRope, Push, PushReal, PushRope]; NodeStyleWorks3Impl: CEDAR MONITOR IMPORTS Ascii, NodeStyle, NodeStyleWorks, Rope, TJaM EXPORTS NodeStyleWorks ~ BEGIN OPEN NodeStyle, NodeStyleWorks; Frame: TYPE ~ TJaM.Frame; ROPE: TYPE ~ Rope.ROPE; <> <> <<>> 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]; }; <<>> RegisterWorks3: PUBLIC PROC [frame: Frame] ~ { WHILE opsList # NIL DO RegisterStyleCommand[frame, opsList.first.name, opsList.first.op]; opsList _ opsList.rest; ENDLOOP; <<>> RegisterStyleCommand[frame, $clearTabStops, ClearTabStopsOp]; RegisterStyleCommand[frame, $tabStop, TabStopOp]; RegisterStyleCommand[frame, $defaultTabStops, DefaultTabStopsOp]; RegisterStyleCommand[frame, $tabStopLocations, RelativeTabStopsOp]; <<>> RegisterStyleCommand[frame, $pt, PointsOp]; RegisterStyleCommand[frame, $pc, PicasOp]; RegisterStyleCommand[frame, $in, InchesOp]; RegisterStyleCommand[frame, $cm, CentimetersOp]; RegisterStyleCommand[frame, $mm, MillimetersOp]; RegisterStyleCommand[frame, $dd, DidotPointsOp]; RegisterStyleCommand[frame, $em, EmsOp]; RegisterStyleCommand[frame, $en, EnsOp]; RegisterStyleCommand[frame, $screensp, ScreenSpacesOp]; RegisterStyleCommand[frame, $printsp, PrintSpacesOp]; RegisterStyleCommand[frame, $fil, FilOp]; RegisterStyleCommand[frame, $fill, FillOp]; RegisterStyleCommand[frame, $filll, FilllOp]; }; <