void HallMainWidget::finish()
{
    float hrate = getHorAdaptResourceScale();
    CCSprite *bottomBg = CCSprite::createWithSpriteFrameName("hallbottom.png");
    CCSize bgSize = bottomBg->getContentSize();
    BasNodeDelegateWidget *bottomBar = new BasNodeDelegateWidget(bottomBg,CCSizeMake(bgSize.width * hrate,bgSize.height * hrate));
    this->addChild(bottomBar);
    bottomBar->setLeft("parent",uilib::Left);
    bottomBar->setRight("parent",uilib::Right);
    bottomBar->setBottom("parent",uilib::Bottom);
    bottomBar->setHeight(bgSize.height * hrate);

    BasWidget *pageWidget = new BasWidget;
    this->addChild(pageWidget);
    pageWidget->setLeft("parent",uilib::Left);
    pageWidget->setRight("parent",uilib::Right);
    pageWidget->setTop("parent",uilib::Top);
    pageWidget->setBottom(bottomBar->getName(),uilib::Top);

    BasWidget *buttonContainer =  bottomBar;

    if(m_pages.size() != 0){
        HorizontalLayout *barlay = new HorizontalLayout;
        barlay->setSpacing(5);
        barlay->setAlignChildsSize(true);
        barlay->setAveraged(true);
        barlay->setSizeLimitedToParent();
        BasButton *button;
        if(m_buttonTheme.empty())
            m_buttonTheme = "default";

        BasNodeAction *pageMoveIn = UiNodeActionFactory::getInstance()->getMoveActionByName("movein");
        pageMoveIn->setEaseType(uilib::EaseNone);
        pageMoveIn->setMoveInType(uilib::HorizontalRightIn);

        BasNodeAction *pageMoveOut = UiNodeActionFactory::getInstance()->getMoveActionByName("moveout");
        pageMoveOut->setEaseType(uilib::EaseNone);
        pageMoveOut->setMoveOutType(uilib::HorizontalRightOut);

        for(unsigned int i = 0;i < m_pages.size();i++){
            HallPageDef *page = m_pages[i];
            button = new BasButton;
            button->setTouchPriority(uilib::HighestPriority);
            button->setButtonIndex(i);
            button->setClickCB(this,callfuncND_selector(HallMainWidget::onPageButtonClicked));
            button->setButtonInfo("",m_buttonTheme,
                                  page->m_img,
                                  CCSizeMake(0,0),
                                  page->m_pressedImg
                                  );
            button->setWidthHeightRate(0.735);
            barlay->addWidget(button);
            page->m_page->setContainer(pageWidget);
            page->m_page->setMoveinAction(pageMoveIn);
            page->m_page->setMoveoutAction(pageMoveOut);
        }
        buttonContainer->setLayout(barlay);
        m_currPage = 0;
    }
}
void LoginRegDialog::finished()
{
    //init bg
    CCSize dialogSize = CCSizeMake(m_anchorWidth,m_anchorHeight);
    UiThemeDef *uiDef = UiThemeMgrProxy::getInstance()->getThemeByName(m_theme);
    BasSkin *skin = BorderImageSkin::create(dialogSize,uiDef,m_bg);
    if(skin) setSkin(skin);

    LangDef *lang = UiThemeMgrProxy::getInstance()->getThemeMgr()->getLangDef();
    if(1){ // title
        m_loginTitleWidget = new BasButton;
        m_loginTitleWidget->setCanTouch(false);
        m_loginTitleWidget->setButtonInfo("","fonts/uifont35.fnt",m_theme,m_titleBg);
        m_loginTitleWidget->setHorizontal("parent",0.5);
        m_loginTitleWidget->setTop("parent",uilib::Top);
        m_loginTitleWidget->setMaxHeightRefSize("parent",0.15);
        m_loginTitleWidget->setTopMargin(m_edgeSize);

        m_regTitleWidget = new BasButton;
        m_regTitleWidget->setCanTouch(false);
        m_regTitleWidget->setButtonInfo("","fonts/uifont35.fnt",m_theme,m_titleBg);
        m_regTitleWidget->setHorizontal("parent",0.5);
        m_regTitleWidget->setTop("parent",uilib::Top);
        m_regTitleWidget->setMaxHeightRefSize("parent",0.15);
        m_regTitleWidget->setTopMargin(m_edgeSize);
    }
    if(1){//buttons
        m_loginWidget = new BasWidget;
        HorizontalLayout *hlay;
        hlay = new HorizontalLayout;
        m_loginButton = new BasButton;
        m_loginButton->setCanTouch(true);
        m_loginButton->setButtonInfo(lang->getStringById(StringEnum::Login).data(),"fonts/uifont35.fnt",m_theme,m_loginImg,CCSizeMake(0,0),ccWHITE);
        m_loginButton->setButtonIndex(LoginButton);
        m_loginButton->setClickCB(this,callfuncND_selector(LoginRegDialog::onButtonClicked));

        m_loginCancelButton = new BasButton;
        m_loginCancelButton->setCanTouch(true);
        m_loginCancelButton->setButtonInfo(lang->getStringById(StringEnum::Cancel).data(),"fonts/uifont35.fnt",m_theme,m_cancelImg,CCSizeMake(0,0),ccWHITE);
        m_loginCancelButton->setButtonIndex(LoginCancelButton);
        m_loginCancelButton->setClickCB(this,callfuncND_selector(LoginRegDialog::onButtonClicked));

        m_loginRegButton = new BasButton;
        m_loginRegButton->setCanTouch(true);
        m_loginRegButton->setButtonInfo(lang->getStringById(StringEnum::Register).data(),"fonts/uifont35.fnt",m_theme,m_loginRegImg,CCSizeMake(0,0),ccWHITE);
        m_loginRegButton->setButtonIndex(LoginRegButton);
        m_loginRegButton->setClickCB(this,callfuncND_selector(LoginRegDialog::onButtonClicked));

        hlay->addWidget(m_loginButton);
        hlay->addWidget(m_loginCancelButton);
        hlay->addWidget(m_loginRegButton);
        hlay->setAlignChildsSize(true);
        hlay->setAveraged(true);

        m_loginWidget->setLayout(hlay);
        m_loginWidget->setLeft("parent",uilib::Left);
        m_loginWidget->setRight("parent",uilib::Right);
        m_loginWidget->setBottom("parent",uilib::Bottom);
        m_loginWidget->setMaxHeightRefSize("parent",0.2);
        m_loginWidget->setBottomMargin(m_edgeSize);
        m_loginWidget->setLeftMargin(m_edgeSize);
        m_loginWidget->setRightMargin(m_edgeSize);

        m_regWidget = new BasWidget;
        hlay = new HorizontalLayout;
        m_regButton = new BasButton;
        m_regButton->setCanTouch(true);
        m_regButton->setButtonInfo(lang->getStringById(StringEnum::Register).data(),"fonts/uifont35.fnt",m_theme,m_regImg,CCSizeMake(0,0),ccWHITE);
        m_regButton->setButtonIndex(RegButton);
        m_regButton->setClickCB(this,callfuncND_selector(LoginRegDialog::onButtonClicked));

        m_regBackButton = new BasButton;
        m_regBackButton->setCanTouch(true);
        m_regBackButton->setButtonInfo(lang->getStringById(StringEnum::Back).data(),"fonts/uifont35.fnt",m_theme,m_regBackImg,CCSizeMake(0,0),ccWHITE);
        m_regBackButton->setButtonIndex(RegBackButton);
        m_regBackButton->setClickCB(this,callfuncND_selector(LoginRegDialog::onButtonClicked));

        hlay->addWidget(m_regButton);
        hlay->addWidget(m_regBackButton);
        hlay->setAlignChildsSize(true);
        hlay->setAveraged(true);

        m_regWidget->setLayout(hlay);
        m_regWidget->setLeft("parent",uilib::Left);
        m_regWidget->setRight("parent",uilib::Right);
        m_regWidget->setBottom("parent",uilib::Bottom);
        m_regWidget->setMaxHeightRefSize("parent",0.2);
        m_regWidget->setBottomMargin(m_edgeSize);
        m_regWidget->setLeftMargin(m_edgeSize);
        m_regWidget->setRightMargin(m_edgeSize);

        //actions
        BasNodeAction *moveIn = UiNodeActionFactory::getInstance()->getMoveActionByName("movein");
        BasNodeAction *moveOut = UiNodeActionFactory::getInstance()->getMoveActionByName("moveout");
        moveIn->setEaseType(uilib::EaseSineInOut);
        moveIn->setMoveInType(uilib::ScaleYIn);
        moveOut->setEaseType(uilib::EaseSineInOut);
        moveOut->setMoveOutType(uilib::ScaleYOut);
        moveOut->setActionTime(0.2);
        moveIn->setStartTime(0.2);
        m_loginWidget->setMoveinAction(moveIn);
        m_loginWidget->setMoveoutAction(moveOut);
        m_regWidget->setMoveinAction(moveIn);
        m_regWidget->setMoveoutAction(moveOut);
    }
    this->addChild(m_loginTitleWidget);
    this->addChild(m_regTitleWidget);
    this->addChild(m_loginWidget);
    this->addChild(m_regWidget);
    m_regWidget->setEnabled(false);
    m_regWidget->setVisible(false);
    m_regTitleWidget->setVisible(false);
    if(1){//content widget
        m_contentWidget = new BasWidget;
        m_contentWidget->setLeft("parent",uilib::Left);
        m_contentWidget->setRight("parent",uilib::Right);
        m_contentWidget->setLeftMargin(m_edgeSize);
        m_contentWidget->setRightMargin(m_edgeSize);
        m_contentWidget->setTopMargin(m_edgeSize / 4);
        m_contentWidget->setBottomMargin(m_edgeSize / 4);
        m_contentWidget->setTop(m_loginTitleWidget->getName(),uilib::Bottom);
        m_contentWidget->setBottom(m_loginWidget->getName(),uilib::Top);

        VerticalLayout *mainlay = new VerticalLayout;
        BasLabel *label1,*label2;
        label1 = new BasLabel;
        label1->setLabelInfo(lang->getStringById(StringEnum::Account).data(),"fonts/uifont35.fnt","default","",CCSizeMake(0,0),ccBLACK);
        label2 = new BasLabel;
        label2->setLabelInfo(lang->getStringById(StringEnum::Passwd).data(),"fonts/uifont35.fnt","default","",CCSizeMake(0,0),ccBLACK);

        m_accountBox = new InputBox;
        m_accountBox->setMaxLength(m_accountLimitLen);
        m_accountBox->setTheme("default","inputbg");
        m_accountBox->setText(m_account);
        m_accountBox->setMinHeightRefSize("parent",0.25);
        m_passwdBox = new InputBox;
        m_passwdBox->setMaxLength(m_passwdLimitLen);
        m_passwdBox->setTheme("default","inputbg");
        m_passwdBox->setText(m_passwd);
        m_passwdBox->setMinHeightRefSize("parent",0.25);
        m_passwdBox->setInputFlag(kEditBoxInputFlagPassword);

        mainlay->addWidget(label1);
        mainlay->addWidget(m_accountBox);
        mainlay->addWidget(label2);
        mainlay->addWidget(m_passwdBox);
        mainlay->setAlignChildsSize(false);
        mainlay->setAveraged(true);
        mainlay->setChildAlign(0,uilib::Left);
        mainlay->setChildAlign(2,uilib::Left);
        mainlay->setChildAlign(1,uilib::Left);
        mainlay->setChildAlign(1,uilib::Right);
        mainlay->setChildAlign(3,uilib::Left);
        mainlay->setChildAlign(3,uilib::Right);
        m_contentWidget->setLayout(mainlay);
    }
    this->addChild(m_contentWidget);
}