<> <> <> <> DIRECTORY Atom USING [PropList], Rope USING [ROPE], ViewerClasses USING [Column, Viewer, ViewerFlavor]; Desktops: CEDAR DEFINITIONS = BEGIN OPEN ViewerClasses; <<>> <> <> <> <> <> <> DeskTop: TYPE = Viewer; Entry: TYPE = REF EntryRec; EntryRec: TYPE = RECORD[ viewer: ViewerClasses.Viewer _ NIL, -- a hint props: Atom.PropList _ NIL, -- saves properties name: Rope.ROPE _ NIL, -- name stored in the header backingFile: Rope.ROPE _ NIL, -- name of the backingfile flavor: ViewerClasses.ViewerFlavor _ NIL, column: ViewerClasses.Column _ left, iconic: BOOLEAN _ FALSE, position: INTEGER _ 0, -- icon position height: INTEGER _ 0, -- suggested height when open wy, wh: INTEGER _ 0 ]; Create: PROC [name: Rope.ROPE] RETURNS [desktop: DeskTop]; <> <<>> FlyTo: PROC [desktop: DeskTop]; <> <<>> EnumerateEntries: PROC[desktop: DeskTop, proc: EnumProc]; EnumProc: TYPE = PROC [entry: Entry] RETURNS [continue: BOOL _ TRUE]; <> MoveViewer: PROC[viewer: Viewer, old, new: DeskTop, remove: BOOL _ TRUE]; <> <<>> AddEntry: PROC[desktop: DeskTop, entry: Entry, height, limit: INTEGER _ -1]; <> <<>> ReadFile: PROC[filename: Rope.ROPE]; <> WriteFile: PROC[desktop: DeskTop, filename: Rope.ROPE _ NIL]; <> ClearIcons: PROC; <> <<>> END.