1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #include "CCLabelTTFLoader.h"
- #include "LocalizationMgr.h"
- using namespace cocos2d;
- #define PROPERTY_BLENDFUNC "blendFunc"
- #define PROPERTY_FONTNAME "fontName"
- #define PROPERTY_FONTSIZE "fontSize"
- #define PROPERTY_HORIZONTALALIGNMENT "horizontalAlignment"
- #define PROPERTY_VERTICALALIGNMENT "verticalAlignment"
- #define PROPERTY_STRING "string"
- #define PROPERTY_DIMENSIONS "dimensions"
- #define PROPERTY_LOCALIZATION "localization"
- namespace redream {
- void LabelTTFLoader::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 LabelTTFLoader::onHandlePropTypeFontTTF(Node * pNode, Node * pParent, const char * pPropertyName, const char * pFontTTF, REDReader * ccbReader) {
- if(strcmp(pPropertyName, PROPERTY_FONTNAME) == 0) {
- if (FileUtils::getInstance()->isFileExist(pFontTTF)) {
- _isTTFExist = true;
- auto config = ((Label *)pNode)->getTTFConfig();
- config.fontFilePath = pFontTTF;
- ((Label *)pNode)->setTTFConfig(config);
- } else {
- _isTTFExist = false;
- ((Label *)pNode)->setSystemFontName(pFontTTF);
- }
- } else {
- NodeLoader::onHandlePropTypeFontTTF(pNode, pParent, pPropertyName, pFontTTF, ccbReader);
- }
- }
- void LabelTTFLoader::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 LabelTTFLoader::onHandlePropTypeFloatScale(Node * pNode, Node * pParent, const char * pPropertyName, float pFloatScale, REDReader * ccbReader) {
- if(strcmp(pPropertyName, PROPERTY_FONTSIZE) == 0) {
- if (_isTTFExist) {
- auto config = ((Label *)pNode)->getTTFConfig();
- config.fontSize = pFloatScale;
- ((Label *)pNode)->setTTFConfig(config);
- } else {
- ((Label *)pNode)->setSystemFontSize(pFloatScale);
- }
- } else {
- NodeLoader::onHandlePropTypeFloatScale(pNode, pParent, pPropertyName, pFloatScale, ccbReader);
- }
- }
- void LabelTTFLoader::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 LabelTTFLoader::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);
- }
- }
- void LabelTTFLoader::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);
- }
- }
- }
|