123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef _RED_REDSELECTORRESOLVER_H_
- #define _RED_REDSELECTORRESOLVER_H_
- #include "extensions//GUI/CCControlExtension/CCInvocation.h"
- #include "REDEditBox.h"
- #include "UISliderLoader.h"
- #include "UICheckBoxLoader.h"
- namespace redream {
- #define RED_SELECTORRESOLVER_CCMENUITEM_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return CC_MENU_SELECTOR(METHOD); \
- }
- #define RED_SELECTORRESOLVER_CCCONTROL_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return cccontrol_selector(METHOD); \
- }
- #define RED_SELECTORRESOLVER_CALLFUNC_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return CC_CALLFUNCN_SELECTOR(METHOD); \
- }
- #define RED_SELECTORRESOLVER_UISLIDER_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return static_cast<SliderHandler>(&METHOD); \
- }
- #define RED_SELECTORRESOLVER_UIEDITBOX_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return static_cast<REDEditBoxDelegate::Handler>(&METHOD); \
- }
- #define RED_SELECTORRESOLVER_UICHECKBOX_GLUE(TARGET, SELECTORNAME, METHOD) if(pTarget == TARGET && strcmp(pSelectorName, SELECTORNAME) == 0) { \
- return static_cast<CheckBoxHandler>(&METHOD); \
- }
- class CC_DLL REDSelectorResolver {
- public:
- /**
- * @js NA
- * @lua NA
- */
- virtual ~REDSelectorResolver() {};
- virtual cocos2d::SEL_MenuHandler onResolveREDCCMenuItemSelector(cocos2d::Ref * pTarget, const char* pSelectorName) = 0;
- virtual cocos2d::SEL_CallFuncN onResolveREDCCCallFuncSelector(cocos2d::Ref * pTarget, const char* pSelectorName) { return NULL; };
- virtual cocos2d::extension::Control::Handler onResolveREDCCControlSelector(cocos2d::Ref * pTarget, const char* pSelectorName) = 0;
- virtual SliderHandler onResolveREDUISliderSelector(cocos2d::Ref * pTarget, const char* pSelectorName) { return nullptr; };
- virtual REDEditBoxDelegate::Handler onResolveREDUIEditBoxSelector(cocos2d::Ref * pTarget, const char* pSelectorName) { return nullptr; };
- virtual CheckBoxHandler onResolveREDUICheckBoxSelector(cocos2d::Ref * pTarget, const char* pSelectorName) { return nullptr; };
- };
- class CC_DLL REDScriptOwnerProtocol {
- public:
- /**
- * @js NA
- * @lua NA
- */
- virtual ~REDScriptOwnerProtocol() {};
- virtual REDSelectorResolver * createNew() = 0;
- };
- }
- #endif
|