XkbSAActionSetCtrls(3)
NAME
XkbSAActionSetCtrls - Sets the ctrls0 through ctrls3 fields of act from
ctrls
SYNOPSIS
void XkbSAActionSetCtrls (XkbCtrlsAction act, unsigned int ctrls);
ARGUMENTS
- act action in which to set ctrls0-ctrls3
- - ctrls
- value to set in ctrls0-ctrls3
DESCRIPTION
Actions associated with the XkbCtrlsAction structure change the state
of the boolean controls.
- The type field can have any one of the values shown in Table 1.
- Table 1 Controls Action Types
- --------------------------------------------------------------Type Effect
--------------------------------------------------------------XkbSA_SetControls A key press enables any boolean controls - specified in the ctrls fields that were
not already enabled at the time of the
key press. A key release disables any
controls enabled by the key press. This
action can cause XkbControlsNotify
events. - XkbSA_LockControls If the XkbSA_LockNoLock bit is not set
- in the flags field, a key press enables
any controls specified in the ctrls
fields that were not already enabled at
the time of the key press.
If the XkbSA_LockNoUnlock bit is not set
in the flags field, a key release disables any controls specified in the
ctrls fields that were not already disabled at the time of the key press.
This action can cause XkbControlsNotify
events. - The flags field is composed of the bitwise inclusive OR of the masks shown in Table 2.
Table 2 Control Action Flags- --------------------------------------------------------------Flag Meaning
--------------------------------------------------------------XkbSA_LockNoLock If set, and the action type is - XkbSA_LockControls, the server only disables controls.
- XkbSA_LockNoUnlock If set, and the action type is
- XkbSA_LockControls, the server only
enables controls. - The XkbSA_SetControls action implements a key that enables a boolean control when pressed and disables it when released. The XkbSA_LockControls action is used to implement a key that toggles the state of a boolean control each time it is pressed and released. The XkbSA_LockNoLock and XkbSA_LockNoUnlock flags allow modifying the toggling behavior to only unlock or only lock the boolean control.
- The ctrls0, ctrls1, ctrls2, and ctrls3 fields represent the boolean controls in the enabled_ctrls field of the controls structure. Xkb macros, to convert between the two formats.
- XkbSAActionSetCtrls sets the ctrls0 through ctrls3 fields of act from ctrls.
STRUCTURES
- typedef struct _XkbCtrlsAction {
- unsigned char type; /* XkbSA_SetControls, XkbSA_LockControls */ unsigned char flags; /* with type, controls enabling and disabling
- of controls */
- unsigned char ctrls3; /* ctrls0 through ctrls3 represent the boolean
- controls */
- unsigned char ctrls2; /* ctrls0 through ctrls3 represent the boolean
- controls */
- unsigned char ctrls1; /* ctrls0 through ctrls3 represent the boolean
- controls */
- unsigned char ctrls0; /* ctrls0 through ctrls3 represent the boolean
- controls */
- } XkbCtrlsAction;