Event.h

Go to the documentation of this file.
00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024 
00025 #ifndef SFML_EVENT_H
00026 #define SFML_EVENT_H
00027 
00029 // Headers
00031 #include <SFML/Config.h>
00032 
00033 
00037 typedef enum
00038 {
00039     sfKeyA = 'a',
00040     sfKeyB = 'b',
00041     sfKeyC = 'c',
00042     sfKeyD = 'd',
00043     sfKeyE = 'e',
00044     sfKeyF = 'f',
00045     sfKeyG = 'g',
00046     sfKeyH = 'h',
00047     sfKeyI = 'i',
00048     sfKeyJ = 'j',
00049     sfKeyK = 'k',
00050     sfKeyL = 'l',
00051     sfKeyM = 'm',
00052     sfKeyN = 'n',
00053     sfKeyO = 'o',
00054     sfKeyP = 'p',
00055     sfKeyQ = 'q',
00056     sfKeyR = 'r',
00057     sfKeyS = 's',
00058     sfKeyT = 't',
00059     sfKeyU = 'u',
00060     sfKeyV = 'v',
00061     sfKeyW = 'w',
00062     sfKeyX = 'x',
00063     sfKeyY = 'y',
00064     sfKeyZ = 'z',
00065     sfKeyNum0 = '0',
00066     sfKeyNum1 = '1',
00067     sfKeyNum2 = '2',
00068     sfKeyNum3 = '3',
00069     sfKeyNum4 = '4',
00070     sfKeyNum5 = '5',
00071     sfKeyNum6 = '6',
00072     sfKeyNum7 = '7',
00073     sfKeyNum8 = '8',
00074     sfKeyNum9 = '9', 
00075     sfKeyEscape = 256,
00076     sfKeyLControl,
00077     sfKeyLShift,
00078     sfKeyLAlt,
00079     sfKeyLSystem,      
00080     sfKeyRControl,
00081     sfKeyRShift,
00082     sfKeyRAlt,
00083     sfKeyRSystem,      
00084     sfKeyMenu,
00085     sfKeyLBracket,     
00086     sfKeyRBracket,     
00087     sfKeySemiColon,    
00088     sfKeyComma,        
00089     sfKeyPeriod,       
00090     sfKeyQuote,        
00091     sfKeySlash,        
00092     sfKeyBackSlash,
00093     sfKeyTilde,        
00094     sfKeyEqual,        
00095     sfKeyDash,         
00096     sfKeySpace,
00097     sfKeyReturn,
00098     sfKeyBack,
00099     sfKeyTab,
00100     sfKeyPageUp,
00101     sfKeyPageDown,
00102     sfKeyEnd,
00103     sfKeyHome,
00104     sfKeyInsert,
00105     sfKeyDelete,
00106     sfKeyAdd,          
00107     sfKeySubtract,     
00108     sfKeyMultiply,     
00109     sfKeyDivide,       
00110     sfKeyLeft,         
00111     sfKeyRight,        
00112     sfKeyUp,           
00113     sfKeyDown,         
00114     sfKeyNumpad0,
00115     sfKeyNumpad1,
00116     sfKeyNumpad2,
00117     sfKeyNumpad3,
00118     sfKeyNumpad4,
00119     sfKeyNumpad5,
00120     sfKeyNumpad6,
00121     sfKeyNumpad7,
00122     sfKeyNumpad8,
00123     sfKeyNumpad9,
00124     sfKeyF1,
00125     sfKeyF2,
00126     sfKeyF3,
00127     sfKeyF4,
00128     sfKeyF5,
00129     sfKeyF6,
00130     sfKeyF7,
00131     sfKeyF8,
00132     sfKeyF9,
00133     sfKeyF10,
00134     sfKeyF11,
00135     sfKeyF12,
00136     sfKeyF13,
00137     sfKeyF14,
00138     sfKeyF15,
00139     sfKeyPause,
00140 
00141     sfKeyCount // For internal use
00142 } sfKeyCode;
00143 
00144 
00148 typedef enum
00149 {
00150     sfButtonLeft,
00151     sfButtonRight,
00152     sfButtonMiddle,
00153     sfButtonX1,
00154     sfButtonX2
00155 } sfMouseButton;
00156 
00157 
00161 typedef enum
00162 {
00163     sfJoyAxisX,
00164     sfJoyAxisY,
00165     sfJoyAxisZ,
00166     sfJoyAxisR,
00167     sfJoyAxisU,
00168     sfJoyAxisV,
00169     sfJoyAxisPOV
00170 } sfJoyAxis;
00171 
00172 
00176 typedef enum
00177 {
00178     sfEvtClosed,
00179     sfEvtResized,
00180     sfEvtLostFocus,
00181     sfEvtGainedFocus,
00182     sfEvtTextEntered,
00183     sfEvtKeyPressed,
00184     sfEvtKeyReleased,
00185     sfEvtMouseWheelMoved,
00186     sfEvtMouseButtonPressed,
00187     sfEvtMouseButtonReleased,
00188     sfEvtMouseMoved,
00189     sfEvtJoyButtonPressed,
00190     sfEvtJoyButtonReleased,
00191     sfEvtJoyMoved
00192 } sfEventType;
00193 
00194 
00198 typedef union
00199 {
00203     struct KeyEvent
00204     {
00205         sfEventType Type;
00206         sfKeyCode   Code;
00207         sfBool      Alt;
00208         sfBool      Control;
00209         sfBool      Shift;
00210     };
00211 
00215     struct TextEvent
00216     {
00217         sfEventType Type;
00218         sfUint16    Unicode;
00219     };
00220 
00224     struct MouseMoveEvent
00225     {
00226         sfEventType  Type;
00227         unsigned int X;
00228         unsigned int Y;
00229     };
00230 
00234     struct MouseButtonEvent
00235     {
00236         sfEventType   Type;
00237         sfMouseButton Button;
00238     };
00239 
00243     struct MouseWheelEvent
00244     {
00245         sfEventType Type;
00246         int         Delta;
00247     };
00248 
00252     struct JoyMoveEvent
00253     {
00254         sfEventType  Type;
00255         unsigned int JoystickId;
00256         sfJoyAxis    Axis;
00257         float        Position;
00258     };
00259 
00263     struct JoyButtonEvent
00264     {
00265         sfEventType  Type;
00266         unsigned int JoystickId;
00267         unsigned int Button;
00268     };
00269 
00273     struct SizeEvent
00274     {
00275         sfEventType  Type;
00276         unsigned int Width;
00277         unsigned int Height;
00278     };
00279 
00281     // Member data
00283     sfEventType             Type; 
00284     struct KeyEvent         Key;
00285     struct TextEvent        Text;
00286     struct MouseMoveEvent   MouseMove;
00287     struct MouseButtonEvent MouseButton;
00288     struct MouseWheelEvent  MouseWheel;
00289     struct JoyMoveEvent     JoyMove;
00290     struct JoyButtonEvent   JoyButton;
00291     struct SizeEvent        Size;
00292 } sfEvent;
00293 
00294 
00295 #endif // SFML_EVENT_H