CCControlButtonLoader.cpp 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. void ControlButtonLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, CCBReader * ccbReader) {
  25. if(strcmp(pPropertyName, PROPERTY_ZOOMONTOUCHDOWN) == 0) {
  26. ((ControlButton *)pNode)->setZoomOnTouchDown(pCheck);
  27. } else {
  28. ControlLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, ccbReader);
  29. }
  30. }
  31. void ControlButtonLoader::onHandlePropTypeString(Node * pNode, Node * pParent, const char * pPropertyName, const char * pString, CCBReader * ccbReader) {
  32. if(strcmp(pPropertyName, PROPERTY_TITLE_NORMAL) == 0) {
  33. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::NORMAL);
  34. } else if(strcmp(pPropertyName, PROPERTY_TITLE_HIGHLIGHTED) == 0) {
  35. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::HIGH_LIGHTED);
  36. } else if(strcmp(pPropertyName, PROPERTY_TITLE_DISABLED) == 0) {
  37. ((ControlButton *)pNode)->setTitleForState(pString, Control::State::DISABLED);
  38. } else {
  39. ControlLoader::onHandlePropTypeString(pNode, pParent, pPropertyName, pString, ccbReader);
  40. }
  41. }
  42. void ControlButtonLoader::onHandlePropTypeFontTTF(Node * pNode, Node * pParent, const char * pPropertyName, const char * pFontTTF, CCBReader * ccbReader) {
  43. if(strcmp(pPropertyName, PROPERTY_TITLETTF_NORMAL) == 0) {
  44. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::NORMAL);
  45. } else if(strcmp(pPropertyName, PROPERTY_TITLETTF_HIGHLIGHTED) == 0) {
  46. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::HIGH_LIGHTED);
  47. } else if(strcmp(pPropertyName, PROPERTY_TITLETTF_DISABLED) == 0) {
  48. ((ControlButton *)pNode)->setTitleTTFForState(pFontTTF, Control::State::DISABLED);
  49. } else {
  50. ControlLoader::onHandlePropTypeFontTTF(pNode, pParent, pPropertyName, pFontTTF, ccbReader);
  51. }
  52. }
  53. void ControlButtonLoader::onHandlePropTypeFloatScale(Node * pNode, Node * pParent, const char * pPropertyName, float pFloatScale, CCBReader * ccbReader) {
  54. if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_NORMAL) == 0) {
  55. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::NORMAL);
  56. } else if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_HIGHLIGHTED) == 0) {
  57. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::HIGH_LIGHTED);
  58. } else if(strcmp(pPropertyName, PROPERTY_TITLETTFSIZE_DISABLED) == 0) {
  59. ((ControlButton *)pNode)->setTitleTTFSizeForState(pFloatScale, Control::State::DISABLED);
  60. } else {
  61. ControlLoader::onHandlePropTypeFloatScale(pNode, pParent, pPropertyName, pFloatScale, ccbReader);
  62. }
  63. }
  64. void ControlButtonLoader::onHandlePropTypePoint(Node * pNode, Node * pParent, const char * pPropertyName, Vec2 pPoint, CCBReader * ccbReader) {
  65. if(strcmp(pPropertyName, PROPERTY_LABELANCHORPOINT) == 0) {
  66. ((ControlButton *)pNode)->setLabelAnchorPoint(pPoint);
  67. } else {
  68. ControlLoader::onHandlePropTypePoint(pNode, pParent, pPropertyName, pPoint, ccbReader);
  69. }
  70. }
  71. void ControlButtonLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size pSize, CCBReader * ccbReader) {
  72. if(strcmp(pPropertyName, PROPERTY_PREFEREDSIZE) == 0) {
  73. ((ControlButton *)pNode)->setPreferredSize(pSize);
  74. } else {
  75. ControlLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, pSize, ccbReader);
  76. }
  77. }
  78. void ControlButtonLoader::onHandlePropTypeSpriteFrame(Node * pNode, Node * pParent, const char * pPropertyName, SpriteFrame * pSpriteFrame, CCBReader * ccbReader) {
  79. if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_NORMAL) == 0) {
  80. if(pSpriteFrame != nullptr) {
  81. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::NORMAL);
  82. }
  83. } else if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_HIGHLIGHTED) == 0) {
  84. if(pSpriteFrame != nullptr) {
  85. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::HIGH_LIGHTED);
  86. }
  87. } else if(strcmp(pPropertyName, PROPERTY_BACKGROUNDSPRITEFRAME_DISABLED) == 0) {
  88. if(pSpriteFrame != nullptr) {
  89. ((ControlButton *)pNode)->setBackgroundSpriteFrameForState(pSpriteFrame, Control::State::DISABLED);
  90. }
  91. } else {
  92. ControlLoader::onHandlePropTypeSpriteFrame(pNode, pParent, pPropertyName, pSpriteFrame, ccbReader);
  93. }
  94. }
  95. void ControlButtonLoader::onHandlePropTypeColor3(Node * pNode, Node * pParent, const char * pPropertyName, Color3B pColor3B, CCBReader * ccbReader) {
  96. if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_NORMAL) == 0) {
  97. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::NORMAL);
  98. } else if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_HIGHLIGHTED) == 0) {
  99. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::HIGH_LIGHTED);
  100. } else if(strcmp(pPropertyName, PROPERTY_TITLECOLOR_DISABLED) == 0) {
  101. ((ControlButton *)pNode)->setTitleColorForState(pColor3B, Control::State::DISABLED);
  102. } else {
  103. ControlLoader::onHandlePropTypeColor3(pNode, pParent, pPropertyName, pColor3B, ccbReader);
  104. }
  105. }
  106. };