forked from 0ad/0ad
133 lines
3.4 KiB
XML
133 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<objects>
|
|
<script><![CDATA[
|
|
function init(data)
|
|
{
|
|
var mbMainObj = getGUIObjectByName("mbMain");
|
|
var mbTitleObj = getGUIObjectByName("mbTitleBar");
|
|
var mbTextObj = getGUIObjectByName("mbText");
|
|
|
|
var mbButton1Obj = getGUIObjectByName("mbButton1");
|
|
var mbButton2Obj = getGUIObjectByName("mbButton2");
|
|
var mbButton3Obj = getGUIObjectByName("mbButton3");
|
|
|
|
// Calculate size
|
|
var mbLRDiff = data.width / 2; // Message box left/right difference from 50% of screen
|
|
var mbUDDiff = data.height / 2; // Message box up/down difference from 50% of screen
|
|
|
|
var mbSizeString = "50%-" + mbLRDiff + " 50%-" + mbUDDiff + " 50%+" + mbLRDiff + " 50%+" + mbUDDiff;
|
|
|
|
mbMainObj.size = mbSizeString;
|
|
|
|
// Texts
|
|
mbTitleObj.caption = data.title;
|
|
mbTextObj.caption = data.message;
|
|
|
|
if (data.font)
|
|
mbTextObj.font = data.font;
|
|
|
|
// Message box modes
|
|
// There is a number of standard modes, and if none of these is used (mbMode == 0), the button captions will be
|
|
// taken from the array mbButtonCaptions; there currently is a maximum of three buttons.
|
|
switch (data.mode)
|
|
{
|
|
case 1:
|
|
// Simple Yes/No question box
|
|
data.buttonCaptions = ["Yes", "No"];
|
|
break;
|
|
case 2:
|
|
// Okay-only box
|
|
data.buttonCaptions = ["OK"];
|
|
break;
|
|
case 3:
|
|
// Retry/Abort/Ignore box (will we ever need this?!)
|
|
data.buttonCaptions = ["Retry", "Ignore", "Abort"];
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// Buttons
|
|
var codes = data.buttonCode;
|
|
if (data.buttonCaptions.length >= 1)
|
|
{
|
|
mbButton1Obj.caption = data.buttonCaptions[0];
|
|
mbButton1Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[0]) codes[0](); }
|
|
mbButton1Obj.hidden = false;
|
|
}
|
|
if (data.buttonCaptions.length >= 2)
|
|
{
|
|
mbButton2Obj.caption = data.buttonCaptions[1];
|
|
mbButton2Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[1]) codes[1](); }
|
|
mbButton2Obj.hidden = false;
|
|
}
|
|
if (data.buttonCaptions.length >= 3)
|
|
{
|
|
mbButton3Obj.caption = data.buttonCaptions[2];
|
|
mbButton3Obj.onPress = function () { Engine.PopGuiPage(); if (codes && codes[2]) codes[2](); }
|
|
mbButton3Obj.hidden = false;
|
|
}
|
|
|
|
switch (data.buttonCaptions.length)
|
|
{
|
|
case 1:
|
|
mbButton1Obj.size = "50%-64 100%-76 50%+64 100%-48";
|
|
break;
|
|
case 2:
|
|
mbButton1Obj.size = "50%-144 100%-76 50%-16 100%-48";
|
|
mbButton2Obj.size = "50%+16 100%-76 50%+144 100%-48";
|
|
break;
|
|
case 3:
|
|
mbButton1Obj.size = "10% 100%-76 30% 100%-48";
|
|
mbButton2Obj.size = "40% 100%-76 60% 100%-48";
|
|
mbButton3Obj.size = "70% 100%-76 90% 100%-48";
|
|
break;
|
|
}
|
|
}
|
|
]]></script>
|
|
|
|
<object hotkey="leave">
|
|
<action on="Press">Engine.PopGuiPage();</action>
|
|
</object>
|
|
|
|
<object>
|
|
<object name="mbMain"
|
|
style="StoneDialog"
|
|
type="image"
|
|
>
|
|
|
|
<object name="mbTitleBar"
|
|
style="TitleText"
|
|
type="text"
|
|
size="50%-128 0%-16 50%+128 16"
|
|
/>
|
|
|
|
<object name="mbText"
|
|
type="text"
|
|
style="CenteredLabelText"
|
|
size="5% 20% 95% 100%-96"
|
|
/>
|
|
|
|
<object name="mbButton1"
|
|
style="StoneButton"
|
|
type="button"
|
|
hidden="true"
|
|
size="40 100%-50 33%-30 100%-20"
|
|
/>
|
|
<object name="mbButton2"
|
|
style="StoneButton"
|
|
type="button"
|
|
hidden="true"
|
|
size="33%+30 100%-50 66%-40 100%-20"
|
|
/>
|
|
<object name="mbButton3"
|
|
style="StoneButton"
|
|
type="button"
|
|
hidden="true"
|
|
size="66%+30 100%-50 100%-40 100%-20"
|
|
/>
|
|
</object>
|
|
</object>
|
|
|
|
</objects>
|