diff options
Diffstat (limited to 'libX11/man/xkb/XkbNoteControlsChanges.man')
-rw-r--r-- | libX11/man/xkb/XkbNoteControlsChanges.man | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/libX11/man/xkb/XkbNoteControlsChanges.man b/libX11/man/xkb/XkbNoteControlsChanges.man new file mode 100644 index 000000000..880e29c2e --- /dev/null +++ b/libX11/man/xkb/XkbNoteControlsChanges.man @@ -0,0 +1,214 @@ +'\" 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 XkbNoteControlsChanges __libmansuffix__ __xorgversion__ "XKB FUNCTIONS" +.SH NAME +XkbNoteControlsChanges \- Notes the changes in a changes structure when a client receives an XkbControlsNotify +event +.SH SYNOPSIS +.B void XkbNoteControlsChanges +( +.I changes, +.I new, +.I wanted +) +.br + XkbControlsChangesPtr \fIchanges\fP\^; +.br + XkbControlsNotifyEvent *\fInew\fP\^; +.br + unsigned int \fIwanted\fP\^; +.if n .ti +5n +.if t .ti +.5i +.SH ARGUMENTS +.TP +.I \- changes +records changes indicated by new +.TP +.I \- new +tells which things have changed +.TP +.I \- wanted +tells which parts of new to record in changes +.SH DESCRIPTION +.LP +Whenever a field in the controls structure changes in the server's keyboard description, the server sends an +XkbControlsNotify event to all interested clients.To receive XkbControlsNotify events under all possible +conditions, use +.I XkbSelectEvents +and pass XkbControlsNotifyMask in both +.I bits_to_change +and +.I values_for_bits. + +To receive XkbControlsNotify events only under certain conditions, use +.I XkbSelectEventDetails +using XkbControlsNotify as the +.I event_type +and specifying the desired state changes in +.I bits_to_change +and +.I values_for_bits +using mask bits from Table 1. + +Table 1 shows the actual values for the individual mask bits used to select +controls for +modification and to enable and disable the control. Note that the same mask bit +is used to +specify general modifications to the parameters used to configure the control +(which), and to +enable and disable the control (enabled_ctrls). The anomalies in the table (no +"ok" in column) +are for controls that have no configurable attributes; and for controls that are +not boolean +controls and therefore cannot be enabled or disabled. + +.TS +c s s s +l l l l +l l l l +l l l l. +Table 1 Controls Mask Bits +_ +Mask Bit which or enabled Value + changed_ctrls _ctrls +_ +XkbRepeatKeysMask ok ok (1L<<0) +XkbSlowKeysMask ok ok (1L<<1) +XkbBounceKeysMask ok ok (1L<<2) +XkbStickyKeysMask ok ok (1L<<3) +XkbMouseKeysMask ok ok (1L<<4) +XkbMouseKeysAccelMask ok ok (1L<<5) +XkbAccessXKeysMask ok ok (1L<<6) +XkbAccessXTimeoutMask ok ok (1L<<7) +XkbAccessXFeedbackMask ok ok (1L<<8) +XkbAudibleBellMask ok (1L<<9) +XkbOverlay1Mask ok (1L<<10) +XkbOverlay2Mask ok (1L<<11) +XkbIgnoreGroupLockMask ok (1L<<12) +XkbGroupsWrapMask ok (1L<<27) +XkbInternalModsMask ok (1L<<28) +XkbIgnoreLockModsMask ok (1L<<29) +XkbPerKeyRepeatMask ok (1L<<30) +XkbControlsEnabledMask ok (1L<<31) +XkbAccessXOptionsMask ok ok (XkbStickyKeysMask | +XkbAccessXFeedbackMask) +XkbAllBooleanCtrlsMask ok (0x00001FFF) +XkbAllControlsMask ok (0xF8001FFF) +.TE + +The +.I changed_ctrls +field specifies the controls components that have changed and consists of bits taken from the masks defined in +Table 1 with "ok" in the +.I changed_ctrls +column. + +The controls currently enabled in the server are reported in the +.I enabled_ctrls +field. If any controls were just enabled or disabled (that is, the contents of the +.I enabled_ctrls +field changed), they are flagged in the +.I enabled_ctrl_changes +field. The valid bits for these fields are the masks listed in Table 1 with "ok" in the +.I enabled_ctrls +column. The +.I num_groups +field reports the number of groups bound to the key belonging to the most number of groups and is automatically +updated +when the keyboard mapping changes. + +If the change was caused by a request from a client, the +.I keycode +and +.I event_type +fields are set to zero and the +.I req_major +and +.I req_minor +fields identify the request. The +.I req_major value is the same as the major extension opcode. Otherwise, +.I event_type +is set to the type of event that caused the change (one of KeyPress, KeyRelease, DeviceKeyPress, +DeviceKeyRelease, +ButtonPress or ButtonRelease), and +.I req_major +and +.I req_minor +are undefined. If +.I event_type +is KeyPress, KeyRelease, DeviceKeyPress, or DeviceKeyRelease, the +.I keycode +field is set to the key that caused the change. If +.I event_type +is ButtonPress or ButtonRelease, +.I keycode +contains the button number. + +When a client receives an XkbControlsNotify event, it can note the changes in a changes structure using +.I XkbNoteControlsChanges. + +The +.I wanted +parameter is a bitwise inclusive OR of bits taken from the set of masks specified in Table 1 with "ok" in the +.I changed_ctrls +column. +.I XkbNoteControlsChanges +copies any changes reported in +.I new +and specified in +.I wanted +into the changes record specified by +.I old. +.SH STRUCTURES +.LP +.nf +The structure for the XkbControlsNotify event is defined as follows: + +typedef struct { + int type; /\(** Xkb extension base event code */ + unsigned long serial; /\(** X server serial number for event */ + Bool send_event; /\(** True => synthetically generated */ + Display * display; /\(** server connection where event generated */ + Time time; /\(** server time when event generated */ + int xkb_type; /\(** XkbCompatMapNotify */ + int device; /\(** Xkb device ID, will not be XkbUseCoreKbd */ + unsigned int changed_ctrls; /\(** bits indicating which controls data have changed*/ + unsigned int enabled_ctrls; /\(** controls currently enabled in server */ + unsigned int enabled_ctrl_changes; /\(** bits indicating enabled/disabled controls */ + int num_groups; /\(** current number of keyboard groups */ + KeyCode keycode; /\(** != 0 => keycode of key causing change */ + char event_type; /\(** Type of event causing change */ + char req_major; /\(** major event code of event causing change */ + char req_minor; /\(** minor event code of event causing change */ +} XkbControlsNotifyEvent; +.fi +.SH "SEE ALSO" +.BR XkbSelectEventDetails (__libmansuffix__), +.BR XkbSelectEvents (__libmansuffix__) |