Skip to content

Commit

Permalink
chore: refactor error window (#2343)
Browse files Browse the repository at this point in the history
  • Loading branch information
WeylonSantana authored Jul 25, 2024
1 parent 37f53d6 commit a622714
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 100 deletions.
8 changes: 4 additions & 4 deletions Intersect.Client/Interface/Game/InputBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,12 +96,12 @@ public InputBox(
string prompt,
bool modal,
InputType inputType,
EventHandler onSuccess,
EventHandler onCancel,
object userData,
EventHandler? onSuccess,
EventHandler? onCancel = default,
object? userData = default,
int quantity = 0,
int maxQuantity = Int32.MaxValue,
Base parent = null,
Base? parent = null,
GameContentManager.UI stage = GameContentManager.UI.InGame
) : base(parent)
{
Expand Down
2 changes: 1 addition & 1 deletion Intersect.Client/Interface/Interface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
using Intersect.Client.General;
using Intersect.Client.Interface.Game;
using Intersect.Client.Interface.Menu;
using Intersect.Client.Interface.Shared.Errors;
using Intersect.Client.Interface.Shared;
using Intersect.Configuration;

using Base = Intersect.Client.Framework.Gwen.Renderer.Base;
Expand Down
69 changes: 69 additions & 0 deletions Intersect.Client/Interface/Shared/ErrorWindow.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
using Intersect.Client.Framework.File_Management;
using Intersect.Client.Framework.Gwen.Control;
using Intersect.Client.Interface.Game;
using Intersect.Client.Localization;

namespace Intersect.Client.Interface.Shared;

public partial class ErrorWindow
{
private readonly List<InputBox> _errorWindows = [];

public ErrorWindow(Canvas gameCanvas, Canvas menuCanvas, string error, string header)
{
CreateErrorWindow(gameCanvas, error, header, GameContentManager.UI.InGame);
CreateErrorWindow(menuCanvas, error, header, GameContentManager.UI.Menu);
}

private void CreateErrorWindow(Canvas canvas, string error, string header, GameContentManager.UI stage)
{
var window = new InputBox(
title: header,
prompt: error,
modal: false,
inputType: InputBox.InputType.OkayOnly,
onSuccess: (sender, e) =>
{
foreach (var window in _errorWindows)
{
window.Dispose();
}
},
maxQuantity: 0,
parent: canvas,
stage: stage
);

_errorWindows.Add(window);
}
}

public partial class ErrorHandler
{
private readonly List<ErrorWindow> _windows = [];
private readonly Canvas _gameCanvas;
private readonly Canvas _menuCanvas;

public ErrorHandler(Canvas menuCanvas, Canvas gameCanvas)
{
_gameCanvas = gameCanvas;
_menuCanvas = menuCanvas;
}

public void Update()
{
while (Interface.TryDequeueErrorMessage(out var message))
{
_windows.Add(
new ErrorWindow(
_gameCanvas,
_menuCanvas,
message.Value,
string.IsNullOrWhiteSpace(message.Key) ? Strings.Errors.Title.ToString() : message.Key
)
);
}

_windows.Clear();
}
}
45 changes: 0 additions & 45 deletions Intersect.Client/Interface/Shared/Errors/ErrorHandler.cs

This file was deleted.

50 changes: 0 additions & 50 deletions Intersect.Client/Interface/Shared/Errors/ErrorWindow.cs

This file was deleted.

0 comments on commit a622714

Please sign in to comment.