*
********************************************************/
+#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 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..XKB_NUM_VIRTUAL_MODS-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 >= XKB_NUM_VIRTUAL_MODS)
- 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;
rem = BUFFER_SIZE;
if (vmask != 0) {
- for (i = 0, bit = 1; i < XKB_NUM_VIRTUAL_MODS && 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",
}
const char *
-KeyNameText(const char name[XKB_KEY_NAME_LENGTH])
+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;
}