266 lines
10 KiB
Groff
266 lines
10 KiB
Groff
'\" 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)
|