From fb1865c3f79bcef30808f2bcd46e19a5dafd95ae Mon Sep 17 00:00:00 2001 From: pizzaboxer Date: Tue, 24 Oct 2023 14:58:26 +0100 Subject: [PATCH] Restructure how XAML controls and UI stuff work --- Bloxstrap/App.xaml.cs | 6 +++--- Bloxstrap/Bootstrapper.cs | 14 +++++++------- Bloxstrap/Extensions/BootstrapperStyleEx.cs | 2 +- Bloxstrap/InstallChecker.cs | 14 +++++++------- Bloxstrap/ProtocolHandler.cs | 2 +- .../UI/Elements/Bootstrapper/Base/BaseFunctions.cs | 2 +- .../UI/Elements/ContextMenu/MenuContainer.xaml.cs | 2 +- .../Elements}/Controls/MarkdownTextBlock.cs | 2 +- .../Elements/Menu/Pages/FastFlagEditorPage.xaml.cs | 8 ++++---- .../UI/Elements/Menu/Pages/FastFlagsPage.xaml | 2 +- Bloxstrap/UI/Elements/Menu/Pages/ModsPage.xaml | 2 +- .../UI/Elements/Menu/Pages/PreInstallPage.xaml | 2 +- Bloxstrap/UI/{Controls.cs => Methods.cs} | 2 +- .../UI/ViewModels/Menu/MainWindowViewModel.cs | 10 +++++----- Bloxstrap/Utility/Shortcut.cs | 2 +- 15 files changed, 36 insertions(+), 36 deletions(-) rename Bloxstrap/{ => UI/Elements}/Controls/MarkdownTextBlock.cs (98%) rename Bloxstrap/UI/{Controls.cs => Methods.cs} (98%) diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index b83228a..307de09 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -212,12 +212,12 @@ namespace Bloxstrap else { if (Process.GetProcessesByName(ProjectName).Length > 1 && !IsQuiet) - Controls.ShowMessageBox( + Methods.ShowMessageBox( Bloxstrap.Resources.Strings.Menu_AlreadyRunning, MessageBoxImage.Information ); - Controls.ShowMenu(); + Methods.ShowMenu(); } } else if (LaunchArgs.Length > 0) @@ -231,7 +231,7 @@ namespace Bloxstrap else if (LaunchArgs[0].StartsWith("roblox:")) { if (Settings.Prop.UseDisableAppPatch) - Controls.ShowMessageBox( + Methods.ShowMessageBox( Bloxstrap.Resources.Strings.Bootstrapper_DeeplinkTempEnabled, MessageBoxImage.Information ); diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index 062a748..c201229 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -157,7 +157,7 @@ namespace Bloxstrap else if (ex.GetType() == typeof(AggregateException)) ex = ex.InnerException!; - Controls.ShowConnectivityDialog("Roblox", message, ex); + Methods.ShowConnectivityDialog("Roblox", message, ex); App.Terminate(ErrorCode.ERROR_CANCELLED); } @@ -262,7 +262,7 @@ namespace Bloxstrap { MessageBoxResult action = App.Settings.Prop.ChannelChangeMode switch { - ChannelChangeMode.Prompt => Controls.ShowMessageBox( + ChannelChangeMode.Prompt => Methods.ShowMessageBox( string.Format(Resources.Strings.Bootstrapper_ChannelOutOfDate, App.Settings.Prop.Channel, RobloxDeployment.DefaultChannel), MessageBoxImage.Warning, MessageBoxButton.YesNo @@ -301,7 +301,7 @@ namespace Bloxstrap if (!File.Exists(Path.Combine(Paths.System, "mfplat.dll"))) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( Resources.Strings.Bootstrapper_WMFNotFound, MessageBoxImage.Error ); @@ -674,7 +674,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, "An exception occurred when running the auto-updater"); App.Logger.WriteException(LOG_IDENT, ex); - Controls.ShowMessageBox( + Methods.ShowMessageBox( string.Format(Resources.Strings.Bootstrapper_AutoUpdateFailed, releaseInfo.TagName), MessageBoxImage.Information ); @@ -690,7 +690,7 @@ namespace Bloxstrap { App.Logger.WriteLine(LOG_IDENT, $"Prompting to shut down all open Roblox instances"); - MessageBoxResult result = Controls.ShowMessageBox( + MessageBoxResult result = Methods.ShowMessageBox( Resources.Strings.Bootstrapper_Uninstall_RobloxRunning, MessageBoxImage.Information, MessageBoxButton.OKCancel @@ -864,7 +864,7 @@ namespace Bloxstrap if (Filesystem.GetFreeDiskSpace(Paths.Base) < totalSizeRequired) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( Resources.Strings.Bootstrapper_NotEnoughSpace, MessageBoxImage.Error ); @@ -1059,7 +1059,7 @@ namespace Bloxstrap if (File.Exists(injectorLocation)) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( Resources.Strings.Bootstrapper_HyperionUpdateInfo, MessageBoxImage.Warning ); diff --git a/Bloxstrap/Extensions/BootstrapperStyleEx.cs b/Bloxstrap/Extensions/BootstrapperStyleEx.cs index 607c6b2..577a9cc 100644 --- a/Bloxstrap/Extensions/BootstrapperStyleEx.cs +++ b/Bloxstrap/Extensions/BootstrapperStyleEx.cs @@ -2,6 +2,6 @@ { static class BootstrapperStyleEx { - public static IBootstrapperDialog GetNew(this BootstrapperStyle bootstrapperStyle) => Controls.GetBootstrapperDialog(bootstrapperStyle); + public static IBootstrapperDialog GetNew(this BootstrapperStyle bootstrapperStyle) => Methods.GetBootstrapperDialog(bootstrapperStyle); } } diff --git a/Bloxstrap/InstallChecker.cs b/Bloxstrap/InstallChecker.cs index f1f5f0d..dd531e2 100644 --- a/Bloxstrap/InstallChecker.cs +++ b/Bloxstrap/InstallChecker.cs @@ -32,7 +32,7 @@ namespace Bloxstrap _installLocation = Path.GetDirectoryName(Paths.Process)!; - var result = Controls.ShowMessageBox( + var result = Methods.ShowMessageBox( string.Format(Resources.Strings.InstallChecker_NotInstalledProperly, _installLocation), MessageBoxImage.Warning, MessageBoxButton.YesNo @@ -74,7 +74,7 @@ namespace Bloxstrap { App.Logger.WriteLine(LOG_IDENT, $"Drive has changed from {driveName} to {newDriveName}"); - Controls.ShowMessageBox( + Methods.ShowMessageBox( string.Format(Resources.Strings.InstallChecker_DriveLetterChangeDetected, driveName, newDriveName), MessageBoxImage.Warning, MessageBoxButton.OK @@ -87,7 +87,7 @@ namespace Bloxstrap { App.Logger.WriteLine(LOG_IDENT, $"Drive {driveName} does not exist anymore, and has likely been removed"); - var result = Controls.ShowMessageBox( + var result = Methods.ShowMessageBox( string.Format(Resources.Strings.InstallChecker_InstallDriveMissing, driveName), MessageBoxImage.Warning, MessageBoxButton.OKCancel @@ -130,7 +130,7 @@ namespace Bloxstrap App.IsSetupComplete = false; App.FastFlags.Load(); - Controls.ShowMenu(); + Methods.ShowMenu(); // exit if we don't click the install button on installation if (App.IsSetupComplete) @@ -165,7 +165,7 @@ namespace Bloxstrap } else { - result = Controls.ShowMessageBox( + result = Methods.ShowMessageBox( Resources.Strings.InstallChecker_VersionDifferentThanInstalled, MessageBoxImage.Question, MessageBoxButton.YesNo @@ -240,13 +240,13 @@ namespace Bloxstrap } else if (!App.IsQuiet) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( string.Format(Resources.Strings.InstallChecker_Updated, currentVersionInfo.ProductVersion), MessageBoxImage.Information, MessageBoxButton.OK ); - Controls.ShowMenu(); + Methods.ShowMenu(); App.Terminate(); } diff --git a/Bloxstrap/ProtocolHandler.cs b/Bloxstrap/ProtocolHandler.cs index 50131cb..2e731d9 100644 --- a/Bloxstrap/ProtocolHandler.cs +++ b/Bloxstrap/ProtocolHandler.cs @@ -90,7 +90,7 @@ namespace Bloxstrap if (channel == App.State.Prop.LastEnrolledChannel) return; - MessageBoxResult result = Controls.ShowMessageBox( + MessageBoxResult result = Methods.ShowMessageBox( string.Format(Resources.Strings.ProtocolHandler_RobloxSwitchedChannel, channel, App.Settings.Prop.Channel), MessageBoxImage.Question, MessageBoxButton.YesNo diff --git a/Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs b/Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs index 8e493a3..b43760a 100644 --- a/Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs +++ b/Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs @@ -6,7 +6,7 @@ namespace Bloxstrap.UI.Elements.Bootstrapper.Base { public static void ShowSuccess(string message, Action? callback) { - Controls.ShowMessageBox(message, MessageBoxImage.Information); + Methods.ShowMessageBox(message, MessageBoxImage.Information); if (callback is not null) callback(); diff --git a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs index 70adc61..b07a0fe 100644 --- a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs +++ b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs @@ -126,7 +126,7 @@ namespace Bloxstrap.UI.Elements.ContextMenu private void CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e) { - MessageBoxResult result = Controls.ShowMessageBox( + MessageBoxResult result = Methods.ShowMessageBox( Bloxstrap.Resources.Strings.ContextMenu_CloseRobloxMessage, MessageBoxImage.Warning, MessageBoxButton.YesNo diff --git a/Bloxstrap/Controls/MarkdownTextBlock.cs b/Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs similarity index 98% rename from Bloxstrap/Controls/MarkdownTextBlock.cs rename to Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs index 3d5acf7..cf852ce 100644 --- a/Bloxstrap/Controls/MarkdownTextBlock.cs +++ b/Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs @@ -7,7 +7,7 @@ using Markdig.Syntax; using Markdig.Syntax.Inlines; using Markdig; -namespace Bloxstrap.ControlsWpf +namespace Bloxstrap.UI.Elements.Controls { /// /// TextBlock with markdown support.
diff --git a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs index 01d37b6..0e56679 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs +++ b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagEditorPage.xaml.cs @@ -122,7 +122,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages if (App.FastFlags.GetValue(newName) is not null) { - Controls.ShowMessageBox("A FastFlag with this name already exists.", MessageBoxImage.Information); + Methods.ShowMessageBox("A FastFlag with this name already exists.", MessageBoxImage.Information); e.Cancel = true; textbox.Text = oldName; return; @@ -181,7 +181,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages } else { - Controls.ShowMessageBox("An entry for this FastFlag already exists.", MessageBoxImage.Information); + Methods.ShowMessageBox("An entry for this FastFlag already exists.", MessageBoxImage.Information); bool refresh = false; @@ -256,7 +256,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages } catch (Exception ex) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( "The JSON you've entered does not appear to be valid. Please double check it and try again.\n" + "\n" + "More information:\n" + @@ -271,7 +271,7 @@ namespace Bloxstrap.UI.Elements.Menu.Pages if (conflictingFlags.Any()) { - var result = Controls.ShowMessageBox( + var result = Methods.ShowMessageBox( "Some of the flags you are attempting to import already have set values. Would you like to overwrite their current values with the ones defined in the import?\n" + "\n" + "Conflicting flags:\n" + diff --git a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml index c2477b4..846c6eb 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/FastFlagsPage.xaml @@ -6,7 +6,7 @@ xmlns:models="clr-namespace:Bloxstrap.UI.ViewModels" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" xmlns:resources="clr-namespace:Bloxstrap.Resources" - xmlns:controls="clr-namespace:Bloxstrap.ControlsWpf" + xmlns:controls="clr-namespace:Bloxstrap.UI.Elements.Controls" mc:Ignorable="d" d:DesignHeight="1000" d:DesignWidth="800" Title="FastFlagsPage" diff --git a/Bloxstrap/UI/Elements/Menu/Pages/ModsPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/ModsPage.xaml index 56a881f..fae7814 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/ModsPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/ModsPage.xaml @@ -6,7 +6,7 @@ xmlns:models="clr-namespace:Bloxstrap.UI.ViewModels" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" xmlns:resources="clr-namespace:Bloxstrap.Resources" - xmlns:controls="clr-namespace:Bloxstrap.ControlsWpf" + xmlns:controls="clr-namespace:Bloxstrap.UI.Elements.Controls" mc:Ignorable="d" d:DesignHeight="800" d:DesignWidth="800" Title="ModsPage" diff --git a/Bloxstrap/UI/Elements/Menu/Pages/PreInstallPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/PreInstallPage.xaml index e747986..130cc4f 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/PreInstallPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/PreInstallPage.xaml @@ -7,7 +7,7 @@ xmlns:local="clr-namespace:Bloxstrap.UI.Elements.Menu.Pages" xmlns:models="clr-namespace:Bloxstrap.UI.ViewModels" xmlns:resources="clr-namespace:Bloxstrap.Resources" - xmlns:controls="clr-namespace:Bloxstrap.ControlsWpf" + xmlns:controls="clr-namespace:Bloxstrap.UI.Elements.Controls" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Title="PreInstallPage" diff --git a/Bloxstrap/UI/Controls.cs b/Bloxstrap/UI/Methods.cs similarity index 98% rename from Bloxstrap/UI/Controls.cs rename to Bloxstrap/UI/Methods.cs index 74786b1..58b124f 100644 --- a/Bloxstrap/UI/Controls.cs +++ b/Bloxstrap/UI/Methods.cs @@ -6,7 +6,7 @@ using Bloxstrap.UI.Elements.Menu; namespace Bloxstrap.UI { - static class Controls + static class Methods { public static void ShowMenu() => new MainWindow().ShowDialog(); diff --git a/Bloxstrap/UI/ViewModels/Menu/MainWindowViewModel.cs b/Bloxstrap/UI/ViewModels/Menu/MainWindowViewModel.cs index 7ba47f7..c2fd64b 100644 --- a/Bloxstrap/UI/ViewModels/Menu/MainWindowViewModel.cs +++ b/Bloxstrap/UI/ViewModels/Menu/MainWindowViewModel.cs @@ -42,7 +42,7 @@ namespace Bloxstrap.UI.ViewModels.Menu if (string.IsNullOrEmpty(App.BaseDirectory)) { - Controls.ShowMessageBox(Resources.Strings.Menu_InstallLocation_NotSet, MessageBoxImage.Error); + Methods.ShowMessageBox(Resources.Strings.Menu_InstallLocation_NotSet, MessageBoxImage.Error); return; } @@ -59,7 +59,7 @@ namespace Bloxstrap.UI.ViewModels.Menu } catch (UnauthorizedAccessException) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( Resources.Strings.Menu_InstallLocation_NoWritePerms, MessageBoxImage.Error ); @@ -67,7 +67,7 @@ namespace Bloxstrap.UI.ViewModels.Menu } catch (Exception ex) { - Controls.ShowMessageBox(ex.Message, MessageBoxImage.Error); + Methods.ShowMessageBox(ex.Message, MessageBoxImage.Error); return; } @@ -75,7 +75,7 @@ namespace Bloxstrap.UI.ViewModels.Menu { string suggestedChange = Path.Combine(App.BaseDirectory, App.ProjectName); - MessageBoxResult result = Controls.ShowMessageBox( + MessageBoxResult result = Methods.ShowMessageBox( string.Format(Resources.Strings.Menu_InstallLocation_NotEmpty, suggestedChange), MessageBoxImage.Warning, MessageBoxButton.YesNoCancel, @@ -95,7 +95,7 @@ namespace Bloxstrap.UI.ViewModels.Menu Directory.GetParent(App.BaseDirectory)!.ToString().ToLowerInvariant() == Paths.UserProfile.ToLowerInvariant() // prevent from installing to an essential user profile folder ) { - Controls.ShowMessageBox( + Methods.ShowMessageBox( Resources.Strings.Menu_InstallLocation_CantInstall, MessageBoxImage.Error, MessageBoxButton.OK diff --git a/Bloxstrap/Utility/Shortcut.cs b/Bloxstrap/Utility/Shortcut.cs index efc8bc4..319a89a 100644 --- a/Bloxstrap/Utility/Shortcut.cs +++ b/Bloxstrap/Utility/Shortcut.cs @@ -30,7 +30,7 @@ namespace Bloxstrap.Utility _loadStatus = AssemblyLoadStatus.Failed; - Controls.ShowMessageBox( + Methods.ShowMessageBox( $"{App.ProjectName} was unable to create shortcuts for the Desktop and Start menu. They will be created the next time Roblox is launched.", MessageBoxImage.Information );