void SelectMenuView::noticeMoveLevel( int level ) { UIPageView* scrollView = static_cast<UIPageView*>(this->getWidgetByName("scrollView")); scrollView->scrollToPage(level); // scrollView->getInnerContainer()->setPosition(Point( 0, level*GAME_WIDTH)); // throw std::exception("The method or operation is not implemented."); }
static int lua_cocos2dx_UIPageView_addEventListenerPageView(lua_State* L) { if (nullptr == L) return 0; int argc = 0; UIPageView* self = nullptr; #if COCOS2D_DEBUG >= 1 tolua_Error tolua_err; if (!tolua_isusertype(L,1,"UIPageView",0,&tolua_err)) goto tolua_lerror; #endif self = static_cast<UIPageView*>(tolua_tousertype(L,1,0)); #if COCOS2D_DEBUG >= 1 if (nullptr == self) { tolua_error(L,"invalid 'self' in function 'lua_cocos2dx_UIPageView_addEventListenerPageView'\n", NULL); return 0; } #endif argc = lua_gettop(L) - 1; if (1 == argc) { #if COCOS2D_DEBUG >= 1 if (!toluafix_isfunction(L,2,"LUA_FUNCTION",0,&tolua_err) ) { goto tolua_lerror; } #endif LuaCocoStudioEventListener* listener = LuaCocoStudioEventListener::create(); if (nullptr == listener) { tolua_error(L,"LuaCocoStudioEventListener create fail\n", NULL); return 0; } LUA_FUNCTION handler = ( toluafix_ref_function(L,2,0)); ScriptHandlerMgr::getInstance()->addObjectHandler((void*)listener, handler, ScriptHandlerMgr::HandlerType::EVENT_LISTENER); self->setUserObject(listener); self->addEventListenerPageView(listener, pagevieweventselector(LuaCocoStudioEventListener::eventCallbackFunc)); return 0; } CCLOG("'addEventListenerPageView' function of UIPageView has wrong number of arguments: %d, was expecting %d\n", argc, 1); return 0; #if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(L,"#ferror in function 'addEventListenerPageView'.",&tolua_err); return 0; #endif }
UIPageView* UIPageView::create() { UIPageView* widget = new UIPageView(); if (widget && widget->init()) { widget->autorelease(); return widget; } CC_SAFE_DELETE(widget); return NULL; }
void HelloWorld::pageViewEvent( CCObject *pSender, PageViewEventType type ) { switch (type) { case PAGEVIEW_EVENT_TURNING: ///< 是否翻页了 { UIPageView* pageView = dynamic_cast<UIPageView*>(pSender); CCLog("%s", pageView->getName()); } break; default: break; } }
void UIPageViewTest::pageViewEvent(CCObject *pSender, PageViewEventType type) { switch (type) { case PAGEVIEW_EVENT_TURNING: { UIPageView* pageView = dynamic_cast<UIPageView*>(pSender); m_pDisplayValueLabel->setText(CCString::createWithFormat("page = %d", pageView->getCurPageIndex() + 1)->getCString()); } break; default: break; } }
void SelectMenuView::onPageViewMove( CCObject *pSender, PageViewEventType type ) { switch (type) { case PAGEVIEW_EVENT_TURNING: { char tmp[32]; UIPageView* pageView = dynamic_cast<UIPageView*>(pSender); // pageView->getCurPageIndex() UIWidget* widget = this->getWidgetByName("bottomUIWidget"); UIWidget* selectedPoint = widget->getChildByName("selected"); sprintf(tmp,"unselect%d",pageView->getCurPageIndex() + 1); UIWidget* unselectedPoint = widget->getChildByName(tmp); selectedPoint->setPosition(unselectedPoint->getPosition()); } break; } }
void CocosGUIExamplesPageScene::PageInit() { // page root from json UILayout* page_root = dynamic_cast<UILayout*>(GUIReader::shareReader()->widgetFromJsonFile("cocosgui/gui_examples/page_1/page_1.json")); m_pUILayer->addWidget(page_root); // page layout UILayout* page_layout = dynamic_cast<UILayout*>(page_root->getChildByName("page_panel")); // page view add to page layout UIPageView* pageView = UIPageView::create(); pageView->setTouchEnable(true); pageView->setSize(page_layout->getContentSize()); // layout add to page view for (int i = 0; i < 4; ++i) { UILayout* layout = UILayout::create(); layout->setSize(pageView->getContentSize()); UIImageView* imageView = UIImageView::create(); imageView->setTouchEnable(true); imageView->loadTexture(page_image_textures[i]); imageView->setPosition(ccp(layout->getContentSize().width / 2, layout->getContentSize().height / 2)); layout->addChild(imageView); pageView->addPage(layout); } pageView->addPageTurningEvent(this, coco_PageView_PageTurning_selector(CocosGUIExamplesPageScene::pageTurningEvent)); page_layout->addChild(pageView); }
void CocosGUIExamplesPageScene::pageTurningEvent(CCObject* pSender) { UIPageView* pageView = dynamic_cast<UIPageView*>(pSender); int page = pageView->getPage() + 1; UILayout* page_root = dynamic_cast<UILayout*>(m_pUILayer->getWidgetByName("page_root")); // set current page number for text UILabel* page_alert_label = dynamic_cast<UILabel*>(page_root->getChildByName("page_alert_label")); page_alert_label->setText(CCString::createWithFormat("page %d", page)->getCString()); // set current page for image UILayout* page_alert_bottom_layout = dynamic_cast<UILayout*>(page_root->getChildByName("page_alert_bottom_panel")); int count = page_alert_bottom_layout->getChildren()->count(); for (int i = count / 2; i < count; ++i) { UIWidget* child = dynamic_cast<UIWidget*>(page_alert_bottom_layout->getChildren()->objectAtIndex(i)); child->setVisible(false); } UIImageView* page_imageview = dynamic_cast<UIImageView*>(page_root->getChildByName(CCString::createWithFormat("page_%d_imageview", page)->getCString())); page_imageview->setVisible(true); }
bool UIPageViewTest::init() { if (UIScene::init()) { CCSize widgetSize = m_pWidget->getSize(); // Add a label in which the dragpanel events will be displayed m_pDisplayValueLabel = UILabel::create(); m_pDisplayValueLabel->setText("Move by horizontal direction"); m_pDisplayValueLabel->setFontName("Marker Felt"); m_pDisplayValueLabel->setFontSize(32); m_pDisplayValueLabel->setAnchorPoint(ccp(0.5f, -1)); m_pDisplayValueLabel->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f + m_pDisplayValueLabel->getContentSize().height * 1.5)); m_pUiLayer->addWidget(m_pDisplayValueLabel); // Add the black background UILabel *alert = UILabel::create(); alert->setText("PageView"); alert->setFontName("Marker Felt"); alert->setFontSize(30); alert->setColor(ccc3(159, 168, 176)); alert->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 3.075)); m_pUiLayer->addWidget(alert); UILayout *background = dynamic_cast<UILayout*>(m_pUiLayer->getWidgetByName("background_Panel")); // Create the page view UIPageView* pageView = UIPageView::create(); pageView->setTouchEnabled(true); pageView->setSize(CCSizeMake(240, 130)); CCSize backgroundSize = background->getContentSize(); pageView->setPosition(ccp((widgetSize.width - backgroundSize.width) / 2 + (backgroundSize.width - pageView->getSize().width) / 2, (widgetSize.height - backgroundSize.height) / 2 + (backgroundSize.height - pageView->getSize().height) / 2)); for (int i = 0; i < 3; ++i) { UILayout* layout = UILayout::create(); layout->setSize(CCSizeMake(240, 130)); UIImageView* imageView = UIImageView::create(); imageView->setTouchEnabled(true); imageView->setScale9Enabled(true); imageView->loadTexture("cocosgui/scrollviewbg.png"); imageView->setSize(CCSizeMake(240, 130)); imageView->setPosition(ccp(layout->getSize().width / 2, layout->getSize().height / 2)); layout->addChild(imageView); UILabel* label = UILabel::create(); label->setText(CCString::createWithFormat("page %d", (i + 1))->getCString()); label->setFontName("Marker Felt"); label->setFontSize(30); label->setColor(ccc3(192, 192, 192)); label->setPosition(ccp(layout->getSize().width / 2, layout->getSize().height / 2)); layout->addChild(label); pageView->addPage(layout); } pageView->addEventListenerPageView(this, pagevieweventselector(UIPageViewTest::pageViewEvent)); m_pUiLayer->addWidget(pageView); return true; } return false; }
bool SelectMenuView::init() { char tmp[32]; UILayer::init(); // background UIImageView* background = UIImageView::create(); background->loadTexture("level_bg.jpg",UI_TEX_TYPE_PLIST); background->setAnchorPoint(CCPoint(0,0)); this->addWidget(background); // Beauty Card UIPageView* scrollView = UIPageView::create(); scrollView->setTouchEnabled(true); scrollView->setSize( CCSize( GAME_WIDTH, GAME_HEIGHT * 3 / 4 ) ); scrollView->setPosition(CCPoint( 0, GAME_HEIGHT/8 )); scrollView->setName("scrollView"); UILayout* widgetBeautyCard = (UILayout*)GUIReader::shareReader()->widgetFromJsonFile("BeautyCard.ExportJson"); for( int i = 0; i < MAX_BEAUTY_NUM; i++ ) { Layout* layout = Layout::create(); layout->setSize(CCSize(GAME_WIDTH, GAME_HEIGHT * 3 / 4)); ScrollButton* button = ScrollButton::create(); button->setSize(CCSize(160,200)); UILayout* widget = NULL; if(i == 0) { widget = widgetBeautyCard; } else { widget = static_cast<UILayout*>(widgetBeautyCard->clone()); } widget->setAnchorPoint(CCPoint( 0.5f, 0.5f)); button->setPosition(CCPoint(GAME_WIDTH/2,GAME_HEIGHT* 3 / 8)); sprintf(tmp,"beautyCard%d",i); button->setName(tmp); //widget->setPosition( Point( GAME_WIDTH * i, 0 ) ); button->setTag( i + CARD_TAG ); button->addChild(widget); layout->addChild( button ); scrollView->addPage( layout ); } //CC_SAFE_DELETE(widgetTree); //CC_SAFE_DELETE(jsonDict); //CC_SAFE_DELETE_ARRAY(des); scrollView->addEventListener(this, pagevieweventselector(SelectMenuView::onPageViewMove)); this->addWidget( scrollView ); // bottom UIWidget* bottomWidget = (UIWidget*)GUIReader::shareReader()->widgetFromJsonFile("SelectUI.ExportJson"); bottomWidget->setName("bottomUIWidget"); this->addWidget( bottomWidget ); // buttton UIButton* button_back = static_cast<UIButton*>( bottomWidget->getChildByName("Button_back") ); UIButton* button_seal = static_cast<UIButton*>( bottomWidget->getChildByName("Button_seal") ); button_back->addTouchEventListener(this,toucheventselector(SelectMenuView::onTouchButton)); button_back->setTouchEnabled(true); button_back->setPressedActionEnabled(true); button_seal->addTouchEventListener(this,toucheventselector(SelectMenuView::onTouchButton)); button_seal->setTouchEnabled(true); button_seal->setPressedActionEnabled(true); // Evil Mask panel _panelEvil = (UIWidget*)GUIReader::shareReader()->widgetFromJsonFile("PanelEvil.ExportJson"); _panelEvil->retain(); // unlock panel _panelUnlock = (UIWidget*)GUIReader::shareReader()->widgetFromJsonFile("PanelSelectLock.ExportJson"); _panelUnlock->retain(); return true; }
void SelectMenuView::noticeView(SelectMenuModel* model) { #pragma region RESET_SCROLL_RECT char tmp[32]; UIPageView* scrollView = static_cast<UIPageView*>(this->getWidgetByName("scrollView")); for( int i = 0; i < MAX_BEAUTY_NUM; i++ ) { UIWidget* widget = scrollView->getChildByTag( i + CARD_TAG ); widget->addTouchEventListener(this , toucheventselector(SelectMenuView::onTouchBeautyCard)); //UIImageView* card_bg = static_cast<UIImageView*>(widget->getChildByName("card_bg")); //card_bg->setTouchEnabled(true); //card_bg->addTouchEventListener(this , toucheventselector(SelectMenuView::touchBeautyCard)); UILabelBMFont* nameTxt = static_cast<UILabelBMFont*>(widget->getChildByName("txt_name")); UILabelBMFont* timeTxt = static_cast<UILabelBMFont*>(widget->getChildByName("txt_time")); UIImageView* beautyHead = static_cast<UIImageView*>(widget->getChildByName("head")); UIImageView* beContinue = static_cast<UIImageView*>(widget->getChildByName("moreLevel")); UIImageView* passRibbon = static_cast<UIImageView*>(widget->getChildByName("lock")); UIImageView* hearts[MAX_HEART]; UIImageView* stars[MAX_STAR]; for( int n = 0; n < MAX_HEART; n++ ) { sprintf( tmp, "heart%d",n+1 ); hearts[n] = static_cast<UIImageView*>(widget->getChildByName(tmp)); hearts[n]->setVisible(false); sprintf( tmp, "star%d",n+1 ); stars[n] = static_cast<UIImageView*>(widget->getChildByName(tmp)); stars[n]->setVisible(false); } if( i < REAL_BEAUTY_NUM ) { BeautyData data = model->getBeautyData(i); // --------------------------- Setting --------------------------- //if( i < REAL_BEAUTY_NUM ) //{ sprintf( tmp , "head_%d.png" , i); beautyHead->loadTexture(tmp ,UI_TEX_TYPE_PLIST); //} nameTxt->setText( data.name ); if(data.time>9) sprintf( tmp,"%d:00", data.time ); else sprintf( tmp,"0%d:00", data.time ); timeTxt->setVisible(true); timeTxt->setText(tmp); for ( int n = 0; n < MAX_STAR; n++ ) { if( n < data.difficult ) stars[n]->setVisible(true); else stars[n]->setVisible(false); } int heartNum = model->getUserGainHeartNum(i); for ( int n = 0; n < MAX_HEART; n++ ) { if( n < heartNum ) hearts[n]->setVisible(true); else hearts[n]->setVisible(false); } beContinue->setVisible(false); if(heartNum < 0) {// not pass && close passRibbon->setVisible(true); } else {// pass || open passRibbon->setVisible(false); } } ///////////// else { if(i == MAX_BEAUTY_NUM - 1 ) { beContinue->setVisible(true); beautyHead->loadTexture("head_9.png" ,UI_TEX_TYPE_PLIST); } else { sprintf( tmp , "head_%d.png" , i); beautyHead->loadTexture(tmp ,UI_TEX_TYPE_PLIST); } nameTxt->setText( "???????????" ); timeTxt->setText("--:--"); passRibbon->setVisible(false); } } #pragma endregion }