aboutsummaryrefslogtreecommitdiff
path: root/libX11/specs/libX11/CH02
diff options
context:
space:
mode:
Diffstat (limited to 'libX11/specs/libX11/CH02')
-rw-r--r--libX11/specs/libX11/CH022051
1 files changed, 0 insertions, 2051 deletions
diff --git a/libX11/specs/libX11/CH02 b/libX11/specs/libX11/CH02
deleted file mode 100644
index dbf0b4850..000000000
--- a/libX11/specs/libX11/CH02
+++ /dev/null
@@ -1,2051 +0,0 @@
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2000 The Open Group
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining
-.\" a copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, sublicense, and/or sell copies of the Software, and to
-.\" permit persons to whom the Software is furnished to do so, subject to
-.\" the following conditions:
-.\"
-.\" The above copyright notice and this permission notice shall be included
-.\" in all copies or substantial portions of the Software.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-.\" OTHER DEALINGS IN THE SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of The Open Group shall
-.\" not be used in advertising or otherwise to promote the sale, use or
-.\" other dealings in this Software without prior written authorization
-.\" from The Open Group.
-.\"
-.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
-.\" Digital Equipment Corporation
-.\"
-.\" Portions Copyright \(co 1990, 1991 by
-.\" Tektronix, Inc.
-.\"
-.\" Permission to use, copy, modify and distribute this documentation for
-.\" any purpose and without fee is hereby granted, provided that the above
-.\" copyright notice appears in all copies and that both that copyright notice
-.\" and this permission notice appear in all copies, and that the names of
-.\" Digital and Tektronix not be used in in advertising or publicity pertaining
-.\" to this documentation without specific, written prior permission.
-.\" Digital and Tektronix makes no representations about the suitability
-.\" of this documentation for any purpose.
-.\" It is provided ``as is'' without express or implied warranty.
-.\"
-\&
-.sp 1
-.ce 3
-\s+1\fBChapter 2\fP\s-1
-
-\s+1\fBDisplay Functions\fP\s-1
-.sp 2
-.nr H1 2
-.nr H2 0
-.nr H3 0
-.nr H4 0
-.nr H5 0
-.na
-.LP
-.XS
-Chapter 2: Display Functions
-.XE
-Before your program can use a display, you must establish a connection
-to the X server.
-Once you have established a connection,
-you then can use the Xlib macros and functions discussed in this chapter
-to return information about the display.
-This chapter discusses how to:
-.IP \(bu 5
-Open (connect to) the display
-.IP \(bu 5
-Obtain information about the display, image formats, or screens
-.IP \(bu 5
-Generate a
-.PN NoOperation
-protocol request
-.IP \(bu 5
-Free client-created data
-.IP \(bu 5
-Close (disconnect from) a display
-.IP \(bu 5
-Use X Server connection close operations
-.IP \(bu 5
-Use Xlib with threads
-.IP \(bu 5
-Use internal connections
-.NH 2
-Opening the Display
-.XS
-\*(SN Opening the Display
-.XE
-.LP
-To open a connection to the X server that controls a display, use
-.PN XOpenDisplay .
-.IN "XOpenDisplay" "" "@DEF@"
-.LP
-.sM
-.FD 0
-Display *XOpenDisplay\^(\^\fIdisplay_name\fP\^)
-.br
- char *\fIdisplay_name\fP\^;
-.FN
-.IP \fIdisplay_name\fP 1i
-Specifies the hardware display name, which determines the display
-and communications domain to be used.
-On a POSIX-conformant system, if the display_name is NULL,
-it defaults to the value of the DISPLAY environment variable.
-.IN "Environment" "DISPLAY"
-.LP
-.eM
-The encoding and interpretation of the display name are
-implementation-dependent.
-Strings in the Host Portable Character Encoding are supported;
-support for other characters is implementation-dependent.
-On POSIX-conformant systems,
-the display name or DISPLAY environment variable can be a string in the format:
-.LP
-.sM
-.Ds 0
-.TA 1i
-.ta 1i
- \fIprotocol\fP\^/\^\fIhostname\fP\^:\^\fInumber\fP\^.\^\fIscreen_number\fP
-.De
-.IP \fIprotocol\fP 1i
-Specifies a protocol family or an alias for a protocol family. Supported
-protocol families are implementation dependent. The protocol entry is
-optional. If protocol is not specified, the / separating protocol and
-hostname must also not be specified.
-.IP \fIhostname\fP 1i
-Specifies the name of the host machine on which the display is physically
-attached.
-You follow the hostname with either a single colon (:) or a double colon (::).
-.IP \fInumber\fP 1i
-Specifies the number of the display server on that host machine.
-You may optionally follow this display number with a period (.).
-A single CPU can have more than one display.
-Multiple displays are usually numbered starting with zero.
-.IN "Screen"
-.IP \fIscreen_number\fP 1i
-Specifies the screen to be used on that server.
-Multiple screens can be controlled by a single X server.
-The screen_number sets an internal variable that can be accessed by
-using the
-.PN DefaultScreen
-macro or the
-.PN XDefaultScreen
-function if you are using languages other than C (see section 2.2.1).
-.LP
-.eM
-For example, the following would specify screen 1 of display 0 on the
-machine named ``dual-headed'':
-.LP
-.Ds
-dual-headed:0.1
-.De
-.LP
-The
-.PN XOpenDisplay
-function returns a
-.PN Display
-structure that serves as the
-connection to the X server and that contains all the information
-about that X server.
-.PN XOpenDisplay
-connects your application to the X server through TCP
-or DECnet communications protocols,
-or through some local inter-process communication protocol.
-.IN "Protocol" "TCP"
-.IN "Protocol" "DECnet"
-If the protocol is specified as "tcp", "inet", or "inet6", or
-if no protocol is specified and the hostname is a host machine name and a single colon (:)
-separates the hostname and display number,
-.PN XOpenDisplay
-connects using TCP streams. (If the protocol is specified as "inet", TCP over
-IPv4 is used. If the protocol is specified as "inet6", TCP over IPv6 is used.
-Otherwise, the implementation determines which IP version is used.)
-If the hostname and protocol are both not specified,
-Xlib uses whatever it believes is the fastest transport.
-If the hostname is a host machine name and a double colon (::)
-separates the hostname and display number,
-.PN XOpenDisplay
-connects using DECnet.
-A single X server can support any or all of these transport mechanisms
-simultaneously.
-A particular Xlib implementation can support many more of these transport
-mechanisms.
-.LP
-.IN "Display"
-If successful,
-.PN XOpenDisplay
-returns a pointer to a
-.PN Display
-structure,
-which is defined in
-.hN X11/Xlib.h .
-If
-.PN XOpenDisplay
-does not succeed, it returns NULL.
-After a successful call to
-.PN XOpenDisplay ,
-all of the screens in the display can be used by the client.
-The screen number specified in the display_name argument is returned
-by the
-.PN DefaultScreen
-macro (or the
-.PN XDefaultScreen
-function).
-You can access elements of the
-.PN Display
-and
-.PN Screen
-structures only by using the information macros or functions.
-For information about using macros and functions to obtain information from
-the
-.PN Display
-structure,
-see section 2.2.1.
-.LP
-X servers may implement various types of access control mechanisms
-(see section 9.8).
-.NH 2
-Obtaining Information about the Display, Image Formats, or Screens
-.XS
-\*(SN Obtaining Information about the Display, Image Formats, or Screens
-.XE
-.LP
-The Xlib library provides a number of useful macros
-and corresponding functions that return data from the
-.PN Display
-structure.
-The macros are used for C programming,
-and their corresponding function equivalents are for other language bindings.
-This section discusses the:
-.IP \(bu 5
-Display macros
-.IP \(bu 5
-Image format functions and macros
-.IP \(bu 5
-Screen information macros
-.LP
-.IN "Display" "data structure"
-All other members of the
-.PN Display
-structure (that is, those for which no macros are defined) are private to Xlib
-and must not be used.
-Applications must never directly modify or inspect these private members of the
-.PN Display
-structure.
-.NT Note
-The
-.PN XDisplayWidth ,
-.PN XDisplayHeight ,
-.PN XDisplayCells ,
-.PN XDisplayPlanes ,
-.PN XDisplayWidthMM ,
-and
-.PN XDisplayHeightMM
-functions in the next sections are misnamed.
-These functions really should be named Screen\fIwhatever\fP
-and XScreen\fIwhatever\fP, not Display\fIwhatever\fP or XDisplay\fIwhatever\fP.
-Our apologies for the resulting confusion.
-.NE
-.NH 3
-Display Macros
-.XS
-\*(SN Display Macros
-.XE
-.LP
-Applications should not directly modify any part of the
-.PN Display
-and
-.PN Screen
-structures.
-The members should be considered read-only,
-although they may change as the result of other operations on the display.
-.LP
-The following lists the C language macros,
-their corresponding function equivalents that are for other language bindings,
-and what data both can return.
-.LP
-.sp
-.sM
-.FD 0
-AllPlanes
-.sp
-unsigned long XAllPlanes(\^)
-.FN
-.LP
-.eM
-.IN "AllPlanes" "" "@DEF@"
-.IN "XAllPlanes" "" "@DEF@"
-Both return a value with all bits set to 1 suitable for use in a plane argument to
-a procedure.
-.LP
-.sp
-Both
-.PN BlackPixel
-and
-.PN WhitePixel
-can be used in implementing a monochrome application.
-These pixel values are for permanently allocated entries in the default
-colormap.
-The actual RGB (red, green, and blue) values are settable on some screens
-and, in any case, may not actually be black or white.
-The names are intended to convey the expected relative intensity of the colors.
-.sM
-.FD 0
-BlackPixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-unsigned long XBlackPixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "BlackPixel" "" "@DEF@"
-.IN "XBlackPixel" "" "@DEF@"
-Both return the black pixel value for the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-WhitePixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-unsigned long XWhitePixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "WhitePixel" "" "@DEF@"
-.IN "XWhitePixel" "" "@DEF@"
-Both return the white pixel value for the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-ConnectionNumber\^(\^\fIdisplay\fP\^)
-.sp
-int XConnectionNumber\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ConnectionNumber" "" "@DEF@"
-.IN "XConnectionNumber" "" "@DEF@"
-Both return a connection number for the specified display.
-On a POSIX-conformant system,
-this is the file descriptor of the connection.
-.LP
-.sp
-.sM
-.FD 0
-DefaultColormap\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-Colormap XDefaultColormap\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DefaultColormap" "" "@DEF@"
-.IN "XDefaultColormap" "" "@DEF@"
-Both return the default colormap ID for allocation on the specified screen.
-Most routine allocations of color should be made out of this colormap.
-.LP
-.sp
-.sM
-.FD 0
-DefaultDepth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDefaultDepth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DefaultDepth" "" "@DEF@"
-.IN "XDefaultDepth" "" "@DEF@"
-Both return the depth (number of planes) of the default root window for the
-specified screen.
-Other depths may also be supported on this screen (see
-.PN XMatchVisualInfo ).
-.LP
-.sp
-.IN "XListDepths" "" "@DEF@"
-To determine the number of depths that are available on a given screen, use
-.PN XListDepths .
-.sM
-.FD 0
-int *XListDepths\^(\^\fIdisplay\fP, \fIscreen_number\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP;
-.br
- int \fIscreen_number\fP;
-.br
- int *\fIcount_return\fP;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.ds Cn depths
-.IP \fIcount_return\fP 1i
-Returns the number of \*(Cn.
-.LP
-.eM
-The
-.PN XListDepths
-function returns the array of depths
-that are available on the specified screen.
-If the specified screen_number is valid and sufficient memory for the array
-can be allocated,
-.PN XListDepths
-sets count_return to the number of available depths.
-Otherwise, it does not set count_return and returns NULL.
-To release the memory allocated for the array of depths, use
-.PN XFree .
-.LP
-.sp
-.sM
-.FD 0
-DefaultGC\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-GC XDefaultGC\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DefaultGC" "" "@DEF@"
-.IN "XDefaultGC" "" "@DEF@"
-Both return the default graphics context for the root window of the
-specified screen.
-This GC is created for the convenience of simple applications
-and contains the default GC components with the foreground and
-background pixel values initialized to the black and white
-pixels for the screen, respectively.
-You can modify its contents freely because it is not used in any Xlib
-function.
-This GC should never be freed.
-.LP
-.sp
-.sM
-.FD 0
-DefaultRootWindow\^(\^\fIdisplay\fP\^)
-.sp
-Window XDefaultRootWindow\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "DefaultRootWindow" "" "@DEF@"
-.IN "XDefaultRootWindow" "" "@DEF@"
-Both return the root window for the default screen.
-.LP
-.sp
-.sM
-.FD 0
-DefaultScreenOfDisplay\^(\^\fIdisplay\fP\^)
-.sp
-Screen *XDefaultScreenOfDisplay\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "DefaultScreenOfDisplay" "" "@DEF@"
-.IN "XDefaultScreenOfDisplay" "" "@DEF@"
-Both return a pointer to the default screen.
-.LP
-.sp
-.sM
-.FD 0
-ScreenOfDisplay\^(\^\fIdisplay\fP, \fIscreen_number\fP\^)
-.sp
-Screen *XScreenOfDisplay\^(\^\fIdisplay\fP, \fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "ScreenOfDisplay" "" "@DEF@"
-.IN "XScreenOfDisplay" "" "@DEF@"
-Both return a pointer to the indicated screen.
-.LP
-.sp
-.sM
-.FD 0
-DefaultScreen\^(\^\fIdisplay\fP\^)
-.sp
-int XDefaultScreen\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "DefaultScreen" "" "@DEF@"
-.IN "XDefaultScreen" "" "@DEF@"
-Both return the default screen number referenced by the
-.PN XOpenDisplay
-function.
-This macro or function should be used to retrieve the screen number
-in applications that will use only a single screen.
-.LP
-.sp
-.sM
-.FD 0
-DefaultVisual\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-Visual *XDefaultVisual\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DefaultVisual" "" "@DEF@"
-.IN "XDefaultVisual" "" "@DEF@"
-Both return the default visual type for the specified screen.
-For further information about visual types,
-see section 3.1.
-.LP
-.sp
-.sM
-.FD 0
-DisplayCells\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayCells\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayCells" "" "@DEF@"
-.IN "XDisplayCells" "" "@DEF@"
-Both return the number of entries in the default colormap.
-.LP
-.sp
-.sM
-.FD 0
-DisplayPlanes\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayPlanes\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayPlanes" "" "@DEF@"
-.IN "XDisplayPlanes" "" "@DEF@"
-Both return the depth of the root window of the specified screen.
-For an explanation of depth,
-see the glossary.
-.LP
-.sp
-.sM
-.FD 0
-DisplayString\^(\^\fIdisplay\fP\^)
-.sp
-char *XDisplayString\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "DisplayString" "" "@DEF@"
-.IN "XDisplayString" "" "@DEF@"
-Both return the string that was passed to
-.PN XOpenDisplay
-when the current display was opened.
-On POSIX-conformant systems,
-if the passed string was NULL, these return the value of
-the DISPLAY environment variable when the current display was opened.
-.IN "POSIX System Call" "fork"
-These are useful to applications that invoke the
-.PN fork
-system call and want to open a new connection to the same display from the
-child process as well as for printing error messages.
-.LP
-.sp
-.sM
-.FD 0
-long XExtendedMaxRequestSize(\^\fIdisplay\fP\^)
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "XExtendedMaxRequestSize" "" "@DEF@"
-The
-.PN XExtendedMaxRequestSize
-function returns zero if the specified display does not support an
-extended-length protocol encoding; otherwise,
-it returns the maximum request size (in 4-byte units) supported
-by the server using the extended-length encoding.
-The Xlib functions
-.PN XDrawLines ,
-.PN XDrawArcs ,
-.PN XFillPolygon ,
-.PN XChangeProperty ,
-.PN XSetClipRectangles ,
-and
-.PN XSetRegion
-will use the extended-length encoding as necessary, if supported
-by the server. Use of the extended-length encoding in other Xlib
-functions (for example,
-.PN XDrawPoints ,
-.PN XDrawRectangles ,
-.PN XDrawSegments ,
-.PN XFillArcs ,
-.PN XFillRectangles ,
-.PN XPutImage )
-is permitted but not required; an Xlib implementation may choose to
-split the data across multiple smaller requests instead.
-.LP
-.sp
-.sM
-.FD 0
-long XMaxRequestSize(\^\fIdisplay\fP\^)
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "XMaxRequestSize" "" "@DEF@"
-The
-.PN XMaxRequestSize
-function returns the maximum request size (in 4-byte units) supported
-by the server without using an extended-length protocol encoding.
-Single protocol requests to the server can be no larger than this size
-unless an extended-length protocol encoding is supported by the server.
-The protocol guarantees the size to be no smaller than 4096 units
-(16384 bytes).
-Xlib automatically breaks data up into multiple protocol requests
-as necessary for the following functions:
-.PN XDrawPoints ,
-.PN XDrawRectangles ,
-.PN XDrawSegments ,
-.PN XFillArcs ,
-.PN XFillRectangles ,
-and
-.PN XPutImage .
-.LP
-.sp
-.sM
-.FD 0
-LastKnownRequestProcessed\^(\^\fIdisplay\fP\^)
-.sp
-unsigned long XLastKnownRequestProcessed\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "LastKnownRequestProcessed" "" "@DEF@"
-.IN "XLastKnownRequestProcessed" "" "@DEF@"
-Both extract the full serial number of the last request known by Xlib
-to have been processed by the X server.
-Xlib automatically sets this number when replies, events, and errors
-are received.
-.LP
-.sp
-.sM
-.FD 0
-NextRequest\^(\^\fIdisplay\fP\^)
-.sp
-unsigned long XNextRequest\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "NextRequest" "" "@DEF@"
-.IN "XNextRequest" "" "@DEF@"
-Both extract the full serial number that is to be used for the next
-request.
-Serial numbers are maintained separately for each display connection.
-.LP
-.sp
-.sM
-.FD 0
-ProtocolVersion\^(\^\fIdisplay\fP\^)
-.sp
-int XProtocolVersion\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ProtocolVersion" "" "@DEF@"
-.IN "XProtocolVersion" "" "@DEF@"
-Both return the major version number (11) of the X protocol associated with
-the connected display.
-.LP
-.sp
-.sM
-.FD 0
-ProtocolRevision\^(\^\fIdisplay\fP\^)
-.sp
-int XProtocolRevision\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ProtocolRevision" "" "@DEF@"
-.IN "XProtocolRevision" "" "@DEF@"
-Both return the minor protocol revision number of the X server.
-.LP
-.sp
-.sM
-.FD 0
-QLength\^(\^\fIdisplay\fP\^)
-.sp
-int XQLength\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "QLength" "" "@DEF@"
-.IN "XQLength" "" "@DEF@"
-Both return the length of the event queue for the connected display.
-Note that there may be more events that have not been read into
-the queue yet (see
-.PN XEventsQueued ).
-.LP
-.sp
-.sM
-.FD 0
-RootWindow\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-Window XRootWindow\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "Window" "RootWindow"
-.IN "RootWindow" "" "@DEF@"
-.IN "Window" "XRootWindow"
-.IN "XRootWindow" "" "@DEF@"
-Both return the root window.
-These are useful with functions that need a drawable of a particular screen
-and for creating top-level windows.
-.LP
-.sp
-.sM
-.FD 0
-ScreenCount\^(\^\fIdisplay\fP\^)
-.sp
-int XScreenCount\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ScreenCount" "" "@DEF@"
-.IN "XScreenCount" "" "@DEF@"
-Both return the number of available screens.
-.LP
-.sp
-.sM
-.FD 0
-ServerVendor\^(\^\fIdisplay\fP\^)
-.sp
-char *XServerVendor\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ServerVendor" "" "@DEF@"
-.IN "XServerVendor" "" "@DEF@"
-Both return a pointer to a null-terminated string that provides
-some identification of the owner of the X server implementation.
-If the data returned by the server is in the Latin Portable Character Encoding,
-then the string is in the Host Portable Character Encoding.
-Otherwise, the contents of the string are implementation-dependent.
-.LP
-.sp
-.sM
-.FD 0
-VendorRelease\^(\^\fIdisplay\fP\^)
-.sp
-int XVendorRelease\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "VendorRelease" "" "@DEF@"
-.IN "XVendorRelease" "" "@DEF@"
-Both return a number related to a vendor's release of the X server.
-.NH 3
-Image Format Functions and Macros
-.XS
-\*(SN Image Format Functions and Macros
-.XE
-.LP
-Applications are required to present data to the X server
-in a format that the server demands.
-To help simplify applications,
-most of the work required to convert the data is provided by Xlib
-(see sections 8.7 and 16.8).
-.LP
-The
-.PN XPixmapFormatValues
-structure provides an interface to the pixmap format information
-that is returned at the time of a connection setup.
-It contains:
-.LP
-.sM
-.Ds 0
-.TA .5i 3i
-.ta .5i 3i
-typedef struct {
- int depth;
- int bits_per_pixel;
- int scanline_pad;
-} XPixmapFormatValues;
-.De
-.LP
-.eM
-.sp
-To obtain the pixmap format information for a given display, use
-.PN XListPixmapFormats .
-.IN "XListPixmapFormats" "" "@DEF@"
-.sM
-.FD 0
-XPixmapFormatValues *XListPixmapFormats\^(\^\fIdisplay\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.ds Cn pixmap formats that are supported by the display
-.IP \fIcount_return\fP 1i
-Returns the number of \*(Cn.
-.LP
-.eM
-The
-.PN XListPixmapFormats
-function returns an array of
-.PN XPixmapFormatValues
-structures that describe the types of Z format images supported
-by the specified display.
-If insufficient memory is available,
-.PN XListPixmapFormats
-returns NULL.
-To free the allocated storage for the
-.PN XPixmapFormatValues
-structures, use
-.PN XFree .
-.LP
-The following lists the C language macros,
-their corresponding function equivalents that are for other language bindings,
-and what data they both return for the specified server and screen.
-These are often used by toolkits as well as by simple applications.
-.LP
-.sp
-.sM
-.FD 0
-ImageByteOrder\^(\^\fIdisplay\fP\^)
-.sp
-int XImageByteOrder\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "ImageByteOrder" "" "@DEF@"
-.IN "XImageByteOrder" "" "@DEF@"
-Both specify the required byte order for images for each scanline unit in
-XY format (bitmap) or for each pixel value in
-Z format.
-The macro or function can return either
-.PN LSBFirst
-or
-.PN MSBFirst .
-.LP
-.sp
-.sM
-.FD 0
-BitmapUnit\^(\^\fIdisplay\fP\^)
-.sp
-int XBitmapUnit\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "BitmapUnit" "" "@DEF@"
-.IN "XBitmapUnit" "" "@DEF@"
-Both return the size of a bitmap's scanline unit in bits.
-The scanline is calculated in multiples of this value.
-.LP
-.sp
-.sM
-.FD 0
-BitmapBitOrder\^(\^\fIdisplay\fP\^)
-.sp
-int XBitmapBitOrder\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "BitmapBitOrder" "" "@DEF@"
-.IN "XBitmapBitOrder" "" "@DEF@"
-Within each bitmap unit, the left-most bit in the bitmap as displayed
-on the screen is either the least significant or most significant bit in the
-unit.
-This macro or function can return
-.PN LSBFirst
-or
-.PN MSBFirst .
-.LP
-.sp
-.sM
-.FD 0
-BitmapPad\^(\^\fIdisplay\fP\^)
-.sp
-int XBitmapPad\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-.IN "BitmapPad" "" "@DEF@"
-.IN "XBitmapPad" "" "@DEF@"
-Each scanline must be padded to a multiple of bits returned
-by this macro or function.
-.LP
-.sp
-.sM
-.FD 0
-DisplayHeight\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayHeight\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayHeight" "" "@DEF@"
-.IN "XDisplayHeight" "" "@DEF@"
-Both return an integer that describes the height of the screen
-in pixels.
-.LP
-.sp
-.sM
-.FD 0
-DisplayHeightMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayHeightMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayHeightMM" "" "@DEF@"
-.IN "XDisplayHeightMM" "" "@DEF@"
-Both return the height of the specified screen in millimeters.
-.LP
-.sp
-.sM
-.FD 0
-DisplayWidth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayWidth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayWidth" "" "@DEF@"
-.IN "XDisplayWidth" "" "@DEF@"
-Both return the width of the screen in pixels.
-.LP
-.sp
-.sM
-.FD 0
-DisplayWidthMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.sp
-int XDisplayWidthMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen_number\fP 1i
-Specifies the appropriate screen number on the host server.
-.LP
-.eM
-.IN "DisplayWidthMM" "" "@DEF@"
-.IN "XDisplayWidthMM" "" "@DEF@"
-Both return the width of the specified screen in millimeters.
-.NH 3
-Screen Information Macros
-.XS
-\*(SN Screen Information Macros
-.XE
-.LP
-The following lists the C language macros,
-their corresponding function equivalents that are for other language bindings,
-and what data they both can return.
-These macros or functions all take a pointer to the appropriate screen
-structure.
-.LP
-.sp
-.sM
-.FD 0
-BlackPixelOfScreen\^(\^\fIscreen\fP\^)
-.sp
-unsigned long XBlackPixelOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "BlackPixelOfScreen" "" "@DEF@"
-.IN "XBlackPixelOfScreen" "" "@DEF@"
-Both return the black pixel value of the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-WhitePixelOfScreen\^(\^\fIscreen\fP\^)
-.sp
-unsigned long XWhitePixelOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "WhitePixelOfScreen" "" "@DEF@"
-.IN "XWhitePixelOfScreen" "" "@DEF@"
-Both return the white pixel value of the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-CellsOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XCellsOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "CellsOfScreen" "" "@DEF@"
-.IN "XCellsOfScreen" "" "@DEF@"
-Both return the number of colormap cells in the default colormap
-of the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-DefaultColormapOfScreen\^(\^\fIscreen\fP\^)
-.sp
-Colormap XDefaultColormapOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DefaultColormapOfScreen" "" "@DEF@"
-.IN "XDefaultColormapOfScreen" "" "@DEF@"
-Both return the default colormap of the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-DefaultDepthOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XDefaultDepthOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DefaultDepthOfScreen" "" "@DEF@"
-.IN "XDefaultDepthOfScreen" "" "@DEF@"
-Both return the depth of the root window.
-.LP
-.sp
-.sM
-.FD 0
-DefaultGCOfScreen\^(\^\fIscreen\fP\^)
-.sp
-GC XDefaultGCOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DefaultGCOfScreen" "" "@DEF@"
-.IN "XDefaultGCOfScreen" "" "@DEF@"
-Both return a default graphics context (GC) of the specified screen,
-which has the same depth as the root window of the screen.
-The GC must never be freed.
-.LP
-.sp
-.sM
-.FD 0
-DefaultVisualOfScreen\^(\^\fIscreen\fP\^)
-.sp
-Visual *XDefaultVisualOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DefaultVisualOfScreen" "" "@DEF@"
-.IN "XDefaultVisualOfScreen" "" "@DEF@"
-Both return the default visual of the specified screen.
-For information on visual types,
-see section 3.1.
-.LP
-.sp
-.sM
-.FD 0
-DoesBackingStore\^(\^\fIscreen\fP\^)
-.sp
-int XDoesBackingStore\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DoesBackingStore" "" "@DEF@"
-.IN "XDoesBackingStore" "" "@DEF@"
-Both return a value indicating whether the screen supports backing
-stores.
-The value returned can be one of
-.PN WhenMapped ,
-.PN NotUseful ,
-or
-.PN Always
-(see section 3.2.4).
-.LP
-.sp
-.sM
-.FD 0
-DoesSaveUnders\^(\^\fIscreen\fP\^)
-.sp
-Bool XDoesSaveUnders\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DoesSaveUnders" "" "@DEF@"
-.IN "XDoesSaveUnders" "" "@DEF@"
-Both return a Boolean value indicating whether the
-screen supports save unders.
-If
-.PN True ,
-the screen supports save unders.
-If
-.PN False ,
-the screen does not support save unders (see section 3.2.5).
-.LP
-.sp
-.sM
-.FD 0
-DisplayOfScreen\^(\^\fIscreen\fP\^)
-.sp
-Display *XDisplayOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "DisplayOfScreen" "" "@DEF@"
-.IN "XDisplayOfScreen" "" "@DEF@"
-Both return the display of the specified screen.
-.LP
-.sp
-.sM
-.IN "XScreenNumberOfScreen" "" "@DEF@"
-.FD 0
-int XScreenNumberOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-The
-.PN XScreenNumberOfScreen
-function returns the screen index number of the specified screen.
-.LP
-.sp
-.sM
-.FD 0
-EventMaskOfScreen\^(\^\fIscreen\fP\^)
-.sp
-long XEventMaskOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "EventMaskOfScreen" "" "@DEF@"
-.IN "XEventMaskOfScreen" "" "@DEF@"
-Both return the event mask of the root window for the specified screen
-at connection setup time.
-.LP
-.sp
-.sM
-.FD 0
-WidthOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XWidthOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "WidthOfScreen" "" "@DEF@"
-.IN "XWidthOfScreen" "" "@DEF@"
-Both return the width of the specified screen in pixels.
-.LP
-.sp
-.sM
-.FD 0
-HeightOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XHeightOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "HeightOfScreen" "" "@DEF@"
-.IN "XHeightOfScreen" "" "@DEF@"
-Both return the height of the specified screen in pixels.
-.LP
-.sp
-.sM
-.FD 0
-WidthMMOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XWidthMMOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "WidthMMOfScreen" "" "@DEF@"
-.IN "XWidthMMOfScreen" "" "@DEF@"
-Both return the width of the specified screen in millimeters.
-.LP
-.sp
-.sM
-.FD 0
-HeightMMOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XHeightMMOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "HeightMMOfScreen" "" "@DEF@"
-.IN "XHeightMMOfScreen" "" "@DEF@"
-Both return the height of the specified screen in millimeters.
-.LP
-.sp
-.sM
-.FD 0
-MaxCmapsOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XMaxCmapsOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "MaxCmapsOfScreen" "" "@DEF@"
-.IN "XMaxCmapsOfScreen" "" "@DEF@"
-Both return the maximum number of installed colormaps supported
-by the specified screen (see section 9.3).
-.LP
-.sp
-.sM
-.FD 0
-MinCmapsOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XMinCmapsOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "MinCmapsOfScreen" "" "@DEF@"
-.IN "XMinCmapsOfScreen" "" "@DEF@"
-Both return the minimum number of installed colormaps supported
-by the specified screen (see section 9.3).
-.LP
-.sp
-.sM
-.FD 0
-PlanesOfScreen\^(\^\fIscreen\fP\^)
-.sp
-int XPlanesOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "PlanesOfScreen" "" "@DEF@"
-.IN "XPlanesOfScreen" "" "@DEF@"
-Both return the depth of the root window.
-.LP
-.sp
-.sM
-.FD 0
-RootWindowOfScreen\^(\^\fIscreen\fP\^)
-.sp
-Window XRootWindowOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.FN
-.IP \fIscreen\fP 1i
-Specifies the appropriate
-.PN Screen
-structure.
-.LP
-.eM
-.IN "RootWindowOfScreen" "" "@DEF@"
-.IN "XRootWindowOfScreen" "" "@DEF@"
-Both return the root window of the specified screen.
-.NH 2
-Generating a NoOperation Protocol Request
-.XS
-\*(SN Generating a NoOperation Protocol Request
-.XE
-.LP
-To execute a
-.PN NoOperation
-protocol request, use
-.PN XNoOp .
-.IN "XNoOp" "" "@DEF@"
-.sM
-.FD 0
-XNoOp\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-The
-.PN XNoOp
-function sends a
-.PN NoOperation
-protocol request to the X server,
-thereby exercising the connection.
-.NH 2
-Freeing Client-Created Data
-.XS
-\*(SN Freeing Client-Created Data
-.XE
-.LP
-To free in-memory data that was created by an Xlib function, use
-.PN XFree .
-.IN "XFree" "" "@DEF@"
-.sM
-.FD 0
-XFree\^(\^\fIdata\fP\^)
-.br
- void *\fIdata\fP\^;
-.FN
-.IP \fIdata\fP 1i
-Specifies the data that is to be freed.
-.LP
-.eM
-The
-.PN XFree
-function is a general-purpose Xlib routine that frees the specified data.
-You must use it to free any objects that were allocated by Xlib,
-unless an alternate function is explicitly specified for the object.
-A NULL pointer cannot be passed to this function.
-.NH 2
-Closing the Display
-.XS
-\*(SN Closing the Display
-.XE
-.LP
-To close a display or disconnect from the X server, use
-.PN XCloseDisplay .
-.IN "XCloseDisplay" "" "@DEF@"
-.LP
-.sM
-.FD 0
-XCloseDisplay\^(\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-The
-.PN XCloseDisplay
-function closes the connection to the X server for the display specified in the
-.PN Display
-structure and destroys all windows, resource IDs
-.Pn ( Window ,
-.PN Font ,
-.PN Pixmap ,
-.PN Colormap ,
-.PN Cursor ,
-and
-.PN GContext ),
-or other resources that the client has created
-on this display, unless the close-down mode of the resource has been changed
-(see
-.PN XSetCloseDownMode ).
-Therefore, these windows, resource IDs, and other resources should never be
-referenced again or an error will be generated.
-Before exiting, you should call
-.PN XCloseDisplay
-explicitly so that any pending errors are reported as
-.PN XCloseDisplay
-performs a final
-.PN XSync
-operation.
-.IN "Resource IDs"
-.IN "XCloseDisplay"
-.LP
-.PN XCloseDisplay
-can generate a
-.PN BadGC
-error.
-.sp
-.LP
-Xlib provides a function to permit the resources owned by a client
-to survive after the client's connection is closed.
-To change a client's close-down mode, use
-.PN XSetCloseDownMode .
-.IN "XSetCloseDownMode" "" "@DEF@"
-.sM
-.FD 0
-XSetCloseDownMode\^(\^\fIdisplay\fP, \fIclose_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIclose_mode\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIclose_mode\fP 1i
-Specifies the client close-down mode.
-You can pass
-.PN DestroyAll ,
-.PN RetainPermanent ,
-or
-.PN RetainTemporary .
-.LP
-.eM
-The
-.PN XSetCloseDownMode
-defines what will happen to the client's resources at connection close.
-A connection starts in
-.PN DestroyAll
-mode.
-For information on what happens to the client's resources when the
-close_mode argument is
-.PN RetainPermanent
-or
-.PN RetainTemporary ,
-see section 2.6.
-.LP
-.PN XSetCloseDownMode
-can generate a
-.PN BadValue
-error.
-.NH 2
-Using X Server Connection Close Operations
-.XS
-\*(SN Using X Server Connection Close Operations
-.XE
-.LP
-When the X server's connection to a client is closed
-either by an explicit call to
-.PN XCloseDisplay
-or by a process that exits, the X server performs the following
-automatic operations:
-.IP \(bu 5
-It disowns all selections owned by the client
-(see
-.PN XSetSelectionOwner ).
-.IP \(bu 5
-It performs an
-.PN XUngrabPointer
-and
-.PN XUngrabKeyboard
-if the client has actively grabbed the pointer
-or the keyboard.
-.IP \(bu 5
-It performs an
-.PN XUngrabServer
-if the client has grabbed the server.
-.IP \(bu 5
-It releases all passive grabs made by the client.
-.IP \(bu 5
-It marks all resources (including colormap entries) allocated
-by the client either as permanent or temporary,
-depending on whether the close-down mode is
-.PN RetainPermanent
-or
-.PN RetainTemporary .
-However, this does not prevent other client applications from explicitly
-destroying the resources (see
-.PN XSetCloseDownMode ).
-.LP
-When the close-down mode is
-.PN DestroyAll ,
-the X server destroys all of a client's resources as follows:
-.IP \(bu 5
-It examines each window in the client's save-set to determine if it is an inferior
-(subwindow) of a window created by the client.
-(The save-set is a list of other clients' windows
-that are referred to as save-set windows.)
-If so, the X server reparents the save-set window to the closest ancestor so
-that the save-set window is not an inferior of a window created by the client.
-The reparenting leaves unchanged the absolute coordinates (with respect to
-the root window) of the upper-left outer corner of the save-set
-window.
-.IP \(bu 5
-It performs a
-.PN MapWindow
-request on the save-set window if the save-set window is unmapped.
-The X server does this even if the save-set window was not an inferior of
-a window created by the client.
-.IP \(bu 5
-It destroys all windows created by the client.
-.IP \(bu 5
-It performs the appropriate free request on each nonwindow resource created by
-the client in the server (for example,
-.PN Font ,
-.PN Pixmap ,
-.PN Cursor ,
-.PN Colormap ,
-and
-.PN GContext ).
-.IP \(bu 5
-It frees all colors and colormap entries allocated by a client application.
-.LP
-Additional processing occurs when the last connection to the X server closes.
-An X server goes through a cycle of having no connections and having some
-connections.
-When the last connection to the X server closes as a result of a connection
-closing with the close_mode of
-.PN DestroyAll ,
-the X server does the following:
-.IP \(bu 5
-It resets its state as if it had just been
-started.
-The X server begins by destroying all lingering resources from
-clients that have terminated in
-.PN RetainPermanent
-or
-.PN RetainTemporary
-mode.
-.IP \(bu 5
-It deletes all but the predefined atom identifiers.
-.IP \(bu 5
-It deletes all properties on all root windows (see section 4.3).
-.IP \(bu 5
-It resets all device maps and attributes
-(for example, key click, bell volume, and acceleration)
-as well as the access control list.
-.IP \(bu 5
-It restores the standard root tiles and cursors.
-.IP \(bu 5
-It restores the default font path.
-.IP \(bu 5
-It restores the input focus to state
-.PN PointerRoot .
-.LP
-However, the X server does not reset if you close a connection with a close-down
-mode set to
-.PN RetainPermanent
-or
-.PN RetainTemporary .
-.NH 2
-Using Xlib with Threads
-.XS
-\*(SN Using Xlib with Threads
-.XE
-.LP
-On systems that have threads, support may be provided to permit
-multiple threads to use Xlib concurrently.
-.LP
-.sp
-To initialize support for concurrent threads, use
-.PN XInitThreads .
-.IN "XInitThreads" "" "@DEF@"
-.sM
-.FD 0
-Status XInitThreads\^(\|);
-.FN
-.LP
-.eM
-The
-.PN XInitThreads
-function initializes Xlib support for concurrent threads.
-This function must be the first Xlib function a
-multi-threaded program calls, and it must complete
-before any other Xlib call is made.
-This function returns a nonzero status if initialization was
-successful; otherwise, it returns zero.
-On systems that do not support threads, this function always returns zero.
-.LP
-It is only necessary to call this function if multiple threads
-might use Xlib concurrently. If all calls to Xlib functions
-are protected by some other access mechanism (for example,
-a mutual exclusion lock in a toolkit or through explicit client
-programming), Xlib thread initialization is not required.
-It is recommended that single-threaded programs not call this function.
-
-.LP
-.sp
-To lock a display across several Xlib calls, use
-.PN XLockDisplay .
-.IN "XLockDisplay" "" "@DEF@"
-.sM
-.FD 0
-void XLockDisplay\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-The
-.PN XLockDisplay
-function locks out all other threads from using the specified display.
-Other threads attempting to use the display will block until
-the display is unlocked by this thread.
-Nested calls to
-.PN XLockDisplay
-work correctly; the display will not actually be unlocked until
-.PN XUnlockDisplay
-has been called the same number of times as
-.PN XLockDisplay .
-This function has no effect unless Xlib was successfully initialized
-for threads using
-.PN XInitThreads .
-.LP
-.sp
-To unlock a display, use
-.PN XUnlockDisplay .
-.IN "XUnlockDisplay" "" "@DEF@"
-.sM
-.FD 0
-void XUnlockDisplay\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.LP
-.eM
-The
-.PN XUnlockDisplay
-function allows other threads to use the specified display again.
-Any threads that have blocked on the display are allowed to continue.
-Nested locking works correctly; if
-.PN XLockDisplay
-has been called multiple times by a thread, then
-.PN XUnlockDisplay
-must be called an equal number of times before the display is
-actually unlocked.
-This function has no effect unless Xlib was successfully initialized
-for threads using
-.PN XInitThreads .
-.NH 2
-Using Internal Connections
-.XS
-\*(SN Using Internal Connections
-.XE
-.LP
-In addition to the connection to the X server, an Xlib implementation
-may require connections to other kinds of servers (for example, to
-input method servers as described in chapter 13). Toolkits and clients
-that use multiple displays, or that use displays in combination with
-other inputs, need to obtain these additional connections to correctly
-block until input is available and need to process that input
-when it is available. Simple clients that use a single display and
-block for input in an Xlib event function do not need to use these
-facilities.
-.LP
-To track internal connections for a display, use
-.PN XAddConnectionWatch .
-.LP
-.IN "XWatchProc" "" "@DEF@"
-.IN "XAddConnectionWatch" "" "@DEF@"
-.sM
-.FD 0
-typedef void (*XConnectionWatchProc)\^(\^\fIdisplay\fP, \fIclient_data\fP, \fIfd\fP, \fIopening\fP, \fIwatch_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.br
- int \fIfd\fP\^;
-.br
- Bool \fIopening\fP\^;
-.br
- XPointer *\fIwatch_data\fP\^;
-.sp
-Status XAddConnectionWatch\^(\^\fIdisplay\fP, \fIprocedure\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XWatchProc \fIprocedure\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIprocedure\fP 1i
-Specifies the procedure to be called.
-.IP \fIclient_data\fP 1i
-Specifies the additional client data.
-.LP
-.eM
-The
-.PN XAddConnectionWatch
-function registers a procedure to be called each time Xlib opens or closes an
-internal connection for the specified display. The procedure is passed the
-display, the specified client_data, the file descriptor for the connection,
-a Boolean indicating whether the connection is being opened or closed, and a
-pointer to a location for private watch data. If opening is
-.PN True ,
-the procedure can store a pointer to private data in the location pointed
-to by watch_data;
-when the procedure is later called for this same connection and opening is
-.PN False ,
-the location pointed to by watch_data will hold this same private data pointer.
-.LP
-This function can be called at any time after a display is opened.
-If internal connections already exist, the registered procedure will
-immediately be called for each of them, before
-.PN XAddConnectionWatch
-returns.
-.PN XAddConnectionWatch
-returns a nonzero status if the procedure is successfully registered;
-otherwise, it returns zero.
-.LP
-The registered procedure should not call any Xlib functions.
-If the procedure directly or indirectly causes the state of internal
-connections or watch procedures to change, the result is not defined.
-If Xlib has been initialized for threads, the procedure is called with
-the display locked and the result of a call by the procedure to any
-Xlib function that locks the display is not defined unless the executing
-thread has externally locked the display using
-.PN XLockDisplay .
-.LP
-.sp
-To stop tracking internal connections for a display, use
-.PN XRemoveConnectionWatch .
-.IN "XRemoveConnectionWatch" "" "@DEF@"
-.sM
-.FD 0
-Status XRemoveConnectionWatch\^(\^\fIdisplay\fP, \fIprocedure\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XWatchProc \fIprocedure\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIprocedure\fP 1i
-Specifies the procedure to be called.
-.IP \fIclient_data\fP 1i
-Specifies the additional client data.
-.LP
-.eM
-The
-.PN XRemoveConnectionWatch
-function removes a previously registered connection watch procedure.
-The client_data must match the client_data used when the procedure
-was initially registered.
-
-.LP
-.sp
-To process input on an internal connection, use
-.PN XProcessInternalConnection .
-.IN "XProcessInternalConnection" "" "@DEF@"
-.sM
-.FD 0
-void XProcessInternalConnection\^(\^\fIdisplay\fP, \fIfd\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIfd\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIfd\fP 1i
-Specifies the file descriptor.
-.LP
-.eM
-The
-.PN XProcessInternalConnection
-function processes input available on an internal connection.
-This function should be called for an internal connection only
-after an operating system facility (for example,
-.PN select
-or
-.PN poll )
-has indicated that input is available; otherwise,
-the effect is not defined.
-.LP
-.sp
-To obtain all of the current internal connections for a display, use
-.PN XInternalConnectionNumbers .
-.IN "XInternalConnectionNumbers" "" "@DEF@"
-.sM
-.FD 0
-Status XInternalConnectionNumbers\^(\^\fIdisplay\fP, \fIfd_return\fP\^, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int **\fIfd_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.FN
-.IP \fIdisplay\fP 1i
-Specifies the connection to the X server.
-.IP \fIfd_return\fP 1i
-Returns the file descriptors.
-.ds Cn file descriptors
-.IP \fIcount_return\fP 1i
-Returns the number of \*(Cn.
-.LP
-.eM
-The
-.PN XInternalConnectionNumbers
-function returns a list of the file descriptors for all internal
-connections currently open for the specified display.
-When the allocated list is no longer needed,
-free it by using
-.PN XFree .
-This functions returns a nonzero status if the list is successfully allocated;
-otherwise, it returns zero.
-.LP
-.bp