DIRECTORY BiScrollers, GGFont, GGBasicTypes, GGCoreTypes, GGHistoryTypes, GGInterfaceTypes, GGModelTypes, Imager, ImagerTransformation, Rope; GGState: CEDAR DEFINITIONS = BEGIN Caret: TYPE = GGInterfaceTypes.Caret; DefaultData: TYPE = GGModelTypes.DefaultData; DisplayStyle: TYPE = GGModelTypes.DisplayStyle; ExtendMode: TYPE = GGModelTypes.ExtendMode; FeatureCycler: TYPE = GGInterfaceTypes.FeatureCycler; FontData: TYPE = GGFont.FontData; GGData: TYPE = GGInterfaceTypes.GGData; GravityType: TYPE = GGInterfaceTypes.GravityType; HistoryEvent: TYPE = GGHistoryTypes.HistoryEvent; SelectMode: TYPE = GGModelTypes.SelectMode; SequenceOfReal: TYPE = GGCoreTypes.SequenceOfReal; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; StrokeEnd: TYPE = GGModelTypes.StrokeEnd; StrokeJoint: TYPE = GGModelTypes.StrokeJoint; Transformation: TYPE = ImagerTransformation.Transformation; ROPE: TYPE = Rope.ROPE; Vector: TYPE = GGBasicTypes.Vector; NotNewVersion: PROC [ggData: GGData, op: ATOM]; ChangeIcon: PROC [ggData: GGData, op: ATOM]; ColorToolIsBound: PROC [ggData: GGData] RETURNS [BOOL _ FALSE]; GetViewport: PROC [ggData: GGData] RETURNS [rect: Imager.Rectangle]; GetGGInputFocus: PROC RETURNS [focusData: GGData _ NIL]; GetAnchor: PROC [ggData: GGData] RETURNS [Caret]; GetBiScrollersTransform: PROC [ggData: GGData] RETURNS [clientToViewer: Transformation]; GetBiScrollersScale: PROC [ggData: GGData] RETURNS [s: REAL]; GetBiScrollersTransforms: PROC [ggData: GGData] RETURNS [clientToViewer, viewerToClient: Transformation]; SetBiScrollersTransform: PROC [ggData: GGData, clientToViewer: Transformation]; BiScrollersShift: PROC [ggData: GGData, dx, dy: REAL]; BiScrollersScale: PROC [ggData: GGData, op: ScaleOp]; ScaleOp: TYPE = RECORD [variant: SELECT op: * FROM reset => [], byArg => [arg: REAL], diff => [x, y: REAL], ENDCASE]; BiScrollersRotate: PROC [ggData: GGData, op: RotateOp]; BiScrollersTransform: PROC [ggData: GGData, t: Transformation]; RotateOp: TYPE = RECORD [variant: SELECT op: * FROM reset => [], byArg => [arg: REAL--degrees--], ENDCASE]; FilterLists: TYPE = REF FilterListsObj; FilterListsObj: TYPE = RECORD [ onSlopes: LIST OF REAL, onRadii: LIST OF REAL, onAngles: LIST OF REAL, onDistances: LIST OF REAL, scaleUnit: REAL _ 72.0 ]; GetFilterLists: PROC [ggData: GGData] RETURNS [filterLists: FilterLists]; AlignmentType: TYPE = {slope, angle, radius, lineDistance}; SetAllAlignmentStates: PROC [ggData: GGData, type: AlignmentType, state: BOOL]; DeleteSelectedAlignments: PROC [ggData: GGData, type: AlignmentType]; ToggleAlignment: PROC [ggData: GGData, alignVal: REAL, type: AlignmentType] RETURNS [menuValue: REAL, changedToOn: BOOL _ FALSE]; GetSlopeValue: PROC [ggData: GGData] RETURNS [degrees: REAL, success: BOOL _ TRUE]; SetSlopeValue: PROC [ggData: GGData, degrees: REAL]; SelectSlope: PROC [ggData: GGData] RETURNS [success: BOOL _ TRUE]; GetSlopeAlignments: PROC [ggData: GGData] RETURNS [values: LIST OF REAL, on: LIST OF BOOL]; AddSlope: PROC [ggData: GGData, degrees: REAL, on: BOOL _ TRUE] RETURNS [alreadyThere: BOOL]; AddSlopeList: PROC [ggData: GGData, degrees: LIST OF REAL, on: LIST OF BOOL _ NIL]; NewSlopeList: PROC [ggData: GGData, degrees: LIST OF REAL, on: LIST OF BOOL _ NIL]; GetAngleAlignments: PROC [ggData: GGData] RETURNS [values: LIST OF REAL, on: LIST OF BOOL]; GetAngleValue: PROC [ggData: GGData] RETURNS [degrees: REAL, success: BOOL _ TRUE]; SetAngleValue: PROC [ggData: GGData, degrees: REAL]; SelectAngle: PROC [ggData: GGData] RETURNS [success: BOOL _ TRUE]; AddAngle: PROC [ggData: GGData, degrees: REAL, on: BOOL _ TRUE] RETURNS [alreadyThere: BOOL]; AddAngleList: PROC [ggData: GGData, degrees: LIST OF REAL, on: LIST OF BOOL _ NIL]; NewAngleList: PROC [ggData: GGData, degrees: LIST OF REAL, on: LIST OF BOOL _ NIL]; GetRadiusAlignments: PROC [ggData: GGData] RETURNS [names: LIST OF ROPE, values: LIST OF REAL, on: LIST OF BOOL]; GetRadiusValue: PROC [ggData: GGData] RETURNS [radius: REAL, success: BOOL _ TRUE]; SetRadiusValue: PROC [ggData: GGData, radius: REAL]; SelectRadius: PROC [ggData: GGData] RETURNS [success: BOOL _ TRUE]; AddRadius: PROC [ggData: GGData, name: ROPE, radius: REAL, on: BOOL _ TRUE] RETURNS [alreadyThere: BOOL]; AddRadiusList: PROC [ggData: GGData, names: LIST OF ROPE, radii: LIST OF REAL, on: LIST OF BOOL _ NIL]; NewRadiusList: PROC [ggData: GGData, names: LIST OF ROPE, radii: LIST OF REAL, on: LIST OF BOOL _ NIL]; GetLineDistanceAlignments: PROC [ggData: GGData] RETURNS [names: LIST OF ROPE, values: LIST OF REAL, on: LIST OF BOOL]; GetLineDistanceValue: PROC [ggData: GGData] RETURNS [distance: REAL, success: BOOL _ TRUE]; SetLineDistanceValue: PROC [ggData: GGData, distance: REAL]; SelectLineDistance: PROC [ggData: GGData] RETURNS [success: BOOL _ TRUE]; AddLineDistance: PROC [ggData: GGData, name: ROPE, distance: REAL, on: BOOL _ TRUE] RETURNS [alreadyThere: BOOL]; AddLineDistanceList: PROC [ggData: GGData, names: LIST OF ROPE, distances: LIST OF REAL, on: LIST OF BOOL _ NIL]; NewLineDistanceList: PROC [ggData: GGData, names: LIST OF ROPE, distances: LIST OF REAL, on: LIST OF BOOL _ NIL]; GetMidpoints: PROC [ggData: GGData] RETURNS [BOOL]; SetMidpoints: PROC [ggData: GGData, midpointsOn: BOOL]; GetShowAlignments: PROC [ggData: GGData] RETURNS [BOOL]; SetShowAlignments: PROC [ggData: GGData, showAlignments: BOOL]; GetDoubleBuffer: PROC [ggData: GGData] RETURNS [BOOL]; SetDoubleBuffer: PROC [ggData: GGData, doubleBuffer: BOOL]; GetActive: PROC [ggData: GGData] RETURNS [BOOL]; SetActive: PROC [ggData: GGData, activeOn: BOOL]; GetReadOnly: PROC [ggData: GGData] RETURNS [BOOL]; SetReadOnly: PROC [ggData: GGData, readOnly: BOOL]; GetPalette: PROC [ggData: GGData] RETURNS [BOOL]; SetPalette: PROC [ggData: GGData, paletteOn: BOOL]; GetDefaults: PROC [ggData: GGData] RETURNS [DefaultData]; SetDefaults: PROC [ggData: GGData, defaults: DefaultData]; GetDisplayStyle: PROC [ggData: GGData] RETURNS [DisplayStyle]; SetDisplayStyle: PROC [ggData: GGData, displayStyle: DisplayStyle]; CycleDisplayStyle: PROC [ggData: GGData, forward: BOOL]; GetDefaultDashPattern: PROC [ggData: GGData] RETURNS [dashed: BOOL, pattern: SequenceOfReal, offset: REAL, length: REAL]; SetDefaultDashPattern: PROC [ggData: GGData, dashed: BOOL, pattern: SequenceOfReal, offset: REAL, length: REAL]; GetDefaultFillColor: PROC [ggData: GGData] RETURNS [fillColor: Imager.Color]; SetDefaultFillColor: PROC [ggData: GGData, fillColor: Imager.Color]; GetDefaultStrokeColor: PROC [ggData: GGData] RETURNS [strokeColor: Imager.Color]; SetDefaultStrokeColor: PROC [ggData: GGData, strokeColor: Imager.Color]; GetDefaultStrokeJoint: PROC [ggData: GGData] RETURNS [strokeJoint: StrokeJoint]; SetDefaultStrokeJoint: PROC [ggData: GGData, strokeJoint: StrokeJoint]; GetDefaultStrokeEnd: PROC [ggData: GGData] RETURNS [strokeEnd: StrokeEnd]; SetDefaultStrokeEnd: PROC [ggData: GGData, strokeEnd: StrokeEnd]; GetDefaultDropShadows: PROC [ggData: GGData] RETURNS [dropShadowOn: BOOL, dropShadowOffset: Vector, dropShadowColor: Imager.Color]; SetDefaultDropShadows: PROC [ggData: GGData, dropShadowOn: BOOL, dropShadowOffset: Vector, dropShadowColor: Imager.Color]; GetDefaultFont: PROC [ggData: GGData] RETURNS [fontData: FontData]; SetDefaultFont: PROC [ggData: GGData, fontData: FontData]; GetGravity: PROC [ggData: GGData] RETURNS [BOOL]; SetGravity: PROC [ggData: GGData, gravityOn: BOOL]; GetGravityExtent: PROC [ggData: GGData] RETURNS [inches: REAL]; SetGravityExtent: PROC [ggData: GGData, inches: REAL]; GetGravityType: PROC [ggData: GGData] RETURNS [gravityType: GravityType]; SetGravityType: PROC [ggData: GGData, gravityType: GravityType]; CycleGravityType: PROC [ggData: GGData, forward: BOOL]; GetHeuristics: PROC [ggData: GGData] RETURNS [BOOL]; SetHeuristics: PROC [ggData: GGData, heuristicsOn: BOOL]; GetScaleUnit: PROC [ggData: GGData] RETURNS [REAL]; -- in units of 1/72 of an inch SetScaleUnit: PROC [ggData: GGData, unit: REAL, history: HistoryEvent]; -- in units of 1/72 of an inch GetSliceToExtend: PROC [ggData: GGData] RETURNS [sliceD: SliceDescriptor]; SetSliceToExtend: PROC [ggData: GGData, sliceD: SliceDescriptor]; GetSelectMode: PROC [ggData: GGData] RETURNS [selectMode: SelectMode]; SetSelectMode: PROC [ggData: GGData, selectMode: SelectMode]; GetExtendMode: PROC [ggData: GGData] RETURNS [extendMode: ExtendMode]; SetExtendMode: PROC [ggData: GGData, extendMode: ExtendMode]; GetQuickClickMode: PROC RETURNS [on: BOOL]; SetQuickClickMode: PROC [on: BOOL]; GetSelectionCycler: PROC [ggData: GGData] RETURNS [featureCycler: GGInterfaceTypes.FeatureCycler]; SetSelectionCycler: PROC [ggData: GGData, featureCycler: GGInterfaceTypes.FeatureCycler]; GetFullName: PROC [ggData: GGData] RETURNS [fullName: ROPE]; GetBiScroller: PROC [ggData: GGData] RETURNS [bs: BiScrollers.BiScroller]; GetWidth: PROC [ggData: GGData] RETURNS [width: INT]; -- actionArea, in "window" units GetHeight: PROC [ggData: GGData] RETURNS [height: INT]; -- actionArea, in "window" units GrabInputFocus: PROC [ggData: GGData]; -- actionArea _ input focus PaintActionArea: PROC [ggData: GGData]; GetAdvisory: PROC [ggData: GGData, fullName: ROPE, versionSpecified: BOOL]; -- just read scene and options StoreAdvisory: PROC [ggData: GGData, fullName: ROPE, versionSpecified: BOOL]; -- just stored scene and options ClearAdvisory: PROC [ggData: GGData]; -- just cleared AdviseRestore: PROC [ggData: GGData] RETURNS [ok: BOOL _ FALSE]; -- is restore safe?? ShowHelp: PROC [ggData: GGData, category: ATOM]; Typescript: PROC [ggData: GGData]; ReloadTipTable: PROC [ggData: GGData] RETURNS [success: BOOL _ TRUE]; GGEdited: PROC [ggData: GGData, clientData: REF]; END. RGGState.mesa Contents: Routines for getting and setting values in the Gargoyle user interface state. Copyright Σ 1986, 1987 by Xerox Corporation. All rights reserved. Pier, September 18, 1990 11:09 am PDT Bier, December 17, 1991 10:55 am PST Tells viewer it is unedited. op is either $clear or $clean. The unedited icon for a cleared or cleaned Viewer is used. op is either $clear or $clean. The unedited icon for a cleared or cleaned Viewer is used. Finds the rectangle representing the bounds of the current action area. The larger of the two scaling components of clientToViewer. Alignment Menus GetFilterLists: PROC [filters: GGInterfaceTypes.Filters] RETURNS [filterLists: FilterLists]; Add the listed slopes to the slopes that are currently in the slope alignment menu. "on" is the same length as "degrees" (or is of length 0). Each element of on is TRUE iff the corresponding slope button should be turned on. If on=NIL, then all added buttons will be off. Set the slope alignment menu from the lists given. "on" is the same length as "degrees". Each element of on is TRUE iff the corresponding slope button should be turned on. If on=NIL, then all slope buttons will be off. Add the listed angles to the angles that are currently in the angle alignment menu. "on" is the same length as "degrees" (or of length 0). Each element of on is TRUE iff the corresponding angle button should be turned on. If on=NIL, then all angle buttons will be off. Set the angle alignment menu from the lists given. "on" is the same length as "degrees" (or of length 0). Each element of on is TRUE iff the corresponding angle button should be turned on. If on=NIL, then all angle buttons will be off. Add the listed radii to the radii that are currently in the radius alignment menu. "on" is the same length as "radii" (or of length 0). Each element of on is TRUE iff the corresponding radius button should be turned on. If on=NIL, then added buttons will be off. Set the radius alignment menu from the lists given. "on" is the same length as "radii". Each element of on is TRUE iff the corresponding radius button should be turned on. If on=NIL, then all radius buttons will be off. Add the listed distances to the distances that are currently in the distance alignment menu. "on" is the same length as "distances" (or of length 0). Each element of on is TRUE iff the corresponding distance button should be turned on. If on=NIL, then all distance buttons will be off. Set the distance alignment menu from the lists given. "on" is the same length as "distances" (or of length 0). Each element of on is TRUE iff the corresponding distance button should be turned on. If on=NIL, then all distance buttons will be off. Gargoyle Behaviors Graphical Style Gravity Other Hidden State (yuk) Debugging and Experiments PrecomputeMidpoints: PROC [] RETURNS [BOOL]; Names, files, windows file name like /net/server/user/gargoyle/Foo.gargoyle or /GargoylePics/MyPics/Foo.gargoyle!3 ggData.scene has just been edited. Perform appropriate actions (e.g., flush scripts to disk and display the "[Edited]" symbol on the viewer, if any). Κ !˜Icodešœ ™ šœX™XKšœB™BKšœ%™%Kšœ$™$—K™šΟk ˜ Kšœƒ˜ƒ—K˜KšΟnœœ œ˜"K˜Kšœœ˜%Kšœ œ˜-Kšœœ˜/Kšœ œ˜+Kšœœ"˜5Kšœ œ˜!Kšœœ˜'Kšœ œ ˜1Kšœœ˜1Kšœ œ˜+Kšœœ˜2Kšœœ ˜5Kšœ œ˜)Kšœ œ˜-Kšœœ'˜;Kšœœœ˜Kšœœ˜#K˜K˜šž œœœ˜/K™x—šž œœœ˜,K™Z—Kš žœœœœœ˜?šž œœœ˜DK™G—Kšžœœœœ˜8Kšž œœœ ˜1Kšžœœœ"˜Xšžœœœœ˜=Kšœ;™;—Kšžœœœ2˜iKšžœœ2˜OKšžœœœ˜6šžœœ˜5šœ œœ œ˜2Kšœ ˜ Kšœœ˜Kšœœ˜Kšœ˜ ——Kšžœœ ˜7šžœœ%˜?šœ œœ œ˜3Kšœ ˜ KšœΟc œ˜ Kšœ˜ ——K˜K™K˜Kšœ œœ˜'šœœœ˜Kšœ œœœ˜Kšœ œœœ˜Kšœ œœœ˜Kšœ œœœ˜Kšœ œ˜K˜—Kšžœœ%œ™\Kšžœœœ˜IKšœœ(˜;Kšžœœ.œ˜OKšžœœ'˜EKšžœœœœ œœœ˜K˜Kš ž œœœ œ œœ˜SKšž œœœ˜4Kš ž œœœ œœ˜BKšžœœœ œœœœœœ˜[Kšžœœœœœœœ˜]šž œœœœœœœœœ˜SKšœ’™’—šž œœœœœœœœœ˜SKšœέ™έ—˜K˜—Kšžœœœ œœœœœœ˜[Kš ž œœœ œ œœ˜SKšž œœœ˜4Kš ž œœœ œœ˜BKšžœœœœœœœ˜]šž œœœœœœœœœ˜SKšœ™—šž œœœœœœœœœ˜SKšœξ™ξ—˜K˜—Kšžœœœ œœœ œœœœœœ˜qKš žœœœ œ œœ˜SKšžœœœ˜4Kš ž œœœ œœ˜CKšž œœœ œœœœœ˜išž œœœœœ œœœœœœœ˜gKšœ‰™‰—šž œœœœœ œœœœœœœ˜gKšœή™ή—˜K˜—Kšžœœœ œœœ œœœœœœ˜wKš žœœœ œ œœ˜[Kšžœœœ˜Kšžœœ.˜CKšžœœœ˜8Kš žœœœ œ#œ œ˜yKš žœœœ#œ œ˜pKšžœœœ˜MKšžœœ+˜DKšžœœœ˜QKšžœœ-˜HKšžœœœ˜PKšžœœ,˜GKšžœœœ˜JKšžœœ(˜AKšžœœœœ;˜ƒKšžœœ œ;˜zK˜Kšžœœœ˜CKšžœœ&˜:K˜K™K™Kšž œœœœ˜1šž œœœ˜3K˜—Kšžœœœ œ˜?šžœœœ˜6K˜—Kšžœœœ˜IKšžœœ,˜@šžœœœ˜7K˜—Kšž œœœœ˜4šž œœ œ˜9K˜—Kš ž œœœœŸ˜Ršž œœœŸ˜fK˜—K™K™K™Kšžœœœ˜JKšžœœ+˜AK˜K™K™Kšž œœœ˜FKšž œœ*˜=Kšž œœœ˜FKšž œœ*˜=Kšžœœœœ˜+Kšžœœœ˜#Kšžœœœ1˜bKšžœœA˜YK˜K™K™Kšžœœœœ™,K˜K™šž œœœ œ˜