//////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library // Copyright (C) 2007-2013 Laurent Gomila (laurent.gom@gmail.com)// // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. // // Permission is granted to anyone to use this software for any purpose, // including commercial applications, and to alter it and redistribute it freely, // subject to the following restrictions: // // 1. The origin of this software must not be misrepresented; // you must not claim that you wrote the original software. // If you use this software in a product, an acknowledgment // in the product documentation would be appreciated but is not required. // // 2. Altered source versions must be plainly marked as such, // and must not be misrepresented as being the original software. // // 3. This notice may not be removed or altered from any source distribution. // //////////////////////////////////////////////////////////// #ifndef SFML_EVENT_H #define SFML_EVENT_H //////////////////////////////////////////////////////////// // Headers //////////////////////////////////////////////////////////// #include #include #include #include //////////////////////////////////////////////////////////// /// \brief Definition of all the event types /// //////////////////////////////////////////////////////////// typedef enum { sfEvtClosed, sfEvtResized, sfEvtLostFocus, sfEvtGainedFocus, sfEvtTextEntered, sfEvtKeyPressed, sfEvtKeyReleased, sfEvtMouseWheelMoved, sfEvtMouseButtonPressed, sfEvtMouseButtonReleased, sfEvtMouseMoved, sfEvtMouseEntered, sfEvtMouseLeft, sfEvtJoystickButtonPressed, sfEvtJoystickButtonReleased, sfEvtJoystickMoved, sfEvtJoystickConnected, sfEvtJoystickDisconnected } sfEventType; //////////////////////////////////////////////////////////// /// \brief Keyboard event parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; sfKeyCode code; sfBool alt; sfBool control; sfBool shift; sfBool system; } sfKeyEvent; //////////////////////////////////////////////////////////// /// \brief Text event parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; sfUint32 unicode; } sfTextEvent; //////////////////////////////////////////////////////////// /// \brief Mouse move event parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; int x; int y; } sfMouseMoveEvent; //////////////////////////////////////////////////////////// /// \brief Mouse buttons events parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; sfMouseButton button; int x; int y; } sfMouseButtonEvent; //////////////////////////////////////////////////////////// /// \brief Mouse wheel events parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; int delta; int x; int y; } sfMouseWheelEvent; //////////////////////////////////////////////////////////// /// \brief Joystick axis move event parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; unsigned int joystickId; sfJoystickAxis axis; float position; } sfJoystickMoveEvent; //////////////////////////////////////////////////////////// /// \brief Joystick buttons events parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; unsigned int joystickId; unsigned int button; } sfJoystickButtonEvent; //////////////////////////////////////////////////////////// /// \brief Joystick connection/disconnection event parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; unsigned int joystickId; } sfJoystickConnectEvent; //////////////////////////////////////////////////////////// /// \brief Size events parameters /// //////////////////////////////////////////////////////////// typedef struct { sfEventType type; unsigned int width; unsigned int height; } sfSizeEvent; //////////////////////////////////////////////////////////// /// \brief sfEvent defines a system event and its parameters /// //////////////////////////////////////////////////////////// typedef union { //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// sfEventType type; ///< Type of the event sfSizeEvent size; sfKeyEvent key; sfTextEvent text; sfMouseMoveEvent mouseMove; sfMouseButtonEvent mouseButton; sfMouseWheelEvent mouseWheel; sfJoystickMoveEvent joystickMove; sfJoystickButtonEvent joystickButton; sfJoystickConnectEvent joystickConnect; } sfEvent; #endif // SFML_EVENT_H