1. NAME▲
XkbActionCtrls - Returns the ctrls fields of act converted to an unsigned int
2. SYNOPSIS ▲
unsigned int XkbActionCtrls (XkbCtrlsAction act );
3. ARGUMENTS ▲
- - act
action from which to extract controls
4. DESCRIPTION ▲
Actions associated with the XkbCtrlsAction structure change the state of the boolean controls. The typefield can have any one of the values shown in Table 1.
| c s | |
| l l | |
| l lw(4i). | |
| Table 1 Controls Action Types | |
| _ | |
| Type | Effect |
| _ | |
| XkbSA_SetControls | T{ |
| 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. | |
| T} | |
| XkbSA_LockControls | T{ |
| 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. | |
| .br | |
| 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. | |
| .br | |
| This action can cause XkbControlsNotify events. | |
| T} |
The flagsfield is composed of the bitwise inclusive OR of the masks shown in Table 2.
| c s | |
| l l | |
| l lw(4i). | |
| Table 2 Control Action Flags | |
| _ | |
| Flag | Meaning |
| _ | |
| XkbSA_LockNoLock | T{ |
| If set, and the action type is XkbSA_LockControls, the server only disables | |
| controls. | |
| T} | |
| XkbSA_LockNoUnlock | T{ |
| If set, and the action type is XkbSA_LockControls, the server only enables | |
| controls. | |
| T} |
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 ctrls3fields represent the boolean controls in the enabled_ctrlsfield of the controls structure. Xkb macros, to convert between the two formats. XkbActionCtrlsreturns the ctrlsfields of actconverted to an unsigned int.
5. 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;