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) {