All Manuals > CLIM 2.0 User Guide > 19 Ports, Grafts, and Mirrored Sheets

19.2 Ports

A port is a logical connection to a display server. It is responsible for managing display output and server resources and for handling incoming input events. Typically, the programmer will create a single port that will manage all of the windows on the display.

A port is described by a server path. A server path is a list whose first element is a keyword that selects the kind of port. The remainder of the server path is a list of alternating keywords and values whose interpretation is specific to the port type.

port Protocol Class

Summary: The protocol class that corresponds to a port. If you want to create a new class that behaves like a port, it should be a subclass of port. Subclasses of port must obey the medium protocol.

portp Function

portp object

Summary: Returns t if object is a port; otherwise, it returns nil.

basic-port Class

Summary: The basic class on which all CLIM ports are built, a subclass of port. This class is an abstract class intended only to be subclassed, not instantiated.

find-port Function

find-port &key (server-path *default-server-path*)

Summary: Finds a port that provides a connection to the window server addressed by server-path. If no such connection exists, a new connection will be constructed and returned. find-port is called automatically by make-application-frame.

The following server paths are currently supported on the appropriate platforms:

:motif
:win32 Server Paths

:motif &key host display-number screen-id

Summary: Given this server path, find-port finds a port for the X server on the given host, using the display-id and screen-id.

On a Unix host, if these values are not supplied, the defaults are derived from the DISPLAY environment variable.

*default-server-path* Variable

Summary: This special variable is used by find-port and its callers to default the choice of a display service to locate. Binding this variable in a dynamic context will affect the defaulting of this argument to these functions. This variable will be defaulted according to the environment. In the Unix environment, for example, CLIM tries to set this variable based on the value of the DISPLAY environment variable.

port Generic Function

port object

Summary: Returns the port associated with object. port is defined for all sheet classes (including grafts and streams that support the CLIM graphics protocol), mediums, and application frames. For degrafted sheets or other objects that are not currently associated with particular ports, port will return nil.

with-port-locked Macro

with-port-locked port &body body

Summary: Executes body after grabbing a lock associated with the port port, which may be a port or any object on which the function port works. If object currently has no port, body will be executed without locking.

body may have zero or more declarations as its first forms.

port-server-path Generic Function

port-server-path port

Summary: Returns the server path associated with the port port.

port-properties Generic Function

port-properties port indicator

(setf port-properties) Generic Function

(setf port-properties) property port indicator

Summary: These functions provide a port-based property list. They are primarily intended to support users of CLIM who may need to associate certain information with ports. For example, the implementor of a special graphics package may need to maintain resource tables for each port on which it is used.

map-over-ports Function

map-over-ports function

Summary: Invokes function on each existing port. function is a function of one argument, the port; it has dynamic extent.

restart-port Generic Function

restart-port port

Summary: In a multi-process Lisp, restart-port restarts the global input processing loop associated with the port port. All pending input events are discarded. Server resources may or may not be released and reallocated during or after this action.

destroy-port Generic Function

destroy-port port

Summary: Destroys the connection with the window server represented by the port port. All sheet hierarchies that are associated with port are forcibly degrafted by disowning the children of grafts on port using sheet-disown-child. All server resources utilized by such hierarchies or by any graphics objects on port are released as part of the connection shutdown.


CLIM 2.0 User Guide - 01 Dec 2021 19:39:01