From 5cb59b802cafe21f4e636b694c7bc570bb6749e3 Mon Sep 17 00:00:00 2001 From: Elias Daler Date: Sat, 31 Mar 2018 02:09:21 +0300 Subject: [PATCH] KeySym to sf::Keyboard::Key mapping (also made better names for keycode, sf::Scancode and sf::Key conversion functions) --- src/SFML/Window/Unix/KeySymToSFKeyMapping.hpp | 283 ++++++++++++++++++ src/SFML/Window/Unix/X11InputManager.cpp | 255 +--------------- src/SFML/Window/Unix/X11InputManager.hpp | 6 +- 3 files changed, 300 insertions(+), 244 deletions(-) create mode 100644 src/SFML/Window/Unix/KeySymToSFKeyMapping.hpp diff --git a/src/SFML/Window/Unix/KeySymToSFKeyMapping.hpp b/src/SFML/Window/Unix/KeySymToSFKeyMapping.hpp new file mode 100644 index 00000000..cd681311 --- /dev/null +++ b/src/SFML/Window/Unix/KeySymToSFKeyMapping.hpp @@ -0,0 +1,283 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2017 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#ifndef SFML_KEYSYMTOSFKEYMAPPING_HPP +#define SFML_KEYSYMTOSFKEYMAPPING_HPP + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include // sf::Keyboard::Key +#include +#include + +namespace sf +{ +namespace priv +{ +//////////////////////////////////////////////////////////// +/// \brief Convert X11 KeySym to sf::Keyboard::Key +/// +/// \param symbol X11 KeySym +/// +/// \return The corresponding sf::Keyboard::Key +/// +//////////////////////////////////////////////////////////// +inline sf::Keyboard::Key keySymToSFKey(KeySym symbol) +{ + switch (symbol) + { + case XK_Shift_L: return sf::Keyboard::LShift; + case XK_Shift_R: return sf::Keyboard::RShift; + case XK_Control_L: return sf::Keyboard::LControl; + case XK_Control_R: return sf::Keyboard::RControl; + case XK_Alt_L: return sf::Keyboard::LAlt; + case XK_Alt_R: return sf::Keyboard::RAlt; + case XK_Super_L: return sf::Keyboard::LSystem; + case XK_Super_R: return sf::Keyboard::RSystem; + case XK_Menu: return sf::Keyboard::Menu; + case XK_Escape: return sf::Keyboard::Escape; + case XK_semicolon: return sf::Keyboard::SemiColon; + case XK_slash: return sf::Keyboard::Slash; + case XK_equal: return sf::Keyboard::Equal; + case XK_minus: return sf::Keyboard::Dash; + case XK_bracketleft: return sf::Keyboard::LBracket; + case XK_bracketright: return sf::Keyboard::RBracket; + case XK_comma: return sf::Keyboard::Comma; + case XK_period: return sf::Keyboard::Period; + case XK_apostrophe: return sf::Keyboard::Quote; + case XK_backslash: return sf::Keyboard::BackSlash; + case XK_grave: return sf::Keyboard::Tilde; + case XK_space: return sf::Keyboard::Space; + case XK_Return: return sf::Keyboard::Return; + case XK_KP_Enter: return sf::Keyboard::Return; + case XK_BackSpace: return sf::Keyboard::BackSpace; + case XK_Tab: return sf::Keyboard::Tab; + case XK_Prior: return sf::Keyboard::PageUp; + case XK_Next: return sf::Keyboard::PageDown; + case XK_End: return sf::Keyboard::End; + case XK_Home: return sf::Keyboard::Home; + case XK_Insert: return sf::Keyboard::Insert; + case XK_Delete: return sf::Keyboard::Delete; + case XK_KP_Add: return sf::Keyboard::Add; + case XK_KP_Subtract: return sf::Keyboard::Subtract; + case XK_KP_Multiply: return sf::Keyboard::Multiply; + case XK_KP_Divide: return sf::Keyboard::Divide; + case XK_Pause: return sf::Keyboard::Pause; + case XK_F1: return sf::Keyboard::F1; + case XK_F2: return sf::Keyboard::F2; + case XK_F3: return sf::Keyboard::F3; + case XK_F4: return sf::Keyboard::F4; + case XK_F5: return sf::Keyboard::F5; + case XK_F6: return sf::Keyboard::F6; + case XK_F7: return sf::Keyboard::F7; + case XK_F8: return sf::Keyboard::F8; + case XK_F9: return sf::Keyboard::F9; + case XK_F10: return sf::Keyboard::F10; + case XK_F11: return sf::Keyboard::F11; + case XK_F12: return sf::Keyboard::F12; + case XK_F13: return sf::Keyboard::F13; + case XK_F14: return sf::Keyboard::F14; + case XK_F15: return sf::Keyboard::F15; + case XK_Left: return sf::Keyboard::Left; + case XK_Right: return sf::Keyboard::Right; + case XK_Up: return sf::Keyboard::Up; + case XK_Down: return sf::Keyboard::Down; + case XK_KP_Insert: return sf::Keyboard::Numpad0; + case XK_KP_End: return sf::Keyboard::Numpad1; + case XK_KP_Down: return sf::Keyboard::Numpad2; + case XK_KP_Page_Down: return sf::Keyboard::Numpad3; + case XK_KP_Left: return sf::Keyboard::Numpad4; + case XK_KP_Begin: return sf::Keyboard::Numpad5; + case XK_KP_Right: return sf::Keyboard::Numpad6; + case XK_KP_Home: return sf::Keyboard::Numpad7; + case XK_KP_Up: return sf::Keyboard::Numpad8; + case XK_KP_Page_Up: return sf::Keyboard::Numpad9; + case XK_a: return sf::Keyboard::A; + case XK_b: return sf::Keyboard::B; + case XK_c: return sf::Keyboard::C; + case XK_d: return sf::Keyboard::D; + case XK_e: return sf::Keyboard::E; + case XK_f: return sf::Keyboard::F; + case XK_g: return sf::Keyboard::G; + case XK_h: return sf::Keyboard::H; + case XK_i: return sf::Keyboard::I; + case XK_j: return sf::Keyboard::J; + case XK_k: return sf::Keyboard::K; + case XK_l: return sf::Keyboard::L; + case XK_m: return sf::Keyboard::M; + case XK_n: return sf::Keyboard::N; + case XK_o: return sf::Keyboard::O; + case XK_p: return sf::Keyboard::P; + case XK_q: return sf::Keyboard::Q; + case XK_r: return sf::Keyboard::R; + case XK_s: return sf::Keyboard::S; + case XK_t: return sf::Keyboard::T; + case XK_u: return sf::Keyboard::U; + case XK_v: return sf::Keyboard::V; + case XK_w: return sf::Keyboard::W; + case XK_x: return sf::Keyboard::X; + case XK_y: return sf::Keyboard::Y; + case XK_z: return sf::Keyboard::Z; + case XK_0: return sf::Keyboard::Num0; + case XK_1: return sf::Keyboard::Num1; + case XK_2: return sf::Keyboard::Num2; + case XK_3: return sf::Keyboard::Num3; + case XK_4: return sf::Keyboard::Num4; + case XK_5: return sf::Keyboard::Num5; + case XK_6: return sf::Keyboard::Num6; + case XK_7: return sf::Keyboard::Num7; + case XK_8: return sf::Keyboard::Num8; + case XK_9: return sf::Keyboard::Num9; + } + + return sf::Keyboard::Unknown; +} + + +//////////////////////////////////////////////////////////// +/// \brief Convert sf::Keyboard::Key to X11 KeySym +/// +/// \param key X11 sf::Keyboard::Key +/// +/// \return The corresponding X11 KeySym +/// +//////////////////////////////////////////////////////////// +inline KeySym SFKeyToKeySym(sf::Keyboard::Key key) +{ + // Get the corresponding X11 keysym + KeySym keysym = 0; + switch (key) + { + case sf::Keyboard::LShift: keysym = XK_Shift_L; break; + case sf::Keyboard::RShift: keysym = XK_Shift_R; break; + case sf::Keyboard::LControl: keysym = XK_Control_L; break; + case sf::Keyboard::RControl: keysym = XK_Control_R; break; + case sf::Keyboard::LAlt: keysym = XK_Alt_L; break; + case sf::Keyboard::RAlt: keysym = XK_Alt_R; break; + case sf::Keyboard::LSystem: keysym = XK_Super_L; break; + case sf::Keyboard::RSystem: keysym = XK_Super_R; break; + case sf::Keyboard::Menu: keysym = XK_Menu; break; + case sf::Keyboard::Escape: keysym = XK_Escape; break; + case sf::Keyboard::SemiColon: keysym = XK_semicolon; break; + case sf::Keyboard::Slash: keysym = XK_slash; break; + case sf::Keyboard::Equal: keysym = XK_equal; break; + case sf::Keyboard::Dash: keysym = XK_minus; break; + case sf::Keyboard::LBracket: keysym = XK_bracketleft; break; + case sf::Keyboard::RBracket: keysym = XK_bracketright; break; + case sf::Keyboard::Comma: keysym = XK_comma; break; + case sf::Keyboard::Period: keysym = XK_period; break; + case sf::Keyboard::Quote: keysym = XK_apostrophe; break; + case sf::Keyboard::BackSlash: keysym = XK_backslash; break; + case sf::Keyboard::Tilde: keysym = XK_grave; break; + case sf::Keyboard::Space: keysym = XK_space; break; + case sf::Keyboard::Return: keysym = XK_Return; break; + case sf::Keyboard::BackSpace: keysym = XK_BackSpace; break; + case sf::Keyboard::Tab: keysym = XK_Tab; break; + case sf::Keyboard::PageUp: keysym = XK_Prior; break; + case sf::Keyboard::PageDown: keysym = XK_Next; break; + case sf::Keyboard::End: keysym = XK_End; break; + case sf::Keyboard::Home: keysym = XK_Home; break; + case sf::Keyboard::Insert: keysym = XK_Insert; break; + case sf::Keyboard::Delete: keysym = XK_Delete; break; + case sf::Keyboard::Add: keysym = XK_KP_Add; break; + case sf::Keyboard::Subtract: keysym = XK_KP_Subtract; break; + case sf::Keyboard::Multiply: keysym = XK_KP_Multiply; break; + case sf::Keyboard::Divide: keysym = XK_KP_Divide; break; + case sf::Keyboard::Pause: keysym = XK_Pause; break; + case sf::Keyboard::F1: keysym = XK_F1; break; + case sf::Keyboard::F2: keysym = XK_F2; break; + case sf::Keyboard::F3: keysym = XK_F3; break; + case sf::Keyboard::F4: keysym = XK_F4; break; + case sf::Keyboard::F5: keysym = XK_F5; break; + case sf::Keyboard::F6: keysym = XK_F6; break; + case sf::Keyboard::F7: keysym = XK_F7; break; + case sf::Keyboard::F8: keysym = XK_F8; break; + case sf::Keyboard::F9: keysym = XK_F9; break; + case sf::Keyboard::F10: keysym = XK_F10; break; + case sf::Keyboard::F11: keysym = XK_F11; break; + case sf::Keyboard::F12: keysym = XK_F12; break; + case sf::Keyboard::F13: keysym = XK_F13; break; + case sf::Keyboard::F14: keysym = XK_F14; break; + case sf::Keyboard::F15: keysym = XK_F15; break; + case sf::Keyboard::Left: keysym = XK_Left; break; + case sf::Keyboard::Right: keysym = XK_Right; break; + case sf::Keyboard::Up: keysym = XK_Up; break; + case sf::Keyboard::Down: keysym = XK_Down; break; + case sf::Keyboard::Numpad0: keysym = XK_KP_Insert; break; + case sf::Keyboard::Numpad1: keysym = XK_KP_End; break; + case sf::Keyboard::Numpad2: keysym = XK_KP_Down; break; + case sf::Keyboard::Numpad3: keysym = XK_KP_Page_Down; break; + case sf::Keyboard::Numpad4: keysym = XK_KP_Left; break; + case sf::Keyboard::Numpad5: keysym = XK_KP_Begin; break; + case sf::Keyboard::Numpad6: keysym = XK_KP_Right; break; + case sf::Keyboard::Numpad7: keysym = XK_KP_Home; break; + case sf::Keyboard::Numpad8: keysym = XK_KP_Up; break; + case sf::Keyboard::Numpad9: keysym = XK_KP_Page_Up; break; + case sf::Keyboard::A: keysym = XK_a; break; + case sf::Keyboard::B: keysym = XK_b; break; + case sf::Keyboard::C: keysym = XK_c; break; + case sf::Keyboard::D: keysym = XK_d; break; + case sf::Keyboard::E: keysym = XK_e; break; + case sf::Keyboard::F: keysym = XK_f; break; + case sf::Keyboard::G: keysym = XK_g; break; + case sf::Keyboard::H: keysym = XK_h; break; + case sf::Keyboard::I: keysym = XK_i; break; + case sf::Keyboard::J: keysym = XK_j; break; + case sf::Keyboard::K: keysym = XK_k; break; + case sf::Keyboard::L: keysym = XK_l; break; + case sf::Keyboard::M: keysym = XK_m; break; + case sf::Keyboard::N: keysym = XK_n; break; + case sf::Keyboard::O: keysym = XK_o; break; + case sf::Keyboard::P: keysym = XK_p; break; + case sf::Keyboard::Q: keysym = XK_q; break; + case sf::Keyboard::R: keysym = XK_r; break; + case sf::Keyboard::S: keysym = XK_s; break; + case sf::Keyboard::T: keysym = XK_t; break; + case sf::Keyboard::U: keysym = XK_u; break; + case sf::Keyboard::V: keysym = XK_v; break; + case sf::Keyboard::W: keysym = XK_w; break; + case sf::Keyboard::X: keysym = XK_x; break; + case sf::Keyboard::Y: keysym = XK_y; break; + case sf::Keyboard::Z: keysym = XK_z; break; + case sf::Keyboard::Num0: keysym = XK_0; break; + case sf::Keyboard::Num1: keysym = XK_1; break; + case sf::Keyboard::Num2: keysym = XK_2; break; + case sf::Keyboard::Num3: keysym = XK_3; break; + case sf::Keyboard::Num4: keysym = XK_4; break; + case sf::Keyboard::Num5: keysym = XK_5; break; + case sf::Keyboard::Num6: keysym = XK_6; break; + case sf::Keyboard::Num7: keysym = XK_7; break; + case sf::Keyboard::Num8: keysym = XK_8; break; + case sf::Keyboard::Num9: keysym = XK_9; break; + default: keysym = 0; break; + } + return keysym; +} + +} // namespace priv + +} // namespace sf + +#endif // SFML_KEYSYMTOSFKEYMAPPING_HPP diff --git a/src/SFML/Window/Unix/X11InputManager.cpp b/src/SFML/Window/Unix/X11InputManager.cpp index 4f414822..e5906882 100644 --- a/src/SFML/Window/Unix/X11InputManager.cpp +++ b/src/SFML/Window/Unix/X11InputManager.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -40,234 +41,6 @@ namespace priv { namespace { - -//////////////////////////////////////////////////////////// -sf::Keyboard::Key keysymToSF(KeySym symbol) -{ - switch (symbol) - { - case XK_Shift_L: return sf::Keyboard::LShift; - case XK_Shift_R: return sf::Keyboard::RShift; - case XK_Control_L: return sf::Keyboard::LControl; - case XK_Control_R: return sf::Keyboard::RControl; - case XK_Alt_L: return sf::Keyboard::LAlt; - case XK_Alt_R: return sf::Keyboard::RAlt; - case XK_Super_L: return sf::Keyboard::LSystem; - case XK_Super_R: return sf::Keyboard::RSystem; - case XK_Menu: return sf::Keyboard::Menu; - case XK_Escape: return sf::Keyboard::Escape; - case XK_semicolon: return sf::Keyboard::SemiColon; - case XK_slash: return sf::Keyboard::Slash; - case XK_equal: return sf::Keyboard::Equal; - case XK_minus: return sf::Keyboard::Dash; - case XK_bracketleft: return sf::Keyboard::LBracket; - case XK_bracketright: return sf::Keyboard::RBracket; - case XK_comma: return sf::Keyboard::Comma; - case XK_period: return sf::Keyboard::Period; - case XK_apostrophe: return sf::Keyboard::Quote; - case XK_backslash: return sf::Keyboard::BackSlash; - case XK_grave: return sf::Keyboard::Tilde; - case XK_space: return sf::Keyboard::Space; - case XK_Return: return sf::Keyboard::Return; - case XK_KP_Enter: return sf::Keyboard::Return; - case XK_BackSpace: return sf::Keyboard::BackSpace; - case XK_Tab: return sf::Keyboard::Tab; - case XK_Prior: return sf::Keyboard::PageUp; - case XK_Next: return sf::Keyboard::PageDown; - case XK_End: return sf::Keyboard::End; - case XK_Home: return sf::Keyboard::Home; - case XK_Insert: return sf::Keyboard::Insert; - case XK_Delete: return sf::Keyboard::Delete; - case XK_KP_Add: return sf::Keyboard::Add; - case XK_KP_Subtract: return sf::Keyboard::Subtract; - case XK_KP_Multiply: return sf::Keyboard::Multiply; - case XK_KP_Divide: return sf::Keyboard::Divide; - case XK_Pause: return sf::Keyboard::Pause; - case XK_F1: return sf::Keyboard::F1; - case XK_F2: return sf::Keyboard::F2; - case XK_F3: return sf::Keyboard::F3; - case XK_F4: return sf::Keyboard::F4; - case XK_F5: return sf::Keyboard::F5; - case XK_F6: return sf::Keyboard::F6; - case XK_F7: return sf::Keyboard::F7; - case XK_F8: return sf::Keyboard::F8; - case XK_F9: return sf::Keyboard::F9; - case XK_F10: return sf::Keyboard::F10; - case XK_F11: return sf::Keyboard::F11; - case XK_F12: return sf::Keyboard::F12; - case XK_F13: return sf::Keyboard::F13; - case XK_F14: return sf::Keyboard::F14; - case XK_F15: return sf::Keyboard::F15; - case XK_Left: return sf::Keyboard::Left; - case XK_Right: return sf::Keyboard::Right; - case XK_Up: return sf::Keyboard::Up; - case XK_Down: return sf::Keyboard::Down; - case XK_KP_Insert: return sf::Keyboard::Numpad0; - case XK_KP_End: return sf::Keyboard::Numpad1; - case XK_KP_Down: return sf::Keyboard::Numpad2; - case XK_KP_Page_Down: return sf::Keyboard::Numpad3; - case XK_KP_Left: return sf::Keyboard::Numpad4; - case XK_KP_Begin: return sf::Keyboard::Numpad5; - case XK_KP_Right: return sf::Keyboard::Numpad6; - case XK_KP_Home: return sf::Keyboard::Numpad7; - case XK_KP_Up: return sf::Keyboard::Numpad8; - case XK_KP_Page_Up: return sf::Keyboard::Numpad9; - case XK_a: return sf::Keyboard::A; - case XK_b: return sf::Keyboard::B; - case XK_c: return sf::Keyboard::C; - case XK_d: return sf::Keyboard::D; - case XK_e: return sf::Keyboard::E; - case XK_f: return sf::Keyboard::F; - case XK_g: return sf::Keyboard::G; - case XK_h: return sf::Keyboard::H; - case XK_i: return sf::Keyboard::I; - case XK_j: return sf::Keyboard::J; - case XK_k: return sf::Keyboard::K; - case XK_l: return sf::Keyboard::L; - case XK_m: return sf::Keyboard::M; - case XK_n: return sf::Keyboard::N; - case XK_o: return sf::Keyboard::O; - case XK_p: return sf::Keyboard::P; - case XK_q: return sf::Keyboard::Q; - case XK_r: return sf::Keyboard::R; - case XK_s: return sf::Keyboard::S; - case XK_t: return sf::Keyboard::T; - case XK_u: return sf::Keyboard::U; - case XK_v: return sf::Keyboard::V; - case XK_w: return sf::Keyboard::W; - case XK_x: return sf::Keyboard::X; - case XK_y: return sf::Keyboard::Y; - case XK_z: return sf::Keyboard::Z; - case XK_0: return sf::Keyboard::Num0; - case XK_1: return sf::Keyboard::Num1; - case XK_2: return sf::Keyboard::Num2; - case XK_3: return sf::Keyboard::Num3; - case XK_4: return sf::Keyboard::Num4; - case XK_5: return sf::Keyboard::Num5; - case XK_6: return sf::Keyboard::Num6; - case XK_7: return sf::Keyboard::Num7; - case XK_8: return sf::Keyboard::Num8; - case XK_9: return sf::Keyboard::Num9; - } - - return sf::Keyboard::Unknown; -} - - -//////////////////////////////////////////////////////////// -KeySym SFtoKeysym(sf::Keyboard::Key key) -{ - // Get the corresponding X11 keysym - KeySym keysym = 0; - switch (key) - { - case sf::Keyboard::LShift: keysym = XK_Shift_L; break; - case sf::Keyboard::RShift: keysym = XK_Shift_R; break; - case sf::Keyboard::LControl: keysym = XK_Control_L; break; - case sf::Keyboard::RControl: keysym = XK_Control_R; break; - case sf::Keyboard::LAlt: keysym = XK_Alt_L; break; - case sf::Keyboard::RAlt: keysym = XK_Alt_R; break; - case sf::Keyboard::LSystem: keysym = XK_Super_L; break; - case sf::Keyboard::RSystem: keysym = XK_Super_R; break; - case sf::Keyboard::Menu: keysym = XK_Menu; break; - case sf::Keyboard::Escape: keysym = XK_Escape; break; - case sf::Keyboard::SemiColon: keysym = XK_semicolon; break; - case sf::Keyboard::Slash: keysym = XK_slash; break; - case sf::Keyboard::Equal: keysym = XK_equal; break; - case sf::Keyboard::Dash: keysym = XK_minus; break; - case sf::Keyboard::LBracket: keysym = XK_bracketleft; break; - case sf::Keyboard::RBracket: keysym = XK_bracketright; break; - case sf::Keyboard::Comma: keysym = XK_comma; break; - case sf::Keyboard::Period: keysym = XK_period; break; - case sf::Keyboard::Quote: keysym = XK_apostrophe; break; - case sf::Keyboard::BackSlash: keysym = XK_backslash; break; - case sf::Keyboard::Tilde: keysym = XK_grave; break; - case sf::Keyboard::Space: keysym = XK_space; break; - case sf::Keyboard::Return: keysym = XK_Return; break; - case sf::Keyboard::BackSpace: keysym = XK_BackSpace; break; - case sf::Keyboard::Tab: keysym = XK_Tab; break; - case sf::Keyboard::PageUp: keysym = XK_Prior; break; - case sf::Keyboard::PageDown: keysym = XK_Next; break; - case sf::Keyboard::End: keysym = XK_End; break; - case sf::Keyboard::Home: keysym = XK_Home; break; - case sf::Keyboard::Insert: keysym = XK_Insert; break; - case sf::Keyboard::Delete: keysym = XK_Delete; break; - case sf::Keyboard::Add: keysym = XK_KP_Add; break; - case sf::Keyboard::Subtract: keysym = XK_KP_Subtract; break; - case sf::Keyboard::Multiply: keysym = XK_KP_Multiply; break; - case sf::Keyboard::Divide: keysym = XK_KP_Divide; break; - case sf::Keyboard::Pause: keysym = XK_Pause; break; - case sf::Keyboard::F1: keysym = XK_F1; break; - case sf::Keyboard::F2: keysym = XK_F2; break; - case sf::Keyboard::F3: keysym = XK_F3; break; - case sf::Keyboard::F4: keysym = XK_F4; break; - case sf::Keyboard::F5: keysym = XK_F5; break; - case sf::Keyboard::F6: keysym = XK_F6; break; - case sf::Keyboard::F7: keysym = XK_F7; break; - case sf::Keyboard::F8: keysym = XK_F8; break; - case sf::Keyboard::F9: keysym = XK_F9; break; - case sf::Keyboard::F10: keysym = XK_F10; break; - case sf::Keyboard::F11: keysym = XK_F11; break; - case sf::Keyboard::F12: keysym = XK_F12; break; - case sf::Keyboard::F13: keysym = XK_F13; break; - case sf::Keyboard::F14: keysym = XK_F14; break; - case sf::Keyboard::F15: keysym = XK_F15; break; - case sf::Keyboard::Left: keysym = XK_Left; break; - case sf::Keyboard::Right: keysym = XK_Right; break; - case sf::Keyboard::Up: keysym = XK_Up; break; - case sf::Keyboard::Down: keysym = XK_Down; break; - case sf::Keyboard::Numpad0: keysym = XK_KP_Insert; break; - case sf::Keyboard::Numpad1: keysym = XK_KP_End; break; - case sf::Keyboard::Numpad2: keysym = XK_KP_Down; break; - case sf::Keyboard::Numpad3: keysym = XK_KP_Page_Down; break; - case sf::Keyboard::Numpad4: keysym = XK_KP_Left; break; - case sf::Keyboard::Numpad5: keysym = XK_KP_Begin; break; - case sf::Keyboard::Numpad6: keysym = XK_KP_Right; break; - case sf::Keyboard::Numpad7: keysym = XK_KP_Home; break; - case sf::Keyboard::Numpad8: keysym = XK_KP_Up; break; - case sf::Keyboard::Numpad9: keysym = XK_KP_Page_Up; break; - case sf::Keyboard::A: keysym = XK_a; break; - case sf::Keyboard::B: keysym = XK_b; break; - case sf::Keyboard::C: keysym = XK_c; break; - case sf::Keyboard::D: keysym = XK_d; break; - case sf::Keyboard::E: keysym = XK_e; break; - case sf::Keyboard::F: keysym = XK_f; break; - case sf::Keyboard::G: keysym = XK_g; break; - case sf::Keyboard::H: keysym = XK_h; break; - case sf::Keyboard::I: keysym = XK_i; break; - case sf::Keyboard::J: keysym = XK_j; break; - case sf::Keyboard::K: keysym = XK_k; break; - case sf::Keyboard::L: keysym = XK_l; break; - case sf::Keyboard::M: keysym = XK_m; break; - case sf::Keyboard::N: keysym = XK_n; break; - case sf::Keyboard::O: keysym = XK_o; break; - case sf::Keyboard::P: keysym = XK_p; break; - case sf::Keyboard::Q: keysym = XK_q; break; - case sf::Keyboard::R: keysym = XK_r; break; - case sf::Keyboard::S: keysym = XK_s; break; - case sf::Keyboard::T: keysym = XK_t; break; - case sf::Keyboard::U: keysym = XK_u; break; - case sf::Keyboard::V: keysym = XK_v; break; - case sf::Keyboard::W: keysym = XK_w; break; - case sf::Keyboard::X: keysym = XK_x; break; - case sf::Keyboard::Y: keysym = XK_y; break; - case sf::Keyboard::Z: keysym = XK_z; break; - case sf::Keyboard::Num0: keysym = XK_0; break; - case sf::Keyboard::Num1: keysym = XK_1; break; - case sf::Keyboard::Num2: keysym = XK_2; break; - case sf::Keyboard::Num3: keysym = XK_3; break; - case sf::Keyboard::Num4: keysym = XK_4; break; - case sf::Keyboard::Num5: keysym = XK_5; break; - case sf::Keyboard::Num6: keysym = XK_6; break; - case sf::Keyboard::Num7: keysym = XK_7; break; - case sf::Keyboard::Num8: keysym = XK_8; break; - case sf::Keyboard::Num9: keysym = XK_9; break; - default: keysym = 0; break; - } - return keysym; -} - - //////////////////////////////////////////////////////////// sf::Keyboard::Scancode translateKeyCode(Display* display, KeyCode keycode) { @@ -587,7 +360,7 @@ bool isKeyPressedImpl(Display* display, KeyCode keycode) //////////////////////////////////////////////////////////// bool X11InputManager::isKeyPressed(sf::Keyboard::Key key) const { - KeyCode keycode = SFtoKeyCode(key); + KeyCode keycode = SFKeyToKeyCode(key); return isKeyPressedImpl(m_display, keycode); } @@ -595,7 +368,7 @@ bool X11InputManager::isKeyPressed(sf::Keyboard::Key key) const //////////////////////////////////////////////////////////// bool X11InputManager::isKeyPressed(sf::Keyboard::Scancode code) const { - KeyCode keycode = SFtoKeyCode(code); + KeyCode keycode = SFScancodeToKeyCode(code); return isKeyPressedImpl(m_display, keycode); } @@ -603,17 +376,17 @@ bool X11InputManager::isKeyPressed(sf::Keyboard::Scancode code) const //////////////////////////////////////////////////////////// sf::Keyboard::Scancode X11InputManager::unlocalize(sf::Keyboard::Key key) const { - KeyCode keycode = SFtoKeyCode(key); - return keyCodeToSF(keycode); + KeyCode keycode = SFKeyToKeyCode(key); + return keyCodeToSFScancode(keycode); } //////////////////////////////////////////////////////////// sf::Keyboard::Key X11InputManager::localize(sf::Keyboard::Scancode code) const { - KeyCode keycode = SFtoKeyCode(code); + KeyCode keycode = SFScancodeToKeyCode(code); KeySym keysym = XkbKeycodeToKeysym(m_display, keycode, 0, 0); - return keysymToSF(keysym); + return keySymToSFKey(keysym); } //////////////////////////////////////////////////////////// @@ -634,7 +407,7 @@ sf::String X11InputManager::getDescription(Keyboard::Scancode code) const if (checkInput) { - KeyCode keycode = SFtoKeyCode(code); + KeyCode keycode = SFScancodeToKeyCode(code); KeySym keysym = XkbKeycodeToKeysym(m_display, keycode, 0, 0); sf::Uint32 unicode = keysymToUnicode(keysym); if (unicode != 0) @@ -743,7 +516,7 @@ sf::Keyboard::Key X11InputManager::getKeyFromEvent(XKeyEvent& event) const { // Get the SFML keyboard code from the keysym of the key that has been pressed KeySym keysym = XLookupKeysym(&event, i); - key = keysymToSF(keysym); + key = keySymToSFKey(keysym); if (key != Keyboard::Unknown) break; @@ -755,27 +528,27 @@ sf::Keyboard::Key X11InputManager::getKeyFromEvent(XKeyEvent& event) const //////////////////////////////////////////////////////////// sf::Keyboard::Scancode X11InputManager::getScancodeFromEvent(XKeyEvent& event) const { - return keyCodeToSF(event.keycode); + return keyCodeToSFScancode(event.keycode); } //////////////////////////////////////////////////////////// -KeyCode X11InputManager::SFtoKeyCode(sf::Keyboard::Key key) const +KeyCode X11InputManager::SFKeyToKeyCode(sf::Keyboard::Key key) const { - KeySym keysym = SFtoKeysym(key); + KeySym keysym = SFKeyToKeySym(key); return XKeysymToKeycode(m_display, keysym); } //////////////////////////////////////////////////////////// -KeyCode X11InputManager::SFtoKeyCode(sf::Keyboard::Scancode code) const +KeyCode X11InputManager::SFScancodeToKeyCode(sf::Keyboard::Scancode code) const { return m_scancodeToKeycode[code]; } //////////////////////////////////////////////////////////// -sf::Keyboard::Scancode X11InputManager::keyCodeToSF(KeyCode code) const +sf::Keyboard::Scancode X11InputManager::keyCodeToSFScancode(KeyCode code) const { return m_keycodeToScancode[code]; } diff --git a/src/SFML/Window/Unix/X11InputManager.hpp b/src/SFML/Window/Unix/X11InputManager.hpp index 5afab50a..999a6852 100644 --- a/src/SFML/Window/Unix/X11InputManager.hpp +++ b/src/SFML/Window/Unix/X11InputManager.hpp @@ -136,7 +136,7 @@ private: /// \return A corresponding X11 Keycode /// //////////////////////////////////////////////////////////// - KeyCode SFtoKeyCode(sf::Keyboard::Key key) const; + KeyCode SFKeyToKeyCode(sf::Keyboard::Key key) const; //////////////////////////////////////////////////////////// /// \brief Converts sf::Keyboard::Scancode to X11 keycode @@ -146,7 +146,7 @@ private: /// \return A corresponding X11 Keycode /// //////////////////////////////////////////////////////////// - KeyCode SFtoKeyCode(sf::Keyboard::Scancode code) const; + KeyCode SFScancodeToKeyCode(sf::Keyboard::Scancode code) const; //////////////////////////////////////////////////////////// /// \brief Convert X11 Keycode to sf::Keyboard::Scancode @@ -156,7 +156,7 @@ private: /// \return The corresponding sf::Keyboard::Scancode /// //////////////////////////////////////////////////////////// - sf::Keyboard::Scancode keyCodeToSF(KeyCode code) const; + sf::Keyboard::Scancode keyCodeToSFScancode(KeyCode code) const; //////////////////////////////////////////////////////////// // Member data