#include "CheckBoxReader.h" #include "ui/UICheckBox.h" #include "cocostudio/CocoLoader.h" USING_NS_CC; using namespace ui; namespace cocostudio { static CheckBoxReader* instanceCheckBoxReader = NULL; IMPLEMENT_CLASS_WIDGET_READER_INFO(CheckBoxReader) CheckBoxReader::CheckBoxReader() { } CheckBoxReader::~CheckBoxReader() { } CheckBoxReader* CheckBoxReader::getInstance() { if (!instanceCheckBoxReader) { instanceCheckBoxReader = new CheckBoxReader(); } return instanceCheckBoxReader; } void CheckBoxReader::setPropsFromBinary(cocos2d::ui::Widget *widget, CocoLoader *pCocoLoader, stExpCocoNode *pCocoNode) { CheckBox *checkBox = static_cast(widget); this->beginSetBasicProperties(widget); stExpCocoNode *stChildArray = pCocoNode->GetChildArray(); for (int i = 0; i < pCocoNode->GetChildNum(); ++i) { std::string key = stChildArray[i].GetName(pCocoLoader); std::string value = stChildArray[i].GetValue(); // CCLOG("key = %s, index : %d", key.c_str(), i); //read all basic properties of widget CC_BASIC_PROPERTY_BINARY_READER //read all color related properties of widget CC_COLOR_PROPERTY_BINARY_READER else if(key == "anchorPointX"){ _originalAnchorPoint.x = valueToFloat(value); }else if(key == "anchorPointY"){ _originalAnchorPoint.y = valueToFloat(value); } else if (key == "backGroundBoxData"){ stExpCocoNode *backGroundChildren = stChildArray[i].GetChildArray(); std::string resType = backGroundChildren[2].GetValue();; Widget::TextureResType imageFileNameType = (Widget::TextureResType)valueToInt(resType); std::string backgroundValue = this->getResourcePath(pCocoLoader, &stChildArray[i], imageFileNameType); checkBox->loadTextureBackGround(backgroundValue, imageFileNameType); }else if(key == "backGroundBoxSelectedData"){ stExpCocoNode *backGroundChildren = stChildArray[i].GetChildArray(); std::string resType = backGroundChildren[2].GetValue();; Widget::TextureResType imageFileNameType = (Widget::TextureResType)valueToInt(resType); std::string backgroundValue = this->getResourcePath(pCocoLoader, &stChildArray[i], imageFileNameType); checkBox->loadTextureBackGroundSelected(backgroundValue, imageFileNameType); }else if(key == "frontCrossData"){ stExpCocoNode *backGroundChildren = stChildArray[i].GetChildArray(); std::string resType = backGroundChildren[2].GetValue();; Widget::TextureResType imageFileNameType = (Widget::TextureResType)valueToInt(resType); std::string backgroundValue = this->getResourcePath(pCocoLoader, &stChildArray[i], imageFileNameType); checkBox->loadTextureFrontCross(backgroundValue, imageFileNameType); }else if(key == "backGroundBoxDisabledData"){ stExpCocoNode *backGroundChildren = stChildArray[i].GetChildArray(); std::string resType = backGroundChildren[2].GetValue();; Widget::TextureResType imageFileNameType = (Widget::TextureResType)valueToInt(resType); std::string backgroundValue = this->getResourcePath(pCocoLoader, &stChildArray[i], imageFileNameType); checkBox->loadTextureBackGroundDisabled(backgroundValue, imageFileNameType); }else if (key == "frontCrossDisabledData"){ stExpCocoNode *backGroundChildren = stChildArray[i].GetChildArray(); std::string resType = backGroundChildren[2].GetValue();; Widget::TextureResType imageFileNameType = (Widget::TextureResType)valueToInt(resType); std::string backgroundValue = this->getResourcePath(pCocoLoader, &stChildArray[i], imageFileNameType); checkBox->loadTextureFrontCrossDisabled(backgroundValue, imageFileNameType); } // else if (key == "selectedState"){ // checkBox->setSelectedState(valueToBool(value)); // } } this->endSetBasicProperties(widget); } void CheckBoxReader::setPropsFromJsonDictionary(Widget *widget, const rapidjson::Value &options) { WidgetReader::setPropsFromJsonDictionary(widget, options); CheckBox* checkBox = static_cast(widget); //load background image const rapidjson::Value& backGroundDic = DICTOOL->getSubDictionary_json(options, "backGroundBoxData"); int backGroundType = DICTOOL->getIntValue_json(backGroundDic, "resourceType"); std::string backGroundTexturePath = this->getResourcePath(backGroundDic, "path", (Widget::TextureResType)backGroundType); checkBox->loadTextureBackGround(backGroundTexturePath, (Widget::TextureResType)backGroundType); //load background selected image const rapidjson::Value& backGroundSelectedDic = DICTOOL->getSubDictionary_json(options, "backGroundBoxSelectedData"); int backGroundSelectedType = DICTOOL->getIntValue_json(backGroundSelectedDic, "resourceType"); std::string backGroundSelectedTexturePath = this->getResourcePath(backGroundSelectedDic, "path", (Widget::TextureResType)backGroundSelectedType); checkBox->loadTextureBackGroundSelected(backGroundSelectedTexturePath, (Widget::TextureResType)backGroundSelectedType); //load frontCross image const rapidjson::Value& frontCrossDic = DICTOOL->getSubDictionary_json(options, "frontCrossData"); int frontCrossType = DICTOOL->getIntValue_json(frontCrossDic, "resourceType"); std::string frontCrossFileName = this->getResourcePath(frontCrossDic, "path", (Widget::TextureResType)frontCrossType); checkBox->loadTextureFrontCross(frontCrossFileName, (Widget::TextureResType)frontCrossType); //load backGroundBoxDisabledData const rapidjson::Value& backGroundDisabledDic = DICTOOL->getSubDictionary_json(options, "backGroundBoxDisabledData"); int backGroundDisabledType = DICTOOL->getIntValue_json(backGroundDisabledDic, "resourceType"); std::string backGroundDisabledFileName = this->getResourcePath(backGroundDisabledDic, "path", (Widget::TextureResType)backGroundDisabledType); checkBox->loadTextureBackGroundDisabled(backGroundDisabledFileName, (Widget::TextureResType)backGroundDisabledType); ///load frontCrossDisabledData const rapidjson::Value& frontCrossDisabledDic = DICTOOL->getSubDictionary_json(options, "frontCrossDisabledData"); int frontCrossDisabledType = DICTOOL->getIntValue_json(frontCrossDisabledDic, "resourceType"); std::string frontCrossDisabledFileName = this->getResourcePath(frontCrossDisabledDic, "path", (Widget::TextureResType)frontCrossDisabledType); checkBox->loadTextureFrontCrossDisabled(frontCrossDisabledFileName, (Widget::TextureResType)frontCrossDisabledType); WidgetReader::setColorPropsFromJsonDictionary(widget, options); } }