1. NAME▲
XkbSAActionSetCtrls - Sets the ctrls0through ctrls3fields of actfrom ctrls
2. SYNOPSIS ▲
void XkbSAActionSetCtrls (XkbCtrlsAction act , unsigned int ctrls );
3. ARGUMENTS ▲
- - act
action in which to set ctrls0-ctrls3 - - ctrls
value to set in ctrls0-ctrls3
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. XkbSAActionSetCtrlssets the ctrls0through ctrls3fields of actfrom ctrls.
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;