aboutsummaryrefslogtreecommitdiff
path: root/libX11/man/xkb/XkbGetDeviceInfo.man
diff options
context:
space:
mode:
Diffstat (limited to 'libX11/man/xkb/XkbGetDeviceInfo.man')
-rw-r--r--libX11/man/xkb/XkbGetDeviceInfo.man265
1 files changed, 265 insertions, 0 deletions
diff --git a/libX11/man/xkb/XkbGetDeviceInfo.man b/libX11/man/xkb/XkbGetDeviceInfo.man
new file mode 100644
index 000000000..4157296e7
--- /dev/null
+++ b/libX11/man/xkb/XkbGetDeviceInfo.man
@@ -0,0 +1,265 @@
+'\" t
+.\" Copyright (c) 1999 - Sun Microsystems, Inc.
+.\" All rights reserved.
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining a
+.\" copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, and/or sell copies of the Software, and to permit persons
+.\" to whom the Software is furnished to do so, provided that the above
+.\" copyright notice(s) and this permission notice appear in all copies of
+.\" the Software and that both the above copyright notice(s) and this
+.\" permission notice appear in supporting documentation.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of a copyright holder
+.\" shall not be used in advertising or otherwise to promote the sale, use
+.\" or other dealings in this Software without prior written authorization
+.\" of the copyright holder.
+.\"
+.TH XkbGetDeviceInfo __libmansuffix__ __xorgversion__ "XKB FUNCTIONS"
+.SH NAME
+XkbGetDeviceInfo \- Determine whether the X server allows Xkb access to particular capabilities of input devices other than
+the core X keyboard, or to determine the status of indicator maps, indicator names or button actions on a non-KeyClass
+extension device
+.SH SYNOPSIS
+.B XkbDeviceInfoPtr XkbGetDeviceInfo
+(
+.I dpy,
+.I which,
+.I device_spec,
+.I ind_class,
+.I ind_id
+)
+.br
+ Display * \fIdpy\fP\^;
+.br
+ unsigned int \fIwhich\fP\^;
+.br
+ unsigned int \fIdevice_spec\fP\^;
+.br
+ unsigned int \fIind_class\fP\^;
+.br
+ unsigned int \fIind_id\fP\^;
+.if n .ti +5n
+.if t .ti +.5i
+.SH ARGUMENTS
+.TP
+.I \- dpy
+connection to X server
+.TP
+.I \- which
+mask indicating information to return
+.TP
+.I \- device_spec
+device ID, or XkbUseCoreKbd
+.TP
+.I \- ind_class
+feedback class for indicator requests
+.TP
+.I \- ind_id
+feedback ID for indicator requests
+.SH DESCRIPTION
+.LP
+To determine whether the X server allows Xkb access to particular capabilities of input devices other than the core X
+keyboard, or to determine the status of indicator maps, indicator names or button actions on a non-KeyClass extension
+device, use
+.I XkbGetDeviceInfo.
+
+.I XkbGetDeviceInfo
+returns information about the input device specified by
+.I device_spec.
+Unlike the
+.I device_spec
+parameter of most Xkb functions,
+.I device_spec
+does not need to be a keyboard device. It must, however, indicate either the core keyboard or a valid X Input Extension
+device.
+
+The
+.I which
+parameter is a mask specifying optional information to be returned. It is an inclusive OR of one or more of the values from
+Table 1 and causes the returned XkbDeviceInfoRec to contain values for the corresponding fields specified in the table.
+
+.nf
+ Table 1 XkbDeviceInfoRec Mask Bits
+____________________________________________________________________________________
+Name XkbDeviceInfoRec Value Capability If Set
+ Fields Effected
+____________________________________________________________________________________
+XkbXI_KeyboardsMask (1L <<0) Clients can use all
+ Xkb requests and events
+ with KeyClass devices
+ supported by the input
+ device extension.
+
+XkbXI_ButtonActionsMask num_btns (1L <<1) Clients can assign key
+ btn_acts actions to buttons
+ non-KeyClass input
+ extension devices.
+
+XkbXI_IndicatorNamesMask leds->names (1L <<2) Clients can assign
+ names to indicators on
+ non-KeyClass input
+ extension devices.
+
+XkbXI_IndicatorMapsMask leds->maps (1L <<3) Clients can assign
+ indicator maps to
+ indicators on
+ non-KeyClass input
+ extension devices.
+
+XkbXI_IndicatorStateMask leds->state (1L <<4) Clients can request
+ the status of indicators
+ on non-KeyClass input
+ extension devices.
+
+XkbXI_IndicatorsMask sz_leds (0x1c) XkbXI_IndicatorNamesMask |
+ num_leds XkbXI_IndicatorMapsMask |
+ leds->* XkbXI_IndicatorStateMask
+
+XkbXI_UnsupportedFeaturesMask unsupported (1L <<15)
+
+XkbXI_AllDeviceFeaturesMask Those selected (0x1e) XkbXI_IndicatorsMask |
+ by Value Column XkbSI_ButtonActionsMask
+ masks
+
+XkbXI_AllFeaturesMask Those selected (0x1f) XkbSI_AllDeviceFeaturesMask |
+ by Value Column XkbSI_KeyboardsMask
+ masks
+
+XkbXI_AllDetailsMask Those selected (0x801f) XkbXI_AllFeaturesMask |
+ by Value column XkbXI_UnsupportedFeaturesMask
+ masks
+.fi
+
+The XkbDeviceInfoRec returned by
+.I XkbGetDeviceInfo
+always has values for
+.I name
+(may be a null string, ""),
+.I type, supported, unsupported, has_own_state, dflt_kbd_fd,
+and
+.I dflt_kbd_fb.
+Other fields are filled in as specified by
+.I which.
+
+Upon return, the
+.I supported
+field will be set to the inclusive OR of zero or more bits from Table 1; each bit set indicates an optional Xkb extension
+device feature supported by the server implementation, and a client may modify the associated behavior.
+
+If the XkbButtonActionsMask bit is set in
+.I which,
+the XkbDeviceInfoRec returned will have the button actions
+.I (btn_acts
+field) filled in for all buttons.
+
+If
+.I which
+includes one of the bits in XkbXI_IndicatorsMask, the feedback class of the indicators must be specified in
+.I ind_class,
+and the feedback ID of the indicators must be specified in
+.I ind_id.
+If the request does not include any of the bits in XkbXI_IndicatorsMask, the
+.I ind_class
+and
+.I ind_id
+parameters are ignored. The class and ID can be obtained via the input device extension
+.I XListInputDevices
+request.
+
+If any of the XkbXI_IndicatorsMask bits are set in
+.I which,
+the XkbDeviceInfoRec returned will have filled in the portions of the
+.I leds
+structure corresponding to the indicator feedback identified by
+.I ind_class
+and
+.I ind_id.
+The
+.I leds
+vector of the XkbDeviceInfoRec is allocated if necessary and
+.I sz_leds
+and
+.I num_leds
+filled in. The
+.I led_class, led_id
+and
+.I phys_indicators
+fields of the
+.I leds
+entry corresponding to
+.I ind_class
+and
+.I ind_id
+are always filled in. If
+.I which
+contains XkbXI_IndicatorNamesMask, the
+.I names_present
+and
+.I names
+fields of the
+.I leds
+structure corresponding to
+.I ind_class
+and
+.I ind_id
+are returned. If
+.I which
+contains XkbXI_IndicatorStateMask, the corresponding
+.I state
+field is updated. If
+.I which
+contains XkbXI_IndicatorMapsMask, the
+.I maps_present
+and
+.I maps
+fields are updated.
+
+Xkb provides convenience functions to request subsets of the information available via
+.I XkbGetDeviceInfo.
+These convenience functions mirror some of the mask bits. The functions all take an XkbDeviceInfoPtr as an input argument
+and operate on the X Input Extension device specified by the
+.I device_spec
+field of the structure. Only the parts of the structure indicated in the function description are updated. The
+XkbDeviceInfoRec structure used in the function call can be obtained by calling
+.I XkbGetDeviceInfo
+or can be allocated by calling
+.I XkbAllocDeviceInfo.
+.SH STRUCTURES
+.LP
+Information about X Input Extension devices is transferred between a client program and the Xkb extension in an
+XkbDeviceInfoRec structure:
+.nf
+
+typedef struct {
+ char * name; /\(** name for device */
+ Atom type; /\(** name for class of devices */
+ unsigned short device_spec; /\(** device of interest */
+ Bool has_own_state; /\(** True=>this device has its own state */
+ unsigned short supported; /\(** bits indicating supported capabilities */
+ unsigned short unsupported; /\(** bits indicating unsupported capabilities */
+ unsigned short num_btns; /\(** number of entries in btn_acts */
+ XkbAction * btn_acts; /\(** button actions */
+ unsigned short sz_leds; /\(** total number of entries in LEDs vector */
+ unsigned short num_leds; /\(** number of valid entries in LEDs vector */
+ unsigned short dflt_kbd_fb; /\(** input extension ID of default (core kbd) indicator */
+ unsigned short dflt_led_fb; /\(** input extension ID of default indicator feedback */
+ XkbDeviceLedInfoPtr leds; /\(** LED descriptions */
+} XkbDeviceInfoRec, *XkbDeviceInfoPtr;
+
+.fi
+.SH "SEE ALSO"
+.BR XkbAllocDeviceInfo (__libmansuffix__),
+.BR XListInputDevices (3X11)