#include "CCLabelBMFontLoader.h" #include "LocalizationMgr.h" using namespace cocos2d; namespace redream { #define PROPERTY_BLENDFUNC "blendFunc" #define PROPERTY_FNTFILE "fntFile" #define PROPERTY_HORIZONTALALIGNMENT "horizontalAlignment" #define PROPERTY_VERTICALALIGNMENT "verticalAlignment" #define PROPERTY_STRING "string" #define PROPERTY_LOCALIZATION "localization" #define PROPERTY_DIMENSIONS "dimensions" void LabelBMFontLoader::onHandlePropTypeBlendFunc(Node * pNode, Node * pParent, const char * pPropertyName, BlendFunc pBlendFunc, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_BLENDFUNC) == 0) { ((Label *)pNode)->setBlendFunc(pBlendFunc); } else { NodeLoader::onHandlePropTypeBlendFunc(pNode, pParent, pPropertyName, pBlendFunc, ccbReader); } } void LabelBMFontLoader::onHandlePropTypeFntFile(Node * pNode, Node * pParent, const char * pPropertyName, const char* pFntFile, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_FNTFILE) == 0) { ((Label *)pNode)->setBMFontFilePath(pFntFile); } else { NodeLoader::onHandlePropTypeFntFile(pNode, pParent, pPropertyName, pFntFile, ccbReader); } } void LabelBMFontLoader::onHandlePropTypeText(Node * pNode, Node * pParent, const char * pPropertyName, const char* pText, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_STRING) == 0) { ((Label *)pNode)->setString(pText); } else { NodeLoader::onHandlePropTypeText(pNode, pParent, pPropertyName, pText, ccbReader); } } void LabelBMFontLoader::onHandlePropTypeLocalization(cocos2d::Node * pNode, cocos2d::Node * pParent, const char* pPropertyName, LocalizationModel pModel, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_LOCALIZATION) == 0) { ((Label *)pNode)->setLocalizationModel(pModel); if(pModel.isLocalization) { if(pModel.isCustom) { ((Label *)pNode)->setString(LocalizationMgr::getInstance()->getString(pModel.key, pModel.customFilePath)); } else { ((Label *)pNode)->setString(LocalizationMgr::getInstance()->getString(pModel.key, LOCALIZATION_DEFAULT_FILE)); } } } else { NodeLoader::onHandlePropTypeLocalization(pNode, pParent, pPropertyName, pModel, ccbReader); } } void LabelBMFontLoader::onHandlePropTypeIntegerLabeled(Node * pNode, Node * pParent, const char * pPropertyName, int pIntegerLabeled, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_HORIZONTALALIGNMENT) == 0) { ((Label *)pNode)->setHorizontalAlignment(TextHAlignment(pIntegerLabeled)); } else if(strcmp(pPropertyName, PROPERTY_VERTICALALIGNMENT) == 0) { ((Label *)pNode)->setVerticalAlignment(TextVAlignment(pIntegerLabeled)); } else { NodeLoader::onHandlePropTypeFloatScale(pNode, pParent, pPropertyName, pIntegerLabeled, ccbReader); } } void LabelBMFontLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size size, REDReader * ccbReader) { if(strcmp(pPropertyName, PROPERTY_DIMENSIONS) == 0) { ((Label *)pNode)->setDimensions(size.width,size.height); } else { NodeLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, size, ccbReader); } } }