summaryrefslogtreecommitdiff
path: root/lib/libX11/man/xkb/XkbNoteControlsChanges.man
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libX11/man/xkb/XkbNoteControlsChanges.man')
-rw-r--r--lib/libX11/man/xkb/XkbNoteControlsChanges.man214
1 files changed, 214 insertions, 0 deletions
diff --git a/lib/libX11/man/xkb/XkbNoteControlsChanges.man b/lib/libX11/man/xkb/XkbNoteControlsChanges.man
new file mode 100644
index 000000000..880e29c2e
--- /dev/null
+++ b/lib/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__)