#include "UICheckBoxTest.h"

const char* font_UICheckBoxTest =
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
"Marker Felt";
#else
"cocosgui/Marker Felt.ttf";
#endif

// UICheckBoxTest
UICheckBoxTest::UICheckBoxTest()
: m_pDisplayValueLabel(NULL)
{
    
}

UICheckBoxTest::~UICheckBoxTest()
{
}

bool UICheckBoxTest::init()
{
    if (UIScene::init())
    {
        Size widgetSize = m_pWidget->getSize();;
        
        // Add a label in which the checkbox events will be displayed
        m_pDisplayValueLabel = UILabel::create();
        m_pDisplayValueLabel->setText("No Event");
        m_pDisplayValueLabel->setFontName(font_UICheckBoxTest);
        m_pDisplayValueLabel->setFontSize(32);
        m_pDisplayValueLabel->setAnchorPoint(Point(0.5f, -1));
        m_pDisplayValueLabel->setPosition(Point(widgetSize.width / 2.0f, widgetSize.height / 2.0f));
        m_pUiLayer->addWidget(m_pDisplayValueLabel);
        
        // Add the alert
        UILabel *alert = UILabel::create();
        alert->setText("CheckBox");
        alert->setFontName(font_UICheckBoxTest);
        alert->setFontSize(30);
        alert->setColor(Color3B(159, 168, 176));
        alert->setPosition(Point(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 1.75));
        m_pUiLayer->addWidget(alert);        
        
        // Create the checkbox
        UICheckBox* checkBox = UICheckBox::create();
        checkBox->setTouchEnabled(true);
        checkBox->loadTextures("cocosgui/check_box_normal.png",
                               "cocosgui/check_box_normal_press.png",
                               "cocosgui/check_box_active.png",
                               "cocosgui/check_box_normal_disable.png",
                               "cocosgui/check_box_active_disable.png");
        checkBox->setPosition(Point(widgetSize.width / 2.0f, widgetSize.height / 2.0f));
        
        checkBox->addEventListener(this, checkboxselectedeventselector(UICheckBoxTest::selectedEvent));
        
//        checkBox->addSelectEvent(this, coco_selectselector(UICheckBoxTest::selectedEvent));
        m_pUiLayer->addWidget(checkBox);
        
        return true;
    }
    return false;
}

void UICheckBoxTest::selectedEvent(Object* pSender,CheckBoxEventType type)
{
    switch (type) {
        case cocos2d::extension::CHECKBOX_STATE_EVENT_SELECTED:
            m_pDisplayValueLabel->setText(CCString::createWithFormat("Selected")->getCString());
            break;
        case cocos2d::extension::CHECKBOX_STATE_EVENT_UNSELECTED:
            m_pDisplayValueLabel->setText(CCString::createWithFormat("Unselected")->getCString());
            break;
        default:
            break;
    }
    
}