From d2b36e6c65ec8126c0ebc96adb7e011e78a5eacc Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Tue, 1 Nov 2016 00:28:16 -0400 Subject: Initial commit --- src/client/callbackhandeler.cpp | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/client/callbackhandeler.cpp (limited to 'src/client/callbackhandeler.cpp') diff --git a/src/client/callbackhandeler.cpp b/src/client/callbackhandeler.cpp new file mode 100644 index 0000000..f39f4ca --- /dev/null +++ b/src/client/callbackhandeler.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +extern "C" { + #include + #include + #include +} +#include +#include + +#include "callbackhandeler.hpp" + +using namespace irr; +using namespace gui; +using namespace std; + +std::map > guifuncs; +//IrrlichtDevice* device; + +void registerguicallback(IGUIElement* element, EGUI_EVENT_TYPE event, void (*func)(irr::SEvent)){ + printf("Callback registered\n"); + guifuncs[element][event] = func; +} + + +GlobalEventReceiver::GlobalEventReceiver(IrrlichtDevice* d){ + //device = d; +} +bool GlobalEventReceiver::OnEvent(const SEvent& e){ + EEVENT_TYPE type = e.EventType; + switch (type){ + case EET_GUI_EVENT:{ + IGUIElement* caller = e.GUIEvent.Caller; + EGUI_EVENT_TYPE get = e.GUIEvent.EventType; + printf("detected gui event...\n"); + if ( + guifuncs.find(caller) != guifuncs.end() && + guifuncs[caller].find(get) != guifuncs[caller].end()){ + guifuncs[caller][get](e); + printf("sucessfully called a gui event\n"); + return true; + } + return false; + break; + } + case EET_MOUSE_INPUT_EVENT:{ + + } + default: + printf("Called an unknown event\n"); + return false; + } +} -- cgit v1.2.3-70-g09d2