<> <> <> <> <> <> <> <> <> <> <<>> 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], Tioga 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; <> <> <<>> OpsListItem: TYPE ~ RECORD [name: ATOM, op: TJaM.CommandProc]; OpsList: TYPE ~ LIST OF OpsListItem; opsList: OpsList _ NIL; Preregister: PROC [param: Param, op: TJaM.CommandProc] RETURNS [Param] ~ { opsList _ CONS[[param.opName, op], opsList]; RETURN [param]; }; <<>> RegisterWorks3: PUBLIC PROC [frame: Frame] ~ { FOR list: OpsList _ opsList, list.rest UNTIL list=NIL DO RegisterStyleCommand[frame, list.first.name, list.first.op]; 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]; }; <