Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 36 additions & 21 deletions Intersect.Client.Core/Interface/Game/EscapeMenu.cs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -15,56 +16,58 @@ public partial class EscapeMenu : ImagePanel
private readonly Button _buttonCharacterSelect;
private readonly Panel _versionPanel;

private readonly Framework.Graphics.GameFont _font;

public EscapeMenu(Canvas gameCanvas, Func<SettingsWindow> 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));

// Title Label
_ = 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());
Expand All @@ -77,6 +80,18 @@ public EscapeMenu(Canvas gameCanvas, Func<SettingsWindow> 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)
Expand Down
2 changes: 1 addition & 1 deletion Intersect.Client.Framework/Gwen/Control/Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Loading