1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 11:09:41 +00:00

set position on interactive MessageBox'es

This commit is contained in:
Sebastian Wick 2011-07-12 17:57:16 +02:00
parent 9c2bb76869
commit 537b2bf963
2 changed files with 26 additions and 12 deletions

View file

@ -193,6 +193,7 @@ InteractiveMessageBox::InteractiveMessageBox(MessageBoxManager& parMessageBoxMan
int buttonLeftPadding = 10; // padding between the buttons if horizontal int buttonLeftPadding = 10; // padding between the buttons if horizontal
int buttonTopPadding = 5; // ^-- if vertical int buttonTopPadding = 5; // ^-- if vertical
int buttonPadding = 5; // padding between button label and button itself int buttonPadding = 5; // padding between button label and button itself
int buttonMainPadding = 10; // padding between buttons and bottom of the main widget
getWidget(mMessageWidget, "message"); getWidget(mMessageWidget, "message");
@ -203,6 +204,7 @@ InteractiveMessageBox::InteractiveMessageBox(MessageBoxManager& parMessageBoxMan
MyGUI::IntSize textSize = mMessageWidget->_getTextSize(); MyGUI::IntSize textSize = mMessageWidget->_getTextSize();
MyGUI::IntSize gameWindowSize = mMessageBoxManager.mWindowManager->getGui()->getViewSize();
int buttonsWidth = 0; int buttonsWidth = 0;
int buttonHeight = 0; int buttonHeight = 0;
@ -220,33 +222,43 @@ InteractiveMessageBox::InteractiveMessageBox(MessageBoxManager& parMessageBoxMan
mButtons.push_back(button); mButtons.push_back(button);
buttonsWidth += button->_getTextSize().width + 2*buttonPadding + 2*buttonLeftPadding; buttonsWidth += button->_getTextSize().width + 2*buttonPadding + buttonLeftPadding;
buttonHeight = button->_getTextSize().height + 2*buttonPadding + 2*buttonTopPadding; buttonHeight = button->_getTextSize().height + 2*buttonPadding + buttonTopPadding;
} }
buttonsWidth += buttonLeftPadding;
MyGUI::IntSize mainWidgetSize; MyGUI::IntSize mainWidgetSize;
if(buttonsWidth < fixedWidth) if(buttonsWidth < fixedWidth)
{ {
// on one line // on one line
std::cout << "on one line" << std::endl;
int left;
if(textSize.width + 2*textPadding < buttonsWidth) if(textSize.width + 2*textPadding < buttonsWidth)
{ {
std::cout << "width = buttonsWidth" << std::endl;
mainWidgetSize.width = buttonsWidth; mainWidgetSize.width = buttonsWidth;
left = buttonLeftPadding;
} }
else else
{ {
mainWidgetSize.width = textSize.width + 2*textPadding; mainWidgetSize.width = textSize.width + 3*textPadding;
left = (textSize.width - buttonsWidth)/2;
} }
mainWidgetSize.height = textSize.height + textButtonPadding + buttonHeight; mainWidgetSize.height = textSize.height + textButtonPadding + buttonHeight + buttonMainPadding;
MyGUI::IntCoord absCoord;
absCoord.left = (gameWindowSize.width - mainWidgetSize.width)/2;
absCoord.top = (gameWindowSize.height - mainWidgetSize.height)/2;
std::cout << "width " << mainWidgetSize.width << " height " << mainWidgetSize.height << std::endl;
std::cout << "left " << absCoord.left << " top " << absCoord.top << std::endl;
mMainWidget->setCoord(absCoord);
mMainWidget->setSize(mainWidgetSize); mMainWidget->setSize(mainWidgetSize);
mMessageWidget->setSize(textSize); mMessageWidget->setSize(textSize);
MyGUI::IntCoord buttonCord; MyGUI::IntCoord buttonCord;
MyGUI::IntSize buttonSize(0, buttonHeight); MyGUI::IntSize buttonSize(0, buttonHeight);
int left = (mainWidgetSize.width - buttonsWidth)/2 + buttonPadding;
std::vector<MyGUI::ButtonPtr>::const_iterator button; std::vector<MyGUI::ButtonPtr>::const_iterator button;
for(button = mButtons.begin(); button != mButtons.end(); ++button) for(button = mButtons.begin(); button != mButtons.end(); ++button)
@ -254,13 +266,13 @@ InteractiveMessageBox::InteractiveMessageBox(MessageBoxManager& parMessageBoxMan
buttonCord.left = left; buttonCord.left = left;
buttonCord.top = textSize.height + textButtonPadding; buttonCord.top = textSize.height + textButtonPadding;
buttonSize.width = (*button)->_getTextSize().width + buttonPadding*2; buttonSize.width = (*button)->_getTextSize().width + 2*buttonPadding;
buttonSize.height = (*button)->_getTextSize().height + buttonPadding*2; buttonSize.height = (*button)->_getTextSize().height + 2*buttonPadding;
(*button)->setCoord(buttonCord); (*button)->setCoord(buttonCord);
(*button)->setSize(buttonSize); (*button)->setSize(buttonSize);
left += buttonSize.width + 2*buttonLeftPadding; left += buttonSize.width + buttonLeftPadding;
} }
} }
else else

View file

@ -73,6 +73,8 @@ namespace MWGui
MyGUI::EditPtr mMessageWidget; MyGUI::EditPtr mMessageWidget;
MyGUI::WidgetPtr mButtonsWidget; MyGUI::WidgetPtr mButtonsWidget;
std::vector<MyGUI::ButtonPtr> mButtons; std::vector<MyGUI::ButtonPtr> mButtons;
int mTextButtonPadding;
}; };
} }