X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=libs%2Fgtkutil%2Faccelerator.cpp;h=49da674cf5757873b077a037a8ff50c1750ed564;hb=c75a6b31c688efae4b1b1f3025edb615e5c29eef;hp=0228a1beae2f13c97ef53f11722b388e7b8f407a;hpb=9ddf10f7d1b09d5157195713c348874491d227cf;p=xonotic%2Fnetradiant.git diff --git a/libs/gtkutil/accelerator.cpp b/libs/gtkutil/accelerator.cpp index 0228a1be..49da674c 100644 --- a/libs/gtkutil/accelerator.cpp +++ b/libs/gtkutil/accelerator.cpp @@ -39,85 +39,26 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -struct SKeyInfo -{ - const char* m_strName; - unsigned int m_nVKKey; -}; - -SKeyInfo g_Keys[] = -{ - {"Space", GDK_space}, - {"Backspace", GDK_BackSpace}, - {"Escape", GDK_Escape}, - {"End", GDK_End}, - {"Insert", GDK_Insert}, - {"Delete", GDK_Delete}, - {"PageUp", GDK_Prior}, - {"PageDown", GDK_Next}, - {"Up", GDK_Up}, - {"Down", GDK_Down}, - {"Left", GDK_Left}, - {"Right", GDK_Right}, - {"F1", GDK_F1}, - {"F2", GDK_F2}, - {"F3", GDK_F3}, - {"F4", GDK_F4}, - {"F5", GDK_F5}, - {"F6", GDK_F6}, - {"F7", GDK_F7}, - {"F8", GDK_F8}, - {"F9", GDK_F9}, - {"F10", GDK_F10}, - {"F11", GDK_F11}, - {"F12", GDK_F12}, - {"Tab", GDK_Tab}, - {"Return", GDK_Return}, - {"Comma", GDK_comma}, - {"Period", GDK_period}, - {"Plus", GDK_KP_Add}, - {"Multiply", GDK_multiply}, - {"Minus", GDK_KP_Subtract}, - {"NumPad0", GDK_KP_0}, - {"NumPad1", GDK_KP_1}, - {"NumPad2", GDK_KP_2}, - {"NumPad3", GDK_KP_3}, - {"NumPad4", GDK_KP_4}, - {"NumPad5", GDK_KP_5}, - {"NumPad6", GDK_KP_6}, - {"NumPad7", GDK_KP_7}, - {"NumPad8", GDK_KP_8}, - {"NumPad9", GDK_KP_9}, - {"[", GDK_bracketleft}, - {"]", GDK_bracketright}, - {"\\", 220}, - {"Home", GDK_Home} -}; - -int g_nKeyCount = sizeof(g_Keys) / sizeof(SKeyInfo); - const char* global_keys_find(unsigned int key) { - for(int i = 0; i < g_nKeyCount; ++i) - { - if(g_Keys[i].m_nVKKey == key) - { - return g_Keys[i].m_strName; - } - } - return ""; + const char *s; + if(key == 0) + return ""; + s = gdk_keyval_name(key); + if(!s) + return ""; + return s; } unsigned int global_keys_find(const char* name) { - for(int i = 0; i < g_nKeyCount; ++i) - { - if(string_equal_nocase(g_Keys[i].m_strName, name)) - { - return g_Keys[i].m_nVKKey; - } - } - return 0; + guint k; + if(!name || !*name) + return 0; + k = gdk_keyval_from_name(name); + if(k == GDK_VoidSymbol) + return 0; + return k; } void accelerator_write(const Accelerator& accelerator, TextOutputStream& ostream)