123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include "UICheckBoxLoader.h"
- #include "REDSelectorResolver.h"
- using namespace std;
- using namespace cocos2d;
- using namespace cocos2d::ui;
- namespace redream {
- #define PROPERTY_CLICKEVENT "clickEvent"
- void CheckBoxLoader::onHandlePropTypeCallbacks(cocos2d::Node * pNode, cocos2d::Node * pParent, const char* pPropertyName, CallbacksData * pCallbacksData, REDReader * ccbReader) {
- cocos2d::ui::CheckBox::ccCheckBoxCallback event = 0;
-
- if (pCallbacksData != nullptr) {
- cocos2d::Ref * target = pCallbacksData->_target;
- std::string selectorName = pCallbacksData->selectorName;
-
- REDSelectorResolver * targetAsREDSelectorResolver = dynamic_cast<REDSelectorResolver *>(target);
-
- if(targetAsREDSelectorResolver != nullptr)
- {
- auto handler = targetAsREDSelectorResolver->onResolveREDUICheckBoxSelector(target, selectorName.c_str());
- if (handler != 0) {
- event = std::function<void(Ref *, CheckBox::EventType)>(std::bind(handler, target, std::placeholders::_1, std::placeholders::_2));
- }
- }
- if(event == 0)
- {
- REDSelectorResolver * ccbSelectorResolver = ccbReader->getREDSelectorResolver();
- if(ccbSelectorResolver != nullptr)
- {
- auto handler = ccbSelectorResolver->onResolveREDUICheckBoxSelector(target, selectorName.c_str());
- if (handler != 0) {
- event = std::function<void(Ref *, CheckBox::EventType)>(std::bind(handler, target, std::placeholders::_1, std::placeholders::_2));
- }
- }
- }
- }
- else {
- return;
- }
-
- if (strcmp(pPropertyName, PROPERTY_CLICKEVENT) == 0) {
- ((CheckBox *)pNode)->addEventListener(event);
- }
- else {
- AbstractCheckButtonLoader::onHandlePropTypeCallbacks(pNode, pParent, pPropertyName, pCallbacksData, ccbReader);
- }
- }
- }
|