| 
									
										
										
										
											2008-12-29 14:30:38 +00:00
										 |  |  | #include "EventHandler.h"
 | 
					
						
							| 
									
										
										
										
											2009-11-11 11:07:04 +00:00
										 |  |  | #include <stdio.h>
 | 
					
						
							|  |  |  | #include <ctype.h>
 | 
					
						
							| 
									
										
										
										
											2009-01-03 23:33:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if defined HAVE_WX && HAVE_WX
 | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | #include <wx/wx.h>
 | 
					
						
							| 
									
										
										
										
											2009-01-03 23:33:45 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  | EventHandler *EventHandler::m_Instance = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | EventHandler::EventHandler() { | 
					
						
							| 
									
										
										
										
											2009-06-28 20:53:26 +00:00
										 |  |  | 	memset(keys, 0, sizeof(keys)); | 
					
						
							|  |  |  | 	memset(mouse, 0, sizeof(mouse)); | 
					
						
							|  |  |  | 	memset(joys, 0, sizeof(joys)); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-04 21:07:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  | EventHandler::~EventHandler() { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  | EventHandler *EventHandler::GetInstance() { | 
					
						
							| 
									
										
										
										
											2009-06-13 22:08:01 +00:00
										 |  |  |     // fprintf(stderr, "handler instance %p\n", m_Instance);
 | 
					
						
							| 
									
										
										
										
											2010-02-16 04:34:41 +00:00
										 |  |  | 	return m_Instance; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-05 22:51:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 04:34:41 +00:00
										 |  |  | void EventHandler::Init() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-05 23:34:53 +00:00
										 |  |  | 	m_Instance = new EventHandler(); | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-16 04:34:41 +00:00
										 |  |  | void EventHandler::Shutdown() { | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  |     if (m_Instance) | 
					
						
							| 
									
										
										
										
											2009-01-06 08:30:31 +00:00
										 |  |  |        	delete m_Instance; | 
					
						
							| 
									
										
										
										
											2009-06-13 22:08:01 +00:00
										 |  |  |     // fprintf(stderr, "deleting instance %p\n", m_Instance);
 | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  |     m_Instance = 0; | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | bool EventHandler::RegisterEventListener(listenFuncPtr func, Keys key) { | 
					
						
							|  |  |  |     if (key.inputType == KeyboardInput) { | 
					
						
							| 
									
										
										
										
											2009-06-13 22:08:01 +00:00
										 |  |  | 	// fprintf(stderr, "Registering %d:%d  %p %p \n", key.keyCode, key.mods, func, this);
 | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  | 	if (key.keyCode == sf::Key::Count || key.mods >= NUMMODS ||   | 
					
						
							| 
									
										
										
										
											2009-01-05 22:51:35 +00:00
										 |  |  | 	    key.keyCode >= NUMKEYS)  | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | 	    return false; | 
					
						
							| 
									
										
										
										
											2009-01-05 22:51:35 +00:00
										 |  |  | 	if (keys[key.keyCode][key.mods] && keys[key.keyCode][key.mods] != func) | 
					
						
							|  |  |  | 	    return false | 
					
						
							|  |  |  | ; | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | 	keys[key.keyCode][key.mods] = func; | 
					
						
							|  |  |  |     } else if (key.inputType == MouseInput) { | 
					
						
							|  |  |  | 	if (mouse[key.mouseButton]) | 
					
						
							|  |  |  | 	    return false; | 
					
						
							|  |  |  | 	mouse[key.mouseButton] = func; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2008-12-30 10:35:52 +00:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | bool EventHandler::RemoveEventListener(Keys key) { | 
					
						
							|  |  |  |     if (key.inputType == KeyboardInput) { | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  | 	if ((key.keyCode == sf::Key::Count || key.keyCode >= NUMKEYS | 
					
						
							|  |  |  |              || key.mods >= NUMMODS) && ! keys[key.keyCode][key.mods]) | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | 	    return false; | 
					
						
							|  |  |  | 	keys[key.keyCode][key.mods] = NULL; | 
					
						
							|  |  |  |     } else if (key.inputType == MouseInput) { | 
					
						
							|  |  |  | 	if (! mouse[key.mouseButton]) | 
					
						
							|  |  |  | 	    return false; | 
					
						
							|  |  |  | 	mouse[key.mouseButton] = NULL; | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  |     return true;  | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | void EventHandler::Update() { | 
					
						
							|  |  |  |     for (unsigned int i = 0; i < eventQueue.size();i++) { | 
					
						
							|  |  |  | 	sf::Event ev = eventQueue.front(); | 
					
						
							|  |  |  | 	eventQueue.pop(); | 
					
						
							| 
									
										
										
										
											2009-01-06 08:30:31 +00:00
										 |  |  | 	fprintf(stderr, "Updating event type %d code %d mod %d func %p %p\n", ev.Type, ev.Key.Code, ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control, keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control], this); | 
					
						
							| 
									
										
										
										
											2009-01-05 22:51:35 +00:00
										 |  |  | 	if(keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control]) | 
					
						
							|  |  |  | 	    keys[ev.Key.Code][ev.Key.Alt+2*ev.Key.Shift+4*ev.Key.Control](ev); | 
					
						
							| 
									
										
										
										
											2008-12-30 10:35:52 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | bool EventHandler::addEvent(sf::Event *ev) { | 
					
						
							| 
									
										
										
										
											2008-12-30 10:35:52 +00:00
										 |  |  |     eventQueue.push(*ev); | 
					
						
							| 
									
										
										
										
											2009-01-06 08:30:31 +00:00
										 |  |  |     fprintf(stderr, "Got event type %d code %d %p\n", ev->Type, ev->Key.Code, this);  | 
					
						
							| 
									
										
										
										
											2008-12-30 10:35:52 +00:00
										 |  |  |     return true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | bool EventHandler::TestEvent (Keys k, sf::Event e) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     //Mouse event
 | 
					
						
							|  |  |  |     if (k.inputType==MouseInput && k.eventType==e.Type && k.mouseButton==e.MouseButton.Button) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return (true); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     //Keyboard event
 | 
					
						
							|  |  |  |     if (k.inputType==KeyboardInput && k.eventType==e.Type && k.keyCode==e.Key.Code) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return (true); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     return (false); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-03 23:33:45 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if defined HAVE_WX && HAVE_WX 
 | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | // Taken from wxw source code
 | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  | sf::Key::Code EventHandler::wxCharCodeToSF(int id) | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  |     sf::Key::Code sfKey; | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     switch (id) { | 
					
						
							| 
									
										
										
										
											2009-01-01 10:52:20 +00:00
										 |  |  | //  case WXK_CANCEL:          sfKey = sf::Key::Cancel; break;
 | 
					
						
							|  |  |  | //  case WXK_BACK:            sfKey = sf::Key::BackSpace; break;
 | 
					
						
							|  |  |  |     case WXK_TAB:             sfKey = sf::Key::Tab; break; | 
					
						
							|  |  |  | //  case WXK_CLEAR:           sfKey = sf::Key::Clear; break;
 | 
					
						
							|  |  |  |     case WXK_RETURN:          sfKey = sf::Key::Return; break; | 
					
						
							|  |  |  |     case WXK_SHIFT:           sfKey = sf::Key::LShift; break; | 
					
						
							|  |  |  |     case WXK_CONTROL:         sfKey = sf::Key::LControl; break; | 
					
						
							|  |  |  |     case WXK_ALT:             sfKey = sf::Key::LAlt; break; | 
					
						
							|  |  |  | //  case WXK_CAPITAL:         sfKey = sf::Key::Caps_Lock; break;
 | 
					
						
							|  |  |  |     case WXK_MENU :           sfKey = sf::Key::Menu; break; | 
					
						
							|  |  |  |     case WXK_PAUSE:           sfKey = sf::Key::Pause; break; | 
					
						
							|  |  |  |     case WXK_ESCAPE:          sfKey = sf::Key::Escape; break; | 
					
						
							|  |  |  |     case WXK_SPACE:           sfKey = sf::Key::Space; break; | 
					
						
							|  |  |  |     case WXK_PAGEUP:          sfKey = sf::Key::PageUp; break; | 
					
						
							|  |  |  |     case WXK_PAGEDOWN:        sfKey = sf::Key::PageDown; break; | 
					
						
							|  |  |  |     case WXK_END:             sfKey = sf::Key::End; break; | 
					
						
							|  |  |  |     case WXK_HOME :           sfKey = sf::Key::Home; break; | 
					
						
							|  |  |  |     case WXK_LEFT :           sfKey = sf::Key::Left; break; | 
					
						
							|  |  |  |     case WXK_UP:              sfKey = sf::Key::Up; break; | 
					
						
							|  |  |  |     case WXK_RIGHT:           sfKey = sf::Key::Right; break; | 
					
						
							|  |  |  |     case WXK_DOWN :           sfKey = sf::Key::Down; break; | 
					
						
							|  |  |  | //  case WXK_SELECT:          sfKey = sf::Key::Select; break;
 | 
					
						
							|  |  |  | //  case WXK_PRINT:           sfKey = sf::Key::Print; break;
 | 
					
						
							|  |  |  | //  case WXK_EXECUTE:         sfKey = sf::Key::Execute; break;
 | 
					
						
							|  |  |  |     case WXK_INSERT:          sfKey = sf::Key::Insert; break; | 
					
						
							|  |  |  |     case WXK_DELETE:          sfKey = sf::Key::Delete; break; | 
					
						
							|  |  |  | //  case WXK_HELP :           sfKey = sf::Key::Help; break;
 | 
					
						
							|  |  |  |     case WXK_NUMPAD0:         sfKey = sf::Key::Numpad0; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_INSERT:   sfKey = sf::Key::Insert; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD1:         sfKey = sf::Key::Numpad1; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_END:      sfKey = sf::Key::End; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD2:         sfKey = sf::Key::Numpad2; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_DOWN:     sfKey = sf::Key::Down; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD3:         sfKey = sf::Key::Numpad3; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_PAGEDOWN: sfKey = sf::Key::PageDown; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD4:         sfKey = sf::Key::Numpad4; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_LEFT:     sfKey = sf::Key::Left; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD5:         sfKey = sf::Key::Numpad5; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD6:         sfKey = sf::Key::Numpad6; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_RIGHT:    sfKey = sf::Key::Right; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD7:         sfKey = sf::Key::Numpad7; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_HOME:     sfKey = sf::Key::Home; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD8:         sfKey = sf::Key::Numpad8; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_UP:       sfKey = sf::Key::Up; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD9:         sfKey = sf::Key::Numpad9; break;  | 
					
						
							|  |  |  |     case WXK_NUMPAD_PAGEUP:   sfKey = sf::Key::PageUp; break; | 
					
						
							|  |  |  | //  case WXK_NUMPAD_DECIMAL:  sfKey = sf::Key::Decimal; break; 
 | 
					
						
							|  |  |  |     case WXK_NUMPAD_DELETE:   sfKey = sf::Key::Delete; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD_MULTIPLY: sfKey = sf::Key::Multiply; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD_ADD:      sfKey = sf::Key::Add; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD_SUBTRACT: sfKey = sf::Key::Subtract; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD_DIVIDE:   sfKey = sf::Key::Divide; break; | 
					
						
							|  |  |  |     case WXK_NUMPAD_ENTER:    sfKey = sf::Key::Return; break; | 
					
						
							|  |  |  | //  case WXK_NUMPAD_SEPARATOR:sfKey = sf::Key::Separator; break;
 | 
					
						
							|  |  |  |     case WXK_F1:              sfKey = sf::Key::F1; break; | 
					
						
							|  |  |  |     case WXK_F2:              sfKey = sf::Key::F2; break; | 
					
						
							|  |  |  |     case WXK_F3:              sfKey = sf::Key::F3; break; | 
					
						
							|  |  |  |     case WXK_F4:              sfKey = sf::Key::F4; break; | 
					
						
							|  |  |  |     case WXK_F5:              sfKey = sf::Key::F5; break; | 
					
						
							|  |  |  |     case WXK_F6:              sfKey = sf::Key::F6; break; | 
					
						
							|  |  |  |     case WXK_F7:              sfKey = sf::Key::F7; break; | 
					
						
							|  |  |  |     case WXK_F8:              sfKey = sf::Key::F8; break; | 
					
						
							|  |  |  |     case WXK_F9:              sfKey = sf::Key::F9; break; | 
					
						
							|  |  |  |     case WXK_F10:             sfKey = sf::Key::F10; break; | 
					
						
							|  |  |  |     case WXK_F11:             sfKey = sf::Key::F11; break; | 
					
						
							|  |  |  |     case WXK_F12:             sfKey = sf::Key::F12; break; | 
					
						
							|  |  |  |     case WXK_F13:             sfKey = sf::Key::F13; break; | 
					
						
							|  |  |  |     case WXK_F14:             sfKey = sf::Key::F14; break; | 
					
						
							|  |  |  |     case WXK_F15:             sfKey = sf::Key::F15; break; | 
					
						
							|  |  |  | //  case WXK_NUMLOCK:         sfKey = sf::Key::Num_Lock; break;
 | 
					
						
							|  |  |  | //  case WXK_SCROLL:          sfKey = sf::Key::Scroll_Lock; break;
 | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  |     default: | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // To lower (will tolower work on windows?)
 | 
					
						
							|  |  |  |         if (id >= 'A' && id <= 'Z')  | 
					
						
							|  |  |  |             id = id - 'A' + 'a'; | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  | 	if ((id >= 'a' && id <= 'z') ||  | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  | 	    (id  >= '0' && id <= '9'))  | 
					
						
							|  |  |  | 	    sfKey = (sf::Key::Code)id;    | 
					
						
							|  |  |  | 	else  | 
					
						
							| 
									
										
										
										
											2009-01-02 14:10:52 +00:00
										 |  |  | 	    sfKey = sf::Key::Count; // Invalid key
 | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  |          | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-01-05 17:46:36 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  |     return sfKey; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-03 23:33:45 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | void EventHandler::SFKeyToString(sf::Key::Code keycode, char *keyStr) { | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  |     switch (keycode) { | 
					
						
							| 
									
										
										
										
											2008-12-29 20:36:17 +00:00
										 |  |  | /*  case sf::Key::A = 'a': sprintf(keyStr, "UP"); break;
 | 
					
						
							|  |  |  |     case sf::Key::B = 'b': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::C = 'c': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::D = 'd': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::E = 'e': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::F = 'f': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::G = 'g': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::H = 'h': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::I = 'i': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::J = 'j': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::K = 'k': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::L = 'l': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::M = 'm': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::N = 'n': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::O = 'o': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::P = 'p': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Q = 'q': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::R = 'r': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::S = 's': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::T = 't': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::U = 'u': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::V = 'v': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::W = 'w': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::X = 'x': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Y = 'y': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Z = 'z': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num0 = '0': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num1 = '1': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num2 = '2': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num3 = '3': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num4 = '4': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num5 = '5': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num6 = '6': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num7 = '7': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num8 = '8': sprintf(keyStr, "UP"); break; | 
					
						
							|  |  |  |     case sf::Key::Num9 = '9': sprintf(keyStr, "UP"); break;*/  | 
					
						
							| 
									
										
										
										
											2009-01-01 10:52:20 +00:00
										 |  |  |     case sf::Key::Escape:      sprintf(keyStr, "Escape"); break; | 
					
						
							|  |  |  |     case sf::Key::LControl:    sprintf(keyStr, "LControl"); break; | 
					
						
							|  |  |  |     case sf::Key::LShift:      sprintf(keyStr, "LShift"); break; | 
					
						
							|  |  |  |     case sf::Key::LAlt:        sprintf(keyStr, "LAlt"); break; | 
					
						
							|  |  |  |     case sf::Key::LSystem:     sprintf(keyStr, "LSystem"); break; | 
					
						
							|  |  |  |     case sf::Key::RControl:    sprintf(keyStr, "RControl"); break; | 
					
						
							|  |  |  |     case sf::Key::RShift:      sprintf(keyStr, "RShift"); break; | 
					
						
							|  |  |  |     case sf::Key::RAlt:        sprintf(keyStr, "RAlt"); break; | 
					
						
							|  |  |  |     case sf::Key::RSystem:     sprintf(keyStr, "RSystem"); break; | 
					
						
							|  |  |  |     case sf::Key::Menu:        sprintf(keyStr, "Menu"); break; | 
					
						
							|  |  |  |     case sf::Key::LBracket:    sprintf(keyStr, "LBracket"); break; | 
					
						
							|  |  |  |     case sf::Key::RBracket:    sprintf(keyStr, "RBracket"); break; | 
					
						
							|  |  |  |     case sf::Key::SemiColon:   sprintf(keyStr, ";"); break; | 
					
						
							|  |  |  |     case sf::Key::Comma:       sprintf(keyStr, ","); break; | 
					
						
							|  |  |  |     case sf::Key::Period:      sprintf(keyStr, "."); break; | 
					
						
							|  |  |  |     case sf::Key::Quote:       sprintf(keyStr, "\'"); break; | 
					
						
							|  |  |  |     case sf::Key::Slash:       sprintf(keyStr, "/"); break; | 
					
						
							|  |  |  |     case sf::Key::BackSlash:   sprintf(keyStr, "\\"); break; | 
					
						
							|  |  |  |     case sf::Key::Tilde:       sprintf(keyStr, "~"); break; | 
					
						
							|  |  |  |     case sf::Key::Equal:       sprintf(keyStr, "="); break; | 
					
						
							|  |  |  |     case sf::Key::Dash:        sprintf(keyStr, "-"); break; | 
					
						
							|  |  |  |     case sf::Key::Space:       sprintf(keyStr, "Space"); break; | 
					
						
							|  |  |  |     case sf::Key::Return:      sprintf(keyStr, "Return"); break; | 
					
						
							|  |  |  |     case sf::Key::Back:        sprintf(keyStr, "Back"); break; | 
					
						
							|  |  |  |     case sf::Key::Tab:         sprintf(keyStr, "Tab"); break; | 
					
						
							|  |  |  |     case sf::Key::PageUp:      sprintf(keyStr, "Page Up"); break; | 
					
						
							|  |  |  |     case sf::Key::PageDown:    sprintf(keyStr, "Page Down"); break; | 
					
						
							|  |  |  |     case sf::Key::End:         sprintf(keyStr, "End"); break; | 
					
						
							|  |  |  |     case sf::Key::Home:        sprintf(keyStr, "Home"); break; | 
					
						
							|  |  |  |     case sf::Key::Insert:      sprintf(keyStr, "Insert"); break; | 
					
						
							|  |  |  |     case sf::Key::Delete:      sprintf(keyStr, "Delete"); break; | 
					
						
							|  |  |  |     case sf::Key::Add:         sprintf(keyStr, "+"); break; | 
					
						
							|  |  |  |     case sf::Key::Subtract:    sprintf(keyStr, "-"); break; | 
					
						
							|  |  |  |     case sf::Key::Multiply:    sprintf(keyStr, "*"); break; | 
					
						
							|  |  |  |     case sf::Key::Divide:      sprintf(keyStr, "/"); break; | 
					
						
							|  |  |  |     case sf::Key::Left:        sprintf(keyStr, "Left"); break; | 
					
						
							|  |  |  |     case sf::Key::Right:       sprintf(keyStr, "Right"); break; | 
					
						
							| 
									
										
										
										
											2009-01-29 23:35:31 +00:00
										 |  |  |     case sf::Key::Up:          sprintf(keyStr, "Up"); break; | 
					
						
							| 
									
										
										
										
											2009-01-01 10:52:20 +00:00
										 |  |  |     case sf::Key::Down:        sprintf(keyStr, "Down"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad0:     sprintf(keyStr, "NP 0"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad1:     sprintf(keyStr, "NP 1"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad2:     sprintf(keyStr, "NP 2"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad3:     sprintf(keyStr, "NP 3"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad4:     sprintf(keyStr, "NP 4"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad5:     sprintf(keyStr, "NP 5"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad6:     sprintf(keyStr, "NP 6"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad7:     sprintf(keyStr, "NP 7"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad8:     sprintf(keyStr, "NP 8"); break; | 
					
						
							|  |  |  |     case sf::Key::Numpad9:     sprintf(keyStr, "NP 9"); break; | 
					
						
							|  |  |  |     case sf::Key::F1:          sprintf(keyStr, "F1"); break; | 
					
						
							|  |  |  |     case sf::Key::F2:          sprintf(keyStr, "F2"); break; | 
					
						
							|  |  |  |     case sf::Key::F3:          sprintf(keyStr, "F3"); break; | 
					
						
							|  |  |  |     case sf::Key::F4:          sprintf(keyStr, "F4"); break; | 
					
						
							|  |  |  |     case sf::Key::F5:          sprintf(keyStr, "F5"); break; | 
					
						
							|  |  |  |     case sf::Key::F6:          sprintf(keyStr, "F6"); break; | 
					
						
							|  |  |  |     case sf::Key::F7:          sprintf(keyStr, "F7"); break; | 
					
						
							|  |  |  |     case sf::Key::F8:          sprintf(keyStr, "F8"); break; | 
					
						
							|  |  |  |     case sf::Key::F9:          sprintf(keyStr, "F9"); break; | 
					
						
							|  |  |  |     case sf::Key::F10:         sprintf(keyStr, "F10"); break; | 
					
						
							|  |  |  |     case sf::Key::F11:         sprintf(keyStr, "F11"); break; | 
					
						
							|  |  |  |     case sf::Key::F12:         sprintf(keyStr, "F12"); break; | 
					
						
							|  |  |  |     case sf::Key::F13:         sprintf(keyStr, "F13"); break; | 
					
						
							|  |  |  |     case sf::Key::F14:         sprintf(keyStr, "F14"); break; | 
					
						
							|  |  |  |     case sf::Key::F15:         sprintf(keyStr, "F15"); break; | 
					
						
							| 
									
										
										
										
											2009-01-29 23:35:31 +00:00
										 |  |  |     case sf::Key::Pause:       sprintf(keyStr, "Pause"); break; | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  |     default:                    | 
					
						
							|  |  |  | 	if (keycode > sf::Key::Escape) | 
					
						
							|  |  |  | 	    sprintf(keyStr, "Invalid Key"); | 
					
						
							|  |  |  | 	else | 
					
						
							| 
									
										
										
										
											2009-01-29 23:35:31 +00:00
										 |  |  | 	    sprintf(keyStr, "%c", toupper(keycode)); | 
					
						
							| 
									
										
										
										
											2009-01-04 22:58:20 +00:00
										 |  |  | 	break; | 
					
						
							| 
									
										
										
										
											2008-12-29 20:12:19 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class EventHandlerCleaner | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  |     ~EventHandlerCleaner() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-01-06 08:30:31 +00:00
										 |  |  | 	//EventHandler::Destroy();
 | 
					
						
							| 
									
										
										
										
											2009-01-05 13:39:54 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } EventHandlerCleanerInst; |