add UIPageView button tests

This commit is contained in:
andyque 2014-07-07 15:31:06 +08:00
parent 037a7dc882
commit 6f33e4b84f
5 changed files with 120 additions and 3 deletions

View File

@ -183,7 +183,7 @@ g_guisTests[] =
UISceneManager* sceneManager = UISceneManager::sharedUISceneManager();
sceneManager->setCurrentUISceneId(kUIPageViewTest);
sceneManager->setMinUISceneId(kUIPageViewTest);
sceneManager->setMaxUISceneId(kUIPageViewTest);
sceneManager->setMaxUISceneId(kUIPageViewButtonTest);
Scene* scene = sceneManager->currentUIScene();
Director::getInstance()->replaceScene(scene);
}

View File

@ -97,3 +97,103 @@ void UIPageViewTest::pageViewEvent(Ref *pSender, PageView::EventType type)
break;
}
}
// UIPageViewButtonTest
UIPageViewButtonTest::UIPageViewButtonTest()
: _displayValueLabel(nullptr)
{
}
UIPageViewButtonTest::~UIPageViewButtonTest()
{
}
bool UIPageViewButtonTest::init()
{
if (UIScene::init())
{
Size widgetSize = _widget->getContentSize();
// Add a label in which the dragpanel events will be displayed
_displayValueLabel = Text::create("Move by horizontal direction", "fonts/Marker Felt.ttf", 32);
_displayValueLabel->setAnchorPoint(Vec2(0.5f, -1.0f));
_displayValueLabel->setPosition(Vec2(widgetSize.width / 2.0f,
widgetSize.height / 2.0f +
_displayValueLabel->getContentSize().height * 1.5));
_uiLayer->addChild(_displayValueLabel);
// Add the black background
Text* alert = Text::create("PageView with Buttons", "fonts/Marker Felt.ttf", 30);
alert->setColor(Color3B(159, 168, 176));
alert->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getContentSize().height * 3.075f));
_uiLayer->addChild(alert);
Layout* root = static_cast<Layout*>(_uiLayer->getChildByTag(81));
Layout* background = dynamic_cast<Layout*>(root->getChildByName("background_Panel"));
// Create the page view
PageView* pageView = PageView::create();
pageView->setContentSize(Size(240.0f, 130.0f));
Size backgroundSize = background->getContentSize();
pageView->setPosition(Vec2((widgetSize.width - backgroundSize.width) / 2.0f +
(backgroundSize.width - pageView->getContentSize().width) / 2.0f,
(widgetSize.height - backgroundSize.height) / 2.0f +
(backgroundSize.height - pageView->getContentSize().height) / 2.0f));
pageView->removeAllPages();
int pageCount = 4;
for (int i = 0; i < pageCount; ++i)
{
VBox* layout = VBox::create();
layout->setContentSize(Size(240.0f, 130.0f));
for (int j = 0; j < 3; j++) {
Button *btn = Button::create("cocosui/animationbuttonnormal.png",
"cocosui/animationbuttonpressed.png");
btn->setName(StringUtils::format("button %d", j));
btn->addTouchEventListener( CC_CALLBACK_2(UIPageViewButtonTest::onButtonClicked, this));
layout->addChild(btn);
}
pageView->insertPage(layout,i);
}
pageView->removePageAtIndex(0);
pageView->addEventListener(CC_CALLBACK_2(UIPageViewButtonTest::pageViewEvent, this));
_uiLayer->addChild(pageView);
return true;
}
return false;
}
void UIPageViewButtonTest::onButtonClicked(Ref* pSender, Widget::TouchEventType type)
{
Button *btn = (Button*)pSender;
CCLOG("button %s clicked", btn->getName().c_str());
}
void UIPageViewButtonTest::pageViewEvent(Ref *pSender, PageView::EventType type)
{
switch (type)
{
case PageView::EventType::TURNING:
{
PageView* pageView = dynamic_cast<PageView*>(pSender);
_displayValueLabel->setString(CCString::createWithFormat("page = %ld", pageView->getCurPageIndex() + 1)->getCString());
}
break;
default:
break;
}
}

View File

@ -41,4 +41,18 @@ protected:
Text* _displayValueLabel;
};
class UIPageViewButtonTest : public UIScene
{
public:
UIPageViewButtonTest();
~UIPageViewButtonTest();
bool init();
void pageViewEvent(Ref* pSender, PageView::EventType type);
void onButtonClicked(Ref* pSender, Widget::TouchEventType type);
protected:
UI_SCENE_CREATE_FUNC(UIPageViewButtonTest)
Text* _displayValueLabel;
};
#endif /* defined(__TestCpp__UIPageViewTest__) */

View File

@ -100,7 +100,8 @@ static const char* s_testArray[] =
"UIScrollViewTest_Both",
"UIScrollViewTest_ScrollToPercentBothDirection",
"UIScrollViewTest_ScrollToPercentBothDirection_Bounce",
"UIPageViewTest,",
"UIPageViewTest",
"UIPageViewButtonTest",
"UIListViewTest_Vertical",
"UIListViewTest_Horizontal",
/*
@ -344,7 +345,8 @@ Scene *UISceneManager::currentUIScene()
case kUIPageViewTest:
return UIPageViewTest::sceneWithTitle(s_testArray[_currentUISceneId]);
case kUIPageViewButtonTest:
return UIPageViewButtonTest::sceneWithTitle(s_testArray[_currentUISceneId]);
case kUIListViewTest_Vertical:
return UIListViewTest_Vertical::sceneWithTitle(s_testArray[_currentUISceneId]);

View File

@ -90,6 +90,7 @@ enum
kUIScrollViewTest_ScrollToPercentBothDirection,
kUIScrollViewTest_ScrollToPercentBothDirection_Bounce,
kUIPageViewTest,
kUIPageViewButtonTest,
kUIListViewTest_Vertical,
kUIListViewTest_Horizontal,
/*