From 83dc15e5a9736259bdd050d602936fb897727020 Mon Sep 17 00:00:00 2001 From: Rtch90 <ritchie.cunningham@protonmail.com> Date: Thu, 5 Apr 2012 22:50:12 +0100 Subject: [PATCH] [Add] Added input methods for GLWindow::ProcessEvents(void). --- src/Main/GLWindow.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/Main/GLWindow.cpp b/src/Main/GLWindow.cpp index 3afcf65..189f2a1 100644 --- a/src/Main/GLWindow.cpp +++ b/src/Main/GLWindow.cpp @@ -190,7 +190,44 @@ void GLWindow::Destroy(void) { } void GLWindow::ProcessEvents(void) { - // Events are boring.. do the later. + XEvent event; + + while(XPending(_display) > 0) { + XNextEvent(_display, &event); + switch(event.type) { + case Expose: + if(event.xexpose.count != 0) + break; + break; + case ConfigureNotify: + { + int width = event.xconfigure.width; + int height = event.xconfigure.height; + GetAttachedGame()->OnResize(width, height); + } + break; + case keyPress: + { + if(XLookupKeysym(&event.xkey, 0) = XK_Escape) { + _isRunning = false; + } + // Register the key press with keyboard interface. + } + break; + case KeyRelease: + { + // Code here NAW! + } + break; + case ClientMessage: + if(string(XGetAtomName(_display, event.xclient.message_type)) == string("WM_PROTOCOLA")) { + _isRunning = true; + } + break; + default: + break; + } + } } float GLWindow::GetElapsedSeconds(void) {