aboutsummaryrefslogtreecommitdiff
path: root/backends/events
diff options
context:
space:
mode:
authorJohannes Schickel2010-10-13 15:42:16 +0000
committerJohannes Schickel2010-10-13 15:42:16 +0000
commita2b96a2516cd87203b22f7496a8d5a6b65749da3 (patch)
tree11617735d666c73cebd6979f7df32e01fb09fea1 /backends/events
parent75e8452b6e6a2bf4fb2f588aa00b428a60d873b5 (diff)
downloadscummvm-rg350-a2b96a2516cd87203b22f7496a8d5a6b65749da3.tar.gz
scummvm-rg350-a2b96a2516cd87203b22f7496a8d5a6b65749da3.tar.bz2
scummvm-rg350-a2b96a2516cd87203b22f7496a8d5a6b65749da3.zip
OPENGL: Replace SdlEventManager by SdlEventSource.
Formerly SdlEventManager was a subclass of DefaultEventManager but did not really have anything in common with the idea of our EventManager interface. Now I made a new object SdlEventSource which only subclasses EventSource and which is responsible for obtaining events from SDL (and processing them). svn-id: r53433
Diffstat (limited to 'backends/events')
-rw-r--r--backends/events/sdl/sdl-events.cpp45
-rw-r--r--backends/events/sdl/sdl-events.h14
2 files changed, 27 insertions, 32 deletions
diff --git a/backends/events/sdl/sdl-events.cpp b/backends/events/sdl/sdl-events.cpp
index 20b7b7e957..deea8d35ca 100644
--- a/backends/events/sdl/sdl-events.cpp
+++ b/backends/events/sdl/sdl-events.cpp
@@ -48,13 +48,8 @@
#define JOY_BUT_SPACE 4
#define JOY_BUT_F5 5
-SdlEventManager::SdlEventManager(Common::EventSource *boss)
- :
- _scrollLock(false),
- _joystick(0),
- _lastScreenID(0),
- DefaultEventManager(boss) {
-
+SdlEventSource::SdlEventSource()
+ : _scrollLock(false), _joystick(0), _lastScreenID(0), EventSource() {
// Reset mouse state
memset(&_km, 0, sizeof(_km));
@@ -73,12 +68,12 @@ SdlEventManager::SdlEventManager(Common::EventSource *boss)
}
}
-SdlEventManager::~SdlEventManager() {
+SdlEventSource::~SdlEventSource() {
if (_joystick)
SDL_JoystickClose(_joystick);
}
-int SdlEventManager::mapKey(SDLKey key, SDLMod mod, Uint16 unicode) {
+int SdlEventSource::mapKey(SDLKey key, SDLMod mod, Uint16 unicode) {
if (key >= SDLK_F1 && key <= SDLK_F9) {
return key - SDLK_F1 + Common::ASCII_F1;
} else if (key >= SDLK_KP0 && key <= SDLK_KP9) {
@@ -95,7 +90,7 @@ int SdlEventManager::mapKey(SDLKey key, SDLMod mod, Uint16 unicode) {
return key;
}
-void SdlEventManager::fillMouseEvent(Common::Event &event, int x, int y) {
+void SdlEventSource::fillMouseEvent(Common::Event &event, int x, int y) {
event.mouse.x = x;
event.mouse.y = y;
@@ -104,7 +99,7 @@ void SdlEventManager::fillMouseEvent(Common::Event &event, int x, int y) {
_km.y = y;
}
-void SdlEventManager::handleKbdMouse() {
+void SdlEventSource::handleKbdMouse() {
uint32 curTime = g_system->getMillis();
if (curTime >= _km.last_time + _km.delay_time) {
_km.last_time = curTime;
@@ -173,7 +168,7 @@ void SdlEventManager::handleKbdMouse() {
}
}
-void SdlEventManager::SDLModToOSystemKeyFlags(SDLMod mod, Common::Event &event) {
+void SdlEventSource::SDLModToOSystemKeyFlags(SDLMod mod, Common::Event &event) {
event.kbd.flags = 0;
@@ -198,7 +193,7 @@ void SdlEventManager::SDLModToOSystemKeyFlags(SDLMod mod, Common::Event &event)
event.kbd.flags |= Common::KBD_CAPS;
}
-bool SdlEventManager::pollSdlEvent(Common::Event &event) {
+bool SdlEventSource::pollEvent(Common::Event &event) {
handleKbdMouse();
// If the screen changed, send an Common::EVENT_SCREEN_CHANGED
@@ -219,7 +214,7 @@ bool SdlEventManager::pollSdlEvent(Common::Event &event) {
return false;
}
-bool SdlEventManager::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
switch (ev.type) {
case SDL_KEYDOWN:
return handleKeyDown(ev, event);
@@ -260,7 +255,7 @@ bool SdlEventManager::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
}
-bool SdlEventManager::handleKeyDown(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleKeyDown(SDL_Event &ev, Common::Event &event) {
SDLModToOSystemKeyFlags(SDL_GetModState(), event);
@@ -312,7 +307,7 @@ bool SdlEventManager::handleKeyDown(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::handleKeyUp(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleKeyUp(SDL_Event &ev, Common::Event &event) {
if (remapKey(ev, event))
return true;
@@ -330,14 +325,14 @@ bool SdlEventManager::handleKeyUp(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::handleMouseMotion(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleMouseMotion(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_MOUSEMOVE;
fillMouseEvent(event, ev.motion.x, ev.motion.y);
return true;
}
-bool SdlEventManager::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) {
if (ev.button.button == SDL_BUTTON_LEFT)
event.type = Common::EVENT_LBUTTONDOWN;
else if (ev.button.button == SDL_BUTTON_RIGHT)
@@ -360,7 +355,7 @@ bool SdlEventManager::handleMouseButtonDown(SDL_Event &ev, Common::Event &event)
return true;
}
-bool SdlEventManager::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
if (ev.button.button == SDL_BUTTON_LEFT)
event.type = Common::EVENT_LBUTTONUP;
else if (ev.button.button == SDL_BUTTON_RIGHT)
@@ -376,7 +371,7 @@ bool SdlEventManager::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
if (ev.jbutton.button == JOY_BUT_LMOUSE) {
event.type = Common::EVENT_LBUTTONDOWN;
fillMouseEvent(event, _km.x, _km.y);
@@ -407,7 +402,7 @@ bool SdlEventManager::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
if (ev.jbutton.button == JOY_BUT_LMOUSE) {
event.type = Common::EVENT_LBUTTONUP;
fillMouseEvent(event, _km.x, _km.y);
@@ -438,7 +433,7 @@ bool SdlEventManager::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
int axis = ev.jaxis.value;
if ( axis > JOY_DEADZONE) {
axis -= JOY_DEADZONE;
@@ -486,7 +481,7 @@ bool SdlEventManager::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
return true;
}
-bool SdlEventManager::remapKey(SDL_Event &ev, Common::Event &event) {
+bool SdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
#ifdef LINUPY
// On Yopy map the End button to quit
if ((ev.key.keysym.sym == 293)) {
@@ -554,14 +549,14 @@ bool SdlEventManager::remapKey(SDL_Event &ev, Common::Event &event) {
return false;
}
-void SdlEventManager::toggleMouseGrab() {
+void SdlEventSource::toggleMouseGrab() {
if (SDL_WM_GrabInput(SDL_GRAB_QUERY) == SDL_GRAB_OFF)
SDL_WM_GrabInput(SDL_GRAB_ON);
else
SDL_WM_GrabInput(SDL_GRAB_OFF);
}
-void SdlEventManager::resetKeyboadEmulation(int16 x_max, int16 y_max) {
+void SdlEventSource::resetKeyboadEmulation(int16 x_max, int16 y_max) {
_km.x_max = x_max;
_km.y_max = y_max;
_km.delay_time = 25;
diff --git a/backends/events/sdl/sdl-events.h b/backends/events/sdl/sdl-events.h
index 4bc2277fcd..2c00ab0669 100644
--- a/backends/events/sdl/sdl-events.h
+++ b/backends/events/sdl/sdl-events.h
@@ -35,17 +35,17 @@
#endif
/**
- * The SDL event manager class.
+ * The SDL event source.
*/
-class SdlEventManager : public DefaultEventManager {
-public:
- SdlEventManager(Common::EventSource *boss);
- virtual ~SdlEventManager();
+class SdlEventSource : public virtual Common::EventSource {
+public:
+ SdlEventSource();
+ virtual ~SdlEventSource();
/**
- * Gets and proccess SDL events
+ * Gets and processes SDL events.
*/
- virtual bool pollSdlEvent(Common::Event &event);
+ virtual bool pollEvent(Common::Event &event);
/**
* Resets keyboard emulation after a video screen change