mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-21 12:53:51 +00:00
Merge remote branch 'swick/MessageBox' into MessageBox
This commit is contained in:
commit
c4177698d0
8 changed files with 294 additions and 18 deletions
|
@ -7,6 +7,7 @@ MessageBoxManager::MessageBoxManager (WindowManager *windowManager)
|
||||||
mWindowManager = windowManager;
|
mWindowManager = windowManager;
|
||||||
// defines
|
// defines
|
||||||
mMessageBoxSpeed = 0.1;
|
mMessageBoxSpeed = 0.1;
|
||||||
|
mInterMessageBoxe = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::onFrame (float frameDuration)
|
void MessageBoxManager::onFrame (float frameDuration)
|
||||||
|
@ -46,6 +47,12 @@ void MessageBoxManager::onFrame (float frameDuration)
|
||||||
it++;
|
it++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mInterMessageBoxe != NULL && mInterMessageBoxe->mMarkedToDelete) {
|
||||||
|
delete mInterMessageBoxe;
|
||||||
|
mInterMessageBoxe = NULL;
|
||||||
|
mWindowManager->setNextMode(GM_Game);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::createMessageBox (const std::string& message)
|
void MessageBoxManager::createMessageBox (const std::string& message)
|
||||||
|
@ -72,19 +79,24 @@ void MessageBoxManager::createMessageBox (const std::string& message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons)
|
bool MessageBoxManager::createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons)
|
||||||
{
|
{
|
||||||
|
if(mInterMessageBoxe != NULL) {
|
||||||
|
std::cout << "there is a MessageBox already" << std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
std::cout << "interactive MessageBox: " << message << " - ";
|
std::cout << "interactive MessageBox: " << message << " - ";
|
||||||
std::copy (buttons.begin(), buttons.end(), std::ostream_iterator<std::string> (std::cout, ", "));
|
std::copy (buttons.begin(), buttons.end(), std::ostream_iterator<std::string> (std::cout, ", "));
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
||||||
std::vector<MessageBox*>::iterator it = mMessageBoxes.begin();
|
mInterMessageBoxe = new InteractiveMessageBox(*this, message, buttons);
|
||||||
while(it != mMessageBoxes.end())
|
|
||||||
{
|
return true;
|
||||||
delete (*it);
|
}
|
||||||
it = mMessageBoxes.erase(it);
|
|
||||||
}
|
bool MessageBoxManager::isInteractiveMessageBox ()
|
||||||
mMessageBoxes.clear();
|
{
|
||||||
|
return mInterMessageBoxe != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageBoxManager::removeMessageBox (float time, MessageBox *msgbox)
|
void MessageBoxManager::removeMessageBox (float time, MessageBox *msgbox)
|
||||||
|
@ -118,6 +130,16 @@ void MessageBoxManager::setMessageBoxSpeed (int speed)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int MessageBoxManager::readPressedButton ()
|
||||||
|
{
|
||||||
|
if(mInterMessageBoxe != NULL)
|
||||||
|
{
|
||||||
|
return mInterMessageBoxe->readPressedButton();
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::string& message)
|
MessageBox::MessageBox(MessageBoxManager& parMessageBoxManager, const std::string& message)
|
||||||
|
@ -174,3 +196,199 @@ int MessageBox::getHeight ()
|
||||||
{
|
{
|
||||||
return mHeight+mNextBoxPadding; // 20 is the padding between this and the next MessageBox
|
return mHeight+mNextBoxPadding; // 20 is the padding between this and the next MessageBox
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
InteractiveMessageBox::InteractiveMessageBox(MessageBoxManager& parMessageBoxManager, const std::string& message, const std::vector<std::string>& buttons)
|
||||||
|
: Layout("openmw_interactive_messagebox_layout.xml")
|
||||||
|
, mMessageBoxManager(parMessageBoxManager)
|
||||||
|
, mButtonPressed(-1)
|
||||||
|
{
|
||||||
|
int fixedWidth = 500;
|
||||||
|
int textPadding = 10; // padding between text-widget and main-widget
|
||||||
|
int textButtonPadding = 20; // padding between the text-widget und the button-widget
|
||||||
|
int buttonLeftPadding = 10; // padding between the buttons if horizontal
|
||||||
|
int buttonTopPadding = 5; // ^-- if vertical
|
||||||
|
int buttonPadding = 5; // padding between button label and button itself
|
||||||
|
int buttonMainPadding = 10; // padding between buttons and bottom of the main widget
|
||||||
|
|
||||||
|
mMarkedToDelete = false;
|
||||||
|
|
||||||
|
|
||||||
|
getWidget(mMessageWidget, "message");
|
||||||
|
getWidget(mButtonsWidget, "buttons");
|
||||||
|
|
||||||
|
mMessageWidget->setOverflowToTheLeft(true);
|
||||||
|
mMessageWidget->addText(message);
|
||||||
|
|
||||||
|
MyGUI::IntSize textSize = mMessageWidget->_getTextSize();
|
||||||
|
|
||||||
|
MyGUI::IntSize gameWindowSize = mMessageBoxManager.mWindowManager->getGui()->getViewSize();
|
||||||
|
|
||||||
|
int biggestButtonWidth = 0;
|
||||||
|
int buttonWidth = 0;
|
||||||
|
int buttonsWidth = 0;
|
||||||
|
int buttonHeight = 0;
|
||||||
|
MyGUI::IntCoord dummyCoord(0, 0, 0, 0);
|
||||||
|
|
||||||
|
std::vector<std::string>::const_iterator it;
|
||||||
|
for(it = buttons.begin(); it != buttons.end(); ++it)
|
||||||
|
{
|
||||||
|
MyGUI::ButtonPtr button = mButtonsWidget->createWidget<MyGUI::Button>(
|
||||||
|
MyGUI::WidgetStyle::Child,
|
||||||
|
std::string("MW_Button"),
|
||||||
|
dummyCoord,
|
||||||
|
MyGUI::Align::Default);
|
||||||
|
button->setCaption(*it);
|
||||||
|
|
||||||
|
button->eventMouseButtonClick = MyGUI::newDelegate(this, &InteractiveMessageBox::mousePressed);
|
||||||
|
|
||||||
|
mButtons.push_back(button);
|
||||||
|
|
||||||
|
buttonWidth = button->_getTextSize().width + 2*buttonPadding + buttonLeftPadding;
|
||||||
|
buttonsWidth += buttonWidth;
|
||||||
|
buttonHeight = button->_getTextSize().height + 2*buttonPadding + buttonTopPadding;
|
||||||
|
|
||||||
|
if(buttonWidth > biggestButtonWidth)
|
||||||
|
{
|
||||||
|
biggestButtonWidth = buttonWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buttonsWidth += buttonLeftPadding;
|
||||||
|
|
||||||
|
MyGUI::IntSize mainWidgetSize;
|
||||||
|
if(buttonsWidth < fixedWidth)
|
||||||
|
{
|
||||||
|
// on one line
|
||||||
|
std::cout << "on one line" << std::endl;
|
||||||
|
|
||||||
|
if(textSize.width + 2*textPadding < buttonsWidth)
|
||||||
|
{
|
||||||
|
std::cout << "width = buttonsWidth" << std::endl;
|
||||||
|
mainWidgetSize.width = buttonsWidth;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mainWidgetSize.width = textSize.width + 3*textPadding;
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
|
||||||
|
|
||||||
|
MyGUI::IntCoord messageWidgetCoord;
|
||||||
|
messageWidgetCoord.left = (mainWidgetSize.width - textSize.width)/2;
|
||||||
|
messageWidgetCoord.top = textPadding;
|
||||||
|
mMessageWidget->setCoord(messageWidgetCoord);
|
||||||
|
|
||||||
|
mMessageWidget->setSize(textSize);
|
||||||
|
|
||||||
|
MyGUI::IntCoord buttonCord;
|
||||||
|
MyGUI::IntSize buttonSize(0, buttonHeight);
|
||||||
|
int left = (mainWidgetSize.width - buttonsWidth)/2 + buttonPadding;
|
||||||
|
|
||||||
|
std::vector<MyGUI::ButtonPtr>::const_iterator button;
|
||||||
|
for(button = mButtons.begin(); button != mButtons.end(); ++button)
|
||||||
|
{
|
||||||
|
buttonCord.left = left;
|
||||||
|
buttonCord.top = textSize.height + textButtonPadding;
|
||||||
|
|
||||||
|
buttonSize.width = (*button)->_getTextSize().width + 2*buttonPadding;
|
||||||
|
buttonSize.height = (*button)->_getTextSize().height + 2*buttonPadding;
|
||||||
|
|
||||||
|
(*button)->setCoord(buttonCord);
|
||||||
|
(*button)->setSize(buttonSize);
|
||||||
|
|
||||||
|
left += buttonSize.width + buttonLeftPadding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// among each other
|
||||||
|
|
||||||
|
if(biggestButtonWidth > textSize.width) {
|
||||||
|
mainWidgetSize.width = biggestButtonWidth + buttonTopPadding;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mainWidgetSize.width = textSize.width + 3*textPadding;
|
||||||
|
}
|
||||||
|
mainWidgetSize.height = textSize.height + 2*textPadding + textButtonPadding + buttonHeight * buttons.size() + buttonMainPadding;
|
||||||
|
|
||||||
|
std::cout << "biggestButtonWidth " << biggestButtonWidth << " textSize.width " << textSize.width << std::endl;
|
||||||
|
std::cout << "width " << mainWidgetSize.width << " height " << mainWidgetSize.height << std::endl;
|
||||||
|
mMainWidget->setSize(mainWidgetSize);
|
||||||
|
|
||||||
|
MyGUI::IntCoord absCoord;
|
||||||
|
absCoord.left = (gameWindowSize.width - mainWidgetSize.width)/2;
|
||||||
|
absCoord.top = (gameWindowSize.height - mainWidgetSize.height)/2;
|
||||||
|
|
||||||
|
mMainWidget->setCoord(absCoord);
|
||||||
|
mMainWidget->setSize(mainWidgetSize);
|
||||||
|
|
||||||
|
|
||||||
|
MyGUI::IntCoord messageWidgetCoord;
|
||||||
|
messageWidgetCoord.left = (mainWidgetSize.width - textSize.width)/2;
|
||||||
|
messageWidgetCoord.top = textPadding;
|
||||||
|
mMessageWidget->setCoord(messageWidgetCoord);
|
||||||
|
|
||||||
|
mMessageWidget->setSize(textSize);
|
||||||
|
|
||||||
|
MyGUI::IntCoord buttonCord;
|
||||||
|
MyGUI::IntSize buttonSize(0, buttonHeight);
|
||||||
|
|
||||||
|
int top = textButtonPadding + buttonTopPadding + textSize.height;
|
||||||
|
|
||||||
|
std::vector<MyGUI::ButtonPtr>::const_iterator button;
|
||||||
|
for(button = mButtons.begin(); button != mButtons.end(); ++button)
|
||||||
|
{
|
||||||
|
buttonSize.width = (*button)->_getTextSize().width + buttonPadding*2;
|
||||||
|
buttonSize.height = (*button)->_getTextSize().height + buttonPadding*2;
|
||||||
|
|
||||||
|
buttonCord.top = top;
|
||||||
|
buttonCord.left = (mainWidgetSize.width - buttonSize.width)/2 - 5; // FIXME: -5 is not so nice :/
|
||||||
|
|
||||||
|
(*button)->setCoord(buttonCord);
|
||||||
|
(*button)->setSize(buttonSize);
|
||||||
|
|
||||||
|
top += buttonSize.height + 2*buttonTopPadding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void InteractiveMessageBox::mousePressed (MyGUI::Widget* pressed)
|
||||||
|
{
|
||||||
|
mMarkedToDelete = true;
|
||||||
|
int index = 0;
|
||||||
|
std::vector<MyGUI::ButtonPtr>::const_iterator button;
|
||||||
|
for(button = mButtons.begin(); button != mButtons.end(); ++button)
|
||||||
|
{
|
||||||
|
if(*button == pressed)
|
||||||
|
{
|
||||||
|
mButtonPressed = index;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
std::cout << "Cant be possible :/" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
int InteractiveMessageBox::readPressedButton ()
|
||||||
|
{
|
||||||
|
int pressed = mButtonPressed;
|
||||||
|
mButtonPressed = -1;
|
||||||
|
return pressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
|
||||||
|
class InteractiveMessageBox;
|
||||||
class MessageBoxManager;
|
class MessageBoxManager;
|
||||||
class MessageBox;
|
class MessageBox;
|
||||||
|
|
||||||
|
@ -26,16 +27,20 @@ namespace MWGui
|
||||||
MessageBoxManager (WindowManager* windowManager);
|
MessageBoxManager (WindowManager* windowManager);
|
||||||
void onFrame (float frameDuration);
|
void onFrame (float frameDuration);
|
||||||
void createMessageBox (const std::string& message);
|
void createMessageBox (const std::string& message);
|
||||||
void createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons);
|
bool createInteractiveMessageBox (const std::string& message, const std::vector<std::string>& buttons);
|
||||||
|
bool isInteractiveMessageBox ();
|
||||||
|
|
||||||
void removeMessageBox (float time, MessageBox *msgbox);
|
void removeMessageBox (float time, MessageBox *msgbox);
|
||||||
bool removeMessageBox (MessageBox *msgbox);
|
bool removeMessageBox (MessageBox *msgbox);
|
||||||
void setMessageBoxSpeed (int speed);
|
void setMessageBoxSpeed (int speed);
|
||||||
|
|
||||||
|
int readPressedButton ();
|
||||||
|
|
||||||
WindowManager *mWindowManager;
|
WindowManager *mWindowManager;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<MessageBox*> mMessageBoxes;
|
std::vector<MessageBox*> mMessageBoxes;
|
||||||
|
InteractiveMessageBox* mInterMessageBoxe;
|
||||||
std::vector<MessageBoxManagerTimer> mTimers;
|
std::vector<MessageBoxManagerTimer> mTimers;
|
||||||
float mMessageBoxSpeed;
|
float mMessageBoxSpeed;
|
||||||
};
|
};
|
||||||
|
@ -60,6 +65,25 @@ namespace MWGui
|
||||||
int mNextBoxPadding;
|
int mNextBoxPadding;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class InteractiveMessageBox : public OEngine::GUI::Layout
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
InteractiveMessageBox (MessageBoxManager& parMessageBoxManager, const std::string& message, const std::vector<std::string>& buttons);
|
||||||
|
void mousePressed (MyGUI::Widget* _widget);
|
||||||
|
int readPressedButton ();
|
||||||
|
|
||||||
|
bool mMarkedToDelete;
|
||||||
|
|
||||||
|
private:
|
||||||
|
MessageBoxManager& mMessageBoxManager;
|
||||||
|
MyGUI::EditPtr mMessageWidget;
|
||||||
|
MyGUI::WidgetPtr mButtonsWidget;
|
||||||
|
std::vector<MyGUI::ButtonPtr> mButtons;
|
||||||
|
|
||||||
|
int mTextButtonPadding;
|
||||||
|
int mButtonPressed;
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,7 +26,10 @@ namespace MWGui
|
||||||
GM_ClassGenerate,
|
GM_ClassGenerate,
|
||||||
GM_ClassPick,
|
GM_ClassPick,
|
||||||
GM_ClassCreate,
|
GM_ClassCreate,
|
||||||
GM_Review
|
GM_Review,
|
||||||
|
|
||||||
|
// interactive MessageBox
|
||||||
|
GM_InterMessageBox
|
||||||
};
|
};
|
||||||
|
|
||||||
// Windows shown in inventory mode
|
// Windows shown in inventory mode
|
||||||
|
|
|
@ -330,6 +330,14 @@ void WindowManager::updateVisible()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mode == GM_InterMessageBox)
|
||||||
|
{
|
||||||
|
if(!mMessageBoxManager->isInteractiveMessageBox()) {
|
||||||
|
setGuiMode(GM_Game);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Unsupported mode, switch back to game
|
// Unsupported mode, switch back to game
|
||||||
// Note: The call will eventually end up this method again but
|
// Note: The call will eventually end up this method again but
|
||||||
|
@ -449,14 +457,6 @@ void WindowManager::removeDialog(OEngine::GUI::Layout*dialog)
|
||||||
|
|
||||||
void WindowManager::messageBox (const std::string& message, const std::vector<std::string>& buttons)
|
void WindowManager::messageBox (const std::string& message, const std::vector<std::string>& buttons)
|
||||||
{
|
{
|
||||||
/*std::cout << "message box: " << message << std::endl;
|
|
||||||
|
|
||||||
if (!buttons.empty())
|
|
||||||
{
|
|
||||||
std::cout << "buttons: ";
|
|
||||||
std::copy (buttons.begin(), buttons.end(), std::ostream_iterator<std::string> (std::cout, ", "));
|
|
||||||
std::cout << std::endl;
|
|
||||||
}*/
|
|
||||||
if (buttons.empty())
|
if (buttons.empty())
|
||||||
{
|
{
|
||||||
mMessageBoxManager->createMessageBox(message);
|
mMessageBoxManager->createMessageBox(message);
|
||||||
|
@ -464,9 +464,15 @@ void WindowManager::messageBox (const std::string& message, const std::vector<st
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mMessageBoxManager->createInteractiveMessageBox(message, buttons);
|
mMessageBoxManager->createInteractiveMessageBox(message, buttons);
|
||||||
|
setGuiMode(GM_InterMessageBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int WindowManager::readPressedButton ()
|
||||||
|
{
|
||||||
|
return mMessageBoxManager->readPressedButton();
|
||||||
|
}
|
||||||
|
|
||||||
const std::string &WindowManager::getGameSettingString(const std::string &id, const std::string &default_)
|
const std::string &WindowManager::getGameSettingString(const std::string &id, const std::string &default_)
|
||||||
{
|
{
|
||||||
const ESM::GameSetting *setting = environment.mWorld->getStore().gameSettings.search(id);
|
const ESM::GameSetting *setting = environment.mWorld->getStore().gameSettings.search(id);
|
||||||
|
|
|
@ -250,6 +250,9 @@ namespace MWGui
|
||||||
|
|
||||||
void messageBox (const std::string& message, const std::vector<std::string>& buttons);
|
void messageBox (const std::string& message, const std::vector<std::string>& buttons);
|
||||||
|
|
||||||
|
int readPressedButton ();
|
||||||
|
///< returns the index of the pressed button or -1 if no button was pressed (->MessageBoxmanager->InteractiveMessageBox)
|
||||||
|
|
||||||
void onFrame (float frameDuration);
|
void onFrame (float frameDuration);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
1
extern/mygui_3.0.1/CMakeLists.txt
vendored
1
extern/mygui_3.0.1/CMakeLists.txt
vendored
|
@ -69,6 +69,7 @@ configure_file("${SDIR}/openmw_stats_window_layout.xml" "${DDIR}/openmw_stats_wi
|
||||||
configure_file("${SDIR}/openmw_text.skin.xml" "${DDIR}/openmw_text.skin.xml" COPYONLY)
|
configure_file("${SDIR}/openmw_text.skin.xml" "${DDIR}/openmw_text.skin.xml" COPYONLY)
|
||||||
configure_file("${SDIR}/openmw_windows.skin.xml" "${DDIR}/openmw_windows.skin.xml" COPYONLY)
|
configure_file("${SDIR}/openmw_windows.skin.xml" "${DDIR}/openmw_windows.skin.xml" COPYONLY)
|
||||||
configure_file("${SDIR}/openmw_messagebox_layout.xml" "${DDIR}/openmw_messagebox_layout.xml" COPYONLY)
|
configure_file("${SDIR}/openmw_messagebox_layout.xml" "${DDIR}/openmw_messagebox_layout.xml" COPYONLY)
|
||||||
|
configure_file("${SDIR}/openmw_interactive_messagebox_layout.xml" "${DDIR}/openmw_interactive_messagebox_layout.xml" COPYONLY)
|
||||||
configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY)
|
configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY)
|
||||||
configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY)
|
configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY)
|
||||||
configure_file("${SDIR}/VeraMono.ttf" "${DDIR}/VeraMono.ttf" COPYONLY)
|
configure_file("${SDIR}/VeraMono.ttf" "${DDIR}/VeraMono.ttf" COPYONLY)
|
||||||
|
|
19
extern/mygui_3.0.1/openmw_resources/openmw_interactive_messagebox_layout.xml
vendored
Normal file
19
extern/mygui_3.0.1/openmw_resources/openmw_interactive_messagebox_layout.xml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<MyGUI type="Layout">
|
||||||
|
<Widget type="Window" skin="MW_Dialog" layer="Windows" position="0 0 500 400" name="_Main">
|
||||||
|
<Widget type="Edit" skin="MW_TextEditClient" position="10 10 490 20" align="ALIGN_LEFT ALIGN_TOP STRETCH" name="message">
|
||||||
|
<Property key="Edit_Static" value="true"/>
|
||||||
|
<Property key="Edit_WordWrap" value="true"/>
|
||||||
|
<Property key="Text_FontHeight" value="18"/>
|
||||||
|
<Property key="Edit_MultiLine" value="1" />
|
||||||
|
<Property key="Edit_VisibleVScroll" value="1" />
|
||||||
|
<Property key="Widget_AlignText" value="ALIGN_CENTER" />
|
||||||
|
<Property key="FontName" value = "MyGUI_CoreFont.18" />
|
||||||
|
<Property key="TextColour" value = "0.7 0.7 0.7" />
|
||||||
|
</Widget>
|
||||||
|
<Widget type="Widget" skin="" position="0 0 500 400" align="ALIGN_STRETCH" name="buttons">
|
||||||
|
<!-- Widget type="Button" skin="MW_Button" position="0 0 30 18" name="somefunnybutton"/ -->
|
||||||
|
</Widget>
|
||||||
|
</Widget>
|
||||||
|
</MyGUI>
|
|
@ -12,6 +12,8 @@
|
||||||
<Property key="Edit_MultiLine" value="1" />
|
<Property key="Edit_MultiLine" value="1" />
|
||||||
<Property key="Edit_VisibleVScroll" value="1" />
|
<Property key="Edit_VisibleVScroll" value="1" />
|
||||||
<Property key="Widget_AlignText" value="ALIGN_CENTER" />
|
<Property key="Widget_AlignText" value="ALIGN_CENTER" />
|
||||||
|
<Property key="FontName" value = "MyGUI_CoreFont.18" />
|
||||||
|
<Property key="TextColour" value = "0.7 0.7 0.7" />
|
||||||
</Widget>
|
</Widget>
|
||||||
</Widget>
|
</Widget>
|
||||||
</MyGUI>
|
</MyGUI>
|
||||||
|
|
Loading…
Reference in a new issue