DIRECTORY NodeStyle USING [NameParam, RealParam, Style], NodeStyleOps USING [StyleKind], Rope USING [ROPE], Tioga USING [Looks], TJaM USING [Cmd, CommandProc, Dict, Array, Frame, Object]; NodeStyleWorks: CEDAR DEFINITIONS ~ BEGIN OPEN NodeStyle; ROPE: TYPE ~ Rope.ROPE; Object: TYPE ~ TJaM.Object; StyleKind: TYPE ~ NodeStyleOps.StyleKind; Frame: TYPE ~ TJaM.Frame; defaultFrame: Frame; GetFrame: PROC [style: Style, styleName: ATOM, kind: StyleKind] RETURNS [frame: Frame]; FreeFrame: PROC [frame: Frame, styleName: ATOM, kind: StyleKind]; StyleForFrame: PROC [frame: Frame] RETURNS [style: Style]; InitDict: PROC [name: ATOM, size: CARDINAL _ 100] RETURNS [dictionary: TJaM.Dict]; GetStyleDict: PROC [frame: Frame, styleName: ATOM, kind: StyleKind, def: Rope.ROPE _ NIL] RETURNS [d: TJaM.Dict]; BadStyleFile: PROC [frame: Frame, styleName: ATOM]; RunStyle: PROC [frame: Frame, styleName: ATOM] RETURNS [ok: BOOL]; RunStyleString: PROC [frame: Frame, styleName: ATOM, def: Rope.ROPE] RETURNS [ok: BOOL]; sysdict: TJaM.Dict; -- system dictionary userdict: TJaM.Dict; -- user dictionary with helpful stuff and errordefs styledict: TJaM.Dict; -- style dictionary has Tioga style machinery names stylesDictsNames: REF ARRAY StyleKind OF ATOM; stylesDicts: REF ARRAY StyleKind OF TJaM.Dict; bindingDictName: ATOM; -- TiogaBindingDictionary bindingDict: TJaM.Dict; attachmentsDictName: ATOM; -- TiogaAttachedStylesDictionary attachmentsDict: TJaM.Dict; styledictName: ATOM; ForEachAttachedStyle: PROC [dictName: ATOM, proc: PROC [attached: ATOM] RETURNS [stop: BOOL] ]; ExecuteName: PROC [frame: Frame, name: ATOM] RETURNS [ok: BOOL]; ExecuteNameInStyle: PROC [ref: Style, kind: StyleKind, styleRule: ATOM] RETURNS [ok: BOOL]; ExecuteObjectInStyle: PROC [ref: Style, kind: StyleKind, object: Object] RETURNS [ok: BOOL]; ExecuteLooksInStyle: PROC [ref: Style, kind: StyleKind, looks: Tioga.Looks] RETURNS [ok: BOOL]; executingName: ATOM; -- for debugging StyleError: PROC [frame: Frame, num: INTEGER]; -- number of things to print load: TJaM.Cmd; get: TJaM.Cmd; run: TJaM.Cmd; LoadProc: TYPE ~ PROC [frame: Frame, p: Param, style: Style]; StoreProc: TYPE ~ PROC [frame: Frame, p: Param, style: Style]; AddRealProc: TYPE ~ PROC [frame: Frame, inc: REAL, p: Param, style: Style]; PercentProc: TYPE ~ PROC [frame: Frame, percent: REAL, p: Param, style: Style]; SetNameProc: TYPE ~ PROC [frame: Frame, name: ATOM, p: Param, style: Style]; Param: TYPE ~ REF ParamRec; ParamRec: TYPE ~ RECORD [ ops: Ops, opName: ATOM, data: SELECT kind: OfParam FROM name => [ param: NameParam ], real => [ param: RealParam ], glue => [ size, stretch, shrink: RealParam ], color => [ hue, saturation, brightness: RealParam ], misc => [], ENDCASE ]; OfParam: TYPE ~ { name, real, glue, color, misc }; Ops: TYPE ~ REF OpsRec; OpsRec: TYPE ~ RECORD [ Load: LoadProc, Store: StoreProc, AddReal: AddRealProc, Percent: PercentProc, SetName: SetNameProc ]; DoStyleOp: PROC [frame: Frame, p: Param]; StoreError: StoreProc; AddRealError: AddRealProc; PercentError: PercentProc; SetNameError: SetNameProc; nameOps: Ops; LoadNameParam: LoadProc; SetNameParam: SetNameProc; NameError: PROC [frame: Frame, name: ATOM, p: Param]; realOps: Ops; RealOpLoad: LoadProc; RealOpSetReal: StoreProc; RealOpAddReal: AddRealProc; RealOpPercent: PercentProc; glueOps: Ops; GlueOpLoad: LoadProc; GlueOpSetReal: StoreProc; GlueOpAddReal: AddRealProc; GlueOpPercent: PercentProc; colorOps: Ops; ColorOpLoad: LoadProc; ColorOpSetReal: StoreProc; ColorOpAddReal: AddRealProc; ColorOpPercent: PercentProc; GetCommand: PROC [frame: Frame, name: ATOM] RETURNS [TJaM.Cmd]; ForceLowerName: PUBLIC PROC [n: ATOM] RETURNS [ATOM]; ForceLowerRope: PUBLIC PROC [r: ROPE] RETURNS [ROPE]; PopName: PROC [frame: Frame] RETURNS [name: ATOM]; TryToPopName: PROC [frame: Frame] RETURNS [name: ATOM, ok: BOOL]; TryToPopReal: PROC [frame: Frame] RETURNS [value: REAL _ 0.0, ok: BOOL]; TryToPopRope: PROC [frame: Frame] RETURNS [rope: ROPE, ok: BOOL]; TypeCheckName: PROC [obj: Object] RETURNS [ATOM]; TypeCheckDict: PROC [obj: Object] RETURNS [TJaM.Dict]; TypeCheckCommand: PROC [obj: Object] RETURNS [TJaM.Cmd]; SpecialOpArray: PROC [name: ATOM, op: Object] RETURNS [key: ATOM, array: TJaM.Array]; StyleParamKey: PROC [name: ATOM] RETURNS [key: ATOM]; RegisterStyleCommand: PROC [frame: Frame, name: ATOM, proc: TJaM.CommandProc]; RegisterStyleLiteral: PROC [frame: Frame, name: ATOM]; RegisterWorks1: PROC [frame: Frame]; RegisterWorks2: PROC [frame: Frame]; RegisterWorks3: PROC [frame: Frame]; RegisterWorks4: PROC [frame: Frame]; StartTheWorks: PROC; END. |NodeStyleWorks.mesa Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. Written by Bill Paxton, January 1981 Last changed by Bill Paxton, December 21, 1982 9:49 am Last Edited by: Maxwell, January 6, 1983 8:08 am Michael Plass, March 26, 1985 9:33:58 am PST Rick Beach, March 27, 1985 9:38:55 am PST Doug Wyatt, September 25, 1986 10:50:39 am PDT This is where the style machinery lives. Execution Frames for Style Machinery Style Dictionaries Create a dictionary and name it in the system dictionary, .sysdict names are TiogaBaseStylesDictionary, TiogaPrintStylesDictionary, TiogaScreenStylesDictionary Executing Style Rules Types for Implementing Style Commands Implementing Style Operations Named Attribute Parameter Operations Real Parameter Operations Glue Parameter Operations Color Parameter Operations Support Procs Support for initializing style parameters Κ΄˜codešœ™Kšœ Οmœ7™BKšœ$™$Kšœ6™6Kšœ0™0K™,J™)K™.—K˜K™(K™šΟk ˜ Jšœ žœ˜.Jšœ žœ ˜Jšœžœžœ˜Jšœžœ ˜Jšœžœ0˜:—K˜KšΠblœžœž ˜!šœžœžœ ˜K˜Kšžœžœžœ˜Kšœžœ˜Kšœ žœ˜)—head™$Kšœžœ˜K˜šΟnœžœžœžœ˜WK˜—š  œžœžœ˜AK˜—Kš  œžœžœ˜:—™š  œžœžœžœžœ˜RK™BK™—Kš   œžœžœžœžœžœ˜qKš  œžœžœ˜3Kš  œžœžœžœžœ˜BKš  œžœžœ žœžœžœ˜XK˜KšœΟc˜)Kšœ‘3˜IKšœ‘3˜Iš œžœžœ žœžœ˜.K™\—Kšœ žœžœ žœ ˜.Kšœžœ‘˜1Kšœ˜Kšœžœ‘ ˜Kšœ žœžœžœ˜KKšœ žœžœžœ˜OKšœ žœžœžœ˜LK˜Kšœžœžœ ˜šœ žœžœ˜K˜ Kšœžœ˜ šœžœž˜K˜K˜K˜-K˜4K˜ Kšž˜—šœ˜K˜——Kšœ žœ%˜2K˜Kšœžœžœ˜šœžœžœ˜K˜7K˜*K˜——šœ™Kš  œžœ˜)Kš  œ ˜Kš  œ˜Kš  œ˜Kš  œ˜šœ$™$Kšœ ˜ Kš  œ ˜Kš  œ˜Kš  œžœžœ ˜5—šœ™Kšœ ˜ Kš  œ ˜Kš  œ ˜Kš  œ˜Kš  œ˜—šœ™Kšœ ˜ Kš  œ ˜Kš  œ ˜Kš  œ˜Kš  œ˜—šœ™Kšœ˜Kš  œ ˜Kš œ ˜Kš œ˜Kš œ˜——™ š  œžœžœžœ ˜?K˜—š  œžœžœžœžœžœ˜5K™—š  œžœžœžœžœžœ˜5K™—š œžœžœžœ˜2K˜—š   œžœžœžœžœ˜AK˜—š   œžœžœ žœ žœ˜HK˜—š   œžœžœžœžœ˜AK˜—š  œžœžœžœ˜1K˜—š  œžœžœ ˜6K˜—Kš œžœžœ ˜8—šœ)™)Kš  œžœžœ žœžœž˜UKš   œžœžœžœžœ˜5Kš œžœžœ˜NKš œžœžœ˜6Kš œžœ˜$Kš œžœ˜$Kš œžœ˜$Kš œžœ˜$š  œžœ˜K˜——K˜Kšžœ˜—…—2