diff options
Diffstat (limited to 'libX11/specs/libX11/CH09')
-rw-r--r-- | libX11/specs/libX11/CH09 | 1290 |
1 files changed, 0 insertions, 1290 deletions
diff --git a/libX11/specs/libX11/CH09 b/libX11/specs/libX11/CH09 deleted file mode 100644 index 2b79d3880..000000000 --- a/libX11/specs/libX11/CH09 +++ /dev/null @@ -1,1290 +0,0 @@ -.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2002 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 9\fP\s-1 - -\s+1\fBWindow and Session Manager Functions\fP\s-1 -.sp 2 -.nr H1 9 -.nr H2 0 -.nr H3 0 -.nr H4 0 -.nr H5 0 -.na -.LP -.XS -Chapter 9: Window and Session Manager Functions -.XE -Although it is difficult to categorize functions as exclusively -for an application, a window manager, or a session manager, -the functions in this chapter are most often used by window managers -and session managers. -It is not expected that these functions will be used by most -application programs. -Xlib provides management functions to: -.IP \(bu 5 -Change the parent of a window -.IP \(bu 5 -Control the lifetime of a window -.IP \(bu 5 -Manage installed colormaps -.IP \(bu 5 -Set and retrieve the font search path -.IP \(bu 5 -Grab the server -.IP \(bu 5 -Kill a client -.IP \(bu 5 -Control the screen saver -.IP \(bu 5 -Control host access -.NH 2 -Changing the Parent of a Window -.XS -\*(SN Changing the Parent of a Window -.XE -.LP -To change a window's parent to another window on the same screen, use -.PN XReparentWindow . -There is no way to move a window between screens. -.IN "XReparentWindow" "" "@DEF@" -.sM -.FD 0 -XReparentWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIparent\fP\^, \fIx\fP\^, \fIy\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Window \fIw\fP\^; -.br - Window \fIparent\fP\^; -.br - int \fIx\fP\^, \fIy\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIw\fP 1i -Specifies the window. -.IP \fIparent\fP 1i -Specifies the parent window. -.ds Xy \ of the position in the new parent window -.IP \fIx\fP 1i -.br -.ns -.IP \fIy\fP 1i -Specify the x and y coordinates\*(Xy. -.LP -.eM -If the specified window is mapped, -.PN XReparentWindow -automatically performs an -.PN UnmapWindow -request on it, removes it from its current position in the hierarchy, -and inserts it as the child of the specified parent. -The window is placed in the stacking order on top with respect to -sibling windows. -.LP -After reparenting the specified window, -.PN XReparentWindow -causes the X server to generate a -.PN ReparentNotify -event. -The override_redirect member returned in this event is -set to the window's corresponding attribute. -Window manager clients usually should ignore this window if this member -is set to -.PN True . -Finally, if the specified window was originally mapped, -the X server automatically performs a -.PN MapWindow -request on it. -.LP -The X server performs normal exposure processing on formerly obscured -windows. -The X server might not generate -.PN Expose -events for regions from the initial -.PN UnmapWindow -request that are immediately obscured by the final -.PN MapWindow -request. -A -.PN BadMatch -error results if: -.IP \(bu 5 -The new parent window is not on the same screen as -the old parent window. -.IP \(bu 5 -The new parent window is the specified window or an inferior of the -specified window. -.IP \(bu 5 -The new parent is -.PN InputOnly , -and the window is not. -.IP \(bu 5 -The specified window has a -.PN ParentRelative -background, and the new parent window is not the same depth as the -specified window. -.LP -.PN XReparentWindow -can generate -.PN BadMatch -and -.PN BadWindow -errors. -.NH 2 -Controlling the Lifetime of a Window -.XS -\*(SN Controlling the Lifetime of a Window -.XE -.LP -The save-set of a client is a list of other clients' windows that, -if they are inferiors of one of the client's windows at connection close, -should not be destroyed and should be remapped if they are unmapped. -For further information about close-connection processing, -see section 2.6. -To allow an application's window to survive when a window manager that -has reparented a window fails, -Xlib provides the save-set functions that you can -use to control the longevity of subwindows -that are normally destroyed when the parent is destroyed. -For example, a window manager that wants to add decoration -to a window by adding a frame might reparent an application's -window. -When the frame is destroyed, -the application's window should not be destroyed -but be returned to its previous place in the window hierarchy. -.LP -The X server automatically removes windows from the save-set -when they are destroyed. -.LP -.sp -To add or remove a window from the client's save-set, use -.PN XChangeSaveSet . -.IN "XChangeSaveSet" "" "@DEF@" -.sM -.FD 0 -XChangeSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^, \fIchange_mode\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Window \fIw\fP\^; -.br - int \fIchange_mode\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Wi that you want to add to or delete from the client's save-set -.IP \fIw\fP 1i -Specifies the window \*(Wi. -.IP \fIchange_mode\fP 1i -Specifies the mode. -You can pass -.PN SetModeInsert -or -.PN SetModeDelete . -.LP -.eM -Depending on the specified mode, -.PN XChangeSaveSet -either inserts or deletes the specified window from the client's save-set. -The specified window must have been created by some other client, -or a -.PN BadMatch -error results. -.LP -.PN XChangeSaveSet -can generate -.PN BadMatch , -.PN BadValue , -and -.PN BadWindow -errors. -.LP -.sp -To add a window to the client's save-set, use -.PN XAddToSaveSet . -.IN "XAddToSaveSet" "" "@DEF@" -.sM -.FD 0 -XAddToSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Window \fIw\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Wi that you want to add to the client's save-set -.IP \fIw\fP 1i -Specifies the window \*(Wi. -.LP -.eM -The -.PN XAddToSaveSet -function adds the specified window to the client's save-set. -The specified window must have been created by some other client, -or a -.PN BadMatch -error results. -.LP -.PN XAddToSaveSet -can generate -.PN BadMatch -and -.PN BadWindow -errors. -.LP -.sp -To remove a window from the client's save-set, use -.PN XRemoveFromSaveSet . -.IN "XRemoveFromSaveSet" "" "@DEF@" -.sM -.FD 0 -XRemoveFromSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Window \fIw\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Wi that you want to delete from the client's save-set -.IP \fIw\fP 1i -Specifies the window \*(Wi. -.LP -.eM -The -.PN XRemoveFromSaveSet -function removes the specified window from the client's save-set. -The specified window must have been created by some other client, -or a -.PN BadMatch -error results. -.LP -.PN XRemoveFromSaveSet -can generate -.PN BadMatch -and -.PN BadWindow -errors. -.NH 2 -Managing Installed Colormaps -.XS -\*(SN Managing Installed Colormaps -.XE -.LP -The X server maintains a list of installed colormaps. -Windows using these colormaps are guaranteed to display with -correct colors; windows using other colormaps may or may not display -with correct colors. -Xlib provides functions that you can use to install a colormap, -uninstall a colormap, and obtain a list of installed colormaps. -.LP -At any time, -there is a subset of the installed maps that is viewed as an ordered list -and is called the required list. -The length of the required list is at most M, -where M is the minimum number of installed colormaps specified for the screen -in the connection setup. -The required list is maintained as follows. -When a colormap is specified to -.PN XInstallColormap , -it is added to the head of the list; -the list is truncated at the tail, if necessary, to keep its length to -at most M. -When a colormap is specified to -.PN XUninstallColormap -and it is in the required list, -it is removed from the list. -A colormap is not added to the required list when it is implicitly installed -by the X server, -and the X server cannot implicitly uninstall a colormap that is in the -required list. -.LP -.sp -To install a colormap, use -.PN XInstallColormap . -.IN "XInstallColormap" "" "@DEF@" -.sM -.FD 0 -XInstallColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Colormap \fIcolormap\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIcolormap\fP 1i -Specifies the colormap. -.LP -.eM -The -.PN XInstallColormap -function installs the specified colormap for its associated screen. -All windows associated with this colormap immediately display with -true colors. -You associated the windows with this colormap when you created them by calling -.PN XCreateWindow , -.PN XCreateSimpleWindow , -.PN XChangeWindowAttributes , -or -.PN XSetWindowColormap . -.LP -If the specified colormap is not already an installed colormap, -the X server generates a -.PN ColormapNotify -event on each window that has that colormap. -In addition, for every other colormap that is installed as -a result of a call to -.PN XInstallColormap , -the X server generates a -.PN ColormapNotify -event on each window that has that colormap. -.LP -.PN XInstallColormap -can generate a -.PN BadColor -error. -.LP -.sp -To uninstall a colormap, use -.PN XUninstallColormap . -.IN "XUninstallColormap" "" "@DEF@" -.sM -.FD 0 -XUninstallColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Colormap \fIcolormap\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIcolormap\fP 1i -Specifies the colormap. -.LP -.eM -The -.PN XUninstallColormap -function removes the specified colormap from the required -list for its screen. -As a result, -the specified colormap might be uninstalled, -and the X server might implicitly install or uninstall additional colormaps. -Which colormaps get installed or uninstalled is server dependent -except that the required list must remain installed. -.LP -If the specified colormap becomes uninstalled, -the X server generates a -.PN ColormapNotify -event on each window that has that colormap. -In addition, for every other colormap that is installed or uninstalled as a -result of a call to -.PN XUninstallColormap , -the X server generates a -.PN ColormapNotify -event on each window that has that colormap. -.LP -.PN XUninstallColormap -can generate a -.PN BadColor -error. -.LP -.sp -To obtain a list of the currently installed colormaps for a given screen, use -.PN XListInstalledColormaps . -.IN "XListInstalledColormaps" "" "@DEF@" -.sM -.FD 0 -Colormap *XListInstalledColormaps\^(\^\fIdisplay\fP, \fIw\fP, \fInum_return\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - Window \fIw\fP\^; -.br - int *\fInum_return\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Wi that determines the screen -.IP \fIw\fP 1i -Specifies the window \*(Wi. -.IP \fInum_return\fP 1i -Returns the number of currently installed colormaps. -.LP -.eM -The -.PN XListInstalledColormaps -function returns a list of the currently installed colormaps for the screen -of the specified window. -The order of the colormaps in the list is not significant -and is no explicit indication of the required list. -When the allocated list is no longer needed, -free it by using -.PN XFree . -.LP -.PN XListInstalledColormaps -can generate a -.PN BadWindow -error. -.NH 2 -Setting and Retrieving the Font Search Path -.XS -\*(SN Setting and Retrieving the Font Search Path -.XE -.LP -The set of fonts available from a server depends on a font -search path. Xlib provides functions to set and retrieve the -search path for a server. -.LP -.sp -To set the font search path, use -.PN XSetFontPath . -.IN "XSetFontPath" "" "@DEF@" -.sM -.FD 0 -XSetFontPath\^(\^\fIdisplay\fP, \fIdirectories\fP\^, \fIndirs\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - char **\fIdirectories\fP\^; -.br - int \fIndirs\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIdirectories\fP 1i -Specifies the directory path used to look for a font. -Setting the path to the empty list restores the default path defined -for the X server. -.IP \fIndirs\fP 1i -Specifies the number of directories in the path. -.LP -.eM -The -.PN XSetFontPath -function defines the directory search path for font lookup. -There is only one search path per X server, not one per client. -The encoding and interpretation of the strings are implementation-dependent, -but typically they specify directories or font servers to be searched -in the order listed. -An X server is permitted to cache font information internally; -for example, it might cache an entire font from a file and not -check on subsequent opens of that font to see if the underlying -font file has changed. -However, -when the font path is changed, -the X server is guaranteed to flush all cached information about fonts -for which there currently are no explicit resource IDs allocated. -The meaning of an error from this request is implementation-dependent. -.LP -.PN XSetFontPath -can generate a -.PN BadValue -error. -.LP -.sp -To get the current font search path, use -.PN XGetFontPath . -.IN "XGetFontPath" "" "@DEF@" -.sM -.FD 0 -char **XGetFontPath\^(\^\fIdisplay\fP, \fInpaths_return\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int *\fInpaths_return\fP\^; - -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fInpaths_return\fP 1i -Returns the number of strings in the font path array. -.LP -.eM -The -.PN XGetFontPath -function allocates and returns an array of strings containing the search path. -The contents of these strings are implementation-dependent -and are not intended to be interpreted by client applications. -When it is no longer needed, -the data in the font path should be freed by using -.PN XFreeFontPath . -.LP -.sp -To free data returned by -.PN XGetFontPath , -use -.PN XFreeFontPath . -.IN "XFreeFontPath" "" "@DEF@" -.sM -.FD 0 -XFreeFontPath\^(\^\fIlist\fP\^) -.br - char **\fIlist\fP\^; - -.FN -.IP \fIlist\fP 1i -Specifies the array of strings you want to free. -.LP -.eM -The -.PN XFreeFontPath -function -frees the data allocated by -.PN XGetFontPath . -.NH 2 -Grabbing the Server -.XS -\*(SN Grabbing the Server -.XE -.LP -Xlib provides functions that you can use to grab and ungrab the server. -These functions can be used to control processing of output on other -connections by the window system server. -While the server is grabbed, -no processing of requests or close downs on any other connection will occur. -A client closing its connection automatically ungrabs the server. -.IN "Menus" -.IN "Window" "managers" -Although grabbing the server is highly discouraged, it is sometimes necessary. -.LP -.sp -To grab the server, use -.PN XGrabServer . -.IN "Server" "grabbing" -.IN "Grabbing" "server" -.IN "XGrabServer" "" "@DEF@" -.sM -.FD 0 -XGrabServer\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -The -.PN XGrabServer -function disables processing of requests and close downs on all other -connections than the one this request arrived on. -You should not grab the X server any more than is absolutely necessary. -.LP -.sp -To ungrab the server, use -.PN XUngrabServer . -.IN "XUngrabServer" "" "@DEF@" -.sM -.FD 0 -XUngrabServer\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -The -.PN XUngrabServer -function restarts processing of requests and close downs on other connections. -You should avoid grabbing the X server as much as possible. -.NH 2 -Killing Clients -.XS -\*(SN Killing Clients -.XE -.LP -Xlib provides a function to cause the connection to -a client to be closed and its resources to be destroyed. -To destroy a client, use -.PN XKillClient . -.IN "XKillClient" "" "@DEF@" -.sM -.FD 0 -XKillClient\^(\^\fIdisplay\fP, \fIresource\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - XID \fIresource\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fIresource\fP 1i -Specifies any resource associated with the client that you want to destroy or -.PN AllTemporary . -.LP -.eM -The -.PN XKillClient -function -forces a close down of the client -that created the resource -if a valid resource is specified. -If the client has already terminated in -either -.PN RetainPermanent -or -.PN RetainTemporary -mode, all of the client's -resources are destroyed. -If -.PN AllTemporary -is specified, the resources of all clients that have terminated in -.PN RetainTemporary -are destroyed (see section 2.5). -This permits implementation of window manager facilities that aid debugging. -A client can set its close-down mode to -.PN RetainTemporary . -If the client then crashes, -its windows would not be destroyed. -The programmer can then inspect the application's window tree -and use the window manager to destroy the zombie windows. -.LP -.PN XKillClient -can generate a -.PN BadValue -error. -.NH 2 -Controlling the Screen Saver -.XS -\*(SN Controlling the Screen Saver -.XE -.LP -Xlib provides functions that you can use to set or reset the mode -of the screen saver, to force or activate the screen saver, -or to obtain the current screen saver values. -.LP -.sp -To set the screen saver mode, use -.PN XSetScreenSaver . -.IN "XSetScreenSaver" "" "@DEF@" -.sM -.FD 0 -XSetScreenSaver\^(\^\fIdisplay\fP, \fItimeout\fP\^, \fIinterval\fP\^, \fIprefer_blanking\fP\^, \fIallow_exposures\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int \fItimeout\fP\^, \fIinterval\fP\^; -.br - int \fIprefer_blanking\fP\^; -.br - int \fIallow_exposures\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fItimeout\fP 1i -Specifies the timeout, in seconds, until the screen saver turns on. -.IP \fIinterval\fP 1i -Specifies the interval, in seconds, between screen saver alterations. -.IP \fIprefer_blanking\fP 1i -Specifies how to enable screen blanking. -You can pass -.PN DontPreferBlanking , -.PN PreferBlanking , -or -.PN DefaultBlanking . -.IP \fIallow_exposures\fP 1i -Specifies the screen save control values. -You can pass -.PN DontAllowExposures , -.PN AllowExposures , -or -.PN DefaultExposures . -.LP -.eM -Timeout and interval are specified in seconds. -A timeout of 0 disables the screen saver -(but an activated screen saver is not deactivated), -and a timeout of \-1 restores the default. -Other negative values generate a -.PN BadValue -error. -If the timeout value is nonzero, -.PN XSetScreenSaver -enables the screen saver. -An interval of 0 disables the random-pattern motion. -If no input from devices (keyboard, mouse, and so on) is generated -for the specified number of timeout seconds once the screen saver is enabled, -the screen saver is activated. -.LP -For each screen, -if blanking is preferred and the hardware supports video blanking, -the screen simply goes blank. -Otherwise, if either exposures are allowed or the screen can be regenerated -without sending -.PN Expose -events to clients, -the screen is tiled with the root window background tile randomly -re-origined each interval seconds. -Otherwise, the screens' state do not change, -and the screen saver is not activated. -The screen saver is deactivated, -and all screen states are restored at the next -keyboard or pointer input or at the next call to -.PN XForceScreenSaver -with mode -.PN ScreenSaverReset . -.LP -If the server-dependent screen saver method supports periodic change, -the interval argument serves as a hint about how long the change period -should be, and zero hints that no periodic change should be made. -Examples of ways to change the screen include scrambling the colormap -periodically, moving an icon image around the screen periodically, or tiling -the screen with the root window background tile, randomly re-origined -periodically. -.LP -.PN XSetScreenSaver -can generate a -.PN BadValue -error. -.LP -.sp -To force the screen saver on or off, use -.PN XForceScreenSaver . -.IN "XForceScreenSaver" "" "@DEF@" -.sM -.FD 0 -XForceScreenSaver\^(\^\fIdisplay\fP\^, \fImode\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int \fImode\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fImode\fP 1i -Specifies the mode that is to be applied. -You can pass -.PN ScreenSaverActive -or -.PN ScreenSaverReset . -.LP -.eM -If the specified mode is -.PN ScreenSaverActive -and the screen saver currently is deactivated, -.PN XForceScreenSaver -activates the screen saver even if the screen saver had been disabled -with a timeout of zero. -If the specified mode is -.PN ScreenSaverReset -and the screen saver currently is enabled, -.PN XForceScreenSaver -deactivates the screen saver if it was activated, -and the activation timer is reset to its initial state -(as if device input had been received). -.LP -.PN XForceScreenSaver -can generate a -.PN BadValue -error. -.LP -.sp -To activate the screen saver, use -.PN XActivateScreenSaver . -.IN "XActivateScreenSaver" "" "@DEF@" -.sM -.FD 0 -XActivateScreenSaver\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -.sp -To reset the screen saver, use -.PN XResetScreenSaver . -.IN "XResetScreenSaver" "" "@DEF@" -.sM -.FD 0 -XResetScreenSaver\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -.sp -To get the current screen saver values, use -.PN XGetScreenSaver . -.IN "XGetScreenSaver" "" "@DEF@" -.sM -.FD 0 -XGetScreenSaver\^(\^\fIdisplay\fP, \fItimeout_return\fP\^, \fIinterval_return\fP\^, \fIprefer_blanking_return\fP\^, -.br - \fIallow_exposures_return\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int *\fItimeout_return\fP\^, *\fIinterval_return\fP\^; -.br - int *\fIprefer_blanking_return\fP\^; -.br - int *\fIallow_exposures_return\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fItimeout_return\fP 1i -Returns the timeout, in seconds, until the screen saver turns on. -.IP \fIinterval_return\fP 1i -Returns the interval between screen saver invocations. -.IP \fIprefer_blanking_return\fP 1i -Returns the current screen blanking preference -.Pn ( DontPreferBlanking , -.PN PreferBlanking , -or -.PN DefaultBlanking ). -.IP \fIallow_exposures_return\fP 1i -Returns the current screen save control value -.Pn ( DontAllowExposures , -.PN AllowExposures , -or -.PN DefaultExposures ). -.LP -.eM -.NH 2 -Controlling Host Access -.XS -\*(SN Controlling Host Access -.XE -.LP -This section discusses how to: -.IP \(bu 5 -Add, get, or remove hosts from the access control list -.IP \(bu 5 -Change, enable, or disable access -.LP -.IN "Access control list" -.IN "Authentication" -X does not provide any protection on a per-window basis. -If you find out the resource ID of a resource, you can manipulate it. -To provide some minimal level of protection, however, -connections are permitted only from machines you trust. -This is adequate on single-user workstations but obviously -breaks down on timesharing machines. -Although provisions exist in the X protocol for proper connection -authentication, the lack of a standard authentication server -leaves host-level access control as the only common mechanism. -.LP -.IN "Default Protection" -The initial set of hosts allowed to open connections typically consists of: -.IP \(bu 5 -The host the window system is running on. -.IP \(bu 5 -On POSIX-conformant systems, each host listed in the -.PN /etc/X?.hosts -file. -The ? indicates the number of the -display. -.IN "Files" "/etc/X?.hosts" -This file should consist of host names separated by newlines. -DECnet nodes must terminate in :: to distinguish them from Internet hosts. -.LP -If a host is not in the access control list when the access control -mechanism is enabled and if the host attempts to establish a connection, -the server refuses the connection. -To change the access list, -the client must reside on the same host as the server and/or must -have been granted permission in the initial authorization at connection -setup. -.LP -Servers also can implement other access control policies in addition to -or in place of this host access facility. -For further information about other access control implementations, -see ``X Window System Protocol.'' -.NH 3 -Adding, Getting, or Removing Hosts -.XS -\*(SN Adding, Getting, or Removing Hosts -.XE -.LP -Xlib provides functions that you can use to add, get, or remove hosts -from the access control list. -All the host access control functions use the -.PN XHostAddress -structure, which contains: -.LP -.IN "XHostAddress" "" "@DEF@" -.sM -.Ds 0 -.TA .5i 3i -.ta .5i 3i -typedef struct { - int family; /* for example FamilyInternet */ - int length; /* length of address, in bytes */ - char *address; /* pointer to where to find the address */ -} XHostAddress; -.De -.LP -.eM -The family member specifies which protocol address family to use -(for example, TCP/IP or DECnet) and can be -.PN FamilyInternet , -.PN FamilyInternet6 , -.PN FamilyServerInterpreted , -.PN FamilyDECnet , -or -.PN FamilyChaos . -The length member specifies the length of the address in bytes. -The address member specifies a pointer to the address. -.LP -For TCP/IP, the address should be in network byte order. -For IP version 4 addresses, the family should be FamilyInternet -and the length should be 4 bytes. For IP version 6 addresses, the -family should be FamilyInternet6 and the length should be 16 bytes. -.LP -For the DECnet family, -the server performs no automatic swapping on the address bytes. -A Phase IV address is 2 bytes long. -The first byte contains the least significant 8 bits of the node number. -The second byte contains the most significant 2 bits of the -node number in the least significant 2 bits of the byte -and the area in the most significant 6 bits of the byte. -.LP -For the ServerInterpreted family, the length is ignored and the address -member is a pointer to a -.PN XServerInterpretedAddress -structure, which contains: -.LP -.IN "XServerInterpretedAddress" "" "@DEF@" -.sM -.Ds 0 -.TA .5i 3i -.ta .5i 3i -typedef struct { - int typelength; /* length of type string, in bytes */ - int valuelength;/* length of value string, in bytes */ - char *type; /* pointer to where to find the type string */ - char *value; /* pointer to where to find the address */ -} XServerInterpretedAddress; -.De -.LP -.eM -The type and value members point to strings representing the type and value of -the server interpreted entry. These strings may not be NULL-terminated so care -should be used when accessing them. The typelength and valuelength members -specify the length in byte of the type and value strings. -.LP -.sp -To add a single host, use -.PN XAddHost . -.IN "XAddHost" "" "@DEF@" -.sM -.FD 0 -XAddHost\^(\^\fIdisplay\fP, \fIhost\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - XHostAddress *\fIhost\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Ho added -.IP \fIhost\fP 1i -Specifies the host that is to be \*(Ho. -.LP -.eM -The -.PN XAddHost -function adds the specified host to the access control list for that display. -The server must be on the same host as the client issuing the command, or a -.PN BadAccess -error results. -.LP -.PN XAddHost -can generate -.PN BadAccess -and -.PN BadValue -errors. -.LP -.sp -To add multiple hosts at one time, use -.PN XAddHosts . -.IN "XAddHosts" "" "@DEF@" -.sM -.FD 0 -XAddHosts\^(\^\fIdisplay\fP, \fIhosts\fP, \fInum_hosts\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - XHostAddress *\fIhosts\fP\^; -.br - int \fInum_hosts\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Ho added -.IP \fIhosts\fP 1i -Specifies each host that is to be \*(Ho. -.IP \fInum_hosts\fP 1i -Specifies the number of hosts. -.LP -.eM -The -.PN XAddHosts -function adds each specified host to the access control list for that display. -The server must be on the same host as the client issuing the command, or a -.PN BadAccess -error results. -.LP -.PN XAddHosts -can generate -.PN BadAccess -and -.PN BadValue -errors. -.LP -.sp -To obtain a host list, use -.PN XListHosts . -.IN "XListHosts" "" "@DEF@" -.sM -.FD 0 -XHostAddress *XListHosts\^(\^\fIdisplay\fP, \fInhosts_return\fP, \fIstate_return\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int *\fInhosts_return\fP\^; -.br - Bool *\fIstate_return\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fInhosts_return\fP 1i -Returns the number of hosts currently in the access control list. -.IP \fIstate_return\fP 1i -Returns the state of the access control. -.LP -.eM -The -.PN XListHosts -function returns the current access control list as well as whether the use -of the list at connection setup was enabled or disabled. -.PN XListHosts -allows a program to find out what machines can make connections. -It also returns a pointer to a list of host structures that -were allocated by the function. -When no longer needed, -this memory should be freed by calling -.PN XFree . -.LP -.sp -To remove a single host, use -.PN XRemoveHost . -.IN "XRemoveHost" "" "@DEF@" -.sM -.FD 0 -XRemoveHost\^(\^\fIdisplay\fP, \fIhost\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - XHostAddress *\fIhost\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Ho removed -.IP \fIhost\fP 1i -Specifies the host that is to be \*(Ho. -.LP -.eM -The -.PN XRemoveHost -function removes the specified host from the access control list -for that display. -The server must be on the same host as the client process, or a -.PN BadAccess -error results. -If you remove your machine from the access list, -you can no longer connect to that server, -and this operation cannot be reversed unless you reset the server. -.LP -.PN XRemoveHost -can generate -.PN BadAccess -and -.PN BadValue -errors. -.LP -.sp -To remove multiple hosts at one time, use -.PN XRemoveHosts . -.IN "XRemoveHosts" "" "@DEF@" -.sM -.FD 0 -XRemoveHosts\^(\^\fIdisplay\fP, \fIhosts\fP, \fInum_hosts\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - XHostAddress *\fIhosts\fP\^; -.br - int \fInum_hosts\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.ds Ho removed -.IP \fIhosts\fP 1i -Specifies each host that is to be \*(Ho. -.IP \fInum_hosts\fP 1i -Specifies the number of hosts. -.LP -.eM -The -.PN XRemoveHosts -function removes each specified host from the access control list for that -display. -The X server must be on the same host as the client process, or a -.PN BadAccess -error results. -If you remove your machine from the access list, -you can no longer connect to that server, -and this operation cannot be reversed unless you reset the server. -.LP -.PN XRemoveHosts -can generate -.PN BadAccess -and -.PN BadValue -errors. -.NH 3 -Changing, Enabling, or Disabling Access Control -.XS -\*(SN Changing, Enabling, or Disabling Access Control -.XE -.LP -Xlib provides functions that you can use to enable, disable, -or change access control. -.LP -For these functions to execute successfully, -the client application must reside on the same host as the X server -and/or have been given permission in the initial authorization -at connection setup. -.LP -.sp -To change access control, use -.PN XSetAccessControl . -.IN "XSetAccessControl" "" "@DEF@" -.sM -.FD 0 -XSetAccessControl\^(\^\fIdisplay\fP, \fImode\fP\^) -.br - Display *\fIdisplay\fP\^; -.br - int \fImode\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.IP \fImode\fP 1i -Specifies the mode. -You can pass -.PN EnableAccess -or -.PN DisableAccess . -.LP -.eM -The -.PN XSetAccessControl -function either enables or disables the use of the access control list -at each connection setup. -.LP -.PN XSetAccessControl -can generate -.PN BadAccess -and -.PN BadValue -errors. -.LP -.sp -To enable access control, use -.PN XEnableAccessControl . -.IN "XEnableAccessControl" "" "@DEF@" -.sM -.FD 0 -XEnableAccessControl\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -The -.PN XEnableAccessControl -function enables the use of the access control list at each connection setup. -.LP -.PN XEnableAccessControl -can generate a -.PN BadAccess -error. -.LP -.sp -To disable access control, use -.PN XDisableAccessControl . -.IN "XDisableAccessControl" "" "@DEF@" -.sM -.FD 0 -XDisableAccessControl\^(\^\fIdisplay\fP\^) -.br - Display *\fIdisplay\fP\^; -.FN -.IP \fIdisplay\fP 1i -Specifies the connection to the X server. -.LP -.eM -The -.PN XDisableAccessControl -function disables the use of the access control list at each connection setup. -.LP -.PN XDisableAccessControl -can generate a -.PN BadAccess -error. -.bp |