diff --git a/OwnChar.App.Desktop/Api/IMainWindowApi.cs b/OwnChar.App.Desktop/Api/IMainWindowApi.cs index 5859654..91997fc 100644 --- a/OwnChar.App.Desktop/Api/IMainWindowApi.cs +++ b/OwnChar.App.Desktop/Api/IMainWindowApi.cs @@ -1,15 +1,14 @@ using OwnChar.Manager; using System.Windows.Forms; -namespace OwnChar.App.Desktop.Api +namespace OwnChar.App.Desktop.Api; + +public interface IMainWindowApi { - public interface IMainWindowApi - { - Form Window { get; } - OwnCharManager? Manager { get; } - void OpenTab(Control content, string title); - void CloseTab(Control content); - bool IsTabOpen(Control content); - bool IsTabOpen(); - } + Form Window { get; } + OwnCharManager? Manager { get; } + void OpenTab(Control content, string title); + void CloseTab(Control content); + bool IsTabOpen(Control content); + bool IsTabOpen(); } diff --git a/OwnChar.App.Desktop/Api/IMainWindowTab.cs b/OwnChar.App.Desktop/Api/IMainWindowTab.cs index 2cd2a5a..523ada3 100644 --- a/OwnChar.App.Desktop/Api/IMainWindowTab.cs +++ b/OwnChar.App.Desktop/Api/IMainWindowTab.cs @@ -1,8 +1,7 @@ -namespace OwnChar.App.Desktop.Api +namespace OwnChar.App.Desktop.Api; + +public interface IMainWindowTab { - public interface IMainWindowTab - { - string Name { get; } - IMainWindowApi MaindWindow { get; internal set; } - } + string Name { get; } + IMainWindowApi MaindWindow { get; internal set; } } diff --git a/OwnChar.App.Desktop/Api/IOwnCharApi.cs b/OwnChar.App.Desktop/Api/IOwnCharApi.cs index 7f1ffb4..bde12f3 100644 --- a/OwnChar.App.Desktop/Api/IOwnCharApi.cs +++ b/OwnChar.App.Desktop/Api/IOwnCharApi.cs @@ -1,15 +1,9 @@ using Pilz.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace OwnChar.App.Desktop.Api +namespace OwnChar.App.Desktop.Api; + +public interface IOwnCharApi { - public interface IOwnCharApi - { - public abstract IMainWindowApi? MainWindow { get; } - public abstract ISettings? Settings { get; } - } + public abstract IMainWindowApi? MainWindow { get; } + public abstract ISettings? Settings { get; } } diff --git a/OwnChar.App.Desktop/Api/Parameters/AppInitParams.cs b/OwnChar.App.Desktop/Api/Parameters/AppInitParams.cs index 4d022c6..f99f687 100644 --- a/OwnChar.App.Desktop/Api/Parameters/AppInitParams.cs +++ b/OwnChar.App.Desktop/Api/Parameters/AppInitParams.cs @@ -1,14 +1,8 @@ using OwnChar.Plugins; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace OwnChar.App.Desktop.Api.Parameters +namespace OwnChar.App.Desktop.Api.Parameters; + +public class AppInitParams(IOwnCharApi api) : OwnCharPluginInitParams { - public class AppInitParams(IOwnCharApi api) : OwnCharPluginInitParams - { - public IOwnCharApi Api { get; set; } = api; - } + public IOwnCharApi Api { get; set; } = api; } diff --git a/OwnChar.App.Desktop/Api/Parameters/MainWindowParams.cs b/OwnChar.App.Desktop/Api/Parameters/MainWindowParams.cs index 665e5b2..562b395 100644 --- a/OwnChar.App.Desktop/Api/Parameters/MainWindowParams.cs +++ b/OwnChar.App.Desktop/Api/Parameters/MainWindowParams.cs @@ -1,14 +1,8 @@ using Pilz.Plugins.Advanced; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace OwnChar.App.Desktop.Api.Parameters +namespace OwnChar.App.Desktop.Api.Parameters; + +public class MainWindowParams(IMainWindowApi api) : PluginFunctionParameter { - public class MainWindowParams(IMainWindowApi api) : PluginFunctionParameter - { - public IMainWindowApi Api { get; } = api; - } + public IMainWindowApi Api { get; } = api; } diff --git a/OwnChar.App.Desktop/AppPlugin.cs b/OwnChar.App.Desktop/AppPlugin.cs index 791d9bd..42fcab7 100644 --- a/OwnChar.App.Desktop/AppPlugin.cs +++ b/OwnChar.App.Desktop/AppPlugin.cs @@ -1,26 +1,23 @@ -using OwnChar.App.Desktop.Api; -using OwnChar.Plugins; -using Pilz.Configuration; +using OwnChar.Plugins; using Pilz.Plugins.Advanced; -namespace OwnChar.App.Desktop +namespace OwnChar.App.Desktop; + +public class AppPlugin : IOwnCharPlugin { - public class AppPlugin : IOwnCharPlugin + public static AppPlugin? Instance { get; private set; } + + public string ID => "OwnChar.App.Desktop"; + public string Name => "OwnChar Desktop App"; + + public AppPlugin() { - public static AppPlugin? Instance { get; private set; } + Instance = this; + PluginFeatureController.Instance.RegisterAllOwn(); + } - public string ID => "OwnChar.App.Desktop"; - public string Name => "OwnChar Desktop App"; - - public AppPlugin() - { - Instance = this; - PluginFeatureController.Instance.RegisterAllOwn(); - } - - public object? GetApi() - { - return AppApi.Instance; - } + public object? GetApi() + { + return AppApi.Instance; } } diff --git a/OwnChar.App.Desktop/FeatureCodes.cs b/OwnChar.App.Desktop/FeatureCodes.cs index 3193422..13bc5d8 100644 --- a/OwnChar.App.Desktop/FeatureCodes.cs +++ b/OwnChar.App.Desktop/FeatureCodes.cs @@ -1,9 +1,8 @@ -namespace OwnChar.App.Desktop +namespace OwnChar.App.Desktop; + +public static class FeatureCodes { - public static class FeatureCodes - { - public const string MainTab = "ownchar.app.desktop.main.tab"; - public const string QuickAction = "ownchar.app.desktop.main.quickaction"; - public const string LoginProvider = "ownchar.app.desktop.main.login.provider"; - } + public const string MainTab = "ownchar.app.desktop.main.tab"; + public const string QuickAction = "ownchar.app.desktop.main.quickaction"; + public const string LoginProvider = "ownchar.app.desktop.main.login.provider"; } diff --git a/OwnChar.App.Desktop/Features/MainWindow/QuickAction/HomeFeature.cs b/OwnChar.App.Desktop/Features/MainWindow/QuickAction/HomeFeature.cs index 56f33de..9a8d2aa 100644 --- a/OwnChar.App.Desktop/Features/MainWindow/QuickAction/HomeFeature.cs +++ b/OwnChar.App.Desktop/Features/MainWindow/QuickAction/HomeFeature.cs @@ -2,17 +2,16 @@ using OwnChar.App.Desktop.UI.MainTabs; using Pilz.Plugins.Advanced; -namespace OwnChar.App.Desktop.Features.MainWindow.QuickAction -{ - internal class HomeFeature() : PluginFunction(FeatureCodes.QuickAction, "ownchar.home", "Home"), IPluginFeatureProvider - { - public static HomeFeature Instance { get; } = new(); +namespace OwnChar.App.Desktop.Features.MainWindow.QuickAction; - protected override object? ExecuteFunction(PluginFunctionParameter? @params) - { - if (@params is MainWindowParams p) - p.Api.OpenTab(new TabUserView(p.Api, p.Api.Manager?.CurrentUser), p.Api.Manager!.CurrentUser!.Username!); - return null; - } +internal class HomeFeature() : PluginFunction(FeatureCodes.QuickAction, "ownchar.home", "Home"), IPluginFeatureProvider +{ + public static HomeFeature Instance { get; } = new(); + + protected override object? ExecuteFunction(PluginFunctionParameter? @params) + { + if (@params is MainWindowParams p) + p.Api.OpenTab(new TabUserView(p.Api, p.Api.Manager?.CurrentUser), p.Api.Manager!.CurrentUser!.Username!); + return null; } } diff --git a/OwnChar.App.Desktop/Features/MainWindow/QuickAction/SettingsFeature.cs b/OwnChar.App.Desktop/Features/MainWindow/QuickAction/SettingsFeature.cs index 0fe85e0..1e064ff 100644 --- a/OwnChar.App.Desktop/Features/MainWindow/QuickAction/SettingsFeature.cs +++ b/OwnChar.App.Desktop/Features/MainWindow/QuickAction/SettingsFeature.cs @@ -3,17 +3,16 @@ using OwnChar.App.Desktop.LangRes; using OwnChar.App.Desktop.UI.MainTabs; using Pilz.Plugins.Advanced; -namespace OwnChar.App.Desktop.Features.MainWindow.QuickAction -{ - internal class SettingsFeature() : PluginFunction(FeatureCodes.QuickAction, "ownchar.settings", "Settings"), IPluginFeatureProvider - { - public static SettingsFeature Instance { get; } = new(); +namespace OwnChar.App.Desktop.Features.MainWindow.QuickAction; - protected override object? ExecuteFunction(PluginFunctionParameter? @params) - { - if (@params is MainWindowParams p) - p.Api.OpenTab(new TabSettingsView(), SettingsPageLangRes.Title); - return null; - } +internal class SettingsFeature() : PluginFunction(FeatureCodes.QuickAction, "ownchar.settings", "Settings"), IPluginFeatureProvider +{ + public static SettingsFeature Instance { get; } = new(); + + protected override object? ExecuteFunction(PluginFunctionParameter? @params) + { + if (@params is MainWindowParams p) + p.Api.OpenTab(new TabSettingsView(), SettingsPageLangRes.Title); + return null; } } diff --git a/OwnChar.App.Desktop/OwnChar.App.Desktop.csproj b/OwnChar.App.Desktop/OwnChar.App.Desktop.csproj index a51a813..eacbcee 100644 --- a/OwnChar.App.Desktop/OwnChar.App.Desktop.csproj +++ b/OwnChar.App.Desktop/OwnChar.App.Desktop.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/OwnChar.App.Desktop/Program.cs b/OwnChar.App.Desktop/Program.cs index e1d4ac7..7597d5f 100644 --- a/OwnChar.App.Desktop/Program.cs +++ b/OwnChar.App.Desktop/Program.cs @@ -1,5 +1,4 @@ -using OwnChar.App.Desktop.Api; -using OwnChar.App.Desktop.UI.Windows; +using OwnChar.App.Desktop.UI.Windows; using OwnChar.Plugins; using Pilz.Configuration; using System; @@ -9,42 +8,41 @@ using System.Windows.Forms; using Telerik.WinControls; using Telerik.WinControls.Themes; -namespace OwnChar.App.Desktop +namespace OwnChar.App.Desktop; + +internal static class Program { - 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() { - public static ISettingsManager? SettingsManager { get; private set; } - public static string? AppTempFolder { get; private set; } + // 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; - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() + // 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)) { - // 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.Api; - Application.Run(mainWindow); + 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); } } \ No newline at end of file diff --git a/OwnChar.App.Desktop/UI/MainTabs/Controls/CharacterListControl.cs b/OwnChar.App.Desktop/UI/MainTabs/Controls/CharacterListControl.cs index 1f25795..24bda6e 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/Controls/CharacterListControl.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/Controls/CharacterListControl.cs @@ -1,96 +1,87 @@ using OwnChar.App.Desktop.Api; using OwnChar.App.Desktop.LangRes; -using OwnChar.App.Desktop.UI.Windows; using OwnChar.Model; -using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; using Telerik.WinControls.UI; -namespace OwnChar.App.Desktop.UI.MainTabs.Controls +namespace OwnChar.App.Desktop.UI.MainTabs.Controls; + +public partial class CharacterListControl : UserControl { - public partial class CharacterListControl : UserControl + + private IMainWindowApi? mainApi; + private UserProfile? profile; + private Group? group; + + public CharacterListControl() { + InitializeComponent(); + } - private IMainWindowApi? mainApi; - private UserProfile? profile; - private Group? group; + public void LoadContent(IMainWindowApi mainApi, UserProfile? profile) + { + LoadContent(mainApi, profile, null); + } - public CharacterListControl() + public void LoadContent(IMainWindowApi mainApi, Group? group) + { + LoadContent(mainApi, null, group); + } + + private void LoadContent(IMainWindowApi mainApi, UserProfile? profile, Group? group) + { + this.mainApi = mainApi; + this.profile = profile; + this.group = group; + PrepareList(); + LoadList(); + } + + // Laden aller -eigenen- Charaktere + // Spalte zum Anzeigen der Gruppen-Zugehörigkeit + // Hinzufügen und Löschen von Charakteren + private void PrepareList() + { + radListView_CharList.BeginUpdate(); + radListView_CharList.Columns.Clear(); + + radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharName); + + if (profile != null) + radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharGroup); + else if (group != null) + radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharOwner); + + radListView_CharList.EndUpdate(); + } + + private void LoadList() + { + radListView_CharList.BeginUpdate(); + radListView_CharList.Items.Clear(); + + if (profile != null && mainApi?.Manager?.Characters.GetCharacters(profile) is IEnumerable characters) { - InitializeComponent(); - } - - public void LoadContent(IMainWindowApi mainApi, UserProfile? profile) - { - LoadContent(mainApi, profile, null); - } - - public void LoadContent(IMainWindowApi mainApi, Group? group) - { - LoadContent(mainApi, null, group); - } - - private void LoadContent(IMainWindowApi mainApi, UserProfile? profile, Group? group) - { - this.mainApi = mainApi; - this.profile = profile; - this.group = group; - PrepareList(); - LoadList(); - } - - // Laden aller -eigenen- Charaktere - // Spalte zum Anzeigen der Gruppen-Zugehörigkeit - // Hinzufügen und Löschen von Charakteren - private void PrepareList() - { - radListView_CharList.BeginUpdate(); - radListView_CharList.Columns.Clear(); - - radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharName); - - if (profile != null) - radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharGroup); - else if (group != null) - radListView_CharList.Columns.Add(CharListControlLangRes.Column_CharOwner); - - radListView_CharList.EndUpdate(); - } - - private void LoadList() - { - radListView_CharList.BeginUpdate(); - radListView_CharList.Items.Clear(); - - if (profile != null && mainApi?.Manager?.Characters.GetCharacters(profile) is IEnumerable characters) + foreach (Character character in characters) { - foreach (Character character in characters) - { - AddCharToList(character); - } + AddCharToList(character); } - - radListView_CharList.EndUpdate(); } - private void AddCharToList(Character character) - { - var newItem = new ListViewDataItem(); - UpdateCharListViewItem(newItem, character); - newItem.Value = character; - } + radListView_CharList.EndUpdate(); + } - private void UpdateCharListViewItem(ListViewDataItem listItem, Character character) - { - listItem[0] = character.Name; + private void AddCharToList(Character character) + { + var newItem = new ListViewDataItem(); + UpdateCharListViewItem(newItem, character); + newItem.Value = character; + } + + private void UpdateCharListViewItem(ListViewDataItem listItem, Character character) + { + listItem[0] = character.Name; - } } } diff --git a/OwnChar.App.Desktop/UI/MainTabs/Controls/GroupListControl.cs b/OwnChar.App.Desktop/UI/MainTabs/Controls/GroupListControl.cs index c2fa919..b4b4ae2 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/Controls/GroupListControl.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/Controls/GroupListControl.cs @@ -1,26 +1,15 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using Telerik.WinControls.UI; -using Telerik.WinControls.UI.Diagrams.Primitives; +using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs.Controls +namespace OwnChar.App.Desktop.UI.MainTabs.Controls; + +public partial class GroupListControl : UserControl { - public partial class GroupListControl : UserControl + public GroupListControl() { - public GroupListControl() - { - InitializeComponent(); - } - - // Auflistung der Gruppen - // Hinzufügen - // Löschen + Umbenennen (Wenn Admin/Mod) + InitializeComponent(); } + + // Auflistung der Gruppen + // Hinzufügen + // Löschen + Umbenennen (Wenn Admin/Mod) } diff --git a/OwnChar.App.Desktop/UI/MainTabs/Controls/MemberListControl.cs b/OwnChar.App.Desktop/UI/MainTabs/Controls/MemberListControl.cs index 8375d28..7e5659e 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/Controls/MemberListControl.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/Controls/MemberListControl.cs @@ -1,23 +1,14 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; +using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs.Controls +namespace OwnChar.App.Desktop.UI.MainTabs.Controls; + +public partial class MemberListControl : UserControl { - public partial class MemberListControl : UserControl + public MemberListControl() { - public MemberListControl() - { - InitializeComponent(); - } - - // Auflisten von Nutzern - // -> z.B. Freunden oder Mitgliedern einer Gruppe + InitializeComponent(); } + + // Auflisten von Nutzern + // -> z.B. Freunden oder Mitgliedern einer Gruppe } diff --git a/OwnChar.App.Desktop/UI/MainTabs/TabCharView.cs b/OwnChar.App.Desktop/UI/MainTabs/TabCharView.cs index 0492fb2..2b0811e 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/TabCharView.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/TabCharView.cs @@ -1,26 +1,24 @@ using OwnChar.App.Desktop.Api; -using OwnChar.App.Desktop.UI.MainTabs.Controls; using OwnChar.Model; -using Pilz.UI.Telerik.Dialogs; +using Pilz.UI; using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs +namespace OwnChar.App.Desktop.UI.MainTabs; + +public partial class TabCharView : UserControl, ILoadContent { - public partial class TabCharView : UserControl, ILoadContent + private readonly IMainWindowApi mainApi; + private readonly Character character; + + public TabCharView(IMainWindowApi mainApi, Character character) { - private readonly IMainWindowApi mainApi; - private readonly Character character; + this.mainApi = mainApi; + this.character = character; + InitializeComponent(); + } - public TabCharView(IMainWindowApi mainApi, Character character) - { - this.mainApi = mainApi; - this.character = character; - InitializeComponent(); - } + public void LoadContent() + { - public void LoadContent() - { - - } } } diff --git a/OwnChar.App.Desktop/UI/MainTabs/TabGroupView.cs b/OwnChar.App.Desktop/UI/MainTabs/TabGroupView.cs index 3833e03..c426cc3 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/TabGroupView.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/TabGroupView.cs @@ -1,25 +1,24 @@ using OwnChar.App.Desktop.Api; using OwnChar.Model; -using Pilz.UI.Telerik.Dialogs; +using Pilz.UI; using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs +namespace OwnChar.App.Desktop.UI.MainTabs; + +public partial class TabGroupView : UserControl, ILoadContent { - public partial class TabGroupView : UserControl, ILoadContent + private readonly IMainWindowApi mainApi; + private readonly Group group; + + public TabGroupView(IMainWindowApi mainApi, Group group) { - private readonly IMainWindowApi mainApi; - private readonly Group group; + this.mainApi = mainApi; + this.group = group; + InitializeComponent(); + } - public TabGroupView(IMainWindowApi mainApi, Group group) - { - this.mainApi = mainApi; - this.group = group; - InitializeComponent(); - } - - public void LoadContent() - { - // ... - } + public void LoadContent() + { + // ... } } diff --git a/OwnChar.App.Desktop/UI/MainTabs/TabLoginView.cs b/OwnChar.App.Desktop/UI/MainTabs/TabLoginView.cs index 81fdda9..408839f 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/TabLoginView.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/TabLoginView.cs @@ -3,7 +3,7 @@ using OwnChar.App.Desktop.LangRes; using OwnChar.Data; using Pilz.Cryptography; using Pilz.Plugins.Advanced; -using Pilz.UI.Telerik.Dialogs; +using Pilz.UI; using System; using System.Drawing; using System.Windows.Forms; diff --git a/OwnChar.App.Desktop/UI/MainTabs/TabSettingsView.cs b/OwnChar.App.Desktop/UI/MainTabs/TabSettingsView.cs index 342385f..01bd6b1 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/TabSettingsView.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/TabSettingsView.cs @@ -1,18 +1,17 @@ -using Pilz.UI.Telerik.Dialogs; +using Pilz.UI; using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs -{ - public partial class TabSettingsView : UserControl, ILoadContent - { - public TabSettingsView() - { - InitializeComponent(); - } +namespace OwnChar.App.Desktop.UI.MainTabs; - public void LoadContent() - { - // ... - } +public partial class TabSettingsView : UserControl, ILoadContent +{ + public TabSettingsView() + { + InitializeComponent(); + } + + public void LoadContent() + { + // ... } } diff --git a/OwnChar.App.Desktop/UI/MainTabs/TabUserView.cs b/OwnChar.App.Desktop/UI/MainTabs/TabUserView.cs index bd45082..9c49155 100644 --- a/OwnChar.App.Desktop/UI/MainTabs/TabUserView.cs +++ b/OwnChar.App.Desktop/UI/MainTabs/TabUserView.cs @@ -1,35 +1,34 @@ using OwnChar.App.Desktop.Api; using OwnChar.Model; -using Pilz.UI.Telerik.Dialogs; +using Pilz.UI; using System.Windows.Forms; -namespace OwnChar.App.Desktop.UI.MainTabs +namespace OwnChar.App.Desktop.UI.MainTabs; + +public partial class TabUserView : UserControl, ILoadContent { - public partial class TabUserView : UserControl, ILoadContent + private readonly IMainWindowApi mainApi; + private readonly UserAccount? account; + private readonly UserProfile? profile; + + private TabUserView(IMainWindowApi mainApi, UserAccount? account, UserProfile? profile) { - private readonly IMainWindowApi mainApi; - private readonly UserAccount? account; - private readonly UserProfile? profile; + this.mainApi = mainApi; + this.account = account; + this.profile = profile; + InitializeComponent(); + } - private TabUserView(IMainWindowApi mainApi, UserAccount? account, UserProfile? profile) - { - this.mainApi = mainApi; - this.account = account; - this.profile = profile; - InitializeComponent(); - } + public TabUserView(IMainWindowApi mainApi, UserAccount? account) : this(mainApi, account, mainApi.Manager!.Users.GetOwnUserProfile()) + { + } - public TabUserView(IMainWindowApi mainApi, UserAccount? account) : this(mainApi, account, mainApi.Manager!.Users.GetOwnUserProfile()) - { - } + public TabUserView(IMainWindowApi mainApi, UserProfile? profile) : this(mainApi, null, profile) + { + } - public TabUserView(IMainWindowApi mainApi, UserProfile? profile) : this(mainApi, null, profile) - { - } - - public void LoadContent() - { - characterListControl1.LoadContent(mainApi, profile); - } + public void LoadContent() + { + characterListControl1.LoadContent(mainApi, profile); } } diff --git a/OwnChar.App.Desktop/UI/Windows/MainWindow.Designer.cs b/OwnChar.App.Desktop/UI/Windows/MainWindow.Designer.cs index 3e56389..1739ad7 100644 --- a/OwnChar.App.Desktop/UI/Windows/MainWindow.Designer.cs +++ b/OwnChar.App.Desktop/UI/Windows/MainWindow.Designer.cs @@ -30,33 +30,23 @@ namespace OwnChar.App.Desktop.UI.Windows /// private void InitializeComponent() { - radTabbedFormControl1 = new RadTabbedFormControl(); radTabbedFormControl2 = new RadTabbedFormControl(); - ((System.ComponentModel.ISupportInitialize)radTabbedFormControl1).BeginInit(); ((System.ComponentModel.ISupportInitialize)radTabbedFormControl2).BeginInit(); ((System.ComponentModel.ISupportInitialize)this).BeginInit(); SuspendLayout(); // - // radTabbedFormControl1 - // - radTabbedFormControl1.Location = new System.Drawing.Point(0, 0); - radTabbedFormControl1.Name = "radTabbedFormControl1"; - radTabbedFormControl1.ShowNewTabButton = false; - radTabbedFormControl1.Size = new System.Drawing.Size(768, 583); - radTabbedFormControl1.TabIndex = 0; - radTabbedFormControl1.TabWidth = 200; - radTabbedFormControl1.Text = "MainForm"; - ((RadTabbedFormControlElement)radTabbedFormControl1.GetChildAt(0)).Text = "MainForm"; - ((RadQuickAccessOverflowButton)radTabbedFormControl1.GetChildAt(0).GetChildAt(3).GetChildAt(1)).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; - ((RadQuickAccessOverflowButton)radTabbedFormControl1.GetChildAt(0).GetChildAt(4).GetChildAt(1)).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; - // // radTabbedFormControl2 // radTabbedFormControl2.Location = new System.Drawing.Point(0, 0); - radTabbedFormControl2.Name = "radTabbedFormControl2"; - radTabbedFormControl2.Size = new System.Drawing.Size(780, 589); - radTabbedFormControl2.TabIndex = 1; - radTabbedFormControl2.Text = "RadForm1"; + radTabbedFormControl2.Name = "radTabbedFormControl1"; + radTabbedFormControl2.ShowNewTabButton = false; + radTabbedFormControl2.Size = new System.Drawing.Size(768, 583); + radTabbedFormControl2.TabIndex = 0; + radTabbedFormControl2.TabWidth = 200; + radTabbedFormControl2.Text = "MainForm"; + ((RadTabbedFormControlElement)radTabbedFormControl2.GetChildAt(0)).Text = "MainForm"; + ((RadQuickAccessOverflowButton)radTabbedFormControl2.GetChildAt(0).GetChildAt(3).GetChildAt(1)).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((RadQuickAccessOverflowButton)radTabbedFormControl2.GetChildAt(0).GetChildAt(4).GetChildAt(1)).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; // // MainWindow // @@ -68,7 +58,6 @@ namespace OwnChar.App.Desktop.UI.Windows ShowIcon = false; Text = "RadForm1"; Load += MainWindow_Load; - ((System.ComponentModel.ISupportInitialize)radTabbedFormControl1).EndInit(); ((System.ComponentModel.ISupportInitialize)radTabbedFormControl2).EndInit(); ((System.ComponentModel.ISupportInitialize)this).EndInit(); ResumeLayout(false); diff --git a/OwnChar.App.Desktop/UI/Windows/MainWindow.cs b/OwnChar.App.Desktop/UI/Windows/MainWindow.cs index c5da214..a30346b 100644 --- a/OwnChar.App.Desktop/UI/Windows/MainWindow.cs +++ b/OwnChar.App.Desktop/UI/Windows/MainWindow.cs @@ -2,9 +2,6 @@ using OwnChar.App.Desktop.Api.Parameters; using OwnChar.App.Desktop.LangRes; using OwnChar.App.Desktop.UI.MainTabs; -using OwnChar.Data; -using OwnChar.Data.Managers; -using OwnChar.Data.Providers.JsonFile; using OwnChar.Manager; using Pilz.Plugins.Advanced; using Pilz.Plugins.Advanced.UI.Telerik; @@ -13,91 +10,70 @@ using System.Linq; using System.Windows.Forms; using Telerik.WinControls.UI; -namespace OwnChar.App.Desktop.UI.Windows +namespace OwnChar.App.Desktop.UI.Windows; + +public partial class MainWindow : RadTabbedForm, IMainWindowApi { - public partial class MainWindow : RadTabbedForm + Form IMainWindowApi.Window => this; + public OwnCharManager Manager { get; } = new(); + + public MainWindow() { - private readonly OwnCharManager manager = new(); + InitializeComponent(); + PluginFeatureController.Instance.Features.Get(FeatureCodes.QuickAction).InsertItemsTo(radTabbedFormControl1.RightItems, customClickHandler: RightItem_Clicked); + } - public MainWindowApi Api { get; } + private MainWindowParams GetMainWindowParams() + { + return new MainWindowParams(this); + } - public MainWindow() - { - Api = new(this); - InitializeComponent(); - PluginFeatureController.Instance.Features.Get(FeatureCodes.QuickAction).InsertItemsTo(radTabbedFormControl1.RightItems, customClickHandler: RightItem_Clicked); - } + public void OpenTab(Control content, string title) + { + var newTab = new RadTabbedFormControlTab(); + content.Dock = DockStyle.Fill; + newTab.Controls.Add(content); + newTab.Text = title; + newTab.Tag = content; + content.Tag = newTab; + radTabbedFormControl1.Tabs.Add(newTab); + radTabbedFormControl1.SelectedTab = newTab; + } - public class MainWindowApi(MainWindow mainWindow) : IMainWindowApi - { - public MainWindow MainWindow { get; } = mainWindow; + public void CloseTab(Control content) + { + if (FindTab(content) is RadTabbedFormControlTab tab) + radTabbedFormControl1.Tabs.Remove(tab); + } - public Form Window => MainWindow; - public OwnCharManager Manager => MainWindow.manager; + public bool IsTabOpen(Control content) + { + return FindTab(content) != null; + } - public void OpenTab(Control content, string title) - { - MainWindow.OpenTab(content, title); - } + public bool IsTabOpen() + { + return FindTab() != null; + } - public void CloseTab(Control content) - { - MainWindow.CloseTab(content); - } + private RadTabbedFormControlTab? FindTab(Control content) + { + return radTabbedFormControl1.Tabs.FirstOrDefault(n => n.Tag == content); + } - public bool IsTabOpen(Control content) - { - return MainWindow.FindTab(content) != null; - } + private RadTabbedFormControlTab? FindTab() + { + return radTabbedFormControl1.Tabs.FirstOrDefault(n => n.Tag is T); + } - public bool IsTabOpen() - { - return MainWindow.FindTab() != null; - } - } + private void RightItem_Clicked(object? sender, EventArgs e) + { + if (sender is RadMenuItem item && item.Tag is PluginFunction function) + function.Execute(GetMainWindowParams()); + } - private MainWindowParams GetMainWindowParams() - { - return new MainWindowParams(Api); - } - - private void OpenTab(Control content, string title) - { - var newTab = new RadTabbedFormControlTab(); - content.Dock = DockStyle.Fill; - newTab.Controls.Add(content); - newTab.Text = title; - newTab.Tag = content; - content.Tag = newTab; - radTabbedFormControl1.Tabs.Add(newTab); - radTabbedFormControl1.SelectedTab = newTab; - } - - private void CloseTab(Control content) - { - if (FindTab(content) is RadTabbedFormControlTab tab) - radTabbedFormControl1.Tabs.Remove(tab); - } - - private RadTabbedFormControlTab? FindTab(Control content) - { - return radTabbedFormControl1.Tabs.FirstOrDefault(n => n.Tag == content); - } - - private RadTabbedFormControlTab? FindTab() - { - return radTabbedFormControl1.Tabs.FirstOrDefault(n => n.Tag is T); - } - - private void RightItem_Clicked(object? sender, EventArgs e) - { - if (sender is RadMenuItem item && item.Tag is PluginFunction function) - function.Execute(GetMainWindowParams()); - } - - private void MainWindow_Load(object sender, EventArgs e) - { - Api.OpenTab(new TabLoginView(Api), LoginPageLangRes.Title); - } + private void MainWindow_Load(object sender, EventArgs e) + { + OpenTab(new TabLoginView(this), LoginPageLangRes.Title); } }