Table of Contents

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    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.
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.
T}

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    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 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;


Table of Contents