Restore separated server creation dialog.
This also adds details about advertising and configuration.
This commit is contained in:
@@ -26,9 +26,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
{
|
{
|
||||||
static readonly Action DoNothing = () => { };
|
static readonly Action DoNothing = () => { };
|
||||||
|
|
||||||
enum PanelType { Browser, CreateServer }
|
|
||||||
PanelType panel = PanelType.Browser;
|
|
||||||
|
|
||||||
readonly Color incompatibleVersionColor;
|
readonly Color incompatibleVersionColor;
|
||||||
readonly Color incompatibleProtectedGameColor;
|
readonly Color incompatibleProtectedGameColor;
|
||||||
readonly Color protectedGameColor;
|
readonly Color protectedGameColor;
|
||||||
@@ -85,19 +82,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
incompatibleGameStartedColor = ChromeMetrics.Get<Color>("IncompatibleGameStartedColor");
|
incompatibleGameStartedColor = ChromeMetrics.Get<Color>("IncompatibleGameStartedColor");
|
||||||
|
|
||||||
LoadBrowserPanel(widget);
|
LoadBrowserPanel(widget);
|
||||||
LoadCreateServerPanel(widget);
|
|
||||||
|
|
||||||
// Filter and refresh buttons act on the browser panel,
|
// Filter and refresh buttons act on the browser panel,
|
||||||
// but remain visible (disabled) on the other panels
|
// but remain visible (disabled) on the other panels
|
||||||
var refreshButton = widget.Get<ButtonWidget>("REFRESH_BUTTON");
|
var refreshButton = widget.Get<ButtonWidget>("REFRESH_BUTTON");
|
||||||
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching || panel != PanelType.Browser;
|
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||||
|
|
||||||
var filtersButton = widget.Get<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
var filtersButton = widget.Get<DropDownButtonWidget>("FILTERS_DROPDOWNBUTTON");
|
||||||
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching || panel != PanelType.Browser;
|
filtersButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
|
||||||
|
|
||||||
var browserTab = widget.Get<ButtonWidget>("BROWSER_TAB");
|
|
||||||
browserTab.IsHighlighted = () => panel == PanelType.Browser;
|
|
||||||
browserTab.OnClick = () => panel = PanelType.Browser;
|
|
||||||
|
|
||||||
var directConnectButton = widget.Get<ButtonWidget>("DIRECTCONNECT_BUTTON");
|
var directConnectButton = widget.Get<ButtonWidget>("DIRECTCONNECT_BUTTON");
|
||||||
directConnectButton.OnClick = () =>
|
directConnectButton.OnClick = () =>
|
||||||
@@ -111,9 +103,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var createServerTab = widget.Get<ButtonWidget>("CREATE_TAB");
|
var createServerButton = widget.Get<ButtonWidget>("CREATE_BUTTON");
|
||||||
createServerTab.IsHighlighted = () => panel == PanelType.CreateServer;
|
createServerButton.OnClick = () =>
|
||||||
createServerTab.OnClick = () => panel = PanelType.CreateServer;
|
{
|
||||||
|
Ui.OpenWindow("MULTIPLAYER_CREATESERVER_PANEL", new WidgetArgs
|
||||||
|
{
|
||||||
|
{ "openLobby", OpenLobby },
|
||||||
|
{ "onExit", DoNothing }
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
widget.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
widget.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||||
|
|
||||||
@@ -154,7 +152,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
void LoadBrowserPanel(Widget widget)
|
void LoadBrowserPanel(Widget widget)
|
||||||
{
|
{
|
||||||
var browserPanel = Game.LoadWidget(null, "MULTIPLAYER_BROWSER_PANEL", widget.Get("TOP_PANELS_ROOT"), new WidgetArgs());
|
var browserPanel = Game.LoadWidget(null, "MULTIPLAYER_BROWSER_PANEL", widget.Get("TOP_PANELS_ROOT"), new WidgetArgs());
|
||||||
browserPanel.IsVisible = () => panel == PanelType.Browser;
|
|
||||||
|
|
||||||
serverList = browserPanel.Get<ScrollPanelWidget>("SERVER_LIST");
|
serverList = browserPanel.Get<ScrollPanelWidget>("SERVER_LIST");
|
||||||
headerTemplate = serverList.Get<ScrollItemWidget>("HEADER_TEMPLATE");
|
headerTemplate = serverList.Get<ScrollItemWidget>("HEADER_TEMPLATE");
|
||||||
@@ -275,18 +272,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadCreateServerPanel(Widget widget)
|
|
||||||
{
|
|
||||||
var createServerPanel = Game.LoadWidget(null, "MULTIPLAYER_CREATESERVER_PANEL",
|
|
||||||
widget.Get("TOP_PANELS_ROOT"), new WidgetArgs
|
|
||||||
{
|
|
||||||
{ "openLobby", OpenLobby },
|
|
||||||
{ "onExit", DoNothing }
|
|
||||||
});
|
|
||||||
|
|
||||||
createServerPanel.IsVisible = () => panel == PanelType.CreateServer;
|
|
||||||
}
|
|
||||||
|
|
||||||
string PlayersLabel(GameServer game)
|
string PlayersLabel(GameServer game)
|
||||||
{
|
{
|
||||||
return "{0}{1}{2}".F(
|
return "{0}{1}{2}".F(
|
||||||
@@ -553,15 +538,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenCreateServerPanel()
|
|
||||||
{
|
|
||||||
Ui.OpenWindow("CREATESERVER_PANEL", new WidgetArgs
|
|
||||||
{
|
|
||||||
{ "openLobby", OpenLobby },
|
|
||||||
{ "onExit", DoNothing }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void Join(GameServer server)
|
void Join(GameServer server)
|
||||||
{
|
{
|
||||||
if (server == null || !server.IsJoinable)
|
if (server == null || !server.IsJoinable)
|
||||||
|
|||||||
@@ -10,16 +10,20 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using OpenRA.Network;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||||
{
|
{
|
||||||
public class ServerCreationLogic : ChromeLogic
|
public class ServerCreationLogic : ChromeLogic
|
||||||
{
|
{
|
||||||
Widget panel;
|
readonly Widget panel;
|
||||||
Action onCreate;
|
readonly LabelWidget noticesLabelA, noticesLabelB, noticesLabelC;
|
||||||
Action onExit;
|
readonly Action onCreate;
|
||||||
|
readonly Action onExit;
|
||||||
MapPreview preview = MapCache.UnknownMap;
|
MapPreview preview = MapCache.UnknownMap;
|
||||||
bool advertiseOnline;
|
bool advertiseOnline;
|
||||||
|
|
||||||
@@ -33,6 +37,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var settings = Game.Settings;
|
var settings = Game.Settings;
|
||||||
preview = modData.MapCache[modData.MapCache.ChooseInitialMap(Game.Settings.Server.Map, Game.CosmeticRandom)];
|
preview = modData.MapCache[modData.MapCache.ChooseInitialMap(Game.Settings.Server.Map, Game.CosmeticRandom)];
|
||||||
|
|
||||||
|
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
|
||||||
panel.Get<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
|
panel.Get<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
|
||||||
|
|
||||||
var mapButton = panel.GetOrNull<ButtonWidget>("MAP_BUTTON");
|
var mapButton = panel.GetOrNull<ButtonWidget>("MAP_BUTTON");
|
||||||
@@ -53,12 +58,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Preview = () => preview;
|
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Preview = () => preview;
|
||||||
|
|
||||||
var mapTitle = panel.Get<LabelWidget>("MAP_NAME");
|
var titleLabel = panel.GetOrNull<LabelWithTooltipWidget>("MAP_TITLE");
|
||||||
if (mapTitle != null)
|
if (titleLabel != null)
|
||||||
{
|
{
|
||||||
var font = Game.Renderer.Fonts[mapTitle.Font];
|
var font = Game.Renderer.Fonts[titleLabel.Font];
|
||||||
var title = new CachedTransform<MapPreview, string>(m => WidgetUtils.TruncateText(m.Title, mapTitle.Bounds.Width, font));
|
var title = new CachedTransform<MapPreview, string>(m => WidgetUtils.TruncateText(m.Title, titleLabel.Bounds.Width, font));
|
||||||
mapTitle.GetText = () => title.Update(preview);
|
titleLabel.GetText = () => title.Update(preview);
|
||||||
|
titleLabel.GetTooltipText = () => preview.Title;
|
||||||
|
}
|
||||||
|
|
||||||
|
var typeLabel = panel.GetOrNull<LabelWidget>("MAP_TYPE");
|
||||||
|
if (typeLabel != null)
|
||||||
|
{
|
||||||
|
var type = new CachedTransform<MapPreview, string>(m => m.Categories.FirstOrDefault() ?? "");
|
||||||
|
typeLabel.GetText = () => type.Update(preview);
|
||||||
|
}
|
||||||
|
|
||||||
|
var authorLabel = panel.GetOrNull<LabelWidget>("MAP_AUTHOR");
|
||||||
|
if (authorLabel != null)
|
||||||
|
{
|
||||||
|
var font = Game.Renderer.Fonts[authorLabel.Font];
|
||||||
|
var author = new CachedTransform<MapPreview, string>(
|
||||||
|
m => WidgetUtils.TruncateText("Created by {0}".F(m.Author), authorLabel.Bounds.Width, font));
|
||||||
|
authorLabel.GetText = () => author.Update(preview);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,11 +103,80 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
var advertiseCheckbox = panel.Get<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
var advertiseCheckbox = panel.Get<CheckboxWidget>("ADVERTISE_CHECKBOX");
|
||||||
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
advertiseCheckbox.IsChecked = () => advertiseOnline;
|
||||||
advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
|
advertiseCheckbox.OnClick = () =>
|
||||||
|
{
|
||||||
|
advertiseOnline ^= true;
|
||||||
|
BuildNotices();
|
||||||
|
};
|
||||||
|
|
||||||
var passwordField = panel.GetOrNull<PasswordFieldWidget>("PASSWORD");
|
var passwordField = panel.GetOrNull<PasswordFieldWidget>("PASSWORD");
|
||||||
if (passwordField != null)
|
if (passwordField != null)
|
||||||
passwordField.Text = Game.Settings.Server.Password;
|
passwordField.Text = Game.Settings.Server.Password;
|
||||||
|
|
||||||
|
noticesLabelA = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_A");
|
||||||
|
noticesLabelB = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_B");
|
||||||
|
noticesLabelC = panel.GetOrNull<LabelWidget>("NOTICES_HEADER_C");
|
||||||
|
|
||||||
|
var noticesNoUPnP = panel.GetOrNull("NOTICES_NO_UPNP");
|
||||||
|
if (noticesNoUPnP != null)
|
||||||
|
{
|
||||||
|
noticesNoUPnP.IsVisible = () => advertiseOnline &&
|
||||||
|
(UPnP.Status == UPnPStatus.NotSupported || UPnP.Status == UPnPStatus.Disabled);
|
||||||
|
|
||||||
|
var settingsA = noticesNoUPnP.GetOrNull("SETTINGS_A");
|
||||||
|
if (settingsA != null)
|
||||||
|
settingsA.IsVisible = () => UPnP.Status == UPnPStatus.Disabled;
|
||||||
|
|
||||||
|
var settingsB = noticesNoUPnP.GetOrNull("SETTINGS_B");
|
||||||
|
if (settingsB != null)
|
||||||
|
settingsB.IsVisible = () => UPnP.Status == UPnPStatus.Disabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
var noticesUPnP = panel.GetOrNull("NOTICES_UPNP");
|
||||||
|
if (noticesUPnP != null)
|
||||||
|
noticesUPnP.IsVisible = () => advertiseOnline && UPnP.Status == UPnPStatus.Enabled;
|
||||||
|
|
||||||
|
var noticesLAN = panel.GetOrNull("NOTICES_LAN");
|
||||||
|
if (noticesLAN != null)
|
||||||
|
noticesLAN.IsVisible = () => !advertiseOnline;
|
||||||
|
|
||||||
|
BuildNotices();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuildNotices()
|
||||||
|
{
|
||||||
|
if (noticesLabelA == null || noticesLabelB == null || noticesLabelC == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (advertiseOnline)
|
||||||
|
{
|
||||||
|
noticesLabelA.Text = "Internet Server (UPnP ";
|
||||||
|
var aWidth = Game.Renderer.Fonts[noticesLabelA.Font].Measure(noticesLabelA.Text).X;
|
||||||
|
noticesLabelA.Bounds.Width = aWidth;
|
||||||
|
|
||||||
|
var status = UPnP.Status;
|
||||||
|
noticesLabelB.Text = status == UPnPStatus.Enabled ? "Enabled" :
|
||||||
|
status == UPnPStatus.NotSupported ? "Not Supported" : "Disabled";
|
||||||
|
|
||||||
|
noticesLabelB.TextColor = status == UPnPStatus.Enabled ? ChromeMetrics.Get<Color>("UPnPEnabledColor") :
|
||||||
|
status == UPnPStatus.NotSupported ? ChromeMetrics.Get<Color>("UPnPNotSupportedColor") :
|
||||||
|
ChromeMetrics.Get<Color>("UPnPDisabledColor");
|
||||||
|
|
||||||
|
var bWidth = Game.Renderer.Fonts[noticesLabelB.Font].Measure(noticesLabelB.Text).X;
|
||||||
|
noticesLabelB.Bounds.X = noticesLabelA.Bounds.Right;
|
||||||
|
noticesLabelB.Bounds.Width = bWidth;
|
||||||
|
noticesLabelB.Visible = true;
|
||||||
|
|
||||||
|
noticesLabelC.Text = "):";
|
||||||
|
noticesLabelC.Bounds.X = noticesLabelB.Bounds.Right;
|
||||||
|
noticesLabelC.Visible = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
noticesLabelA.Text = "Local Server:";
|
||||||
|
noticesLabelB.Visible = false;
|
||||||
|
noticesLabelC.Visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateAndJoin()
|
void CreateAndJoin()
|
||||||
@@ -131,6 +222,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ui.CloseWindow();
|
||||||
ConnectionLogic.Connect(IPAddress.Loopback.ToString(), Game.Settings.Server.ListenPort, password, onCreate, onExit);
|
ConnectionLogic.Connect(IPAddress.Loopback.ToString(), Game.Settings.Server.ListenPort, password, onCreate, onExit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,98 +1,226 @@
|
|||||||
Container@MULTIPLAYER_CREATESERVER_PANEL:
|
Container@MULTIPLAYER_CREATESERVER_PANEL:
|
||||||
Logic: ServerCreationLogic
|
Logic: ServerCreationLogic
|
||||||
Width: PARENT_RIGHT
|
X: (WINDOW_RIGHT - WIDTH) / 2
|
||||||
Height: PARENT_BOTTOM
|
Y: (WINDOW_BOTTOM - HEIGHT - 15) / 2
|
||||||
|
Width: 530
|
||||||
|
Height: 314
|
||||||
Children:
|
Children:
|
||||||
Label@TITLE:
|
Label@TITLE:
|
||||||
Y: 5
|
Width: PARENT_RIGHT
|
||||||
Width: 582
|
Y: 0-25
|
||||||
Height: 25
|
Font: BigBold
|
||||||
Text: Create Server
|
Contrast: true
|
||||||
Align: Center
|
Align: Center
|
||||||
Font: Bold
|
Text: Create Server
|
||||||
ScrollPanel:
|
Background@bg:
|
||||||
Y: 30
|
Width: PARENT_RIGHT
|
||||||
Width: 582
|
Height: PARENT_BOTTOM - 35
|
||||||
Height: 249
|
Background: panel-black
|
||||||
Children:
|
Children:
|
||||||
Container:
|
Label@SERVER_NAME_LABEL:
|
||||||
X: 185
|
Y: 14
|
||||||
Y: 25
|
Width: 105
|
||||||
Children:
|
Height: 25
|
||||||
Label@SERVER_NAME_LABEL:
|
Align: Right
|
||||||
Y: 14
|
Text: Server Name:
|
||||||
Width: 95
|
TextField@SERVER_NAME:
|
||||||
Height: 25
|
X: 110
|
||||||
Align: Right
|
Y: 15
|
||||||
Text: Server Name:
|
Width: 215
|
||||||
TextField@SERVER_NAME:
|
MaxLength: 50
|
||||||
X: 100
|
Height: 25
|
||||||
Y: 15
|
Text: My OpenRA Server
|
||||||
Width: 215
|
Label@PASSWORD_LABEL:
|
||||||
MaxLength: 50
|
Y: 49
|
||||||
Height: 25
|
Width: 105
|
||||||
Text: My OpenRA Server
|
Height: 25
|
||||||
Label@PASSWORD_LABEL:
|
Align: Right
|
||||||
Y: 49
|
Text: Password:
|
||||||
Width: 95
|
PasswordField@PASSWORD:
|
||||||
Height: 25
|
X: 110
|
||||||
Align: Right
|
Y: 50
|
||||||
Text: Password:
|
Width: 145
|
||||||
PasswordField@PASSWORD:
|
MaxLength: 20
|
||||||
X: 100
|
Height: 25
|
||||||
Y: 50
|
Label@AFTER_PASSWORD_LABEL:
|
||||||
Width: 145
|
X: 265
|
||||||
MaxLength: 20
|
Y: 49
|
||||||
Height: 25
|
Width: 105
|
||||||
Label@AFTER_PASSWORD_LABEL:
|
Height: 25
|
||||||
X: 255
|
Align: Left
|
||||||
Y: 49
|
Text: (optional)
|
||||||
Width: 95
|
Label@LISTEN_PORT_LABEL:
|
||||||
Height: 25
|
Y: 84
|
||||||
Align: Left
|
Width: 105
|
||||||
Text: (optional)
|
Height: 25
|
||||||
Label@LISTEN_PORT_LABEL:
|
Align: Right
|
||||||
Y: 84
|
Text: Port:
|
||||||
Width: 95
|
TextField@LISTEN_PORT:
|
||||||
Height: 25
|
X: 110
|
||||||
Align: Right
|
Y: 85
|
||||||
Text: Port:
|
Width: 50
|
||||||
TextField@LISTEN_PORT:
|
Height: 25
|
||||||
X: 100
|
MaxLength: 5
|
||||||
Y: 85
|
Text: 1234
|
||||||
Width: 50
|
Checkbox@ADVERTISE_CHECKBOX:
|
||||||
Height: 25
|
X: 15
|
||||||
MaxLength: 5
|
Y: 121
|
||||||
Text: 1234
|
Width: 150
|
||||||
Label@EXTERNAL_PORT_LABEL:
|
Height: 20
|
||||||
X: 170
|
Font: Regular
|
||||||
Y: 84
|
Text: Advertise Online
|
||||||
Width: 90
|
Label@EXTERNAL_PORT_LABEL:
|
||||||
Height: 25
|
X: 180
|
||||||
Align: Right
|
Y: 119
|
||||||
Text: External Port:
|
Width: 90
|
||||||
TextField@EXTERNAL_PORT:
|
Height: 25
|
||||||
X: 265
|
Align: Right
|
||||||
Y: 85
|
Text: External Port:
|
||||||
Width: 50
|
TextField@EXTERNAL_PORT:
|
||||||
MaxLength: 5
|
X: 275
|
||||||
Height: 25
|
Y: 120
|
||||||
Text: 1234
|
Width: 50
|
||||||
Checkbox@ADVERTISE_CHECKBOX:
|
MaxLength: 5
|
||||||
X: 100
|
Height: 25
|
||||||
Y: 135
|
Text: 1234
|
||||||
Width: 150
|
Label@NOTICES_HEADER_A:
|
||||||
Height: 20
|
X: 15
|
||||||
Font: Regular
|
Y: 165
|
||||||
Text: Advertise Online
|
Height: 25
|
||||||
Container@SIDEBAR:
|
Align: Left
|
||||||
X: PARENT_RIGHT - WIDTH
|
Font: Bold
|
||||||
Y: 30
|
Label@NOTICES_HEADER_B:
|
||||||
Width: 174
|
X: 15
|
||||||
Height: 280
|
Y: 165
|
||||||
Children:
|
Height: 25
|
||||||
Background@MAP_BG:
|
Align: Left
|
||||||
|
Font: Bold
|
||||||
|
Label@NOTICES_HEADER_C:
|
||||||
|
X: 15
|
||||||
|
Y: 165
|
||||||
|
Height: 25
|
||||||
|
Align: Left
|
||||||
|
Font: Bold
|
||||||
|
Container@NOTICES_LAN:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
Width: PARENT_RIGHT
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Label@ADVERTISING:
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Game will be advertised to the Local Area Network only.
|
||||||
|
Label@FIREWALL:
|
||||||
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Players can connect using Direct IP from the Internet if you
|
||||||
|
Label@PORTFORWARD_B:
|
||||||
|
X: 7
|
||||||
|
Y: 36
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: manually configure port forwarding on your router.
|
||||||
|
Container@NOTICES_NO_UPNP:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Label@ADVERTISING:
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||||
|
Label@FIREWALL:
|
||||||
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your router to allow and forward
|
||||||
|
Label@PORTFORWARD_B:
|
||||||
|
X: 7
|
||||||
|
Y: 36
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: connections from the External Port to your local IP and Port.
|
||||||
|
Label@SETTINGS_A:
|
||||||
|
Y: 48
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You can enable UPnP (if supported by your router) in the
|
||||||
|
Label@SETTINGS_B:
|
||||||
|
X: 7
|
||||||
|
Y: 60
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: Advanced tab of the OpenRA settings menu.
|
||||||
|
Container@NOTICES_UPNP:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Label@ADVERTISING:
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||||
|
Label@FIREWALL:
|
||||||
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - OpenRA will use UPnP to automaticaly configure port forwarding.
|
||||||
|
Label@SETTINGS_A:
|
||||||
|
Y: 36
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You can disable UPnP in the OpenRA settings menu.
|
||||||
|
Background@MAP_BG:
|
||||||
|
X: PARENT_RIGHT - 189
|
||||||
|
Y: 15
|
||||||
|
Width: 174
|
||||||
Height: 174
|
Height: 174
|
||||||
Background: panel-gray
|
Background: panel-gray
|
||||||
Children:
|
Children:
|
||||||
@@ -101,22 +229,47 @@ Container@MULTIPLAYER_CREATESERVER_PANEL:
|
|||||||
Y: 1
|
Y: 1
|
||||||
Width: PARENT_RIGHT - 2
|
Width: PARENT_RIGHT - 2
|
||||||
Height: PARENT_RIGHT - 2
|
Height: PARENT_RIGHT - 2
|
||||||
Label@MAP_NAME:
|
LabelWithTooltip@MAP_TITLE:
|
||||||
Y: 172
|
X: PARENT_RIGHT - 189
|
||||||
Width: PARENT_RIGHT
|
Y: 187
|
||||||
|
Width: 174
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Align: Center
|
Align: Center
|
||||||
Button@MAP_BUTTON:
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
X: PARENT_RIGHT - WIDTH
|
TooltipTemplate: SIMPLE_TOOLTIP
|
||||||
Y: 284 - 30
|
Label@MAP_TYPE:
|
||||||
Width: 174
|
X: PARENT_RIGHT - 189
|
||||||
Height: 25
|
Y: 202
|
||||||
Text: Choose Map
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Font: TinyBold
|
||||||
|
Align: Center
|
||||||
|
IgnoreMouseOver: true
|
||||||
|
Label@MAP_AUTHOR:
|
||||||
|
X: PARENT_RIGHT - 189
|
||||||
|
Y: 215
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Center
|
||||||
|
Button@MAP_BUTTON:
|
||||||
|
X: PARENT_RIGHT - 189
|
||||||
|
Y: PARENT_BOTTOM - 40
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Text: Change Map
|
||||||
|
Button@BACK_BUTTON:
|
||||||
|
Key: return
|
||||||
|
Y: PARENT_BOTTOM - 36
|
||||||
|
Width: 140
|
||||||
|
Height: 35
|
||||||
|
Text: Back
|
||||||
Button@CREATE_BUTTON:
|
Button@CREATE_BUTTON:
|
||||||
Key: return
|
Key: return
|
||||||
X: PARENT_RIGHT - WIDTH
|
X: PARENT_RIGHT - WIDTH
|
||||||
Y: 284
|
Y: PARENT_BOTTOM - 36
|
||||||
Width: 174
|
Width: 140
|
||||||
Height: 25
|
Height: 35
|
||||||
Text: Create
|
Text: Create
|
||||||
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
@@ -30,22 +30,16 @@ Container@MULTIPLAYER_PANEL:
|
|||||||
Height: 25
|
Height: 25
|
||||||
Text: Refresh
|
Text: Refresh
|
||||||
Button@DIRECTCONNECT_BUTTON:
|
Button@DIRECTCONNECT_BUTTON:
|
||||||
X: 277
|
X: 387
|
||||||
Y: 284
|
Y: 284
|
||||||
Width: 100
|
Width: 100
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Direct IP
|
Text: Direct IP
|
||||||
Button@BROWSER_TAB:
|
Button@CREATE_BUTTON:
|
||||||
X: 382
|
|
||||||
Y: 278
|
|
||||||
Width: 105
|
|
||||||
Height: 31
|
|
||||||
Text: Browse
|
|
||||||
Button@CREATE_TAB:
|
|
||||||
X: 492
|
X: 492
|
||||||
Y: 278
|
Y: 284
|
||||||
Width: 105
|
Width: 105
|
||||||
Height: 31
|
Height: 25
|
||||||
Text: Create
|
Text: Create
|
||||||
Container@TOP_PANELS_ROOT:
|
Container@TOP_PANELS_ROOT:
|
||||||
X: 15
|
X: 15
|
||||||
|
|||||||
@@ -1,124 +1,274 @@
|
|||||||
Container@MULTIPLAYER_CREATESERVER_PANEL:
|
Background@MULTIPLAYER_CREATESERVER_PANEL:
|
||||||
Logic: ServerCreationLogic
|
Logic: ServerCreationLogic
|
||||||
Width: PARENT_RIGHT
|
X: (WINDOW_RIGHT - WIDTH)/2
|
||||||
Height: PARENT_BOTTOM
|
Y: (WINDOW_BOTTOM - HEIGHT)/2
|
||||||
|
Width: 530
|
||||||
|
Height: 345
|
||||||
Children:
|
Children:
|
||||||
Label@TITLE:
|
Label@TITLE:
|
||||||
Y: 5
|
Y: 15
|
||||||
Width: 582
|
Width: PARENT_RIGHT
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Create Server
|
Text: Create Server
|
||||||
Align: Center
|
Align: Center
|
||||||
Font: Bold
|
Font: Bold
|
||||||
ScrollPanel:
|
Label@SERVER_NAME_LABEL:
|
||||||
Y: 30
|
Y: 44
|
||||||
Width: 583
|
Width: 105
|
||||||
Height: PARENT_BOTTOM - 30
|
Height: 25
|
||||||
|
Align: Right
|
||||||
|
Text: Server Name:
|
||||||
|
TextField@SERVER_NAME:
|
||||||
|
X: 110
|
||||||
|
Y: 45
|
||||||
|
Width: 215
|
||||||
|
MaxLength: 50
|
||||||
|
Height: 25
|
||||||
|
Text: My OpenRA Server
|
||||||
|
Label@PASSWORD_LABEL:
|
||||||
|
Y: 79
|
||||||
|
Width: 105
|
||||||
|
Height: 25
|
||||||
|
Align: Right
|
||||||
|
Text: Password:
|
||||||
|
PasswordField@PASSWORD:
|
||||||
|
X: 110
|
||||||
|
Y: 80
|
||||||
|
Width: 145
|
||||||
|
MaxLength: 20
|
||||||
|
Height: 25
|
||||||
|
Label@AFTER_PASSWORD_LABEL:
|
||||||
|
X: 265
|
||||||
|
Y: 79
|
||||||
|
Width: 95
|
||||||
|
Height: 25
|
||||||
|
Align: Left
|
||||||
|
Text: (optional)
|
||||||
|
Label@LISTEN_PORT_LABEL:
|
||||||
|
Y: 114
|
||||||
|
Width: 105
|
||||||
|
Height: 25
|
||||||
|
Align: Right
|
||||||
|
Text: Port:
|
||||||
|
TextField@LISTEN_PORT:
|
||||||
|
X: 110
|
||||||
|
Y: 115
|
||||||
|
Width: 50
|
||||||
|
Height: 25
|
||||||
|
MaxLength: 5
|
||||||
|
Text: 1234
|
||||||
|
Checkbox@ADVERTISE_CHECKBOX:
|
||||||
|
X: 20
|
||||||
|
Y: 151
|
||||||
|
Width: 150
|
||||||
|
Height: 20
|
||||||
|
Font: Regular
|
||||||
|
Text: Advertise Online
|
||||||
|
Label@EXTERNAL_PORT_LABEL:
|
||||||
|
X: 180
|
||||||
|
Y: 149
|
||||||
|
Width: 90
|
||||||
|
Height: 25
|
||||||
|
Align: Right
|
||||||
|
Text: External Port:
|
||||||
|
TextField@EXTERNAL_PORT:
|
||||||
|
X: 275
|
||||||
|
Y: 150
|
||||||
|
Width: 50
|
||||||
|
MaxLength: 5
|
||||||
|
Height: 25
|
||||||
|
Text: 1234
|
||||||
|
Label@NOTICES_HEADER_A:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
|
Height: 25
|
||||||
|
Align: Left
|
||||||
|
Font: Bold
|
||||||
|
Label@NOTICES_HEADER_B:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
|
Height: 25
|
||||||
|
Align: Left
|
||||||
|
Font: Bold
|
||||||
|
Label@NOTICES_HEADER_C:
|
||||||
|
X: 20
|
||||||
|
Y: 185
|
||||||
|
Height: 25
|
||||||
|
Align: Left
|
||||||
|
Font: Bold
|
||||||
|
Container@NOTICES_LAN:
|
||||||
|
X: 25
|
||||||
|
Y: 205
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
Children:
|
Children:
|
||||||
Container:
|
Label@ADVERTISING:
|
||||||
X: 185
|
Width: 305
|
||||||
Y: 30
|
|
||||||
Children:
|
|
||||||
Label@SERVER_NAME_LABEL:
|
|
||||||
Y: 14
|
|
||||||
Width: 95
|
|
||||||
Height: 25
|
|
||||||
Align: Right
|
|
||||||
Text: Server Name:
|
|
||||||
TextField@SERVER_NAME:
|
|
||||||
X: 100
|
|
||||||
Y: 15
|
|
||||||
Width: 215
|
|
||||||
MaxLength: 50
|
|
||||||
Height: 25
|
|
||||||
Text: My OpenRA Server
|
|
||||||
Label@PASSWORD_LABEL:
|
|
||||||
Y: 49
|
|
||||||
Width: 95
|
|
||||||
Height: 25
|
|
||||||
Align: Right
|
|
||||||
Text: Password:
|
|
||||||
PasswordField@PASSWORD:
|
|
||||||
X: 100
|
|
||||||
Y: 50
|
|
||||||
Width: 145
|
|
||||||
MaxLength: 20
|
|
||||||
Height: 25
|
|
||||||
Label@AFTER_PASSWORD_LABEL:
|
|
||||||
X: 255
|
|
||||||
Y: 49
|
|
||||||
Width: 95
|
|
||||||
Height: 25
|
|
||||||
Align: Left
|
|
||||||
Text: (optional)
|
|
||||||
Label@LISTEN_PORT_LABEL:
|
|
||||||
Y: 84
|
|
||||||
Width: 95
|
|
||||||
Height: 25
|
|
||||||
Align: Right
|
|
||||||
Text: Port:
|
|
||||||
TextField@LISTEN_PORT:
|
|
||||||
X: 100
|
|
||||||
Y: 85
|
|
||||||
Width: 50
|
|
||||||
Height: 25
|
|
||||||
MaxLength: 5
|
|
||||||
Text: 1234
|
|
||||||
Label@EXTERNAL_PORT_LABEL:
|
|
||||||
X: 170
|
|
||||||
Y: 84
|
|
||||||
Width: 90
|
|
||||||
Height: 25
|
|
||||||
Align: Right
|
|
||||||
Text: External Port:
|
|
||||||
TextField@EXTERNAL_PORT:
|
|
||||||
X: 265
|
|
||||||
Y: 85
|
|
||||||
Width: 50
|
|
||||||
MaxLength: 5
|
|
||||||
Height: 25
|
|
||||||
Text: 1234
|
|
||||||
Checkbox@ADVERTISE_CHECKBOX:
|
|
||||||
X: 100
|
|
||||||
Y: 135
|
|
||||||
Width: 150
|
|
||||||
Height: 20
|
|
||||||
Font: Regular
|
|
||||||
Text: Advertise Online
|
|
||||||
Container@SIDEBAR:
|
|
||||||
X: PARENT_RIGHT - WIDTH
|
|
||||||
Y: 30
|
|
||||||
Width: 174
|
|
||||||
Height: 280
|
|
||||||
Children:
|
|
||||||
Background@MAP_BG:
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: 174
|
|
||||||
Background: dialog3
|
|
||||||
Children:
|
|
||||||
MapPreview@MAP_PREVIEW:
|
|
||||||
X: 1
|
|
||||||
Y: 1
|
|
||||||
Width: PARENT_RIGHT - 2
|
|
||||||
Height: PARENT_RIGHT - 2
|
|
||||||
Label@MAP_NAME:
|
|
||||||
Y: 172
|
|
||||||
Width: PARENT_RIGHT
|
|
||||||
Height: 25
|
Height: 25
|
||||||
Font: Bold
|
Font: Tiny
|
||||||
Align: Center
|
Align: Left
|
||||||
Button@MAP_BUTTON:
|
Text: - Game will be advertised to the Local Area Network only.
|
||||||
X: PARENT_RIGHT - WIDTH
|
Label@FIREWALL:
|
||||||
Y: 240
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Players can connect using Direct IP from the Internet if you
|
||||||
|
Label@PORTFORWARD_B:
|
||||||
|
X: 7
|
||||||
|
Y: 36
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: manually configure port forwarding on your router.
|
||||||
|
Container@NOTICES_NO_UPNP:
|
||||||
|
X: 25
|
||||||
|
Y: 205
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Label@ADVERTISING:
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||||
|
Label@FIREWALL:
|
||||||
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your router to allow and forward
|
||||||
|
Label@PORTFORWARD_B:
|
||||||
|
X: 7
|
||||||
|
Y: 36
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: connections from the External Port to your local IP and Port.
|
||||||
|
Label@SETTINGS_A:
|
||||||
|
Y: 48
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You can enable UPnP (if supported by your router) in the
|
||||||
|
Label@SETTINGS_B:
|
||||||
|
X: 7
|
||||||
|
Y: 60
|
||||||
|
Width: 295
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: Advanced tab of the OpenRA settings menu.
|
||||||
|
Container@NOTICES_UPNP:
|
||||||
|
X: 25
|
||||||
|
Y: 205
|
||||||
|
Width: PARENT_RIGHT
|
||||||
|
Height: PARENT_BOTTOM
|
||||||
|
Children:
|
||||||
|
Label@ADVERTISING:
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - Game will be advertised to the Local Area Network and Internet.
|
||||||
|
Label@FIREWALL:
|
||||||
|
Y: 12
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You must manually configure your firewall to allow connections.
|
||||||
|
Label@PORTFORWARD_A:
|
||||||
|
Y: 24
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - OpenRA will use UPnP to automaticaly configure port forwarding.
|
||||||
|
Label@SETTINGS_A:
|
||||||
|
Y: 36
|
||||||
|
Width: 305
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Left
|
||||||
|
Text: - You can disable UPnP in the OpenRA settings menu.
|
||||||
|
Background@MAP_BG:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: 45
|
||||||
|
Width: 174
|
||||||
|
Height: 174
|
||||||
|
Background: dialog3
|
||||||
|
Children:
|
||||||
|
MapPreview@MAP_PREVIEW:
|
||||||
|
X: 1
|
||||||
|
Y: 1
|
||||||
|
Width: PARENT_RIGHT - 2
|
||||||
|
Height: PARENT_RIGHT - 2
|
||||||
|
LabelWithTooltip@MAP_TITLE:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: 217
|
||||||
Width: 174
|
Width: 174
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Choose Map
|
|
||||||
Font: Bold
|
Font: Bold
|
||||||
|
Align: Center
|
||||||
|
TooltipContainer: TOOLTIP_CONTAINER
|
||||||
|
TooltipTemplate: SIMPLE_TOOLTIP
|
||||||
|
Label@MAP_TYPE:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: 232
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Font: TinyBold
|
||||||
|
Align: Center
|
||||||
|
IgnoreMouseOver: true
|
||||||
|
Label@MAP_AUTHOR:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: 245
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Font: Tiny
|
||||||
|
Align: Center
|
||||||
|
Button@MAP_BUTTON:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: 268
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Text: Change Map
|
||||||
|
Font: Bold
|
||||||
|
Button@BACK_BUTTON:
|
||||||
|
X: PARENT_RIGHT - 194
|
||||||
|
Y: PARENT_BOTTOM - 45
|
||||||
|
Width: 174
|
||||||
|
Height: 25
|
||||||
|
Text: Back
|
||||||
|
Font: Bold
|
||||||
|
Key: escape
|
||||||
Button@CREATE_BUTTON:
|
Button@CREATE_BUTTON:
|
||||||
Key: return
|
Key: return
|
||||||
X: PARENT_RIGHT - WIDTH
|
X: 20
|
||||||
Y: PARENT_BOTTOM - 25
|
Y: PARENT_BOTTOM - 45
|
||||||
Width: 174
|
Width: 174
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Create
|
Text: Create
|
||||||
Font: Bold
|
Font: Bold
|
||||||
|
TooltipContainer@TOOLTIP_CONTAINER:
|
||||||
@@ -27,24 +27,17 @@ Background@MULTIPLAYER_PANEL:
|
|||||||
Text: Refresh
|
Text: Refresh
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Button@DIRECTCONNECT_BUTTON:
|
Button@DIRECTCONNECT_BUTTON:
|
||||||
X: 288
|
X: 398
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
Width: 100
|
Width: 100
|
||||||
Height: 25
|
Height: 25
|
||||||
Text: Direct IP
|
Text: Direct IP
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Button@BROWSER_TAB:
|
Button@CREATE_BUTTON:
|
||||||
X: 393
|
X: 503
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
Y: PARENT_BOTTOM - HEIGHT - 20
|
||||||
Width: 105
|
Width: 100
|
||||||
Height: 31
|
Height: 25
|
||||||
Text: Browse
|
|
||||||
Font: Bold
|
|
||||||
Button@CREATE_TAB:
|
|
||||||
X: 498
|
|
||||||
Y: PARENT_BOTTOM - HEIGHT - 20
|
|
||||||
Width: 105
|
|
||||||
Height: 31
|
|
||||||
Text: Create
|
Text: Create
|
||||||
Font: Bold
|
Font: Bold
|
||||||
Container@TOP_PANELS_ROOT:
|
Container@TOP_PANELS_ROOT:
|
||||||
|
|||||||
@@ -38,3 +38,6 @@ Metrics:
|
|||||||
TextfieldColorInvalid: FFC0C0
|
TextfieldColorInvalid: FFC0C0
|
||||||
TextfieldFont: Regular
|
TextfieldFont: Regular
|
||||||
WaitingGameColor: 00FF00
|
WaitingGameColor: 00FF00
|
||||||
|
UPnPDisabledColor: FFFFFF
|
||||||
|
UPnPEnabledColor: 00FF00
|
||||||
|
UPnPNotSupportedColor: FF0000
|
||||||
Reference in New Issue
Block a user