#include "CustomWidgetCallbackBindTest.h"

#include "../../CustomGUIScene.h"
#include "cocostudio/ActionTimeline/CSLoader.h"

#include "base/ObjectFactory.h"

#include "CustomRootNode.h"
#include "CustomRootNodeReader.h"

USING_NS_CC;
using namespace flatbuffers;

// CustomWidgetCallbackBindScene

void CustomWidgetCallbackBindScene::onEnter()
{
    Scene::onEnter();
    
    auto label = Label::createWithTTF("Back", "fonts/arial.ttf", 20);
    //#endif
    MenuItemLabel* pMenuItem = MenuItemLabel::create(label, CC_CALLBACK_1(CustomWidgetCallbackBindScene::BackCallback, this));
    
    Menu* pMenu = Menu::create(pMenuItem, nullptr);
    
    pMenu->setPosition( Vec2::ZERO );
    pMenuItem->setPosition(VisibleRect::right().x - 50, VisibleRect::bottom().y + 25);
    
    addChild(pMenu, 1);
}

void CustomWidgetCallbackBindScene::runThisTest()
{
    CSLoader* instance = CSLoader::getInstance();
    instance->registReaderObject("CustomRootNodeReader",
                                 (ObjectFactory::Instance)CustomRootNodeReader::getInstance);
    
    auto pLayer = CSLoader::createNode("cocosui/CustomTest/CustomWidgetCallbackBindTest/CustomWidgetCallbackBindTest.csb");
    addChild(pLayer);
    
    
    Director::getInstance()->replaceScene(this);
}

void CustomWidgetCallbackBindScene::BackCallback(Ref* pSender)
{
    CustomGUITestScene* pScene = new (std::nothrow) CustomGUITestScene();
    pScene->runThisTest();
    pScene->release();
}