CCMenuItemLoader.cpp 1.2 KB

123456789101112131415161718192021222324252627282930
  1. #include "editor-support/cocosbuilder/CCMenuItemLoader.h"
  2. using namespace cocos2d;
  3. #define PROPERTY_BLOCK "block"
  4. #define PROPERTY_ISENABLED "isEnabled"
  5. namespace cocosbuilder {
  6. void MenuItemLoader::onHandlePropTypeBlock(Node * pNode, Node * pParent, const char * pPropertyName, BlockData * pBlockData, CCBReader * ccbReader) {
  7. if(strcmp(pPropertyName, PROPERTY_BLOCK) == 0) {
  8. if (nullptr != pBlockData) // Add this condition to allow MenuItemImage without target/selector predefined
  9. {
  10. ((MenuItem *)pNode)->setCallback( std::bind( pBlockData->mSELMenuHandler, pBlockData->_target, std::placeholders::_1) );
  11. // ((MenuItem *)pNode)->setTarget(pBlockData->_target, pBlockData->mSELMenuHandler);
  12. }
  13. } else {
  14. NodeLoader::onHandlePropTypeBlock(pNode, pParent, pPropertyName, pBlockData, ccbReader);
  15. }
  16. }
  17. void MenuItemLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, CCBReader * ccbReader) {
  18. if(strcmp(pPropertyName, PROPERTY_ISENABLED) == 0) {
  19. ((MenuItem *)pNode)->setEnabled(pCheck);
  20. } else {
  21. NodeLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, ccbReader);
  22. }
  23. }
  24. }