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