Event.h

Go to the documentation of this file.
00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007-2008-2008 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     sfEvtMouseEntered,
00190     sfEvtMouseLeft,
00191     sfEvtJoyButtonPressed,
00192     sfEvtJoyButtonReleased,
00193     sfEvtJoyMoved
00194 } sfEventType;
00195 
00196 
00200 struct sfKeyEvent
00201 {
00202     sfEventType Type;
00203     sfKeyCode   Code;
00204     sfBool      Alt;
00205     sfBool      Control;
00206     sfBool      Shift;
00207 };
00208 
00212 struct sfTextEvent
00213 {
00214     sfEventType Type;
00215     sfUint32    Unicode;
00216 };
00217 
00221 struct sfMouseMoveEvent
00222 {
00223     sfEventType Type;
00224     int         X;
00225     int         Y;
00226 };
00227 
00231 struct sfMouseButtonEvent
00232 {
00233     sfEventType   Type;
00234     sfMouseButton Button;
00235     int           X;
00236     int           Y;
00237 };
00238 
00242 struct sfMouseWheelEvent
00243 {
00244     sfEventType Type;
00245     int         Delta;
00246 };
00247 
00251 struct sfJoyMoveEvent
00252 {
00253     sfEventType  Type;
00254     unsigned int JoystickId;
00255     sfJoyAxis    Axis;
00256     float        Position;
00257 };
00258 
00262 struct sfJoyButtonEvent
00263 {
00264     sfEventType  Type;
00265     unsigned int JoystickId;
00266     unsigned int Button;
00267 };
00268 
00272 struct sfSizeEvent
00273 {
00274     sfEventType  Type;
00275     unsigned int Width;
00276     unsigned int Height;
00277 };
00278 
00279 
00283 typedef union
00284 {
00286     // Member data
00288     sfEventType               Type; 
00289     struct sfKeyEvent         Key;
00290     struct sfTextEvent        Text;
00291     struct sfMouseMoveEvent   MouseMove;
00292     struct sfMouseButtonEvent MouseButton;
00293     struct sfMouseWheelEvent  MouseWheel;
00294     struct sfJoyMoveEvent     JoyMove;
00295     struct sfJoyButtonEvent   JoyButton;
00296     struct sfSizeEvent        Size;
00297 } sfEvent;
00298 
00299 
00300 #endif // SFML_EVENT_H