X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fkeycode.h;h=4cd0b707e5e015fee3dd0a79549e0dc4cbc44d07;hb=6658ad3d94c053eeed12bb79e255cdfa46831e19;hp=28fb3f1fb86ccaf7ba7e3e85c0dd077b82407a65;hpb=836e43db60ff1f3c9d160d0d58ba5a631c4293fc;p=minetest.git diff --git a/src/keycode.h b/src/keycode.h index 28fb3f1fb..4cd0b707e 100644 --- a/src/keycode.h +++ b/src/keycode.h @@ -1,18 +1,18 @@ /* -Minetest-c55 -Copyright (C) 2010-2011 celeron55, Perttu Ahola +Minetest +Copyright (C) 2010-2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ @@ -20,7 +20,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef KEYCODE_HEADER #define KEYCODE_HEADER -#include "common_irrlicht.h" +#include "irrlichttypes.h" +#include "Keycodes.h" +#include #include /* A key press, consisting of either an Irrlicht keycode @@ -32,17 +34,16 @@ class KeyPress KeyPress(); KeyPress(const char *name); - KeyPress(const irr::SEvent::SKeyInput &in); + KeyPress(const irr::SEvent::SKeyInput &in, bool prefer_character = false); bool operator==(const KeyPress &o) const { - return valid_kcode(Key) ? Key == o.Key : Char == o.Char; + return (Char > 0 && Char == o.Char) || (valid_kcode(Key) && Key == o.Key); } const char *sym() const; const char *name() const; - std::string debug() const; protected: static bool valid_kcode(irr::EKEY_CODE k) { @@ -55,6 +56,7 @@ class KeyPress }; extern const KeyPress EscapeKey; +extern const KeyPress CancelKey; extern const KeyPress NumberKey[10]; // Key configuration getter @@ -63,5 +65,6 @@ KeyPress getKeySetting(const char *settingname); // Clear fast lookup cache void clearKeyCache(); -#endif +irr::EKEY_CODE keyname_to_keycode(const char *name); +#endif