____ _ __
/ __ )____ _____ | | / /___ ___________
/ __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
/ /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
/_____/\____/____/ |__/|__/\__,_/_/ /____/
A futuristic real-time strategy game.
This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project.
Distributed under the "GNU General Public License"00001 /* _______ __ __ __ ______ __ __ _______ __ __ 00002 * / _____/\ / /\ / /\ / /\ / ____/\ / /\ / /\ / ___ /\ / |\/ /\ 00003 * / /\____\// / // / // / // /\___\// /_// / // /\_/ / // , |/ / / 00004 * / / /__ / / // / // / // / / / ___ / // ___ / // /| ' / / 00005 * / /_// /\ / /_// / // / // /_/_ / / // / // /\_/ / // / | / / 00006 * /______/ //______/ //_/ //_____/\ /_/ //_/ //_/ //_/ //_/ /|_/ / 00007 * \______\/ \______\/ \_\/ \_____\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ 00008 * 00009 * Copyright (c) 2004, 2005 darkbits Js_./ 00010 * Per Larsson a.k.a finalman _RqZ{a<^_aa 00011 * Olof Naessén a.k.a jansem/yakslem _asww7!uY`> )\a// 00012 * _Qhm`] _f "'c 1!5m 00013 * Visit: http://guichan.darkbits.org )Qk<P ` _: :+' .' "{[ 00014 * .)j(] .d_/ '-( P . S 00015 * License: (BSD) <Td/Z <fP"5(\"??"\a. .L 00016 * Redistribution and use in source and _dV>ws?a-?' ._/L #' 00017 * binary forms, with or without )4d[#7r, . ' )d`)[ 00018 * modification, are permitted provided _Q-5'5W..j/?' -?!\)cam' 00019 * that the following conditions are met: j<<WP+k/);. _W=j f 00020 * 1. Redistributions of source code must .$%w\/]Q . ."' . mj$ 00021 * retain the above copyright notice, ]E.pYY(Q]>. a J@\ 00022 * this list of conditions and the j(]1u<sE"L,. . ./^ ]{a 00023 * following disclaimer. 4'_uomm\. )L);-4 (3= 00024 * 2. Redistributions in binary form must )_]X{Z('a_"a7'<a"a, ]"[ 00025 * reproduce the above copyright notice, #}<]m7`Za??4,P-"'7. ).m 00026 * this list of conditions and the ]d2e)Q(<Q( ?94 b- LQ/ 00027 * following disclaimer in the <B!</]C)d_, '(<' .f. =C+m 00028 * documentation and/or other materials .Z!=J ]e []('-4f _ ) -.)m]' 00029 * provided with the distribution. .w[5]' _[ /.)_-"+? _/ <W" 00030 * 3. Neither the name of Guichan nor the :$we` _! + _/ . j? 00031 * names of its contributors may be used =3)= _f (_yQmWW$#( " 00032 * to endorse or promote products derived - W, sQQQQmZQ#Wwa].. 00033 * from this software without specific (js, \[QQW$QWW#?!V"". 00034 * prior written permission. ]y:.<\.. . 00035 * -]n w/ ' [. 00036 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT )/ )/ ! 00037 * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY < (; sac , ' 00038 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, ]^ .- % 00039 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF c < r 00040 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR aga< <La 00041 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 5% )P'-3L 00042 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR _bQf` y`..)a 00043 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ,J?4P'.P"_(\?d'., 00044 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES _Pa,)!f/<[]/ ?" 00045 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT _2-..:. .r+_,.. . 00046 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ?a.<%"' " -'.a_ _, 00047 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ^ 00048 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00049 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00050 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00051 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 00052 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00053 */ 00054 00055 #ifndef GCN_KEY_HPP 00056 #define GCN_KEY_HPP 00057 00058 #include <string> 00059 00060 #include "guichan/platform.h" 00061 00062 #ifdef DELETE 00063 #undef DELETE 00064 #endif 00065 00066 namespace gcn 00067 { 00071 class GCN_CORE_DECLSPEC Key 00072 { 00073 public: 00077 Key(); 00078 00084 Key(int value); 00085 00091 bool isCharacter() const; 00092 00098 bool isNumber() const; 00099 00105 bool isLetter() const; 00106 00112 bool isShiftPressed() const; 00113 00119 void setShiftPressed(bool pressed); 00120 00125 bool isControlPressed() const; 00126 00132 void setControlPressed(bool pressed); 00133 00139 bool isAltPressed() const; 00140 00146 void setAltPressed(bool pressed); 00147 00153 bool isMetaPressed() const; 00154 00160 void setMetaPressed(bool pressed); 00161 00167 bool isNumericPad() const; 00168 00174 void setNumericPad(bool numpad); 00175 00182 int getValue() const; 00183 00189 void setValue(int value); 00190 00194 std::string toString() const; 00195 00199 enum 00200 { 00201 SPACE = ' ', 00202 TAB = '\t', 00203 ENTER = '\n', 00204 LEFT_ALT = 1000, 00205 RIGHT_ALT, 00206 LEFT_SHIFT, 00207 RIGHT_SHIFT, 00208 LEFT_CONTROL, 00209 RIGHT_CONTROL, 00210 LEFT_META, 00211 RIGHT_META, 00212 LEFT_SUPER, 00213 RIGHT_SUPER, 00214 INSERT, 00215 HOME, 00216 PAGE_UP, 00217 DELETE, 00218 END, 00219 PAGE_DOWN, 00220 ESCAPE, 00221 CAPS_LOCK, 00222 BACKSPACE, 00223 F1, 00224 F2, 00225 F3, 00226 F4, 00227 F5, 00228 F6, 00229 F7, 00230 F8, 00231 F9, 00232 F10, 00233 F11, 00234 F12, 00235 F13, 00236 F14, 00237 F15, 00238 PRINT_SCREEN, 00239 SCROLL_LOCK, 00240 PAUSE, 00241 NUM_LOCK, 00242 ALT_GR, 00243 LEFT, 00244 RIGHT, 00245 UP, 00246 DOWN 00247 }; 00248 00249 protected: 00250 int mValue; 00251 bool mShiftPressed; 00252 bool mControlPressed; 00253 bool mAltPressed; 00254 bool mMetaPressed; 00255 bool mNumericPad; 00256 }; 00257 } 00258 00259 #endif // end GCN_KEY_HPP
1.5.6