22.4 The Pointer Protocol

pointer   [Protocol Class]

The protocol class that corresponds to a pointing device. If you want to create a new class that behaves like a pointer, it should be a subclass of pointer. All instantiable subclasses of pointer must obey the pointer protocol. Members of this class are mutable. [annotate]


pointerp  object [Protocol Predicate]

Returns true if object is a pointer, otherwise returns false. [annotate]


:port   [Initarg]

The :port initarg is used to specify the port with which the pointer is associated. [annotate]


standard-pointer   [Class]

The instantiable class that implements a pointer. [annotate]


pointer-sheet  pointer [Generic Function]
(setf pointer-sheet)  sheet pointer [Generic Function]

Returns (or sets) the sheet over which the pointer pointer is located. [annotate]

Note: I wonder what would happen, when I would set the sheet of the pointer? [edit]-- Gilbert Baumann 2015-03-17 02:05Z


pointer-button-state  pointer [Generic Function]

Returns the current state of the buttons of the pointer pointer as an integer. This will be a mask consisting of the logior of +pointer-left-button+, +pointer-middle-button+, and +pointer-right-button+. [annotate]


pointer-position  pointer [Generic Function]

Returns the x and y position of the pointer pointer as two values. [annotate]

Note: I assume the coordinates are returned relative to the graft. And if so, which graft? [edit]-- Gilbert Baumann 2015-03-17 01:49Z


(setf* pointer-position)  x y pointer [Generic Function]

Sets the x and y position of the pointer pointer to the specified position. [annotate]

For CLIM implementations that do not support setf*, the "setter" function for this is pointer-set-position. [annotate]


pointer-cursor  pointer [Generic Function]
(setf pointer-cursor)  cursor pointer [Generic Function]

A pointer object usually has a visible cursor associated with it. These functions return (or set) the cursor associated with the pointer pointer. [annotate]

Note: Now, nothing is said about what kind of object this cursor is. [This is not to be confused with the cursor object a stream has.] In X11 a pointer cursor is associated with a window [sheet]. I propose we borrow that and additionally augment output records to specify a cursor. We want a standard set of cursors, like +hourglass+ or +nw-resize+ and on top of this designs should qualify as cursors. [edit]-- Gilbert Baumann 2015-03-17 02:01Z


port  (pointer standard-pointer) [Method]