Base.h

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

Generated on Wed Mar 26 14:35:41 2008 for GG by  doxygen 1.5.2