using OfficeOpenXml; using Pilz; using Pilz.Configuration; using Pilz.Plugins.Advanced; using Pilz.UI.WinForms.Telerik.Dialogs; using Pilz.UI.WinForms.Telerik.Symbols; using Pilz.UI.WinForms.Telerik.Theming; using Telerik.WinControls.Themes; [assembly: AssemblyAppVersion("1.0.0.0")] namespace ModpackUpdater.Apps.Manager; public static class Program { public static IRadSymbolFactory Symbols { get; } = new AppSymbolFactory(); private static readonly SettingsManager settingsManager; public static ISettings Settings => settingsManager.Instance; static Program() { ExcelPackage.License.SetNonCommercialPersonal("Pilzinsel64"); settingsManager = new(GetSettingsPath(), true); } /// /// The main entry point for the application. /// [STAThread] internal static void Main() { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); ThemeHelper.ApplyApplicationTheme(new ThemeDefinition(ApplicationTheme.Auto, HighContrastMode.Auto), n => n.Theme switch { ApplicationTheme.Light => new Windows11CompactTheme(), ApplicationTheme.Gray or ApplicationTheme.Dark => new Windows11CompactDarkTheme(), _ => throw new NotImplementedException(), }); RadFlyoutBase.ConfirmSvg = Symbols.GetSvgImage(AppSymbols.checkmark, Pilz.UI.Symbols.SymbolSize.Small); RadFlyoutBase.CancelSvg = Symbols.GetSvgImage(AppSymbols.cancel, Pilz.UI.Symbols.SymbolSize.Small); PluginFeatureController.Instance.RegisterAllOwn(); Application.Run(new Ui.MainForm()); } private static string GetSettingsPath() { const string AppDataDirectoryName = "MinecraftModpackUpdateManager"; var SettingsFileName = $"Settings.json"; var settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), AppDataDirectoryName); Directory.CreateDirectory(settingsPath); settingsPath = Path.Combine(settingsPath, SettingsFileName); return settingsPath; } }