GG
Base.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /* GG is a GUI for SDL and OpenGL.
3  Copyright (C) 2003-2008 T. Zachary Laine
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public License
7  as published by the Free Software Foundation; either version 2.1
8  of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free
17  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18  02111-1307 USA
19 
20  If you do not wish to comply with the terms of the LGPL please
21  contact the author as other terms are available for a fee.
22 
23  Zach Laine
24  whatwasthataddress@gmail.com */
25 
29 #ifndef _GG_Base_h_
30 #define _GG_Base_h_
31 
32 #include <GG/Export.h>
33 
34 // include OpenGL headers
35 #if defined(__APPLE__) && defined(__MACH__)
36 # include <OpenGL/gl.h>
37 # include <OpenGL/glu.h>
38 #else
39 # include <GL/gl.h>
40 # include <GL/glu.h>
41 #endif
42 #include <GG/glext.h>
43 
44 // include useful boost headers
45 #include <boost/cstdint.hpp>
46 #include <boost/signal.hpp>
47 
48 // other headers
49 #include <GG/Enum.h>
50 #include <GG/Clr.h>
51 #include <GG/PtRect.h>
52 #include <GG/SignalsAndSlots.h>
53 
54 
57 namespace GG {
58 
59 extern GG_API const bool INSTRUMENT_ALL_SIGNALS;
60 
61 template <class FlagType>
62 class Flags;
63 class ModKey;
64 
65 template <class T>
66 class ScopedAssign
67 {
68 public:
69  ScopedAssign(T& t, T val) :
70  m_old_val(t),
71  m_t(t)
72  { m_t = val; }
73  ~ScopedAssign()
74  { m_t = m_old_val; }
75 
76 private:
77  T m_old_val;
78  T& m_t;
79 };
80 
83 enum WndRegion {
84  WR_NONE = -1,
85  WR_TOPLEFT = 0,
86  WR_TOP,
87  WR_TOPRIGHT,
88  WR_MIDLEFT,
89  WR_MIDDLE,
90  WR_MIDRIGHT,
91  WR_BOTTOMLEFT,
92  WR_BOTTOM,
93  WR_BOTTOMRIGHT
94 };
95 
100 };
101 
109 
113 
117 };
118 
121  FLAT,
122  RAISED,
123  GROOVED
124 };
125 
131 
135 };
136 
137 
140 enum Key {
141  // The keyboard symbols have been cleverly chosen to map to ASCII
142  GGK_UNKNOWN = 0,
143  GGK_FIRST = 0,
144  GGK_BACKSPACE = 8,
145  GGK_TAB = 9,
146  GGK_CLEAR = 12,
147  GGK_RETURN = 13,
148  GGK_PAUSE = 19,
149  GGK_ESCAPE = 27,
150  GGK_SPACE = 32,
151  GGK_EXCLAIM = 33,
152  GGK_QUOTEDBL = 34,
153  GGK_HASH = 35,
154  GGK_DOLLAR = 36,
155  GGK_AMPERSAND = 38,
156  GGK_QUOTE = 39,
157  GGK_LEFTPAREN = 40,
158  GGK_RIGHTPAREN = 41,
159  GGK_ASTERISK = 42,
160  GGK_PLUS = 43,
161  GGK_COMMA = 44,
162  GGK_MINUS = 45,
163  GGK_PERIOD = 46,
164  GGK_SLASH = 47,
165  GGK_0 = 48,
166  GGK_1 = 49,
167  GGK_2 = 50,
168  GGK_3 = 51,
169  GGK_4 = 52,
170  GGK_5 = 53,
171  GGK_6 = 54,
172  GGK_7 = 55,
173  GGK_8 = 56,
174  GGK_9 = 57,
175  GGK_COLON = 58,
176  GGK_SEMICOLON = 59,
177  GGK_LESS = 60,
178  GGK_EQUALS = 61,
179  GGK_GREATER = 62,
180  GGK_QUESTION = 63,
181  GGK_AT = 64,
182  GGK_A = 65,
183  GGK_B = 66,
184  GGK_C = 67,
185  GGK_D = 68,
186  GGK_E = 69,
187  GGK_F = 70,
188  GGK_G = 71,
189  GGK_H = 72,
190  GGK_I = 73,
191  GGK_J = 74,
192  GGK_K = 75,
193  GGK_L = 76,
194  GGK_M = 77,
195  GGK_N = 78,
196  GGK_O = 79,
197  GGK_P = 80,
198  GGK_Q = 81,
199  GGK_R = 82,
200  GGK_S = 83,
201  GGK_T = 84,
202  GGK_U = 85,
203  GGK_V = 86,
204  GGK_W = 87,
205  GGK_X = 88,
206  GGK_Y = 89,
207  GGK_Z = 90,
208  GGK_LEFTBRACKET = 91,
209  GGK_BACKSLASH = 92,
210  GGK_RIGHTBRACKET = 93,
211  GGK_CARET = 94,
212  GGK_UNDERSCORE = 95,
213  GGK_BACKQUOTE = 96,
214  GGK_a = 97,
215  GGK_b = 98,
216  GGK_c = 99,
217  GGK_d = 100,
218  GGK_e = 101,
219  GGK_f = 102,
220  GGK_g = 103,
221  GGK_h = 104,
222  GGK_i = 105,
223  GGK_j = 106,
224  GGK_k = 107,
225  GGK_l = 108,
226  GGK_m = 109,
227  GGK_n = 110,
228  GGK_o = 111,
229  GGK_p = 112,
230  GGK_q = 113,
231  GGK_r = 114,
232  GGK_s = 115,
233  GGK_t = 116,
234  GGK_u = 117,
235  GGK_v = 118,
236  GGK_w = 119,
237  GGK_x = 120,
238  GGK_y = 121,
239  GGK_z = 122,
240  GGK_DELETE = 127,
241  // End of ASCII mapped keysyms
242 
243  // International keyboard syms
244  GGK_WORLD_0 = 160, // 0xA0
245  GGK_WORLD_1 = 161,
246  GGK_WORLD_2 = 162,
247  GGK_WORLD_3 = 163,
248  GGK_WORLD_4 = 164,
249  GGK_WORLD_5 = 165,
250  GGK_WORLD_6 = 166,
251  GGK_WORLD_7 = 167,
252  GGK_WORLD_8 = 168,
253  GGK_WORLD_9 = 169,
254  GGK_WORLD_10 = 170,
255  GGK_WORLD_11 = 171,
256  GGK_WORLD_12 = 172,
257  GGK_WORLD_13 = 173,
258  GGK_WORLD_14 = 174,
259  GGK_WORLD_15 = 175,
260  GGK_WORLD_16 = 176,
261  GGK_WORLD_17 = 177,
262  GGK_WORLD_18 = 178,
263  GGK_WORLD_19 = 179,
264  GGK_WORLD_20 = 180,
265  GGK_WORLD_21 = 181,
266  GGK_WORLD_22 = 182,
267  GGK_WORLD_23 = 183,
268  GGK_WORLD_24 = 184,
269  GGK_WORLD_25 = 185,
270  GGK_WORLD_26 = 186,
271  GGK_WORLD_27 = 187,
272  GGK_WORLD_28 = 188,
273  GGK_WORLD_29 = 189,
274  GGK_WORLD_30 = 190,
275  GGK_WORLD_31 = 191,
276  GGK_WORLD_32 = 192,
277  GGK_WORLD_33 = 193,
278  GGK_WORLD_34 = 194,
279  GGK_WORLD_35 = 195,
280  GGK_WORLD_36 = 196,
281  GGK_WORLD_37 = 197,
282  GGK_WORLD_38 = 198,
283  GGK_WORLD_39 = 199,
284  GGK_WORLD_40 = 200,
285  GGK_WORLD_41 = 201,
286  GGK_WORLD_42 = 202,
287  GGK_WORLD_43 = 203,
288  GGK_WORLD_44 = 204,
289  GGK_WORLD_45 = 205,
290  GGK_WORLD_46 = 206,
291  GGK_WORLD_47 = 207,
292  GGK_WORLD_48 = 208,
293  GGK_WORLD_49 = 209,
294  GGK_WORLD_50 = 210,
295  GGK_WORLD_51 = 211,
296  GGK_WORLD_52 = 212,
297  GGK_WORLD_53 = 213,
298  GGK_WORLD_54 = 214,
299  GGK_WORLD_55 = 215,
300  GGK_WORLD_56 = 216,
301  GGK_WORLD_57 = 217,
302  GGK_WORLD_58 = 218,
303  GGK_WORLD_59 = 219,
304  GGK_WORLD_60 = 220,
305  GGK_WORLD_61 = 221,
306  GGK_WORLD_62 = 222,
307  GGK_WORLD_63 = 223,
308  GGK_WORLD_64 = 224,
309  GGK_WORLD_65 = 225,
310  GGK_WORLD_66 = 226,
311  GGK_WORLD_67 = 227,
312  GGK_WORLD_68 = 228,
313  GGK_WORLD_69 = 229,
314  GGK_WORLD_70 = 230,
315  GGK_WORLD_71 = 231,
316  GGK_WORLD_72 = 232,
317  GGK_WORLD_73 = 233,
318  GGK_WORLD_74 = 234,
319  GGK_WORLD_75 = 235,
320  GGK_WORLD_76 = 236,
321  GGK_WORLD_77 = 237,
322  GGK_WORLD_78 = 238,
323  GGK_WORLD_79 = 239,
324  GGK_WORLD_80 = 240,
325  GGK_WORLD_81 = 241,
326  GGK_WORLD_82 = 242,
327  GGK_WORLD_83 = 243,
328  GGK_WORLD_84 = 244,
329  GGK_WORLD_85 = 245,
330  GGK_WORLD_86 = 246,
331  GGK_WORLD_87 = 247,
332  GGK_WORLD_88 = 248,
333  GGK_WORLD_89 = 249,
334  GGK_WORLD_90 = 250,
335  GGK_WORLD_91 = 251,
336  GGK_WORLD_92 = 252,
337  GGK_WORLD_93 = 253,
338  GGK_WORLD_94 = 254,
339  GGK_WORLD_95 = 255, // 0xFF
340 
341  // Numeric keypad
342  GGK_KP0 = 256,
343  GGK_KP1 = 257,
344  GGK_KP2 = 258,
345  GGK_KP3 = 259,
346  GGK_KP4 = 260,
347  GGK_KP5 = 261,
348  GGK_KP6 = 262,
349  GGK_KP7 = 263,
350  GGK_KP8 = 264,
351  GGK_KP9 = 265,
352  GGK_KP_PERIOD = 266,
353  GGK_KP_DIVIDE = 267,
354  GGK_KP_MULTIPLY = 268,
355  GGK_KP_MINUS = 269,
356  GGK_KP_PLUS = 270,
357  GGK_KP_ENTER = 271,
358  GGK_KP_EQUALS = 272,
359 
360  // Arrows + Home/End pad
361  GGK_UP = 273,
362  GGK_DOWN = 274,
363  GGK_RIGHT = 275,
364  GGK_LEFT = 276,
365  GGK_INSERT = 277,
366  GGK_HOME = 278,
367  GGK_END = 279,
368  GGK_PAGEUP = 280,
369  GGK_PAGEDOWN = 281,
370 
371  // Function keys
372  GGK_F1 = 282,
373  GGK_F2 = 283,
374  GGK_F3 = 284,
375  GGK_F4 = 285,
376  GGK_F5 = 286,
377  GGK_F6 = 287,
378  GGK_F7 = 288,
379  GGK_F8 = 289,
380  GGK_F9 = 290,
381  GGK_F10 = 291,
382  GGK_F11 = 292,
383  GGK_F12 = 293,
384  GGK_F13 = 294,
385  GGK_F14 = 295,
386  GGK_F15 = 296,
387 
388  // Key state modifier keys
389  GGK_NUMLOCK = 300,
390  GGK_CAPSLOCK = 301,
391  GGK_SCROLLOCK = 302,
392  GGK_RSHIFT = 303,
393  GGK_LSHIFT = 304,
394  GGK_RCTRL = 305,
395  GGK_LCTRL = 306,
396  GGK_RALT = 307,
397  GGK_LALT = 308,
398  GGK_RMETA = 309,
399  GGK_LMETA = 310,
400  GGK_LSUPER = 311, // Left "Windows" key
401  GGK_RSUPER = 312, // Right "Windows" key
402  GGK_MODE = 313, // "Alt Gr" key
403  GGK_COMPOSE = 314, // Multi-key compose key
404 
405  // Miscellaneous function keys
406  GGK_HELP = 315,
407  GGK_PRINT = 316,
408  GGK_SYSREQ = 317,
409  GGK_BREAK = 318,
410  GGK_MENU = 319,
411  GGK_POWER = 320, // Power Macintosh power key
412  GGK_EURO = 321, // Some european keyboards
413  GGK_UNDO = 322, // Atari keyboard has Undo
414 
415  // Add any other keys here
416 
417  GGK_LAST
418 };
419 
425 void KeypadKeyToPrintable(Key& key, Flags<ModKey> mod_keys);
426 
427 
429 // EnumMaps and stream operators
431 
432 // define EnumMap and stream operators for Slider::LineStyleType
434  GG_ENUM_MAP_INSERT(FLAT)
435  GG_ENUM_MAP_INSERT(RAISED)
436  GG_ENUM_MAP_INSERT(GROOVED)
438 
441 
442 // define EnumMap and stream operators for Orientation
447 
450 
451 // define EnumMap and stream operators for StateButtonStyle
461 
464 
465 // define EnumMap and stream operators for TabBarStyle
470 
473 
474 // define EnumMap and stream operators for Mod
476  GG_ENUM_MAP_INSERT(GGK_UNKNOWN)
477  GG_ENUM_MAP_INSERT(GGK_FIRST)
478  GG_ENUM_MAP_INSERT(GGK_BACKSPACE)
479  GG_ENUM_MAP_INSERT(GGK_TAB)
480  GG_ENUM_MAP_INSERT(GGK_CLEAR)
481  GG_ENUM_MAP_INSERT(GGK_RETURN)
482  GG_ENUM_MAP_INSERT(GGK_PAUSE)
483  GG_ENUM_MAP_INSERT(GGK_ESCAPE)
484  GG_ENUM_MAP_INSERT(GGK_SPACE)
485  GG_ENUM_MAP_INSERT(GGK_EXCLAIM)
486  GG_ENUM_MAP_INSERT(GGK_QUOTEDBL)
487  GG_ENUM_MAP_INSERT(GGK_HASH)
488  GG_ENUM_MAP_INSERT(GGK_DOLLAR)
489  GG_ENUM_MAP_INSERT(GGK_AMPERSAND)
490  GG_ENUM_MAP_INSERT(GGK_QUOTE)
491  GG_ENUM_MAP_INSERT(GGK_LEFTPAREN)
492  GG_ENUM_MAP_INSERT(GGK_RIGHTPAREN)
493  GG_ENUM_MAP_INSERT(GGK_ASTERISK)
494  GG_ENUM_MAP_INSERT(GGK_PLUS)
495  GG_ENUM_MAP_INSERT(GGK_COMMA)
496  GG_ENUM_MAP_INSERT(GGK_MINUS)
497  GG_ENUM_MAP_INSERT(GGK_PERIOD)
498  GG_ENUM_MAP_INSERT(GGK_SLASH)
499  GG_ENUM_MAP_INSERT(GGK_0)
500  GG_ENUM_MAP_INSERT(GGK_1)
501  GG_ENUM_MAP_INSERT(GGK_2)
502  GG_ENUM_MAP_INSERT(GGK_3)
503  GG_ENUM_MAP_INSERT(GGK_4)
504  GG_ENUM_MAP_INSERT(GGK_5)
505  GG_ENUM_MAP_INSERT(GGK_6)
506  GG_ENUM_MAP_INSERT(GGK_7)
507  GG_ENUM_MAP_INSERT(GGK_8)
508  GG_ENUM_MAP_INSERT(GGK_9)
509  GG_ENUM_MAP_INSERT(GGK_COLON)
510  GG_ENUM_MAP_INSERT(GGK_SEMICOLON)
511  GG_ENUM_MAP_INSERT(GGK_LESS)
512  GG_ENUM_MAP_INSERT(GGK_EQUALS)
513  GG_ENUM_MAP_INSERT(GGK_GREATER)
514  GG_ENUM_MAP_INSERT(GGK_QUESTION)
515  GG_ENUM_MAP_INSERT(GGK_AT)
516  GG_ENUM_MAP_INSERT(GGK_A)
517  GG_ENUM_MAP_INSERT(GGK_B)
518  GG_ENUM_MAP_INSERT(GGK_C)
519  GG_ENUM_MAP_INSERT(GGK_D)
520  GG_ENUM_MAP_INSERT(GGK_E)
521  GG_ENUM_MAP_INSERT(GGK_F)
522  GG_ENUM_MAP_INSERT(GGK_G)
523  GG_ENUM_MAP_INSERT(GGK_H)
524  GG_ENUM_MAP_INSERT(GGK_I)
525  GG_ENUM_MAP_INSERT(GGK_J)
526  GG_ENUM_MAP_INSERT(GGK_K)
527  GG_ENUM_MAP_INSERT(GGK_L)
528  GG_ENUM_MAP_INSERT(GGK_M)
529  GG_ENUM_MAP_INSERT(GGK_N)
530  GG_ENUM_MAP_INSERT(GGK_O)
531  GG_ENUM_MAP_INSERT(GGK_P)
532  GG_ENUM_MAP_INSERT(GGK_Q)
533  GG_ENUM_MAP_INSERT(GGK_R)
534  GG_ENUM_MAP_INSERT(GGK_S)
535  GG_ENUM_MAP_INSERT(GGK_T)
536  GG_ENUM_MAP_INSERT(GGK_U)
537  GG_ENUM_MAP_INSERT(GGK_V)
538  GG_ENUM_MAP_INSERT(GGK_W)
539  GG_ENUM_MAP_INSERT(GGK_X)
540  GG_ENUM_MAP_INSERT(GGK_Y)
541  GG_ENUM_MAP_INSERT(GGK_Z)
542  GG_ENUM_MAP_INSERT(GGK_LEFTBRACKET)
543  GG_ENUM_MAP_INSERT(GGK_BACKSLASH)
544  GG_ENUM_MAP_INSERT(GGK_RIGHTBRACKET)
545  GG_ENUM_MAP_INSERT(GGK_CARET)
546  GG_ENUM_MAP_INSERT(GGK_UNDERSCORE)
547  GG_ENUM_MAP_INSERT(GGK_BACKQUOTE)
548  GG_ENUM_MAP_INSERT(GGK_a)
549  GG_ENUM_MAP_INSERT(GGK_b)
550  GG_ENUM_MAP_INSERT(GGK_c)
551  GG_ENUM_MAP_INSERT(GGK_d)
552  GG_ENUM_MAP_INSERT(GGK_e)
553  GG_ENUM_MAP_INSERT(GGK_f)
554  GG_ENUM_MAP_INSERT(GGK_g)
555  GG_ENUM_MAP_INSERT(GGK_h)
556  GG_ENUM_MAP_INSERT(GGK_i)
557  GG_ENUM_MAP_INSERT(GGK_j)
558  GG_ENUM_MAP_INSERT(GGK_k)
559  GG_ENUM_MAP_INSERT(GGK_l)
560  GG_ENUM_MAP_INSERT(GGK_m)
561  GG_ENUM_MAP_INSERT(GGK_n)
562  GG_ENUM_MAP_INSERT(GGK_o)
563  GG_ENUM_MAP_INSERT(GGK_p)
564  GG_ENUM_MAP_INSERT(GGK_q)
565  GG_ENUM_MAP_INSERT(GGK_r)
566  GG_ENUM_MAP_INSERT(GGK_s)
567  GG_ENUM_MAP_INSERT(GGK_t)
568  GG_ENUM_MAP_INSERT(GGK_u)
569  GG_ENUM_MAP_INSERT(GGK_v)
570  GG_ENUM_MAP_INSERT(GGK_w)
571  GG_ENUM_MAP_INSERT(GGK_x)
572  GG_ENUM_MAP_INSERT(GGK_y)
573  GG_ENUM_MAP_INSERT(GGK_z)
574  GG_ENUM_MAP_INSERT(GGK_DELETE)
575 
576  GG_ENUM_MAP_INSERT(GGK_WORLD_0)
577  GG_ENUM_MAP_INSERT(GGK_WORLD_1)
578  GG_ENUM_MAP_INSERT(GGK_WORLD_2)
579  GG_ENUM_MAP_INSERT(GGK_WORLD_3)
580  GG_ENUM_MAP_INSERT(GGK_WORLD_4)
581  GG_ENUM_MAP_INSERT(GGK_WORLD_5)
582  GG_ENUM_MAP_INSERT(GGK_WORLD_6)
583  GG_ENUM_MAP_INSERT(GGK_WORLD_7)
584  GG_ENUM_MAP_INSERT(GGK_WORLD_8)
585  GG_ENUM_MAP_INSERT(GGK_WORLD_9)
586  GG_ENUM_MAP_INSERT(GGK_WORLD_10)
587  GG_ENUM_MAP_INSERT(GGK_WORLD_11)
588  GG_ENUM_MAP_INSERT(GGK_WORLD_12)
589  GG_ENUM_MAP_INSERT(GGK_WORLD_13)
590  GG_ENUM_MAP_INSERT(GGK_WORLD_14)
591  GG_ENUM_MAP_INSERT(GGK_WORLD_15)
592  GG_ENUM_MAP_INSERT(GGK_WORLD_16)
593  GG_ENUM_MAP_INSERT(GGK_WORLD_17)
594  GG_ENUM_MAP_INSERT(GGK_WORLD_18)
595  GG_ENUM_MAP_INSERT(GGK_WORLD_19)
596  GG_ENUM_MAP_INSERT(GGK_WORLD_20)
597  GG_ENUM_MAP_INSERT(GGK_WORLD_21)
598  GG_ENUM_MAP_INSERT(GGK_WORLD_22)
599  GG_ENUM_MAP_INSERT(GGK_WORLD_23)
600  GG_ENUM_MAP_INSERT(GGK_WORLD_24)
601  GG_ENUM_MAP_INSERT(GGK_WORLD_25)
602  GG_ENUM_MAP_INSERT(GGK_WORLD_26)
603  GG_ENUM_MAP_INSERT(GGK_WORLD_27)
604  GG_ENUM_MAP_INSERT(GGK_WORLD_28)
605  GG_ENUM_MAP_INSERT(GGK_WORLD_29)
606  GG_ENUM_MAP_INSERT(GGK_WORLD_30)
607  GG_ENUM_MAP_INSERT(GGK_WORLD_31)
608  GG_ENUM_MAP_INSERT(GGK_WORLD_32)
609  GG_ENUM_MAP_INSERT(GGK_WORLD_33)
610  GG_ENUM_MAP_INSERT(GGK_WORLD_34)
611  GG_ENUM_MAP_INSERT(GGK_WORLD_35)
612  GG_ENUM_MAP_INSERT(GGK_WORLD_36)
613  GG_ENUM_MAP_INSERT(GGK_WORLD_37)
614  GG_ENUM_MAP_INSERT(GGK_WORLD_38)
615  GG_ENUM_MAP_INSERT(GGK_WORLD_39)
616  GG_ENUM_MAP_INSERT(GGK_WORLD_40)
617  GG_ENUM_MAP_INSERT(GGK_WORLD_41)
618  GG_ENUM_MAP_INSERT(GGK_WORLD_42)
619  GG_ENUM_MAP_INSERT(GGK_WORLD_43)
620  GG_ENUM_MAP_INSERT(GGK_WORLD_44)
621  GG_ENUM_MAP_INSERT(GGK_WORLD_45)
622  GG_ENUM_MAP_INSERT(GGK_WORLD_46)
623  GG_ENUM_MAP_INSERT(GGK_WORLD_47)
624  GG_ENUM_MAP_INSERT(GGK_WORLD_48)
625  GG_ENUM_MAP_INSERT(GGK_WORLD_49)
626  GG_ENUM_MAP_INSERT(GGK_WORLD_50)
627  GG_ENUM_MAP_INSERT(GGK_WORLD_51)
628  GG_ENUM_MAP_INSERT(GGK_WORLD_52)
629  GG_ENUM_MAP_INSERT(GGK_WORLD_53)
630  GG_ENUM_MAP_INSERT(GGK_WORLD_54)
631  GG_ENUM_MAP_INSERT(GGK_WORLD_55)
632  GG_ENUM_MAP_INSERT(GGK_WORLD_56)
633  GG_ENUM_MAP_INSERT(GGK_WORLD_57)
634  GG_ENUM_MAP_INSERT(GGK_WORLD_58)
635  GG_ENUM_MAP_INSERT(GGK_WORLD_59)
636  GG_ENUM_MAP_INSERT(GGK_WORLD_60)
637  GG_ENUM_MAP_INSERT(GGK_WORLD_61)
638  GG_ENUM_MAP_INSERT(GGK_WORLD_62)
639  GG_ENUM_MAP_INSERT(GGK_WORLD_63)
640  GG_ENUM_MAP_INSERT(GGK_WORLD_64)
641  GG_ENUM_MAP_INSERT(GGK_WORLD_65)
642  GG_ENUM_MAP_INSERT(GGK_WORLD_66)
643  GG_ENUM_MAP_INSERT(GGK_WORLD_67)
644  GG_ENUM_MAP_INSERT(GGK_WORLD_68)
645  GG_ENUM_MAP_INSERT(GGK_WORLD_69)
646  GG_ENUM_MAP_INSERT(GGK_WORLD_70)
647  GG_ENUM_MAP_INSERT(GGK_WORLD_71)
648  GG_ENUM_MAP_INSERT(GGK_WORLD_72)
649  GG_ENUM_MAP_INSERT(GGK_WORLD_73)
650  GG_ENUM_MAP_INSERT(GGK_WORLD_74)
651  GG_ENUM_MAP_INSERT(GGK_WORLD_75)
652  GG_ENUM_MAP_INSERT(GGK_WORLD_76)
653  GG_ENUM_MAP_INSERT(GGK_WORLD_77)
654  GG_ENUM_MAP_INSERT(GGK_WORLD_78)
655  GG_ENUM_MAP_INSERT(GGK_WORLD_79)
656  GG_ENUM_MAP_INSERT(GGK_WORLD_80)
657  GG_ENUM_MAP_INSERT(GGK_WORLD_81)
658  GG_ENUM_MAP_INSERT(GGK_WORLD_82)
659  GG_ENUM_MAP_INSERT(GGK_WORLD_83)
660  GG_ENUM_MAP_INSERT(GGK_WORLD_84)
661  GG_ENUM_MAP_INSERT(GGK_WORLD_85)
662  GG_ENUM_MAP_INSERT(GGK_WORLD_86)
663  GG_ENUM_MAP_INSERT(GGK_WORLD_87)
664  GG_ENUM_MAP_INSERT(GGK_WORLD_88)
665  GG_ENUM_MAP_INSERT(GGK_WORLD_89)
666  GG_ENUM_MAP_INSERT(GGK_WORLD_90)
667  GG_ENUM_MAP_INSERT(GGK_WORLD_91)
668  GG_ENUM_MAP_INSERT(GGK_WORLD_92)
669  GG_ENUM_MAP_INSERT(GGK_WORLD_93)
670  GG_ENUM_MAP_INSERT(GGK_WORLD_94)
671  GG_ENUM_MAP_INSERT(GGK_WORLD_95)
672 
673  GG_ENUM_MAP_INSERT(GGK_KP0)
674  GG_ENUM_MAP_INSERT(GGK_KP1)
675  GG_ENUM_MAP_INSERT(GGK_KP2)
676  GG_ENUM_MAP_INSERT(GGK_KP3)
677  GG_ENUM_MAP_INSERT(GGK_KP4)
678  GG_ENUM_MAP_INSERT(GGK_KP5)
679  GG_ENUM_MAP_INSERT(GGK_KP6)
680  GG_ENUM_MAP_INSERT(GGK_KP7)
681  GG_ENUM_MAP_INSERT(GGK_KP8)
682  GG_ENUM_MAP_INSERT(GGK_KP9)
683  GG_ENUM_MAP_INSERT(GGK_KP_PERIOD)
684  GG_ENUM_MAP_INSERT(GGK_KP_DIVIDE)
685  GG_ENUM_MAP_INSERT(GGK_KP_MULTIPLY)
686  GG_ENUM_MAP_INSERT(GGK_KP_MINUS)
687  GG_ENUM_MAP_INSERT(GGK_KP_PLUS)
688  GG_ENUM_MAP_INSERT(GGK_KP_ENTER)
689  GG_ENUM_MAP_INSERT(GGK_KP_EQUALS)
690 
691  GG_ENUM_MAP_INSERT(GGK_UP)
692  GG_ENUM_MAP_INSERT(GGK_DOWN)
693  GG_ENUM_MAP_INSERT(GGK_RIGHT)
694  GG_ENUM_MAP_INSERT(GGK_LEFT)
695  GG_ENUM_MAP_INSERT(GGK_INSERT)
696  GG_ENUM_MAP_INSERT(GGK_HOME)
697  GG_ENUM_MAP_INSERT(GGK_END)
698  GG_ENUM_MAP_INSERT(GGK_PAGEUP)
699  GG_ENUM_MAP_INSERT(GGK_PAGEDOWN)
700 
701  GG_ENUM_MAP_INSERT(GGK_F1)
702  GG_ENUM_MAP_INSERT(GGK_F2)
703  GG_ENUM_MAP_INSERT(GGK_F3)
704  GG_ENUM_MAP_INSERT(GGK_F4)
705  GG_ENUM_MAP_INSERT(GGK_F5)
706  GG_ENUM_MAP_INSERT(GGK_F6)
707  GG_ENUM_MAP_INSERT(GGK_F7)
708  GG_ENUM_MAP_INSERT(GGK_F8)
709  GG_ENUM_MAP_INSERT(GGK_F9)
710  GG_ENUM_MAP_INSERT(GGK_F10)
711  GG_ENUM_MAP_INSERT(GGK_F11)
712  GG_ENUM_MAP_INSERT(GGK_F12)
713  GG_ENUM_MAP_INSERT(GGK_F13)
714  GG_ENUM_MAP_INSERT(GGK_F14)
715  GG_ENUM_MAP_INSERT(GGK_F15)
716 
717  GG_ENUM_MAP_INSERT(GGK_NUMLOCK)
718  GG_ENUM_MAP_INSERT(GGK_CAPSLOCK)
719  GG_ENUM_MAP_INSERT(GGK_SCROLLOCK)
720  GG_ENUM_MAP_INSERT(GGK_RSHIFT)
721  GG_ENUM_MAP_INSERT(GGK_LSHIFT)
722  GG_ENUM_MAP_INSERT(GGK_RCTRL)
723  GG_ENUM_MAP_INSERT(GGK_LCTRL)
724  GG_ENUM_MAP_INSERT(GGK_RALT)
725  GG_ENUM_MAP_INSERT(GGK_LALT)
726  GG_ENUM_MAP_INSERT(GGK_RMETA)
727  GG_ENUM_MAP_INSERT(GGK_LMETA)
728  GG_ENUM_MAP_INSERT(GGK_LSUPER)
729  GG_ENUM_MAP_INSERT(GGK_RSUPER)
730  GG_ENUM_MAP_INSERT(GGK_MODE)
731  GG_ENUM_MAP_INSERT(GGK_COMPOSE)
732 
733  GG_ENUM_MAP_INSERT(GGK_HELP)
734  GG_ENUM_MAP_INSERT(GGK_PRINT)
735  GG_ENUM_MAP_INSERT(GGK_SYSREQ)
736  GG_ENUM_MAP_INSERT(GGK_BREAK)
737  GG_ENUM_MAP_INSERT(GGK_MENU)
738  GG_ENUM_MAP_INSERT(GGK_POWER)
739  GG_ENUM_MAP_INSERT(GGK_EURO)
740  GG_ENUM_MAP_INSERT(GGK_UNDO)
741 
742  GG_ENUM_MAP_INSERT(GGK_LAST)
744 
747 
748 } // namespace GG
749 
750 #endif
751