*
********************************************************/
+#include "keymap.h"
#include "text.h"
bool
}
const LookupEntry ctrlMaskNames[] = {
- { "RepeatKeys", XkbRepeatKeysMask },
- { "Repeat", XkbRepeatKeysMask },
- { "AutoRepeat", XkbRepeatKeysMask },
- { "SlowKeys", XkbSlowKeysMask },
- { "BounceKeys", XkbBounceKeysMask },
- { "StickyKeys", XkbStickyKeysMask },
- { "MouseKeys", XkbMouseKeysMask },
- { "MouseKeysAccel", XkbMouseKeysAccelMask },
- { "AccessXKeys", XkbAccessXKeysMask },
- { "AccessXTimeout", XkbAccessXTimeoutMask },
- { "AccessXFeedback", XkbAccessXFeedbackMask },
- { "AudibleBell", XkbAudibleBellMask },
- { "IgnoreGroupLock", XkbIgnoreGroupLockMask },
- { "all", XkbAllBooleanCtrlsMask },
+ { "RepeatKeys", CONTROL_REPEAT },
+ { "Repeat", CONTROL_REPEAT },
+ { "AutoRepeat", CONTROL_REPEAT },
+ { "SlowKeys", CONTROL_SLOW },
+ { "BounceKeys", CONTROL_DEBOUNCE },
+ { "StickyKeys", CONTROL_STICKY },
+ { "MouseKeys", CONTROL_MOUSEKEYS },
+ { "MouseKeysAccel", CONTROL_MOUSEKEYS_ACCEL },
+ { "AccessXKeys", CONTROL_AX },
+ { "AccessXTimeout", CONTROL_AX_TIMEOUT },
+ { "AccessXFeedback", CONTROL_AX_FEEDBACK },
+ { "AudibleBell", CONTROL_BELL },
+ { "IgnoreGroupLock", CONTROL_IGNORE_GROUP_LOCK },
+ { "all", CONTROL_ALL },
{ "none", 0 },
{ "Overlay1", 0 },
{ "Overlay2", 0 },
};
const LookupEntry modComponentMaskNames[] = {
- {"base", XkbIM_UseBase},
- {"latched", XkbIM_UseLatched},
- {"locked", XkbIM_UseLocked},
- {"effective", XkbIM_UseEffective},
- {"compat", XkbIM_UseCompat},
- {"any", XkbIM_UseAnyMods},
+ {"base", XKB_STATE_DEPRESSED},
+ {"latched", XKB_STATE_LATCHED},
+ {"locked", XKB_STATE_LOCKED},
+ {"effective", XKB_STATE_EFFECTIVE},
+ {"compat", XKB_STATE_EFFECTIVE},
+ {"any", XKB_STATE_EFFECTIVE},
{"none", 0},
{NULL, 0}
};
const LookupEntry groupComponentMaskNames[] = {
- {"base", XkbIM_UseBase},
- {"latched", XkbIM_UseLatched},
- {"locked", XkbIM_UseLocked},
- {"effective", XkbIM_UseEffective},
- {"any", XkbIM_UseAnyGroup},
+ {"base", XKB_STATE_DEPRESSED},
+ {"latched", XKB_STATE_LATCHED},
+ {"locked", XKB_STATE_LOCKED},
+ {"effective", XKB_STATE_EFFECTIVE},
+ {"any", XKB_STATE_EFFECTIVE},
{"none", 0},
{NULL, 0}
};
};
const LookupEntry actionTypeNames[] = {
- { "NoAction", XkbSA_NoAction },
- { "SetMods", XkbSA_SetMods },
- { "LatchMods", XkbSA_LatchMods },
- { "LockMods", XkbSA_LockMods },
- { "SetGroup", XkbSA_SetGroup },
- { "LatchGroup", XkbSA_LatchGroup },
- { "LockGroup", XkbSA_LockGroup },
- { "MovePtr", XkbSA_MovePtr },
- { "MovePointer", XkbSA_MovePtr },
- { "PtrBtn", XkbSA_PtrBtn },
- { "PointerButton", XkbSA_PtrBtn },
- { "LockPtrBtn", XkbSA_LockPtrBtn },
- { "LockPtrButton", XkbSA_LockPtrBtn },
- { "LockPointerButton", XkbSA_LockPtrBtn },
- { "LockPointerBtn", XkbSA_LockPtrBtn },
- { "SetPtrDflt", XkbSA_SetPtrDflt },
- { "SetPointerDefault", XkbSA_SetPtrDflt },
- { "ISOLock", XkbSA_ISOLock },
- { "Terminate", XkbSA_Terminate },
- { "TerminateServer", XkbSA_Terminate },
- { "SwitchScreen", XkbSA_SwitchScreen },
- { "SetControls", XkbSA_SetControls },
- { "LockControls", XkbSA_LockControls },
- { "ActionMessage", XkbSA_ActionMessage },
- { "MessageAction", XkbSA_ActionMessage },
- { "Message", XkbSA_ActionMessage },
- { "RedirectKey", XkbSA_RedirectKey },
- { "Redirect", XkbSA_RedirectKey },
- { "DeviceBtn", XkbSA_DeviceBtn },
- { "DevBtn", XkbSA_DeviceBtn },
- { "DevButton", XkbSA_DeviceBtn },
- { "DeviceButton", XkbSA_DeviceBtn },
- { "LockDeviceBtn", XkbSA_LockDeviceBtn },
- { "LockDevBtn", XkbSA_LockDeviceBtn },
- { "LockDevButton", XkbSA_LockDeviceBtn },
- { "LockDeviceButton", XkbSA_LockDeviceBtn },
- { "DeviceValuator", XkbSA_DeviceValuator },
- { "DevVal", XkbSA_DeviceValuator },
- { "DeviceVal", XkbSA_DeviceValuator },
- { "DevValuator", XkbSA_DeviceValuator },
- { "Private", PrivateAction },
+ { "NoAction", ACTION_TYPE_NONE },
+ { "SetMods", ACTION_TYPE_MOD_SET },
+ { "LatchMods", ACTION_TYPE_MOD_LATCH },
+ { "LockMods", ACTION_TYPE_MOD_LOCK },
+ { "SetGroup", ACTION_TYPE_GROUP_SET },
+ { "LatchGroup", ACTION_TYPE_GROUP_LATCH },
+ { "LockGroup", ACTION_TYPE_GROUP_LOCK },
+ { "MovePtr", ACTION_TYPE_PTR_MOVE },
+ { "MovePointer", ACTION_TYPE_PTR_MOVE },
+ { "PtrBtn", ACTION_TYPE_PTR_BUTTON },
+ { "PointerButton", ACTION_TYPE_PTR_BUTTON },
+ { "LockPtrBtn", ACTION_TYPE_PTR_LOCK },
+ { "LockPtrButton", ACTION_TYPE_PTR_LOCK },
+ { "LockPointerButton", ACTION_TYPE_PTR_LOCK },
+ { "LockPointerBtn", ACTION_TYPE_PTR_LOCK },
+ { "SetPtrDflt", ACTION_TYPE_PTR_DEFAULT },
+ { "SetPointerDefault", ACTION_TYPE_PTR_DEFAULT },
+ { "Terminate", ACTION_TYPE_TERMINATE },
+ { "TerminateServer", ACTION_TYPE_TERMINATE },
+ { "SwitchScreen", ACTION_TYPE_SWITCH_VT },
+ { "SetControls", ACTION_TYPE_CTRL_SET },
+ { "LockControls", ACTION_TYPE_CTRL_LOCK },
+ { "RedirectKey", ACTION_TYPE_KEY_REDIRECT },
+ { "Redirect", ACTION_TYPE_KEY_REDIRECT },
+ { "Private", ACTION_TYPE_PRIVATE },
+ /* deprecated actions below here - unused */
+ { "ISOLock", ACTION_TYPE_NONE },
+ { "ActionMessage", ACTION_TYPE_NONE },
+ { "MessageAction", ACTION_TYPE_NONE },
+ { "Message", ACTION_TYPE_NONE },
+ { "DeviceBtn", ACTION_TYPE_NONE },
+ { "DevBtn", ACTION_TYPE_NONE },
+ { "DevButton", ACTION_TYPE_NONE },
+ { "DeviceButton", ACTION_TYPE_NONE },
+ { "LockDeviceBtn", ACTION_TYPE_NONE },
+ { "LockDevBtn", ACTION_TYPE_NONE },
+ { "LockDevButton", ACTION_TYPE_NONE },
+ { "LockDeviceButton", ACTION_TYPE_NONE },
+ { "DeviceValuator", ACTION_TYPE_NONE },
+ { "DevVal", ACTION_TYPE_NONE },
+ { "DeviceVal", ACTION_TYPE_NONE },
+ { "DevValuator", ACTION_TYPE_NONE },
{ NULL, 0 },
};
const LookupEntry symInterpretMatchMaskNames[] = {
- { "NoneOf", XkbSI_NoneOf },
- { "AnyOfOrNone", XkbSI_AnyOfOrNone },
- { "AnyOf", XkbSI_AnyOf },
- { "AllOf", XkbSI_AllOf },
- { "Exactly", XkbSI_Exactly },
+ { "NoneOf", MATCH_NONE },
+ { "AnyOfOrNone", MATCH_ANY_OR_NONE },
+ { "AnyOf", MATCH_ANY },
+ { "AllOf", MATCH_ALL },
+ { "Exactly", MATCH_EXACTLY },
};
#define BUFFER_SIZE 1024
return rtrn;
}
-/*
- * Get a vmod name's text, where the vmod index is zero based
- * (0..XkbNumVirtualMods-1).
- */
+/* Get a vmod name's text, where the vmod index is zero based. */
static const char *
VModIndexText(struct xkb_keymap *keymap, xkb_mod_index_t ndx)
{
- int len;
- char *rtrn;
- const char *tmp = NULL;
- char buf[20];
-
- if (ndx >= XkbNumVirtualMods)
- tmp = "illegal";
- else
- tmp = xkb_atom_text(keymap->ctx, keymap->vmod_names[ndx]);
-
- if (!tmp) {
- snprintf(buf, sizeof(buf) - 1, "%d", ndx);
- tmp = buf;
- }
-
- len = strlen(tmp) + 1;
- if (len >= BUFFER_SIZE)
- len = BUFFER_SIZE - 1;
-
- rtrn = GetBuffer(len);
- strncpy(rtrn, tmp, len);
-
- return rtrn;
+ if (ndx >= darray_size(keymap->vmods))
+ return "illegal";
+ return xkb_atom_text(keymap->ctx,
+ darray_item(keymap->vmods, ndx).name);
}
/* Get a mod mask's text, where the mask is in rmods+vmods format. */
VModMaskText(struct xkb_keymap *keymap, xkb_mod_mask_t cmask)
{
xkb_mod_index_t i;
- xkb_mod_mask_t bit;
xkb_mod_mask_t rmask, vmask;
int len, rem;
const char *mm = NULL;
char buf[BUFFER_SIZE];
rmask = cmask & 0xff;
- vmask = cmask >> XkbNumModifiers;
+ vmask = cmask >> XKB_NUM_CORE_MODS;
if (rmask == 0 && vmask == 0)
return "none";
rem = BUFFER_SIZE;
if (vmask != 0) {
- for (i = 0, bit = 1; i < XkbNumVirtualMods && rem > 1; i++, bit <<=
- 1) {
- if (!(vmask & bit))
+ for (i = 0; i < darray_size(keymap->vmods) && rem > 1; i++) {
+ if (!(vmask & (1 << i)))
continue;
len = snprintf(str, rem, "%s%s",
* ShiftMapIndex, LockMapIndex, etc. from X11/X.h. Take note before
* changing.
*/
-static const char *modNames[XkbNumModifiers] = {
+static const char *modNames[XKB_NUM_CORE_MODS] = {
"Shift",
"Lock",
"Control",
{
xkb_mod_index_t i;
- for (i = 0; i < XkbNumModifiers; i++)
+ for (i = 0; i < XKB_NUM_CORE_MODS; i++)
if (istreq(name, modNames[i]))
return i;
const char *
ModIndexToName(xkb_mod_index_t ndx)
{
- if (ndx < XkbNumModifiers)
+ if (ndx < XKB_NUM_CORE_MODS)
return modNames[ndx];
return NULL;
}
buf = GetBuffer(rem);
str = buf;
buf[0] = '\0';
- for (i = 0, bit = 1; i < XkbNumModifiers && rem > 1; i++, bit <<= 1) {
+ for (i = 0, bit = 1; i < XKB_NUM_CORE_MODS && rem > 1; i++, bit <<= 1) {
int len;
if (!(mask & bit))
}
const char *
-KeyNameText(const char name[XkbKeyNameLength])
+KeyNameText(struct xkb_context *ctx, xkb_atom_t name)
{
- char *buf;
- int len;
-
- buf = GetBuffer(7);
- buf[0] = '<';
- strncpy(&buf[1], name, 4);
- buf[5] = '\0';
- len = strlen(buf);
- buf[len++] = '>';
- buf[len] = '\0';
-
+ const char *sname = xkb_atom_text(ctx, name);
+ size_t len = strlen(sname) + 3;
+ char *buf = GetBuffer(len);
+ snprintf(buf, len, "<%s>", sname);
return buf;
}
const char *
-SIMatchText(unsigned type)
+SIMatchText(enum xkb_match_operation type)
{
const char *name;
char *buf;
- type &= XkbSI_OpMask;
+ type &= MATCH_OP_MASK;
name = LookupValue(symInterpretMatchMaskNames, type);
if (name)
return name;
buf = GetBuffer(40);
- snprintf(buf, 40, "0x%x", type & XkbSI_OpMask);
+ snprintf(buf, 40, "0x%x", type);
return buf;
}