<> <> <> <> <> <> DIRECTORY Icons, Imager, Rope, GGBasicTypes, GGInterfaceTypes, GGModelTypes, ViewerClasses; GGWindow: CEDAR DEFINITIONS = BEGIN Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; Viewer: TYPE = ViewerClasses.Viewer; GGData: TYPE = GGInterfaceTypes.GGData; EditedProc: TYPE = PROC [ggData: GGData, clientData: REF ANY]; <> ForegroundParts: TYPE = {triggerBag, triggerBagNotSceneBag, alignBag, bitMap, none, sceneBag}; RestoreScreenAndInvariants: PROC [paintAction: ATOM, ggData: GGData, remake: ForegroundParts _ triggerBag, edited: BOOL _ TRUE, okToSkipCapture: BOOL]; <> <> < alignBag => foreground bitMap chain must be remade. A value of triggerBag means the whole chain will be remade. A value of none, means it is all OK. sceneBag is a special value which means that only the sceneTriggerBag needs to be remade. The values triggerBag and sceneBag cause the sceneBag to be rebuilt.>> <> <<>> SaveCaretPos: PROC [ggData: GGData]; NewCaretPos: PROC [ggData: GGData]; <<>> <> RegisterEditedProc: PROC [ggData: GGData, editedProc: EditedProc, clientData: REF ANY]; <> <> CreateWindow: PROC [scene: Scene, iconic: BOOL, paint: BOOL, workingDirectory: Rope.ROPE] RETURNS [ggData: GGData]; CreateChildViewer: PROC [ scene: Scene, wx, wy: INTEGER _ 0, ww, wh: INTEGER _ 0, cx, cy: INTEGER _ 0, cw, ch: INTEGER _ 0, parent: Viewer, workingDirectory: Rope.ROPE, clientData: REF ANY _ NIL, paint: BOOL _ TRUE] RETURNS [viewer: Viewer, ggData: GGData]; <> CreateGGData: PROC [scene: Scene, workingDirectory: Rope.ROPE] RETURNS [ggData: GGData]; <> <<>> InitIcons: PROC; -- called by UserProfileProc GetIcons: PROC RETURNS [panelIcon, noNameIcon, dirtyNoNameIcon, cleanIcon, dirtyIcon: Icons.IconFlavor]; <> ViewerToWorld: PROC [viewerPoint: Point, ggData: GGData] RETURNS [worldPoint: Point]; WorldToViewer: PROC [worldPoint: Point, ggData: GGData] RETURNS [viewerPoint: Point]; <> SetCursorLooks: PROC [type: GGInterfaceTypes.GravityType, ggData: GGData, off: BOOL _ FALSE]; <> <<>> END. <> < World procs.>> <<>>