AaronCameron.net
No ads. No Profit. No Master, But Truth.
Not a Member? - Login or Create an Account
Thursday the 24th of May 2012 @ 12:44am
Front Page Journal Projects Your Profile About
[]

LibN2L-4 Library Code Reference

Classes
Compounds
Files
Members
Method Index
Full Reference

events/types.h

Go to the documentation of this file.
00001 /************************************************************************
00002 Nova-2 Library (libN2L, or simply n2l) Game development C++ Library
00003 Copyright (C) 2003  Aaron Cameron
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
00007 License as published by the Free Software Foundation; either
00008 version 2.1 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 Software
00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00018 
00019 A copy of the GNU Lesser General Public License has been provided with
00020 this library in the file 'COPYING'.
00021 
00022 Contact information for the author of this library has been provided
00023 with this library in the file 'AUTHOR'.
00024 ************************************************************************/
00025 #ifndef _n2l4_event_types_h
00026 #define _n2l4_event_types_h
00027 
00028 #include "n2l/n2l.h"
00029 #include "n2l/geometry.h"
00030 
00031 #include "SDL_mouse.h"
00032 #include "SDL_events.h"
00033 #include "SDL_keyboard.h"
00034 #include "SDL_keysym.h"
00035 
00036 // #include <assert.h>
00037 
00038 namespace n2l
00039 {
00040     typedef tVector2s   tSysMousePos;
00041     typedef tVector2f   tMousePos;
00042 
00045     typedef enum
00046     {
00047         EventType_None,
00048         EventType_Active,
00049         EventType_Key,
00050         EventType_MouseMotion,
00051         EventType_MouseButton,
00052         EventType_JoystickAxis,
00053         EventType_JoystickTrackball,
00054         EventType_JoystickHat,
00055         EventType_JoystickButton,
00056         EventType_Quit,
00057         EventType_VideoResize,
00058         EventType_VideoExpose,
00059 
00060         EventType_Custom1,
00061         EventType_Custom2,
00062         EventType_Custom3,
00063         EventType_Custom4,
00064         EventType_Custom5,
00065         EventType_Custom6,
00066         EventType_Custom7,
00067         EventType_Custom8,
00068         EventType_Custom9,
00069 
00070         EventType_NumEventTypes     
00071     } tEventType;
00072 
00073 
00074     typedef enum
00075     {
00076         JoystickHat_Centered =  SDL_HAT_CENTERED,
00077         JoystickHat_Up =        SDL_HAT_UP,
00078         JoystickHat_Right =     SDL_HAT_RIGHT,
00079         JoystickHat_Down =      SDL_HAT_DOWN,
00080         JoystickHat_Left =      SDL_HAT_LEFT,
00081 
00082         /* Combination Masks **/
00083         JoystickHat_RightUp =   SDL_HAT_RIGHTUP,
00084         JoystickHat_RightDown = SDL_HAT_RIGHTDOWN,
00085         JoystickHat_LeftUp =    SDL_HAT_LEFTUP,
00086         JoystickHat_LeftDown =  SDL_HAT_LEFTDOWN
00087     } tJoystickHat;
00088 
00089     typedef enum
00090     {
00091         MouseButton_Unknown =   0,
00092         MouseButton_Left =      SDL_BUTTON_LEFT,
00093         MouseButton_Middle =    SDL_BUTTON_MIDDLE,
00094         MouseButton_Right =     SDL_BUTTON_RIGHT,
00095         MouseButton_Up =        SDL_BUTTON_WHEELUP,
00096         MouseButton_Down =      SDL_BUTTON_WHEELDOWN,
00097 
00098         MouseButton_NumMouseButtons
00099     } tMouseButton;
00100 
00108     typedef enum
00109     {
00110         MouseAxis_X =   0,
00111         MouseAxis_Y =   1,
00112 
00113         MouseAxis_NumMouseAxis
00114     } tMouseAxis;
00115 
00116     // This sucks, but to hide the SDL interface, we have
00117     // to redefine the key syms.  I can't BELIEVE how badly
00118     // this sucks.  But to not hide them would make a serious
00119     // mess of the N2L interface.
00120     // Note that this is effectively a renaming cut and paste
00121     // from SDL_keysym.h
00122     // I take absolutely ZERO credit for this information,
00123     // which is not to say that I don't trust it, it means I
00124     // don't deserve credit for it.
00125 
00126     typedef enum {
00127         Key_Unknown =       SDLK_UNKNOWN,
00128 
00129         Key_Backspace =     SDLK_BACKSPACE,
00130         Key_Tab =           SDLK_TAB,
00131         Key_Clear =         SDLK_CLEAR,
00132         Key_Return =        SDLK_RETURN,
00133         Key_Pause   =       SDLK_PAUSE,
00134         Key_Escape =        SDLK_ESCAPE,
00135         Key_Space   =       SDLK_SPACE,
00136         Key_Exclaim =       SDLK_EXCLAIM,
00137         Key_QuotedBl =      SDLK_QUOTEDBL,
00138         Key_Hash =          SDLK_HASH,
00139         Key_Dollar =        SDLK_DOLLAR,
00140         Key_Ampersand =     SDLK_AMPERSAND,
00141         Key_Quote =         SDLK_QUOTE,
00142         Key_LParen =        SDLK_LEFTPAREN,
00143         Key_RParan =        SDLK_RIGHTPAREN,
00144         Key_Asterisk =      SDLK_ASTERISK,
00145         Key_Plus    =       SDLK_PLUS,
00146         Key_Comma   =       SDLK_COMMA,
00147         Key_Minus   =       SDLK_MINUS,
00148         Key_Period =        SDLK_PERIOD,
00149         Key_Slash =         SDLK_SLASH,
00150         Key_0   =           SDLK_0,
00151         Key_1   =           SDLK_1,
00152         Key_2   =           SDLK_2,
00153         Key_3   =           SDLK_3,
00154         Key_4   =           SDLK_4,
00155         Key_5   =           SDLK_5,
00156         Key_6   =           SDLK_6,
00157         Key_7   =           SDLK_7,
00158         Key_8   =           SDLK_8,
00159         Key_9   =           SDLK_9,
00160         Key_Colon =         SDLK_COLON,
00161         Key_SemiColon =     SDLK_SEMICOLON,
00162         Key_Less =          SDLK_LESS,
00163         Key_Equals =        SDLK_EQUALS,
00164         Key_Greater =       SDLK_GREATER,
00165         Key_Question =      SDLK_QUESTION,
00166         Key_At =            SDLK_AT,
00167         
00168         Key_LBracket    =   SDLK_LEFTBRACKET,
00169         Key_BackSlash   =   SDLK_BACKSLASH,
00170         Key_RBracket    =   SDLK_RIGHTBRACKET,
00171         Key_Caret   =       SDLK_CARET,
00172         Key_Underscore =    SDLK_UNDERSCORE,
00173         Key_BackQuote   =   SDLK_BACKQUOTE,
00174         Key_A   =   SDLK_a,
00175         Key_B   =   SDLK_b,
00176         Key_C   =   SDLK_c,
00177         Key_D   =   SDLK_d,
00178         Key_E   =   SDLK_e,
00179         Key_F   =   SDLK_f,
00180         Key_G   =   SDLK_g,
00181         Key_H   =   SDLK_h,
00182         Key_I   =   SDLK_i,
00183         Key_J   =   SDLK_j,
00184         Key_K   =   SDLK_k,
00185         Key_L   =   SDLK_l,
00186         Key_M   =   SDLK_m,
00187         Key_N   =   SDLK_n,
00188         Key_O   =   SDLK_o,
00189         Key_P   =   SDLK_p,
00190         Key_Q   =   SDLK_q,
00191         Key_R   =   SDLK_r,
00192         Key_S   =   SDLK_s,
00193         Key_T   =   SDLK_t,
00194         Key_U   =   SDLK_u,
00195         Key_V   =   SDLK_v,
00196         Key_W   =   SDLK_w,
00197         Key_X   =   SDLK_x,
00198         Key_Y   =   SDLK_y,
00199         Key_Z   =   SDLK_z,
00200         Key_Delete  =   SDLK_DELETE,
00201 
00202         Key_World_0 =   SDLK_WORLD_0,
00203         Key_World_1 =   SDLK_WORLD_1,
00204         Key_World_2 =   SDLK_WORLD_2,
00205         Key_World_3 =   SDLK_WORLD_3,
00206         Key_World_4 =   SDLK_WORLD_4,
00207         Key_World_5 =   SDLK_WORLD_5,
00208         Key_World_6 =   SDLK_WORLD_6,
00209         Key_World_7 =   SDLK_WORLD_7,
00210         Key_World_8 =   SDLK_WORLD_8,
00211         Key_World_9 =   SDLK_WORLD_9,
00212         Key_World_10    =   SDLK_WORLD_10,
00213         Key_World_11    =   SDLK_WORLD_11,
00214         Key_World_12    =   SDLK_WORLD_12,
00215         Key_World_13    =   SDLK_WORLD_13,
00216         Key_World_14    =   SDLK_WORLD_14,
00217         Key_World_15    =   SDLK_WORLD_15,
00218         Key_World_16    =   SDLK_WORLD_16,
00219         Key_World_17    =   SDLK_WORLD_17,
00220         Key_World_18    =   SDLK_WORLD_18,
00221         Key_World_19    =   SDLK_WORLD_19,
00222         Key_World_20    =   SDLK_WORLD_20,
00223         Key_World_21    =   SDLK_WORLD_21,
00224         Key_World_22    =   SDLK_WORLD_22,
00225         Key_World_23    =   SDLK_WORLD_23,
00226         Key_World_24    =   SDLK_WORLD_24,
00227         Key_World_25    =   SDLK_WORLD_25,
00228         Key_World_26    =   SDLK_WORLD_26,
00229         Key_World_27    =   SDLK_WORLD_27,
00230         Key_World_28    =   SDLK_WORLD_28,
00231         Key_World_29    =   SDLK_WORLD_29,
00232         Key_World_30    =   SDLK_WORLD_30,
00233         Key_World_31    =   SDLK_WORLD_31,
00234         Key_World_32    =   SDLK_WORLD_32,
00235         Key_World_33    =   SDLK_WORLD_33,
00236         Key_World_34    =   SDLK_WORLD_34,
00237         Key_World_35    =   SDLK_WORLD_35,
00238         Key_World_36    =   SDLK_WORLD_36,
00239         Key_World_37    =   SDLK_WORLD_37,
00240         Key_World_38    =   SDLK_WORLD_38,
00241         Key_World_39    =   SDLK_WORLD_39,
00242         Key_World_40    =   SDLK_WORLD_40,
00243         Key_World_41    =   SDLK_WORLD_41,
00244         Key_World_42    =   SDLK_WORLD_42,
00245         Key_World_43    =   SDLK_WORLD_43,
00246         Key_World_44    =   SDLK_WORLD_44,
00247         Key_World_45    =   SDLK_WORLD_45,
00248         Key_World_46    =   SDLK_WORLD_46,
00249         Key_World_47    =   SDLK_WORLD_47,
00250         Key_World_48    =   SDLK_WORLD_48,
00251         Key_World_49    =   SDLK_WORLD_49,
00252         Key_World_50    =   SDLK_WORLD_50,
00253         Key_World_51    =   SDLK_WORLD_51,
00254         Key_World_52    =   SDLK_WORLD_52,
00255         Key_World_53    =   SDLK_WORLD_53,
00256         Key_World_54    =   SDLK_WORLD_54,
00257         Key_World_55    =   SDLK_WORLD_55,
00258         Key_World_56    =   SDLK_WORLD_56,
00259         Key_World_57    =   SDLK_WORLD_57,
00260         Key_World_58    =   SDLK_WORLD_58,
00261         Key_World_59    =   SDLK_WORLD_59,
00262         Key_World_60    =   SDLK_WORLD_60,
00263         Key_World_61    =   SDLK_WORLD_61,
00264         Key_World_62    =   SDLK_WORLD_62,
00265         Key_World_63    =   SDLK_WORLD_63,
00266         Key_World_64    =   SDLK_WORLD_64,
00267         Key_World_65    =   SDLK_WORLD_65,
00268         Key_World_66    =   SDLK_WORLD_66,
00269         Key_World_67    =   SDLK_WORLD_67,
00270         Key_World_68    =   SDLK_WORLD_68,
00271         Key_World_69    =   SDLK_WORLD_69,
00272         Key_World_70    =   SDLK_WORLD_70,
00273         Key_World_71    =   SDLK_WORLD_71,
00274         Key_World_72    =   SDLK_WORLD_72,
00275         Key_World_73    =   SDLK_WORLD_73,
00276         Key_World_74    =   SDLK_WORLD_74,
00277         Key_World_75    =   SDLK_WORLD_75,
00278         Key_World_76    =   SDLK_WORLD_76,
00279         Key_World_77    =   SDLK_WORLD_77,
00280         Key_World_78    =   SDLK_WORLD_78,
00281         Key_World_79    =   SDLK_WORLD_79,
00282         Key_World_80    =   SDLK_WORLD_80,
00283         Key_World_81    =   SDLK_WORLD_81,
00284         Key_World_82    =   SDLK_WORLD_82,
00285         Key_World_83    =   SDLK_WORLD_83,
00286         Key_World_84    =   SDLK_WORLD_84,
00287         Key_World_85    =   SDLK_WORLD_85,
00288         Key_World_86    =   SDLK_WORLD_86,
00289         Key_World_87    =   SDLK_WORLD_87,
00290         Key_World_88    =   SDLK_WORLD_88,
00291         Key_World_89    =   SDLK_WORLD_89,
00292         Key_World_90    =   SDLK_WORLD_90,
00293         Key_World_91    =   SDLK_WORLD_91,
00294         Key_World_92    =   SDLK_WORLD_92,
00295         Key_World_93    =   SDLK_WORLD_93,
00296         Key_World_94    =   SDLK_WORLD_94,
00297         Key_World_95    =   SDLK_WORLD_95,
00298 
00299         Key_KP0 =   SDLK_KP0,
00300         Key_KP1 =   SDLK_KP1,
00301         Key_KP2 =   SDLK_KP2,
00302         Key_KP3 =   SDLK_KP3,
00303         Key_KP4 =   SDLK_KP4,
00304         Key_KP5 =   SDLK_KP5,
00305         Key_KP6 =   SDLK_KP6,
00306         Key_KP7 =   SDLK_KP7,
00307         Key_KP8 =   SDLK_KP8,
00308         Key_KP9 =   SDLK_KP9,
00309         Key_KP_Period =     SDLK_KP_PERIOD,
00310         Key_KP_Divide =     SDLK_KP_DIVIDE,
00311         Key_KP_Multiply =   SDLK_KP_MULTIPLY,
00312         Key_KP_Minus =      SDLK_KP_MINUS,
00313         Key_KP_Plus =       SDLK_KP_PLUS,
00314         Key_KP_Enter =      SDLK_KP_ENTER,
00315         Key_KP_Equals =     SDLK_KP_EQUALS,
00316 
00317         Key_Up =        SDLK_UP,
00318         Key_Down =      SDLK_DOWN,
00319         Key_Right =     SDLK_RIGHT,
00320         Key_Left =      SDLK_LEFT,
00321         Key_Insert =    SDLK_INSERT,
00322         Key_Home =      SDLK_HOME,
00323         Key_End =       SDLK_END,
00324         Key_PageUp =    SDLK_PAGEUP,
00325         Key_PageDown =  SDLK_PAGEDOWN,
00326 
00327         Key_F1  =   SDLK_F1,
00328         Key_F2  =   SDLK_F2,
00329         Key_F3  =   SDLK_F3,
00330         Key_F4  =   SDLK_F4,
00331         Key_F5  =   SDLK_F5,
00332         Key_F6  =   SDLK_F6,
00333         Key_F7  =   SDLK_F7,
00334         Key_F8  =   SDLK_F8,
00335         Key_F9  =   SDLK_F9,
00336         Key_F10 =   SDLK_F10,
00337         Key_F11 =   SDLK_F11,
00338         Key_F12 =   SDLK_F12,
00339         Key_F13 =   SDLK_F13,
00340         Key_F14 =   SDLK_F14,
00341         Key_F15 =   SDLK_F15,
00342 
00343         Key_NumLock =       SDLK_NUMLOCK,
00344         Key_CapsLock =      SDLK_CAPSLOCK,
00345         Key_ScrollLock =    SDLK_SCROLLOCK,
00346         Key_RShift =        SDLK_RSHIFT,
00347         Key_LShift =        SDLK_LSHIFT,
00348         Key_RCtrl   =       SDLK_RCTRL,
00349         Key_LCtrl   =       SDLK_LCTRL,
00350         Key_RAlt =          SDLK_RALT,
00351         Key_LAlt =          SDLK_LALT,
00352         Key_RMeta   =       SDLK_RMETA,
00353         Key_LMeta   =       SDLK_LMETA,
00354         Key_LSuper =        SDLK_LSUPER,
00355         Key_RSuper =        SDLK_RSUPER,
00356         Key_Mode =          SDLK_MODE,
00357         Key_Compose =       SDLK_COMPOSE,
00358 
00359         Key_Help =      SDLK_HELP,
00360         Key_Print =     SDLK_PRINT,
00361         Key_SysReq =    SDLK_SYSREQ,
00362         Key_Break   =   SDLK_BREAK,
00363         Key_Menu =      SDLK_MENU,
00364         Key_Power =     SDLK_POWER,
00365         Key_Euro =      SDLK_EURO,
00366         Key_Undo =      SDLK_UNDO,
00367 
00368         Key_NumKeys =   SDLK_LAST
00369 
00370     } tKey;
00371 
00372     typedef enum {
00373         KMod_None =     KMOD_NONE,
00374         KMod_LShift =   KMOD_LSHIFT,
00375         KMod_RShift =   KMOD_RSHIFT,
00376         KMod_LCtrl =    KMOD_LCTRL,
00377         KMod_RCtrl =    KMOD_RCTRL,
00378         KMod_LAlt =     KMOD_LALT,
00379         KMod_RAlt =     KMOD_RALT,
00380         KMod_LMeta =    KMOD_LMETA,
00381         KMod_RMeta =    KMOD_RMETA,
00382         KMod_Num =      KMOD_NUM,
00383         KMod_Caps =     KMOD_CAPS,
00384         KMod_Mode =     KMOD_MODE,
00385 
00386         // Something unique, yay.
00387         KMod_Shift =    KMOD_LSHIFT|KMOD_RSHIFT,
00388         KMod_Ctrl =     KMOD_LCTRL|KMOD_RCTRL,
00389         KMod_Alt =      KMOD_LALT|KMOD_RALT,
00390         KMod_Meta =     KMOD_LMETA|KMOD_RMETA,
00391         KMod_InCaps =   KMOD_LSHIFT|KMOD_RSHIFT|KMOD_CAPS
00392     } tKeyMod;
00393 
00394     typedef tUint   tKeyMods;
00395 
00396 }
00397 
00398 #endif
©2012 Aaron Cameron