47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
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; }
|
|
|
|
/// <summary>
|
|
/// The main entry point for the application.
|
|
/// </summary>
|
|
[STAThread]
|
|
static void Main()
|
|
{
|
|
// Load settings
|
|
AppTempFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "OwnChar", "Desktop");
|
|
Directory.CreateDirectory(AppTempFolder);
|
|
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(AppTempFolder, "Plugins");
|
|
Directory.CreateDirectory(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);
|
|
}
|
|
} |