diff options
author | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 15:54:38 +0000 |
---|---|---|
committer | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 15:54:38 +0000 |
commit | 981020ce68e4c8d9c0dafba631b0fd3328d7fc59 (patch) | |
tree | f275214d5531567e7efa08523a5b985bfbde887c /man |
R6.6 is the Xorg base-lineXORG-MAIN
Diffstat (limited to 'man')
-rw-r--r-- | man/XAllowDeviceEvents.man | 149 | ||||
-rw-r--r-- | man/XChangeDeviceDontPropagateList.man | 104 | ||||
-rw-r--r-- | man/XChangeKeyboardDevice.man | 69 | ||||
-rw-r--r-- | man/XChangePointerDevice.man | 79 | ||||
-rw-r--r-- | man/XDeviceBell.man | 83 | ||||
-rw-r--r-- | man/XGetDeviceControl.man | 149 | ||||
-rw-r--r-- | man/XGetDeviceKeyMapping.man | 187 | ||||
-rw-r--r-- | man/XGetDeviceModifierMapping.man | 145 | ||||
-rw-r--r-- | man/XGetDeviceMotionEvents.man | 125 | ||||
-rw-r--r-- | man/XGetExtensionVersion.man | 53 | ||||
-rw-r--r-- | man/XGetFeedbackControl.man | 329 | ||||
-rw-r--r-- | man/XGrabDevice.man | 207 | ||||
-rw-r--r-- | man/XGrabDeviceButton.man | 217 | ||||
-rw-r--r-- | man/XGrabDeviceKey.man | 231 | ||||
-rw-r--r-- | man/XListInputDevices.man | 234 | ||||
-rw-r--r-- | man/XOpenDevice.man | 128 | ||||
-rw-r--r-- | man/XQueryDeviceState.man | 99 | ||||
-rw-r--r-- | man/XSelectExtensionEvent.man | 148 | ||||
-rw-r--r-- | man/XSendExtensionEvent.man | 149 | ||||
-rw-r--r-- | man/XSetDeviceButtonMapping.man | 113 | ||||
-rw-r--r-- | man/XSetDeviceFocus.man | 216 | ||||
-rw-r--r-- | man/XSetDeviceMode.man | 69 | ||||
-rw-r--r-- | man/XSetDeviceValuators.man | 79 |
23 files changed, 3362 insertions, 0 deletions
diff --git a/man/XAllowDeviceEvents.man b/man/XAllowDeviceEvents.man new file mode 100644 index 0000000..bc954d8 --- /dev/null +++ b/man/XAllowDeviceEvents.man @@ -0,0 +1,149 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XAllDvEv.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XAllowDeviceEvents 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XAllowDeviceEvents \- release queued events +.SH SYNTAX +XAllowDeviceEvents\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIevent_mode\fP\^, \fItime\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int \fIevent_mode\fP\^; +.br + Time \fItime\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device from which events are to be allowed. +.TP 12 +.I event_mode +Specifies the event mode. +You can pass +\fIAsyncThisDevice\fP, +\fISyncThisDevice\fP, +\fIReplayThisDevice\fP, +\fIAsyncOtherDevices\fP, +\fISyncAll\fP, +or +\fIAsyncAll\fP. +.TP 12 +.I time +Specifies the time. +You can pass either a timestamp or +\fICurrentTime\fP. +.SH DESCRIPTION +The +\fIXAllowDeviceEvents\fP +function releases some queued events if the client has caused a device +to freeze. +It has no effect if the specified time is earlier than the last-grab +time of the most recent active grab for the client and device, +or if the specified time is later than the current X server time. +.LP +The following describes the processing that occurs depending on what +constant you pass to the event_mode argument. +.TP 12 +\fIAsyncThisDevice\fP +If the specified device is frozen by the client, event processing for that +device continues as usual. If the device is frozen multiple times by the client +on behalf of multiple separate grabs, \fIAsyncThisDevice\fP thaws for all. +\fIAsyncThisDevice\fP has no effect if the specified device is not frozen by +the client, but the device need not be grabbed by the client. +.TP 12 +\fISyncThisDevice\fP +If the specified device is frozen and actively grabbed by the client, event +processing for that device continues normally until the next key or button +event is reported to the client. At this time, the specified device +again appears to freeze. However, if the reported event causes the grab +to be released, the specified device does not freeze. \fISyncThisDevice\fP +has no effect if the specified device is not frozen by the client or is not +grabbed by the client. +.TP 12 +\fIReplayThisDevice\fP +If the specified device is actively grabbed by the client and is frozen as +the result of an event having been sent to the client (either from the +activation of a GrabDeviceButton or from a previous AllowDeviceEvents with +mode SyncThisDevice, but not from a GrabDevice), the grab is released and that +event is completely reprocessed. This time, however, the request ignores +any passive grabs at or above (toward the root) that the grab-window of the +grab just released. The request has no effect if the specified device is +not grabbed by the client or if it is not frozen as the result of an event. +.TP 12 +\fIAsyncOtherDevices\fP +If the remaining devices are frozen by the client, event processing for them +continues as usual. If the other devices are frozen multiple times by the +client on behalf of multiple grabs, \fIAsyncOtherDevices\fP "thaws" for +all. \fIAsyncOtherDevices\fP has no effect if the devices are not frozen +by the client. +.TP 12 +\fISyncAll\fP +If all devices are frozen by the client, event processing (for all devices) +continues normally until the next button or key event is reported to the +client for a grabbed device, at which time all devices again appear to freeze. +However, if the reported event causes the grab to be released, then the devices +do not freeze. If any device is still grabbed, then a subsequent event for it +will still cause all devices to freeze. \fISyncAll\fP has no +effect unless all devices are frozen by the client. If any device is +frozen twice by the client on behalf of two separate grabs, \fISyncAll\fP thaws +for both. A subsequent freeze for \fISyncAll\fP will only +freeze each device once. +.TP 12 +\fIAsyncAll\fP +If all devices are frozen by the client, event processing for all devices +continues normally. If any device is frozen multiple times by the client +on behalf of multiple separate grabs, \fIAsyncAll\fP thaws for +all. \fIAsyncAll\fP has no effect unless all devices are frozen by +the client. +.LP +\fIAsyncThisDevice\fP, +\fISyncThisDevice\fP, +and +\fIReplayThisDevice\fP +have no effect on the processing of events from the remaining devices. +\fIAsyncOtherDevices\fP +has no effect on the processing of events from the specified device. When +the event_mode is +\fISyncAll\fP +or +\fIAsyncAll\fP, +the device parameter is ignored. +.LP +It is possible for several grabs of different devices by the same or +different clients to be active simultaneously. If a device is frozen on +behalf of any grab, no event processing is performed for the device. +It is possible for a single device to be frozen because of several grabs. +In this case, the freeze must be released on behalf of each grab before +events can again be processed. +.LP +\fIXAllowDeviceEvents\fP +can generate a \fIBadDevice\fP or +\fIBadValue\fP +error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadValue\fP +An invalid mode was specified on the request. +.SH "SEE ALSO" +XGrabDevice(3X11) +.br +\fI\*(xL\fP diff --git a/man/XChangeDeviceDontPropagateList.man b/man/XChangeDeviceDontPropagateList.man new file mode 100644 index 0000000..b3e854e --- /dev/null +++ b/man/XChangeDeviceDontPropagateList.man @@ -0,0 +1,104 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChProp.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XChangeDeviceDontPropagateList 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XChangeDeviceDontPropagateList, XGetDeviceDontPropagateList \- query or change the dont-propagate-list for extension devices +.SH SYNTAX +XChangeDeviceDontPropagateList\^(\^\fIdisplay\fP, \fIwindow\fP\^, +\fIcount\fP\^, \fIevent_list\fP\^, \fImode\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Window *\fIwindow\fP\^; +.br + int *\fIcount\fP\^; +.br + XEventClass *\fIevent_list\fP\^; +.br + int \fImode\fP\^; +.br +XEventClass *XGetDeviceDontPropagateList\^(\^\fIdisplay\fP, \fIwindow\fP\^, +\fIcount\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Window *\fIwindow\fP\^; +.br + int *\fIcount\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I window +Specifies the window whose dont-propagate-list is to be queried or modified. +.TP 12 +.I event_list +Specifies a pointer to a list of event classes. +.TP 12 +.I mode +Specifies the mode. +You can pass +\fIAddToList\fP , +or +\fIDeleteFromList\fP. +.TP 12 +.I count +Specifies the number of event classes in the list. +.SH DESCRIPTION +The \fIXChangeDeviceDontPropagateList\fP request modifies the list +of events that should not be propagated to ancestors of the event window. +This request allows extension events to be added to or deleted from +that list. By default, all events are propagated to ancestor windows. +Once modified, the list remains modified for the life of the window. +Events are not removed from the list because the client that added them +has terminated. +.LP +Suppression of event propagation is not allowed for all input extension +events. If a specified event class is one that cannot be suppressed, +a \fIBadClass\fP error will result. Events that can be suppressed +include \fIDeviceKeyPress\fP, \fIDeviceKeyRelease\fP, \fIDeviceButtonPress\fP, +\fIDeviceButtonRelease\fP, \fIDeviceMotionNotify\fP, \fIProximityIn\fP, +and \fIProximityOut\fP. +.LP +\fIXChangeDeviceDontPropagateList\fP +can generate a \fIBadDevice\fP, \fIBadClass\fP, or \fIBadValue\fP error. +.LP +The \fIXGetDeviceDontPropagateList\fP request queries the list +of events that should not be propagated to ancestors of the event window. +.LP +\fIXGetDeviceDontPropagateList\fP +can generate a \fIBadClass\fP or \fIBadWindow\fP error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +An invalid window id was specified. +.TP 12 +\fIBadClass\fP +An invalid event class was specified. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XChangeKeyboardDevice.man b/man/XChangeKeyboardDevice.man new file mode 100644 index 0000000..53c2cf3 --- /dev/null +++ b/man/XChangeKeyboardDevice.man @@ -0,0 +1,69 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChgKbd.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XChangeKeyboardDevice 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XChangeKeyboardDevice \- change which device is used as the X keyboard +.SH SYNTAX +Status XChangeKeyboardDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device to be used as the X keyboard. +.SH DESCRIPTION +The \fIXChangeKeyboardDevice\fP request causes the server to use the specified +device as the X keyboard. The device must have been previously opened by the +requesting client via \fIXOpenDevice\fP or a \fIBadDevice\fP error will result. +The device must support input class \fIKeys\fP, or a \fIBadMatch\fP error +will result. If the server implementation does not support using the requested +device as the X keyboard, a \fIBadDevice\fP error will result. +.LP +If the specified device is grabbed by another client, \fIAlreadyGrabbed\fP +is returned. If the specified device is frozen by a grab on another device, +\fIGrabFrozen\fP is returned. +If the request is successful, \fISuccess\fP is returned. +.LP +If the request succeeds, +a \fIChangeDeviceNotify\fP event is sent to all clients that have selected that +event. A \fIMappingNotify\fP event with request = \fIMappingKeyboard\fP +is sent to all clients. +The specified device becomes the X keyboard and +the old X keyboard becomes accessible through the input extension +protocol requests. +.LP +\fIXChangeKeyboardDevice\fP can generate a \fIBadDevice\fP or a \fIBadMatch\fP +error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist, has +not been opened by this client via \fIXOpenInputDevice\fP, or is already +one of the core X device (pointer or keyboard). This error may +also occur if +the server implementation does not support using the specified device as +the X keyboard. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXChangeKeyboardDevice\fP request was made +specifying a device that has no keys. +.SH "SEE ALSO" +XChangePointerDevice +.br +\fI\*(xL\fP diff --git a/man/XChangePointerDevice.man b/man/XChangePointerDevice.man new file mode 100644 index 0000000..6122c3b --- /dev/null +++ b/man/XChangePointerDevice.man @@ -0,0 +1,79 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChgPtr.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XChangePointerDevice 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XChangePointerDevice \- change which device is the X pointer +.SH SYNTAX +Status XChangePointerDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^ \fIxaxis\fP\^, \fIyaxis\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int \fIxaxis\fP\^; +.br + int \fIyaxis\fP\^; +.br +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device to be used as the X pointer. +.TP 12 +.I xaxis +Specifies the axis of the device to be used as the X pointer x-axis. +.TP 12 +.I yaxis +Specifies the axis of the device to be used as the X pointer y-axis. +.SH DESCRIPTION +The \fIXChangePointerDevice\fP request causes the server to use the specified +device as the X pointer. The device must have been opened by the client via +\fIXOpenDevice\fP or a \fIBadDevice\fP error will result. The device must +support input class \fIValuators\fP or a \fIBadMatch\fP error will result. +If the implementation does not support use of the specified device as the +X pointer, a \fIBadDevice\fP error will result. +.LP +If the specified device is grabbed by another client, \fIAlreadyGrabbed\fP +is returned. If the specified device is frozen by a grab on another device, +\fIGrabFrozen\fP is returned. +If the request is successful, \fISuccess\fP is returned. +.LP +If the request succeeds, +a \fIChangeDeviceNotify\fP event is sent to all clients that have selected that +event. A \fIMappingNotify\fP event with request = \fIMappingPointer\fP is +sent to all clients. +The specified device becomes the X pointer, and +the old X pointer becomes accessible through the input extension +protocol requests. +.LP +\fIXChangePointerDevice\fP can generate a \fIBadDevice\fP or a \fIBadMatch\fP +error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist, has +not been opened by this client via \fIXOpenInputDevice\fP, or is already +one of the core X input devices (pointer or keyboard). This error may also +occur if the server implementation does not support using the specified +device as the X pointer. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXChangePointerDevice\fP request was made +specifying a device that has less than two valuators, or specifying a +valuator index beyond the range supported by the device. +.SH "SEE ALSO" +XChangeKeyboardDevice +.br +\fI\*(xL\fP diff --git a/man/XDeviceBell.man b/man/XDeviceBell.man new file mode 100644 index 0000000..5b44667 --- /dev/null +++ b/man/XDeviceBell.man @@ -0,0 +1,83 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XDevBell.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XDeviceBell 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XDeviceBell \- ring a bell on a device supported through the input extension +.SH SYNTAX +Status XDeviceBell\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIfeedbackclass\fP\^, \fIfeedbackid\fP\^, \fIpercent\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + XID *\fIfeedbackclass\fP\^; +.br + XID *\fIfeedbackid\fP\^; +.br + int *\fIpercent\fP\^; +.br +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device with which the bell is associated. +.TP 12 +.I feedbackclass +Specifies the class of the feedback with which the bell is associated. +.TP 12 +.I feedbackid +Specifies the id of the feedback with which the bell is associated. +.TP 12 +.I percent +Specifies the volume in the range -100 to 100 at which the bell should be rung. +.SH DESCRIPTION +The \fIXDeviceBell\fP request causes the server to ring a bell on the +specified feedback of the specified device, if possible. +The specified volume is relative to the base volume for the bell. +If an invalid device is specified, +a \fIBadDevice\fP error will be returned. The feedbackclass and feedbackid +parameters contain values returned by an \fIXGetFeedbackControl\fP request +and uniquely identify the bell to ring. If a feedbackclass is specified that +does not support a bell, or if a nonexistent feedbackid is specified, +or a percent value is specified that is not in the range -100 to 100, +a \fIBadValue\fP error will be returned. +.LP +The volume at which the bell is rung when the percent argument is +nonnegative is: +.IP +base \- [(base * percent) / 100] + percent +.LP +The volume at which the bell rings +when the percent argument is negative is: +.IP +base + [(base * percent) / 100] +.LP +To change the base volume of the bell, use \fIXChangeFeedbackControl\fP. +.LP +\fIXDeviceBell\fP can generate a \fIBadDevice\fP or a \fIBadValue\fP +error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist, or has +not been opened by this client via \fIXOpenInputDevice\fP. +.TP 12 +\fIBadValue\fP +An invalid feedbackclass, feedbackid, or percent value was specified. +.SH "SEE ALSO" +XChangeFeedbackControl(3X), +XBell(3X) +.br +\fI\*(xL\fP diff --git a/man/XGetDeviceControl.man b/man/XGetDeviceControl.man new file mode 100644 index 0000000..ecae869 --- /dev/null +++ b/man/XGetDeviceControl.man @@ -0,0 +1,149 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChDCtl.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGetDeviceControl 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetDeviceControl, XChangeDeviceControl \- query and change input device controls +.SH SYNTAX +XDeviceControl * +XGetDeviceControl\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIcontrol\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int *\fIcontrolType\fP\^; +.br +.sp +int XChangeDeviceControl\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIcontrolType\fP\^, \fIcontrol\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int \fIcontrolType\fP\^; +.br + XDeviceControl *\fIcontrol\fP\^; +.SH ARGUMENTS +.TP 15 +.I display +Specifies the connection to the X server. +.TP 15 +.I device +Specifies the device whose control is to be interrogated or modified. +.TP 15 +.I controlType +Specifies the type of control to be interrogated or changed. +.TP 15 +.I control +Specifies the address of an \fIXDeviceControl\fP structure that contains +the new values for the Device. +.SH DESCRIPTION +These requests are provided to manipulate those input devices that +support device control. A \fIBadMatch\fP error will be generated if the +requested device does not support any device controls. +.LP +Valid device control types that can be used with these requests include the +following: +.TP 20 +DEVICE_RESOLUTION +Queries or changes the resolution of valuators on input devices. +.LP +The \fIXGetDeviceControl\fP request returns a pointer to an +\fIXDeviceControl\fP structure. +.LP +\fIXGetDeviceControl\fP can generate a \fIBadDevice\fP or +\fIBadMatch\fP error. +.LP +The \fIXChangeDeviceControl\fP request modifies the values of one +control on the specified device. The control is identified by the id +field of the \fIXDeviceControl\fP structure that is passed with the +request. +.LP +\fIXChangeDeviceControl\fP can generate a \fIBadDevice\fP, +\fIBadMatch\fP, or \fIBadValue\fP error. +.SH STRUCTURES +Each control is described by a structure specific to that control. +These structures are defined in the file \fIXInput.h\fP. +.LP +\fIXDeviceControl\fP is a generic +structure that contains two fields that are at the beginning of each class +of control: +.LP +.DS +.nf +typedef struct { +.br + XID class; +.br + int length; +.br +} XDeviceControl; +.fi +.DE +.LP +The \fIXDeviceResolutionState\fP structure defines the information that is +returned for device resolution for devices with valuators. +.LP +.DS +.nf +typedef struct { + XID control; + int length; + int num_valuators; + int *resolutions; + int *min_resolutions; + int *max_resolutions; +} XDeviceResolutionState; +.fi +.DE +.LP +The \fIXDeviceResolutionControl\fP structure defines the attributes that can be +controlled for keyboard Devices. +.LP +.DS +.nf +typedef struct { + XID control; + int length; + int first_valuator; + int num_valuators; + int *resolutions; +} XDeviceResolutionControl; +.fi +.DE +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceControl\fP request was made specifying +a device that has no controls or an \fIXChangeDeviceControl\fP request was +made with an \fIXDeviceControl\fP structure that contains an invalid Device +type. It may also occur if an invalid combination of mask bits is specified +(\fIDvKey\fP but no \fIDvAutoRepeatMode\fP for keyboard Devices), or if an +invalid KeySym is specified for a string Device. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the +\fIXChangeDeviceControl\fP request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XGetDeviceKeyMapping.man b/man/XGetDeviceKeyMapping.man new file mode 100644 index 0000000..ba52b7c --- /dev/null +++ b/man/XGetDeviceKeyMapping.man @@ -0,0 +1,187 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChKMap.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XGetDeviceKeyMapping 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetDeviceKeyMapping, XChangeDeviceKeyMapping \- query or change device key mappings +.SH SYNTAX +\fB +XChangeDeviceKeyMapping(\^\fIdisplay\fP, \fIdevice\fP, \fIfirst_keycode\fP, +\fIkeysyms_per_keycode\fP, \fIkeysyms\fP, \fIkeycode_count\fP\^) +.nf + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + int \fIfirst_keycode\fP\^; + int \fIkeysyms_per_keycode\fP\^; + KeySym *\fIkeysyms\fP\^; + int \fIkeycode_count\fP\^; + +KeySym *XGetDeviceKeyMapping(\^\fIdisplay\fP, \fIdevice\fP, \fIfirst_keycode\fP, \fIkeycode_count\fP, +\fIkeysyms_per_keycode_return\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + KeyCode \fIfirst_keycode\fP\^; + int \fIkeycode_count\fP\^; + int *\fIkeysyms_per_keycode_return\fP\^; +.fi +\fP +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose key mapping is to be queried or modified. +.TP 12 +.I first_keycode +Specifies the first KeyCode to be returned. +.TP 12 +.I keycode_count +Specifies the number of KeyCodes to be returned or modified. +.TP 12 +.I keysyms_per_keycode +Specifies the number of KeySyms per KeyCode. +.TP 12 +.I keysyms_per_keycode_return +Specifies the address of a variable into which the number of KeySyms per KeyCode +will be returned. +.TP 12 +.I keysyms +Specifies the address of an array of KeySyms. +.SH DESCRIPTION +For the specified device, +the \fIXGetDeviceKeyMapping\fP request returns +the symbols for the specified number of KeyCodes +starting with first_keycode. +The value specified in first_keycode must be greater than +or equal to min_keycode as returned by +\fIXListInputDevices\fP, +or a +\fIBadValue\fP +error results. +In addition, the following expression must be less than or equal +to max_keycode as returned by +\fIXListInputDevices\fP: +.LP +.DS +first_keycode + keycode_count \- 1 +.DE +.LP +If this is not the case, a +\fIBadValue\fP +error results. +The number of elements in the KeySyms list is: +.LP +.DS +keycode_count * keysyms_per_keycode_return +.DE +.LP +KeySym number N, counting from zero, for KeyCode K has the following index +in the list, counting from zero: +.DS +(K \- first_code) * keysyms_per_code_return + N +.DE +.LP +The X server arbitrarily chooses the keysyms_per_keycode_return value +to be large enough to report all requested symbols. +A special KeySym value of +\fINoSymbol\fP +is used to fill in unused elements for +individual KeyCodes. +To free the storage returned by +\fIXGetDeviceKeyMapping\fP, +use +\fIXFree\fP. +.LP +If the specified device does not support input class keys, a \fIBadMatch\fP +error will result. +.LP +\fIXGetDeviceKeyMapping\fP +can generate a \fIBadDevice\fP, \fIBadMatch\fP, or \fIBadValue\fP +error. +.LP +For the specified device, the \fIXChangeDeviceKeyMapping\fP +request defines the symbols for the specified number of KeyCodes +starting with first_keycode. +The symbols for KeyCodes outside this range remain unchanged. +The number of elements in keysyms must be: +.LP +.DS +num_codes * keysyms_per_keycode +.DE +.LP +The specified first_keycode must be greater than or equal to min_keycode +returned by \fIXListInputDevices\fP, or a \fIBadValue\fP error results. +In addition, the following expression must be less than or equal to +max_keycode as returned by +\fIXListInputDevices\fP, or a \fIBadValue\fP error results: +.LP +.DS +first_keycode + num_codes \- 1 +.DE +.LP +KeySym number N, counting from zero, for KeyCode K has the following index +in keysyms, counting from zero: +.LP +.DS +(K \- first_keycode) * keysyms_per_keycode + N +.DE +.LP +The specified keysyms_per_keycode can be chosen arbitrarily by the client +to be large enough to hold all desired symbols. +A special KeySym value of +\fINoSymbol\fP +should be used to fill in unused elements +for individual KeyCodes. +It is legal for +\fINoSymbol\fP +to appear in nontrailing positions +of the effective list for a KeyCode. +\fIXChangeDeviceKeyMapping\fP generates a \fIDeviceMappingNotify\fP +event that is sent to all clients that have selected that type of event. +.LP +There is no requirement that the X server interpret this mapping. +It is merely stored for reading and writing by clients. +.LP +If the specified device does not support input class keys, a \fIBadMatch\fP +error results. +.LP +\fIXChangeDeviceKeyMapping\fP can generate a \fIBadDevice\fP, +\fIBadMatch\fP, \fIBadAlloc\fP, or \fIBadValue\fP error. +.LP +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceKeyMapping\fP or +\fIXChangeDeviceKeyMapping\fP request was made +specifying +a device that has no keys. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadAlloc\fP +The server failed to allocate the requested resource or server memory. +.SH "SEE ALSO" +XSetDeviceButtonMapping(3X11) +.br +XSetDeviceModifierMapping(3X11) +.br +\fI\*(xL\fP diff --git a/man/XGetDeviceModifierMapping.man b/man/XGetDeviceModifierMapping.man new file mode 100644 index 0000000..0175d83 --- /dev/null +++ b/man/XGetDeviceModifierMapping.man @@ -0,0 +1,145 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChMMap.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGetDeviceModifierMapping 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetDeviceModifierMapping, XSetDeviceModifierMapping \- query or change device modifier mappings +.SH SYNTAX +\fB +XSetDeviceModifierMapping(\^\fIdisplay\fP, \fIdevice\fP, \fImodmap\fP\^) +.nf + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + XModifierKeymap *\fImodmap\fP\^; + +XModifierKeymap *XGetDeviceModifierMapping(\^\fIdisplay\fP, \fIdevice\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; +.fi +\fP +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose modifier mapping is to be queried or modified. +.TP 12 +.I modmap +Specifies a pointer to the \fIXModifierKeymap\fP structure. +.SH DESCRIPTION +The \fIXSetDeviceModifierMapping\fP +request specifies the KeyCodes of the keys (if any) that are to be used +as modifiers for the specified device. +If it succeeds, the X server generates a \fIDeviceMappingNotify\fP +event, and \fIXSetDeviceModifierMapping\fP returns \fIMappingSuccess\fP. +X permits at most eight modifier keys. +If more than eight are specified in the +\fIXModifierKeymap\fP structure, a \fIBadLength\fP +error results. +.LP +The modifiermap member of the \fIXModifierKeymap\fP +structure contains eight sets of max_keypermod KeyCodes, +one for each modifier in the order +\fIShift\fP, +\fILock\fP, +\fIControl\fP, +\fIMod1\fP, +\fIMod2\fP, +\fIMod3\fP, +\fIMod4\fP, +and +\fIMod5\fP. +Only nonzero KeyCodes have meaning in each set, +and zero KeyCodes are ignored. +In addition, all of the nonzero KeyCodes must be in the range specified by +min_keycode and max_keycode as returned by +\fIXListInputDevices\fP, or a \fIBadValue\fP +error results. +No KeyCode may appear twice in the entire map, +or a +\fIBadValue\fP +error results. +.LP +An X server can impose restrictions on how modifiers can be changed, +for example, +if certain keys do not generate up transitions in hardware, +if auto-repeat cannot be disabled on certain keys, +or if multiple modifier keys are not supported. +If some such restriction is violated, +the status reply is +\fIMappingFailed\fP, +and none of the modifiers are changed. +If the new KeyCodes specified for a modifier differ from those +currently defined and any (current or new) keys for that modifier are +in the logically down state, +\fIXSetDeviceModifierMapping\fP +returns \fIMappingBusy\fP, +and none of the modifiers is changed. +.LP +\fIXSetDeviceModifierMapping\fP +can generate \fIBadLength\P, \fIBadDevice\fP, \fIBadMatch\fP, \fIBadAlloc\fP, +and \fIBadValue\fP errors. +.LP +The +\fIXGetDeviceModifierMapping\fP +request returns a pointer to a newly created +\fIXModifierKeymap\fP +structure that contains the keys being used as modifiers. +The structure should be freed after use by calling +\fIXFreeModifierMapping \fP. +If only zero values appear in the set for any modifier, +that modifier is disabled. +.LP +\fIXGetDeviceModifierMapping\fP +can generate \fIBadDevice\fP and \fIBadMatch\fP errors. +.SH STRUCTURES +The \fIXModifierKeymap\fP structure contains: +.LP +.nf +typedef struct { + int max_keypermod; + KeyCode *modifiermap; +} XModifierKeymap; +.fi +.LP +.SH DIAGNOSTICS +.TP 12 +\fIBadLength\fP +More than eight keys were specified in the +\fIXModifierKeymap\fP structure. +.TP 12 +\fIBadAlloc\fP +The server failed to allocate the requested resource or server memory. +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceModifierMapping\fP +or \fIXChangeDeviceModifierMapping\fP request was made +specifying +a device that has no keys. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.SH "SEE ALSO" +XSetDeviceKeyMapping(3X11) +.br +XSetDeviceButtonMapping(3X11) +.br +\fI\*(xL\fP diff --git a/man/XGetDeviceMotionEvents.man b/man/XGetDeviceMotionEvents.man new file mode 100644 index 0000000..cf8d732 --- /dev/null +++ b/man/XGetDeviceMotionEvents.man @@ -0,0 +1,125 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XGetDvMo.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XGetDeviceMotionEvents 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetDeviceMotionEvents, XDeviceTimeCoord \- get device motion history +.SH SYNTAX +XDeviceTimeCoord *XGetDeviceMotionEvents\^(\fIdisplay\fP\^, \fIdevice\fP\^, +\fIstart\fP\^, \fIstop\fP\^, +.br +\fInevents_return\fP\^, \fImode_return\fP\^, \fIaxis_count_return\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + Time \fIstart\fP\^, \fIstop\fP\^; +.br + int *\fInevents_return\fP\^; +.br + int *\fImode_return\fP\^; +.br + int *\fIaxis_count_return\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose motion history is to be queried. +.TP 12 +.I start +.br +.ns +.TP 12 +.I stop +Specify the time interval in which the events are returned from the motion +history buffer. +You can pass a timestamp or \fICurrentTime\fP. +.TP 12 +.I nevents_return +Returns the number of events from the motion history buffer. +.TP 12 +.I mode_return +Returns the mode of the device (\fIAbsolute\fP or \fIRelative\fP). +.TP 12 +.I axis_count_return +Returns the count of axes being reported. +.SH DESCRIPTION +The server may retain the recent history of the device motion +and do so to a finer granularity than is reported by +\fIDeviceMotionNotify\fP +events. +The \fIXGetDeviceMotionEvents\fP request makes this history available. +.LP +The +\fIXGetDeviceMotionEvents\fP +request returns all events in the motion history buffer that fall between the +specified start and stop times, inclusive. +If the start time is later than the stop time or if the start time is in the +future, no events are returned. +If the stop time is in the future, it is equivalent to specifying +\fICurrentTime\fP. +.LP +The \fImode\fP indicates whether the device is reporting absolute positional +data (mode=\fIAbsolute\fP) or relative motion data (mode=\fIRelative\fP). +Some devices allow their mode to be changed via the \fIXSetDeviceMode\fP +request. +These constants are defined in the file XI.h. The \fIaxis_count\fP +returns the number of axes or valuators being reported by the device. +.LP +\fIXGetDeviceMotionEvents\fP can generate a \fIBadDevice\fP, or \fIBadMatch\fP +error. +.SH STRUCTURES +The +\fIXDeviceTimeCoord\fP +structure contains: +.LP +.nf +typedef struct { + Time time; + int *data; +} XDeviceTimeCoord; +.fi +.LP +The time member is set to the time, in milliseconds. +The data member is a pointer to an array of integers. +These integers are set to the values of each valuator or +axis reported by the device. There is one element in the array +per axis of motion reported by the device. The value of the array elements +depends on the mode of the device. If the mode is \fIAbsolute\fP, the +values are the raw values generated by the device. These may be scaled by +client programs using the maximum values that the device can generate. The +maximum value for each axis of the device is reported in the max_val +field of the \fIXAxisInfo\fP returned by the \fIXListInputDevices\fP +request. If the mode is \fIRelative\fP, the data values are the relative +values generated by the device. +.LP +You should use \fIXFreeDeviceMotionEvents\fP to free the data returned by +this request. +.LP +Errors returned by this request: \fIBadDevice\fP, \fIBadMatch\fP. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceMotionEvents\fP request is made +specifying +a device that has no valuators and reports no axes of motion. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XGetExtensionVersion.man b/man/XGetExtensionVersion.man new file mode 100644 index 0000000..29f7acf --- /dev/null +++ b/man/XGetExtensionVersion.man @@ -0,0 +1,53 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XGetExtV.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGetExtensionVersion 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetExtensionVersion \- query the version of the input extension. +.SH SYNTAX +XExtensionVersion *XGetExtensionVersion\^(\^\fIdisplay\fP, \fIname\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + char *\fIname\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I name +Specifies the extension to be queried. The input extension name is defined +in the header file \fIXI.h\fP. +.SH DESCRIPTION +The \fIXGetExtensionVersion\fP request queries the version of the input +extension, and returns an \fIXExtensionVersion\fP structure. This structure +contains a major_version and minor_version number which can be compared +with constants defined in \fIXI.h\fP. Support for additional protocol +requests added to the input extension after its initial release is indicated +by a version number corresponding to the added requests. Each version +contains all the protocol requests contained by previous versions. +.LP +You should use \fIXFree\fP to free the \fIXExtensionVersion\fP structure. +.SH STRUCTURES +This request returns an XExtensionVersion structure. +.DS +typedef struct { + int present; + short major_version; + short minor_version; +} XExtensionVersion; +.DE +.SH DIAGNOSTICS +none +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XGetFeedbackControl.man b/man/XGetFeedbackControl.man new file mode 100644 index 0000000..959052a --- /dev/null +++ b/man/XGetFeedbackControl.man @@ -0,0 +1,329 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XChFCtl.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGetFeedbackControl 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGetFeedbackControl, XChangeFeedbackControl \- query and change input device feedbacks +.SH SYNTAX +XFeedbackState * +XGetFeedbackControl\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fInum_feedbacks\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int *\fInum_feedbacks\fP\^; +.br +.sp +int XChangeFeedbackControl\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fImask\fP\^, \fIcontrol\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + Mask \fImask\fP\^; +.br + XFeedbackControl *\fIcontrol\fP\^; +.SH ARGUMENTS +.TP 15 +.I display +Specifies the connection to the X server. +.TP 15 +.I device +Specifies the device whose feedbacks are to be queried or modified. +.TP 15 +.I num_feedbacks +Specifies an address into which the number of feedbacks supported by the +device is to be returned. +.TP 15 +.I mask +Specifies a mask specific to each type of feedback that describes how +the feedback is to be modified. +.TP 15 +.I control +Specifies the address of an \fIXFeedbackControl\fP structure that contains +the new values for the feedback. +.SH DESCRIPTION +These requests are provided to manipulate those input devices that +support feedbacks. A \fIBadMatch\fP error will be generated if the +requested device does not support feedbacks. Whether or not a given +device supports feedbacks can be determined by examining the information +returned by the \fIXOpenDevice\fP request. For those devices that +support feedbacks, \fIXOpenDevice\fP will return an +\fIXInputClassInfo\fP structure with the input_class field +equal to the constant \fIFeedbackClass\fP (defined in the file \fIXI.h\fP). +.LP +The \fIXGetFeedbackControl\fP request returns a pointer to a list of +\fIXFeedbackState\fP structures. Each item in this list describes one +of the feedbacks supported by the device. The items are variable length, +so each contains its length to allow traversal to the next item in the +list. +.LP +The feedback classes that are currently defined are: \fIKbdFeedbackClass\fP, +\fIPtrFeedbackClass\fP, \fIStringFeedbackClass\fP, \fIIntegerFeedbackClass\fP, +\fILedFeedbackClass\fP, and \fIBellFeedbackClass\fP. These constants are +defined in the file \fIXI.h\fP. An input device may +support zero or more classes of feedback, and may support multiple feedbacks +of the same class. Each feedback contains a class identifier and an id +that is unique within that class for that input device. The id is used +to identify the feedback when making an \fIXChangeFeedbackControl\fP request. +.LP +\fIXGetFeedbackControl\fP can generate a \fIBadDevice\fP or +\fIBadMatch\fP error. +.LP +The \fIXChangeFeedbackControl\fP request modifies the values of one +feedback on the specified device. The feedback is identified by the id +field of the \fIXFeedbackControl\fP structure that is passed with the +request. The fields of the feedback that are to be modified are identified +by the bits of the mask that is passed with the request. +.LP +\fIXChangeFeedbackControl\fP can generate a \fIBadDevice\fP, +\fIBadMatch\fP, or \fIBadValue\fP error. +.SH STRUCTURES +Each class of feedback is described by a structure specific to that class. +These structures are defined in the file \fIXInput.h\fP. +\fIXFeedbackState\fP and \fIXFeedbackControl\fP are generic +structures that contain three fields that are at the beginning of each class +of feedback: +.LP +.DS +typedef struct { +.br + XID class; +.br + int length; +.br + XID id; +.br +} XFeedbackState, XFeedbackControl; +.DE +.LP +The \fIXKbdFeedbackState\fP structure defines the attributes that are +returned for feedbacks equivalent to those on the X keyboard. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int global_auto_repeat; + char auto_repeats[32]; +} XKbdFeedbackState; +.fi +.DE +.LP +The \fIXPtrFeedbackState\fP structure defines the attributes that are +returned for feedbacks equivalent to those on the the X pointer. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackState; +.fi +.DE +.LP +The \fIXIntegerFeedbackState\fP structure defines attributes that are +returned for integer feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int resolution; + int minVal; + int maxVal; +} XIntegerFeedbackState; +.fi +.DE +.LP +The \fIXStringFeedbackState\fP structure defines the attributes that are +returned for string feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int max_symbols; + int num_syms_supported; + KeySym *syms_supported; +} XStringFeedbackState; +.fi +.DE +.LP +The \fIXBellFeedbackState\fP structure defines the attributes that are +returned for bell feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackState; +.fi +.DE +.LP +The \fIXLedFeedbackState\fP structure defines the attributes that are +returned for LED feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int led_values; +} XLedFeedbackState; +.fi +.DE +.LP +The \fIXPrtFeedbackControl\fP structure defines the attributes that can be +controlled for pointer feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int accelNum; + int accelDenom; + int threshold; +} XPtrFeedbackControl; +.fi +.DE +.LP +The \fIXKbdFeedbackControl\fP structure defines the attributes that can be +controlled for keyboard feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int click; + int percent; + int pitch; + int duration; + int led_mask; + int led_value; + int key; + int auto_repeat_mode; +} XKbdFeedbackControl; +.fi +.DE +.LP +The \fIXStringFeedbackControl\fP structure defines the attributes that can be +controlled for string feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int num_keysyms; + KeySym *syms_to_display; +} XStringFeedbackControl; +.fi +.DE +.LP +The \fIXIntegerFeedbackControl\fP structure defines the attributes that can +be controlled for integer feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int int_to_display; +} XIntegerFeedbackControl; +.fi +.DE +.LP +The \fIXBellFeedbackControl\fP structure defines the attributes that can be +controlled for bell feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int percent; + int pitch; + int duration; +} XBellFeedbackControl; +.fi +.DE +.LP +The \fIXLedFeedbackControl\fP structure defines the attributes that can be +controlled for LED feedbacks. +.LP +.DS +.nf +typedef struct { + XID class; + int length; + XID id; + int led_mask; + int led_values; +} XLedFeedbackControl; +.fi +.DE +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetFeedbackControl\fP request was made specifying +a device that has no feedbacks, or an \fIXChangeFeedbackControl\fP request was +made with an \fIXFeedbackControl\fP structure that contains an invalid feedback +type. It may also occur if an invalid combination of mask bits is specified +(\fIDvKey\fP but no \fIDvAutoRepeatMode\fP for keyboard feedbacks), or if an +invalid KeySym is specified for a string feedback. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the +\fIXChangeFeedbackControl\fP request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XGrabDevice.man b/man/XGrabDevice.man new file mode 100644 index 0000000..8a5608c --- /dev/null +++ b/man/XGrabDevice.man @@ -0,0 +1,207 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XGrabDev.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGrabDevice 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGrabDevice, XUngrabDevice \- grab/release the specified extension device +.SH SYNTAX +.nf +\fB +int XGrabDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIevent_count\fP\^, \fIevent_list\fP\^, +\fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^, \fItime\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + Window \fIgrab_window\fP\^; + Bool \fIowner_events\fP\^; + int \fIevent_count\fP\^; + XEventClass *\fIevent_list\fP\^; + int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^; + Time \fItime\fP\^; + +XUngrabDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fItime\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + Time \fItime\fP\^; +.fi +\fP +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device to be grabbed or released. +.TP 12 +.I grab_window +Specifies the id of a window to be associated with the device. +.TP 12 +.I owner_events +Specifies a Boolean value that indicates whether the +events from the device +are to be reported as usual or reported with respect to the grab window +if selected by the event list. +.TP 12 +.I event_count +Specifies the number of elements in the event_list array. +.TP 12 +.I event_list +Specifies a pointer to a list of event classes that indicates which events +the client wishes to receive. These event classes must have been +obtained specifying the device being grabbed. +.TP 12 +.I this_device_mode +Specifies further processing of events from this device. +You can pass +\fIGrabModeSync\fP +or +\fIGrabModeAsync\fP. +.TP 12 +.I other_devices_mode +Specifies further processing of events from other devices. +You can pass +\fIGrabModeSync\fP +or +\fIGrabModeAsync\fP. +.TP 12 +.I time +Specifies the time. +You can pass either a timestamp or +\fICurrentTime\fP. +.SH DESCRIPTION +The +\fIXGrabDevice\fP +request actively grabs control of the device and generates +\fIDeviceFocusIn\fP +and +\fIDeviceFocusOut\fP +events. +Further device events are reported only to the +grabbing client. +\fIXGrabDevice\fP +overrides any active device grab by this client. +event_list is a pointer to a list of event classes. This list indicates +which events the client wishes to receive while the grab is active. +If owner_events is +\fIFalse\fP , +all generated device events are reported with +respect to grab_window if selected. +If owner_events is +\fITrue\fP +and if a generated +device event would normally be reported to this client, it is reported +normally; otherwise, the event is reported with respect to the +grab_window, and is only reported if specified in the event_list. +.LP +If the this_device_mode argument is +\fIGrabModeAsync\fP , +device event processing continues +as usual. +If the device is currently frozen by this client, +then processing of device events is resumed. +If the this_device_mode argument is +\fIGrabModeSync\fP , +the state of the device (as seen by client applications) appears to freeze, +and the X server generates no further device events until the +grabbing client issues a releasing +\fIXAllowDeviceEvents\fP +call or until the device grab is released. +Actual device changes are not lost while the device is frozen; +they are simply queued in the server for later processing. +.LP +If other_devices_mode is +\fIGrabModeAsync\fP , +processing of events from other devices is unaffected +by activation of the grab. +If other_devices_mode is +\fIGrabModeSync\fP, +the state of all devices except the grabbed device + (as seen by client applications) appears to freeze, +and the X server generates no further events from those devices +until the grabbing client issues a releasing +\fIXAllowDeviceEvents\fP +call or until the device grab is released. +Actual events are not lost while the devices are frozen; +they are simply queued in the server for later processing. +.LP +If the device is actively grabbed by some other client, +\fIXGrabDevice\fP +fails and returns +\fIAlreadyGrabbed\fP. +If grab_window is not viewable, +it fails and returns +\fIGrabNotViewable\fP. +If the device is frozen by an active grab of another client, +it fails and returns +\fIGrabFrozen\fP. +If the specified time is earlier than the last-device-grab time +or later than the current X server time, +it fails and returns +\fIGrabInvalidTime\fP. +Otherwise, the last-device-grab time is set to the specified time +\fI( CurrentTime\fP +is replaced by the current X server time). +.LP +If a grabbed device is closed by a client while an active grab by that +client is in effect, the active grab is released. If the device is +frozen only by an active grab of the requesting client, it is thawed. +.LP +\fIXGrabDevice\fP +can generate +\fIBadClass\fP, \fIBadDevice\fP, \fIBadValue\fP, and \fIBadWindow\fP +errors. +.LP +The +\fIXUngrabDevice\fP +request +releases the device and any queued events if this client has it actively +grabbed from either +\fIXGrabDevice\fP +or +\fIXGrabDeviceKey\fP. +If other devices are frozen by the grab, \fIXUngrabDevice\fP thaws them. +\fIXUngrabDevice\fP +does not release the device and any queued events +if the specified time is earlier than +the last-device-grab time or is later than the current X server time. +It also generates +\fIDeviceFocusIn\fP +and +\fIDeviceFocusOut\fP +events. +The X server automatically performs an +\fIUngrabDevice\fP +request if the event window for an +active device grab becomes not viewable. +.LP +\fIXUngrabDevice\fP +can generate a \fIBadDevice\fP error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.SH "SEE ALSO" +XAllowDeviceEvents(3X), +XGrabDeviceButton(3X), +XGrabDeviceKey(3X), +.br +\fI\*(xL\fP diff --git a/man/XGrabDeviceButton.man b/man/XGrabDeviceButton.man new file mode 100644 index 0000000..bb42011 --- /dev/null +++ b/man/XGrabDeviceButton.man @@ -0,0 +1,217 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XGrDvBut.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XGrabDeviceButton 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGrabDeviceButton, XUngrabDeviceButton \- grab/ungrab extension input device buttons +.SH SYNTAX +\fB +.nf +XGrabDeviceButton\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIbutton\fP\^, \fImodifiers\fP\^, \fImodifier_device\fP\^, \fIgrab_window\fP\^, +\fIowner_events\fP\^, \fIevent_count\fP\^, \fIevent_list\fP\^, \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + unsigned int \fIbutton\fP\^; + unsigned int \fImodifiers\fP\^; + XDevice *\fImodifier_device\fP\^; + Window \fIgrab_window\fP\^; + Bool \fIowner_events\fP\^; + unsigned int \fIevent_count\fP\^; + XEventClass *\fIevent_list\fP\^; + int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^; + +XUngrabDeviceButton\^(\^\fIdisplay\fP\^, \fIdevice\fP\^, \fIbutton\fP\^, \fImodifiers\fP\^, \fImodifier_device\fP\^, \fIgrab_window\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; + unsigned int \fIbutton\fP\^; + unsigned int \fImodifiers\fP\^; + XDevice *\fImodifier_device\fP\^; + Window \fIgrab_window\fP\^; +.fi +\fP +.SH ARGUMENTS +.ds Bu grabbed or released +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device that is to be \*(Bu +.TP 12 +.I button +Specifies the device button that is to be \*(Bu or +\fIAnyButton\fP. +.TP 12 +.I modifiers +Specifies the set of keymasks or +\fIAnyModifier\fP. +The mask is the bitwise inclusive OR of the valid keymask bits. +Valid bits are: Shiftmask, LockMask, ControlMask, Mod1Mask, Mod2Mask, +Mod3Mask, Mod4Mask, Mod5Mask. +.TP 12 +.I modifier_device +specifies the device whose modifiers are to be used. If the modifier_device +specified is NULL, the X keyboard will be used as the modifier_device. +.TP 12 +.I grab_window +Specifies the grab window. +.TP 12 +.I owner_events +Specifies a Boolean value that indicates whether the device +events are to be reported as usual or reported with respect to the grab window +if selected by the event list. +.TP 12 +.I event_count +Specifies the number of event classes in the event list. +.TP 12 +.I event_list +Specifies which events are reported to the client. +.TP 12 +.I this_device_mode +Specifies further processing of events from this device. +You can pass \fIGrabModeSync\fP or \fIGrabModeAsync\fP. +.TP 12 +.I other_devices_mode +Specifies further processing of events from all other devices. +You can pass \fIGrabModeSync\fP or \fIGrabModeAsync\fP. +.SH DESCRIPTION +The \fIXGrabDeviceButton\fP request establishes a passive grab. +In the future, +the device is actively grabbed (as for \fIXGrabDevice\fP, +the last-grab time is set to the time at which the button was pressed +(as transmitted in the +\fIDeviceButtonPress\fP +event), and the +\fIDeviceButtonPress\fP +event is reported if all of the following conditions are true: +.IP \(bu 5 +The device is not grabbed, and the specified button is logically pressed +when the specified modifier keys are logically down on the specified +modifier device +and no other buttons or modifier keys are logically down. +.IP \(bu 5 +Either the grab window is an ancestor of (or is) the focus window, OR +the grab window is a descendent of the focus window and contains the +device. +.IP \(bu 5 +A passive grab on the same button/modifier combination does not exist +on any ancestor of grab_window. +.LP +The interpretation of the remaining arguments is as for +\fIXGrabDevice\fP. +The active grab is terminated automatically when the logical state of the +device has all buttons released +(independent of the logical state of the modifier keys). +.LP +Note that the logical state of a device (as seen by client applications) +may lag the physical state if device event processing is frozen. +.LP +This request overrides all previous grabs by the same client on the same +button/modifier combinations on the same window. +A modifiers of +\fIAnyModifier\fP +is equivalent to issuing the grab request for all +possible modifier combinations (including the combination of no modifiers). +It is not required that all modifiers specified have currently assigned +KeyCodes. +A button of +\fIAnyButton\fP +is equivalent to +issuing the request for all possible buttons. +Otherwise, it is not required that the specified button currently be assigned +to a physical button. +.LP +A modifier_device of NULL indicates that the X keyboard is to be used as the +modifier_device. +.LP +If some other client has already issued a +\fIXGrabDeviceButton\fP +with the same button/modifier combination on the same window, a +\fIBadAccess\fP +error results. +When using +\fIAnyModifier\fP +or +\fIAnyButton\fP , +the request fails completely, +and a +\fIBadAccess\fP +error results (no grabs are +established) if there is a conflicting grab for any combination. +\fIXGrabDeviceButton\fP +has no effect on an active grab. +.LP +\fIXGrabDeviceButton\fP +can generate +\fIBadClass\fP, +\fIBadDevice\fP, +\fIBadMatch\fP, +\fIBadValue\fP, +and +\fIBadWindow\fP +errors. +.P +The \fIXUngrabDeviceButton\fP +request releases the passive grab for a +button/modifier combination on the specified window if +it was grabbed by this client. +A modifier of \fIAnyModifier\fP is +equivalent to issuing +the ungrab request for all possible modifier combinations, including +the combination of no modifiers. +A button of +\fIAnyButton\fP +is equivalent to issuing the +request for all possible buttons. +\fIXUngrabDeviceButton\fP +has no effect on an active grab. +.LP +A modifier_device of NULL indicates that the X keyboard should be used as +the modifier_device. +.LP +\fIXUngrabDeviceButton\fP +can generate +\fIBadDevice\fP, +\fIBadMatch\fP, +\fIBadValue\fP +and +\fIBadWindow\fP +errors. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGrabDeviceButton\fP request was made +specifying +a device that has no buttons, or specifying a modifier device +that has no keys. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.SH "SEE ALSO" +XAllowDeviceEvents(3X), +.br +XGrabDevice(3X), +.br +XGrabDeviceKey(3X), +.br +\fI\*(xL\fP diff --git a/man/XGrabDeviceKey.man b/man/XGrabDeviceKey.man new file mode 100644 index 0000000..4f92451 --- /dev/null +++ b/man/XGrabDeviceKey.man @@ -0,0 +1,231 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XGrDvKey.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XGrabDeviceKey 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XGrabDeviceKey, XUngrabDeviceKey \- grab/ungrab extension input device Keys +.SH SYNTAX +XGrabDeviceKey\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIKey\fP\^, \fImodifiers\fP\^, +\fImodifier_device\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^, +.br +\fIevent_count\fP\^, \fIevent_list\fP\^, \fIthis_device_mode\fP\^, +\fIother_devices_mode\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + unsigned int \fIKey\fP\^; +.br + unsigned int \fImodifiers\fP\^; +.br + XDevice *\fImodifier_device\fP\^; +.br + Window \fIgrab_window\fP\^; +.br + Bool \fIowner_events\fP\^; +.br + unsigned int \fIevent_count\fP\^; +.br + XEventClass \fIevent_list\fP\^; +.br + int \fIthis_device_mode\fP\^, \fIother_devices_mode\fP\^; +.sp +XUngrabDeviceKey\^(\fIdisplay\fP\^, \fIdevice\fP\^, \fIKey\fP\^, \fImodifiers\fP\^, +\fImodifier_device\fP\^, \fIgrab_window\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + unsigned int \fIKey\fP\^; +.br + unsigned int \fImodifiers\fP\^; +.br + XDevice *\fImodifier_device\fP\^; +.br + Window \fIgrab_window\fP\^; +.SH ARGUMENTS +.ds Bu grabbed or released +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device that is to be \*(Bu +.TP 12 +.I Key +Specifies the device Key that is to be \*(Bu or +\fIAnyKey\fP. +.TP 12 +.I modifiers +Specifies the set of keymasks or +\fIAnyModifier\fP. +The mask is the bitwise inclusive OR of the valid keymask bits. +Valid bits are: ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, +Mod3Mask, Mod4Mask, Mod5Mask. +.TP 12 +.I modifier_device +Specifies the device whose modifiers are to be used. If a modifier_device of +NULL is specified, the X keyboard will be used as the modifier_device. +.TP 12 +.I grab_window +Specifies the grab window. +.TP 12 +.I owner_events +Specifies a Boolean value that indicates whether the device +events are to be reported as usual or reported with respect to the grab window +if selected by the event list. +.TP 12 +.I event_count +Specifies the number of event classes in the event list. +.TP 12 +.I event_list +Specifies which device events are reported to the client. +.TP 12 +.I this_device_mode +Specifies further processing of events from this device. +You can pass \fIGrabModeSync\fP or \fIGrabModeAsync\fP. +.TP 12 +.I other_devices_mode +Specifies further processing of events from other devices. +You can pass +\fIGrabModeSync\fP +or +\fIGrabModeAsync\fP. +.SH DESCRIPTION +The \fIXGrabDeviceKey\fP request establishes a passive grab. +In the future, +the device is actively grabbed (as for +\fIXGrabDevice\fP, +the last-device-grab time is set to the time at which the Key was pressed +(as transmitted in the +\fIDeviceKeyPress\fP +event), and the +\fIDeviceKeyPress\fP +event is reported if all of the following conditions are true: +.IP \(bu 5 +The device is not grabbed, and the specified key is logically pressed +when the specified modifier keys are logically down, +and no other keys or modifier keys are logically down. +.IP \(bu 5 +The grab_window is an ancestor (or is) the focus window OR the grab +window is a descendant of the focus window and contains the device. +.IP \(bu 5 +The confine_to window (if any) is viewable. +.IP \(bu 5 +A passive grab on the same key/modifier combination does not exist +on any ancestor of grab_window. +.LP +The interpretation of the remaining arguments is as for +\fIXGrabDevice\fP . +The active grab is terminated automatically when the logical state of the +device has the specified key released. +.LP +Note that the logical state of a device (as seen by means of the X protocol ) +may lag the physical state if device event processing is frozen. +.LP +If the key is not \fIAnyKey\fP, it must be in the range specified by +min_keycode and max_keycode as returned by the \fIXListInputDevices\fP +request. Otherwise, a \fIBadValue\fP error results. +.LP +This request overrides all previous grabs by the same client on the same +Key/modifier combinations on the same window. +A modifier of +\fIAnyModifier\fP +is equivalent to issuing the grab request for all +possible modifier combinations (including the combination of no modifiers). +It is not required that all modifiers specified have currently assigned +KeyCodes. +A key of +\fIAnyKey\fP +is equivalent to +issuing the request for all possible keys. +Otherwise, it is not required that the specified key currently be assigned +to a physical Key. +.LP +If a modifier_device of NULL is specified, the X keyboard will be used as +the modifier_device. +.LP +If some other client has already issued a +\fIXGrabDeviceKey\fP +with the same Key/modifier combination on the same window, a +\fIBadAccess\fP +error results. +When using +\fIAnyModifier\fP +or +\fIAnyKey\fP , +the request fails completely, +and a +\fIBadAccess\fP +error results (no grabs are +established) if there is a conflicting grab for any combination. +\fIXGrabDeviceKey\fP +has no effect on an active grab. +.LP +\fIXGrabDeviceKey\fP +can generate +\fIBadAccess\fP, +\fIBadClass\fP, +\fIBadDevice\fP, +\fIBadMatch\fP, +\fIBadValue\fP, +and +\fIBadWindow\fP +errors. It returns \fISuccess\fP on successful completion of the request. +.P +The \fIXUngrabDeviceKey\fP +request releases the passive grab for a key/modifier combination on the +specified window if it was grabbed by this client. +A modifier of \fIAnyModifier\fP is +equivalent to issuing +the ungrab request for all possible modifier combinations, including +the combination of no modifiers. +A Key of \fIAnyKey\fP +is equivalent to issuing the request for all possible Keys. +\fIXUngrabDeviceKey\fP has no effect on an active grab. +.LP +If a modifier_device of NULL is specified, the X keyboard will be used as the +modifier_device. +.LP +\fIXUngrabDeviceKey\fP can generate \fIBadDevice\fP, \fIBadMatch\fP, +\fIBadValue\fP and \fIBadWindow\fP errors. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGrabDeviceKey\fP request was made +specifying a device that has no keys, or a modifier device that has no +keys. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.SH "SEE ALSO" +XAllowDeviceEvents(3X), +.br +XGrabDevice(3X), +.br +XGrabDeviceButton(3X), +.br +.br +\fI\*(xL\fP diff --git a/man/XListInputDevices.man b/man/XListInputDevices.man new file mode 100644 index 0000000..ea780c6 --- /dev/null +++ b/man/XListInputDevices.man @@ -0,0 +1,234 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XListDev.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XListInputDevices 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XListInputDevices, XFreeDeviceList \- list available input devices +.SH SYNTAX +XDeviceInfo *XListInputDevices\^(\^\fIdisplay\fP, \fIndevices_return\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + int *\fIndevices_return\fP\^; +.sp +XFreeDeviceList\^(\^\fIlist\fP\^) +.br + XDeviceInfo *\fIlist\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I ndevices_return +Specifies a pointer to a variable where the number of available devices can +be returned. +.TP 12 +.I list +Specifies the list of devices to free. The \fIXFreeDeviceList\fP function +frees the list of available extension input devices. +.SH DESCRIPTION +The \fIXListInputDevices\fP +request lists the available extension input devices. This list includes the +X pointer and X keyboard, any other input devices that are currently accessible +through the X server, and any input devices that are not currently accessible +through the X server but could be accessed if requested. +.LP +Some server implementations may make all input devices available at the time +the server is initialized. Others may wait until requested by a client to +access an input device. In the latter case, it is possible that an input +device will be listed as available at one time but not at another. +.LP +For each input device available to the server, the XListInputDevices +request returns an XDeviceInfo structure. That structure contains a +pointer to a list of structures, each of which contains information about +one class of input supported by the device. + +The XDeviceInfo structure is defined as follows: + +.DS +.nf +typedef struct _XDeviceInfo +{ + XID id; + Atom type; + char *name; + int num_classes; + int use; + XAnyClassPtr inputclassinfo; +} XDeviceInfo; +.fi +.DE +.LP +The id is a number in the range 0-128 that uniquely identifies +the device. It is assigned to the device when it is initialized by the server. +.LP +The type field is of type Atom and indicates the nature +of the device. +.LP +The name field contains a pointer to a null-terminated +string that corresponds to one of the defined device +types. The name will correspond to one of the following +strings (defined in the header file \fIXI.h\fP: +.LP +.DS +XI_MOUSE +XI_TABLET +XI_KEYBOARD +XI_TOUCHSCREEN +XI_TOUCHPAD +XI_BUTTONBOX +XI_BARCODE +XI_TRACKBALL +XI_QUADRATURE +XI_ID_MODULE +XI_ONE_KNOB +XI_NINE_KNOB +XI_KNOB_BOX +XI_SPACEBALL +XI_DATAGLOVE +XI_EYETRACKER +XI_CURSORKEYS +XI_FOOTMOUSE +.DE +.LP +These names may be directly compared with the name field of the +XDeviceInfo structure, or used in an XInternAtom request to return +an atom that can be compared with the type field of the XDeviceInfo +structure. +.LP +The num_classes field is a number in the +range 0-255 that specifies the number of input classes +supported by the device for which information is +returned by ListInputDevices. Some input classes, such +as class Focus and class Proximity do not have any +information to be returned by ListInputDevices. +.LP +The use field specifies how the device is currently +being used. If the value is \fIIsXKeyboard\fP, the device is +currently being used as the X keyboard. If the value +is \fIIsXPointer\fP, the device is currently being used as +the X pointer. If the value is \fIIsXExtensionDevice\fP, the +device is available for use as an extension device. +.LP +The inputclassinfo field contains a pointer to the first input-class +specific data. The first two fields are common to all +classes. +.LP +The class field is a number in the range 0-255. +It uniquely identifies the class of input for which +information is returned. Currently defined classes +are KeyClass, ButtonClass, and ValuatorClass. +.LP +The length field is a number in the range 0- 255. +It specifies the number of bytes of data that are +contained in this input class. The length includes the +class and length fields. +.LP +The XKeyInfo structure describes the characteristics of the keys on the +device. It is defined as follows: +.LP +.DS +.nf +typedef struct _XKeyInfo { + XID class; + int length; + unsigned short min_keycode; + unsigned short max_keycode; + unsigned short num_keys; +} XKeyInfo; +.fi +.DE +.LP +min_keycode is of type KEYCODE. It specifies the +minimum keycode that the device will report. The +minimum keycode will not be smaller than 8. +.LP +max_keycode is of type KEYCODE. It specifies the +maximum keycode that the device will report. The +maximum keycode will not be larger than 255. +.LP +num_keys specifies the number of keys that the device has. +.LP +The XButtonInfo structure defines the characteristics of the buttons +on the device. It is defined as follows: +.LP +.DS +.nf +typedef struct _XButtonInfo { + XID class; + int length; + short num_buttons; +} XButtonInfo; +.fi +.DE +.LP +num_buttons specifies the number of buttons that the device has. +.LP +The XValuatorInfo structure defines the characteristics of the valuators +on the device. It is defined as follows: +.LP +.DE +.nf +typedef struct _XValuatorInfo { + XID class; + int length; + unsigned char num_axes; + unsigned char mode; + unsigned long motion_buffer; + XAxisInfoPtr axes; +} XValuatorInfo; +.fi +.DS +num_axes contains the number of axes the device supports. +.LP +mode is a constant that has one of the following +values: Absolute or Relative. Some devices allow the +mode to be changed dynamically via the SetDeviceMode +request. +.LP +motion_buffer_size is a cardinal number that specifies +the number of elements that can be contained in the +motion history buffer for the device. +.LP +The axes field contains a pointer to an XAxisInfo structure. +.LP +The XAxisInfo structure is defined as follows: +.LP +.DS +.nf +typedef struct _XAxisInfo { + int resolution; + int min_value; + int max_value; +} XAxisInfo; +.fi +.DE +.LP +The resolution contains a number in counts/meter. +.LP +The min_val field contains a number that specifies +the minimum value the device reports for this axis. +For devices whose mode is Relative, the min_val field +will contain 0. +.LP +The max_val field contains a number that specifies +the maximum value the device reports for this axis. +For devices whose mode is Relative, the max_val field +will contain 0. +.LP +To free the \fIXDeviceInfo\fP array created by \fIXListInputDevices\fP, +use \fIXFreeDeviceList\fP. +.SH DIAGNOSTICS +none. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XOpenDevice.man b/man/XOpenDevice.man new file mode 100644 index 0000000..915865e --- /dev/null +++ b/man/XOpenDevice.man @@ -0,0 +1,128 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XOpenDev.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XOpenDevice 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XOpenDevice, XCloseDevice \- open or close an extension input device +.SH SYNTAX +\fB +.nf +XDevice *XOpenDevice\^(\^\fIdisplay\fP, \fIdevice_id\fP\^) + Display *\fIdisplay\fP\^; + XID \fIdevice_id\fP\^; + +XCloseDevice\^(\^\fIdisplay\fP, \fIdevice\fP\^) + Display *\fIdisplay\fP\^; + XDevice *\fIdevice\fP\^; +.fi +\fP +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device_id +Specifies the id of the device to be opened +.TP 12 +.I device +Specifies the device to be closed +.SH DESCRIPTION +The \fIXOpenDevice\fP +request makes an input device accessible to a client through input extension +protocol requests. If successful, it returns a pointer to an \fBXDevice\fP +structure. +.LP +The \fIXCloseDevice\fP request makes an input device inaccessible to a +client through input extension protocol requests. Before terminating, +and client that has opened input devices through the input extension +should close them via \fICloseDevice\fP. +.LP +When a client makes an \fIXCloseDevice\fP request, +any active grabs that the client has on the device are +released. Any event selections that the client has are deleted, as well as +any passive grabs. If the requesting client is the last client accessing +the device, the server may disable all access by X to the device. +.LP +\fIXOpenDevice\fP and \fIXCloseDevice\fP can generate a \fIBadDevice\fP +error. +.SH STRUCTURES +The +\fIXDevice\fP structure returned by \fIXOpenDevice\fP contains: +.nf +typedef struct { + XID device_id; + int num_classes; + XInputClassInfo *classes; +} XDevice; +.fi +.LP +The classes field is a pointer to an array of XInputClassInfo structures. +Each element of this array contains an event type base for a class of input +supported by the specified device. The num_classes field indicates the +number of elements in the classes array. +.LP +The +\fIXInputClassInfo\fP +structure contains: +.LP +.nf +typedef struct { + unsigned char input_class; + unsigned char event_type_base; +} XInputClassInfo; +.fi +.LP +The input_class field identifies one class of input +supported by the device. Defined types include \fIKeyClass\fP, +\fIButtonClass\fP, \fIValuatorClass\fP, \fIProximityClass\fP, +\fIFeedbackClass\fP, \fIFocusClass\fP, and \fIOtherClass\fP. +The event_type_base identifies the event type of the first event in that class. +.LP +The information contained in the \fIXInputClassInfo\fP structure is used +by macros to obtain the event classes that clients use in making +\fIXSelectExtensionEvent\fP requests. Currently defined macros include +\fIDeviceKeyPress\fP, \fIDeviceKeyRelease\fP, \fIDeviceButtonPress\fP, +\fIDeviceButtonRelese\fP, \fIDeviceMotionNotify\fP, \fIDeviceFocusIn\fP, +\fIDeviceFocusOut\fP, \fIProximityIn\fP, \fIProximityOut\fP, +\fIDeviceStateNotify\fP, \fIDeviceMappiingNotify\fP, +\fIChangeDeviceNotify\fP, \fIDevicePointerMotionHint\fP, +\fIDeviceButton1Motion\fP, \fIDeviceButton2Motion\fP, \fIDeviceButton3Motion\fP, +\fIDeviceButton4Motion\fP, \fIDeviceButton5Motion\fP, \fIDeviceButtonMotion\fP, +\fIDeviceOwnerGrabButton\fP, \fIDeviceButtonPressGrab\fP, and +\fINoExtensionEvent\fP. +.LP +To obtain the proper event class for a particular device, one of the above +macros is invoked using the \fIXDevice\fP structure for that device. For +example, +.LP +.nf +DeviceKeyPress (*device, type, eventclass); +.fi +.LP +returns the \fIDeviceKeyPress\fP event type and the eventclass for +\fIDeviceKeyPress\fP events from the specified device. +.LP +This \fIeventclass\fP can then be used in an \fIXSelectExtensionEvent\fP +request to ask the server to send \fIDeviceKeyPress\fP events from this device. +When a selected event is received via \fIXNextEvent\fP, the \fItype\fP can be +used for comparison with the type in the event. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist, +or is the X keyboard or X pointer. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XQueryDeviceState.man b/man/XQueryDeviceState.man new file mode 100644 index 0000000..195d5e4 --- /dev/null +++ b/man/XQueryDeviceState.man @@ -0,0 +1,99 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XQueryDv.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XQueryDeviceState 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XQueryDeviceState \- query the state of an extension input device. +.SH SYNTAX +XQueryDeviceState\^(\^\fIdisplay\fP, \fIdevice\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose state is to be queried. +.SH DESCRIPTION +The +\fIXQueryDeviceState\fP +request queries the state of an input device. The current state of +keys and buttons (up or down), and valuators (current value) on the device +is reported by this request. Each key or button is represented by a bit +in the \fIXDeviceState\fP structure that is returned. Valuators on the +device report 0 if they are reporting relative information, and the +current value if they are reporting absolute information. +.LP +\fIXQueryDeviceState\fP +can generate a \fIBadDevice\fP error. +.SH STRUCTURES +The +\fIXDeviceState\fP +structure contains: +.LP +.nf +typedef struct { + XID device_id; + int num_classes; + XInputClass *data; +} XDeviceState; +.fi +.LP +The +\fIXValuatorState\fP +structure contains: +.LP +.nf +typedef struct { + unsigned char class; + unsigned char length; + unsigned char num_valuators; + unsigned char mode; + int *valuators; +} XValuatorState; +.fi +.LP +The \fIXKeyState\fP structure contains: +.LP +.nf +typedef struct { + unsigned char class; + unsigned char length; + short num_keys; + char keys[32]; +} XKeyState; +.fi +.LP +The \fIXButtonState\fP structure contains: +.LP +.nf +typedef struct { + unsigned char class; + unsigned char length; + short num_buttons; + char buttons[32]; +} XButtonState; +.fi +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XSelectExtensionEvent.man b/man/XSelectExtensionEvent.man new file mode 100644 index 0000000..95ec1bc --- /dev/null +++ b/man/XSelectExtensionEvent.man @@ -0,0 +1,148 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSelExtEv.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XSelectExtensionEvent 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSelectExtensionEvent, XGetSelectedExtensionEvents \- select extension events, get the list of currently selected extension events +.SH SYNTAX +XSelectExtensionEvent\^(\^\fIdisplay\fP, \fIw\fP\^, \fIevent_list\fP\^, \fIevent_count\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Window \fIw\fP\^; +.br + XEventClass *\fIevent_list\fP\^; +.br + int \fIevent_count\fP\^; +.sp +XGetSelectedExtensionEvents\^(\^\fIdisplay\fP, \fIw\fP\^, \fIthis_client_event_count_return\fP\^, +.br +\fIthis_client_event_list_return\fP\^, \fIall_clients_event_count_return\fP\^, +\fIall_clients_event_list_return\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Window \fIw\fP\^; +.br + int \fIthis_client_event_count_return\fP\^; +.br + XEventClass *\fIthis_client_event_list_return\fP\^; +.br + int \fIall_clients_event_count_return\fP\^; +.br + XEventClass *\fIall_clients_event_list_return\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.ds Wi whose events you are interested in +.TP 12 +.I w +Specifies the window \*(Wi. +.TP 12 +.I event_list +Specifies the list of event classes that describe the events you are interested in. +.TP 12 +.I event_count +Specifies the count of event classes in the event list. +.TP 12 +.I this_client_event_count_return +Returns the count of event classes selected by this client. +.TP 12 +.I this_client_event_list_return +Returns a pointer to the list of event classes selected by this client. +.TP 12 +.I all_clients_event_count_return +Returns the count of event classes selected by all clients. +.TP 12 +.I all_clients_event_list_return +Returns a pointer to the list of event classes selected by all clients. +.SH DESCRIPTION +The +\fIXSelectExtensionEvent\fP request causes the X server to report the +events associated with the +specified list of event classes. +Initially, X will not report any of these events. +Events are reported relative to a window. +If a window is not interested in a device event, it usually propagates to +the closest ancestor that is interested, +unless the do_not_propagate mask prohibits it. +.LP +Multiple clients can select for the same events on the same window +with the following restrictions: +.IP \(bu 5 +Multiple clients can select events on the same window because their event masks +are disjoint. +When the X server generates an event, it reports it +to all interested clients. +.IP \(bu 5 +Only one client at a time can select a +\fIDeviceButtonPress\fP +event with automatic passive grabbing enabled, which is associated with +the event class \fIDeviceButtonPressGrab\fP. +To receive \fIDeviceButtonPress\fP events without automatic passive +grabbing, use event class \fIDeviceButtonPress\fP but do not specify +event class \fIDeviceButtonPressGrab\fP. +.LP +The server reports the event to all interested clients. +.LP +Information contained in the \fIXDevice\fP structure returned by +\fIXOpenDevice\fP is used +by macros to obtain the event classes that clients use in making +\fIXSelectExtensionEvent\fP requests. Currently defined macros include +\fIDeviceKeyPress\fP, \fIDeviceKeyRelease\fP, \fIDeviceButtonPress\fP, +\fIDeviceButtonRelese\fP, \fIDeviceMotionNotify\fP, \fIDeviceFocusIn\fP, +\fIDeviceFocusOut\fP, \fIProximityIn\fP, \fIProximityOut\fP, +\fIDeviceStateNotify\fP, \fIDeviceMappiingNotify\fP, +\fIChangeDeviceNotify\fP, \fIDevicePointerMotionHint\fP, +\fIDeviceButton1Motion\fP, \fIDeviceButton2Motion\fP, \fIDeviceButton3Motion\fP, +\fIDeviceButton4Motion\fP, \fIDeviceButton5Motion\fP, \fIDeviceButtonMotion\fP, +\fIDeviceOwnerGrabButton\fP, \fIDeviceButtonPressGrab\fP, and +\fINoExtensionEvent\fP. +.LP +To obtain the proper event class for a particular device, one of the above +macros is invoked using the \fIXDevice\fP structure for that device. For +example, +.LP +.DS 0 +.TA .5i +.ta .5i +DeviceKeyPress (*device, type, eventclass); +.DE +.LP +returns the \fIDeviceKeyPress\fP event type and the eventclass for selecting +\fIDeviceKeyPress\fP events from this device. +.LP +\fIXSelectExtensionEvent\fP +can generate a \fIBadWindow\fP or \fIBadClass\fP error. +The +\fIXGetSelectedExtensionEvents\fP +request reports the extension events selected by this client and all clients +for the specified window. This request returns pointers to two +\fIXEventClass\fP +arrays. One lists the input extension events selected by this client from +the specified window. The other lists the event classes selected by all +clients from the specified window. You should use \fIXFree\fP to free these +two arrays. +.LP +\fIXGetSelectedExtensionEvents\fP +can generate a \fIBadWindow\fP error. +.SH DIAGNOSTICS +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.TP 12 +\fIBadClass\fP +A value for an XEventClass argument is invalid. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XSendExtensionEvent.man b/man/XSendExtensionEvent.man new file mode 100644 index 0000000..ad66beb --- /dev/null +++ b/man/XSendExtensionEvent.man @@ -0,0 +1,149 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSExEvnt.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XSendExtensionEvent 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSendExtensionEvent \- send input extension events to a client +.SH SYNTAX +Status XSendExtensionEvent\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIdestination\fP\^, \fIpropagate\fP\^, \fIevent_count\fP\^, \fIevent_list\fP\^, \fIevent_send\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + Window \fIdestination\fP\^; +.br + Bool \fIpropagate\fP\^; +.br + int \fIevent_count\fP\^; +.br + XEventClass *\fIevent_list\fP\^; +.br + XEvent *\fIevent_send\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device from which the events are to be sent. +.TP 12 +.I destination +Specifies the window the event is to be sent to. You can pass window id, +\fIPointerWindow\fP, \ +or \ +\fIInputFocus\fP. +.TP 12 +.I propagate +Specifies a Boolean value that is either True or False. +.TP 12 +.I event_count +Specifies the count of XEventClasses in event_list. +.TP 12 +.I event_list +Specifies the list of event selections to be used. +.TP 12 +.I event_send +Specifies a pointer to the event that is to be sent. +.TP 12 +.SH DESCRIPTION +The +\fIXSendExtensionEvent\fP +request identifies the destination window, +determines which clients should receive the specified events, +and ignores any active grabs. +This request requires you to pass an event class list. +For a discussion of the valid event class names, +see \fIXOpenDevice(3X11)\fP. +This request uses the w argument to identify the destination window as follows: +.IP \(bu 5 +If w is +\fIPointerWindow\fP , +the destination window is the window that contains the pointer. +.IP \(bu 5 +If w is +\fIInputFocus\fP +and if the focus window contains the pointer, +the destination window is the window that contains the pointer; +otherwise, the destination window is the focus window. +.LP +To determine which clients should receive the specified events, +\fIXSendExtensionEvent\fP +uses the propagate argument as follows: +.IP \(bu 5 +If event_list is the empty set, +the event is sent to the client that created the destination window. +If that client no longer exists, +no event is sent. +.IP \(bu 5 +If propagate is +\fIFalse\fP, +the event is sent to every client selecting on destination any of the event +types specified by the event_list array. +.IP \(bu 5 +If propagate is +\fITrue\fP +and no clients have selected on destination any of +the events specified by the event_list array, +the destination is replaced with the +closest ancestor of destination for which some client has selected a +type specified by the event-list array and for which no intervening +window has that type in its +do-not-propagate-mask. +If no such window exists or if the window is +an ancestor of the focus window and +\fIInputFocus\fP +was originally specified +as the destination, the event is not sent to any clients. +Otherwise, the event is reported to every client selecting on the final +destination any of the events specified in the event_list array. +.LP +The event in the +\fIXEvent\fP +structure must be one of the events defined by the input extension (or a +\fIBadValue\fP +error results) so that the X server can correctly byte-swap +the contents as necessary. +The contents of the event are +otherwise unaltered and unchecked by the X server except to force send_event to +\fITrue\fP +in the forwarded event and to set the serial number in the event correctly. +.LP +\fIXSendExtensionEvent\fP +returns zero if the conversion to wire protocol format failed +and returns nonzero otherwise. +\fIXSendExtensionEvent\fP +can generate +\fIBadClass\fP, +\fIBadDevice\fP, +\fIBadValue\fP, +and +\fIBadWindow\fP +errors. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XSetDeviceButtonMapping.man b/man/XSetDeviceButtonMapping.man new file mode 100644 index 0000000..e6635db --- /dev/null +++ b/man/XSetDeviceButtonMapping.man @@ -0,0 +1,113 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSeBMap.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming With Xlib +.TH XSetDeviceButtonMapping 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSetDeviceButtonMapping, XGetDeviceButtonMapping \- query or change device button mappings +.SH SYNTAX +int XSetDeviceButtonMapping\^(\^\fIdisplay\fP, \fIdevice\fP, \fImap\fP, \fInmap\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + unsigned char \fImap\fP\^[]\^; +.br + int \fInmap\fP\^; +.sp +int XGetDeviceButtonMapping\^(\^\fIdisplay\fP, \fIdevice\fP, \fImap_return\fP, +\fInmap\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + unsigned char \fImap_return\fP\^[]\^; +.br + int \fInmap\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose button mapping is to be queried or changed. +.TP 12 +.I map +Specifies the mapping list. +.TP 12 +.I map_return +Returns the mapping list. +.TP 12 +.I nmap +Specifies the number of items in the mapping list. +.SH DESCRIPTION +The \fIXSetDeviceButtonMapping\fP +request sets the mapping of the specified device. +If it succeeds, the X server generates a +\fIDeviceMappingNotify\fP event, and +\fIXSetDeviceButtonMapping\fP returns \fIMappingSuccess\fP. +Element map[i] defines the logical button number for the physical button +i+1. +The length of the list must be the same as +\fIXGetDeviceButtonMapping\fP +would return, or a \fIBadValue\fP +error results. +A zero element disables a button, and elements are not restricted in +value by the number of physical buttons. +However, no two elements can have the same nonzero value, +or a \fIBadValue\fP error results. +If any of the buttons to be altered are logically in the down state, +\fIXSetDeviceButtonMapping\fP returns \fIMappingBusy\fP, +and the mapping is not changed. +.LP +\fIXSetDeviceButtonMapping\fP +can generate \fIBadDevice\fP, \fIBadMatch\fP, and \fIBadValue\fP errors. +.LP +The \fIXGetDeviceButtonMapping\fP +request returns the current mapping of the specified device. +Buttons are numbered starting from one. +\fIXGetDeviceButtonMapping\fP +returns the number of physical buttons actually on the device. +The nominal mapping for a device is map[i]=i+1. +The nmap argument specifies the length of the array where the device +mapping is returned, and only the first nmap elements are returned +in map_return. +.LP +\fIXGetDeviceButtonMapping\fP +can generate \fIBadDevice\fP or \fIBadMatch\fP errors. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceButtonMapping\fP or +\fIXSetDeviceButtonMapping\fP request was made +specifying a device that has no buttons. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.SH "SEE ALSO" +XChangeDeviceKeyboardControl(3X), +.br +XChangeDeviceKeyMapping(3X) +.br +XChangeDeviceModifierMapping(3X) +.br +.br +\fI\*(xL\fP diff --git a/man/XSetDeviceFocus.man b/man/XSetDeviceFocus.man new file mode 100644 index 0000000..b07764b --- /dev/null +++ b/man/XSetDeviceFocus.man @@ -0,0 +1,216 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSeDvFoc.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XSetDeviceFocus 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSetDeviceFocus, XGetDeviceFocus \- control extension input device focus +.SH SYNTAX +XSetDeviceFocus\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIfocus\fP\^, \fIrevert_to\fP\^, \fItime\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Display *\fIdevice\fP\^; +.br + Window \fIfocus\fP\^; +.br + int \fIrevert_to\fP\^; +.br + Time \fItime\fP\^; +.sp +XGetDeviceFocus\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIfocus_return\fP\^, +\fIrevert_to_return\fP, \fItime_return\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + Display *\fIdevice\fP\^; +.br + Window *\fIfocus_return\fP\^; +.br + int *\fIrevert_to_return\fP\^; +.br + int *\fItime_return\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose focus is to be queried or changed. +.TP 12 +.I focus +Specifies the window, +\fIPointerRoot\fP, +\fIFollowKeyboard\fP, +or +\fINone\fP. +.TP 12 +.I focus_return +Returns the focus window, +\fIPointerRoot\fP, +\fIFollowKeyboard\fP, +or +\fINone\fP. +.TP 12 +.I revert_to +Specifies where the input focus reverts to if the window becomes not +viewable. +You can pass +\fIRevertToParent\fP, +\fIRevertToPointerRoot\fP, +\fIRevertToFollowKeyboard\fP, +or +\fIRevertToNone\fP. +.TP 12 +.I revert_to_return +Returns the current focus state +\fIRevertToParent\fP, +\fIRevertToPointerRoot\fP, +\fIRevertToFollowKeyboard\fP, +or +\fIRevertToNone\fP. +.TP 12 +.I time_return +Returns the last_focus_time for the device. +.TP 12 +.I time +Specifies the time. +You can pass either a timestamp or +\fICurrentTime\fP. +.SH DESCRIPTION +The \fIXSetDeviceFocus\fP +request changes the focus of the specified device and its last-focus-change +time. +It has no effect if the specified time is earlier than the current +last-focus-change time or is later than the current X server time. +Otherwise, the last-focus-change time is set to the specified time +\fICurrentTime\fP +is replaced by the current X server time). +\fIXSetDeviceFocus\fP +causes the X server to generate +\fIDeviceFocusIn\fP +and +\fIDeviceFocusOut\fP +events. +.LP +Depending on the focus argument, +the following occurs: +.IP \(bu 5 +If focus is +\fINone\fP , +all device events are discarded until a new focus window is set, +and the revert_to argument is ignored. +.IP \(bu 5 +If focus is a window, +it becomes the device's focus window. +If a generated device event would normally be reported to this window +or one of its inferiors, the event is reported as usual. +Otherwise, the event is reported relative to the focus window. +.IP \(bu 5 +If focus is +\fIPointerRoot\fP, +the focus window is dynamically taken to be the root window of whatever screen +the pointer is on at each event from the specified device. +In this case, the revert_to argument is ignored. +.IP \(bu 5 +If focus is +\fIFollowKeyboard\fP, +the focus window is dynamically taken to be the window to which the X keyboard +focus is set at each input event. +.LP +The specified focus window must be viewable at the time +\fIXSetDeviceFocus\fP +is called, +or a +\fIBadMatch\fP +error results. +If the focus window later becomes not viewable, +the X server +evaluates the revert_to argument to determine the new focus window as follows: +.IP \(bu 5 +If revert_to is +\fIRevertToParent\fP, +the focus reverts to the parent (or the closest viewable ancestor), +and the new revert_to value is taken to be +\fIRevertToNone\fP. +.IP \(bu 5 +If revert_to is +\fIRevertToPointerRoot\fP, +\fIRevertToFollowKeyboard\fP, +or +\fIRevertToNone\fP, +the focus reverts to +\fIPointerRoot\fP, +\fIFollowKeyboard\fP, +or +\fINone\fP, +respectively. +.LP +When the focus reverts, +the X server generates +\fIDeviceFocusIn\fP +and +\fIDeviceFocusOut\fP +events, but the last-focus-change time is not affected. +.LP +Input extension devices are not required to support the ability to be focused. +Attempting to set the focus of a device that does not support this request +will result in a \fIBadMatch\fP error. Whether or not given device can +support this request can be determined by the information returned by +\fIXOpenDevice\fP. +For those devices that +support focus, \fIXOpenDevice\fP will return an +\fIXInputClassInfo\fP structure with the input_class field +equal to the constant \fIFocusClass\fP (defined in the file \fIXI.h\fP). +.LP +\fIXSetDeviceFocus\fP +can generate +\fIBadDevice\fP, +\fIBadMatch\fP, +\fIBadValue\fP, +and +\fIBadWindow\fP +errors. +.LP +The +\fIXGetDeviceFocus\fP +request returns the focus window and the current focus state. +.LP +Not all input extension devices can be focused. Attempting to query the +focus state of a device that can't be focused results in a \fIBadMatch\fP +error. A device that can be focused returns information for input Class +Focus when an \fIXOpenDevice\fP request is made. +.LP +\fIXGetDeviceFocus\fP can generate \fIBadDevice\fP, +and \fIBadMatch\fP errors. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if the specified device is the X keyboard or X pointer device. +.TP 12 +\fIBadValue\fP +Some numeric value falls outside the range of values accepted by the request. +Unless a specific range is specified for an argument, the full range defined +by the argument's type is accepted. Any argument defined as a set of +alternatives can generate this error. +.TP 12 +\fIBadWindow\fP +A value for a Window argument does not name a defined Window. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXGetDeviceFocus\fP or \fIXSetDeviceFocus\fP +request was made specifying a device that the server implementation does not +allow to be focused. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XSetDeviceMode.man b/man/XSetDeviceMode.man new file mode 100644 index 0000000..0f30233 --- /dev/null +++ b/man/XSetDeviceMode.man @@ -0,0 +1,69 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSetMode.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XSetDeviceMode 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSetDeviceMode \- change the mode of a device +.SH SYNTAX +XSetDeviceMode\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fImode\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int \fI_mode\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose mode is to be changed. +.TP 12 +.I mode +Specifies the mode. +You can pass +\fIAbsolute\fP , +or +\fIRelative\fP. +.SH DESCRIPTION +The +\fIXSetDeviceMode\fP +request changes the mode of an input device that is capable of reporting +either absolute positional information or relative motion information. +Not all input devices are capable of reporting motion data, and not +all are capable of changing modes from \fIAbsolute\fP to \fIRelative\fP. +.LP +\fIXSetDeviceMode\fP +can generate a \fIBadDevice\fP or +\fIBadMode\fP +error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. This error may +also occur if some other client has caused the specified device to become +the X keyboard or X pointer device via the \fIXChangeKeyboardDevice\fP or +\fIXChangePointerDevice\fP requests. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXSetDeviceMode\fP request is made +specifying a device that has no valuators and reports no axes of motion. +.TP 12 +\fIBadMode\fP +An invalid mode was specified. This error will also be returned if the +specified device is not capable of supporting the \fIXSetDeviceMode\fP +request. +.SH "SEE ALSO" +.br +\fI\*(xL\fP diff --git a/man/XSetDeviceValuators.man b/man/XSetDeviceValuators.man new file mode 100644 index 0000000..1b3a054 --- /dev/null +++ b/man/XSetDeviceValuators.man @@ -0,0 +1,79 @@ +.\" +.\" Copyright ([\d,\s]*) by Hewlett-Packard Company, Ardent Computer, +.\" +.\" Permission to use, copy, modify, distribute, and sell this documentation +.\" for any purpose and without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" Ardent, and Hewlett-Packard make no representations about the +.\" suitability for any purpose of the information in this document. It is +.\" provided \`\`as is'' without express or implied warranty. +.\" +.\" $Xorg: XSetDVal.man,v 1.4 2001/03/16 17:51:13 pookie Exp $ +.ds xL Programming with Xlib +.TH XSetDeviceValuators 3X11 "Release 6.6" "X Version 11" "X FUNCTIONS" +.SH NAME +XSetDeviceValuators \- initialize the valuators on an extension input device +.SH SYNTAX +XSetDeviceValuators\^(\^\fIdisplay\fP, \fIdevice\fP\^, \fIvaluators\fP\^, \fIfirst_valuator\fP\^, \fInum_valuators\fP\^) +.br + Display *\fIdisplay\fP\^; +.br + XDevice *\fIdevice\fP\^; +.br + int *\fIvaluators\fP\^; +.br + int \fIfirst_valuator\fP\^; +.br + int \fInum_valuators\fP\^; +.SH ARGUMENTS +.TP 12 +.I display +Specifies the connection to the X server. +.TP 12 +.I device +Specifies the device whose valuators are to be initialized. +.TP 12 +.I valuators +Specifies a pointer to an array of integer values to be used to initialize the +device valuators. +.TP 12 +.I first_valuator +Specifies the first valuator to be set. Valuators are numbered beginning with +zero. +.TP 12 +.I num_valuators +Specifies the number of valuators to be set. +.SH DESCRIPTION +The +\fIXSetDeviceValuators\fP +request sets the current values of the valuators of an input device. +The valuators in the range +first_valuator to (first_valuator + num_valuators) +are set to the specified values. Valuators are numbered beginning with 0. +Not all input devices support initialization of valuator values. If this +request is made to a device that does not support valuators initialization, +a \fIBadMatch\fP error will occur. +.LP +If the request succeeds, a status of Success is returned. If another +client has the device grabbed, a status of AlreadyGrabbed is returned. +.LP +\fIXSetDeviceValuators\fP +can generate a \fIBadLength\fP, \fIBadDevice\fP , \fIBadMatch\fP, or +\fIBadValue\fP error. +.SH DIAGNOSTICS +.TP 12 +\fIBadDevice\fP +An invalid device was specified. The specified device does not exist or has +not been opened by this client via \fIXOpenInputDevice\fP. +.TP 12 +\fIBadMatch\fP +This error may occur if an \fIXSetDeviceValuators\fP request is made +specifying a device that has no valuators and reports no axes of motion, +or if such a request is made specifying a device that does not support +valuator initialization. +.TP 12 +\fIBadValue\fP +An invalid first_valuator or num_valuators values was specified. +.SH "SEE ALSO" +.br +\fI\*(xL\fP |