Exemple #1
0
 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;
 }
Exemple #2
0
void MenuItem::onExit() {
    if (_touched) {
        unselected();
        _touched = false;
    }
    CCMenuItem::onExit();
}
Exemple #3
0
 void MenuItem::onExit()
 {
     if(m_mode == kFZMenuItem_selfMode) {
         unselected();
         m_isWaiting = true;
         EventManager::Instance().removeDelegate(this);
     }
     
     Node::onExit();
 }
Exemple #4
0
void MenuItem::endTouch(cocos2d::CCTouch *touch) {
    if (!_touched) {
        return;
    }
    
    unselected();
    if (hasTouched(touch) && (!isTouchMoved(touch))) {
        activate();
    }
}
Exemple #5
0
void MenuItem::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) {
    if (!_touched) {
        return;
    }
    
    if (hasTouched(pTouch) && (!isTouchMoved(pTouch))) {
        selected();
    } else {
        unselected();
    }
}