Base.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /* GG is a GUI for SDL and OpenGL.
00003    Copyright (C) 2003-2008 T. Zachary Laine
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public License
00007    as published by the Free Software Foundation; either version 2.1
00008    of the License, or (at your option) any later version.
00009    
00010    This library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014     
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA
00019 
00020    If you do not wish to comply with the terms of the LGPL please
00021    contact the author as other terms are available for a fee.
00022     
00023    Zach Laine
00024    whatwasthataddress@gmail.com */
00025 
00029 #ifndef _GG_Base_h_
00030 #define _GG_Base_h_
00031 
00032 #ifndef GG_API
00033 # ifdef _MSC_VER
00034 #  define WIN32_LEAN_AND_MEAN
00035 #  include <windows.h>
00036 #  undef min
00037 #  undef max
00038 #  ifdef GiGi_EXPORTS
00039 #   define GG_API __declspec(dllexport)
00040 #  else
00041 #   define GG_API __declspec(dllimport)
00042 #  endif
00043 # else
00044 #  define GG_API
00045 # endif
00046 #endif
00047 
00048 // include OpenGL headers
00049 #if defined(__APPLE__) && defined(__MACH__)
00050 # include <OpenGL/gl.h>
00051 # include <OpenGL/glu.h>
00052 #else
00053 # include <GL/gl.h>
00054 # include <GL/glu.h>
00055 #endif
00056 #include <GG/glext.h>
00057 
00058 // include useful boost headers
00059 #include <boost/cstdint.hpp>
00060 #include <boost/signal.hpp>
00061 
00062 // other headers
00063 #include <GG/Enum.h>
00064 #include <GG/Clr.h>
00065 #include <GG/PtRect.h>
00066 #include <GG/SignalsAndSlots.h>
00067 
00068 
00071 namespace GG {
00072 
00073 extern GG_API const bool INSTRUMENT_ALL_SIGNALS;
00074 
00075 template <class FlagType>
00076 class Flags;
00077 class ModKey;
00078 
00079 template <class T>
00080 class ScopedAssign
00081 {
00082 public:
00083     ScopedAssign(T& t, T val) :
00084         m_old_val(t),
00085         m_t(t)
00086         { m_t = val; }
00087     ~ScopedAssign()
00088         { m_t = m_old_val; }
00089 
00090 private:
00091     T m_old_val;
00092     T& m_t;
00093 };
00094 
00097 enum WndRegion {
00098     WR_NONE = -1, 
00099     WR_TOPLEFT = 0, 
00100     WR_TOP, 
00101     WR_TOPRIGHT, 
00102     WR_MIDLEFT, 
00103     WR_MIDDLE, 
00104     WR_MIDRIGHT, 
00105     WR_BOTTOMLEFT, 
00106     WR_BOTTOM, 
00107     WR_BOTTOMRIGHT
00108 };
00109 
00111 enum Orientation {
00112     VERTICAL,  
00113     HORIZONTAL 
00114 };
00115 
00117 enum StateButtonStyle {
00118     SBSTYLE_3D_XBOX,         
00119     SBSTYLE_3D_CHECKBOX,     
00120     SBSTYLE_3D_RADIO,        
00121     SBSTYLE_3D_BUTTON,       
00122     SBSTYLE_3D_ROUND_BUTTON, 
00123 
00126     SBSTYLE_3D_TOP_ATTACHED_TAB,
00127 
00130     SBSTYLE_3D_TOP_DETACHED_TAB
00131 };
00132 
00134 enum SliderLineStyle {
00135     FLAT,
00136     RAISED,
00137     GROOVED
00138 };
00139 
00141 enum TabBarStyle {
00144     TAB_BAR_ATTACHED,
00145 
00148     TAB_BAR_DETACHED
00149 };
00150 
00151 
00154 enum Key {
00155     // The keyboard symbols have been cleverly chosen to map to ASCII
00156     GGK_UNKNOWN      = 0,
00157     GGK_FIRST        = 0,
00158     GGK_BACKSPACE    = 8,
00159     GGK_TAB          = 9,
00160     GGK_CLEAR        = 12,
00161     GGK_RETURN       = 13,
00162     GGK_PAUSE        = 19,
00163     GGK_ESCAPE       = 27,
00164     GGK_SPACE        = 32,
00165     GGK_EXCLAIM      = 33,
00166     GGK_QUOTEDBL     = 34,
00167     GGK_HASH         = 35,
00168     GGK_DOLLAR       = 36,
00169     GGK_AMPERSAND    = 38,
00170     GGK_QUOTE        = 39,
00171     GGK_LEFTPAREN    = 40,
00172     GGK_RIGHTPAREN   = 41,
00173     GGK_ASTERISK     = 42,
00174     GGK_PLUS         = 43,
00175     GGK_COMMA        = 44,
00176     GGK_MINUS        = 45,
00177     GGK_PERIOD       = 46,
00178     GGK_SLASH        = 47,
00179     GGK_0            = 48,
00180     GGK_1            = 49,
00181     GGK_2            = 50,
00182     GGK_3            = 51,
00183     GGK_4            = 52,
00184     GGK_5            = 53,
00185     GGK_6            = 54,
00186     GGK_7            = 55,
00187     GGK_8            = 56,
00188     GGK_9            = 57,
00189     GGK_COLON        = 58,
00190     GGK_SEMICOLON    = 59,
00191     GGK_LESS         = 60,
00192     GGK_EQUALS       = 61,
00193     GGK_GREATER      = 62,
00194     GGK_QUESTION     = 63,
00195     GGK_AT           = 64,
00196     GGK_A            = 65,
00197     GGK_B            = 66,
00198     GGK_C            = 67,
00199     GGK_D            = 68,
00200     GGK_E            = 69,
00201     GGK_F            = 70,
00202     GGK_G            = 71,
00203     GGK_H            = 72,
00204     GGK_I            = 73,
00205     GGK_J            = 74,
00206     GGK_K            = 75,
00207     GGK_L            = 76,
00208     GGK_M            = 77,
00209     GGK_N            = 78,
00210     GGK_O            = 79,
00211     GGK_P            = 80,
00212     GGK_Q            = 81,
00213     GGK_R            = 82,
00214     GGK_S            = 83,
00215     GGK_T            = 84,
00216     GGK_U            = 85,
00217     GGK_V            = 86,
00218     GGK_W            = 87,
00219     GGK_X            = 88,
00220     GGK_Y            = 89,
00221     GGK_Z            = 90,
00222     GGK_LEFTBRACKET  = 91,
00223     GGK_BACKSLASH    = 92,
00224     GGK_RIGHTBRACKET = 93,
00225     GGK_CARET        = 94,
00226     GGK_UNDERSCORE   = 95,
00227     GGK_BACKQUOTE    = 96,
00228     GGK_a            = 97,
00229     GGK_b            = 98,
00230     GGK_c            = 99,
00231     GGK_d            = 100,
00232     GGK_e            = 101,
00233     GGK_f            = 102,
00234     GGK_g            = 103,
00235     GGK_h            = 104,
00236     GGK_i            = 105,
00237     GGK_j            = 106,
00238     GGK_k            = 107,
00239     GGK_l            = 108,
00240     GGK_m            = 109,
00241     GGK_n            = 110,
00242     GGK_o            = 111,
00243     GGK_p            = 112,
00244     GGK_q            = 113,
00245     GGK_r            = 114,
00246     GGK_s            = 115,
00247     GGK_t            = 116,
00248     GGK_u            = 117,
00249     GGK_v            = 118,
00250     GGK_w            = 119,
00251     GGK_x            = 120,
00252     GGK_y            = 121,
00253     GGK_z            = 122,
00254     GGK_DELETE       = 127,
00255     // End of ASCII mapped keysyms
00256 
00257     // International keyboard syms
00258     GGK_WORLD_0      = 160,      // 0xA0
00259     GGK_WORLD_1      = 161,
00260     GGK_WORLD_2      = 162,
00261     GGK_WORLD_3      = 163,
00262     GGK_WORLD_4      = 164,
00263     GGK_WORLD_5      = 165,
00264     GGK_WORLD_6      = 166,
00265     GGK_WORLD_7      = 167,
00266     GGK_WORLD_8      = 168,
00267     GGK_WORLD_9      = 169,
00268     GGK_WORLD_10     = 170,
00269     GGK_WORLD_11     = 171,
00270     GGK_WORLD_12     = 172,
00271     GGK_WORLD_13     = 173,
00272     GGK_WORLD_14     = 174,
00273     GGK_WORLD_15     = 175,
00274     GGK_WORLD_16     = 176,
00275     GGK_WORLD_17     = 177,
00276     GGK_WORLD_18     = 178,
00277     GGK_WORLD_19     = 179,
00278     GGK_WORLD_20     = 180,
00279     GGK_WORLD_21     = 181,
00280     GGK_WORLD_22     = 182,
00281     GGK_WORLD_23     = 183,
00282     GGK_WORLD_24     = 184,
00283     GGK_WORLD_25     = 185,
00284     GGK_WORLD_26     = 186,
00285     GGK_WORLD_27     = 187,
00286     GGK_WORLD_28     = 188,
00287     GGK_WORLD_29     = 189,
00288     GGK_WORLD_30     = 190,
00289     GGK_WORLD_31     = 191,
00290     GGK_WORLD_32     = 192,
00291     GGK_WORLD_33     = 193,
00292     GGK_WORLD_34     = 194,
00293     GGK_WORLD_35     = 195,
00294     GGK_WORLD_36     = 196,
00295     GGK_WORLD_37     = 197,
00296     GGK_WORLD_38     = 198,
00297     GGK_WORLD_39     = 199,
00298     GGK_WORLD_40     = 200,
00299     GGK_WORLD_41     = 201,
00300     GGK_WORLD_42     = 202,
00301     GGK_WORLD_43     = 203,
00302     GGK_WORLD_44     = 204,
00303     GGK_WORLD_45     = 205,
00304     GGK_WORLD_46     = 206,
00305     GGK_WORLD_47     = 207,
00306     GGK_WORLD_48     = 208,
00307     GGK_WORLD_49     = 209,
00308     GGK_WORLD_50     = 210,
00309     GGK_WORLD_51     = 211,
00310     GGK_WORLD_52     = 212,
00311     GGK_WORLD_53     = 213,
00312     GGK_WORLD_54     = 214,
00313     GGK_WORLD_55     = 215,
00314     GGK_WORLD_56     = 216,
00315     GGK_WORLD_57     = 217,
00316     GGK_WORLD_58     = 218,
00317     GGK_WORLD_59     = 219,
00318     GGK_WORLD_60     = 220,
00319     GGK_WORLD_61     = 221,
00320     GGK_WORLD_62     = 222,
00321     GGK_WORLD_63     = 223,
00322     GGK_WORLD_64     = 224,
00323     GGK_WORLD_65     = 225,
00324     GGK_WORLD_66     = 226,
00325     GGK_WORLD_67     = 227,
00326     GGK_WORLD_68     = 228,
00327     GGK_WORLD_69     = 229,
00328     GGK_WORLD_70     = 230,
00329     GGK_WORLD_71     = 231,
00330     GGK_WORLD_72     = 232,
00331     GGK_WORLD_73     = 233,
00332     GGK_WORLD_74     = 234,
00333     GGK_WORLD_75     = 235,
00334     GGK_WORLD_76     = 236,
00335     GGK_WORLD_77     = 237,
00336     GGK_WORLD_78     = 238,
00337     GGK_WORLD_79     = 239,
00338     GGK_WORLD_80     = 240,
00339     GGK_WORLD_81     = 241,
00340     GGK_WORLD_82     = 242,
00341     GGK_WORLD_83     = 243,
00342     GGK_WORLD_84     = 244,
00343     GGK_WORLD_85     = 245,
00344     GGK_WORLD_86     = 246,
00345     GGK_WORLD_87     = 247,
00346     GGK_WORLD_88     = 248,
00347     GGK_WORLD_89     = 249,
00348     GGK_WORLD_90     = 250,
00349     GGK_WORLD_91     = 251,
00350     GGK_WORLD_92     = 252,
00351     GGK_WORLD_93     = 253,
00352     GGK_WORLD_94     = 254,
00353     GGK_WORLD_95     = 255,      // 0xFF
00354 
00355     // Numeric keypad
00356     GGK_KP0          = 256,
00357     GGK_KP1          = 257,
00358     GGK_KP2          = 258,
00359     GGK_KP3          = 259,
00360     GGK_KP4          = 260,
00361     GGK_KP5          = 261,
00362     GGK_KP6          = 262,
00363     GGK_KP7          = 263,
00364     GGK_KP8          = 264,
00365     GGK_KP9          = 265,
00366     GGK_KP_PERIOD    = 266,
00367     GGK_KP_DIVIDE    = 267,
00368     GGK_KP_MULTIPLY  = 268,
00369     GGK_KP_MINUS     = 269,
00370     GGK_KP_PLUS      = 270,
00371     GGK_KP_ENTER     = 271,
00372     GGK_KP_EQUALS    = 272,
00373 
00374     // Arrows + Home/End pad
00375     GGK_UP           = 273,
00376     GGK_DOWN         = 274,
00377     GGK_RIGHT        = 275,
00378     GGK_LEFT         = 276,
00379     GGK_INSERT       = 277,
00380     GGK_HOME         = 278,
00381     GGK_END          = 279,
00382     GGK_PAGEUP       = 280,
00383     GGK_PAGEDOWN     = 281,
00384 
00385     // Function keys
00386     GGK_F1           = 282,
00387     GGK_F2           = 283,
00388     GGK_F3           = 284,
00389     GGK_F4           = 285,
00390     GGK_F5           = 286,
00391     GGK_F6           = 287,
00392     GGK_F7           = 288,
00393     GGK_F8           = 289,
00394     GGK_F9           = 290,
00395     GGK_F10          = 291,
00396     GGK_F11          = 292,
00397     GGK_F12          = 293,
00398     GGK_F13          = 294,
00399     GGK_F14          = 295,
00400     GGK_F15          = 296,
00401 
00402     // Key state modifier keys
00403     GGK_NUMLOCK      = 300,
00404     GGK_CAPSLOCK     = 301,
00405     GGK_SCROLLOCK    = 302,
00406     GGK_RSHIFT       = 303,
00407     GGK_LSHIFT       = 304,
00408     GGK_RCTRL        = 305,
00409     GGK_LCTRL        = 306,
00410     GGK_RALT         = 307,
00411     GGK_LALT         = 308,
00412     GGK_RMETA        = 309,
00413     GGK_LMETA        = 310,
00414     GGK_LSUPER       = 311,      // Left "Windows" key
00415     GGK_RSUPER       = 312,      // Right "Windows" key
00416     GGK_MODE         = 313,      // "Alt Gr" key
00417     GGK_COMPOSE      = 314,      // Multi-key compose key
00418 
00419     // Miscellaneous function keys
00420     GGK_HELP         = 315,
00421     GGK_PRINT        = 316,
00422     GGK_SYSREQ       = 317,
00423     GGK_BREAK        = 318,
00424     GGK_MENU         = 319,
00425     GGK_POWER        = 320,      // Power Macintosh power key
00426     GGK_EURO         = 321,      // Some european keyboards
00427     GGK_UNDO         = 322,      // Atari keyboard has Undo
00428 
00429     // Add any other keys here
00430 
00431     GGK_LAST
00432 };
00433 
00439 void KeypadKeyToPrintable(Key& key, Flags<ModKey> mod_keys);
00440 
00441 
00443 // EnumMaps and stream operators
00445 
00446 // define EnumMap and stream operators for Slider::LineStyleType
00447 GG_ENUM_MAP_BEGIN(SliderLineStyle)
00448     GG_ENUM_MAP_INSERT(FLAT)
00449     GG_ENUM_MAP_INSERT(RAISED)
00450     GG_ENUM_MAP_INSERT(GROOVED)
00451 GG_ENUM_MAP_END
00452 
00453 GG_ENUM_STREAM_IN(SliderLineStyle)
00454 GG_ENUM_STREAM_OUT(SliderLineStyle)
00455 
00456 // define EnumMap and stream operators for Orientation
00457 GG_ENUM_MAP_BEGIN(Orientation)
00458     GG_ENUM_MAP_INSERT(VERTICAL)
00459     GG_ENUM_MAP_INSERT(HORIZONTAL)
00460 GG_ENUM_MAP_END
00461 
00462 GG_ENUM_STREAM_IN(Orientation)
00463 GG_ENUM_STREAM_OUT(Orientation)
00464 
00465 // define EnumMap and stream operators for StateButtonStyle
00466 GG_ENUM_MAP_BEGIN(StateButtonStyle)
00467     GG_ENUM_MAP_INSERT(SBSTYLE_3D_XBOX)
00468     GG_ENUM_MAP_INSERT(SBSTYLE_3D_CHECKBOX)
00469     GG_ENUM_MAP_INSERT(SBSTYLE_3D_RADIO)
00470     GG_ENUM_MAP_INSERT(SBSTYLE_3D_BUTTON)
00471     GG_ENUM_MAP_INSERT(SBSTYLE_3D_ROUND_BUTTON)
00472     GG_ENUM_MAP_INSERT(SBSTYLE_3D_TOP_ATTACHED_TAB)
00473     GG_ENUM_MAP_INSERT(SBSTYLE_3D_TOP_DETACHED_TAB)
00474 GG_ENUM_MAP_END
00475 
00476 GG_ENUM_STREAM_IN(StateButtonStyle)
00477 GG_ENUM_STREAM_OUT(StateButtonStyle)
00478 
00479 // define EnumMap and stream operators for TabBarStyle
00480 GG_ENUM_MAP_BEGIN(TabBarStyle)
00481     GG_ENUM_MAP_INSERT(TAB_BAR_ATTACHED)
00482     GG_ENUM_MAP_INSERT(TAB_BAR_DETACHED)
00483 GG_ENUM_MAP_END
00484 
00485 GG_ENUM_STREAM_IN(TabBarStyle)
00486 GG_ENUM_STREAM_OUT(TabBarStyle)
00487 
00488 // define EnumMap and stream operators for Mod
00489 GG_ENUM_MAP_BEGIN(Key)
00490     GG_ENUM_MAP_INSERT(GGK_UNKNOWN)
00491     GG_ENUM_MAP_INSERT(GGK_FIRST)
00492     GG_ENUM_MAP_INSERT(GGK_BACKSPACE)
00493     GG_ENUM_MAP_INSERT(GGK_TAB)
00494     GG_ENUM_MAP_INSERT(GGK_CLEAR)
00495     GG_ENUM_MAP_INSERT(GGK_RETURN)
00496     GG_ENUM_MAP_INSERT(GGK_PAUSE)
00497     GG_ENUM_MAP_INSERT(GGK_ESCAPE)
00498     GG_ENUM_MAP_INSERT(GGK_SPACE)
00499     GG_ENUM_MAP_INSERT(GGK_EXCLAIM)
00500     GG_ENUM_MAP_INSERT(GGK_QUOTEDBL)
00501     GG_ENUM_MAP_INSERT(GGK_HASH)
00502     GG_ENUM_MAP_INSERT(GGK_DOLLAR)
00503     GG_ENUM_MAP_INSERT(GGK_AMPERSAND)
00504     GG_ENUM_MAP_INSERT(GGK_QUOTE)
00505     GG_ENUM_MAP_INSERT(GGK_LEFTPAREN)
00506     GG_ENUM_MAP_INSERT(GGK_RIGHTPAREN)
00507     GG_ENUM_MAP_INSERT(GGK_ASTERISK)
00508     GG_ENUM_MAP_INSERT(GGK_PLUS)
00509     GG_ENUM_MAP_INSERT(GGK_COMMA)
00510     GG_ENUM_MAP_INSERT(GGK_MINUS)
00511     GG_ENUM_MAP_INSERT(GGK_PERIOD)
00512     GG_ENUM_MAP_INSERT(GGK_SLASH)
00513     GG_ENUM_MAP_INSERT(GGK_0)
00514     GG_ENUM_MAP_INSERT(GGK_1)
00515     GG_ENUM_MAP_INSERT(GGK_2)
00516     GG_ENUM_MAP_INSERT(GGK_3)
00517     GG_ENUM_MAP_INSERT(GGK_4)
00518     GG_ENUM_MAP_INSERT(GGK_5)
00519     GG_ENUM_MAP_INSERT(GGK_6)
00520     GG_ENUM_MAP_INSERT(GGK_7)
00521     GG_ENUM_MAP_INSERT(GGK_8)
00522     GG_ENUM_MAP_INSERT(GGK_9)
00523     GG_ENUM_MAP_INSERT(GGK_COLON)
00524     GG_ENUM_MAP_INSERT(GGK_SEMICOLON)
00525     GG_ENUM_MAP_INSERT(GGK_LESS)
00526     GG_ENUM_MAP_INSERT(GGK_EQUALS)
00527     GG_ENUM_MAP_INSERT(GGK_GREATER)
00528     GG_ENUM_MAP_INSERT(GGK_QUESTION)
00529     GG_ENUM_MAP_INSERT(GGK_AT)
00530     GG_ENUM_MAP_INSERT(GGK_A)
00531     GG_ENUM_MAP_INSERT(GGK_B)
00532     GG_ENUM_MAP_INSERT(GGK_C)
00533     GG_ENUM_MAP_INSERT(GGK_D)
00534     GG_ENUM_MAP_INSERT(GGK_E)
00535     GG_ENUM_MAP_INSERT(GGK_F)
00536     GG_ENUM_MAP_INSERT(GGK_G)
00537     GG_ENUM_MAP_INSERT(GGK_H)
00538     GG_ENUM_MAP_INSERT(GGK_I)
00539     GG_ENUM_MAP_INSERT(GGK_J)
00540     GG_ENUM_MAP_INSERT(GGK_K)
00541     GG_ENUM_MAP_INSERT(GGK_L)
00542     GG_ENUM_MAP_INSERT(GGK_M)
00543     GG_ENUM_MAP_INSERT(GGK_N)
00544     GG_ENUM_MAP_INSERT(GGK_O)
00545     GG_ENUM_MAP_INSERT(GGK_P)
00546     GG_ENUM_MAP_INSERT(GGK_Q)
00547     GG_ENUM_MAP_INSERT(GGK_R)
00548     GG_ENUM_MAP_INSERT(GGK_S)
00549     GG_ENUM_MAP_INSERT(GGK_T)
00550     GG_ENUM_MAP_INSERT(GGK_U)
00551     GG_ENUM_MAP_INSERT(GGK_V)
00552     GG_ENUM_MAP_INSERT(GGK_W)
00553     GG_ENUM_MAP_INSERT(GGK_X)
00554     GG_ENUM_MAP_INSERT(GGK_Y)
00555     GG_ENUM_MAP_INSERT(GGK_Z)
00556     GG_ENUM_MAP_INSERT(GGK_LEFTBRACKET)
00557     GG_ENUM_MAP_INSERT(GGK_BACKSLASH)
00558     GG_ENUM_MAP_INSERT(GGK_RIGHTBRACKET)
00559     GG_ENUM_MAP_INSERT(GGK_CARET)
00560     GG_ENUM_MAP_INSERT(GGK_UNDERSCORE)
00561     GG_ENUM_MAP_INSERT(GGK_BACKQUOTE)
00562     GG_ENUM_MAP_INSERT(GGK_a)
00563     GG_ENUM_MAP_INSERT(GGK_b)
00564     GG_ENUM_MAP_INSERT(GGK_c)
00565     GG_ENUM_MAP_INSERT(GGK_d)
00566     GG_ENUM_MAP_INSERT(GGK_e)
00567     GG_ENUM_MAP_INSERT(GGK_f)
00568     GG_ENUM_MAP_INSERT(GGK_g)
00569     GG_ENUM_MAP_INSERT(GGK_h)
00570     GG_ENUM_MAP_INSERT(GGK_i)
00571     GG_ENUM_MAP_INSERT(GGK_j)
00572     GG_ENUM_MAP_INSERT(GGK_k)
00573     GG_ENUM_MAP_INSERT(GGK_l)
00574     GG_ENUM_MAP_INSERT(GGK_m)
00575     GG_ENUM_MAP_INSERT(GGK_n)
00576     GG_ENUM_MAP_INSERT(GGK_o)
00577     GG_ENUM_MAP_INSERT(GGK_p)
00578     GG_ENUM_MAP_INSERT(GGK_q)
00579     GG_ENUM_MAP_INSERT(GGK_r)
00580     GG_ENUM_MAP_INSERT(GGK_s)
00581     GG_ENUM_MAP_INSERT(GGK_t)
00582     GG_ENUM_MAP_INSERT(GGK_u)
00583     GG_ENUM_MAP_INSERT(GGK_v)
00584     GG_ENUM_MAP_INSERT(GGK_w)
00585     GG_ENUM_MAP_INSERT(GGK_x)
00586     GG_ENUM_MAP_INSERT(GGK_y)
00587     GG_ENUM_MAP_INSERT(GGK_z)
00588     GG_ENUM_MAP_INSERT(GGK_DELETE)
00589 
00590     GG_ENUM_MAP_INSERT(GGK_WORLD_0)
00591     GG_ENUM_MAP_INSERT(GGK_WORLD_1)
00592     GG_ENUM_MAP_INSERT(GGK_WORLD_2)
00593     GG_ENUM_MAP_INSERT(GGK_WORLD_3)
00594     GG_ENUM_MAP_INSERT(GGK_WORLD_4)
00595     GG_ENUM_MAP_INSERT(GGK_WORLD_5)
00596     GG_ENUM_MAP_INSERT(GGK_WORLD_6)
00597     GG_ENUM_MAP_INSERT(GGK_WORLD_7)
00598     GG_ENUM_MAP_INSERT(GGK_WORLD_8)
00599     GG_ENUM_MAP_INSERT(GGK_WORLD_9)
00600     GG_ENUM_MAP_INSERT(GGK_WORLD_10)
00601     GG_ENUM_MAP_INSERT(GGK_WORLD_11)
00602     GG_ENUM_MAP_INSERT(GGK_WORLD_12)
00603     GG_ENUM_MAP_INSERT(GGK_WORLD_13)
00604     GG_ENUM_MAP_INSERT(GGK_WORLD_14)
00605     GG_ENUM_MAP_INSERT(GGK_WORLD_15)
00606     GG_ENUM_MAP_INSERT(GGK_WORLD_16)
00607     GG_ENUM_MAP_INSERT(GGK_WORLD_17)
00608     GG_ENUM_MAP_INSERT(GGK_WORLD_18)
00609     GG_ENUM_MAP_INSERT(GGK_WORLD_19)
00610     GG_ENUM_MAP_INSERT(GGK_WORLD_20)
00611     GG_ENUM_MAP_INSERT(GGK_WORLD_21)
00612     GG_ENUM_MAP_INSERT(GGK_WORLD_22)
00613     GG_ENUM_MAP_INSERT(GGK_WORLD_23)
00614     GG_ENUM_MAP_INSERT(GGK_WORLD_24)
00615     GG_ENUM_MAP_INSERT(GGK_WORLD_25)
00616     GG_ENUM_MAP_INSERT(GGK_WORLD_26)
00617     GG_ENUM_MAP_INSERT(GGK_WORLD_27)
00618     GG_ENUM_MAP_INSERT(GGK_WORLD_28)
00619     GG_ENUM_MAP_INSERT(GGK_WORLD_29)
00620     GG_ENUM_MAP_INSERT(GGK_WORLD_30)
00621     GG_ENUM_MAP_INSERT(GGK_WORLD_31)
00622     GG_ENUM_MAP_INSERT(GGK_WORLD_32)
00623     GG_ENUM_MAP_INSERT(GGK_WORLD_33)
00624     GG_ENUM_MAP_INSERT(GGK_WORLD_34)
00625     GG_ENUM_MAP_INSERT(GGK_WORLD_35)
00626     GG_ENUM_MAP_INSERT(GGK_WORLD_36)
00627     GG_ENUM_MAP_INSERT(GGK_WORLD_37)
00628     GG_ENUM_MAP_INSERT(GGK_WORLD_38)
00629     GG_ENUM_MAP_INSERT(GGK_WORLD_39)
00630     GG_ENUM_MAP_INSERT(GGK_WORLD_40)
00631     GG_ENUM_MAP_INSERT(GGK_WORLD_41)
00632     GG_ENUM_MAP_INSERT(GGK_WORLD_42)
00633     GG_ENUM_MAP_INSERT(GGK_WORLD_43)
00634     GG_ENUM_MAP_INSERT(GGK_WORLD_44)
00635     GG_ENUM_MAP_INSERT(GGK_WORLD_45)
00636     GG_ENUM_MAP_INSERT(GGK_WORLD_46)
00637     GG_ENUM_MAP_INSERT(GGK_WORLD_47)
00638     GG_ENUM_MAP_INSERT(GGK_WORLD_48)
00639     GG_ENUM_MAP_INSERT(GGK_WORLD_49)
00640     GG_ENUM_MAP_INSERT(GGK_WORLD_50)
00641     GG_ENUM_MAP_INSERT(GGK_WORLD_51)
00642     GG_ENUM_MAP_INSERT(GGK_WORLD_52)
00643     GG_ENUM_MAP_INSERT(GGK_WORLD_53)
00644     GG_ENUM_MAP_INSERT(GGK_WORLD_54)
00645     GG_ENUM_MAP_INSERT(GGK_WORLD_55)
00646     GG_ENUM_MAP_INSERT(GGK_WORLD_56)
00647     GG_ENUM_MAP_INSERT(GGK_WORLD_57)
00648     GG_ENUM_MAP_INSERT(GGK_WORLD_58)
00649     GG_ENUM_MAP_INSERT(GGK_WORLD_59)
00650     GG_ENUM_MAP_INSERT(GGK_WORLD_60)
00651     GG_ENUM_MAP_INSERT(GGK_WORLD_61)
00652     GG_ENUM_MAP_INSERT(GGK_WORLD_62)
00653     GG_ENUM_MAP_INSERT(GGK_WORLD_63)
00654     GG_ENUM_MAP_INSERT(GGK_WORLD_64)
00655     GG_ENUM_MAP_INSERT(GGK_WORLD_65)
00656     GG_ENUM_MAP_INSERT(GGK_WORLD_66)
00657     GG_ENUM_MAP_INSERT(GGK_WORLD_67)
00658     GG_ENUM_MAP_INSERT(GGK_WORLD_68)
00659     GG_ENUM_MAP_INSERT(GGK_WORLD_69)
00660     GG_ENUM_MAP_INSERT(GGK_WORLD_70)
00661     GG_ENUM_MAP_INSERT(GGK_WORLD_71)
00662     GG_ENUM_MAP_INSERT(GGK_WORLD_72)
00663     GG_ENUM_MAP_INSERT(GGK_WORLD_73)
00664     GG_ENUM_MAP_INSERT(GGK_WORLD_74)
00665     GG_ENUM_MAP_INSERT(GGK_WORLD_75)
00666     GG_ENUM_MAP_INSERT(GGK_WORLD_76)
00667     GG_ENUM_MAP_INSERT(GGK_WORLD_77)
00668     GG_ENUM_MAP_INSERT(GGK_WORLD_78)
00669     GG_ENUM_MAP_INSERT(GGK_WORLD_79)
00670     GG_ENUM_MAP_INSERT(GGK_WORLD_80)
00671     GG_ENUM_MAP_INSERT(GGK_WORLD_81)
00672     GG_ENUM_MAP_INSERT(GGK_WORLD_82)
00673     GG_ENUM_MAP_INSERT(GGK_WORLD_83)
00674     GG_ENUM_MAP_INSERT(GGK_WORLD_84)
00675     GG_ENUM_MAP_INSERT(GGK_WORLD_85)
00676     GG_ENUM_MAP_INSERT(GGK_WORLD_86)
00677     GG_ENUM_MAP_INSERT(GGK_WORLD_87)
00678     GG_ENUM_MAP_INSERT(GGK_WORLD_88)
00679     GG_ENUM_MAP_INSERT(GGK_WORLD_89)
00680     GG_ENUM_MAP_INSERT(GGK_WORLD_90)
00681     GG_ENUM_MAP_INSERT(GGK_WORLD_91)
00682     GG_ENUM_MAP_INSERT(GGK_WORLD_92)
00683     GG_ENUM_MAP_INSERT(GGK_WORLD_93)
00684     GG_ENUM_MAP_INSERT(GGK_WORLD_94)
00685     GG_ENUM_MAP_INSERT(GGK_WORLD_95)
00686 
00687     GG_ENUM_MAP_INSERT(GGK_KP0)
00688     GG_ENUM_MAP_INSERT(GGK_KP1)
00689     GG_ENUM_MAP_INSERT(GGK_KP2)
00690     GG_ENUM_MAP_INSERT(GGK_KP3)
00691     GG_ENUM_MAP_INSERT(GGK_KP4)
00692     GG_ENUM_MAP_INSERT(GGK_KP5)
00693     GG_ENUM_MAP_INSERT(GGK_KP6)
00694     GG_ENUM_MAP_INSERT(GGK_KP7)
00695     GG_ENUM_MAP_INSERT(GGK_KP8)
00696     GG_ENUM_MAP_INSERT(GGK_KP9)
00697     GG_ENUM_MAP_INSERT(GGK_KP_PERIOD)
00698     GG_ENUM_MAP_INSERT(GGK_KP_DIVIDE)
00699     GG_ENUM_MAP_INSERT(GGK_KP_MULTIPLY)
00700     GG_ENUM_MAP_INSERT(GGK_KP_MINUS)
00701     GG_ENUM_MAP_INSERT(GGK_KP_PLUS)
00702     GG_ENUM_MAP_INSERT(GGK_KP_ENTER)
00703     GG_ENUM_MAP_INSERT(GGK_KP_EQUALS)
00704 
00705     GG_ENUM_MAP_INSERT(GGK_UP)
00706     GG_ENUM_MAP_INSERT(GGK_DOWN)
00707     GG_ENUM_MAP_INSERT(GGK_RIGHT)
00708     GG_ENUM_MAP_INSERT(GGK_LEFT)
00709     GG_ENUM_MAP_INSERT(GGK_INSERT)
00710     GG_ENUM_MAP_INSERT(GGK_HOME)
00711     GG_ENUM_MAP_INSERT(GGK_END)
00712     GG_ENUM_MAP_INSERT(GGK_PAGEUP)
00713     GG_ENUM_MAP_INSERT(GGK_PAGEDOWN)
00714 
00715     GG_ENUM_MAP_INSERT(GGK_F1)
00716     GG_ENUM_MAP_INSERT(GGK_F2)
00717     GG_ENUM_MAP_INSERT(GGK_F3)
00718     GG_ENUM_MAP_INSERT(GGK_F4)
00719     GG_ENUM_MAP_INSERT(GGK_F5)
00720     GG_ENUM_MAP_INSERT(GGK_F6)
00721     GG_ENUM_MAP_INSERT(GGK_F7)
00722     GG_ENUM_MAP_INSERT(GGK_F8)
00723     GG_ENUM_MAP_INSERT(GGK_F9)
00724     GG_ENUM_MAP_INSERT(GGK_F10)
00725     GG_ENUM_MAP_INSERT(GGK_F11)
00726     GG_ENUM_MAP_INSERT(GGK_F12)
00727     GG_ENUM_MAP_INSERT(GGK_F13)
00728     GG_ENUM_MAP_INSERT(GGK_F14)
00729     GG_ENUM_MAP_INSERT(GGK_F15)
00730 
00731     GG_ENUM_MAP_INSERT(GGK_NUMLOCK)
00732     GG_ENUM_MAP_INSERT(GGK_CAPSLOCK)
00733     GG_ENUM_MAP_INSERT(GGK_SCROLLOCK)
00734     GG_ENUM_MAP_INSERT(GGK_RSHIFT)
00735     GG_ENUM_MAP_INSERT(GGK_LSHIFT)
00736     GG_ENUM_MAP_INSERT(GGK_RCTRL)
00737     GG_ENUM_MAP_INSERT(GGK_LCTRL)
00738     GG_ENUM_MAP_INSERT(GGK_RALT)
00739     GG_ENUM_MAP_INSERT(GGK_LALT)
00740     GG_ENUM_MAP_INSERT(GGK_RMETA)
00741     GG_ENUM_MAP_INSERT(GGK_LMETA)
00742     GG_ENUM_MAP_INSERT(GGK_LSUPER)
00743     GG_ENUM_MAP_INSERT(GGK_RSUPER)
00744     GG_ENUM_MAP_INSERT(GGK_MODE)
00745     GG_ENUM_MAP_INSERT(GGK_COMPOSE)
00746 
00747     GG_ENUM_MAP_INSERT(GGK_HELP)
00748     GG_ENUM_MAP_INSERT(GGK_PRINT)
00749     GG_ENUM_MAP_INSERT(GGK_SYSREQ)
00750     GG_ENUM_MAP_INSERT(GGK_BREAK)
00751     GG_ENUM_MAP_INSERT(GGK_MENU)
00752     GG_ENUM_MAP_INSERT(GGK_POWER)
00753     GG_ENUM_MAP_INSERT(GGK_EURO)
00754     GG_ENUM_MAP_INSERT(GGK_UNDO)
00755 
00756     GG_ENUM_MAP_INSERT(GGK_LAST)
00757 GG_ENUM_MAP_END
00758 
00759 GG_ENUM_STREAM_IN(Key)
00760 GG_ENUM_STREAM_OUT(Key)
00761 
00762 } // namespace GG
00763 
00764 #endif // _GG_Base_h_
00765 

Generated on Sat Mar 26 07:08:37 2011 for GG by  doxygen 1.5.9