CCLabelBMFontLoader.cpp 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include "CCLabelBMFontLoader.h"
  2. #include "LocalizationMgr.h"
  3. using namespace cocos2d;
  4. namespace redream {
  5. #define PROPERTY_BLENDFUNC "blendFunc"
  6. #define PROPERTY_FNTFILE "fntFile"
  7. #define PROPERTY_HORIZONTALALIGNMENT "horizontalAlignment"
  8. #define PROPERTY_VERTICALALIGNMENT "verticalAlignment"
  9. #define PROPERTY_STRING "string"
  10. #define PROPERTY_LOCALIZATION "localization"
  11. #define PROPERTY_DIMENSIONS "dimensions"
  12. void LabelBMFontLoader::onHandlePropTypeBlendFunc(Node * pNode, Node * pParent, const char * pPropertyName, BlendFunc pBlendFunc, REDReader * ccbReader) {
  13. if(strcmp(pPropertyName, PROPERTY_BLENDFUNC) == 0) {
  14. ((Label *)pNode)->setBlendFunc(pBlendFunc);
  15. } else {
  16. NodeLoader::onHandlePropTypeBlendFunc(pNode, pParent, pPropertyName, pBlendFunc, ccbReader);
  17. }
  18. }
  19. void LabelBMFontLoader::onHandlePropTypeFntFile(Node * pNode, Node * pParent, const char * pPropertyName, const char* pFntFile, REDReader * ccbReader) {
  20. if(strcmp(pPropertyName, PROPERTY_FNTFILE) == 0) {
  21. ((Label *)pNode)->setBMFontFilePath(pFntFile);
  22. } else {
  23. NodeLoader::onHandlePropTypeFntFile(pNode, pParent, pPropertyName, pFntFile, ccbReader);
  24. }
  25. }
  26. void LabelBMFontLoader::onHandlePropTypeText(Node * pNode, Node * pParent, const char * pPropertyName, const char* pText, REDReader * ccbReader) {
  27. if(strcmp(pPropertyName, PROPERTY_STRING) == 0) {
  28. ((Label *)pNode)->setString(pText);
  29. } else {
  30. NodeLoader::onHandlePropTypeText(pNode, pParent, pPropertyName, pText, ccbReader);
  31. }
  32. }
  33. void LabelBMFontLoader::onHandlePropTypeLocalization(cocos2d::Node * pNode, cocos2d::Node * pParent, const char* pPropertyName, LocalizationModel pModel, REDReader * ccbReader) {
  34. if(strcmp(pPropertyName, PROPERTY_LOCALIZATION) == 0) {
  35. ((Label *)pNode)->setLocalizationModel(pModel);
  36. if(pModel.isLocalization) {
  37. if(pModel.isCustom) {
  38. ((Label *)pNode)->setString(LocalizationMgr::getInstance()->getString(pModel.key, pModel.customFilePath));
  39. } else {
  40. ((Label *)pNode)->setString(LocalizationMgr::getInstance()->getString(pModel.key, LOCALIZATION_DEFAULT_FILE));
  41. }
  42. }
  43. } else {
  44. NodeLoader::onHandlePropTypeLocalization(pNode, pParent, pPropertyName, pModel, ccbReader);
  45. }
  46. }
  47. void LabelBMFontLoader::onHandlePropTypeIntegerLabeled(Node * pNode, Node * pParent, const char * pPropertyName, int pIntegerLabeled, REDReader * ccbReader) {
  48. if(strcmp(pPropertyName, PROPERTY_HORIZONTALALIGNMENT) == 0) {
  49. ((Label *)pNode)->setHorizontalAlignment(TextHAlignment(pIntegerLabeled));
  50. } else if(strcmp(pPropertyName, PROPERTY_VERTICALALIGNMENT) == 0) {
  51. ((Label *)pNode)->setVerticalAlignment(TextVAlignment(pIntegerLabeled));
  52. } else {
  53. NodeLoader::onHandlePropTypeFloatScale(pNode, pParent, pPropertyName, pIntegerLabeled, ccbReader);
  54. }
  55. }
  56. void LabelBMFontLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size size, REDReader * ccbReader) {
  57. if(strcmp(pPropertyName, PROPERTY_DIMENSIONS) == 0) {
  58. ((Label *)pNode)->setDimensions(size.width,size.height);
  59. } else {
  60. NodeLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, size, ccbReader);
  61. }
  62. }
  63. }