void HTouchEnabledLayerColor::setPriority(CCNode *node, int priority) { if (dynamic_cast<CCControl *>(node)) { CCControl *control = (CCControl *)node; control->setTouchPriority(priority); if (control->isTouchEnabled()) { control->setTouchEnabled(false); control->setTouchEnabled(true); } } else if (dynamic_cast<CCScrollView *>(node)) { CCScrollView *scrollView = (CCScrollView *)node; scrollView->setTouchPriority(priority); if (scrollView->isTouchEnabled()) { scrollView->setTouchEnabled(false); scrollView->setTouchEnabled(true); } } else if (dynamic_cast<CCMenu *>(node)) { CCMenu *menu = (CCMenu *)node; menu->setTouchPriority(priority); if (menu->isTouchEnabled()) { menu->setTouchEnabled(false); menu->setTouchEnabled(true); } } else if (dynamic_cast<CCLayer *>(node)) { CCLayer *layer = (CCLayer *)node; layer->setTouchPriority(priority); if (layer->isTouchEnabled()) { layer->setTouchEnabled(false); layer->setTouchEnabled(true); } } }
CCObject *HTouchEnabledLayerColor::updatePriorityEx(int command, CCNode *node) { int iBasePriority = getTouchPriority(); if (dynamic_cast<CCControl *>(node)) { CCControl *control = (CCControl *)node; int priority = control->getTouchPriority(); priority = iBasePriority - 9; control->setTouchPriority(priority); if (control->isTouchEnabled()) { control->setTouchEnabled(false); control->setTouchEnabled(true); } } else if (dynamic_cast<CCScrollView *>(node)) { CCScrollView *scrollView = (CCScrollView *)node; int priority = scrollView->getTouchPriority(); priority = iBasePriority - 11; scrollView->setTouchPriority(priority); if (scrollView->isTouchEnabled()) { scrollView->setTouchEnabled(false); scrollView->setTouchEnabled(true); } } else if (dynamic_cast<CCMenu *>(node)) { CCMenu *menu = (CCMenu *)node; int priority = menu->getTouchPriority(); priority = iBasePriority - 128; menu->setTouchPriority(priority); if (menu->isTouchEnabled()) { menu->setTouchEnabled(false); menu->setTouchEnabled(true); } } else if (dynamic_cast<CCLayer *>(node)) { CCLayer *layer = (CCLayer *)node; int priority = layer->getTouchPriority(); priority = iBasePriority; layer->setTouchPriority(priority); if (layer->isTouchEnabled()) { layer->setTouchEnabled(false); layer->setTouchEnabled(true); } } CCArray *children = node->getChildren(); if (children) { int count = children->count(); for (int i = 0; i < count; ++i) { CCNode *child = (CCNode *)children->objectAtIndex(i); updatePriorityEx(command, child); } } return NULL; }
void GUIBase::resetPriority(CCNode* pNode, int priority) { CCArray* pChildren = pNode->getChildren(); CCObject* pObj = NULL; CCARRAY_FOREACH(pChildren, pObj) { CCNode* pChild = (CCNode*)pObj; if (pChild->getChildrenCount() > 0) { resetPriority(pChild, priority); } // CCMenu CCMenu* pMenu = dynamic_cast<CCMenu*>(pChild); if (pMenu) { pMenu->setTouchPriority(priority - 1); continue; } // CCScrollView CCScrollView* pCCScrollView = dynamic_cast<CCScrollView*>(pChild); if (pCCScrollView) { pCCScrollView->setTouchPriority(priority - 1); continue; } // CCControlButton CCControlButton* pCCControlButton = dynamic_cast<CCControlButton*>(pChild); if (pCCControlButton) { pCCControlButton->setTouchPriority(priority - 1); continue; } }
bool MailWritePopUpView::initWithGift(int giftID,int propID) { if(!PopupBaseView::init()) { return false; } setIsHDPanel(true); mPropID = propID; mType = 1; // auto cf = CCLoadSprite::getSF("Mail_diban.png"); auto cf = CCLoadSprite::getSF("Mail_BG1.png"); if (cf==NULL) { CCLoadSprite::doResourceByCommonIndex(11, true); CCLoadSprite::doResourceByCommonIndex(6, true); setCleanFunction([]() { CCLoadSprite::doResourceByCommonIndex(11, false); CCLoadSprite::doResourceByCommonIndex(6, false); }); } else { CCLoadSprite::doResourceByCommonIndex(11, true); setCleanFunction([]() { CCLoadSprite::doResourceByCommonIndex(11, false); }); } auto bg = CCBLoadFile("NEWMailWriteView", this, this); if (CCCommonUtils::isIosAndroidPad()) { this->setContentSize(CCDirector::sharedDirector()->getWinSize()); } else this->setContentSize(bg->getContentSize()); // setTitleName(_lang("105513")); m_titleText->setString(_lang("105513")); if (CCCommonUtils::isIosAndroidPad()) { int extH = getExtendHeight(); this->m_listNode->setContentSize(CCSize(m_listNode->getContentSize().width, m_listNode->getContentSize().height + extH)); m_downNode->setPositionY(m_downNode->getPositionY() - extH); m_bgNode->setPositionY(m_bgNode->getPositionY() - extH); // m_nodeContent->setPositionY(m_nodeContent->getPositionY() - extH); auto tbg = CCLoadSprite::loadResource("Mail_diban.png"); auto tBatchNode = CCSpriteBatchNode::createWithTexture(tbg->getTexture()); auto picBg1 = CCLoadSprite::createSprite("Mail_diban.png"); picBg1->setAnchorPoint(ccp(0, 0)); picBg1->setPosition(ccp(0, 0)); picBg1->setScaleX(2.4); tBatchNode->addChild(picBg1); int maxHeight = CCDirector::sharedDirector()->getWinSize().height; int curHeight = picBg1->getContentSize().height; while(curHeight < maxHeight) { auto picBg2 = CCLoadSprite::createSprite("Mail_diban.png"); picBg2->setAnchorPoint(ccp(0, 0)); picBg2->setPosition(ccp(0, curHeight)); picBg2->setScaleX(2.4); tBatchNode->addChild(picBg2); curHeight += picBg2->getContentSize().height; } m_bgNode->addChild(tBatchNode); } else { int extH = getExtendHeight(); this->m_listNode->setContentSize(CCSize(m_listNode->getContentSize().width, m_listNode->getContentSize().height + extH)); m_downNode->setPositionY(m_downNode->getPositionY() - extH); m_bgNode->setPositionY(m_bgNode->getPositionY() - extH); // m_nodeContent->setPositionY(m_nodeContent->getPositionY() - extH); auto tbg = CCLoadSprite::loadResource("Mail_diban.png"); auto tBatchNode = CCSpriteBatchNode::createWithTexture(tbg->getTexture()); auto picBg1 = CCLoadSprite::createSprite("Mail_diban.png"); picBg1->setAnchorPoint(ccp(0, 0)); picBg1->setPosition(ccp(0, 0)); tBatchNode->addChild(picBg1); int maxHeight = CCDirector::sharedDirector()->getWinSize().height; int curHeight = picBg1->getContentSize().height; while(curHeight < maxHeight) { auto picBg2 = CCLoadSprite::createSprite("Mail_diban.png"); picBg2->setAnchorPoint(ccp(0, 0)); picBg2->setPosition(ccp(0, curHeight)); tBatchNode->addChild(picBg2); curHeight += picBg2->getContentSize().height; } m_bgNode->addChild(tBatchNode); } // CCSize wNodeSize = this->m_waitingNode->getContentSize(); // m_waitingNode->setContentSize(CCSize(wNodeSize.width,wNodeSize.height + dh)); // m_waitingNode->setPositionY(m_waitingNode->getPositionY() - dh*0.5); // this->m_nameText->setString(_lang("105505").c_str()); // this->m_titleText->setString(_lang("105503").c_str()); // this->m_contentText->setString(_lang("105504").c_str()); CCNode *searchnode = CCNode::create(); auto spr1 = CCLoadSprite::createScale9Sprite("button_dark.png"); CCControlButton *shareBtn = CCControlButton::create(spr1); searchnode->addChild(shareBtn); shareBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(MailWritePopUpView::onChooseName), CCControlEventTouchUpInside); CCSprite* sprIcon = CCLoadSprite::createSprite("search_icon.png"); CCSize sprSize = sprIcon->getContentSize(); searchnode->addChild(sprIcon); CCCommonUtils::setSpriteMaxSize(sprIcon, 40); shareBtn->setPreferredSize(CCSize(60, 60)); this->m_nameContainer->addChild(searchnode); searchnode->setPosition(440, 0); CCScrollView *scrollView = CCScrollView::create(m_listNode->getContentSize()); scrollView->setTouchPriority(Touch_Popup_Item); scrollView->setDirection(kCCScrollViewDirectionVertical); m_nodeContent->removeFromParentAndCleanup(false); scrollView->addChild(m_nodeContent); scrollView->setTag(10000); m_nameEditBox = InputFieldMultiLine::create(CCSizeMake(380,40),"Mail_write.png",24); // m_nameEditBox->setTouchPriority(Touch_Default); m_nameEditBox->setMaxChars(30); m_nameEditBox->setPosition(ccp(0, -20)); m_nameEditBox->setLineNumber(1); m_nameEditBox->setFontColor({63,44,27}); this->m_nameContainer->addChild(m_nameEditBox); m_nameEditBox->m_enabled = (mPropID == ITEM_SEND_GIFTALLIANCE || mPropID == ITEM_SEND_GIFT || mPropID == ITEM_SEND_GIFTMORE)?false:true; m_contentEditBox = InputFieldMultiLine::create(m_contentContainer->getContentSize(),"Mail_write.png",24); m_contentEditBox->setTouchPriority(Touch_Default); m_contentEditBox->setMaxChars(300); m_contentEditBox->setLineNumber(5); m_contentEditBox->setPosition(ccp(0, 0)); m_contentEditBox->setFontColor({63,44,27}); this->m_contentContainer->addChild(m_contentEditBox); m_contentEditBox->setText(_lang("101383")); CCSize liseNodeSize = this->m_listNode->getContentSize() * m_listNode->getScale(); MailGiftCell *mailGiftCell = MailGiftCell::create(CCSize(liseNodeSize.width, liseNodeSize.height - 110),mPropID,giftID); scrollView->addChild(mailGiftCell); mailGiftCell->setTag(10000); CCSize cellSize = mailGiftCell->getContentSize(); int needH = ceil(cellSize.height + 400); int nowH = m_listNode->getContentSize().height; m_nodeContent->setPosition(ccp(300,cellSize.height + 100)); mailGiftCell->setPosition(ccp(0,0)); m_listNode->addChild(scrollView); scrollView->setContentSize(CCSize(600,400 + cellSize.height)); scrollView->setContentOffset(ccp(0, nowH - needH)); if(needH>nowH) { scrollView->setTouchEnabled(true); } else { scrollView->setTouchEnabled(false); } if(!m_toName.empty()) { m_nameEditBox->setText(m_toName.c_str()); m_nameEditBox->setEnabled(false); } updateBtnStatus(); return true; }