using OwnChar.App.Desktop.UI.Windows; using OwnChar.Plugins; using Pilz.Configuration; using System; using System.IO; using System.Linq; using System.Windows.Forms; using Telerik.WinControls; using Telerik.WinControls.Themes; namespace OwnChar.App.Desktop; internal static class Program { public static ISettingsManager? SettingsManager { get; private set; } public static string? AppTempFolder { get; private set; } /// /// The main entry point for the application. /// [STAThread] static void Main() { // Load settings AppTempFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "OwnChar", "Desktop"); SettingsManager = new SettingsManager(Path.Combine(AppTempFolder, "Settings.json"), true); AppApi.Instance.Settings = SettingsManager.Instance; // Prepair user interface Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); ThemeResolutionService.ApplicationThemeName = new Office2019LightTheme().ThemeName; // Load plugins OwnCharPlugins.Instance.LoadOwnPlugins(); var pluginPath = Path.Combine(Path.GetDirectoryName(Pilz.IO.Extensions.GetExecutablePath())!, "Plugins"); if (Directory.Exists(pluginPath)) { var plugins = Directory.GetDirectories(pluginPath, "*", SearchOption.TopDirectoryOnly).Select(n => Path.Combine(n, n + ".dll")).ToArray(); OwnCharPlugins.Instance.LoadPlugins(plugins); } // Start main window var mainWindow = new MainWindow(); AppApi.Instance.MainWindow = mainWindow; Application.Run(mainWindow); } }