diff --git a/Intersect.Client.Core/Interface/Game/EscapeMenu.cs b/Intersect.Client.Core/Interface/Game/EscapeMenu.cs index 940e004d85..ea9ebedeb9 100644 --- a/Intersect.Client.Core/Interface/Game/EscapeMenu.cs +++ b/Intersect.Client.Core/Interface/Game/EscapeMenu.cs @@ -1,5 +1,6 @@ using Intersect.Client.Core; using Intersect.Client.Framework.File_Management; +using Intersect.Client.Framework.Gwen; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; @@ -15,15 +16,19 @@ public partial class EscapeMenu : ImagePanel private readonly Button _buttonCharacterSelect; private readonly Panel _versionPanel; + private readonly Framework.Graphics.GameFont _font; + public EscapeMenu(Canvas gameCanvas, Func settingsWindowProvider) : base(gameCanvas, nameof(EscapeMenu)) { _settingsWindowProvider = settingsWindowProvider; - Interface.InputBlockingComponents?.Add(this); + Interface.InputBlockingComponents.Add(this); Width = gameCanvas.Width; Height = gameCanvas.Height; + _font = GameContentManager.Current.GetFont("sourcesansproblack", 12)!; + // Create the container var container = new ImagePanel(this, nameof(EscapeMenu)); @@ -31,40 +36,38 @@ public EscapeMenu(Canvas gameCanvas, Func settingsWindowProvider _ = new Label(container, "TitleLabel") { Text = Strings.EscapeMenu.Title, + AutoSizeToContents = false, + Dock = Pos.Fill | Pos.CenterV, + MouseInputEnabled = false, + Padding = new Padding(8, 2, 0, 0), + TextAlign = Pos.Left | Pos.Top, + TextColor = Skin.Colors.Window.TitleInactive, + Font = _font, + FontSize = 18, }; - var buttonSettings = new Button(container, "SettingsButton") - { - Text = Strings.EscapeMenu.Settings, - }; + var buttonSettings = new Button(container, "SettingsButton"); + InitializeButton(buttonSettings, Strings.EscapeMenu.Settings); buttonSettings.Clicked += (s, e) => OpenSettingsWindow(true); // Character Select Button - _buttonCharacterSelect = new Button(container, "CharacterSelectButton") - { - Text = Strings.EscapeMenu.CharacterSelect, - }; + _buttonCharacterSelect = new Button(container, "CharacterSelectButton"); + InitializeButton(_buttonCharacterSelect, Strings.EscapeMenu.CharacterSelect); _buttonCharacterSelect.Clicked += _buttonCharacterSelect_Clicked; // Logout Button - var buttonLogout = new Button(container, "LogoutButton") - { - Text = Strings.EscapeMenu.Logout, - }; + var buttonLogout = new Button(container, "LogoutButton"); + InitializeButton(buttonLogout, Strings.EscapeMenu.Logout); buttonLogout.Clicked += buttonLogout_Clicked; // Exit to Desktop Button - var buttonQuit = new Button(container, "ExitToDesktopButton") - { - Text = Strings.EscapeMenu.ExitToDesktop, - }; + var buttonQuit = new Button(container, "ExitToDesktopButton"); + InitializeButton(buttonQuit, Strings.EscapeMenu.ExitToDesktop); buttonQuit.Clicked += buttonQuit_Clicked; // Close Button - var buttonContinue = new Button(container, "CloseButton") - { - Text = Strings.EscapeMenu.Close, - }; + var buttonContinue = new Button(container, "CloseButton"); + InitializeButton(buttonContinue, Strings.EscapeMenu.Close); buttonContinue.Clicked += (s, e) => Hide(); container.LoadJsonUi(GameContentManager.UI.InGame, Graphics.Renderer?.GetResolutionString()); @@ -77,6 +80,18 @@ public EscapeMenu(Canvas gameCanvas, Func settingsWindowProvider _versionPanel = new VersionPanel(this, name: nameof(_versionPanel)); } + private void InitializeButton(Button button, string text) + { + _ = new Label(button) + { + Text = text, + Font = _font, + Padding = new Padding(0, 20, 0, 0), + Alignment = [ Alignments.Center, Alignments.CenterV ], + }; + button.IsTabable = true; + } + public override void Invalidate() { if (IsHidden) diff --git a/Intersect.Client.Framework/Gwen/Control/Base.cs b/Intersect.Client.Framework/Gwen/Control/Base.cs index d8b9db6587..9e3d66ed60 100644 --- a/Intersect.Client.Framework/Gwen/Control/Base.cs +++ b/Intersect.Client.Framework/Gwen/Control/Base.cs @@ -1286,7 +1286,7 @@ public void LoadJsonUi(GameContentManager.UI stage, string? resolution = default return; } - if (string.IsNullOrWhiteSpace(resolution) || string.IsNullOrEmpty(resolution)) + if (string.IsNullOrWhiteSpace(resolution)) { ApplicationContext.Context.Value?.Logger.LogWarning( $"Attempted to load layout for {Name} with no resolution"