diff options
Diffstat (limited to 'src/client/callbackhandeler.cpp')
| -rw-r--r-- | src/client/callbackhandeler.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/client/callbackhandeler.cpp b/src/client/callbackhandeler.cpp index 783656d..87a0acf 100644 --- a/src/client/callbackhandeler.cpp +++ b/src/client/callbackhandeler.cpp @@ -21,7 +21,7 @@ std::map<IGUIElement*, int> guielements; //For basic events //{guielement} -void registerguielement(lua_State* L){ +void registerguielement(lua_State* L, gui::EGUI_EVENT_TYPE et, const char* funcname){ int ref = luaL_ref(L,LUA_REGISTRYINDEX);// lua_rawgeti(L,LUA_REGISTRYINDEX,ref);//{guielement} lua_getfield(L,-1,"guielement");//{guielement},ud_guielement @@ -59,7 +59,7 @@ bool GlobalEventReceiver::OnEvent(const SEvent& e){ //printf("Gui event\n"); IGUIElement* caller = e.GUIEvent.Caller; EGUI_EVENT_TYPE get = e.GUIEvent.EventType; - //printf("detected gui event: %d\n",get); + printf("detected gui event: %d\n",get); if(guielements.find(caller) == guielements.end()) return false; int ref = guielements[caller]; @@ -108,8 +108,15 @@ bool GlobalEventReceiver::OnEvent(const SEvent& e){ } lua_rawgeti(L,LUA_REGISTRYINDEX,ref);//{guielement},func(),{guielement} lua_call(L,1,0);//{guielement} + int n = lua_gettop(L); + printf("Found %d arguments on top\n",n); + if(n > 1){ + int ans = lua_toboolean(L,-1); + lua_pop(L,n); + return ans; + } lua_pop(L,1);// - return true; + return false; } break; case EET_MOUSE_INPUT_EVENT:{ @@ -162,6 +169,7 @@ bool GlobalEventReceiver::OnEvent(const SEvent& e){ break; case EMIE_COUNT:break; } + return false; } break; case EET_KEY_INPUT_EVENT:{ @@ -179,6 +187,7 @@ bool GlobalEventReceiver::OnEvent(const SEvent& e){ }else{ lua_pop(L,2); } + return false; break; } default:{ |
