1 /* eggaccelerators.h 2 * Copyright (C) 2002 Red Hat, Inc. 3 * Developed by Havoc Pennington 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public 16 * License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 * Boston, MA 02111-1307, USA. 19 */ 20 21 #ifndef __EGG_ACCELERATORS_H__ 22 #define __EGG_ACCELERATORS_H__ 23 24 #include <gdk/gdk.h> 25 26 G_BEGIN_DECLS 27 28 /* Where a value is also in GdkModifierType we coincide, 29 * otherwise we don't overlap. 30 */ 31 typedef enum 32 { 33 EGG_VIRTUAL_SHIFT_MASK = 1 << 0, 34 EGG_VIRTUAL_LOCK_MASK = 1 << 1, 35 EGG_VIRTUAL_CONTROL_MASK = 1 << 2, 36 37 EGG_VIRTUAL_ALT_MASK = 1 << 3, /* fixed as Mod1 */ 38 39 EGG_VIRTUAL_MOD2_MASK = 1 << 4, 40 EGG_VIRTUAL_MOD3_MASK = 1 << 5, 41 EGG_VIRTUAL_MOD4_MASK = 1 << 6, 42 EGG_VIRTUAL_MOD5_MASK = 1 << 7, 43 44 #if 0 45 GDK_BUTTON1_MASK = 1 << 8, 46 GDK_BUTTON2_MASK = 1 << 9, 47 GDK_BUTTON3_MASK = 1 << 10, 48 GDK_BUTTON4_MASK = 1 << 11, 49 GDK_BUTTON5_MASK = 1 << 12, 50 /* 13, 14 are used by Xkb for the keyboard group */ 51 #endif 52 53 EGG_VIRTUAL_META_MASK = 1 << 24, 54 EGG_VIRTUAL_SUPER_MASK = 1 << 25, 55 EGG_VIRTUAL_HYPER_MASK = 1 << 26, 56 EGG_VIRTUAL_MODE_SWITCH_MASK = 1 << 27, 57 EGG_VIRTUAL_NUM_LOCK_MASK = 1 << 28, 58 EGG_VIRTUAL_SCROLL_LOCK_MASK = 1 << 29, 59 60 /* Also in GdkModifierType */ 61 EGG_VIRTUAL_RELEASE_MASK = 1 << 30, 62 63 /* 28-31 24-27 20-23 16-19 12-15 8-11 4-7 0-3 64 * 7 f 0 0 0 0 f f 65 */ 66 EGG_VIRTUAL_MODIFIER_MASK = 0x7f0000ff 67 68 } EggVirtualModifierType; 69 70 gboolean egg_accelerator_parse_virtual (const gchar *accelerator, 71 guint *accelerator_key, 72 EggVirtualModifierType *accelerator_mods); 73 void egg_keymap_resolve_virtual_modifiers (GdkKeymap *keymap, 74 EggVirtualModifierType virtual_mods, 75 GdkModifierType *concrete_mods); 76 void egg_keymap_virtualize_modifiers (GdkKeymap *keymap, 77 GdkModifierType concrete_mods, 78 EggVirtualModifierType *virtual_mods); 79 80 gchar* egg_virtual_accelerator_name (guint accelerator_key, 81 EggVirtualModifierType accelerator_mods); 82 83 G_END_DECLS 84 85 86 #endif /* __EGG_ACCELERATORS_H__ */ 87