bool MenuItem::event(Event& event) { FZ_ASSERT(event.isType(kFZEventType_Tap), "Event is a touch event"); if(!isVisible()) return false; switch (event.getState()) { case kFZEventState_Began: { if( !m_isWaiting || !isVisible() ) return false; if(getBoundingBox().contains(event.getPoint())) { selected(); m_isWaiting = false; return true; } break; } case kFZEventState_Updated: { FZ_ASSERT(!m_isWaiting, "[Event updated] -- invalid state"); bool isSelected = getBoundingBox().contains(event.getPoint()); if (isSelected != m_isSelected) { if(isSelected) selected(); else unselected(); } break; } case kFZEventState_Ended: if(m_isSelected) activate(); case kFZEventState_Cancelled: if(m_isSelected) unselected(); m_isWaiting = true; break; default: break; } return false; }
void MenuItem::onExit() { if (_touched) { unselected(); _touched = false; } CCMenuItem::onExit(); }
void MenuItem::onExit() { if(m_mode == kFZMenuItem_selfMode) { unselected(); m_isWaiting = true; EventManager::Instance().removeDelegate(this); } Node::onExit(); }
void MenuItem::endTouch(cocos2d::CCTouch *touch) { if (!_touched) { return; } unselected(); if (hasTouched(touch) && (!isTouchMoved(touch))) { activate(); } }
void MenuItem::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) { if (!_touched) { return; } if (hasTouched(pTouch) && (!isTouchMoved(pTouch))) { selected(); } else { unselected(); } }