summaryrefslogtreecommitdiff
path: root/man/XOpenDevice.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/XOpenDevice.man')
-rw-r--r--man/XOpenDevice.man128
1 files changed, 128 insertions, 0 deletions
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