1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-18 13:12:50 +00:00

90 lines
2.1 KiB
C++
Raw Normal View History

#ifndef _SFO_EVENTS_H
#define _SFO_EVENTS_H
2015-01-31 23:27:34 +01:00
#include <SDL_types.h>
#include <SDL_events.h>
////////////
// Events //
////////////
2015-05-13 16:50:47 +02:00
namespace SDLUtil
{
/** Extended mouse event struct where we treat the wheel like an axis, like everyone expects */
struct MouseMotionEvent : SDL_MouseMotionEvent {
Sint32 zrel;
Sint32 z;
};
///////////////
// Listeners //
///////////////
class MouseListener
{
public:
virtual ~MouseListener() {}
2014-02-13 15:08:40 +01:00
virtual void mouseMoved( const MouseMotionEvent &arg ) = 0;
virtual void mousePressed( const SDL_MouseButtonEvent &arg, Uint8 id ) = 0;
virtual void mouseReleased( const SDL_MouseButtonEvent &arg, Uint8 id ) = 0;
virtual void mouseWheelMoved( const SDL_MouseWheelEvent &arg) = 0;
};
class SensorListener
{
public:
virtual ~SensorListener() {}
virtual void sensorUpdated(const SDL_SensorEvent &arg) = 0;
virtual void displayOrientationChanged() = 0;
};
class KeyListener
{
public:
virtual ~KeyListener() {}
2013-06-16 19:43:59 +02:00
virtual void textInput (const SDL_TextInputEvent& arg) {}
2014-02-13 15:08:40 +01:00
virtual void keyPressed(const SDL_KeyboardEvent &arg) = 0;
virtual void keyReleased(const SDL_KeyboardEvent &arg) = 0;
};
2014-12-08 21:57:32 -06:00
class ControllerListener
{
public:
2014-12-08 21:57:32 -06:00
virtual ~ControllerListener() {}
/** @remarks Joystick button down event */
virtual void buttonPressed(int deviceID, const SDL_ControllerButtonEvent &evt) = 0;
/** @remarks Joystick button up event */
virtual void buttonReleased(int deviceID, const SDL_ControllerButtonEvent &evt) = 0;
/** @remarks Joystick axis moved event */
virtual void axisMoved(int deviceID, const SDL_ControllerAxisEvent &arg) = 0;
2014-12-08 21:57:32 -06:00
/** @remarks Joystick Added **/
virtual void controllerAdded(int deviceID, const SDL_ControllerDeviceEvent &arg) = 0;
2014-12-08 21:57:32 -06:00
/** @remarks Joystick Removed **/
virtual void controllerRemoved(const SDL_ControllerDeviceEvent &arg) = 0;
};
class WindowListener
{
public:
virtual ~WindowListener() {}
/** @remarks The window's visibility changed */
2015-01-31 23:27:34 +01:00
virtual void windowVisibilityChange( bool visible ) {}
virtual void windowClosed () {}
2013-07-29 02:32:08 +02:00
virtual void windowResized (int x, int y) {}
};
}
#endif