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', sfKeyZ = 'z', sfKeyE = 'e', sfKeyR = 'r', sfKeyT = 't', sfKeyY = 'y', sfKeyU = 'u', sfKeyI = 'i',
00040     sfKeyO = 'o', sfKeyP = 'p', sfKeyQ = 'q', sfKeyS = 's', sfKeyD = 'd', sfKeyF = 'f', sfKeyG = 'g', sfKeyH = 'h',
00041     sfKeyJ = 'j', sfKeyK = 'k', sfKeyL = 'l', sfKeyM = 'm', sfKeyW = 'w', sfKeyX = 'x', sfKeyC = 'c', sfKeyV = 'v',
00042     sfKeyB = 'b', sfKeyN = 'n',
00043     sfKeyNum0 = '0', sfKeyNum1 = '1', sfKeyNum2 = '2', sfKeyNum3 = '3', sfKeyNum4 = '4',
00044     sfKeyNum5 = '5', sfKeyNum6 = '6', sfKeyNum7 = '7', sfKeyNum8 = '8', sfKeyNum9 = '9', 
00045     sfKeyEscape = 256,
00046     sfKeyControl, sfKeyShift, sfKeyAlt,
00047     sfKeySpace, sfKeyReturn, sfKeyBack, sfKeyTab, sfKeyPageUp, sfKeyPageDown, sfKeyEnd, sfKeyHome, sfKeyInsert,
00048     sfKeyDelete, sfKeyAdd, sfKeySubtract, sfKeyMultiply, sfKeyDivide,
00049     sfKeyLeft, sfKeyRight, sfKeyUp, sfKeyDown,
00050     sfKeyNumpad0, sfKeyNumpad1, sfKeyNumpad2, sfKeyNumpad3, sfKeyNumpad4, sfKeyNumpad5, sfKeyNumpad6, sfKeyNumpad7,
00051     sfKeyNumpad8, sfKeyNumpad9,
00052     sfKeyF1, sfKeyF2, sfKeyF3, sfKeyF4, sfKeyF5, sfKeyF6, sfKeyF7, sfKeyF8, sfKeyF9, sfKeyF10, sfKeyF11, sfKeyF12,
00053     sfKeyF13, sfKeyF14, sfKeyF15,
00054     sfKeyPause,
00055 
00056     sfKeyCount // For internal use
00057 } sfKeyCode;
00058 
00059 
00063 typedef enum
00064 {
00065     sfButtonLeft,
00066     sfButtonRight,
00067     sfButtonMiddle,
00068     sfButtonX1,
00069     sfButtonX2
00070 } sfMouseButton;
00071 
00072 
00076 typedef enum
00077 {
00078     sfJoyAxisX,
00079     sfJoyAxisY,
00080     sfJoyAxisZ,
00081     sfJoyAxisR,
00082     sfJoyAxisU,
00083     sfJoyAxisV,
00084     sfJoyAxisPOV
00085 } sfJoyAxis;
00086 
00087 
00091 typedef enum
00092 {
00093     sfEvtClosed,
00094     sfEvtResized,
00095     sfEvtLostFocus,
00096     sfEvtGainedFocus,
00097     sfEvtTextEntered,
00098     sfEvtKeyPressed,
00099     sfEvtKeyReleased,
00100     sfEvtMouseWheelMoved,
00101     sfEvtMouseButtonPressed,
00102     sfEvtMouseButtonReleased,
00103     sfEvtMouseMoved,
00104     sfEvtJoyButtonPressed,
00105     sfEvtJoyButtonReleased,
00106     sfEvtJoyMoved
00107 } sfEventType;
00108 
00109 
00113 typedef union
00114 {
00116     // Member data
00118     sfEventType Type; 
00119 
00123     struct
00124     {
00125         sfEventType Type;
00126         sfUint16    Unicode;
00127     } Text;
00128 
00132     struct
00133     {
00134         sfEventType Type;
00135         sfKeyCode   Code;
00136         sfBool      Alt;
00137         sfBool      Control;
00138         sfBool      Shift;
00139     } Key;
00140 
00144     struct
00145     {
00146         sfEventType  Type;
00147         unsigned int X;
00148         unsigned int Y;
00149     } MouseMove;
00150 
00154     struct
00155     {
00156         sfEventType   Type;
00157         sfMouseButton Button;
00158     } MouseButton;
00159 
00163     struct
00164     {
00165         sfEventType Type;
00166         int         Delta;
00167     } MouseWheel;
00168 
00172     struct
00173     {
00174         sfEventType  Type;
00175         unsigned int JoystickId;
00176         sfJoyAxis    Axis;
00177         float        Position;
00178     } JoyMove;
00179 
00183     struct
00184     {
00185         sfEventType  Type;
00186         unsigned int JoystickId;
00187         unsigned int Button;
00188     } JoyButton;
00189 
00193     struct
00194     {
00195         sfEventType  Type;
00196         unsigned int Width;
00197         unsigned int Height;
00198     } Size;
00199 } sfEvent;
00200 
00201 
00202 #endif // SFML_EVENT_H