void UIListViewEx::remedyLayoutParameter(UIWidget *item) { if (!item) { return; } switch (m_eDirection) { case SCROLLVIEW_DIR_VERTICAL: { UILinearLayoutParameter* llp = (UILinearLayoutParameter*)(item->getLayoutParameter(LAYOUT_PARAMETER_LINEAR)); if (!llp) { UILinearLayoutParameter* defaultLp = UILinearLayoutParameter::create(); switch (m_eGravity) { case LISTVIEW_GRAVITY_LEFT: defaultLp->setGravity(LINEAR_GRAVITY_LEFT); break; case LISTVIEW_GRAVITY_RIGHT: defaultLp->setGravity(LINEAR_GRAVITY_RIGHT); break; case LISTVIEW_GRAVITY_CENTER_HORIZONTAL: defaultLp->setGravity(LINEAR_GRAVITY_CENTER_HORIZONTAL); break; default: break; } if (getIndex(item) == 0) { defaultLp->setMargin(UIMarginZero); } else { defaultLp->setMargin(UIMargin(0.0f, m_fItemsMargin, 0.0f, 0.0f)); } item->setLayoutParameter(defaultLp); } else { if (getIndex(item) == 0) { llp->setMargin(UIMarginZero); } else { llp->setMargin(UIMargin(0.0f, m_fItemsMargin, 0.0f, 0.0f)); } switch (m_eGravity) { case LISTVIEW_GRAVITY_LEFT: llp->setGravity(LINEAR_GRAVITY_LEFT); break; case LISTVIEW_GRAVITY_RIGHT: llp->setGravity(LINEAR_GRAVITY_RIGHT); break; case LISTVIEW_GRAVITY_CENTER_HORIZONTAL: llp->setGravity(LINEAR_GRAVITY_CENTER_HORIZONTAL); break; default: break; } } break; } case SCROLLVIEW_DIR_HORIZONTAL: { UILinearLayoutParameter* llp = (UILinearLayoutParameter*)(item->getLayoutParameter(LAYOUT_PARAMETER_LINEAR)); if (!llp) { UILinearLayoutParameter* defaultLp = UILinearLayoutParameter::create(); switch (m_eGravity) { case LISTVIEW_GRAVITY_TOP: defaultLp->setGravity(LINEAR_GRAVITY_TOP); break; case LISTVIEW_GRAVITY_BOTTOM: defaultLp->setGravity(LINEAR_GRAVITY_BOTTOM); break; case LISTVIEW_GRAVITY_CENTER_VERTICAL: defaultLp->setGravity(LINEAR_GRAVITY_CENTER_VERTICAL); break; default: break; } if (getIndex(item) == 0) { defaultLp->setMargin(UIMarginZero); } else { defaultLp->setMargin(UIMargin(m_fItemsMargin, 0.0f, 0.0f, 0.0f)); } item->setLayoutParameter(defaultLp); } else { if (getIndex(item) == 0) { llp->setMargin(UIMarginZero); } else { llp->setMargin(UIMargin(m_fItemsMargin, 0.0f, 0.0f, 0.0f)); } switch (m_eGravity) { case LISTVIEW_GRAVITY_TOP: llp->setGravity(LINEAR_GRAVITY_TOP); break; case LISTVIEW_GRAVITY_BOTTOM: llp->setGravity(LINEAR_GRAVITY_BOTTOM); break; case LISTVIEW_GRAVITY_CENTER_VERTICAL: llp->setGravity(LINEAR_GRAVITY_CENTER_VERTICAL); break; default: break; } } break; } default: break; } }
bool UILayoutTest_Layout_Linear_Horizontal::init() { if (UIScene::init()) { CCSize widgetSize = m_pWidget->getSize(); // Add the alert UILabel* alert = UILabel::create(); alert->setText("Layout Layout Linear Horizontal"); alert->setFontName("Marker Felt"); alert->setFontSize(20); alert->setColor(ccc3(159, 168, 176)); alert->setPosition(ccp(widgetSize.width / 2.0f, widgetSize.height / 2.0f - alert->getSize().height * 4.5)); m_pUiLayer->addWidget(alert); Layout* background = dynamic_cast<Layout*>(m_pUiLayer->getWidgetByName("background_Panel")); // Create the layout Layout* layout = Layout::create(); layout->setLayoutType(LAYOUT_LINEAR_HORIZONTAL); layout->setClippingEnabled(true); layout->setSize(CCSizeMake(280, 150)); CCSize backgroundSize = background->getSize(); layout->setPosition(ccp((widgetSize.width - backgroundSize.width) / 2 + (backgroundSize.width - layout->getSize().width) / 2, (widgetSize.height - backgroundSize.height) / 2 + (backgroundSize.height - layout->getSize().height) / 2)); m_pUiLayer->addWidget(layout); UIButton* button = UIButton::create(); button->setTouchEnabled(true); button->loadTextures("cocosui/animationbuttonnormal.png", "cocosui/animationbuttonpressed.png", ""); layout->addChild(button); UILinearLayoutParameter* lp1 = UILinearLayoutParameter::create(); button->setLayoutParameter(lp1); lp1->setGravity(LINEAR_GRAVITY_CENTER_VERTICAL); lp1->setMargin(UIMargin(0, 10, 0, 10)); UIButton* titleButton = UIButton::create(); titleButton->setTouchEnabled(true); titleButton->loadTextures("cocosui/backtotopnormal.png", "cocosui/backtotoppressed.png", ""); titleButton->setTitleText("Title Button"); layout->addChild(titleButton); UILinearLayoutParameter* lp2 = UILinearLayoutParameter::create(); titleButton->setLayoutParameter(lp2); lp2->setGravity(LINEAR_GRAVITY_CENTER_VERTICAL); lp2->setMargin(UIMargin(0, 10, 0, 10)); UIButton* button_scale9 = UIButton::create(); button_scale9->setTouchEnabled(true); button_scale9->loadTextures("cocosui/button.png", "cocosui/buttonHighlighted.png", ""); button_scale9->setScale9Enabled(true); button_scale9->setSize(CCSizeMake(100, button_scale9->getContentSize().height)); layout->addChild(button_scale9); UILinearLayoutParameter* lp3 = UILinearLayoutParameter::create(); button_scale9->setLayoutParameter(lp3); lp3->setGravity(LINEAR_GRAVITY_CENTER_VERTICAL); lp3->setMargin(UIMargin(0, 10, 0, 10)); return true; } return false; }