MyGUI  3.2.1
MyGUI_KeyCode.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_KEY_CODE_H__
8 #define __MYGUI_KEY_CODE_H__
9 
10 #include "MyGUI_Prerequest.h"
11 
12 namespace MyGUI
13 {
14 
16  {
17  enum Enum
18  {
19  None = 0x00,
20  Escape = 0x01,
21  One = 0x02,
22  Two = 0x03,
23  Three = 0x04,
24  Four = 0x05,
25  Five = 0x06,
26  Six = 0x07,
27  Seven = 0x08,
28  Eight = 0x09,
29  Nine = 0x0A,
30  Zero = 0x0B,
31  Minus = 0x0C, /* - on main keyboard */
32  Equals = 0x0D,
33  Backspace = 0x0E, /* Backspace */
34  Tab = 0x0F,
35  Q = 0x10,
36  W = 0x11,
37  E = 0x12,
38  R = 0x13,
39  T = 0x14,
40  Y = 0x15,
41  U = 0x16,
42  I = 0x17,
43  O = 0x18,
44  P = 0x19,
45  LeftBracket = 0x1A,
46  RightBracket = 0x1B,
47  Return = 0x1C, /* Enter on main keyboard */
48  LeftControl = 0x1D,
49  A = 0x1E,
50  S = 0x1F,
51  D = 0x20,
52  F = 0x21,
53  G = 0x22,
54  H = 0x23,
55  J = 0x24,
56  K = 0x25,
57  L = 0x26,
58  Semicolon = 0x27,
59  Apostrophe = 0x28,
60  Grave = 0x29, /* Accent grave ( ~ ) */
61  LeftShift = 0x2A,
62  Backslash = 0x2B,
63  Z = 0x2C,
64  X = 0x2D,
65  C = 0x2E,
66  V = 0x2F,
67  B = 0x30,
68  N = 0x31,
69  M = 0x32,
70  Comma = 0x33,
71  Period = 0x34, /* . on main keyboard */
72  Slash = 0x35, /* '/' on main keyboard */
73  RightShift = 0x36,
74  Multiply = 0x37, /* * on numeric keypad */
75  LeftAlt = 0x38, /* Left Alt */
76  Space = 0x39,
77  Capital = 0x3A,
78  F1 = 0x3B,
79  F2 = 0x3C,
80  F3 = 0x3D,
81  F4 = 0x3E,
82  F5 = 0x3F,
83  F6 = 0x40,
84  F7 = 0x41,
85  F8 = 0x42,
86  F9 = 0x43,
87  F10 = 0x44,
88  NumLock = 0x45,
89  ScrollLock = 0x46, /* Scroll Lock */
90  Numpad7 = 0x47,
91  Numpad8 = 0x48,
92  Numpad9 = 0x49,
93  Subtract = 0x4A, /* - on numeric keypad */
94  Numpad4 = 0x4B,
95  Numpad5 = 0x4C,
96  Numpad6 = 0x4D,
97  Add = 0x4E, /* + on numeric keypad */
98  Numpad1 = 0x4F,
99  Numpad2 = 0x50,
100  Numpad3 = 0x51,
101  Numpad0 = 0x52,
102  Decimal = 0x53, /* . on numeric keypad */
103  OEM_102 = 0x56, /* < > | on UK/Germany keyboards */
104  F11 = 0x57,
105  F12 = 0x58,
106  F13 = 0x64, /* (NEC PC98) */
107  F14 = 0x65, /* (NEC PC98) */
108  F15 = 0x66, /* (NEC PC98) */
109  Kana = 0x70, /* (Japanese keyboard) */
110  ABNT_C1 = 0x73, /* / ? on Portugese (Brazilian) keyboards */
111  Convert = 0x79, /* (Japanese keyboard) */
112  NoConvert = 0x7B, /* (Japanese keyboard) */
113  Yen = 0x7D, /* (Japanese keyboard) */
114  ABNT_C2 = 0x7E, /* Numpad . on Portugese (Brazilian) keyboards */
115  NumpadEquals = 0x8D, /* = on numeric keypad (NEC PC98) */
116  PrevTrack = 0x90, /* Previous Track (KC_CIRCUMFLEX on Japanese keyboard) */
117  At = 0x91, /* (NEC PC98) */
118  Colon = 0x92, /* (NEC PC98) */
119  Underline = 0x93, /* (NEC PC98) */
120  Kanji = 0x94, /* (Japanese keyboard) */
121  Stop = 0x95, /* (NEC PC98) */
122  AX = 0x96, /* (Japan AX) */
123  Unlabeled = 0x97, /* (J3100) */
124  NextTrack = 0x99, /* Next Track */
125  NumpadEnter = 0x9C, /* Enter on numeric keypad */
126  RightControl = 0x9D,
127  Mute = 0xA0,
128  Calculator = 0xA1,
129  PlayPause = 0xA2, /* Play / Pause */
130  MediaStop = 0xA4, /* Media Stop */
131  VolumeDown = 0xAE, /* Volume - */
132  VolumeUp = 0xB0, /* Volume + */
133  WebHome = 0xB2, /* Web home */
134  NumpadComma = 0xB3, /* , on numeric keypad (NEC PC98) */
135  Divide = 0xB5, /* / on numeric keypad */
136  SysRq = 0xB7,
137  RightAlt = 0xB8, /* Right Alt */
138  Pause = 0xC5,
139  Home = 0xC7, /* Home on arrow keypad */
140  ArrowUp = 0xC8, /* UpArrow on arrow keypad */
141  PageUp = 0xC9, /* PgUp on arrow keypad */
142  ArrowLeft = 0xCB, /* LeftArrow on arrow keypad */
143  ArrowRight = 0xCD, /* RightArrow on arrow keypad */
144  End = 0xCF, /* End on arrow keypad */
145  ArrowDown = 0xD0, /* DownArrow on arrow keypad */
146  PageDown = 0xD1, /* PgDn on arrow keypad */
147  Insert = 0xD2, /* Insert on arrow keypad */
148  Delete = 0xD3, /* Delete on arrow keypad */
149  LeftWindows = 0xDB, /* Left Windows key */
150  RightWindow = 0xDC, /* Right Windows key */
151  RightWindows = 0xDC, /* Right Windows key - Correct spelling :) */
152  AppMenu = 0xDD, /* AppMenu key */
153  Power = 0xDE, /* System Power */
154  Sleep = 0xDF, /* System Sleep */
155  Wake = 0xE3, /* System Wake */
156  WebSearch = 0xE5,
157  WebFavorites = 0xE6,
158  WebRefresh = 0xE7,
159  WebStop = 0xE8,
160  WebForward = 0xE9,
161  WebBack = 0xEA,
162  MyComputer = 0xEB,
163  Mail = 0xEC,
164  MediaSelect = 0xED
165  };
166 
167  KeyCode(Enum _value = None) :
168  mValue(_value)
169  {
170  }
171 
172  friend bool operator < (KeyCode const& a, KeyCode const& b)
173  {
174  return (a.mValue < b.mValue);
175  }
176 
177  friend bool operator >= (KeyCode const& a, KeyCode const& b)
178  {
179  return !(a < b);
180  }
181 
182  friend bool operator > (KeyCode const& a, KeyCode const& b)
183  {
184  return (b < a);
185  }
186 
187  friend bool operator <= (KeyCode const& a, KeyCode const& b)
188  {
189  return !(a > b);
190  }
191 
192  friend bool operator == (KeyCode const& a, KeyCode const& b)
193  {
194  return !(a < b) && !(a > b);
195  }
196 
197  friend bool operator != (KeyCode const& a, KeyCode const& b)
198  {
199  return !(a == b);
200  }
201 
202  int getValue() const
203  {
204  return mValue;
205  }
206 
207  private:
208  Enum mValue;
209  };
210 
211 } // namespace MyGUI
212 
213 #endif // __MYGUI_KEY_CODE_H__