Man Linux: Main Page and Category List

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;