DIRECTORY Intime USING [EventTime], Process USING [Milliseconds], Rope USING [ROPE]; TIPUser: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; TIPTable: TYPE ~ REF TIPTableRep; TIPTableRep: TYPE ~ RECORD [ link: TIPTable _ NIL, opaque: BOOL _ TRUE, mouseTicks: Process.Milliseconds _ 50, impl: REF TIPTableImplRep ]; TIPTableImplRep: TYPE; TIPScreenCoords: TYPE ~ REF TIPScreenCoordsRec; TIPScreenCoordsRec: TYPE ~ RECORD [mouseX: INTEGER, mouseY: INTEGER, color: BOOL]; TIPTime: TYPE ~ REF Intime.EventTime; InstantiateNewTIPTable: PROC [file: ROPE _ NIL] RETURNS [table: TIPTable]; InvalidTable: SIGNAL [errorMsg: ROPE]; TransparentTIPTable: PROC RETURNS [table: TIPTable]; TIPPredicate: TYPE ~ PROC RETURNS [BOOL]; RegisterTIPPredicate: PROC [key: ATOM, p: TIPPredicate]; END. 8TIPUser.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last Edited by McGregor, October 21, 1982 10:16 am Last Edited by: Maxwell, January 3, 1983 11:01 am Doug Wyatt, April 14, 1985 9:06:02 pm PST TIPScreenCoords are used to pass the hardware cursor information. [0,0] is lower left. TIP tables are user-editable and normally live in the FS file system. Clients may instantiate new tables with this routine. An error in reading in a new table can produce the continuable InvalidTable signal. In rare cases, a client wishes to gain access to the lower level increek actions. This TIPTable always returns each action as a list of: {ClassIncreek.Increek, REF ClassIncreek.ActionBody).. a user-defined predicate may be included in the enables list of a TIPTable via this association mechanism. Κ– "Mesa" style˜codešΟc ™ Kšœ Οmœ1™