mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 17:05:34 +00:00
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
#include <gdk/gdk.h>
|
|
|
|
|
|
static void PrintKeymapForCode(GdkKeymap *keymap, guint keycode)
|
|
{
|
|
GdkKeymapKey *maps;
|
|
guint *keyvals;
|
|
gint count;
|
|
|
|
if (!gdk_keymap_get_entries_for_keycode(keymap, keycode, &maps, &keyvals, &count))
|
|
return;
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
if (maps[i].level > 0 || maps[i].group > 1)
|
|
continue;
|
|
printf(" i=%d, keycode=%d, keyval=%d (%c), level=%d, group=%d\n", i, maps[i].keycode, keyvals[i], keyvals[i], maps[i].level, maps[i].group);
|
|
}
|
|
|
|
g_free(keyvals);
|
|
g_free(maps);
|
|
}
|
|
|
|
int main(gint argc, gchar **argv)
|
|
{
|
|
gdk_init(&argc, &argv);
|
|
GdkDisplay *display = gdk_display_get_default();
|
|
if (!display) {
|
|
printf("ERROR: can't get display\n");
|
|
return 1;
|
|
}
|
|
GdkKeymap *keymap = gdk_keymap_get_for_display(display);
|
|
if (!keymap) {
|
|
printf("ERROR: Can't get keymap\n");
|
|
gdk_display_close(display);
|
|
return 2;
|
|
}
|
|
|
|
for (int keycode = 10; keycode <= 61; keycode++) {
|
|
printf("-------------------\n");
|
|
printf("Keycode %d:\n", keycode);
|
|
PrintKeymapForCode(keymap, keycode);
|
|
}
|
|
|
|
gdk_display_close(display);
|
|
|
|
return 0;
|
|
}
|