예제 #1
0
void PanelView::updateView()
{
	// вычисл¤ем максимальную высоту всего добра
	int height = 0;
	for (VectorPanel::iterator iter=mItems.begin(); iter!=mItems.end(); ++iter) {
		MyGUI::WidgetPtr widget = (*iter)->getPanelCell()->mainWidget();
		if (widget->isShow()) {
			height += widget->getHeight();
		}
	}
	// ставим высоту холста, и спрашиваем получившуюс¤ ширину клиента
	mScrollView->setCanvasSize(0, height);
	// ширина клиента могла помен¤тс¤
	MyGUI::IntCoord coord = mScrollView->getClientCoord();
	mScrollView->setCanvasSize(coord.width, height);

	// выравниваем все панели
	int pos = 0;
	for (VectorPanel::iterator iter=mItems.begin(); iter!=mItems.end(); ++iter) {
		MyGUI::WidgetPtr widget = (*iter)->getPanelCell()->mainWidget();
		if (widget->isShow()) {
			height = widget->getHeight();
			widget->setPosition(MyGUI::IntCoord(0, pos, coord.width, height));
			pos += height;
		}
	}

	mNeedUpdate = false;
	MyGUI::Gui::getInstance().eventFrameStart -= MyGUI::newDelegate(this, &PanelView::frameEntered);
}
예제 #2
0
bool GUIMessageLayout::Load()
{
	bool res = GUILayout::Load();
	
	MyGUI::ButtonPtr button;

	MyGUI::Gui *gui = GUISystem::GetInstance()->GetGui();
	
	button = gui->findWidget<MyGUI::Button>("MessageButtonOK");
	button->eventMouseButtonClick = MyGUI::newDelegate(this, &GUIMessageLayout::mousePressed);

	MyGUI::WidgetPtr widget = Widgets.front();
	
	widget->setPosition(gui->getViewWidth()/2-widget->getWidth()/2,gui->getViewHeight()/2-widget->getHeight()/2);

	return res;
}
예제 #3
0
파일: class.cpp 프로젝트: DeejStar/openmw
void InfoBoxDialog::layoutVertically(MyGUI::WidgetPtr widget, int margin)
{
    size_t count = widget->getChildCount();
    int pos = 0;
    pos += margin;
    int width = 0;
    for (unsigned i = 0; i < count; ++i)
    {
        MyGUI::WidgetPtr child = widget->getChildAt(i);
        if (!child->getVisible())
            continue;

        child->setPosition(child->getLeft(), pos);
        width = std::max(width, child->getWidth());
        pos += child->getHeight() + margin;
    }
    width += margin*2;
    widget->setSize(width, pos);
}