CCControlButtonLoader.cpp 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #include "editor-support/cocosbuilder/CCControlButtonLoader.h"
  2. using namespace cocos2d;
  3. using namespace cocos2d::extension;
  4. namespace cocosbuilder {;
  5. #define PROPERTY_ZOOMONTOUCHDOWN "zoomOnTouchDown"
  6. #define PROPERTY_TITLE_NORMAL "title|1"
  7. #define PROPERTY_TITLE_HIGHLIGHTED "title|2"
  8. #define PROPERTY_TITLE_DISABLED "title|3"
  9. #define PROPERTY_TITLECOLOR_NORMAL "titleColor|1"
  10. #define PROPERTY_TITLECOLOR_HIGHLIGHTED "titleColor|2"
  11. #define PROPERTY_TITLECOLOR_DISABLED "titleColor|3"
  12. #define PROPERTY_TITLETTF_NORMAL "titleTTF|1"
  13. #define PROPERTY_TITLETTF_HIGHLIGHTED "titleTTF|2"
  14. #define PROPERTY_TITLETTF_DISABLED "titleTTF|3"
  15. #define PROPERTY_TITLETTFSIZE_NORMAL "titleTTFSize|1"
  16. #define PROPERTY_TITLETTFSIZE_HIGHLIGHTED "titleTTFSize|2"
  17. #define PROPERTY_TITLETTFSIZE_DISABLED "titleTTFSize|3"
  18. #define PROPERTY_LABELANCHORPOINT "labelAnchorPoint"
  19. // TODO: Should be "preferredSize". This is a typo in cocos2d-iphone, cocos2d-x and CocosBuilder!
  20. #define PROPERTY_PREFEREDSIZE "preferedSize"
  21. #define PROPERTY_BACKGROUNDSPRITEFRAME_NORMAL "backgroundSpriteFrame|1"
  22. #define PROPERTY_BACKGROUNDSPRITEFRAME_HIGHLIGHTED "backgroundSpriteFrame|2"
  23. #define PROPERTY_BACKGROUNDSPRITEFRAME_DISABLED "backgroundSpriteFrame|3"
  24. #define PROPERTY_SCALERATIO "scaleRatio"
  25. void ControlButtonLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, CCBReader * ccbReader) {
  26. if(strcmp(pPropertyName, PROPERTY_ZOOMONTOUCHDOWN) == 0) {
  27. ((ControlButton *)pNode)->setZoomOnTouchDown(pCheck);
  28. } else {
  29. ControlLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, ccbReader);
  30. }
  31. }
  32. void ControlButtonLoader::onHandlePropTypeString(Node * pNode, Node * pParent, const char * pPropertyName, const char * pString, CCBReader * ccbReader) {
  33. if(strcmp(pPropertyName, PROPERTY_TITLE_NORMAL) == 0) {
  34. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::NORMAL);
  35. } else if(strcmp(pPropertyName, PROPERTY_TITLE_HIGHLIGHTED) == 0) {
  36. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::HIGH_LIGHTED);
  37. } else if(strcmp(pPropertyName, PROPERTY_TITLE_DISABLED) == 0) {
  38. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::DISABLED);
  39. } else {
  40. ControlLoader::onHandlePropTypeString(pNode, pParent, pPropertyName, pString, ccbReader);
  41. }
  42. }
  43. void ControlButtonLoader::onHandlePropTypeFontTTF(Node * pNode, Node * pParent, const char * pPropertyName, const char * pFontTTF, CCBReader * ccbReader) {
  44. if(strcmp(pPropertyName, PROPERTY_TITLETTF_NORMAL) == 0) {
  45. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::NORMAL);
  46. } else if(strcmp(pPropertyName, PROPERTY_TITLETTF_HIGHLIGHTED) == 0) {
  47. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::HIGH_LIGHTED);
  48. } else if(strcmp(pPropertyName, PROPERTY_TITLETTF_DISABLED) == 0) {
  49. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::DISABLED);
  50. } else {
  51. ControlLoader::onHandlePropTypeFontTTF(pNode, pParent, pPropertyName, pFontTTF, ccbReader);
  52. }
  53. }
  54. void ControlButtonLoader::onHandlePropTypeFloatScale(Node * pNode, Node * pParent, const char * pPropertyName, float pFloatScale, CCBReader * ccbReader) {
  55. if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_NORMAL) == 0) {
  56. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::NORMAL);
  57. } else if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_HIGHLIGHTED) == 0) {
  58. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::HIGH_LIGHTED);
  59. } else if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_DISABLED) == 0) {
  60. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::DISABLED);
  61. } else {
  62. ControlLoader::onHandlePropTypeFloatScale(pNode, pParent, pPropertyName, pFloatScale, ccbReader);
  63. }
  64. }
  65. void ControlButtonLoader::onHandlePropTypePoint(Node * pNode, Node * pParent, const char * pPropertyName, Vec2 pPoint, CCBReader * ccbReader) {
  66. if(strcmp(pPropertyName, PROPERTY_LABELANCHORPOINT) == 0) {
  67. ((ControlButton *)pNode)->setLabelAnchorPoint(pPoint);
  68. } else {
  69. ControlLoader::onHandlePropTypePoint(pNode, pParent, pPropertyName, pPoint, ccbReader);
  70. }
  71. }
  72. void ControlButtonLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size pSize, CCBReader * ccbReader) {
  73. if(strcmp(pPropertyName, PROPERTY_PREFEREDSIZE) == 0) {
  74. ((ControlButton *)pNode)->setPreferredSize(pSize);
  75. } else {
  76. ControlLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, pSize, ccbReader);
  77. }
  78. }
  79. void ControlButtonLoader::onHandlePropTypeSpriteFrame(Node * pNode, Node * pParent, const char * pPropertyName, SpriteFrame * pSpriteFrame, CCBReader * ccbReader) {
  80. if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_NORMAL) == 0) {
  81. if(pSpriteFrame != nullptr) {
  82. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::NORMAL);
  83. }
  84. } else if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_HIGHLIGHTED) == 0) {
  85. if(pSpriteFrame != nullptr) {
  86. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::HIGH_LIGHTED);
  87. }
  88. } else if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_DISABLED) == 0) {
  89. if(pSpriteFrame != nullptr) {
  90. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::DISABLED);
  91. }
  92. } else {
  93. ControlLoader::onHandlePropTypeSpriteFrame(pNode, pParent, pPropertyName, pSpriteFrame, ccbReader);
  94. }
  95. }
  96. void ControlButtonLoader::onHandlePropTypeColor3(Node * pNode, Node * pParent, const char * pPropertyName, Color3B pColor3B, CCBReader * ccbReader) {
  97. if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_NORMAL) == 0) {
  98. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::NORMAL);
  99. } else if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_HIGHLIGHTED) == 0) {
  100. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::HIGH_LIGHTED);
  101. } else if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_DISABLED) == 0) {
  102. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::DISABLED);
  103. } else {
  104. ControlLoader::onHandlePropTypeColor3(pNode, pParent, pPropertyName, pColor3B, ccbReader);
  105. }
  106. }
  107. void ControlButtonLoader::onHandlePropTypeFloat(Node * pNode, Node * pParent, const char* pPropertyName, float pFloat, CCBReader * ccbReader) {
  108. // ASSERT_FAIL_UNEXPECTED_PROPERTY(pPropertyName);
  109. // It may be a custom property, add it to custom property dictionary.
  110. if(strcmp(pPropertyName, PROPERTY_SCALERATIO) == 0) {
  111. ((ControlButton *)pNode)->setScaleRatio(pFloat);
  112. }else{
  113. ControlLoader::onHandlePropTypeFloat(pNode, pParent, pPropertyName, pFloat,ccbReader);
  114. }
  115. }
  116. };