<<>> <> <> <> <> <> <<>> DIRECTORY ImagerSample USING [RasterSampleMap], IO USING [STREAM], PropList USING [List], Rope USING [ROPE], SF USING [Vec], SharedCell USING [Cell], XlBitmap USING [Bitmap], XTk USING [Widget]; Slate: CEDAR DEFINITIONS ~ BEGIN <> <> globalProperties: READONLY PropList.List; <> <> Session: TYPE = REF SessionRec; <> SessionRec: TYPE = RECORD [ activePage: Page, debugLog: IO.STREAM, --Capable for being used as master for stream widgets nameCell: SharedCell.Cell, properties: PropList.List, private: REF SessionPrivateRec ]; SessionPrivateRec: TYPE; Instance: TYPE = REF InstanceRec; <> InstanceRec: TYPE = RECORD [ session: Session, log: IO.STREAM, --Capable for being used as master for stream widgets uiPrivate: REF ANY ¬ NIL, --private for the implementor of the user interface shell, surface: XTk.Widget ¬ NIL, properties: PropList.List, private: REF InstancePrivateRec ]; InstancePrivateRec: TYPE; SetSessionName: PROC [session: Session, name: Rope.ROPE]; <> <<>> SessionName: PROC [session: Session] RETURNS [Rope.ROPE]; <> <> EventProc: TYPE = PROC [instance: Instance, session: Session, callData: REF, registerData: REF, event: REF]; <> <<>> <<>> <> <> <> <<>> CallGlobalEvent: PROC [instance: Instance ¬ NIL, session: Session ¬ NIL, event: REF, callData: REF ¬ NIL]; <> <<>> CallSessionEvent: PROC [instance: Instance ¬ NIL, session: Session ¬ NIL, event: REF, callData: REF ¬ NIL]; <> <> CallInstanceEvent: PROC [instance: Instance, session: Session ¬ NIL, event: REF, callData: REF ¬ NIL]; <> <> <<>> <> <> RegisterGlobalEventProc: PROC [event: REF, proc: EventProc, registerData: REF ¬ NIL]; RegisterSessionEventProc: PROC [session: Session, event: REF, proc: EventProc, registerData: REF ¬ NIL]; RegisterInstanceEventProc: PROC [instance: Instance, event: REF, proc: EventProc, registerData: REF ¬ NIL]; <> NewSession: PROC [] RETURNS [session: Session]; <> <> NewInstance: PROC [session: Session] RETURNS [instance: Instance]; <> <> DestroyInstance: PROC [instance: Instance]; <> <> <<>> NewInstanceTool: PROC [session: Session, server: REF] RETURNS [instance: Instance]; <> <> CountInstances: PROC [session: Session] RETURNS [INT]; <> InstanceProc: TYPE = PROC [instance: Instance, clientData: REF] RETURNS [quit: BOOL ¬ FALSE]; EnumerateInstances: PROC [session: Session, eachInstance: InstanceProc, clientData: REF ¬ NIL] RETURNS [quit: BOOL ¬ FALSE]; <> <> <<>> CallSessionForAllInstancesOfSession: PROC [session: Session ¬ NIL, event: REF, callData: REF ¬ NIL]; <> <<>> CallGlobalForAllInstancesOfSession: PROC [session: Session ¬ NIL, event: REF, callData: REF ¬ NIL]; <> <<>> <> <> <> <> <> Page: TYPE = REF PageRec; PageRec: TYPE = RECORD [ session: Session, activeArea: XlBitmap.Bitmap, properties: PropList.List ]; NewPage: PROC [session: Session, sz: SF.Vec ¬ [0, 0], initial: ImagerSample.RasterSampleMap ¬ NIL, properties: PropList.List ¬ NIL, bpp: INT ¬ 0] RETURNS [page: Page]; <> <> RemovePage: PROC [page: Page]; <> <> PageProc: TYPE = PROC [page: Page, clientData: REF] RETURNS [quit: BOOL ¬ FALSE]; EnumeratePages: PROC [session: Session, eachPage: PageProc, clientData: REF ¬ NIL] RETURNS [quit: BOOL ¬ FALSE]; <> <> CurrentListOfPages: PROC [session: Session] RETURNS [LIST OF Page]; <> ActivatePage: PROC [page: Page]; <> <<>> ActivePage: PROC [session: Session] RETURNS [page: Page]; <> <<>> END.