summaryrefslogtreecommitdiff
path: root/lib/engine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/engine.cc')
-rw-r--r--lib/engine.cc25
1 files changed, 25 insertions, 0 deletions
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;
+}