From e0f0cfd81fbec4fc20a591409f1bef67e16d62e7 Mon Sep 17 00:00:00 2001 From: pixel Date: Tue, 20 May 2003 01:53:24 +0000 Subject: Bugfixes --- lib/engine.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lib/engine.cc') diff --git a/lib/engine.cc b/lib/engine.cc index 036aa25..6792706 100644 --- a/lib/engine.cc +++ b/lib/engine.cc @@ -18,8 +18,18 @@ Uint32 mogltk::engine::curticks; mogltk::glbase * mogltk::engine::glbase_o = 0; mogltk::base * mogltk::engine::base_o = 0; +mogltk::engine::keyevent * mogltk::engine::keyevent_h = 0; + #define UPDATERATE 1000 +void mogltk::engine::keyevent::up(SDL_keysym) { + printm(M_INFO, "Generic keyevent::up called\n"); +} + +void mogltk::engine::keyevent::down(SDL_keysym) { + printm(M_INFO, "Generic keyevent::down called\n"); +} + int mogltk::engine::setup() throw(GeneralException) { if (inited) { printm(M_WARNING, _("mogltk::engine::setup() called twice, ignoring second call.\n")); @@ -175,6 +185,13 @@ void mogltk::engine::pollevents() { printm(M_INFO, "SDL keysym: %i - Unicode: %04x = `%c`- modifiers: %04x\n", event.key.keysym.sym, event.key.keysym.unicode, event.key.keysym.unicode, event.key.keysym.mod); if (event.key.keysym.sym == 27) hastoreturn = quitrequest = true; + if (keyevent_h) { + if (event.key.state == SDL_PRESSED) { + keyevent_h->down(event.key.keysym); + } else { + keyevent_h->up(event.key.keysym); + } + } break; case SDL_MOUSEMOTION: printm(M_INFO, "Mouse slept over the screen - (%i, %i)\n", event.motion.x, event.motion.y); @@ -186,6 +203,10 @@ void mogltk::engine::pollevents() { if (cursorvisible) hastoreturn = true; break; + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + printm(M_INFO, String("Mouse button %02x ") + (event.button.state == SDL_PRESSED ? "pressed" : "released") + " at (%i, %i)\n", event.button.button, event.button.x, event.button.y); + break; case SDL_QUIT: printm(M_INFO, "Quit requested\n"); hastoreturn = quitrequest = true; @@ -249,3 +270,7 @@ void mogltk::engine::unlockmouse() { locked = 0; } +void mogltk::engine::setkeyevent(keyevent * k) { + printm(M_INFO, "Setting up a new keyevent\n"); + keyevent_h = k; +} -- cgit v1.2.3