bool CustomInput::onAssignCCBCustomProperty(CCObject* pTarget, const char* pMemberVariableName, const cocos2d::Value& pCCBValue) { CustomInput* target = dynamic_cast<CustomInput*>(pTarget); if(pCCBValue.getType() == cocos2d::Value::Type::INTEGER && strcmp(pMemberVariableName, "maxChar") == 0) { target->setMaxChar(pCCBValue.asInt()); } else if(pCCBValue.getType() == cocos2d::Value::Type::INTEGER && strcmp(pMemberVariableName, "fontSize") == 0) { target->setFontSize(pCCBValue.asInt()); } else if(pCCBValue.getType() == cocos2d::Value::Type::STRING && strcmp(pMemberVariableName, "placeHolder") == 0) { target->setPlaceHolder(Screate(pCCBValue.asString())); } else if(pCCBValue.getType() == cocos2d::Value::Type::STRING && strcmp(pMemberVariableName, "fontName") == 0) { target->setFontName(Screate(pCCBValue.asString())); } else if(pCCBValue.getType() == cocos2d::Value::Type::BOOLEAN && strcmp(pMemberVariableName, "numbers") == 0) { target->setNumbersOnly(pCCBValue.asBool()); } else { CustomBaseNode::onAssignCCBCustomProperty(pTarget, pMemberVariableName, pCCBValue); } return false; }
void resizeChildren(Node* parentNode, Node* resizeNode, float usedScale, int depth) { Vector<Node*> nodeChildren = resizeNode->getChildren(); for(auto node : nodeChildren) { node->setPosition(node->getPosition() * usedScale); if(isKindOfClass(node, Label)) { Label* label = (Label*)node; label->setSystemFontSize(label->getSystemFontSize() * usedScale); /*TTFConfig newConfig = label->getTTFConfig(); newConfig.fontSize *= usedScale; label->setTTFConfig(newConfig);*/ label->setDimensions(label->getDimensions().width * usedScale, label->getDimensions().height * usedScale); #if VERBOSE_LOAD_CCB CCLOG("label font : %s, size : %f, scale : %f, parent node scale : %f, dimensions : %f, %f, depth : %d", label->getSystemFontName().c_str(), label->getSystemFontSize(), label->getScale(), parentNode->getScale(), label->getDimensions().width, label->getDimensions().height, depth); #endif } else if(isKindOfClass(node, CustomInput)) { CustomInput* input = (CustomInput*)node; input->setFontSize((float)input->getFontSize() * usedScale); input->setPreferredSize(Size(input->getPreferredSize().width * usedScale, input->getPreferredSize().height * usedScale)); #if VERBOSE_LOAD_CCB CCLOG("input font size : %d, parent node scale : %f, dimensions : %f, %f, depth : %d", input->getFontSize(), parentNode->getScale(), input->getPreferredSize().width, input->getPreferredSize().height, depth); #endif } else if(isKindOfClass(node, Sprite)) { } else if(isKindOfClass(node, ui::Scale9Sprite)) { ui::Scale9Sprite* sprite = (ui::Scale9Sprite*)node; sprite->setContentSize(SizeMult(node->getContentSize(), usedScale)); sprite->setInsetBottom(sprite->getInsetBottom() * usedScale); sprite->setInsetLeft(sprite->getInsetRight() * usedScale); sprite->setInsetRight(sprite->getInsetRight() * usedScale); sprite->setInsetTop(sprite->getInsetTop() * usedScale); } else //Panel { node->setContentSize(SizeMult(node->getContentSize(), usedScale)); if(!node->getChildren().empty()) { resizeChildren(parentNode, node, usedScale, depth+1); } } } }