void LuaEventHandler::scrollViewDidZoom(CCScrollView *s){ if(_handler){ LuaStack->pushString("zoom"); LuaStack->pushCCObject(s, "CCScrollView"); runLuaFunction(_handler, 2, true); } }
void LuaEventHandler::tableCellTouched(CCTableView *t, CCTableViewCell *c, CCTouch *touch){ if(_handler){ LuaStack->pushString("cellTouched"); LuaStack->pushCCObject(t, "CCTableView"); LuaStack->pushCCObject(c, "CCTableViewCell"); LuaStack->pushCCObject(touch, "CCTouch"); runLuaFunction(_handler, 4, true); } }
unsigned int LuaEventHandler::numberOfCellsInTableView(CCTableView *t){ int r = 0; if(_handler){ LuaStack->pushString("numberOfCells"); LuaStack->pushCCObject(t, "CCTableView"); r = runLuaFunction(_handler, 2, true); } return r; }
CCSize LuaEventHandler::cellSizeForTable(CCTableView *t){ CCSize r = CCSizeZero; if(_handler){ LuaStack->pushString("cellSize"); LuaStack->pushCCObject(t, "CCTableView"); runLuaFunction(_handler, 2); lua_State *l = luaStateForEngine(); tolua_Error err; if(tolua_isusertype(l, -1, "CCSize", 0, &err)){ CCSize *v = (CCSize *)tolua_tousertype(l, -1, NULL); if(v)r = *v; } finishRunLuaFunction(l); } return r; }
CCTableViewCell * LuaEventHandler::tableCellAtIndex(CCTableView *t, unsigned int i){ CCTableViewCell *cell = t->dequeueCell(); if(_handler){ int argNum = 3; LuaStack->pushString("cellAtIndex"); LuaStack->pushCCObject(t, "CCTableView"); LuaStack->pushInt(i); if(cell){ LuaStack->pushCCObject(cell, "CCTableViewCell"); argNum ++; } runLuaFunction(_handler, argNum); lua_State *l = luaStateForEngine(); tolua_Error err; if(tolua_isusertype(l, -1, "CCTableViewCell", 0, &err)){ cell = (CCTableViewCell *)tolua_tousertype(l, -1, NULL); } finishRunLuaFunction(l); } return cell; }
static int runFunctionHandler(int hnd, int argNum, bool retInt = false){ int r = 0; if(retInt){ r = runLuaFunction(hnd, argNum, true);} else{ luaStack()->executeFunctionByHandler(hnd, argNum);} return r; }
int LuaEventHandler::runFunctionHandler(int hnd, int argNum, bool retInt){ int r = 0; if(retInt){ r = runLuaFunction(hnd, argNum, true);} else{ LuaStack->executeFunctionByHandler(hnd, argNum);} return r; }