CWidgetTouchModel CWidget::executeTouchBeganHandler(CCTouch* pTouch) { m_bTouchInterrupt = false; if( m_pTouchBeganListener && m_pTouchBeganHandler ) { CWidgetTouchModel eUserTouchModel = (m_pTouchBeganListener->*m_pTouchBeganHandler)(m_pThisObject, pTouch); if( eUserTouchModel == eWidgetTouchNone ) { return eWidgetTouchNone; } else { this->onTouchBegan(pTouch); return eUserTouchModel; } } #if USING_LUA else if( m_nTouchBeganScriptHandler != 0 ) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(m_pThisObject, "CCObject"); pStack->pushCCObject(pTouch, "CCTouch"); CCArray* pRetArray = new CCArray(); pRetArray->initWithCapacity(1); int nRet = pStack->executeFunctionReturnArray(m_nTouchBeganScriptHandler, 2, 1, pRetArray); CCAssert(pRetArray->count() > 0, "return count = 0"); CCDouble* pIntModel = (CCDouble*) pRetArray->objectAtIndex(0); CWidgetTouchModel eUserTouchModel = (CWidgetTouchModel) ( (int)pIntModel->getValue() ); delete pRetArray; pStack->clean(); if( eUserTouchModel == eWidgetTouchNone ) { return eWidgetTouchNone; } else { this->onTouchBegan(pTouch); return eUserTouchModel; } } #endif return this->onTouchBegan(pTouch); }
void HStoreImplWin32::handleScriptStoreRestored(CCStorePaymentTransaction* transaction) { #ifdef COCOS2D_LUA if (!m_storeScriptHandler) { return; } CCLuaEngine *luaEngine = (CCLuaEngine*)CCScriptEngineManager::sharedManager()->getScriptEngine(); CCLuaStack *stack = luaEngine->getLuaStack(); stack->pushString("restored"); stack->pushCCObject(transaction, "CCStorePaymentTransaction"); stack->executeFunctionByHandler(m_storeScriptHandler, 2); #endif // COCOS2D_LUA }
void LuaCocoStudioEventListener::eventCallbackFunc(CCObject* sender,int eventType) { if (0 != m_lHandler) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(sender, "CCObject"); pStack->pushInt(eventType); pStack->executeFunctionByHandler(m_lHandler, 2); pStack->clean(); } }
void CWidgetLayout::executeTouchCancelledAfterLongClickHandler(CCObject* pSender, CCTouch *pTouch, float fDuration) { if( m_pTouchCancelledAfterLongClickListener && m_pTouchCancelledAfterLongClickHandler ) { (m_pTouchCancelledAfterLongClickListener->*m_pTouchCancelledAfterLongClickHandler)(pSender, pTouch, fDuration); } #if USING_LUA else if( m_pTouchCancelledAfterLongClickScriptHandler != 0 ) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(pSender, "CCObject"); pStack->pushCCObject(pTouch, "CCTouch"); pStack->pushFloat(fDuration); int nRet = pStack->executeFunctionByHandler(m_pTouchCancelledAfterLongClickScriptHandler, 3); pStack->clean(); } #endif }
void CWidget::executeTouchCancelledHandler(CCTouch* pTouch, float fDuration) { if( m_pTouchCancelledListener && m_pTouchCancelledHandler ) { if( !(m_pTouchCancelledListener->*m_pTouchCancelledHandler)(m_pThisObject, pTouch, fDuration) ) { return; } } #if USING_LUA else if( m_nTouchCancelledScriptHandler != 0 ) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(m_pThisObject, "CCObject"); pStack->pushCCObject(pTouch, "CCTouch"); pStack->pushFloat(fDuration); CCArray* pRetArray = new CCArray(); pRetArray->initWithCapacity(1); int nRet = pStack->executeFunctionReturnArray(m_nTouchCancelledScriptHandler, 3, 1, pRetArray); CCAssert(pRetArray->count() > 0, "return count = 0"); CCBool* pBool = (CCBool*) pRetArray->objectAtIndex(0); bool bContinue = pBool->getValue(); delete pRetArray; pStack->clean(); if(!bContinue) { return; } } #endif this->onTouchCancelled(pTouch, fDuration); return; }
void LuaArmatureWrapper::movementEventCallback(CCArmature* armature, MovementEventType type,const char* movementID) { if (0 != m_lHandler) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(armature, "CCArmature"); pStack->pushInt(type); pStack->pushString(movementID); pStack->executeFunctionByHandler(m_lHandler, 3); pStack->clean(); } }
void LuaArmatureWrapper::frameEventCallback(CCBone* bone, const char* frameEventName, int orginFrameIndex, int currentFrameIndex) { if (0 != m_lHandler) { CCLuaEngine* pEngine = CCLuaEngine::defaultEngine(); CCLuaStack* pStack = pEngine->getLuaStack(); pStack->pushCCObject(bone, "CCBone"); pStack->pushString(frameEventName); pStack->pushInt(orginFrameIndex); pStack->pushInt(currentFrameIndex); pStack->executeFunctionByHandler(m_lHandler, 4); pStack->clean(); } }