comparison engine/core/eventchannel/key/ec_key.h @ 0:4a0efb7baf70

* Datasets becomes the new trunk and retires after that :-)
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 29 Jun 2008 18:44:17 +0000
parents
children 90005975cdbb
comparison
equal deleted inserted replaced
-1:000000000000 0:4a0efb7baf70
1 /***************************************************************************
2 * Copyright (C) 2005-2008 by the FIFE team *
3 * http://www.fifengine.de *
4 * This file is part of FIFE. *
5 * *
6 * FIFE is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the *
18 * Free Software Foundation, Inc., *
19 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
20 ***************************************************************************/
21
22 #ifndef FIFE_EVENTCHANNEL_KEY_H
23 #define FIFE_EVENTCHANNEL_KEY_H
24
25 // Standard C++ library includes
26 //
27
28 // 3rd party library includes
29 //
30
31 // FIFE includes
32 // These includes are split up in two parts, separated by one empty line
33 // First block: files included from the FIFE root src directory
34 // Second block: files included from the same folder
35 //
36 namespace FIFE {
37
38 /** Represents a key or a character.
39 */
40 class Key {
41 public:
42 /** Constructor
43 * @param value value of the key
44 * @param repr string represntation of the key
45 */
46 Key(int value, const std::string& repr=""):
47 m_value(value),
48 m_repr(repr) {}
49
50 /** Destructor.
51 */
52 virtual ~Key() {}
53
54 /** Checks whether a key is a character.
55 */
56 bool isCharacter() const {
57 return (m_value >= 32 && m_value <= 126)
58 || (m_value >= 162 && m_value <= 255)
59 || (m_value == 9);
60 }
61
62 /** Gets the value of the key.
63 */
64 bool isNumber() const {
65 return m_value >= 48 && m_value <= 57;
66 }
67
68 /** Checks whether a key is a letter.
69 */
70 bool isLetter() const {
71 return (((m_value >= 65 && m_value <= 90)
72 || (m_value >= 97 && m_value <= 122)
73 || (m_value >= 192 && m_value <= 255))
74 && (m_value != 215) && (m_value != 247));
75 }
76
77 /** Gets the value of the key.
78 */
79 int getValue() const {
80 return m_value;
81 }
82
83 /** Gets the string representation of the key.
84 */
85 const std::string& getAsString() const {
86 return m_repr;
87 }
88
89 /** Codes for different keys
90 */
91 enum KeyType {
92 INVALID_KEY = -1,
93 SPACE = ' ',
94 TAB = '\t',
95 ENTER = '\n',
96 LEFT_ALT = 1000,
97 RIGHT_ALT,
98 LEFT_SHIFT,
99 RIGHT_SHIFT,
100 LEFT_CONTROL,
101 RIGHT_CONTROL,
102 LEFT_META,
103 RIGHT_META,
104 LEFT_SUPER,
105 RIGHT_SUPER,
106 INSERT,
107 HOME,
108 PAGE_UP,
109 DELETE_KEY,
110 END,
111 PAGE_DOWN,
112 ESCAPE,
113 CAPS_LOCK,
114 BACKSPACE,
115 F1,
116 F2,
117 F3,
118 F4,
119 F5,
120 F6,
121 F7,
122 F8,
123 F9,
124 F10,
125 F11,
126 F12,
127 F13,
128 F14,
129 F15,
130 PRINT_SCREEN,
131 SCROLL_LOCK,
132 PAUSE,
133 NUM_LOCK,
134 ALT_GR,
135 LEFT,
136 RIGHT,
137 UP,
138 DOWN
139 };
140
141 private:
142 int m_value;
143 std::string m_repr;
144 };
145
146 } //FIFE
147
148 #endif