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;  
	}  
}
Exemple #5
0
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);
}
Exemple #9
0
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
}