From c96adbd366e8c7014db45ff9c25b82ac2eed6787 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 21 Jul 2021 17:12:36 +0100 Subject: [PATCH 1/7] Changed: purge --- .gitignore | 8 - FizzyLauncher.UI/FizzyLauncher.UI.csproj | 272 ----- FizzyLauncher.UI/FizzyLauncher.UI.csproj.user | 6 - FizzyLauncher.UI/Properties/AssemblyInfo.cs | 36 - .../Properties/Resources.Designer.cs | 263 ----- FizzyLauncher.UI/Properties/Resources.resx | 181 ---- .../Properties/Resources16.Designer.cs | 223 ----- FizzyLauncher.UI/Properties/Resources16.resx | 169 ---- FizzyLauncher.UI/Resources/16/arrow_down.png | Bin 601 -> 0 bytes FizzyLauncher.UI/Resources/16/arrow_down2.png | Bin 417 -> 0 bytes FizzyLauncher.UI/Resources/16/arrow_up.png | Bin 590 -> 0 bytes FizzyLauncher.UI/Resources/16/arrow_up2.png | Bin 410 -> 0 bytes FizzyLauncher.UI/Resources/16/close.png | Bin 367 -> 0 bytes FizzyLauncher.UI/Resources/16/close2.png | Bin 468 -> 0 bytes FizzyLauncher.UI/Resources/16/edit.png | Bin 612 -> 0 bytes FizzyLauncher.UI/Resources/16/edit2.png | Bin 419 -> 0 bytes FizzyLauncher.UI/Resources/16/file.png | Bin 372 -> 0 bytes FizzyLauncher.UI/Resources/16/file2.png | Bin 323 -> 0 bytes FizzyLauncher.UI/Resources/16/folder.png | Bin 352 -> 0 bytes FizzyLauncher.UI/Resources/16/folder2.png | Bin 288 -> 0 bytes FizzyLauncher.UI/Resources/16/minus.png | Bin 532 -> 0 bytes FizzyLauncher.UI/Resources/16/minus2.png | Bin 380 -> 0 bytes FizzyLauncher.UI/Resources/16/plus.png | Bin 559 -> 0 bytes FizzyLauncher.UI/Resources/16/plus2.png | Bin 398 -> 0 bytes FizzyLauncher.UI/Resources/titlebar_blank.png | Bin 255 -> 0 bytes .../Resources/titlebar_blank2.png | Bin 260 -> 0 bytes .../Resources/titlebar_blank3.png | Bin 259 -> 0 bytes .../Resources/titlebar_blank4.png | Bin 260 -> 0 bytes .../Resources/titlebar_blank5.png | Bin 261 -> 0 bytes FizzyLauncher.UI/Resources/titlebar_close.png | Bin 429 -> 0 bytes .../Resources/titlebar_close2.png | Bin 478 -> 0 bytes .../Resources/titlebar_close3.png | Bin 473 -> 0 bytes .../Resources/titlebar_close4.png | Bin 441 -> 0 bytes .../Resources/titlebar_close5.png | Bin 478 -> 0 bytes .../Resources/titlebar_maximise.png | Bin 302 -> 0 bytes .../Resources/titlebar_maximise2.png | Bin 307 -> 0 bytes .../Resources/titlebar_maximise3.png | Bin 308 -> 0 bytes .../Resources/titlebar_maximise4.png | Bin 303 -> 0 bytes .../Resources/titlebar_maximise5.png | Bin 311 -> 0 bytes .../Resources/titlebar_minimise.png | Bin 303 -> 0 bytes .../Resources/titlebar_minimise2.png | Bin 307 -> 0 bytes .../Resources/titlebar_minimise3.png | Bin 309 -> 0 bytes .../Resources/titlebar_minimise4.png | Bin 304 -> 0 bytes .../Resources/titlebar_minimise5.png | Bin 313 -> 0 bytes .../RyzStudio/Data/SQLite/SQLiteDatabase.cs | 444 --------- .../RyzStudio/Drawing/Rectangoid.cs | 124 --- FizzyLauncher.UI/RyzStudio/IO/FileType.cs | 56 -- .../RyzStudio/IO/SessionFileFormatBase.cs | 290 ------ FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs | 76 -- FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs | 168 ---- .../RyzStudio/Windows/Forms/PanelBook.cs | 258 ----- .../Windows/Forms/StackLayoutPanel.cs | 69 -- .../RyzStudio/Windows/Forms/TFlatButton.cs | 115 --- .../RyzStudio/Windows/Forms/TForm.cs | 433 -------- .../RyzStudio/Windows/Forms/TForm.resx | 424 -------- .../Forms/THorizontalSeparator.Designer.cs | 37 - .../Windows/Forms/THorizontalSeparator.cs | 26 - .../RyzStudio/Windows/Forms/TImageBox.cs | 84 -- .../RyzStudio/Windows/Forms/TUserControl.cs | 73 -- .../RyzStudio/Windows/Forms/ThreadControl.cs | 526 ---------- .../ThemedForms/BorderlessForm.Designer.cs | 191 ---- .../Windows/ThemedForms/BorderlessForm.cs | 410 -------- .../Windows/ThemedForms/BorderlessForm.resx | 158 --- .../BorderlessToolForm.Designer.cs | 191 ---- .../Windows/ThemedForms/BorderlessToolForm.cs | 394 -------- .../ThemedForms/BorderlessToolForm.resx | 138 --- .../RyzStudio/Windows/ThemedForms/TButton.cs | 140 --- .../Windows/ThemedForms/TButton.designer.cs | 61 -- .../Windows/ThemedForms/TButton.resx | 120 --- .../Windows/ThemedForms/TButtonTextBox.cs | 127 --- .../ThemedForms/TButtonTextBox.designer.cs | 81 -- .../Windows/ThemedForms/TButtonTextBox.resx | 120 --- .../ThemedForms/TDialogForm.Designer.cs | 96 -- .../Windows/ThemedForms/TDialogForm.cs | 136 --- .../Windows/ThemedForms/TDialogForm.resx | 126 --- .../Windows/ThemedForms/TFolderTextBox.cs | 42 - .../RyzStudio/Windows/ThemedForms/TListBox.cs | 232 ----- .../Windows/ThemedForms/TListBox.designer.cs | 182 ---- .../Windows/ThemedForms/TListBox.resx | 120 --- .../Windows/ThemedForms/TOpenFileTextBox.cs | 43 - .../Windows/ThemedForms/TPickerBox.cs | 98 -- .../ThemedForms/TPickerBox.designer.cs | 59 -- .../Windows/ThemedForms/TPickerBox.resx | 120 --- .../RyzStudio/Windows/ThemedForms/TTextBox.cs | 96 -- .../Windows/ThemedForms/TTextBox.designer.cs | 60 -- .../Windows/ThemedForms/TTextBox.resx | 120 --- .../Windows/ThemedForms/TUserControl.cs | 106 -- .../ThemedForms/TUserControl.designer.cs | 37 - .../Windows/ThemedForms/TYesNoPickerBox.cs | 17 - FizzyLauncher.csproj | 171 ---- FizzyLauncher.csproj.user | 6 - MainForm.Designer.cs | 336 ------- MainForm.cs | 595 ----------- MainForm.resx | 730 -------------- Models/LauncherSession.cs | 41 - Models/TileGroupModel.cs | 14 - Models/TileModel.cs | 100 -- Program.cs | 31 - Properties/AssemblyInfo.cs | 36 - Properties/Resources.Designer.cs | 103 -- Properties/Resources.resx | 133 --- Properties/Settings.Designer.cs | 26 - Properties/Settings.settings | 7 - Resources/app_icon.png | Bin 1344 -> 0 bytes Resources/app_icon_32.png | Bin 1728 -> 0 bytes Resources/folder_32.png | Bin 601 -> 0 bytes Resources/raw/icon-set.svg | 942 ------------------ Resources/toggle-left-ea-16.png | Bin 506 -> 0 bytes Resources/toggle-right-ea-16.png | Bin 502 -> 0 bytes Windows/Forms/OptionsForm.cs | 446 --------- Windows/Forms/OptionsForm.resx | 131 --- Windows/Forms/Tile/AddListTileForm.cs | 294 ------ Windows/Forms/Tile/AddListTileForm.resx | 131 --- Windows/Forms/Tile/AddTileForm.cs | 375 ------- Windows/Forms/Tile/AddTileForm.resx | 167 ---- Windows/Forms/Tile/EditGroupForm.cs | 187 ---- Windows/Forms/Tile/EditGroupForm.resx | 131 --- Windows/Forms/Tile/EditListTileForm.cs | 302 ------ Windows/Forms/Tile/EditListTileForm.resx | 131 --- Windows/Forms/Tile/EditTileForm.cs | 408 -------- Windows/Forms/Tile/EditTileForm.resx | 167 ---- Windows/Forms/Tile/TTilePanel.Designer.cs | 124 --- Windows/Forms/Tile/TTilePanel.cs | 429 -------- Windows/Forms/Tile/TTilePanel.resx | 126 --- .../Forms/Tile/TTilePanelLayout.Designer.cs | 222 ----- Windows/Forms/Tile/TTilePanelLayout.cs | 855 ---------------- Windows/Forms/Tile/TTilePanelLayout.resx | 126 --- build-release.bat | 2 - favicon.ico | Bin 17542 -> 0 bytes installer.iss | 52 - packages.config | 4 - skye.sln | 31 - 132 files changed, 16294 deletions(-) delete mode 100644 .gitignore delete mode 100644 FizzyLauncher.UI/FizzyLauncher.UI.csproj delete mode 100644 FizzyLauncher.UI/FizzyLauncher.UI.csproj.user delete mode 100644 FizzyLauncher.UI/Properties/AssemblyInfo.cs delete mode 100644 FizzyLauncher.UI/Properties/Resources.Designer.cs delete mode 100644 FizzyLauncher.UI/Properties/Resources.resx delete mode 100644 FizzyLauncher.UI/Properties/Resources16.Designer.cs delete mode 100644 FizzyLauncher.UI/Properties/Resources16.resx delete mode 100644 FizzyLauncher.UI/Resources/16/arrow_down.png delete mode 100644 FizzyLauncher.UI/Resources/16/arrow_down2.png delete mode 100644 FizzyLauncher.UI/Resources/16/arrow_up.png delete mode 100644 FizzyLauncher.UI/Resources/16/arrow_up2.png delete mode 100644 FizzyLauncher.UI/Resources/16/close.png delete mode 100644 FizzyLauncher.UI/Resources/16/close2.png delete mode 100644 FizzyLauncher.UI/Resources/16/edit.png delete mode 100644 FizzyLauncher.UI/Resources/16/edit2.png delete mode 100644 FizzyLauncher.UI/Resources/16/file.png delete mode 100644 FizzyLauncher.UI/Resources/16/file2.png delete mode 100644 FizzyLauncher.UI/Resources/16/folder.png delete mode 100644 FizzyLauncher.UI/Resources/16/folder2.png delete mode 100644 FizzyLauncher.UI/Resources/16/minus.png delete mode 100644 FizzyLauncher.UI/Resources/16/minus2.png delete mode 100644 FizzyLauncher.UI/Resources/16/plus.png delete mode 100644 FizzyLauncher.UI/Resources/16/plus2.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_blank.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_blank2.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_blank3.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_blank4.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_blank5.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_close.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_close2.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_close3.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_close4.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_close5.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_maximise.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_maximise2.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_maximise3.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_maximise4.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_maximise5.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_minimise.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_minimise2.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_minimise3.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_minimise4.png delete mode 100644 FizzyLauncher.UI/Resources/titlebar_minimise5.png delete mode 100644 FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/IO/FileType.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs delete mode 100644 FizzyLauncher.csproj delete mode 100644 FizzyLauncher.csproj.user delete mode 100644 MainForm.Designer.cs delete mode 100644 MainForm.cs delete mode 100644 MainForm.resx delete mode 100644 Models/LauncherSession.cs delete mode 100644 Models/TileGroupModel.cs delete mode 100644 Models/TileModel.cs delete mode 100644 Program.cs delete mode 100644 Properties/AssemblyInfo.cs delete mode 100644 Properties/Resources.Designer.cs delete mode 100644 Properties/Resources.resx delete mode 100644 Properties/Settings.Designer.cs delete mode 100644 Properties/Settings.settings delete mode 100644 Resources/app_icon.png delete mode 100644 Resources/app_icon_32.png delete mode 100644 Resources/folder_32.png delete mode 100644 Resources/raw/icon-set.svg delete mode 100644 Resources/toggle-left-ea-16.png delete mode 100644 Resources/toggle-right-ea-16.png delete mode 100644 Windows/Forms/OptionsForm.cs delete mode 100644 Windows/Forms/OptionsForm.resx delete mode 100644 Windows/Forms/Tile/AddListTileForm.cs delete mode 100644 Windows/Forms/Tile/AddListTileForm.resx delete mode 100644 Windows/Forms/Tile/AddTileForm.cs delete mode 100644 Windows/Forms/Tile/AddTileForm.resx delete mode 100644 Windows/Forms/Tile/EditGroupForm.cs delete mode 100644 Windows/Forms/Tile/EditGroupForm.resx delete mode 100644 Windows/Forms/Tile/EditListTileForm.cs delete mode 100644 Windows/Forms/Tile/EditListTileForm.resx delete mode 100644 Windows/Forms/Tile/EditTileForm.cs delete mode 100644 Windows/Forms/Tile/EditTileForm.resx delete mode 100644 Windows/Forms/Tile/TTilePanel.Designer.cs delete mode 100644 Windows/Forms/Tile/TTilePanel.cs delete mode 100644 Windows/Forms/Tile/TTilePanel.resx delete mode 100644 Windows/Forms/Tile/TTilePanelLayout.Designer.cs delete mode 100644 Windows/Forms/Tile/TTilePanelLayout.cs delete mode 100644 Windows/Forms/Tile/TTilePanelLayout.resx delete mode 100644 build-release.bat delete mode 100644 favicon.ico delete mode 100644 installer.iss delete mode 100644 packages.config delete mode 100644 skye.sln diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fb85c11..0000000 --- a/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/.vs -/bin -/obj -/packages -/Installer/Debug -/Installer/Release -/FizzyLauncher.UI/bin -/FizzyLauncher.UI/obj diff --git a/FizzyLauncher.UI/FizzyLauncher.UI.csproj b/FizzyLauncher.UI/FizzyLauncher.UI.csproj deleted file mode 100644 index ddfdb4a..0000000 --- a/FizzyLauncher.UI/FizzyLauncher.UI.csproj +++ /dev/null @@ -1,272 +0,0 @@ - - - - - Debug - AnyCPU - {D9A49347-583F-41B4-AFE1-63EC80BBDB38} - Library - Properties - AppLauncher - fizzylauncher.ui - v4.7.2 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - false - - - - - - - - - - - - - - - - - True - True - Resources16.resx - - - True - True - Resources.resx - - - - Form - - - UserControl - - - Component - - - UserControl - - - THorizontalSeparator.cs - - - - Component - - - UserControl - - - TButton.cs - - - UserControl - - - TButtonTextBox.cs - - - Form - - - TDialogForm.cs - - - UserControl - - - UserControl - - - TListBox.cs - - - UserControl - - - UserControl - - - TPickerBox.cs - - - UserControl - - - TTextBox.cs - - - UserControl - - - TUserControl.cs - - - UserControl - - - - - ResXFileCodeGenerator - Resources16.Designer.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - TForm.cs - - - TButton.cs - - - TButtonTextBox.cs - - - TDialogForm.cs - - - TListBox.cs - - - TPickerBox.cs - - - TTextBox.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FizzyLauncher.UI/FizzyLauncher.UI.csproj.user b/FizzyLauncher.UI/FizzyLauncher.UI.csproj.user deleted file mode 100644 index c10e84b..0000000 --- a/FizzyLauncher.UI/FizzyLauncher.UI.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file diff --git a/FizzyLauncher.UI/Properties/AssemblyInfo.cs b/FizzyLauncher.UI/Properties/AssemblyInfo.cs deleted file mode 100644 index 0ec23d9..0000000 --- a/FizzyLauncher.UI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FizzyLauncher.UI")] -[assembly: AssemblyDescription("UI")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FizzyLauncher.UI")] -[assembly: AssemblyCopyright("Copyright © Ray Lam 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d9a49347-583f-41b4-afe1-63ec80bbdb38")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/FizzyLauncher.UI/Properties/Resources.Designer.cs b/FizzyLauncher.UI/Properties/Resources.Designer.cs deleted file mode 100644 index 64c08bd..0000000 --- a/FizzyLauncher.UI/Properties/Resources.Designer.cs +++ /dev/null @@ -1,263 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AppLauncher.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_blank { - get { - object obj = ResourceManager.GetObject("titlebar_blank", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_blank2 { - get { - object obj = ResourceManager.GetObject("titlebar_blank2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_blank3 { - get { - object obj = ResourceManager.GetObject("titlebar_blank3", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_blank4 { - get { - object obj = ResourceManager.GetObject("titlebar_blank4", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_blank5 { - get { - object obj = ResourceManager.GetObject("titlebar_blank5", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_close { - get { - object obj = ResourceManager.GetObject("titlebar_close", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_close2 { - get { - object obj = ResourceManager.GetObject("titlebar_close2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_close3 { - get { - object obj = ResourceManager.GetObject("titlebar_close3", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_close4 { - get { - object obj = ResourceManager.GetObject("titlebar_close4", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_close5 { - get { - object obj = ResourceManager.GetObject("titlebar_close5", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_maximise { - get { - object obj = ResourceManager.GetObject("titlebar_maximise", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_maximise2 { - get { - object obj = ResourceManager.GetObject("titlebar_maximise2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_maximise3 { - get { - object obj = ResourceManager.GetObject("titlebar_maximise3", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_maximise4 { - get { - object obj = ResourceManager.GetObject("titlebar_maximise4", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_maximise5 { - get { - object obj = ResourceManager.GetObject("titlebar_maximise5", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_minimise { - get { - object obj = ResourceManager.GetObject("titlebar_minimise", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_minimise2 { - get { - object obj = ResourceManager.GetObject("titlebar_minimise2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_minimise3 { - get { - object obj = ResourceManager.GetObject("titlebar_minimise3", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_minimise4 { - get { - object obj = ResourceManager.GetObject("titlebar_minimise4", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap titlebar_minimise5 { - get { - object obj = ResourceManager.GetObject("titlebar_minimise5", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/FizzyLauncher.UI/Properties/Resources.resx b/FizzyLauncher.UI/Properties/Resources.resx deleted file mode 100644 index 5f47cda..0000000 --- a/FizzyLauncher.UI/Properties/Resources.resx +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\titlebar_blank.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_blank2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_blank3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_blank4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_blank5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_close3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_close4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_close5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_maximise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_maximise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_maximise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_maximise4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_maximise5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_minimise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_minimise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_minimise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_minimise4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\titlebar_minimise5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/FizzyLauncher.UI/Properties/Resources16.Designer.cs b/FizzyLauncher.UI/Properties/Resources16.Designer.cs deleted file mode 100644 index a48b080..0000000 --- a/FizzyLauncher.UI/Properties/Resources16.Designer.cs +++ /dev/null @@ -1,223 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AppLauncher.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources16 { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources16() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources16", typeof(Resources16).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap arrow_down { - get { - object obj = ResourceManager.GetObject("arrow_down", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap arrow_down2 { - get { - object obj = ResourceManager.GetObject("arrow_down2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap arrow_up { - get { - object obj = ResourceManager.GetObject("arrow_up", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap arrow_up2 { - get { - object obj = ResourceManager.GetObject("arrow_up2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap close { - get { - object obj = ResourceManager.GetObject("close", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap close2 { - get { - object obj = ResourceManager.GetObject("close2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap edit { - get { - object obj = ResourceManager.GetObject("edit", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap edit2 { - get { - object obj = ResourceManager.GetObject("edit2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap file { - get { - object obj = ResourceManager.GetObject("file", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap file2 { - get { - object obj = ResourceManager.GetObject("file2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap folder { - get { - object obj = ResourceManager.GetObject("folder", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap folder2 { - get { - object obj = ResourceManager.GetObject("folder2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap minus { - get { - object obj = ResourceManager.GetObject("minus", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap minus2 { - get { - object obj = ResourceManager.GetObject("minus2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap plus { - get { - object obj = ResourceManager.GetObject("plus", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap plus2 { - get { - object obj = ResourceManager.GetObject("plus2", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/FizzyLauncher.UI/Properties/Resources16.resx b/FizzyLauncher.UI/Properties/Resources16.resx deleted file mode 100644 index 78ba89b..0000000 --- a/FizzyLauncher.UI/Properties/Resources16.resx +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\16\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\arrow_down2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\arrow_up2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\edit2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\file2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\minus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\16\plus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/FizzyLauncher.UI/Resources/16/arrow_down.png b/FizzyLauncher.UI/Resources/16/arrow_down.png deleted file mode 100644 index cccf233e96a5deccc73a84bdfff320ebbdfafc31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmV-f0;c_mP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10p>|W zK~y-6eN#PaR6!Iy=Mro-30PSKiIpPraGR~|R%2l*e}HHL+OCNp+H6D%i7rT@MYhmh z(i)A;{sSL-=OJm7fImQkE@*a-h4bX)1w7SoKjxlu?hH{wQ52b^B}r`n^C|oVz%I#t z2q9MMSsr4HCnWU%+yd|oz>cIn03dl5zyirxNiRv>2_gLYcR^}?3*aKjhojMGz13>{ ztWL`FykTamX7)hRfaI0(61e-OyZ?6gt940r#26Q2jEBSF@Hqf5Y5oXcErhUEE4~H* zA%r*8xVv{r-Uo2Ol40LRqtSYOnxth(%k}tpJbohSK+=*Ww|DBA|A%I?`2&AVZX1Bp zrQ0R#;c)m^l2w>kjPX$^DPfP~{1hsyOqeEluPBOBBnbdTQEW-N0pNO_%@lzBv}XW7 z2;r5xpOo~BpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10WL{I zK~y-6jnlm@#8D6h@SlxrVbQ8YCtB8ZG=hYV6`zG(JOYKMKq6{25g!Gc zP~6$wzw0k?l1XmP%$dxcdoI5*fj!*fHR1+M)brw=!nqnn3wXu_?jtvfX$;~7%lMFq zukeXA^p#9j!#Y|~TP-G!LOfF<%+ZJ@`)y((h_#a9*@zq)p&2JF?D3DWFC%i)@Pyq8 zCZ&bF|6}|%-a<23!LaVO+hcE|Qs64s^7A_P80q!%DWM;$7%JpWF^{>jac*&zaZC8Z zL&R5bMVw0p)0CE2`=d#jxL;aglVs19WRe^QI4t2eL({SLVGxay;vBz>MAynK$t3x8 z1lKlD$IAI<+QA}TBm><=ZVXcxz%f>2pQ(sCc5xkzUgO*p)-B>2nOsV+E0#r300000 LNkvXXu0mjf{w}h~ diff --git a/FizzyLauncher.UI/Resources/16/arrow_up.png b/FizzyLauncher.UI/Resources/16/arrow_up.png deleted file mode 100644 index a08438ba358ad09ba06ed091b453a749822880e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ozGL zK~y-6jZ?d7R8bUNYa=#e@&^(t#e2kQrnVc6h4}>q6HrW}CN{B|2nrHM@L9~@7lgD% zV>5r?W%d~)jS|QQXp9#$bC=DTaC22~Rhxa*eynxQA!-Dwn+9v z2(ilNB#1E{m-H0C4FF#OY)aY&0FtKx%#xgz^qS<|5W>&H2C4WhfD0ra6h*PtYPEh; zC*^tGFtcSdyDw=#^75n!-2J7y|8n;$bxC!^80TV)2gBj;82~V8{s>?-gs@sAyZdu9 zW0qx$wS0%<3V`#L4Et6T#afMY8^B^&mbX%Ti1B#*Skj)Pc}s3@RyC)BF3DYzy8yb? zCe3DZKbhP%04FDICym!q@f!dm0HYLl-Ti81k!_MQhRRhYe3$en%d!O}WLdUA@*&Cn zx~azi?4)}J0E7_M0jwt}005FDfR$fQf^7~=^^mjG-T$v(+x zGh40`N%lzg>Ul}`NKTRLBdz)(#&{58ocoXIM;?-;Np~a-0BpE>=WlZIJa4#r2f&7; zftf7Q?WoAo9K2vSQAnCfKHpx=}DCslF4pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10VhdB zK~y-6jnlm@#6c7V@E?&aEFMGR<2l&IR(cuSj8oi2Z4ea<-~bDFQy^dB z9n0v=oUDu$w4%4vS=&NS~}Hj#!a|`7in~jti1KTYl=$#$-ehYr*-l_HHDq|JePPk@&W9OHwy?ow9EOeObBq znKm$o7fHO^s10EZ{n*E%!e{Elh~%)V7}Sh)O<1=RpFanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+E%T^vI!dZ$iy^gC=I;CkO> z<|#+zzjR7P%Dh^VpUb|W zuaP%kWos0J=myW7@>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10bxl* zK~y-6jgwDG!(b4_e=m)Hj-UilO2wT^H#X2qR7$HOD^ccms&;z)#hy{b* zK+rVfq7iFbYTj;U-kW(de4moz(*yIY0~`T9#gGCISjqXh_|U|)P+CN7m@nf5Wmi6M zWa4_~wtrD@IsmU>Q^1)A_(doGfxIuk_m0<*a9lIrOvvdcW( z3*!BYpKdExm?9FgjTzb|^+zpZE;uky5r(URtmZ|W$qhAV}!e^5dtj$0000< KMNUMnLSTZlBh&@} diff --git a/FizzyLauncher.UI/Resources/16/edit.png b/FizzyLauncher.UI/Resources/16/edit.png deleted file mode 100644 index 031e3f604221f0e7d68be875e68412c8b19e089e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)N&JP;!hkk{ zRVu+~Z1NxY$nNDxqXYy=r$G`A&=uh-v}Ty`Xl)F_Rz z44c^_NkL{SvR@t;JdFsO8D5|@|IhypJ#m5!Q1H8FZd#HA7)3J*ZxDUgU4a4Co} z6%!PDjXBPkVI?QoXRZBTXYKENoA#K*7Oqi`=L%I!pUHfp1o!65dr zj5j&>0`DlJ@0ZDnSVJTB7P7_NfaiVz^D!SywwsB`NR+!kQ#inIyjOx5Ckgh{VQeVj z0iQU{9OoIEB(;zJ0Y6|iQ#-~b)Fg5Kf){f23TnN6{>m)8g&{m*6^9+BY&*gz?lWI5 zb>L1UgQ-d)7Nbzc2kyGS{gQ}Pl06$*IxI$$kxnCHJ(zE6??ht03)GA@Bhj*QLsGZc z&M9gc=-bNq%d~+dyy6@;Q5(ZF2C#<}xyzJ|3CUrX(WoBls<3W0z5w(WQ9cjxl3D-& N002ovPDHLkV1gdCtIYra diff --git a/FizzyLauncher.UI/Resources/16/file.png b/FizzyLauncher.UI/Resources/16/file.png deleted file mode 100644 index d0c9e5830ade13c518f1a0a7fb5c4e4f20407e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?GJx_eO>q8-{0o#jg5}n z9g>X_tOiC#_t=80Zr!@IUqOk7N1;}M!R*1StE;a!K12(Z}++-JXWeQ&xW63z>H+#w~#;bXZn+`j)9pFh|njA5wmragwuLSFoy^UXf z-QJ$R*||lK?E$O9ZJ!1+Yvz}S9d3O--Y>s=VUUaD2I&+{T?OdXq84umfFr?P-?xdad}WKNiL#_{XZGGItC Nc)I$ztaD0e0s!%Bg1i6# diff --git a/FizzyLauncher.UI/Resources/16/file2.png b/FizzyLauncher.UI/Resources/16/file2.png deleted file mode 100644 index f3e9f6d2179af7121d2314669151bada83185afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en@P?<0V~B_mzch1Gq$$e+;8eZOfUvhDuXxoI>Z<;4FSAKHgGum`mj9+JAe$xE~D$Gfb_Ufni z7#v^{&B$rov*qGpw%RufHG>j*wWC%%Y+_q<#CAgOdiK0!6}xON-0+;gM&xay`G2PQ zOt+G*wXB{cw|r8~q%TRk64!0sue^WDo$FTu|J0^hdJ9TEnV5RN^Ixw)1@p4T61G!! S%?<z-+dbOt}?FI(5&63 z!&xxsRAc6>xjSk&zt`3`Z)|F7-J~QH5X=#{UFURYn3YI@fwwJ_jttCAK*V_`Ki{a*MzIbzRjOhYh_C1ebkJR#jNvvd?fa!=5|A|9&sX=bBqw z_}4JvZ^yzP0u8$9uV$_TjT-wL<FVdQ&MBb@0I8Ogm;e9( diff --git a/FizzyLauncher.UI/Resources/16/folder2.png b/FizzyLauncher.UI/Resources/16/folder2.png deleted file mode 100644 index d21178aa8cafb22ebfe50bf0379772d84075e671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8sr;#}Etux0m z`({cN-g>d1b*@z9#RhA)7pn!Ax7qqdta#{pJI^3+VJW*+#mk31-fh|?`8{_S-y0oW z`^Bn$it?(JjOTVb)$O~faH{@5KU<52yXeMiVqQy{0_Lhp%~1Zkc=O`wSeX!(3x_|< hFBYubZFY>sKU2UnWXUOwlRytJc)I$ztaD0e0suaOZf^hp diff --git a/FizzyLauncher.UI/Resources/16/minus.png b/FizzyLauncher.UI/Resources/16/minus.png deleted file mode 100644 index 6b396d43dcd620706ec9a4eb0662e997b8117f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ij7m zK~y-6om0JPltC0d=MrqzO5kdSx+&3_!H6}Lu z1`a!Sku(W;0}b&5&CapNM814RT|CwN+1jj7FnNlIA6K0h}$zI{-FG_Cp9> zkLS_C-A_q+2H-A$F96mhZ2vZTIqB;-|9*+ z#+I2an%N^s1CrN|NRU!`nNs?ZQo7l+)P%dwx%$fHRWb)jZzHIo~-c(ahe2 z5LU}}i{uSMt(E_SDFC~r&j5g;u=?keLy){6Y1aU30GN$2wkB0|_tTQD0oXK>eUdX~ zwm2z)q$QHmB>Mn>l+p`#KXCWC3Dl2$BrAUIOBw)JODXkEvJ+!$rIdOA)+7zgYytRv zn4XfnCuxu5hn(~0a($8HRg%*==T~O7aBP?wPYjZ7OX`w52Y`~cNq!{xHiR&$$NvNo W{^Fg|2zLko0000?$b diff --git a/FizzyLauncher.UI/Resources/16/minus2.png b/FizzyLauncher.UI/Resources/16/minus2.png deleted file mode 100644 index 9bb41283a7f3e8d7bdf81467b5391984bea3e424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmV-?0fYXDP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10SQS& zK~y-6ozqP&Ltzxg@gI>6wCuoCLc0!;h?>{~#$wuF&J`hI14vi^39BfHbP+^!LbHDi&}exebH)(CK42f-|p2KH8R>@rpHj$_iauf~A; zx<-2j3%Jb{HnCL#UE(g{4%Vjq|CJMI(kt9Z29rrctd0TKq#u!B!L;5BMXSiziR`#punlviDHSUVQ#Mw|)j a=Jf+%ay>&=(wun!0000pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10lY~> zK~y-6om0zdR6!6urwDGwONgnr%qKDk=bN2xg=>pQV+n{1b+cAA~_5p z#HK$F4l%}4lAZ&&3*ak&O-b7TK=M3*Ig&Gy-jI9{Lil-@AO&v#xJvR#RaL9qZudu% zsVIt;nJt^yV@YF@*AJ4w-Cw!;FL%G0OUfCsYmi00808y@&n012w~Fn{|yw|_65H@(}Ms2002ovPDHLkV1jc+^1c87 diff --git a/FizzyLauncher.UI/Resources/16/plus2.png b/FizzyLauncher.UI/Resources/16/plus2.png deleted file mode 100644 index 0c29081e25aa7911ea1e9793e66094cb06efb9df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10UJp~ zK~y-6ozp!|LQxO};7KRYlk!JoJaAu%jMV?+z3 zuy_MJAMYjTNhY~>X3o7cbI)ZOHJqY{L0A_ZRI|x*sdYJ$_V9*V^dq*4Z7ksm2l$d9 zKjIrr%;!{AK?}pkEvJJQLEgzBX3>a4&PI+}IGQ=hyJ1-z1!tXPU@rw_--TsS!7JJ& z)FlJ^oT2;?K7vy(VcBHbqp}~uHo`{xbUS^ll>C0mf1!u#f>_ZE;0E0i?j<6r{Nd6C zY)RTul{`r+C$Z=mkApLo_IWrOGu%EUBqmZGN<@;^PQ^q(V<~4p(+T$RE*ai)#MZEh sMO@-g<};;HMH^3X&>+?wA>A~70F4SmZKJ&MYXATM07*qoM6N<$f>mIi`~Uy| diff --git a/FizzyLauncher.UI/Resources/titlebar_blank.png b/FizzyLauncher.UI/Resources/titlebar_blank.png deleted file mode 100644 index 1f31a9989a0337f799e1ae3bb94b3b9aa85fd8d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(;CE{-7BNQ3LP@wVF};% zNz96?zkPm-UT>wi=BHUpKDK{2Au>bq(#$J6>%Om>pmMCjaI@qNMz46UwWY?Jm+d|2H`L^Q7Xsl0ytF0xUCPX5YR2XSVo)cMLmDYg(|zJ2JL0zhMwryERYA ys7>HO@w~ksIM!sPowPLXK5<0;JKJlM$wmX+#o+1c=d#Wzp$Pzav|R}R diff --git a/FizzyLauncher.UI/Resources/titlebar_blank2.png b/FizzyLauncher.UI/Resources/titlebar_blank2.png deleted file mode 100644 index a04ab4daabc3ee9eb5e1210ef61f643990fbf5ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&ThT^vI!df!e~6gp%e;2J;4 z)#!5cg9$PX)*|7;H9NWIb;+sh+RHmHSA6n0gB3@<|NcJjX6bQvE7oKNy@mj@qlWss z+)jRwl#tEf%vF%sF7U^@sIta>{r5vw48HSaE>t>ro!(#kf$_-orvJBDcP9w1IJi*k zOb=I|anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&TgT^vI!df!f7D0;|2fc3e& zw`7KlQQLH*Ca*Jr;(`l>LoT_mXsX`M(ZNvqQPTeN*>&@te|uqFwScL|NXTHK^Op5B zMJ62ns@s%>>l}ZkIXumZ_0SBPt9z4}N#I)PiKv1N07Zrz-e z11%ZPcEz6C>?6i|F5`&+=T7&MDf>2iSS;2)ZqENkhs`;?YX;D544$rjF6*2UngBay BUXK6( diff --git a/FizzyLauncher.UI/Resources/titlebar_blank4.png b/FizzyLauncher.UI/Resources/titlebar_blank4.png deleted file mode 100644 index af1f6005bc3b2aca3159f9f12559afa7578b72ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&ThT^vI!df#5Q&SMG`V7++x zu=736l$JDAftf7txjW+@)hak1E0Qq0pmJkV$Gs7Hd^(*8bR2`HtDnm{r-UW| DlaObQ diff --git a/FizzyLauncher.UI/Resources/titlebar_blank5.png b/FizzyLauncher.UI/Resources/titlebar_blank5.png deleted file mode 100644 index 32fc5d27fac5313c92c774b25f2ac016d891f7b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+>0T^vI!df!e~6lw}!aJgS+ zpT1F2a~`uaYr4mo3aQD;jjIzHjDM!;iuley_wD<(H?OYk>3jJgZUu`{rRRa1J4ZzA zBzc82+qZQdn%*!kaD|D~yZ+Cnn`Il;$)>L6b2yXx&$oivFo*rW$?gR4HBBtu8)aj; z6kHRIt=d(VGB;f=C$vdZ%G}8|jQ8B0&65&>ewf6s6gRLGxTO0U=sE^ZS3j3^P6pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Xj)U zK~y-6m6Ksg12GVVzuBzlEi5AVPqstrP1b)>iQug)*3&43BnPlkPa$YG;}4@qyV&*p z%X^ub_l86!lgU}mc@A6vHN&tmv!|T1uS@Yc@BnNEHmF79(m8imm&p$ygqwlI0H~?} zS5>h+bnnDxE<^?Xqsl!b=|Y7&Wm2D>b&c^=cZ{!+xK_2o>F>M z)dg@p9*@6W%z*op((B#^fQ1mes=kZJEr6LVVvIL{?Tt_%W_I{<5IJhwR{AdXIS^I7 z17>EnC=F(-)#?rK+b;T+cudJ0WArgb58MN@qWv8qrL=a=orVxRkbxXR@Xoo@l+t=g z1eVL?%NAul+>e6|aL_02!2z(T&Fo1;T2+Ow=Q*^v1s?01v#+XZE+SX_<2wV7IcNU~ XhR}V(^jRxG00000NkvXXu0mjfrop_S diff --git a/FizzyLauncher.UI/Resources/titlebar_close2.png b/FizzyLauncher.UI/Resources/titlebar_close2.png deleted file mode 100644 index f497ea768b78b7b6eb4373753494b78dbd005dbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10c%M_ zK~y-6m6O3P15p%)zjNmb8|lT)hBOk1g{75+;uY96Bh$UMZ$Lai%TiKN&%uze-~sHU z>IJx6S(whTFcNga_>;T1=luUU|G7C=ChPHHpqv0JfTb7`gu7vqMm7^K17`wB5w(Iv z*$x8Jv03Lcf3#jJ*c|}38w*f1fGyhjD+JyEYx0t%=6M-ZzL=Je*eFIG%{4CP8R~

A<%u{ZjLMVbI!mgbfAoXjE!m91L2U{Q@Jvptafi z9uXb1=;d(@kSL7hC4WPvNi4!0%9h)WKi9LUcni3-!z7IYYfezA`k(I%w<$sN4i+DT U^sBg}XaE2J07*qoM6N<$g1ltVNB{r; diff --git a/FizzyLauncher.UI/Resources/titlebar_close3.png b/FizzyLauncher.UI/Resources/titlebar_close3.png deleted file mode 100644 index 9813d70e8aa0c3b08e2d73560ac4083588392779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10cJ@= zK~y-6jgw1G0znvrzrPtDN5G&$2*jOBH}bj!E_j5=ka!Lf&mkEwdJZ5g@BpqP>KG;v zFJPjR`CR}JfymUZyQ}K2>U4{LSv%7hZQug1h=u@oBs7k-5T7g36*P#VR>TtY3JGs5 z;6jn^$>6RTaXJ8#d`%GQ2C$+|{sZ9~u*|kIFIPz`$ZurC%T?0bxElu3lAVefGxm$s zw$d_6%lO4=J7&yyTC!8?{Eb_W_gv2}Ry(NJeqk)2pwd9pjrUw{r-6WK|K9Nn^)Jxt zc@ym<`q}2(ZAXPUS^|2oLOZ1VB-@x92^7RHKHs9!0PQRiH2jbKPX%W^#YTcz$xbdi zCk9z3F~~TGx~Mc}B|Et@!BNkB^KzBU>G0uoIZgXG@43p&@xXoCX#kKMKD?~11(dbD z)d~U1-nPSkG1mkZ@Q6^JpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Y*tg zK~y-6jgn7J!cY*#e^aZ#DI`cVap6)=f&tNBO5!;np2Nl}Pl)$0ft?3Hgj3KyE91gi z6e{%F&71Gf%;ZV<$dL#>a0&$3uF%Usj@uD79gq!3!*c;OpLAR~|Ko=3Akk$)|94~LO zaRODu8t#A=N|3~~tYxl>w>rg|K{#OFNp{|Q`~DlYiUO^0Ko^*9G$=KghK6e4g7=>^ zRlMkl+fw7NIMV>2*knR;Stmx5EUp8@;;@_5+=N6Ey9y&wYLQ95XFjn~Q)MV&z#%*M j0%!lNlz~{4Ar9UbWG8$xXqI)700000NkvXXu0mjfnGm@z diff --git a/FizzyLauncher.UI/Resources/titlebar_close5.png b/FizzyLauncher.UI/Resources/titlebar_close5.png deleted file mode 100644 index dc57050a810219d71ce2ab91ac77a8f7300e7dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10c%M_ zK~y-6jg!wV17Q@!e`k!aw5bIWA`&}GA;V*^laa3>ZAkPHBwnBk(niyX+Iozds0Xl< zV!@^lU}4&8;cv}g&hq{{=iKjpI&hbZ$%sWl%YaWlB*3*{&VO%SGITDHx=fU(%wBBNAq?T4GUCkx^{_WmQ z+$v045uo=NH-*AV>1w`OU%mfxK()T|u(uPp1lzr*SPVcSG&rl)R~}ME(xPN1jlh|7 zDkGE#&1e;-gCfXs41mK!q=Ainj)d`>n+s*tW*m;G_ZT-nnDIamPEJfcgSnq7QVJ@i z&a8OzT$l-5VJdJ2XM(U&>dgMDpjuzOFT3_aEn2(#Vl!8Emq*8q;TQPD0@R}Q?r=m_ zi|A(6dO!k$(X8a(7>ojm4_sr~*xzmQexCW7O&fxaZanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;PfT^vI!df!eq%wsYXaJ~P1 z)?x*x$w^yI`7T&|Gp1eJ;b7*1i0z$I7H^ofFoF9>Q;O2k)B5gp@2gd!b8qY2spYR> zn7NBbu(0U6UjGN{0){p($7x&gW~EI({>)kP>1H9e17}!rE>*m}_3ZYXMw^>A&+Kd1 zu706hGquus28YU9rKEoy)4mkj&*u2G@4j7T{fsZC9@Za}=VD9v#$Cq7W2xjfDJ+fc w`twNc^$p2o-}RPmnZD&=>w6xVyL)#td|GdD>Koe&PyjG^y85}Sb4q9e07ry-@Bjb+ diff --git a/FizzyLauncher.UI/Resources/titlebar_maximise2.png b/FizzyLauncher.UI/Resources/titlebar_maximise2.png deleted file mode 100644 index 6f9820192a29c8ff7c9f6ebfa35826c1849fe7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt%^UT^vI!df!go$a~0v$8~=3 zGM5c3Oj2HK9L5gr!oN0fgjNNmOt_N5G$Dd1t8a#y2S-zh=8GRopMKw8Yvo-Z-8Xk4 zbFl;GWcL;C_W5mTOm|Rx;GDsHG{RE+?N(1cy~sVBKI{oIrZKHic5t2?uUf$TCHc8y zlpL#CyqkUO=89iY*_9@@xs9^SH+-&sd-%aD-Lm-Sd4X4!{>=a2%$$GWHJ4dWcnepu zrO)Z--+5Z6A8>rX&u@;K<*{44<`~Ol#e8D;m1$N!!J$7H=obc0S3j3^P6anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt%^VT^vI!df!go$a~0v$8~;x zGS>nZ2WQXbLt+cPW^Lfpo}gslsWpQ^<(2{Ka${BnM$aXS7d)Om?f(C5DW_BC^=xtG zJHy~TL#E)s>@#)`Rw}hF&}#`h!nMog&oL%r*DlAMv8>CO16(^5mauJDcrssTUBlY9 zF}jzOU+ieL`g;29ldVC<0ws$La`>)(PG6gLLA(6*wT;p#`!fGY|G98rVaa~A_dS~r zFeZcDotbW?O8{3U{~z^bCWitDnm{r-UW| DOaXf3 diff --git a/FizzyLauncher.UI/Resources/titlebar_maximise4.png b/FizzyLauncher.UI/Resources/titlebar_maximise4.png deleted file mode 100644 index 613d94de170693842481f56d0c054334cee2b7f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+2zT^vI!df#5Q^dxY=wiRiOtjYJw5Pw56_t+uPzq0 zaGneN;yqcXR>Ix(Ym4z2W7FCf9IVr4&O5#AXQDyT<;}8Jj0I!DHEL&XpPc<(W9{76 zE5+xO6s&Kac=@fP_k@S%ZawU;c>4DD3RR08MYk{Bd-x~yA8Wlz#-dI8wRa@Wnxv!5 z`}*ef%5Tk=4K6E%eeZiSlSRC&^7)nk$$BOy4s%vf#v40;{$TKQ^>bP0l+XkKdt8DJ diff --git a/FizzyLauncher.UI/Resources/titlebar_maximise5.png b/FizzyLauncher.UI/Resources/titlebar_maximise5.png deleted file mode 100644 index f655957158adbe7f38aedf8180438acd468fbe0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt)G9T^vI!df!eq%sUhy;Bx;@ zO<&U_6V1B^Og-EmYlKWI67*W3qp^capS;s$s_Lnso&X zN$JmC6@Ta56SJ^R?CX!O^$YVewU;F7=e^hWmTh*mofq%1 zu!Lhv#N@1PPfO-iZZH)zxwu0lD%tno%=c?lGDPZ5+ppYib@|4-gRg=9VeoYIb6Mw< G&;$V4Sb*&S diff --git a/FizzyLauncher.UI/Resources/titlebar_minimise.png b/FizzyLauncher.UI/Resources/titlebar_minimise.png deleted file mode 100644 index 19c19ae3e6e688838e7a849d3dac930fe63416a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+2zT^vI!df!go$a~0v$92B` zaSe_P4L!lxEqcBYjfN48A~V^#VtS8gxR|*HH8@;s)TrG0e{*-fW>?a}RlFM*Z8E>4 zm4#is)&J1+0#ogx1KlUgPH$Q)Z@%5|SZtC+gFq9*RO$16cmJH={qU~)fpGmneir?+ zr$5)^r+qFztW@-N*E<7EgUzxVYSaxja~tS(7_M8^Uw6!KOTjnKj1;yn_s*PC3ThKb vSdpH!gT*f{H2ZmsvXZF$9^-anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt%^UT^vI!df!eqU2UF7b6KbEkJeb(x8_V9IB+z+bO_?yK*T%v}FzpLy8< ziGW8!0)5{D)S?b5C+G_#WiTI|QT={fl<9l@n<anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+cB&w37Q9}#x6H7)m8iu+@rNn|K0a}e7j1ep2@D>$i&v5 zuFH5sIQHTCg8LVuB0LuIRwfFIOqY|8h}wSYtjNwCrP8LI&HlT2+G*hI`zzo-X^I_)N6t>Qo^y{2b!W*BBI~e9(wphaArdI diff --git a/FizzyLauncher.UI/Resources/titlebar_minimise4.png b/FizzyLauncher.UI/Resources/titlebar_minimise4.png deleted file mode 100644 index fb55d84fda7bd161b3b402526400942bf9d39427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+2!T^vI!df#5&?aQ1f;QBCs zn*2<+3e}c?PEUi*yG*G8&8l*Bm9GnxMdqYeX}x}S`{I!`>DC$9f-zwlwX^Nj!{Y*1EqrkO z5BEQZ4TY7yZ%>{2$6u;nExv9$m(tmm#rdo+XU4NE?tHvanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;zqT^vI!df!eq%sb>D;ClbQ zj=Q6$l-H~R-WM4?PN|)3$pMp2H8rii(Yn)diHxdrUDpK`gDCCXI@|YuHPg0e%{u<& z!QKlJ9Zysl-5)E>dpPl;qteq0W`PxA7xcJ#d-?LOo>tl{+fWpF`kD=c;r5^9htvg} z>pwVs*8j2l!K+WFuBY{y?6J(P&slx)**b=Z1p88veazokZ)bhFv-RCt7KMYE7ubKD z%w$-?A+vGW(@oE6=2dPm72R@ihrq4mvj=CsU!#&Cy00tW^{>r=O%D^l0DZ*Z>FVdQ I&MBb@0ANFd2><{9 diff --git a/FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs b/FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs deleted file mode 100644 index 2ebab58..0000000 --- a/FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs +++ /dev/null @@ -1,444 +0,0 @@ -using System; -using System.ComponentModel; -using System.Data; -using System.IO; - -namespace RyzStudio.Data.SQLite -{ - public class SQLiteDatabase - { - #region static methods - - public static string escapeSQL(string query) - { - return query.Replace("'", "''").Trim(); - } - - public static string escapeValue(string text) - { - return text.Replace("\"", "\\\"").Replace("\t", "\\t").Replace("\r", " \\r").Replace("\n", "\\n"); - } - - public static string PrepareQuery(string query, params string[] arguments) - { - string rv = query; - - if (string.IsNullOrEmpty(rv)) - { - return string.Empty; - } - - for (int i = 0; i < arguments.Length; i++) - { - rv = rv.Replace("[^" + (i + 1).ToString() + "]", escapeSQL(arguments[i])); - } - - return rv; - } - - #endregion - - protected SQLiteWrapper.SQLiteBase database = null; - protected string databaseLocation = ":memory:"; - protected string lastError = ""; - - protected string[] requiredTableList = new string[0]; - - protected const string tableNameConfig = "ryz_app_xxxx_config"; - - #region public properties - - [Browsable(false)] - public SQLiteWrapper.SQLiteBase Database - { - get { return database; } - set { database = value; } - } - - [Browsable(false)] - public string DatabaseLocation - { - get { return databaseLocation; } - set { databaseLocation = value; } - } - - [Browsable(false)] - public string LastError - { - get { return lastError; } - } - - [Browsable(false)] - public int LastInsertID - { - get - { - if (database == null) - { - return 0; - } - - DataTable dt = this.DoQuery("SELECT last_insert_rowid() AS ccc;"); - if (dt == null) - { - return 0; - } - - if (dt.Rows.Count <= 0) - { - return 0; - } - - return int.Parse(dt.Rows[0]["ccc"].ToString()); - } - } - - #endregion - - #region public methods - - public bool Create(bool use_memory = true) - { - lastError = string.Empty; - - if (string.IsNullOrEmpty(databaseLocation)) - { - return false; - } - - try - { - if (database != null) - { - database.CloseDatabase(); - } - - database = new SQLiteWrapper.SQLiteBase(((use_memory) ? ":memory:" : databaseLocation)); - } - catch (Exception exc) - { - lastError = exc.Message; - return false; - } - - bool rv = Prepare(); - if (!rv) - { - return false; - } - - return CheckRequiredTables(); - } - - public bool Create(string filename, bool override_file = false) - { - lastError = string.Empty; - databaseLocation = filename; - - if (string.IsNullOrEmpty(databaseLocation)) - { - return false; - } - - if (File.Exists(databaseLocation) && override_file) - { - try - { - File.Delete(databaseLocation); - } - catch (Exception xc) - { - lastError = xc.Message; - return false; - } - } - - try - { - if (database != null) - { - database.CloseDatabase(); - } - - database = new SQLiteWrapper.SQLiteBase(databaseLocation); - } - catch (Exception exc) - { - lastError = exc.Message; - return false; - } - - bool rv = CheckRequiredTables(); - if (!rv) - { - Prepare(); - } - - return CheckRequiredTables(); - } - - public bool Load(string filename) - { - if (!File.Exists(filename)) - { - return false; - } - - lastError = string.Empty; - databaseLocation = filename; - - try - { - if (database != null) - { - database.CloseDatabase(); - } - - database = new SQLiteWrapper.SQLiteBase(databaseLocation); - } - catch (Exception exc) - { - lastError = exc.Message; - return false; - } - - return CheckRequiredTables(); - } - - public void Close() - { - if (database != null) - { - database.CloseDatabase(); - } - } - - - public DataTable DoQuery(string query) - { - lastError = string.Empty; - if (database == null) - { - return null; - } - - try - { - return database.ExecuteQuery(query); - } - catch (Exception exc) - { - lastError = exc.Message; - return null; - } - } - - public DataTable DoQuery(string query, params string[] args) - { - string sql = SQLiteDatabase.PrepareQuery(query, args); - - return DoQuery(sql); - } - - public bool DoNonQuery(string query) - { - lastError = string.Empty; - if (database == null) - { - return false; - } - - try - { - database.ExecuteNonQuery(query); - return true; - } - catch (Exception exc) - { - lastError = exc.Message; - return false; - } - } - - public bool DoNonQuery(string query, params string[] args) - { - string sql = SQLiteDatabase.PrepareQuery(query, args); - - return DoNonQuery(sql); - } - - public string DoQuerySingle(string query) - { - lastError = string.Empty; - if (database == null) - { - return string.Empty; - } - - DataTable tbl = DoQuery(query); - - if (tbl == null) - { - return string.Empty; - } - - if (tbl.Columns.Count <= 0) - { - return string.Empty; - } - - if (tbl.Rows.Count <= 0) - { - return string.Empty; - } - - return tbl.Rows[0][0].ToString(); - } - - public string DoQuerySingle(string query, params string[] args) - { - string sql = SQLiteDatabase.PrepareQuery(query, args); - - return DoQuerySingle(sql); - } - - public int DoQueryCount(string query) - { - if (database == null) - { - return -1; - } - - DataTable tbl = DoQuery(query); - - if (tbl == null) - { - return -1; - } - - if (tbl.Rows.Count <= 0) - { - return 0; - } - - return tbl.Rows.Count; - } - - public int DoQueryCount(string query, params string[] args) - { - string sql = SQLiteDatabase.PrepareQuery(query, args); - - return DoQueryCount(sql); - } - - public bool DoQueryExist(string query) - { - int rv = DoQueryCount(query); - - return (rv > 0); - } - - public bool DoQueryExist(string query, params string[] args) - { - string sql = SQLiteDatabase.PrepareQuery(query, args); - - return DoQueryExist(sql); - } - - public bool HasTable(string table_name) - { - lastError = string.Empty; - if (database == null) - { - return false; - } - - int rv = this.DoQueryCount("SELECT 1 FROM sqlite_master WHERE type='table' AND name='" + escapeSQL(table_name) + "'"); - - return (rv > 0); - } - - public bool CheckRequiredTables() - { - bool rv = true; - foreach (string tbl in requiredTableList) - { - if (string.IsNullOrEmpty(tbl)) - { - continue; - } - - if (!this.HasTable(tbl)) - { - rv = false; - break; - } - } - - return rv; - } - - - protected bool PrepareConfig() - { - if (HasTable(tableNameConfig)) - { - return true; - } - - bool rv = this.DoNonQuery(@" - BEGIN TRANSACTION; - CREATE TABLE " + tableNameConfig + @" (cfg_name TEXT, cfg_value TEXT); - COMMIT; - "); - - return rv; - } - - public bool SetConfig(string name, string value) - { - if (!PrepareConfig()) - { - return false; - } - - string sql = string.Empty; - int rv = this.DoQueryCount("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); - if (rv <= 0) - { - sql = "INSERT INTO " + tableNameConfig + " (cfg_name, cfg_value) VALUES ('[^1]', '[^2]');"; - } - else - { - sql = "UPDATE " + tableNameConfig + " SET cfg_value='[^2]' WHERE cfg_name='[^1]';"; - } - - sql = PrepareQuery(sql, new string[] { name, value }); - - return this.DoNonQuery(sql); - } - - public string GetConfig(string name, string default_value = "") - { - if (!PrepareConfig()) - { - return default_value; - } - - bool rv = this.DoQueryExist("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); - if (!rv) - { - return default_value; - } - - return this.DoQuerySingle("SELECT cfg_value FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); - } - - #endregion - - protected virtual bool Prepare() - { - return true; - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs b/FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs deleted file mode 100644 index 59a24d8..0000000 --- a/FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System.Drawing; -using System.Drawing.Drawing2D; - -namespace RyzStudio.Drawing -{ - public struct Rectangoid - { - private int X; - private int Y; - private int Width; - private int Height; - private int Radius; - - public Rectangoid(Rectangle rect, int radius) - { - X = rect.X; - Y = rect.Y; - Width = rect.Width; - Height = rect.Height; - Radius = radius; - } - - public Rectangoid(Rectangle rect, int radius, int borderWidth) - { - rect.Inflate((-1 * borderWidth), (-1 * borderWidth)); - - X = rect.X; - Y = rect.Y; - Width = rect.Width; - Height = rect.Height; - Radius = radius; - } - - public Rectangoid(int x, int y, int width, int height, int radius) - { - X = x; - Y = y; - Width = width; - Height = height; - Radius = radius; - } - - public Rectangoid(int x, int y, int width, int height) - { - X = x; - Y = y; - Width = width; - Height = height; - Radius = 0; - } - - public Rectangoid(int width, int height, int radius) - { - X = 0; - Y = 0; - Width = width; - Height = height; - Radius = radius; - } - - public Rectangoid(int width, int height) - { - X = 0; - Y = 0; - Width = width; - Height = height; - Radius = 0; - } - - public Rectangoid(int width) - { - X = 0; - Y = 0; - Width = width; - Height = width; - Radius = 0; - } - - public GraphicsPath ToGraphicsPath() - { - GraphicsPath rv = new GraphicsPath(); - rv.AddLine(X + this.Radius, Y, X + Width - (this.Radius * 2), Y); - - if (this.Radius > 0) - { - rv.AddArc(X + Width - (this.Radius * 2), Y, this.Radius * 2, this.Radius * 2, 270, 90); - } - - rv.AddLine(X + Width, Y + this.Radius, X + Width, Y + Height - (this.Radius * 2)); - - if (this.Radius > 0) - { - rv.AddArc(X + Width - (this.Radius * 2), Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 0, 90); - } - - rv.AddLine(X + Width - (this.Radius * 2), Y + Height, X + this.Radius, Y + Height); - - if (this.Radius > 0) - { - rv.AddArc(X, Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 90, 90); - } - - rv.AddLine(X, Y + Height - (this.Radius * 2), X, Y + this.Radius); - - if (this.Radius > 0) - { - rv.AddArc(X, Y, this.Radius * 2, this.Radius * 2, 180, 90); - } - - rv.CloseFigure(); - - return rv; - } - - public PointF GetOrigin() - { - PointF rv = new PointF(); - rv.X = ((float)Width / 2) + X; - rv.Y = ((float)Height / 2) + Y; - - return rv; - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/IO/FileType.cs b/FizzyLauncher.UI/RyzStudio/IO/FileType.cs deleted file mode 100644 index 3c8b616..0000000 --- a/FizzyLauncher.UI/RyzStudio/IO/FileType.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace RyzStudio.IO -{ - public class FileType - { - protected static readonly byte[] BMP = { 66, 77 }; - protected static readonly byte[] GIF = { 71, 73, 70, 56 }; - protected static readonly byte[] ICO = { 0, 0, 1, 0 }; - protected static readonly byte[] JPG = { 255, 216, 255 }; - protected static readonly byte[] PNG = { 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82 }; - - public static bool IsImage(byte[] byteArray) - { - if (byteArray == null) - { - return false; - } - - if (byteArray.Length <= 0) - { - return false; - } - - if (byteArray.Take(2).SequenceEqual(BMP)) - { - return true; - } - - if (byteArray.Take(4).SequenceEqual(GIF)) - { - return true; - } - - if (byteArray.Take(4).SequenceEqual(ICO)) - { - return true; - } - - if (byteArray.Take(3).SequenceEqual(JPG)) - { - return true; - } - - if (byteArray.Take(16).SequenceEqual(PNG)) - { - return true; - } - - return false; - } - } -} diff --git a/FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs b/FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs deleted file mode 100644 index 3ae2887..0000000 --- a/FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.IO; -using System.Text; -using System.Xml; -using System.Windows.Forms; -using ICSharpCode.SharpZipLib.Zip; - -namespace RyzStudio.IO -{ - public abstract class SessionFileFormatBase - { - protected string CONST_KEYPASS = ""; - protected string CONST_PRODUCT = ""; - protected string CONST_STREAM_FILE_NAME = ""; - - protected bool enableErrorReporting = false; - protected string lastUsedFileName = ""; - - #region public properties - - public string passkey - { - get { return CONST_KEYPASS; } - set { CONST_KEYPASS = value; } - } - - /*public string LastFilename - { - get { return lastUsedFileName; } - set { lastUsedFileName = value; } - }*/ - - #endregion - - #region public methods - -/* public bool loadFromRyz() - { - return loadFromRyz(lastUsedFileName); - }*/ - - public bool loadFromRyz(string file_name) - { - lastUsedFileName = file_name; - if (!File.Exists(file_name)) - { - return false; - } - - bool rv = false; - - try - { - ZipInputStream zipIn = new ZipInputStream(File.OpenRead(file_name)); - zipIn.Password = CONST_KEYPASS; - ZipEntry theEntry = null; - - while ((theEntry = zipIn.GetNextEntry()) != null) - { - string streamFileName = Path.GetFileName(theEntry.Name); - if (streamFileName.Equals(CONST_STREAM_FILE_NAME)) - { - MemoryStream oxStream = new MemoryStream(); - StreamWriter streamWriter = new StreamWriter(oxStream); - int size = 2048; - byte[] data = new byte[size]; - while (true) - { - size = zipIn.Read(data, 0, data.Length); - if (size <= 0) break; - streamWriter.BaseStream.Write(data, 0, size); - } - - oxStream.Position = 0; - - StreamReader sr2 = new StreamReader(oxStream, Encoding.UTF8); - XmlDocument xDoc = new XmlDocument(); - xDoc.LoadXml(sr2.ReadToEnd()); - - loadFromXmlDocument(ref xDoc); - } - } - - zipIn.Close(); - - rv = true; - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - return rv; - } - - public bool loadFromXml() - { - return loadFromXml(lastUsedFileName); - } - - public bool loadFromXml(string file_name) - { - lastUsedFileName = file_name; - if (!File.Exists(file_name)) - { - return false; - } - - bool rv = false; - - try - { - StreamReader sr2 = new StreamReader(file_name, Encoding.UTF8); - XmlDocument xDoc = new XmlDocument(); - xDoc.LoadXml(sr2.ReadToEnd()); - - loadFromXmlDocument(ref xDoc); - sr2.Close(); - - rv = true; - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - return rv; - } - -/* public bool saveToRyz() - { - return saveToRyz(lastUsedFileName); - } -*/ - - public bool saveToRyz(string file_name) - { - bool rv = false; - lastUsedFileName = file_name; - byte[] buffer = new byte[4096]; - - try - { - File.Delete(file_name); - FileInfo fileinfo1 = new FileInfo(file_name); - if (!Directory.Exists(fileinfo1.DirectoryName)) - { - Directory.CreateDirectory(fileinfo1.DirectoryName); - } - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - try - { - ZipOutputStream zipOutStream1 = new ZipOutputStream(File.Create(file_name)); - zipOutStream1.SetLevel(9); - zipOutStream1.Password = CONST_KEYPASS; - - MemoryStream oxIndexStream = new MemoryStream(); - XmlTextWriter oxTW = new XmlTextWriter(oxIndexStream, Encoding.UTF8); - saveToXmlTextWriter(ref oxTW); - oxTW.Flush(); - - // write to file - zipOutStream1.PutNextEntry(new ZipEntry(CONST_STREAM_FILE_NAME)); - oxIndexStream.Position = 0; - StreamReader sr2 = new StreamReader(oxIndexStream, Encoding.UTF8); - int sourceBytes; - do - { - sourceBytes = sr2.BaseStream.Read(buffer, 0, buffer.Length); - zipOutStream1.Write(buffer, 0, sourceBytes); - } - while (sourceBytes > 0); - - sr2.Close(); - oxTW.Close(); - zipOutStream1.Finish(); - zipOutStream1.Close(); - - rv = true; - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - return rv; - } - - public bool saveToXml() - { - return saveToXml(lastUsedFileName); - } - - public bool saveToXml(string file_name) - { - bool rv = false; - - lastUsedFileName = file_name; - try - { - File.Delete(file_name); - FileInfo fileinfo1 = new FileInfo(file_name); - if (!Directory.Exists(fileinfo1.DirectoryName)) - { - Directory.CreateDirectory(fileinfo1.DirectoryName); - } - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - try - { - XmlTextWriter oxTW = new XmlTextWriter(file_name, Encoding.UTF8); - saveToXmlTextWriter(ref oxTW); - oxTW.Flush(); - oxTW.Close(); - - rv = true; - } - catch (Exception exc) - { - if (enableErrorReporting) - { - MessageBox.Show(exc.Message); - } - } - - return rv; - } - - #endregion - - protected virtual void loadFromXmlDocument(ref XmlDocument xml_doc) { } - protected virtual void saveToXmlTextWriter(ref XmlTextWriter writer) { } - - #region public methods (conversions) - - public int[] convIntArrayString(string s1, char c) - { - string[] sarr = s1.Split(c); - int[] iarr = new int[sarr.Length]; - for (int i = 0; i < sarr.Length; i++) - { - iarr[i] = Int32.Parse(sarr[i]); - } - - return iarr; - } - - public string convStringIntArray(int[] r, char s) - { - string t = null; - for (int i = 0; i < r.Length; i++) - { - if (i != 0) - { - t += s.ToString(); - } - - t += r[i].ToString(); - } - - return t; - } - -#endregion - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs b/FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs deleted file mode 100644 index b162124..0000000 --- a/FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.IO; -using ICSharpCode.SharpZipLib.Zip; - -namespace RyzStudio.IO -{ - public class SharpZipLib - { - ///

- /// Is zip file encrypted - /// - /// Filename - /// Is encrypted - public static bool IsZipEncrypted(string fn) - { - bool ret_val = false; - try - { - ZipInputStream zipIn = new ZipInputStream(System.IO.File.OpenRead(fn)); - ZipEntry theEntry = null; - while ((theEntry = zipIn.GetNextEntry()) != null) - { - if (theEntry.IsCrypted) - { - ret_val = true; - } - - break; - } - - zipIn.Close(); - } - catch - { - // do nothing - } - - return ret_val; - } - - public static void AddFile(ZipOutputStream zipstream, string filename, string prefixpath = null) - { - byte[] buffer = new byte[4096]; - - string f1 = ""; - if (prefixpath != null) - { - f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\"; - f1 = f1.Replace(prefixpath, "").TrimEnd('\\') + "\\"; - f1 = f1 + Path.GetFileName(filename); - f1 = f1.TrimStart('\\'); - } - - ZipEntry entry = new ZipEntry(f1); - entry.DateTime = DateTime.Now; - zipstream.PutNextEntry(entry); - - FileStream fs = File.OpenRead(filename); - int sourceBytes; - do - { - sourceBytes = fs.Read(buffer, 0, buffer.Length); - zipstream.Write(buffer, 0, sourceBytes); - } - while (sourceBytes > 0); - } - - public static void AddFolder(ZipOutputStream zipstream, string folderpath, string prefixpath = null) - { - foreach (string fn in Directory.GetFiles(folderpath, "*.*", System.IO.SearchOption.AllDirectories)) - { - AddFile(zipstream, fn, prefixpath); - } - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs b/FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs deleted file mode 100644 index bafff2e..0000000 --- a/FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs +++ /dev/null @@ -1,168 +0,0 @@ -using System; -using System.IO; -using System.Net; -using System.Text; -using System.Windows.Forms; - -namespace RyzStudio.Net -{ - public class HttpWeb - { - public string defaultUserAgent = "Momozilla/5.0 (" + Environment.OSVersion.Platform.ToString() + " ; " + Environment.OSVersion.VersionString + "; " + Application.CurrentCulture.TwoLetterISOLanguageName + ")"; - public int defaultTimeout = 6000; - public int defaultMaxRedirect = 8; - public bool defaultAllowRedirect = true; - public CookieContainer defaultCookierContainer = null; - - public HttpWeb() - { - } - - public HttpWebRequest CreateRequest(string url) - { - return this.CreateRequest(url, url); - } - - public HttpWebRequest CreateRequest(string url, string referrerURL) - { - if (defaultCookierContainer == null) - { - defaultCookierContainer = new CookieContainer(); - } - - HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); - webRequest.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore); - webRequest.MaximumAutomaticRedirections = defaultMaxRedirect; - webRequest.CookieContainer = defaultCookierContainer; - webRequest.UserAgent = defaultUserAgent; - webRequest.AllowAutoRedirect = defaultAllowRedirect; - webRequest.Timeout = defaultTimeout; - - return webRequest; - } - - public int GetResponse(out string sourceCode, string url, string referrerURL = "") - { - HttpWebRequest webRequest = this.CreateRequest(url, referrerURL); - - return GetResponse(out sourceCode, webRequest); - } - - public int GetResponse(out string sourceCode, HttpWebRequest webRequest) - { - sourceCode = string.Empty; - - int rv = 0; - - try - { - HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); - - rv = (int)webResponse.StatusCode; - - StreamReader readContent = new StreamReader(webResponse.GetResponseStream()); - sourceCode = readContent.ReadToEnd(); - - webResponse.Close(); - webResponse = null; - } - catch (WebException xc) - { - if (xc.Response is HttpWebResponse) - { - HttpWebResponse rs = xc.Response as HttpWebResponse; - StreamReader readContent = new StreamReader(rs.GetResponseStream()); - if (readContent != null) - { - sourceCode = readContent.ReadToEnd(); - } - - rv = (int)rs.StatusCode; - } - else - { - rv = (int)xc.Status; - sourceCode = xc.Message; - } - } - catch (Exception xc) - { - sourceCode = xc.Message; - } - - return rv; - } - - public static HttpWebRequest AddBasicAuthentication(HttpWebRequest webRequest, string username, string password) - { - webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(string.Concat(username, ":", password))); - webRequest.PreAuthenticate = true; - - return webRequest; - } - - - public int GetPOSTResponse(out string sourceCode, HttpWebRequest webRequest, string postData) - { - sourceCode = ""; - int rv = 0; - byte[] buffer = Encoding.UTF8.GetBytes(postData); - - webRequest.ContentLength = buffer.Length; - - try - { - Stream dataStream = webRequest.GetRequestStream(); - dataStream.Write(buffer, 0, buffer.Length); - dataStream.Close(); - } - catch (Exception xc) - { - sourceCode = xc.Message; - return rv; - } - - return this.GetResponse(out sourceCode, webRequest); - } - - public int GetHeader(out WebHeaderCollection headerCollection, string url, string referrerURL = "") - { - headerCollection = null; - - int rv = 0; - - HttpWebRequest webRequest = this.CreateRequest(url, referrerURL); - webRequest.Method = "HEAD"; - - try - { - HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); - headerCollection = webResponse.Headers; - - rv = (int)webResponse.StatusCode; - - webResponse.Close(); - webResponse = null; - } - catch (WebException xc) - { - if (xc.Response is HttpWebResponse) - { - HttpWebResponse rs = xc.Response as HttpWebResponse; - - rv = (int)rs.StatusCode; - } - else - { - rv = (int)xc.Status; - } - } - catch - { - // do nothing - } - - return rv; - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs deleted file mode 100644 index c6755c8..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs +++ /dev/null @@ -1,258 +0,0 @@ -namespace RyzStudio.Windows.Forms -{ - using System; - using System.Collections; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - [ToolboxItem(true)] - public class PanelBook : UserControl - { - public class PanelCollection : CollectionBase - { - protected PanelBook panelBook = null; - - public PanelCollection(PanelBook parentPanelBook) : base() - { - panelBook = parentPanelBook; - } - - public PanelBook Parent => panelBook; - - public Panel this[int index] { get => (Panel)List[index]; set => List[index] = value; } - - public int Add(Panel value) => List.Add(value); - - public void AddRange(Panel[] pages) => Array.ForEach(pages, x => this.Add(x)); - - public bool Contains(Panel value) => List.Contains(value); - - public int IndexOf(Panel value) => List.IndexOf(value); - - public void Insert(int index, Panel value) => List.Insert(index, value); - - public void Remove(Panel value) => List.Remove(value); - - protected override void OnInsertComplete(int index, object value) - { - base.OnInsertComplete(index, value); - - if (panelBook != null) - { - panelBook.PageIndex = index; - } - } - - protected override void OnRemoveComplete(int index, object value) - { - base.OnRemoveComplete(index, value); - - if (panelBook != null) - { - if (panelBook.PageIndex == index) - { - if (index < InnerList.Count) - { - panelBook.PageIndex = index; - } - else - { - panelBook.PageIndex = InnerList.Count - 1; - } - } - } - } - - } - - private System.ComponentModel.IContainer components = null; - - protected PanelCollection panelCollection = null; - - public PanelBook() - { - InitializeComponent(); - - panelCollection = new PanelCollection(this); - } - - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - - base.Dispose(disposing); - } - - protected void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public Panel ActivePanel { get; protected set; } = null; - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } - - [Category("Collection")] - [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] - public PanelCollection Pages => panelCollection; - - [Category("Collection")] - public int SelectedIndex - { - get => (panelCollection.Count <= 0) ? -1 : panelCollection.IndexOf(this.ActivePanel); - set - { - if (panelCollection.Count <= 0) return; - if (value < 0) return; - if (value > (panelCollection.Count - 1)) return; - if (value == this.SelectedIndex) return; - - ActivatePage(value); - } - } - - protected internal int PageIndex - { - get => panelCollection.IndexOf(this.ActivePanel); - set - { - if (panelCollection.Count <= 0) - { - ActivatePage(-1); - return; - } - - if ((value < -1) || (value >= panelCollection.Count)) - { - throw new ArgumentOutOfRangeException("PageIndex", value, "The page index must be between 0 and " + Convert.ToString(panelCollection.Count - 1)); - } - - ActivatePage(value); - } - } - - protected internal void ActivatePage(int index) - { - if ((panelCollection.Count == 0) && (index >= panelCollection.Count) && (index <= 0)) - { - return; - } - - Panel p = (Panel)panelCollection[index]; - - ActivatePage(p); - } - - protected internal void ActivatePage(Panel page) - { - if (this.ActivePanel != null) - { - if (this.ActivePanel.InvokeRequired) - { - this.ActivePanel.Invoke(new MethodInvoker(() => { - this.ActivePanel.Visible = false; - })); - } - else - { - this.ActivePanel.Visible = false; - } - } - - this.ActivePanel = page; - if (this.ActivePanel != null) - { - this.ActivePanel.Parent = this; - if (!this.Contains(this.ActivePanel)) - { - this.Container.Add(this.ActivePanel); - } - - if (this.ActivePanel.InvokeRequired) - { - this.ActivePanel.Invoke(new MethodInvoker(() => { - this.ActivePanel.Dock = DockStyle.Fill; - this.ActivePanel.Visible = true; - this.ActivePanel.BringToFront(); - })); - } - else - { - this.ActivePanel.Dock = DockStyle.Fill; - this.ActivePanel.Visible = true; - this.ActivePanel.BringToFront(); - } - } - - if (this.ActivePanel != null) - { - if (this.ActivePanel.InvokeRequired) - { - this.ActivePanel.Invoke(new MethodInvoker(() => { - this.ActivePanel.Invalidate(); - })); - } - else - { - this.ActivePanel.Invalidate(); - } - } - else - { - this.Invalidate(); - } - } - -#if DEBUG - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - if (this.DesignMode) - { - this.Invalidate(); - } - } - -#endif - - protected override void DestroyHandle() - { - base.DestroyHandle(); - - foreach (Panel p in panelCollection) - { - p.Dispose(); - } - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs deleted file mode 100644 index 8cdeae5..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RyzStudio.Windows.Forms -{ - public class StackLayoutPanel : FlowLayoutPanel - { - public StackLayoutPanel() : base() - { - this.AutoScroll = true; - this.FlowDirection = FlowDirection.TopDown; - this.WrapContents = false; - } - - protected override void OnResize(EventArgs eventargs) - { - base.OnResize(eventargs); - - //int w = this.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth; - int w = this.ClientRectangle.Width - 1; - - foreach (Control item in this.Controls) - { - if (item.Width != w) - { - item.Width = w; - } - } - } - - protected override void OnControlAdded(ControlEventArgs e) - { - base.OnControlAdded(e); - - OnResize(null); - } - - protected override void OnControlRemoved(ControlEventArgs e) - { - base.OnControlRemoved(e); - - OnResize(null); - } - - public void AddControl(Control value) - { - if (this.InvokeRequired) - { - this.Invoke(new MethodInvoker(() => - { - value.Margin = new Padding(0, 3, 0, 3); - - this.Controls.Add(value); - })); - } - else - { - value.Margin = new Padding(0, 3, 0, 3); - - this.Controls.Add(value); - } - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs deleted file mode 100644 index b50dee0..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System.Drawing; -using System.Windows.Forms; - -namespace RyzStudio.Windows.Forms -{ - public class TFlatButton : Label - { - public class ButtonStyle - { - public Color BackColour { get; set; } = Color.Transparent; - public Color PenColour { get; set; } = Color.Transparent; - } - - public enum FlatButtonState - { - Idle = 0, - Hover, - Down - } - - protected FlatButtonState controlState = FlatButtonState.Idle; - - public TFlatButton() : base() - { - this.AutoSize = false; - this.ImageAlign = ContentAlignment.MiddleCenter; - this.TextAlign = ContentAlignment.MiddleCenter; - - // customise - this.StyleOver = new ButtonStyle() - { - BackColour = Color.FromArgb(51, 51, 51), - PenColour = Color.White - }; - this.StyleDown = new ButtonStyle() - { - BackColour = Color.FromArgb(179, 179, 179), - PenColour = Color.Black - }; - this.StyleDefault = new ButtonStyle() - { - BackColour = Color.White, - PenColour = Color.Black - }; - - this.VisualState = FlatButtonState.Idle; - - this.Click += delegate { this.OnClick(null); }; - this.MouseEnter += delegate { this.VisualState = FlatButtonState.Hover; }; - this.MouseLeave += delegate { this.VisualState = FlatButtonState.Idle; }; - this.MouseDown += delegate { this.VisualState = FlatButtonState.Down; }; - this.MouseUp += delegate { this.VisualState = FlatButtonState.Idle; }; - } - - protected FlatButtonState VisualState - { - get { return controlState; } - set - { - switch (value) - { - case FlatButtonState.Idle: - if (this.VisualState == FlatButtonState.Down) - { - updateButton(StyleOver); - } - else - { - updateButton(StyleDefault); - } - - break; - case FlatButtonState.Hover: - updateButton(StyleOver); - break; - case FlatButtonState.Down: - updateButton(StyleDown); - break; - default: - updateButton(StyleDefault); - break; - } - - controlState = value; - } - } - - protected void updateButton(ButtonStyle style) - { - this.ForeColor = style.PenColour; - this.BackColor = style.BackColour; - } - - protected ButtonStyle StyleOver { get; set; } = new ButtonStyle(); - - protected ButtonStyle StyleDown { get; set; } = new ButtonStyle(); - - protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle(); - - public void PerformClick() - { - if (this.InvokeRequired) - { - this.Invoke(new MethodInvoker(() => { - this.OnClick(null); - })); - } - else - { - this.OnClick(null); - } - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs deleted file mode 100644 index 48a2803..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs +++ /dev/null @@ -1,433 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; -using Resources = AppLauncher.Properties.Resources; - -namespace RyzStudio.Windows.Forms -{ - public class TForm : Form - { - protected readonly Color borderColour = Color.FromArgb(200, 200, 200); - protected readonly int borderWidth = 1; - - protected readonly int resizeBorderWidth = 4; - - protected readonly Color backColour = Color.FromArgb(250, 250, 250); - - protected readonly Color titleBackColour = Color.FromArgb(235, 234, 233); - protected readonly Color titleBorderColour = Color.FromArgb(200, 198, 196); - protected readonly Color titleColour = Color.FromArgb(102, 102, 102); - protected readonly int titleBarHeight = 33; - protected readonly bool showTitleBarLine = true; - protected Font titleFont = null; - protected int titleFontTop = 0; - - protected readonly Size titleBarIconSize = new Size(48, 32); - protected readonly int titleBarIconMargin = 0; - protected readonly int titleBarIconMarginRight = 0; - - protected Image appIcon = null; - protected const int appIconLeft = 12; - protected const int appIconRight = 6; - protected int appIconTop = 0; - - protected bool isDragging = false; - protected Point startPosition = new Point(); - protected Point startWindowSize = new Point(); - - protected bool enableMinimise { get; set; } = true; - protected bool enableMaximise { get; set; } = true; - protected bool enableClose { get; set; } = true; - protected bool closeOnMinimise { get; set; } = false; - - protected bool isBusy = false; - - private IContainer components; - - public TForm() : base() - { - InitializeComponent(); - - if (!this.DesignMode) - { - this.FormBorderStyle = FormBorderStyle.None; - this.StartPosition = FormStartPosition.Manual; - } - - this.AutoScaleMode = AutoScaleMode.None; - this.BackColor = backColour; - this.Padding = new Padding(0); - this.DoubleBuffered = true; - - this.MouseDown += new MouseEventHandler(form_MouseDown); - this.MouseMove += new MouseEventHandler(form_MouseMove); - this.MouseUp += new MouseEventHandler(form_MouseUp); - this.PreviewKeyDown += new PreviewKeyDownEventHandler(form_PreviewKeyDown); - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - - this.Text = Application.ProductName; - - initialiseLoadComponent(); - - if (appIcon != null) appIconTop = (int)Math.Floor((decimal)(titleBarHeight - appIcon.Height) / 2) + borderWidth; - titleFont = new Font(this.Font.FontFamily, 10F); - titleFontTop = (int)Math.Floor((decimal)(titleBarHeight - TextRenderer.MeasureText("#", titleFont).Height) / 2) + borderWidth; - - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= titleBarHeight)); - - if (e.Button == MouseButtons.Left) - { - if (isLabel) - { - // do nothing - } - else - { - // do nothing - } - } - else if (e.Button == MouseButtons.Right) - { - if (isLabel) - { - if (this.TitleContextMenuStrip != null) - { - this.TitleContextMenuStrip.Show(this, e.Location); - } - } - else - { - // do nothing - } - } - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth)); - - // border - g.DrawRectangle(new Pen(borderColour, borderWidth), area); - - area.Inflate((-1 * borderWidth), (-1 * borderWidth)); - - g.FillRectangle(new SolidBrush(titleBackColour), area.X, area.Y, (area.Width + area.X), titleBarHeight); - - if (showTitleBarLine) g.DrawLine(new Pen(titleBorderColour, 1), area.X, titleBarHeight, (area.Width + area.X), titleBarHeight); - - if (!DesignMode) - { - if (appIcon != null) g.DrawImageUnscaled(appIcon, appIconLeft, appIconTop); - - int iconPosX = borderWidth + appIconLeft + appIconRight + ((appIcon == null) ? 0 : appIcon.Width); - TextRenderer.DrawText(g, this.Text, titleFont, new Point(iconPosX, titleFontTop), titleColour); - } - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - this.Invalidate(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override Color BackColor { get => base.BackColor; set => base.BackColor = backColour; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Padding { get => base.Padding; set => base.Padding = value; } - - [Category("Appearance")] - public ContextMenuStrip TitleContextMenuStrip { get; set; } = null; - - //[Browsable(false)] - //public Image AppIcon { get; set; } = null; - - //[Browsable(false)] - //public bool IsMaximiseEnabled { get; set; } = false; - - //protected Point DefaultLocation - //{ - // get - // { - // Point newPosition = new Point(Cursor.Position.X, Cursor.Position.Y); - // newPosition.X -= (this.Width / 2); - // newPosition.Y -= (this.Height / 2); - - // newPosition.X = Math.Max(newPosition.X, Screen.PrimaryScreen.WorkingArea.Left); - // newPosition.Y = Math.Max(newPosition.Y, Screen.PrimaryScreen.WorkingArea.Top); - - // return newPosition; - // } - //} - - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TForm)); - this.SuspendLayout(); - // - // AForm - // - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "AForm"; - this.ResumeLayout(false); - } - - private void form_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) - { - isDragging = true; - startPosition = e.Location; - startWindowSize = new Point(this.Width, this.Height); - } - } - - private void form_MouseMove(object sender, MouseEventArgs e) - { - if (isDragging) - { - int x = (this.Location.X + (e.Location.X - startPosition.X)); - int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); - - //this.Location = validateFormLocation(x, y); - this.Location = new Point(x, y); - } - } - - private void form_MouseUp(object sender, MouseEventArgs e) - { - isDragging = false; - } - - private void form_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) - { - if (e.KeyCode == Keys.Escape) - { - Application.Exit(); - } - } - - protected virtual void initialiseLoadComponent() - { - if (DesignMode) return; - - // close - TImageBox closeBox = generateToolbarImageBox(); - closeBox.Image = closeBox.ImageNormal = (enableClose) ? Resources.titlebar_close : Resources.titlebar_blank; - closeBox.ImageHover = (enableClose) ? Resources.titlebar_close3 : Resources.titlebar_blank; - closeBox.ImageSelected = Resources.titlebar_close3; - closeBox.MouseClick += delegate (object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) - { - if (enableClose) - { - this.Close(); - } - } - }; - closeBox.Left = this.DisplayRectangle.Width - closeBox.Width - (titleBarIconMarginRight + borderWidth); - - this.Controls.Add(closeBox); - - // maximise - TImageBox maximiseBox = generateToolbarImageBox(); - maximiseBox.Image = maximiseBox.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank; - maximiseBox.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank; - maximiseBox.ImageSelected = Resources.titlebar_maximise3; - maximiseBox.MouseClick += delegate (object sender, MouseEventArgs e) - { - if (!(sender is TImageBox)) return; - - TImageBox imageBox2 = (sender as TImageBox); - - if (imageBox2 == null) return; - - if (e.Button == MouseButtons.Left) - { - if (enableMaximise) - { - if (this.WindowState == FormWindowState.Maximized) - { - this.WindowState = FormWindowState.Normal; - imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise; - } - else - { - this.WindowState = FormWindowState.Maximized; - imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise5; - } - } - } - else if (e.Button == MouseButtons.Right) - { - this.TopMost = !this.TopMost; - - if (this.TopMost) - { - imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise3; - imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_maximise3; - } - else - { - imageBox2.Image = imageBox2.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank; - imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank; - } - } - }; - maximiseBox.Left = closeBox.Left - maximiseBox.Width - titleBarIconMargin; - - this.Controls.Add(maximiseBox); - - // minimise - TImageBox minimiseBox = generateToolbarImageBox(); - minimiseBox.Image = minimiseBox.ImageNormal = (enableMinimise) ? Resources.titlebar_minimise : Resources.titlebar_blank; - minimiseBox.ImageHover = (enableMinimise) ? Resources.titlebar_minimise5 : Resources.titlebar_blank; - //minimiseBox.ImageSelected = null; - minimiseBox.MouseClick += delegate (object sender, MouseEventArgs e) - { - if (!enableMinimise) return; - if (e.Button != MouseButtons.Left) return; - - if (closeOnMinimise) - { - this.Close(); - } - else - { - this.WindowState = FormWindowState.Minimized; - } - }; - minimiseBox.Left = maximiseBox.Left - minimiseBox.Width - titleBarIconMargin; - - this.Controls.Add(minimiseBox); - - // resize - UserControl uc1 = new UserControl() - { - Anchor = (AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right), - Height = resizeBorderWidth, - Width = this.DisplayRectangle.Width - resizeBorderWidth, - Left = 0, - Top = this.DisplayRectangle.Height - resizeBorderWidth, - BackColor = Color.Transparent, - Cursor = Cursors.SizeNS - }; - uc1.MouseDown += form_MouseDown; - uc1.MouseUp += form_MouseUp; - uc1.MouseMove += delegate (object sender, MouseEventArgs e) - { - if (isDragging) - { - this.Size = new Size(startWindowSize.X, e.Y - startPosition.Y + this.Height); - } - }; - uc1.BringToFront(); - - this.Controls.Add(uc1); - - UserControl uc2 = new UserControl() - { - Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom), - Height = this.DisplayRectangle.Height - resizeBorderWidth, - Width = resizeBorderWidth, - Left = this.DisplayRectangle.Width - resizeBorderWidth, - Top = 0, - BackColor = Color.Transparent, - Cursor = Cursors.SizeWE - }; - uc2.MouseDown += form_MouseDown; - uc2.MouseUp += form_MouseUp; - uc2.MouseMove += delegate (object sender, MouseEventArgs e) - { - if (isDragging) - { - this.Size = new Size(e.X - startPosition.X + this.Width, startWindowSize.Y); - } - }; - uc2.BringToFront(); - - this.Controls.Add(uc2); - - UserControl uc3 = new UserControl() - { - Anchor = (AnchorStyles.Bottom | AnchorStyles.Right), - Height = resizeBorderWidth, - Width = resizeBorderWidth, - Left = this.DisplayRectangle.Width - resizeBorderWidth, - Top = this.DisplayRectangle.Height - resizeBorderWidth, - BackColor = Color.Transparent, - Cursor = Cursors.SizeNWSE - }; - uc3.MouseDown += form_MouseDown; - uc3.MouseUp += form_MouseUp; - uc3.MouseMove += delegate (object sender, MouseEventArgs e) - { - if (isDragging) - { - this.Size = new Size((e.X - startPosition.X + this.Width), (e.Y - startPosition.Y + this.Height)); - } - }; - uc3.BringToFront(); - - this.Controls.Add(uc3); - } - - protected TImageBox generateToolbarImageBox() - { - TImageBox imageBox = new TImageBox(); - //imageBox.BackColor = Color.Transparent; - imageBox.BackColorHover = imageBox.BackColorSelected = Color.FromArgb(220, 220, 220); - imageBox.BackgroundImageLayout = ImageLayout.Center; - imageBox.ErrorImage = null; - //imageBox.Image = Resources.close; - //imageBox.ImageHover = Resources.close2; - //imageBox.ImageNormal = Resources.close; - imageBox.ImageSelected = null; - imageBox.IsSelected = false; - //closeBox.Location = new System.Drawing.Point(169, 12); - imageBox.Size = titleBarIconSize; - imageBox.SizeMode = PictureBoxSizeMode.CenterImage; - //imageBox.MouseClick += new MouseEventHandler(closeBox_MouseClick); - //imageBox.Left = this.DisplayRectangle.Width - imageBox.Width - 17; - imageBox.Top = (int)Math.Floor((decimal) (titleBarHeight - titleBarIconSize.Height) / 2) + borderWidth; - imageBox.Anchor = (AnchorStyles.Top | AnchorStyles.Right); - imageBox.Padding = new Padding(0); - - return imageBox; - } - - //private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close(); - - //private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) - //{ - // if (e.Button == MouseButtons.Left) - // { - // this.Visible = !this.Visible; - // } - - // //notifyIcon1.Visible = !this.Visible; - //} - - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx deleted file mode 100644 index b723165..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 130, 17 - - - - - AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA - IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc - VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta - VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// - ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 - /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb - VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb - VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN - y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb - VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// - /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb - VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ - VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d - Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 - 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 - 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// - ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb - VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 - +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// - ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// - /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb - VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K - Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl - bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb - VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// - /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// - ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA - AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l - ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// - ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb - VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 - 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl - bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py - 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// - //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// - ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// - //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// - //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT - Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl - bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb - VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU - Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj - p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA - AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb - VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 - 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE - if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// - ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb - VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk - 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 - +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA - AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f - WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 - /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk - +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// - /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// - //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// - ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// - /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 - bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI - 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk - +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm - ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// - /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// - //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb - VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 - 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// - //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e - V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 - /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk - +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// - //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// - //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// - ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// - /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb - VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty - /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 - ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta - VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD - wP/08/L///////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb - VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb - VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////0czK/3Bh - Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// - //////////////////////////////////////////////////////////////////////////////// - ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb - VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// - /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb - U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// - ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 - dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa - VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb - VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd - VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w - AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP - rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA - AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA - rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA - AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ - rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA - AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb - VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He - 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// - ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// - ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb - VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// - //////////////////////////////////////////////////////////////////////////////r6 - +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// - //////////////////////////////////////////////////////////////////////////////// - //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 - +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg - nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj - p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc - Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl - bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb - VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx - zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA - gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh - lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By - bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i - mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// - ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 - /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ - /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg - 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// - /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt - /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ - u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc - VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt - /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb - VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 - 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV - 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// - //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// - ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// - /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// - /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 - 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk - +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// - ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f - Wf/7+vr///////////////////////////////////////////////////////////////////////// - ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// - //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// - ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// - ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb - VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc - VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A - AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA - AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA - AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb - VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ - U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// - ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA - AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// - ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// - ////////////////////////////////////////////////////////////////////////in55/W1d - Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN - 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm - 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 - /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// - ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e - Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// - ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 - AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW - kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm - 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// - /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// - /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk - 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA - AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// - ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 - 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv - 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb - /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m - ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ - ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// - /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA - AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// - ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg - Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He - 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H - /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA - AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo - YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 - +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// - ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX - cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw - yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx - zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU - Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ - //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// - ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh - W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA - AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b - UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b - Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA - gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA - AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA - rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== - - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs deleted file mode 100644 index 1058088..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace RyzStudio.Windows.Forms -{ - partial class THorizontalSeparator - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - } - - #endregion - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs deleted file mode 100644 index 3311e09..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Drawing; -using System.Windows.Forms; - -namespace RyzStudio.Windows.Forms -{ - public partial class THorizontalSeparator : System.Windows.Forms.UserControl - { - public THorizontalSeparator() - { - InitializeComponent(); - - this.MaximumSize = new Size(SystemInformation.VirtualScreen.Width, 2); - } - - protected override void OnPaintBackground(PaintEventArgs e) - { - base.OnPaintBackground(e); - - Graphics g = e.Graphics; - - g.FillRectangle(new SolidBrush(Color.FromArgb(213, 223, 229)), new Rectangle(this.DisplayRectangle.Left, 0, this.DisplayRectangle.Width, 1)); - g.FillRectangle(new SolidBrush(Color.FromArgb(249, 251, 253)), new Rectangle(this.DisplayRectangle.Left, 1, this.DisplayRectangle.Width, 1)); - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs deleted file mode 100644 index 09f7bbe..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; - -namespace RyzStudio.Windows.Forms -{ - public class TImageBox : System.Windows.Forms.PictureBox - { - public TImageBox() : base() - { - this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.ErrorImage = null; - this.InitialImage = null; - this.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - } - - protected override void OnCreateControl() - { - OnMouseLeave(null); - - base.OnCreateControl(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Image Image { get => base.Image; set => base.Image = value; } - - [Category("Appearance"), Browsable(true)] - public Color BackColorNormal { get; set; } = Color.Transparent; - - [Category("Appearance"), Browsable(true)] - public Color BackColorHover { get; set; } = Color.Transparent; - - [Category("Appearance"), Browsable(true)] - public Color BackColorSelected { get; set; } = Color.Transparent; - - [Category("Appearance"), Browsable(true)] - public Image ImageNormal { get; set; } - - [Category("Appearance"), Browsable(true)] - public Image ImageHover { get; set; } - - [Category("Appearance"), Browsable(true)] - public Image ImageSelected { get; set; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public Image NormalImage { get => this.ImageNormal; set => this.ImageNormal = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public Image HoverImage { get => this.ImageHover; set => this.ImageHover = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public Image SelectedImage { get => this.ImageSelected; set => this.ImageSelected = value; } - - public bool IsSelected { get; set; } = false; - - protected override void OnMouseEnter(EventArgs e) - { - this.Image = this.ImageHover; - this.BackColor = this.BackColorHover; - - base.OnMouseEnter(e); - } - - protected override void OnMouseLeave(EventArgs e) - { - this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal); - this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal); - - base.OnMouseLeave(e); - } - - protected override void OnLostFocus(EventArgs e) - { - this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal); - this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal); - - base.OnLostFocus(e); - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs deleted file mode 100644 index 8bb38d6..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace RyzStudio.Windows.Forms -{ - public class TUserControl : System.Windows.Forms.UserControl - { - - public TUserControl() : base() - { - - } - - [Browsable(false)] - public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } - - [Browsable(false)] - public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } - - [Browsable(false)] - public new BorderStyle BorderStyle { get => base.BorderStyle; set => base.BorderStyle = value; } - - [Browsable(false)] - public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; } - - [Browsable(false)] - public override Font Font { get => base.Font; set => base.Font = value; } - - [Browsable(false)] - public override Color ForeColor { get => base.ForeColor; set => base.ForeColor = value; } - - [Browsable(false)] - public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } - - [Browsable(false)] - public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } - - [Browsable(false)] - public override bool AllowDrop { get => base.AllowDrop; set => base.AllowDrop = value; } - - [Browsable(false)] - public override AutoValidate AutoValidate { get => base.AutoValidate; set => base.AutoValidate = value; } - - //[Browsable(false)] - //public override ContextMenuStrip ContextMenuStrip { get => base.ContextMenuStrip; set => base.ContextMenuStrip = value; } - - [Browsable(false)] - public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } - - [Browsable(false)] - public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } - - [Browsable(false)] - public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } - - [Browsable(false)] - public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } - - [Browsable(false)] - public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; } - - [Browsable(false)] - public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; } - - [Browsable(false)] - public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; } - - [Browsable(false)] - public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs deleted file mode 100644 index 4c9c89e..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs +++ /dev/null @@ -1,526 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RyzStudio.Windows.Forms -{ - public class ThreadControl - { - public static void Add(Control control, Control value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Controls.Add(value); - })); - } - else - { - control.Controls.Add(value); - } - } - - public static void Add(ListBox control, string value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Items.Add(value); - })); - } - else - { - control.Items.Add(value); - } - } - - //public static void Add(FlowLayoutPanel control, Control value) - //{ - // if (control.InvokeRequired) - // { - // control.Invoke(new MethodInvoker(() => { - // control.Controls.Add(value); - // })); - // } - // else - // { - // control.Controls.Add(value); - // } - //} - - public static int Add(TreeView control, TreeNode value) - { - int n = -1; - - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - n = control.Nodes.Add(value); - })); - } - else - { - n = control.Nodes.Add(value); - } - - return n; - } - - public static int Add(TreeNode control, TreeNode value) - { - int n = -1; - - if (control.TreeView.InvokeRequired) - { - control.TreeView.Invoke(new MethodInvoker(() => { - n = control.Nodes.Add(value); - })); - } - else - { - n = control.Nodes.Add(value); - } - - return n; - } - - public static int Add(DataGridView control, object[] value) - { - int n = -1; - - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - n = control.Rows.Add(value); - })); - } - else - { - n = control.Rows.Add(value); - } - - return n; - } - - public static int Add(DataGridView control, object[] value, object tag) - { - int n = -1; - - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - n = control.Rows.Add(value); - control.Rows[n].Tag = tag; - })); - } - else - { - n = control.Rows.Add(value); - control.Rows[n].Tag = tag; - } - - return n; - } - - public static TreeNode Add(TreeView control, string key, string text) - { - TreeNode rv = null; - - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - rv = control.Nodes.Add(key, text); - })); - } - else - { - rv = control.Nodes.Add(key, text); - } - - return rv; - } - - public static TreeNode Add(TreeNode control, string key, string text) - { - TreeNode rv = null; - - if (control.TreeView.InvokeRequired) - { - control.TreeView.Invoke(new MethodInvoker(() => { - rv = control.Nodes.Add(key, text); - })); - } - else - { - rv = control.Nodes.Add(key, text); - } - - return rv; - } - - public static void AddLine(RichTextBox control, string text) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Text += text + Environment.NewLine; - })); - } - else - { - control.Text += text + Environment.NewLine; - } - } - - public static void Clear(ListBox control) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Items.Clear(); - })); - } - else - { - control.Items.Clear(); - } - } - - public static void Clear(FlowLayoutPanel control) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Controls.Clear(); - })); - } - else - { - control.Controls.Clear(); - } - } - - public static void Clear(TreeView control) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Nodes.Clear(); - })); - } - else - { - control.Nodes.Clear(); - } - } - - public static void Clear(Label control) => SetText(control, string.Empty); - - public static void Clear(PictureBox control) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Image = null; - })); - } - else - { - control.Image = null; - } - } - - public static void Clear(DataGridView control) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Rows.Clear(); - })); - } - else - { - control.Rows.Clear(); - } - } - - public static List FindChildControl(Control control) where T : Control - { - List rs = new List(); - - foreach (Control item in control.Controls) - { - var ctr = item as T; - if (ctr == null) - { - rs.AddRange(FindChildControl(item)); - } - else - { - rs.Add(ctr); - } - } - - return rs; - } - - public static string GetText(Control control, bool doTrim = true) - { - string rv = string.Empty; - - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - rv = (doTrim ? control.Text?.Trim() : control.Text); - })); - } - else - { - rv = (doTrim ? control.Text?.Trim() : control.Text); - } - - return rv; - } - - public static void SetChecked(ToolStripMenuItem control, bool value) - { - if (control.GetCurrentParent().InvokeRequired) - { - control.GetCurrentParent().Invoke(new MethodInvoker(() => - { - control.Checked = value; - })); - } - else - { - control.Checked = value; - } - } - - public static void SetEnable(Control control, bool value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Enabled = value; - })); - } - else - { - control.Enabled = value; - } - } - - public static int GetValue(NumericUpDown sender) - { - int rv = 0; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { - rv = (int)sender.Value; - })); - } - else - { - rv = (int)sender.Value; - } - - return rv; - } - - public static string GetSelectedValue(ListBox sender) - { - string rv = string.Empty; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { - rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); - })); - } - else - { - rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); - } - - return rv; - } - - public static void SetHeight(Control control, int value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Height = value; - })); - } - else - { - control.Height = value; - } - } - - public static void SetLocation(Control control, Point value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Location = value; - })); - } - else - { - control.Location = value; - } - } - - public static void SetSize(Control control, int width, int height) => SetSize(control, new Size(width, height)); - - public static void SetSize(Control control, Size value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Size = value; - })); - } - else - { - control.Size = value; - } - } - - public static void SetText(Control control, string text) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Text = text; - })); - } - else - { - control.Text = text; - } - } - - public static void SetTopMost(Form control, bool value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.TopMost = value; - })); - } - else - { - control.TopMost = value; - } - } - - public static void SetValue(Control control, string value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Text = value; - })); - } - else - { - control.Text = value; - } - } - - public static void SetValue(PictureBox control, Image value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => - { - control.Image = value; - })); - } - else - { - control.Image = value; - } - } - - public static void SetVisible(Control control, bool value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Visible = value; - })); - } - else - { - control.Visible = value; - } - } - - public static void SetVisible(Form control, bool value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - if (value) - { - control.ShowInTaskbar = value; - control.Opacity = 100; - control.Visible = value; - } - else - { - control.Visible = value; - control.ShowInTaskbar = value; - control.Opacity = 0; - } - })); - } - else - { - if (value) - { - control.ShowInTaskbar = value; - control.Opacity = 100; - control.Visible = value; - } - else - { - control.Visible = value; - control.ShowInTaskbar = value; - control.Opacity = 0; - } - } - } - - public static void SetWidth(Control control, int value) - { - if (control.InvokeRequired) - { - control.Invoke(new MethodInvoker(() => { - control.Width = value; - })); - } - else - { - control.Width = value; - } - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs deleted file mode 100644 index 04e71d5..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs +++ /dev/null @@ -1,191 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class BorderlessForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BorderlessForm)); - this.label1 = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.area1 = new System.Windows.Forms.Panel(); - this.pictureBox4 = new RyzStudio.Windows.Forms.ImageBox(); - this.pictureBox2 = new RyzStudio.Windows.Forms.ImageBox(); - this.pictureBox1 = new RyzStudio.Windows.Forms.ImageBox(); - this.pictureBox3 = new RyzStudio.Windows.Forms.ImageBox(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241))))); - this.label1.Location = new System.Drawing.Point(1, 1); - this.label1.Name = "label1"; - this.label1.Padding = new System.Windows.Forms.Padding(48, 0, 0, 0); - this.label1.Size = new System.Drawing.Size(454, 48); - this.label1.TabIndex = 148; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick); - this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); - this.label1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown); - this.label1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); - this.label1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.label1_MouseUp); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNWSE; - this.panel1.Location = new System.Drawing.Point(594, 674); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(6, 6); - this.panel1.TabIndex = 150; - this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown); - this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); - this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp); - // - // area1 - // - this.area1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.area1.BackColor = System.Drawing.Color.Transparent; - this.area1.Cursor = System.Windows.Forms.Cursors.SizeNS; - this.area1.Location = new System.Drawing.Point(1, 674); - this.area1.Name = "area1"; - this.area1.Size = new System.Drawing.Size(592, 6); - this.area1.TabIndex = 152; - this.area1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseDown); - this.area1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseMove); - this.area1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseUp); - // - // pictureBox4 - // - this.pictureBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox4.BackColor = System.Drawing.Color.Transparent; - this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.pictureBox4.ErrorImage = null; - this.pictureBox4.HighlightImage = global::hiim.dply.Properties.Resources.form20_menu2; - this.pictureBox4.Image = global::hiim.dply.Properties.Resources.form20_menu; - this.pictureBox4.InitialImage = null; - this.pictureBox4.Location = new System.Drawing.Point(460, 11); - this.pictureBox4.Name = "pictureBox4"; - this.pictureBox4.NormalImage = global::hiim.dply.Properties.Resources.form20_menu; - this.pictureBox4.Size = new System.Drawing.Size(28, 28); - this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox4.TabIndex = 149; - this.pictureBox4.TabStop = false; - // - // pictureBox2 - // - this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox2.BackColor = System.Drawing.Color.Transparent; - this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.pictureBox2.ErrorImage = null; - this.pictureBox2.HighlightImage = global::hiim.dply.Properties.Resources.form20_maximise2; - this.pictureBox2.Image = global::hiim.dply.Properties.Resources.form20_maximise; - this.pictureBox2.InitialImage = null; - this.pictureBox2.Location = new System.Drawing.Point(528, 11); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.NormalImage = global::hiim.dply.Properties.Resources.form20_maximise; - this.pictureBox2.Size = new System.Drawing.Size(28, 28); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox2.TabIndex = 147; - this.pictureBox2.TabStop = false; - // - // pictureBox1 - // - this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox1.BackColor = System.Drawing.Color.Transparent; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.pictureBox1.ErrorImage = null; - this.pictureBox1.HighlightImage = global::hiim.dply.Properties.Resources.form20_minimise2; - this.pictureBox1.Image = global::hiim.dply.Properties.Resources.form20_minimise; - this.pictureBox1.InitialImage = null; - this.pictureBox1.Location = new System.Drawing.Point(494, 11); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.NormalImage = global::hiim.dply.Properties.Resources.form20_minimise; - this.pictureBox1.Size = new System.Drawing.Size(28, 28); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox1.TabIndex = 146; - this.pictureBox1.TabStop = false; - // - // pictureBox3 - // - this.pictureBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox3.BackColor = System.Drawing.Color.Transparent; - this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.pictureBox3.ErrorImage = null; - this.pictureBox3.HighlightImage = global::hiim.dply.Properties.Resources.form20_close2; - this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image"))); - this.pictureBox3.InitialImage = null; - this.pictureBox3.Location = new System.Drawing.Point(562, 11); - this.pictureBox3.Name = "pictureBox3"; - this.pictureBox3.NormalImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.NormalImage"))); - this.pictureBox3.Size = new System.Drawing.Size(28, 28); - this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox3.TabIndex = 145; - this.pictureBox3.TabStop = false; - // - // BorderlessForm - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.WhiteSmoke; - this.ClientSize = new System.Drawing.Size(600, 680); - this.Controls.Add(this.area1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.pictureBox4); - this.Controls.Add(this.label1); - this.Controls.Add(this.pictureBox2); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.pictureBox3); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "BorderlessForm"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - protected internal Forms.ImageBox pictureBox2; - protected internal Forms.ImageBox pictureBox1; - protected internal Forms.ImageBox pictureBox3; - protected internal System.Windows.Forms.Label label1; - protected internal Forms.ImageBox pictureBox4; - protected internal System.Windows.Forms.Panel panel1; - protected internal System.Windows.Forms.Panel area1; - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs deleted file mode 100644 index c5e4efe..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs +++ /dev/null @@ -1,410 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Design; - using System.Windows.Forms; - using Resources = hiim.dply.Properties.Resources; - - public partial class BorderlessForm : System.Windows.Forms.Form - { - protected bool isBusy = false; - - protected Color topFillColour = Color.FromArgb(15, 15, 15); - protected int topFillHeight = 48; - protected Color bottomFillColour = Color.FromArgb(15, 15, 15); - protected int bottomFillMargin = 19; - protected int bottomLeftMargin = 20; - protected int borderWidth = 1; - protected int menuFillWidth = 160; - protected Color menuFillColour = Color.FromArgb(179, 179, 179); - - private bool windowDragging = false; - private Point windowOffset = new Point(); - private Point windowSize = new Point(); - - public BorderlessForm() : base() - { - this.InitializeComponent(); - - this.BackColor = Color.FromArgb(247, 247, 247); - this.FormBorderStyle = FormBorderStyle.None; - this.Padding = new Padding(1); - - this.topFillColour = Color.FromArgb(51, 51, 51); - this.topFillHeight = 48; - this.bottomFillColour = Color.FromArgb(0, 152, 167); - this.bottomFillMargin = 6; - - pictureBox1.Click += pictureBox1_Click; - pictureBox2.Click += pictureBox2_Click; - pictureBox3.Click += pictureBox3_Click; - pictureBox4.Click += pictureBox4_Click; - - updatePictureBox2Image(); - } - - protected override void OnClosing(CancelEventArgs e) - { - base.OnClosing(e); - - if (this.IsBusy) - { - e.Cancel = true; - } - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - - Rectangle areaTop = new Rectangle(this.DisplayRectangle.Left, this.Padding.Top, this.DisplayRectangle.Width, topFillHeight); - Rectangle areaBottom = new Rectangle(this.DisplayRectangle.Left, (this.DisplayRectangle.Height - bottomFillMargin + this.Padding.Top), this.DisplayRectangle.Width, bottomFillMargin); - Rectangle areaBorder = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - borderWidth, this.ClientRectangle.Height - borderWidth); - - Rectangle areaMenu = new Rectangle(this.DisplayRectangle.Left, this.DisplayRectangle.Top + topFillHeight, menuFillWidth, (this.DisplayRectangle.Height - bottomFillMargin - topFillHeight)); - - // draw header - if (topFillHeight > 0) - { - g.FillRectangle(new SolidBrush(topFillColour), areaTop); - } - - // fill menu - g.FillRectangle(new SolidBrush(menuFillColour), areaMenu); - - // draw footer - if (bottomFillMargin > 0) - { - g.FillRectangle(new SolidBrush(bottomFillColour), areaBottom); - } - - // draw logo - if (this.TitleLogo != null) - { - g.DrawImageUnscaled(this.TitleLogo, this.Padding.Left, this.Padding.Top); - } - - if (this.Banner != null) - { - g.DrawImageUnscaled(this.Banner, this.Padding.Left + bottomLeftMargin, (this.DisplayRectangle.Height - this.Banner.Height - bottomFillMargin + this.Padding.Top), (this.DisplayRectangle.Width - (this.Padding.Left + this.Padding.Right)), this.Banner.Height); - } - - g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder); - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - updatePictureBox2Image(); - - this.Invalidate(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Padding { get => base.Padding; set => base.Padding = value; } - - [Category("Appearance"), Browsable(true)] - public string Description - { - get - { - return label1.Text?.Replace("\n", "\\n"); - } - set - { - label1.Text = value?.Replace("\\n", "\n"); - } - } - - [Category("Appearance"), Browsable(true)] - public Image TitleLogo { get; set; } - - [Category("Appearance"), Browsable(true)] - public Image Banner { get; set; } - - [Category("Appearance"), Browsable(true)] - public bool ShowMenuButton { get => pictureBox4.Visible; set => pictureBox4.Visible = value; } - - protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } - - private void pictureBox4_Click(object sender, System.EventArgs e) - { - //this.WindowState = FormWindowState.Minimized; - } - - private void pictureBox1_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - this.WindowState = FormWindowState.Minimized; - } - - private void pictureBox2_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - if (this.WindowState == FormWindowState.Maximized) - { - this.WindowState = FormWindowState.Normal; - pictureBox2.NormalImage = Resources.form20_maximise; - pictureBox2.HighlightImage = Resources.form20_maximise2; - } - else - { - this.WindowState = FormWindowState.Maximized; - pictureBox2.NormalImage = Resources.form20_restore; - pictureBox2.HighlightImage = Resources.form20_restore2; - } - } - - private void pictureBox3_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - this.Close(); - } - - public void SetValue(Label sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); - } - else - { - sender.Text = value; - } - } - - public void SetValue(GroupBox sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); - } - else - { - sender.Text = value; - } - } - - public void AddValue(ListBox sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Items.Add(value); })); - } - else - { - sender.Items.Add(value); - } - } - - public void AddControl(FlowLayoutPanel sender, Control value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => - { - sender.Controls.Add(value); - })); - } - else - { - sender.Controls.Add(value); - } - } - - public void ClearValues(ListBox sender) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Items.Clear(); })); - } - else - { - sender.Items.Clear(); - } - } - - public string GetValue(ListBox sender) - { - string rv = string.Empty; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); })); - } - else - { - rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); - } - - return rv; - } - - public string GetValue(TextBox sender) - { - string rv = string.Empty; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = sender.Text.Trim(); })); - } - else - { - rv = sender.Text.Trim(); - } - - return rv; - } - - public int GetValue(NumericUpDown sender) - { - int rv = 0; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = (int)sender.Value; })); - } - else - { - rv = (int)sender.Value; - } - - return rv; - } - - protected void updatePictureBox2Image() - { - if (this.WindowState == FormWindowState.Maximized) - { - pictureBox2.NormalImage = Resources.form20_restore; - pictureBox2.HighlightImage = Resources.form20_restore2; - } - else - { - pictureBox2.NormalImage = Resources.form20_maximise; - pictureBox2.HighlightImage = Resources.form20_maximise2; - } - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - Point currentScreenPos = PointToScreen(e.Location); - Location = new Point(currentScreenPos.X - windowOffset.X, currentScreenPos.Y - windowOffset.Y); - } - } - - private void label1_DoubleClick(object sender, EventArgs e) => pictureBox2_Click(sender, e); - - private void label1_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Middle) - { - this.TopMost = !this.TopMost; - } - } - - private void panel1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void panel1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(e.X - windowOffset.X + this.Width, e.Y - windowOffset.Y + this.Height); - } - } - - private void panel2_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel2_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void panel2_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(windowSize.X, e.Y - windowOffset.Y + this.Height); - } - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx deleted file mode 100644 index db173e1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - True - - - True - - - - - iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADnSURBVDhP1ZVB - DoIwEEW7whNo9Cri/QCv5Y4YEoTWxK71Gvqn+W2AgEkbNvxkYPgzfWkpKcpau9NaX/u+/yC+iSFjK3Ay - RdhcU0qUChc3s67rzipRGJ8T+JYHR2ctWYGzXSC8Gzbs3rbtgZaSXDyp0QoKnJBMBK8WH5vVCUhCcvbX - bAuivwxsmmaP2TxYfyE3zJ/Ij2wLYu3/OxQoah4kYedgIt8TDTTGnFgeyfcsAodLxn205Dlo4IRkInjr - bgq8dT+bWG0L6A/WnLVo4b1eyHDHV8WHNaJwvwAkJeI9KMSGjC201tkP+AimzgF8cMEAAAAASUVORK5C - YII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADnSURBVDhP1ZVB - DoIwEEW7whNo9Cri/QCv5Y4YEoTWxK71Gvqn+W2AgEkbNvxkYPgzfWkpKcpau9NaX/u+/yC+iSFjK3Ay - RdhcU0qUChc3s67rzipRGJ8T+JYHR2ctWYGzXSC8Gzbs3rbtgZaSXDyp0QoKnJBMBK8WH5vVCUhCcvbX - bAuivwxsmmaP2TxYfyE3zJ/Ij2wLYu3/OxQoah4kYedgIt8TDTTGnFgeyfcsAodLxn205Dlo4IRkInjr - bgq8dT+bWG0L6A/WnLVo4b1eyHDHV8WHNaJwvwAkJeI9KMSGjC201tkP+AimzgF8cMEAAAAASUVORK5C - YII= - - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs deleted file mode 100644 index 75f86a0..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs +++ /dev/null @@ -1,191 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class BorderlessToolForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblDescription = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.imgbxMenu = new RyzStudio.Windows.Forms.ImageBox(); - this.imgbxMaximise = new RyzStudio.Windows.Forms.ImageBox(); - this.imgbxMinimise = new RyzStudio.Windows.Forms.ImageBox(); - this.imgbxClose = new RyzStudio.Windows.Forms.ImageBox(); - this.area1 = new System.Windows.Forms.Panel(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxMenu)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxMaximise)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxMinimise)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // lblDescription - // - this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblDescription.BackColor = System.Drawing.Color.Transparent; - this.lblDescription.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblDescription.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241))))); - this.lblDescription.Location = new System.Drawing.Point(1, 1); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lblDescription.Size = new System.Drawing.Size(194, 30); - this.lblDescription.TabIndex = 148; - this.lblDescription.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lblDescription.DoubleClick += new System.EventHandler(this.label1_DoubleClick); - this.lblDescription.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); - this.lblDescription.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown); - this.lblDescription.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); - this.lblDescription.MouseUp += new System.Windows.Forms.MouseEventHandler(this.label1_MouseUp); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNWSE; - this.panel1.Location = new System.Drawing.Point(335, 595); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(5, 5); - this.panel1.TabIndex = 150; - this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown); - this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); - this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp); - // - // imgbxMenu - // - this.imgbxMenu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.imgbxMenu.BackColor = System.Drawing.Color.Transparent; - this.imgbxMenu.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imgbxMenu.ErrorImage = null; - this.imgbxMenu.HighlightImage = global::AppLauncher.Properties.Resources.form16_menu2; - this.imgbxMenu.Image = global::AppLauncher.Properties.Resources.form16_menu; - this.imgbxMenu.InitialImage = null; - this.imgbxMenu.Location = new System.Drawing.Point(224, 4); - this.imgbxMenu.Name = "imgbxMenu"; - this.imgbxMenu.NormalImage = global::AppLauncher.Properties.Resources.form16_menu; - this.imgbxMenu.Size = new System.Drawing.Size(24, 24); - this.imgbxMenu.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imgbxMenu.TabIndex = 149; - this.imgbxMenu.TabStop = false; - // - // imgbxMaximise - // - this.imgbxMaximise.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.imgbxMaximise.BackColor = System.Drawing.Color.Transparent; - this.imgbxMaximise.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imgbxMaximise.ErrorImage = null; - this.imgbxMaximise.HighlightImage = global::AppLauncher.Properties.Resources.form16_maximise2; - this.imgbxMaximise.Image = global::AppLauncher.Properties.Resources.form16_maximise; - this.imgbxMaximise.InitialImage = null; - this.imgbxMaximise.Location = new System.Drawing.Point(280, 4); - this.imgbxMaximise.Name = "imgbxMaximise"; - this.imgbxMaximise.NormalImage = global::AppLauncher.Properties.Resources.form16_maximise; - this.imgbxMaximise.Size = new System.Drawing.Size(24, 24); - this.imgbxMaximise.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imgbxMaximise.TabIndex = 147; - this.imgbxMaximise.TabStop = false; - // - // imgbxMinimise - // - this.imgbxMinimise.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.imgbxMinimise.BackColor = System.Drawing.Color.Transparent; - this.imgbxMinimise.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imgbxMinimise.ErrorImage = null; - this.imgbxMinimise.HighlightImage = global::AppLauncher.Properties.Resources.form16_minimise2; - this.imgbxMinimise.Image = global::AppLauncher.Properties.Resources.form16_minimise; - this.imgbxMinimise.InitialImage = null; - this.imgbxMinimise.Location = new System.Drawing.Point(252, 4); - this.imgbxMinimise.Name = "imgbxMinimise"; - this.imgbxMinimise.NormalImage = global::AppLauncher.Properties.Resources.form16_minimise; - this.imgbxMinimise.Size = new System.Drawing.Size(24, 24); - this.imgbxMinimise.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imgbxMinimise.TabIndex = 146; - this.imgbxMinimise.TabStop = false; - // - // imgbxClose - // - this.imgbxClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.imgbxClose.BackColor = System.Drawing.Color.Transparent; - this.imgbxClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imgbxClose.ErrorImage = null; - this.imgbxClose.HighlightImage = global::AppLauncher.Properties.Resources.form16_close2; - this.imgbxClose.Image = global::AppLauncher.Properties.Resources.form16_close; - this.imgbxClose.InitialImage = null; - this.imgbxClose.Location = new System.Drawing.Point(308, 4); - this.imgbxClose.Name = "imgbxClose"; - this.imgbxClose.NormalImage = global::AppLauncher.Properties.Resources.form16_close; - this.imgbxClose.Size = new System.Drawing.Size(24, 24); - this.imgbxClose.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imgbxClose.TabIndex = 145; - this.imgbxClose.TabStop = false; - // - // area1 - // - this.area1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.area1.BackColor = System.Drawing.Color.Transparent; - this.area1.Cursor = System.Windows.Forms.Cursors.SizeNS; - this.area1.Location = new System.Drawing.Point(0, 595); - this.area1.Name = "area1"; - this.area1.Size = new System.Drawing.Size(334, 5); - this.area1.TabIndex = 151; - this.area1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseDown); - this.area1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseMove); - this.area1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseUp); - // - // BorderlessToolForm - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.WhiteSmoke; - this.ClientSize = new System.Drawing.Size(340, 600); - this.Controls.Add(this.area1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.imgbxMenu); - this.Controls.Add(this.lblDescription); - this.Controls.Add(this.imgbxMaximise); - this.Controls.Add(this.imgbxMinimise); - this.Controls.Add(this.imgbxClose); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.MinimumSize = new System.Drawing.Size(40, 0); - this.Name = "BorderlessToolForm"; - ((System.ComponentModel.ISupportInitialize)(this.imgbxMenu)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxMaximise)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxMinimise)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - protected internal Forms.ImageBox imgbxMaximise; - protected internal Forms.ImageBox imgbxMinimise; - protected internal Forms.ImageBox imgbxClose; - protected internal System.Windows.Forms.Label lblDescription; - protected internal Forms.ImageBox imgbxMenu; - protected internal System.Windows.Forms.Panel panel1; - protected internal System.Windows.Forms.Panel area1; - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs deleted file mode 100644 index 3c17b0b..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs +++ /dev/null @@ -1,394 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using System; - using System.ComponentModel; - using System.Drawing; - using System.Drawing.Design; - using System.Windows.Forms; - using Resources = AppLauncher.Properties.Resources; - - public partial class BorderlessToolForm : System.Windows.Forms.Form - { - protected bool isBusy = false; - - protected Color topFillColour = Color.FromArgb(15, 15, 15); - protected int topFillHeight = 32; - protected int borderWidth = 1; - - private bool windowDragging = false; - private Point windowOffset = new Point(); - private Point windowSize = new Point(); - - public BorderlessToolForm() : base() - { - this.InitializeComponent(); - - this.BackColor = Color.FromArgb(246, 246, 246); - this.Padding = new Padding(1); - - this.topFillColour = Color.FromArgb(51, 51, 51); - this.topFillHeight = 32; - - this.BackColor = Color.FromArgb(179, 179, 179); - this.FormBorderStyle = FormBorderStyle.None; - - imgbxMinimise.Click += pictureBox1_Click; - imgbxMaximise.Click += pictureBox2_Click; - imgbxClose.Click += pictureBox3_Click; - imgbxMenu.Click += pictureBox4_Click; - - updatePictureBox2Image(); - } - - protected override void OnClosing(CancelEventArgs e) - { - base.OnClosing(e); - - if (this.IsBusy) - { - e.Cancel = true; - } - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - - Rectangle areaTop = new Rectangle(this.DisplayRectangle.Left, this.Padding.Top, this.DisplayRectangle.Width, topFillHeight); - Rectangle areaBorder = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - borderWidth, this.ClientRectangle.Height - borderWidth); - - // draw header - if (topFillHeight > 0) - { - g.FillRectangle(new SolidBrush(topFillColour), areaTop); - } - - // draw logo - //if (this.TitleLogo != null) - //{ - // g.DrawImageUnscaled(this.TitleLogo, this.Padding.Left, this.Padding.Top); - //} - - g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder); - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - updatePictureBox2Image(); - - this.Invalidate(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Padding { get => base.Padding; set => base.Padding = value; } - - [Category("Appearance"), Browsable(true)] - public string Description - { - get - { - return lblDescription.Text?.Replace("\n", "\\n"); - } - set - { - lblDescription.Text = value?.Replace("\\n", "\n"); - } - } - - //[Category("Appearance"), Browsable(true)] - //public Image TitleLogo { get; set; } - - [Category("Appearance"), Browsable(true)] - public Image Banner { get; set; } - - [Category("Appearance"), Browsable(true)] - public bool ShowMenuButton { get => imgbxMenu.Visible; set => imgbxMenu.Visible = value; } - - [Category("Appearance"), Browsable(true)] - public bool ShowMinimiseButton { get => imgbxMinimise.Visible; set => imgbxMinimise.Visible = value; } - - [Category("Appearance"), Browsable(true)] - public bool ShowMaximiseButton { get => imgbxMaximise.Visible; set => imgbxMaximise.Visible = value; } - - protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } - - private void pictureBox4_Click(object sender, System.EventArgs e) - { - //this.WindowState = FormWindowState.Minimized; - } - - private void pictureBox1_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - this.WindowState = FormWindowState.Minimized; - } - - private void pictureBox2_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - if (this.WindowState == FormWindowState.Maximized) - { - this.WindowState = FormWindowState.Normal; - imgbxMaximise.NormalImage = Resources.form16_maximise; - imgbxMaximise.HighlightImage = Resources.form16_maximise2; - } - else - { - this.WindowState = FormWindowState.Maximized; - imgbxMaximise.NormalImage = Resources.form16_restore; - imgbxMaximise.HighlightImage = Resources.form16_restore2; - } - } - - private void pictureBox3_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - this.Close(); - } - - public void SetValue(Label sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); - } - else - { - sender.Text = value; - } - } - - public void SetValue(GroupBox sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); - } - else - { - sender.Text = value; - } - } - - public void AddValue(ListBox sender, string value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Items.Add(value); })); - } - else - { - sender.Items.Add(value); - } - } - - public void AddControl(FlowLayoutPanel sender, Control value) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => - { - sender.Controls.Add(value); - })); - } - else - { - sender.Controls.Add(value); - } - } - - public void ClearValues(ListBox sender) - { - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { sender.Items.Clear(); })); - } - else - { - sender.Items.Clear(); - } - } - - public string GetValue(ListBox sender) - { - string rv = string.Empty; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); })); - } - else - { - rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); - } - - return rv; - } - - public string GetValue(TTextBox sender) - { - string rv = string.Empty; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = sender.Text.Trim(); })); - } - else - { - rv = sender.Text.Trim(); - } - - return rv; - } - - public int GetValue(NumericUpDown sender) - { - int rv = 0; - - if (sender.InvokeRequired) - { - sender.Invoke(new MethodInvoker(() => { rv = (int)sender.Value; })); - } - else - { - rv = (int)sender.Value; - } - - return rv; - } - - protected void updatePictureBox2Image() - { - if (this.WindowState == FormWindowState.Maximized) - { - imgbxMaximise.NormalImage = Resources.form16_restore; - imgbxMaximise.HighlightImage = Resources.form16_restore2; - } - else - { - imgbxMaximise.NormalImage = Resources.form16_maximise; - imgbxMaximise.HighlightImage = Resources.form16_maximise2; - } - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - Point currentScreenPos = PointToScreen(e.Location); - Location = new Point(currentScreenPos.X - windowOffset.X, currentScreenPos.Y - windowOffset.Y); - } - } - - private void label1_DoubleClick(object sender, EventArgs e) => pictureBox2_Click(sender, e); - - private void label1_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Middle) - { - this.TopMost = !this.TopMost; - } - } - - private void panel1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void panel1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(e.X - windowOffset.X + this.Width, e.Y - windowOffset.Y + this.Height); - } - } - - private void panel2_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel2_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - - } - - private void panel2_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(windowSize.X, e.Y - windowOffset.Y + this.Height); - } - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx deleted file mode 100644 index 8c98a25..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - True - - - True - - - True - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs deleted file mode 100644 index 7bd7916..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs +++ /dev/null @@ -1,140 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using System; - using System.ComponentModel; - using System.Drawing; - - public partial class TButton : RyzStudio.Windows.ThemedForms.TUserControl - { - public class ButtonStyle - { - public Color BackColour { get; set; } = Color.Transparent; - public Color PenColour { get; set; } = Color.Transparent; - public Image ForeImage { get; set; } = null; - } - - public enum ButtonState - { - Idle = 0, - Hover, - Down - } - - protected ButtonState controlState = ButtonState.Idle; - protected bool isSelected = false; - - public TButton() : base() - { - InitializeComponent(); - - label1.ImageAlign = ContentAlignment.MiddleCenter; - - this.StyleDefault = new ButtonStyle() { BackColour = Color.White, PenColour = Color.Black, ForeImage = this.DefaultImage }; - this.StyleDown = new ButtonStyle() { BackColour = Color.FromArgb(0, 183, 209), PenColour = Color.Black, ForeImage = this.DownImage }; - this.StyleOver = new ButtonStyle() { BackColour = Color.FromArgb(108, 101, 196), PenColour = Color.White, ForeImage = this.OverImage }; - this.StyleSelected = new ButtonStyle() { BackColour = Color.FromArgb(51, 51, 51), PenColour = Color.White, ForeImage = this.OverImage }; - - label1.Click += delegate { this.OnClick(null); }; - label1.MouseEnter += delegate { this.VisualState = ButtonState.Hover; }; - label1.MouseLeave += delegate { this.VisualState = ButtonState.Idle; }; - label1.MouseDown += delegate { this.VisualState = ButtonState.Down; }; - label1.MouseUp += delegate { this.VisualState = ButtonState.Idle; }; - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - - this.VisualState = ButtonState.Idle; - } - - protected ButtonState VisualState - { - get { return controlState; } - set - { - switch (value) - { - case ButtonState.Idle: - if (this.VisualState == ButtonState.Down) - { - updateButton(StyleOver); - } - else - { - if (this.IsSelected) - { - updateButton(StyleSelected); - } - else - { - updateButton(StyleDefault); - } - } - - break; - case ButtonState.Hover: - updateButton(StyleOver); - break; - case ButtonState.Down: - updateButton(StyleDown); - break; - default: - if (this.IsSelected) - { - updateButton(StyleSelected); - } - else - { - updateButton(StyleDefault); - } - - break; - } - - controlState = value; - } - } - - protected void updateButton(ButtonStyle style) - { - label1.ForeColor = style.PenColour; - label1.BackColor = style.BackColour; - label1.Image = style.ForeImage; - } - - [Browsable(true)] - [Category("Appearance")] - public string LabelText { get => label1.Text; set => label1.Text = value; } - - [Browsable(true)] - [Category("Appearance")] - public Image OverImage { get; set; } = null; - - [Browsable(true)] - [Category("Appearance")] - public Image DownImage { get; set; } = null; - - [Browsable(true)] - [Category("Appearance")] - public Image DefaultImage { get; set; } = null; - - public bool IsSelected - { - get => isSelected; - set - { - isSelected = value; - - this.VisualState = this.VisualState; - } - } - - protected ButtonStyle StyleOver { get; set; } = new ButtonStyle(); - protected ButtonStyle StyleDown { get; set; } = new ButtonStyle(); - protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle(); - protected ButtonStyle StyleSelected { get; set; } = new ButtonStyle(); - - public void PerformClick() => this.OnClick(null); - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs deleted file mode 100644 index 5bf79d6..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TButton - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Fill; - this.label1.Location = new System.Drawing.Point(4, 4); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(121, 25); - this.label1.TabIndex = 0; - this.label1.Text = "label1"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // Button - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.label1); - this.Name = "Button"; - this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.Size = new System.Drawing.Size(128, 32); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Label label1; - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx deleted file mode 100644 index 1af7de1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs deleted file mode 100644 index dbe7d77..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs +++ /dev/null @@ -1,127 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using RyzStudio.Drawing; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public partial class TButtonTextBox : RyzStudio.Windows.ThemedForms.TUserControl - { - protected readonly Padding textboxPadding = new Padding(6, 6, 6, 6); - - public TButtonTextBox() : base() - { - InitializeComponent(); - - //this.Margin = new Padding(10, 6, 10, 6); - this.Margin = new Padding(10, 3, 3, 3); - this.Font = new Font(this.Font, FontStyle.Regular); - - textBox1.Font = this.Font; - textBox1.Left = this.Margin.Left; - textBox1.PreviewKeyDown += textBox_PreviewKeyDown; - - imageBox1.Click += imageBox1_Click; - - OnResize(null); - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); - - imageBox1.Width = 18; - imageBox1.Height = textBox1.Height + textboxPadding.Top + textboxPadding.Bottom; - imageBox1.Left = this.Width - (this.Margin.Right + b + imageBox1.Width); - - textBox1.Left = this.Margin.Left; - textBox1.Width = imageBox1.Left - textBox1.Left - 3; - textBox1.Top = (int)Math.Ceiling(decimal.Divide((this.Height - textBox1.Height), 2)); - } - - protected override void OnGotFocus(EventArgs e) - { - base.OnGotFocus(e); - - textBox1.Focus(); - } - - protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Enter: - if (this.SubmitButton != null) - { - this.SubmitButton.PerformClick(); - } - - break; - case Keys.Escape: - close(); - break; - default: break; - } - } - - protected virtual void imageBox1_Click(object sender, EventArgs e) => OnButtonClick?.Invoke(sender, e); - - [Category("Action")] - [Browsable(true)] - public event EventHandler OnButtonClick; - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public Forms.TImageBox InnerImageBox { get => imageBox1; set => imageBox1 = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; } - - [Category("Appearance"), Browsable(true)] - public Image NormalImage { get => imageBox1.ImageNormal; set => imageBox1.ImageNormal = value; } - - [Category("Appearance"), Browsable(true)] - public Image HighlightImage { get => imageBox1.ImageHover; set => imageBox1.ImageHover = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public new string Text - { - get => textBox1.Text; - set - { - textBox1.Text = value; - textBox1.SelectionStart = textBox1.Text.Length; - } - } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public TButton SubmitButton { get; set; } = null; - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Margin { get => base.Margin; set => base.Margin = value; } - - protected override void updateBackground(Graphics g, ThemeStyle style) - { - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); - - Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); - g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); - g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs deleted file mode 100644 index 6a37b71..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs +++ /dev/null @@ -1,81 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TButtonTextBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.textBox1 = new System.Windows.Forms.TextBox(); - this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.BackColor = System.Drawing.SystemColors.Window; - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox1.HideSelection = false; - this.textBox1.Location = new System.Drawing.Point(7, 7); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(68, 13); - this.textBox1.TabIndex = 0; - // - // imageBox1 - // - this.imageBox1.BackColor = System.Drawing.Color.Transparent; - this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox1.ErrorImage = null; - this.imageBox1.ImageHover = null; - this.imageBox1.Image = null; - this.imageBox1.InitialImage = null; - this.imageBox1.Location = new System.Drawing.Point(107, 4); - this.imageBox1.Name = "imageBox1"; - this.imageBox1.ImageNormal = null; - this.imageBox1.Size = new System.Drawing.Size(18, 25); - this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox1.TabIndex = 1; - this.imageBox1.TabStop = false; - // - // TextBox2 - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.Controls.Add(this.imageBox1); - this.Controls.Add(this.textBox1); - this.Name = "TextBox2"; - this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.Size = new System.Drawing.Size(128, 32); - ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox1; - private Forms.TImageBox imageBox1; - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx deleted file mode 100644 index 1af7de1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs deleted file mode 100644 index 5ee7579..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs +++ /dev/null @@ -1,96 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TDialogForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.panel1 = new System.Windows.Forms.Panel(); - this.imgbxClose = new RyzStudio.Windows.Forms.TImageBox(); - this.area1 = new System.Windows.Forms.Panel(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNWSE; - this.panel1.Location = new System.Drawing.Point(335, 595); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(5, 5); - this.panel1.TabIndex = 150; - // - // imgbxClose - // - this.imgbxClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.imgbxClose.BackColor = System.Drawing.Color.Transparent; - this.imgbxClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imgbxClose.ErrorImage = null; - this.imgbxClose.ImageHover = global::AppLauncher.Properties.Resources16.close2; - this.imgbxClose.Image = null; - this.imgbxClose.InitialImage = null; - this.imgbxClose.Location = new System.Drawing.Point(308, 4); - this.imgbxClose.Name = "imgbxClose"; - this.imgbxClose.ImageNormal = global::AppLauncher.Properties.Resources16.close; - this.imgbxClose.Size = new System.Drawing.Size(24, 24); - this.imgbxClose.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imgbxClose.TabIndex = 145; - this.imgbxClose.TabStop = false; - // - // area1 - // - this.area1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.area1.BackColor = System.Drawing.Color.Transparent; - this.area1.Cursor = System.Windows.Forms.Cursors.SizeNS; - this.area1.Location = new System.Drawing.Point(0, 595); - this.area1.Name = "area1"; - this.area1.Size = new System.Drawing.Size(334, 5); - this.area1.TabIndex = 151; - // - // TDialogForm - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(249)))), ((int)(((byte)(250))))); - this.ClientSize = new System.Drawing.Size(340, 600); - this.Controls.Add(this.area1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.imgbxClose); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.MinimumSize = new System.Drawing.Size(40, 0); - this.Name = "TDialogForm"; - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - protected internal Forms.TImageBox imgbxClose; - protected internal System.Windows.Forms.Panel panel1; - protected internal System.Windows.Forms.Panel area1; - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs deleted file mode 100644 index d85c999..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs +++ /dev/null @@ -1,136 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public partial class TDialogForm : System.Windows.Forms.Form - { - protected readonly Color borderColour = Color.FromArgb(77, 84, 100); - protected readonly int borderWidth = 1; - - protected readonly Color backColour = Color.FromArgb(254, 254, 254); - - protected readonly Color titleBarColour = Color.FromArgb(152, 175, 206); - protected readonly Color titleBarForeColour = Color.White; - protected readonly Font titleBarFont = new Font("Segoe UI", 8.25F, FontStyle.Bold, GraphicsUnit.Point, 0); - protected readonly int titleBarHeight = 32; - - private bool isDragging = false; - private Point startPosition = new Point(); - - protected bool isBusy = false; - - public TDialogForm() : base() - { - this.InitializeComponent(); - - this.FormBorderStyle = FormBorderStyle.None; - this.ShowInTaskbar = false; - this.TopMost = true; - - imgbxClose.Click += pictureBox3_Click; - - this.BackColor = backColour; - this.Padding = new Padding(0); - } - - protected override void OnClosing(CancelEventArgs e) - { - base.OnClosing(e); - - if (this.IsBusy) - { - e.Cancel = true; - } - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - - if (e.Button == MouseButtons.Left) - { - isDragging = true; - startPosition = e.Location; - } - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - - if (isDragging) - { - int x = (this.Location.X + (e.Location.X - startPosition.X)); - int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); - - this.Location = new Point(x, y); - } - } - - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - - isDragging = false; - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth)); - - // border - g.DrawRectangle(new Pen(borderColour, borderWidth), area); - g.DrawLine(new Pen(borderColour, 1), this.DisplayRectangle.X, (titleBarHeight + 1), this.DisplayRectangle.Width, (titleBarHeight + 1)); - - area.Inflate((-1 * borderWidth), (-1 * borderWidth)); - - g.FillRectangle(new SolidBrush(titleBarColour), area.X, area.Y, (area.Width + area.X), titleBarHeight); - - TextRenderer.DrawText(g, this.Title, titleBarFont, new Point(12, 11), titleBarForeColour); - - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - this.Invalidate(); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public override Color BackColor { get => base.BackColor; set => base.BackColor = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Padding { get => base.Padding; set => base.Padding = value; } - - [Category("Appearance"), Browsable(true)] - public string Title { get; set; } - - protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } - - private void pictureBox3_Click(object sender, System.EventArgs e) - { - MouseEventArgs mouseEvent = (MouseEventArgs)e; - if (mouseEvent != null) - { - if (mouseEvent.Button != MouseButtons.Left) - { - return; - } - } - - this.Close(); - } - - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx deleted file mode 100644 index 6e0c1de..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs deleted file mode 100644 index 0c2b9ae..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.IO; -using System.Windows.Forms; -using Resources = AppLauncher.Properties.Resources16; - -namespace RyzStudio.Windows.ThemedForms -{ - public class TFolderTextBox : TButtonTextBox - { - public TFolderTextBox() : base() - { - this.NormalImage = Resources.folder; - this.HighlightImage = Resources.folder2; - this.Text = string.Empty; - } - - public FolderBrowserDialog FolderDialog { get; set; } = null; - - protected override void imageBox1_Click(object sender, EventArgs e) - { - if (this.FolderDialog == null) - { - this.FolderDialog = new FolderBrowserDialog(); - this.FolderDialog.Description = "Choose a directory"; - } - - if (!string.IsNullOrWhiteSpace(this.Text)) - { - if (Directory.Exists(this.Text)) - { - this.FolderDialog.SelectedPath = this.Text; - } - } - - if (this.FolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - this.Text = this.FolderDialog.SelectedPath; - } - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs deleted file mode 100644 index ed785eb..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs +++ /dev/null @@ -1,232 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using RyzStudio.Drawing; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public partial class TListBox : RyzStudio.Windows.ThemedForms.TUserControl - { - protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2); - - public TListBox() : base() - { - InitializeComponent(); - - this.Font = new Font(this.Font, FontStyle.Regular); - this.Margin = new Padding(10, 4, 10, 4); - - listBox1.Font = this.Font; - listBox1.BorderStyle = BorderStyle.None; - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - //int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - //this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); - } - - protected override void OnGotFocus(EventArgs e) - { - base.OnGotFocus(e); - - listBox1.Focus(); - } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public System.Windows.Forms.ListBox ListBox { get => listBox1; set => listBox1 = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public TButton SubmitButton { get; set; } = null; - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Margin { get => base.Margin; set => base.Margin = value; } - - [Category("Action")] - [Browsable(true)] - public event EventHandler OnAdd; - - [Category("Action")] - [Browsable(true)] - public event EventHandler OnEdit; - - protected override void updateBackground(Graphics g, ThemeStyle style) - { - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); - - Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); - g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); - g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); - } - - /// - /// Add - /// - /// - /// - private void imageBox1_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - this.OnAdd?.Invoke(sender, e); - } - - /// - /// Edit - /// - /// - /// - private void imageBox5_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - this.OnEdit?.Invoke(sender, e); - } - - /// - /// Remove - /// - /// - /// - private void imageBox2_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - if (listBox1.SelectedIndex < 0) - { - return; - } - - int pos = listBox1.SelectedIndex; - - listBox1.Items.RemoveAt(pos); - - if (pos > (listBox1.Items.Count - 1)) - { - pos = (listBox1.Items.Count - 1); - } - - listBox1.SelectedIndex = pos; - } - - /// - /// Move up - /// - /// - /// - private void imageBox3_MouseClick(object sender, MouseEventArgs e) - { - if (e != null) - { - if (e.Button != MouseButtons.Left) - { - return; - } - } - - if (listBox1.SelectedIndex <= 0) - { - return; - } - - if (listBox1.SelectedItem == null) - { - return; - } - - object item = listBox1.SelectedItem; - int pos = listBox1.SelectedIndex; - - listBox1.Items.RemoveAt(pos); - listBox1.Items.Insert((pos - 1), item); - - listBox1.SelectedIndex = (pos - 1); - } - - /// - /// Move down - /// - /// - /// - private void imageBox4_MouseClick(object sender, MouseEventArgs e) - { - if (e != null) - { - if (e.Button != MouseButtons.Left) - { - return; - } - } - - if (listBox1.SelectedIndex >= (listBox1.Items.Count - 1)) - { - return; - } - - if (listBox1.SelectedItem == null) - { - return; - } - - object item = listBox1.SelectedItem; - int pos = listBox1.SelectedIndex; - - listBox1.Items.RemoveAt(pos); - listBox1.Items.Insert((pos + 1), item); - - listBox1.SelectedIndex = (pos + 1); - } - - private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) => imageBox5_MouseClick(sender, e); - - private void listBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Enter: - if (this.SubmitButton != null) - { - this.SubmitButton.PerformClick(); - } - - break; - case Keys.Escape: - close(); - break; - case Keys.Up: - if (e.Alt) - { - imageBox3_MouseClick(sender, null); - } - - break; - case Keys.Down: - if (e.Alt) - { - imageBox4_MouseClick(sender, null); - } - - break; - default: break; - } - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs deleted file mode 100644 index 81bff0f..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs +++ /dev/null @@ -1,182 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TListBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.listBox1 = new System.Windows.Forms.ListBox(); - this.imageBox5 = new RyzStudio.Windows.Forms.TImageBox(); - this.imageBox4 = new RyzStudio.Windows.Forms.TImageBox(); - this.imageBox3 = new RyzStudio.Windows.Forms.TImageBox(); - this.imageBox2 = new RyzStudio.Windows.Forms.TImageBox(); - this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit(); - this.SuspendLayout(); - // - // listBox1 - // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.FormattingEnabled = true; - this.listBox1.Location = new System.Drawing.Point(4, 4); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(121, 82); - this.listBox1.TabIndex = 0; - this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick); - this.listBox1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listBox1_PreviewKeyDown); - // - // imageBox5 - // - this.imageBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.imageBox5.BackColor = System.Drawing.Color.Transparent; - this.imageBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox5.ErrorImage = null; - this.imageBox5.ImageHover = global::AppLauncher.Properties.Resources16.edit2; - this.imageBox5.Image = global::AppLauncher.Properties.Resources16.edit; - this.imageBox5.InitialImage = null; - this.imageBox5.Location = new System.Drawing.Point(52, 94); - this.imageBox5.Name = "imageBox5"; - this.imageBox5.ImageNormal = global::AppLauncher.Properties.Resources16.edit; - this.imageBox5.Size = new System.Drawing.Size(18, 25); - this.imageBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox5.TabIndex = 6; - this.imageBox5.TabStop = false; - this.imageBox5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick); - this.imageBox5.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick); - // - // imageBox4 - // - this.imageBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.imageBox4.BackColor = System.Drawing.Color.Transparent; - this.imageBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox4.ErrorImage = null; - this.imageBox4.ImageHover = global::AppLauncher.Properties.Resources16.arrow_down2; - this.imageBox4.Image = global::AppLauncher.Properties.Resources16.arrow_down; - this.imageBox4.InitialImage = null; - this.imageBox4.Location = new System.Drawing.Point(100, 94); - this.imageBox4.Name = "imageBox4"; - this.imageBox4.ImageNormal = global::AppLauncher.Properties.Resources16.arrow_down; - this.imageBox4.Size = new System.Drawing.Size(18, 25); - this.imageBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox4.TabIndex = 5; - this.imageBox4.TabStop = false; - this.imageBox4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick); - this.imageBox4.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick); - // - // imageBox3 - // - this.imageBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.imageBox3.BackColor = System.Drawing.Color.Transparent; - this.imageBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox3.ErrorImage = null; - this.imageBox3.ImageHover = global::AppLauncher.Properties.Resources16.arrow_up2; - this.imageBox3.Image = global::AppLauncher.Properties.Resources16.arrow_up; - this.imageBox3.InitialImage = null; - this.imageBox3.Location = new System.Drawing.Point(76, 94); - this.imageBox3.Name = "imageBox3"; - this.imageBox3.ImageNormal = global::AppLauncher.Properties.Resources16.arrow_up; - this.imageBox3.Size = new System.Drawing.Size(18, 25); - this.imageBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox3.TabIndex = 4; - this.imageBox3.TabStop = false; - this.imageBox3.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick); - this.imageBox3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick); - // - // imageBox2 - // - this.imageBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.imageBox2.BackColor = System.Drawing.Color.Transparent; - this.imageBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox2.ErrorImage = null; - this.imageBox2.ImageHover = global::AppLauncher.Properties.Resources16.minus2; - this.imageBox2.Image = global::AppLauncher.Properties.Resources16.minus; - this.imageBox2.InitialImage = null; - this.imageBox2.Location = new System.Drawing.Point(28, 94); - this.imageBox2.Name = "imageBox2"; - this.imageBox2.ImageNormal = global::AppLauncher.Properties.Resources16.minus; - this.imageBox2.Size = new System.Drawing.Size(18, 25); - this.imageBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox2.TabIndex = 3; - this.imageBox2.TabStop = false; - this.imageBox2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox2_MouseClick); - this.imageBox2.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox2_MouseClick); - // - // imageBox1 - // - this.imageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.imageBox1.BackColor = System.Drawing.Color.Transparent; - this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.imageBox1.ErrorImage = null; - this.imageBox1.ImageHover = global::AppLauncher.Properties.Resources16.plus2; - this.imageBox1.Image = global::AppLauncher.Properties.Resources16.plus; - this.imageBox1.InitialImage = null; - this.imageBox1.Location = new System.Drawing.Point(4, 94); - this.imageBox1.Name = "imageBox1"; - this.imageBox1.ImageNormal = global::AppLauncher.Properties.Resources16.plus; - this.imageBox1.Size = new System.Drawing.Size(18, 25); - this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.imageBox1.TabIndex = 2; - this.imageBox1.TabStop = false; - this.imageBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick); - this.imageBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick); - // - // TListBox - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.Controls.Add(this.imageBox5); - this.Controls.Add(this.imageBox4); - this.Controls.Add(this.imageBox3); - this.Controls.Add(this.imageBox2); - this.Controls.Add(this.imageBox1); - this.Controls.Add(this.listBox1); - this.Name = "TListBox"; - this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.Size = new System.Drawing.Size(128, 120); - ((System.ComponentModel.ISupportInitialize)(this.imageBox5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ListBox listBox1; - private Forms.TImageBox imageBox1; - private Forms.TImageBox imageBox2; - private Forms.TImageBox imageBox3; - private Forms.TImageBox imageBox4; - private Forms.TImageBox imageBox5; - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx deleted file mode 100644 index 1af7de1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs deleted file mode 100644 index 16a0d11..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.IO; -using System.Windows.Forms; -using Resources = AppLauncher.Properties.Resources16; - -namespace RyzStudio.Windows.ThemedForms -{ - public class TOpenFileTextBox : TButtonTextBox - { - public TOpenFileTextBox() : base() - { - this.NormalImage = Resources.file; - this.HighlightImage = Resources.file2; - this.Text = string.Empty; - } - - public OpenFileDialog FileDialog { get; set; } = null; - - protected override void imageBox1_Click(object sender, EventArgs e) - { - if (this.FileDialog == null) - { - this.FileDialog = new OpenFileDialog(); - this.FileDialog.Title = "Choose a file"; - this.FileDialog.Filter = "All files|*"; - } - - if (!string.IsNullOrWhiteSpace(this.Text)) - { - if (File.Exists(this.Text)) - { - this.FileDialog.InitialDirectory = Path.GetDirectoryName(this.Text); - } - } - - if (this.FileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - this.Text = this.FileDialog.FileName; - } - } - - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs deleted file mode 100644 index 255f98c..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs +++ /dev/null @@ -1,98 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using RyzStudio.Drawing; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public partial class TPickerBox : RyzStudio.Windows.ThemedForms.TUserControl - { - protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2); - - public TPickerBox() : base() - { - InitializeComponent(); - - this.Font = new Font(this.Font, FontStyle.Regular); - this.Margin = new Padding(10, 4, 10, 4); - - comboBox1.Font = this.Font; - comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; - comboBox1.PreviewKeyDown += textBox_PreviewKeyDown; - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); - } - - protected override void OnGotFocus(EventArgs e) - { - base.OnGotFocus(e); - - comboBox1.Focus(); - } - - protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Enter: - if (this.SubmitButton != null) - { - this.SubmitButton.PerformClick(); - } - - break; - case Keys.Escape: - close(); - break; - default: break; - } - } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public System.Windows.Forms.ComboBox ComboBox { get => comboBox1; set => comboBox1 = value; } - - //[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - //[Category("Appearance")] - //public new string Text - //{ - // get => textBox1.Text; - // set - // { - // textBox1.Text = value; - // textBox1.SelectionStart = textBox1.Text.Length; - // } - //} - - //[Browsable(true)] - //[Category("Appearance")] - //public ComboBox.ObjectCollection Items { get => comboBox1.Items; set => comboBox1.Items = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public TButton SubmitButton { get; set; } = null; - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Margin { get => base.Margin; set => base.Margin = value; } - - protected override void updateBackground(Graphics g, ThemeStyle style) - { - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); - - Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); - g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); - g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs deleted file mode 100644 index 760329f..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TPickerBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(4, 4); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(121, 21); - this.comboBox1.TabIndex = 0; - // - // PickerBox - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.Controls.Add(this.comboBox1); - this.Name = "PickerBox"; - this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.Size = new System.Drawing.Size(128, 32); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx deleted file mode 100644 index 1af7de1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs deleted file mode 100644 index 48a68d8..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs +++ /dev/null @@ -1,96 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - using RyzStudio.Drawing; - using System; - using System.ComponentModel; - using System.Drawing; - using System.Windows.Forms; - - public partial class TTextBox : RyzStudio.Windows.ThemedForms.TUserControl - { - protected readonly Padding textboxPadding = new Padding(6, 6, 6, 6); - - public TTextBox() : base() - { - InitializeComponent(); - - this.Margin = new Padding(10, 6, 10, 6); - this.Font = new Font(this.Font, FontStyle.Regular); - - textBox1.Font = this.Font; - textBox1.PreviewKeyDown += textBox_PreviewKeyDown; - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); - } - - protected override void OnGotFocus(EventArgs e) - { - base.OnGotFocus(e); - - textBox1.Focus(); - } - - protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Enter: - if (this.SubmitButton != null) - { - this.SubmitButton.PerformClick(); - } - - break; - case Keys.Escape: - close(); - break; - default: break; - } - } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public new string Text - { - get => textBox1.Text; - set - { - textBox1.Text = value; - textBox1.SelectionStart = textBox1.Text.Length; - } - } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; } - - [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] - [Category("Appearance")] - public TButton SubmitButton { get; set; } = null; - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } } - - protected override void updateBackground(Graphics g, ThemeStyle style) - { - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); - - Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); - g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); - g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); - } - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs deleted file mode 100644 index 752557d..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs +++ /dev/null @@ -1,60 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TTextBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBox1.HideSelection = false; - this.textBox1.Location = new System.Drawing.Point(4, 4); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(121, 13); - this.textBox1.TabIndex = 0; - // - // TextBox - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.Controls.Add(this.textBox1); - this.Name = "TextBox"; - this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.Size = new System.Drawing.Size(128, 32); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox1; - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx deleted file mode 100644 index 1af7de1..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs deleted file mode 100644 index 56bea24..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; -using RyzStudio.Drawing; -using System.ComponentModel; - -namespace RyzStudio.Windows.ThemedForms -{ - public partial class TUserControl : System.Windows.Forms.UserControl - { - public class ThemeStyle - { - public int BorderWidth; - public int BorderRadius; - public int BorderPadding; - public Color BorderColour; - public Color BackColour; - public Color ForeColour; - - public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour) - { - this.BorderWidth = borderWidth; - this.BorderRadius = borderRadius; - this.BorderPadding = borderPadding; - this.BorderColour = borderColour; - this.BackColour = backColour; - this.ForeColour = Color.Black; - } - - public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour, Color foreColour) - { - this.BorderWidth = borderWidth; - this.BorderRadius = borderRadius; - this.BorderPadding = borderPadding; - this.BorderColour = borderColour; - this.BackColour = backColour; - this.ForeColour = foreColour; - } - } - - protected ThemeStyle styleActive = new ThemeStyle(1, 3, 2, Color.FromArgb(212, 212, 212), Color.White); - - public TUserControl() - { - InitializeComponent(); - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - - this.BackColor = Color.Transparent; - } - - protected override void OnPaintBackground(PaintEventArgs e) - { - base.OnPaintBackground(e); - - Graphics g = e.Graphics; - //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; - //g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; - //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; - //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; - - updateBackground(g, styleActive); - } - - [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Padding Padding { get => base.Padding; set => base.Padding = value; } - - protected virtual void updateBackground(Graphics g, ThemeStyle style) - { - int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; - - this.Padding = new Padding(b, b, (b - 1), (b - 1)); - - Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); - g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); - g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); - } - - protected virtual void close() - { - if (this.Parent == null) - { - return; - } - - if (this.Parent is Form) - { - (this.Parent as Form).Close(); - return; - } - - if (this.Parent.GetType().IsSubclassOf(typeof(System.Windows.Forms.Form))) - { - System.Windows.Forms.Form parentForm = (System.Windows.Forms.Form)this.Parent; - if (parentForm != null) - { - parentForm.Close(); - } - } - } - - } -} \ No newline at end of file diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs deleted file mode 100644 index 6f57544..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - partial class TUserControl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - } - - #endregion - } -} diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs deleted file mode 100644 index 89225ee..0000000 --- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace RyzStudio.Windows.ThemedForms -{ - public class TYesNoPickerBox : TPickerBox - { - - public TYesNoPickerBox() : base() - { - this.ComboBox.Items.Clear(); - - this.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); - if (this.ComboBox.Items.Count > 0) this.ComboBox.SelectedIndex = 0; - } - - public bool Value { get => (this.ComboBox.SelectedIndex == 1); set =>this.ComboBox.SelectedIndex = (value ? 1 : 0); } - - } -} diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj deleted file mode 100644 index 39bc8d3..0000000 --- a/FizzyLauncher.csproj +++ /dev/null @@ -1,171 +0,0 @@ - - - - - Debug - AnyCPU - {66C1C75C-3612-4D23-B937-C3DE0D653292} - WinExe - AppLauncher - fizzylauncher - v4.8 - 512 - false - true - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - none - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - - - favicon.ico - - - - packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - - - - - - - - - - - - - - - - Form - - - MainForm.cs - - - - - - True - True - Resources.resx - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - UserControl - - - TTilePanelLayout.cs - - - UserControl - - - TTilePanel.cs - - - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - AddTileForm.cs - - - EditGroupForm.cs - - - AddListTileForm.cs - - - EditListTileForm.cs - - - OptionsForm.cs - - - EditTileForm.cs - - - TTilePanelLayout.cs - - - TTilePanel.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - {d9a49347-583f-41b4-afe1-63ec80bbdb38} - FizzyLauncher.UI - - - - - \ No newline at end of file diff --git a/FizzyLauncher.csproj.user b/FizzyLauncher.csproj.user deleted file mode 100644 index 6cbe588..0000000 --- a/FizzyLauncher.csproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - - ProjectFiles - - \ No newline at end of file diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs deleted file mode 100644 index b088587..0000000 --- a/MainForm.Designer.cs +++ /dev/null @@ -1,336 +0,0 @@ -namespace AppLauncher -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); - this.optionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.viewHelpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); - this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.exitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1 = new System.Windows.Forms.Panel(); - this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); - this.contextMenuStrip1.SuspendLayout(); - this.contextMenuStrip2.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem4, - this.toolStripMenuItem3, - this.toolStripMenuItem9, - this.helpToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(102, 92); - this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening); - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem5, - this.toolStripMenuItem7, - this.toolStripSeparator2, - this.toolStripMenuItem8, - this.toolStripSeparator3, - this.toolStripMenuItem6, - this.toolStripMenuItem2, - this.toolStripMenuItem10, - this.exitToolStripMenuItem}); - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(101, 22); - this.toolStripMenuItem4.Text = "&File"; - // - // toolStripMenuItem5 - // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(123, 22); - this.toolStripMenuItem5.Text = "&New"; - this.toolStripMenuItem5.Click += new System.EventHandler(this.toolStripMenuItem5_Click); - // - // toolStripMenuItem7 - // - this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(123, 22); - this.toolStripMenuItem7.Text = "&Open"; - this.toolStripMenuItem7.Click += new System.EventHandler(this.toolStripMenuItem7_Click); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(120, 6); - // - // toolStripMenuItem8 - // - this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(123, 22); - this.toolStripMenuItem8.Text = "&Close"; - this.toolStripMenuItem8.Click += new System.EventHandler(this.toolStripMenuItem8_Click); - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(120, 6); - // - // toolStripMenuItem6 - // - this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(123, 22); - this.toolStripMenuItem6.Text = "&Save"; - this.toolStripMenuItem6.Click += new System.EventHandler(this.toolStripMenuItem6_Click); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(123, 22); - this.toolStripMenuItem2.Text = "Save &As..."; - this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click); - // - // toolStripMenuItem10 - // - this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(120, 6); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem12, - this.toolStripMenuItem11, - this.toolStripMenuItem1}); - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(101, 22); - this.toolStripMenuItem3.Text = "&View"; - // - // toolStripMenuItem12 - // - this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(222, 22); - this.toolStripMenuItem12.Text = "Enable &Big Icons (In Folders)"; - this.toolStripMenuItem12.Click += new System.EventHandler(this.toolStripMenuItem12_Click); - // - // toolStripMenuItem11 - // - this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(222, 22); - this.toolStripMenuItem11.Text = "Enable &Animation"; - this.toolStripMenuItem11.Click += new System.EventHandler(this.toolStripMenuItem11_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(222, 22); - this.toolStripMenuItem1.Text = "Always On &Top"; - this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click); - // - // toolStripMenuItem9 - // - this.toolStripMenuItem9.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.optionToolStripMenuItem}); - this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(101, 22); - this.toolStripMenuItem9.Text = "&Tools"; - // - // optionToolStripMenuItem - // - this.optionToolStripMenuItem.Name = "optionToolStripMenuItem"; - this.optionToolStripMenuItem.Size = new System.Drawing.Size(116, 22); - this.optionToolStripMenuItem.Text = "&Options"; - this.optionToolStripMenuItem.Click += new System.EventHandler(this.optionToolStripMenuItem_Click); - // - // helpToolStripMenuItem - // - this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.viewHelpToolStripMenuItem, - this.toolStripSeparator1, - this.aboutToolStripMenuItem}); - this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; - this.helpToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.helpToolStripMenuItem.Text = "&Help"; - // - // viewHelpToolStripMenuItem - // - this.viewHelpToolStripMenuItem.Name = "viewHelpToolStripMenuItem"; - this.viewHelpToolStripMenuItem.Size = new System.Drawing.Size(127, 22); - this.viewHelpToolStripMenuItem.Text = "&View Help"; - this.viewHelpToolStripMenuItem.Click += new System.EventHandler(this.viewHelpToolStripMenuItem_Click); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(124, 6); - // - // aboutToolStripMenuItem - // - this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; - this.aboutToolStripMenuItem.Size = new System.Drawing.Size(127, 22); - this.aboutToolStripMenuItem.Text = "&About"; - this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); - // - // saveFileDialog1 - // - this.saveFileDialog1.Filter = "Session files|*.jsonfig"; - this.saveFileDialog1.Title = "Choose file to save the session"; - // - // openFileDialog1 - // - this.openFileDialog1.Filter = "Session files|*.jsonfig"; - this.openFileDialog1.Title = "Choose session file"; - // - // notifyIcon1 - // - this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip2; - this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); - this.notifyIcon1.Text = "notifyIcon1"; - this.notifyIcon1.Visible = true; - this.notifyIcon1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseClick); - // - // contextMenuStrip2 - // - this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem1}); - this.contextMenuStrip2.Name = "contextMenuStrip2"; - this.contextMenuStrip2.Size = new System.Drawing.Size(94, 26); - // - // exitToolStripMenuItem1 - // - this.exitToolStripMenuItem1.Name = "exitToolStripMenuItem1"; - this.exitToolStripMenuItem1.Size = new System.Drawing.Size(93, 22); - this.exitToolStripMenuItem1.Text = "E&xit"; - this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.AutoScroll = true; - this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Controls.Add(this.flowLayoutPanel1); - this.panel1.Location = new System.Drawing.Point(12, 34); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(620, 363); - this.panel1.TabIndex = 0; - // - // flowLayoutPanel1 - // - this.flowLayoutPanel1.AutoSize = true; - this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent; - this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; - this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 20); - this.flowLayoutPanel1.Size = new System.Drawing.Size(0, 30); - this.flowLayoutPanel1.TabIndex = 29; - this.flowLayoutPanel1.WrapContents = false; - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); - this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.ClientSize = new System.Drawing.Size(633, 400); - this.Controls.Add(this.panel1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(420, 280); - this.Name = "MainForm"; - this.Text = "Launcher"; - this.TitleContextMenuStrip = this.contextMenuStrip1; - this.contextMenuStrip1.ResumeLayout(false); - this.contextMenuStrip2.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; - private System.Windows.Forms.SaveFileDialog saveFileDialog1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem6; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem7; - private System.Windows.Forms.OpenFileDialog openFileDialog1; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem8; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9; - private System.Windows.Forms.ToolStripMenuItem optionToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.NotifyIcon notifyIcon1; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem12; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; - } -} - diff --git a/MainForm.cs b/MainForm.cs deleted file mode 100644 index 7b76ac4..0000000 --- a/MainForm.cs +++ /dev/null @@ -1,595 +0,0 @@ -using AppLauncher.Models; -using AppLauncher.Windows.Forms; -using Newtonsoft.Json; -using RyzStudio.Windows.Forms; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.IO; -using System.Runtime.InteropServices; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AppLauncher -{ - public partial class MainForm : TForm - { - [DllImport("user32.dll")] - protected static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk); - - [DllImport("user32.dll")] - protected static extern bool UnregisterHotKey(IntPtr hWnd, int id); - - //protected const int MOD_ALT = 0x1; - //protected const int MOD_CONTROL = 0x2; - //protected const int MOD_SHIFT = 0x4; - //protected const int MOD_WIN = 0x8; - protected const int WM_HOTKEY = 0x312; - protected const int WM_QUERYENDSESSION = 0x0011; - - protected OptionsForm optionsForm = null; - protected string sessionFilename = null; - protected bool requestExit = false; - - public MainForm() : base() - { - InitializeComponent(); - - notifyIcon1.Text = Application.ProductName; - - this.StartPosition = FormStartPosition.WindowsDefaultBounds; - - appIcon = Properties.Resources.app_icon; - - enableMaximise = false; - //enableMaximiseMenu = false; - closeOnMinimise = true; - } - - protected override void OnLoad(EventArgs e) - { - ThreadControl.SetVisible(this, false); - - base.OnLoad(e); - } - - protected async override void OnShown(EventArgs e) - { - base.OnShown(e); - - string jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig"); - if (File.Exists(jsonfigFilename)) - { - await loadFile(jsonfigFilename); - } - else - { - this.CurrentSession = new LauncherSession(); - ThreadControl.SetSize(this, this.MinimumSize); - ThreadControl.SetVisible(this, true); - } - } - - protected override void OnClosing(CancelEventArgs e) - { - base.OnClosing(e); - - if (this.CurrentSession == null) this.CurrentSession = new LauncherSession(); - - if (this.CurrentSession.HideOnClose && !requestExit) - { - this.Visible = !this.Visible; - e.Cancel = true; - return; - } - - requestExit = false; - - if (string.IsNullOrWhiteSpace(sessionFilename)) - { - // do nothing - } - else - { - if (this.CurrentSession.AutoSave == LauncherSession.AutoSaveOption.Prompt) - { - DialogResult dr = MessageBox.Show("Save existing session?", "Exit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - bool rv = saveFile(sessionFilename, false); - if (!rv) - { - e.Cancel = true; - } - } - else if (dr == DialogResult.No) - { - // do nothing - } - else if (dr == DialogResult.Cancel) - { - e.Cancel = true; - } - } - else if (this.CurrentSession.AutoSave == LauncherSession.AutoSaveOption.Yes) - { - saveFile(sessionFilename, false); - } - } - - if (this.CurrentSession.HotKey != null) - { - if (this.CurrentSession.HotKey.KeyCode != Keys.None) - { - UnregisterHotKey((IntPtr)Handle, 1); - } - } - - } - - protected override void WndProc(ref Message m) - { - switch (m.Msg) - { - case WM_HOTKEY: - if (m.WParam.ToInt32() == 1) - { - this.Visible = !this.Visible; - } - - break; - case WM_QUERYENDSESSION: - requestExit = true; - //this.Close(); - Application.Exit(); - - break; - default: break; - - } - - base.WndProc(ref m); - } - - public LauncherSession CurrentSession { get; set; } = null; - - private void toolStripMenuItem5_Click(object sender, EventArgs e) - { - if (string.IsNullOrWhiteSpace(sessionFilename)) - { - newSession(); - } - else - { - DialogResult dr = MessageBox.Show("Save existing session?", "New session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - bool rv = saveFile(sessionFilename, false); - if (rv) - { - newSession(); - - sessionFilename = null; - } - } - else if (dr == DialogResult.No) - { - newSession(); - - sessionFilename = null; - } - else if (dr == DialogResult.Cancel) - { - return; - } - } - } - - private async void toolStripMenuItem7_Click(object sender, EventArgs e) - { - if (string.IsNullOrWhiteSpace(sessionFilename)) - { - if (openFileDialog1.ShowDialog() == DialogResult.OK) - { - await loadFile(openFileDialog1.FileName); - } - } - else - { - DialogResult dr = MessageBox.Show("Save existing session?", "Open session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - bool rv = saveFile(sessionFilename, false); - if (rv) - { - if (openFileDialog1.ShowDialog() == DialogResult.OK) - { - await loadFile(openFileDialog1.FileName); - } - } - } - else if (dr == DialogResult.No) - { - if (openFileDialog1.ShowDialog() == DialogResult.OK) - { - await loadFile(openFileDialog1.FileName); - } - } - else if (dr == DialogResult.Cancel) - { - return; - } - } - } - - private void toolStripMenuItem8_Click(object sender, EventArgs e) - { - if (string.IsNullOrWhiteSpace(sessionFilename)) - { - flowLayoutPanel1.Controls.Clear(); - } - else - { - DialogResult dr = MessageBox.Show("Save existing session?", "Close session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - bool rv = saveFile(sessionFilename, false); - if (rv) - { - flowLayoutPanel1.Controls.Clear(); - - sessionFilename = null; - } - } - else if (dr == DialogResult.No) - { - flowLayoutPanel1.Controls.Clear(); - - sessionFilename = null; - } - else if (dr == DialogResult.Cancel) - { - return; - } - } - } - - private void toolStripMenuItem6_Click(object sender, EventArgs e) - { - if (string.IsNullOrWhiteSpace(sessionFilename)) - { - saveAsFile(); - } - else - { - saveFile(sessionFilename, true); - } - } - - private void toolStripMenuItem2_Click(object sender, EventArgs e) => saveAsFile(); - - private void toolStripMenuItem1_Click(object sender, EventArgs e) => this.TopMost = !this.TopMost; - - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - requestExit = true; - this.Close(); - } - - private void optionToolStripMenuItem_Click(object sender, EventArgs e) - { - if (optionsForm == null) optionsForm = new OptionsForm(this); - optionsForm.ShowDialog(); - - invalidateHotKey(); - } - - protected async Task collapseWindow(int width, int increment = 6) - { - await Task.Run(() => - { - while (this.Width > width) - { - ThreadControl.SetWidth(this, (this.Width - increment)); - - Application.DoEvents(); - } - - ThreadControl.SetWidth(this, width); - }); - } - - protected async Task expandWindow(int width, int increment = 8) - { - await Task.Run(() => - { - while (this.Width < width) - { - ThreadControl.SetWidth(this, (this.Width + increment)); - - Application.DoEvents(); - } - - ThreadControl.SetWidth(this, width); - }); - } - - protected void invalidateHotKey() - { - if (this.InvokeRequired) - { - this.Invoke(new MethodInvoker(() => - { - UnregisterHotKey((IntPtr)Handle, 1); - })); - } - else - { - UnregisterHotKey((IntPtr)Handle, 1); - } - - if (this.CurrentSession.HotKey != null) - { - if (this.CurrentSession.HotKey.KeyCode != Keys.None) - { - if (this.InvokeRequired) - { - this.Invoke(new MethodInvoker(() => - { - RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); - })); - } - else - { - RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); - } - } - } - } - - protected async Task loadFile(string filename) - { - await Task.Run(() => - { - if (isBusy) - { - return; - } - - if (string.IsNullOrWhiteSpace(filename)) - { - return; - } - - if (!File.Exists(filename)) - { - return; - } - - string sourceCode = null; - - try - { - sessionFilename = filename; - - sourceCode = File.ReadAllText(sessionFilename); - } - catch (Exception exc) - { - MessageBox.Show(exc.Message, "Load session"); - return; - } - - if (string.IsNullOrWhiteSpace(sourceCode)) - { - return; - } - - // load options - this.CurrentSession = JsonConvert.DeserializeObject(sourceCode); - if (this.CurrentSession == null) - { - this.CurrentSession = new LauncherSession(); - } - - // load tiles - int maxWidth = 0; - ThreadControl.Clear(flowLayoutPanel1); - - if (this.CurrentSession.Groups != null) - { - foreach (TileGroupModel item in this.CurrentSession.Groups) - { - TTilePanelLayout panel = new TTilePanelLayout(item); - - maxWidth = Math.Max(maxWidth, panel.Width); - - ThreadControl.Add(flowLayoutPanel1, panel); - } - } - - // ui - ThreadControl.SetSize(this, (maxWidth + SystemInformation.VerticalScrollBarWidth + 20 + flowLayoutPanel1.Left), this.CurrentSession.DefaultHeight); - if (!this.CurrentSession.StartPosition.IsEmpty) ThreadControl.SetLocation(this, this.CurrentSession.StartPosition); - - // - ThreadControl.SetTopMost(this, this.CurrentSession.AlwaysOnTop); - ThreadControl.SetVisible(this, true); - ThreadControl.SetChecked(toolStripMenuItem11, this.CurrentSession.EnableAnimation); - ThreadControl.SetChecked(toolStripMenuItem12, this.CurrentSession.EnableBigIconInFolder); - - if (this.InvokeRequired) - { - this.Invoke(new MethodInvoker(() => { - this.Focus(); - })); - } - else - { - this.Focus(); - } - - // hotkey - invalidateHotKey(); - - }); - } - - protected void newSession() - { - int maxWidth = 0; - flowLayoutPanel1.Controls.Clear(); - - TTilePanelLayout panel = new TTilePanelLayout(new TileGroupModel() - { - Title = "New Group", - IsExpanded = true, - GridSize = new Size(8, 1) - }); - - maxWidth = Math.Max(maxWidth, panel.Width); - - flowLayoutPanel1.Controls.Add(panel); - - this.Width = maxWidth + SystemInformation.VerticalScrollBarWidth + 20 + flowLayoutPanel1.Left; - } - - protected bool saveFile(string filename, bool showNotices = true) - { - if (isBusy) - { - return false; - } - - if (string.IsNullOrWhiteSpace(filename)) - { - return false; - } - - if (flowLayoutPanel1.Controls.Count <= 0) - { - return true; - } - - isBusy = true; - - // update session - if (this.CurrentSession == null) - { - this.CurrentSession = new LauncherSession(); - } - - this.CurrentSession.DefaultHeight = this.Height; - this.CurrentSession.AlwaysOnTop = this.TopMost; - this.CurrentSession.StartPosition = this.Location; - - // save - this.CurrentSession.Groups = new List(); - for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) - { - if (flowLayoutPanel1.Controls[i].GetType() != typeof(TTilePanelLayout)) - { - continue; - } - - TTilePanelLayout container = flowLayoutPanel1.Controls[i] as TTilePanelLayout; - this.CurrentSession.Groups.Add(container.Model); - } - - try - { - File.WriteAllText(filename, JsonConvert.SerializeObject(this.CurrentSession)); - - if (showNotices) - { - MessageBox.Show("Session saved!", "Save session", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - catch (Exception exc) - { - MessageBox.Show(exc.Message, "Save session"); - - return false; - } - - isBusy = false; - - return true; - } - - protected bool saveAsFile() - { - if (isBusy) - { - return false; - } - - if (saveFileDialog1.ShowDialog() == DialogResult.OK) - { - bool rv = saveFile(saveFileDialog1.FileName); - if (rv) - { - sessionFilename = saveFileDialog1.FileName; - } - - return rv; - } - - return false; - } - - private void contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e) - { - toolStripMenuItem1.Checked = this.TopMost; - toolStripMenuItem6.Enabled = !string.IsNullOrWhiteSpace(sessionFilename); - } - - private void viewHelpToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - System.Diagnostics.Process.Start("https://www.hiimray.co.uk/software-fizzy-launcher"); - } - catch - { - // do nothing - } - } - - private void aboutToolStripMenuItem_Click(object sender, EventArgs e) => MessageBox.Show(Application.ProductName + " v" + Application.ProductVersion, "About", MessageBoxButtons.OK, MessageBoxIcon.Information); - - private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) - { - this.Visible = !this.Visible; - } - } - - private void exitToolStripMenuItem1_Click(object sender, EventArgs e) - { - requestExit = true; - this.Close(); - } - - private void toolStripMenuItem11_Click(object sender, EventArgs e) - { - if (this.CurrentSession == null) return; - - this.CurrentSession.EnableAnimation = !this.CurrentSession.EnableAnimation; - - toolStripMenuItem11.Checked = this.CurrentSession.EnableAnimation; - } - - private void toolStripMenuItem12_Click(object sender, EventArgs e) - { - if (this.CurrentSession == null) return; - - this.CurrentSession.EnableBigIconInFolder = !this.CurrentSession.EnableBigIconInFolder; - - toolStripMenuItem12.Checked = this.CurrentSession.EnableBigIconInFolder; - } - - } -} \ No newline at end of file diff --git a/MainForm.resx b/MainForm.resx deleted file mode 100644 index 12b1ad5..0000000 --- a/MainForm.resx +++ /dev/null @@ -1,730 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 172, 17 - - - 308, 17 - - - 448, 17 - - - 561, 17 - - - - - AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA - IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc - VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta - VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// - ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 - /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb - VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb - VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN - y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb - VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// - /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb - VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ - VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d - Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 - 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 - 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// - ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb - VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 - +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// - ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// - /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb - VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K - Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl - bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb - VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// - /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// - ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA - AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l - ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// - ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb - VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 - 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl - bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py - 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// - //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// - ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// - //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// - //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT - Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl - bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb - VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU - Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj - p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA - AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb - VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 - 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE - if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// - ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb - VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk - 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 - +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA - AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f - WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 - /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk - +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// - /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// - //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// - ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// - /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 - bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI - 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk - +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm - ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// - /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// - //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb - VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 - 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// - //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e - V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 - /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk - +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// - //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// - //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// - ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// - /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb - VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty - /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 - ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta - VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD - wP/08/L///////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb - VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb - VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////0czK/3Bh - Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// - //////////////////////////////////////////////////////////////////////////////// - ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb - VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// - /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb - U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// - ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 - dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa - VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb - VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd - VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w - AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP - rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA - AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA - rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA - AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ - rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA - AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb - VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He - 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// - ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// - ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb - VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// - //////////////////////////////////////////////////////////////////////////////r6 - +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// - //////////////////////////////////////////////////////////////////////////////// - //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 - +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg - nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj - p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc - Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl - bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb - VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx - zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA - gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh - lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By - bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i - mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// - ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 - /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ - /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg - 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// - /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt - /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ - u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc - VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt - /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb - VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 - 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV - 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// - //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// - ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// - /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// - /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 - 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk - +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// - ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f - Wf/7+vr///////////////////////////////////////////////////////////////////////// - ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// - //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// - ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// - ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb - VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc - VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A - AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA - AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA - AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb - VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ - U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// - ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA - AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// - ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// - ////////////////////////////////////////////////////////////////////////in55/W1d - Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN - 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm - 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 - /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// - ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e - Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// - ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 - AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW - kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm - 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// - /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// - /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk - 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA - AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// - ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 - 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv - 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb - /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m - ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ - ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// - /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA - AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// - ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg - Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He - 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H - /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA - AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo - YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 - +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// - ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX - cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw - yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx - zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU - Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ - //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// - ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh - W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA - AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b - UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b - Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA - gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA - AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA - rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== - - - - - AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA - IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc - VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta - VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// - ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 - /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb - VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb - VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN - y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb - VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// - /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb - VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ - VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d - Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 - 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 - 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// - ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb - VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 - +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// - ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// - /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb - VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K - Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl - bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb - VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// - /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// - ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA - AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l - ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// - ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb - VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 - 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl - bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py - 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// - //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// - ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// - //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// - //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT - Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl - bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb - VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU - Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj - p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA - AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb - VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 - 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE - if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// - ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb - VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk - 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 - +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA - AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f - WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 - /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk - +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// - /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// - //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// - ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// - /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 - bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI - 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk - +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm - ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// - /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// - //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb - VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 - 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// - //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e - V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 - /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk - +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// - //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// - //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// - ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// - /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb - VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 - 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty - /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 - ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta - VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD - wP/08/L///////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb - VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb - VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////0czK/3Bh - Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// - //////////////////////////////////////////////////////////////////////////////// - ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb - VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// - /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb - U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// - ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 - dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb - VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa - VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb - VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd - VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w - AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP - rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA - AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA - rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA - AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ - rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA - AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb - VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He - 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// - ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// - ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb - VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// - //////////////////////////////////////////////////////////////////////////////r6 - +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// - //////////////////////////////////////////////////////////////////////////////// - //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 - +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl - bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg - nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj - p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc - Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl - bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb - VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx - zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA - gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh - lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By - bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i - mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// - ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 - AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 - /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ - /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg - 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// - /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt - /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ - u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk - +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc - VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt - /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb - VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 - 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV - 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// - //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// - ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// - /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// - /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 - 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk - +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// - ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk - +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f - Wf/7+vr///////////////////////////////////////////////////////////////////////// - ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// - //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// - ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// - ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb - VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc - VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A - AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA - AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA - AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb - VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ - U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// - ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA - AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// - ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// - ////////////////////////////////////////////////////////////////////////in55/W1d - Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN - 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm - 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 - /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// - ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e - Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// - ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 - AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW - kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm - 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// - /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// - /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk - 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA - AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// - ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 - 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv - 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb - /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m - ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ - ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// - /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA - AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// - ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg - Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He - 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H - /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA - AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo - YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 - +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// - ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX - cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw - yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx - zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU - Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ - //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// - ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh - W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA - AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b - UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b - Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J - SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA - gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA - AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA - rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== - - - \ No newline at end of file diff --git a/Models/LauncherSession.cs b/Models/LauncherSession.cs deleted file mode 100644 index e007df4..0000000 --- a/Models/LauncherSession.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Collections.Generic; -using System.Drawing; - -namespace AppLauncher.Models -{ - public class LauncherSession - { - public class HotKeyOptions - { - public bool IsCtrl { get; set; } = false; - public bool IsAlt { get; set; } = false; - public bool IsShift { get; set; } = false; - public int Key { get; set; } = (int)System.Windows.Forms.Keys.None; - - public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0)); - - public System.Windows.Forms.Keys KeyCode => (System.Windows.Forms.Keys)this.Key; - } - - public enum AutoSaveOption - { - Prompt = 0, - Yes, - No - } - - public int DefaultHeight { get; set; } = 280; - public HotKeyOptions HotKey { get; set; } = null; - - public bool AlwaysOnTop { get; set; } = false; - public bool EnableAnimation { get; set; } = false; - public bool EnableBigIconInFolder { get; set; } = false; - - public bool HideOnClose { get; set; } = false; - public bool HideOnClick { get; set; } = false; - public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt; - public List Groups { get; set; } = new List(); - public Point StartPosition { get; set; } = Point.Empty; - - } -} \ No newline at end of file diff --git a/Models/TileGroupModel.cs b/Models/TileGroupModel.cs deleted file mode 100644 index ab8974a..0000000 --- a/Models/TileGroupModel.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using System.Drawing; - -namespace AppLauncher.Models -{ - public class TileGroupModel - { - public string Title { get; set; } - public bool IsExpanded { get; set; } = false; - public bool IsExclusive { get; set; } = false; - public List Items { get; set; } = new List(); - public Size GridSize = new Size(0, 0); - } -} \ No newline at end of file diff --git a/Models/TileModel.cs b/Models/TileModel.cs deleted file mode 100644 index ba7aa02..0000000 --- a/Models/TileModel.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Drawing; - -namespace AppLauncher.Models -{ - public class TileModel - { - public string Title { get; set; } - public string ProcessFilename { get; set; } - public string ProcessArgument { get; set; } - public string ProcessWorkingDirectory { get; set; } - public ProcessWindowStyle ProcessWindowStyle { get; set; } = ProcessWindowStyle.Normal; - public bool ProcessAsAdmin { get; set; } = false; - public Point Position { get; set; } - - public bool IsGroup { get; set; } = false; - public List Items { get; set; } = new List(); - - public override string ToString() => this.Title ?? string.Empty; - - public string CleanProcessFilename => (string.IsNullOrWhiteSpace(this.ProcessFilename) ? string.Empty : resolvePath(this.ProcessFilename)); - - public string CleanProcessArgument => (string.IsNullOrWhiteSpace(this.ProcessArgument) ? string.Empty : resolvePath(this.ProcessArgument)); - - public string CleanProcessWorkingDirectory => (string.IsNullOrWhiteSpace(this.ProcessWorkingDirectory) ? string.Empty : resolvePath(this.ProcessWorkingDirectory)); - - protected string resolvePath(string value) - { - string rv = Environment.ExpandEnvironmentVariables(value); - - rv = resolveFirstPath(rv); - rv = resolveLastPath(rv); - - return rv; - } - - protected string resolveFirstPath(string value) - { - const string last = "%FIRST%"; - if (!value.Contains(last)) - { - return value; - } - - string head = value.Substring(0, value.IndexOf(last)); - string tail = value.Substring(value.IndexOf(last) + last.Length); - - string[] dirList = new string[0]; - - try - { - dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); - } - catch - { - // do nothing - } - - if (dirList.Length <= 0) - { - return value; - } - - return dirList[0] + tail; - } - - protected string resolveLastPath(string value) - { - const string last = "%LAST%"; - if (!value.Contains(last)) - { - return value; - } - - string head = value.Substring(0, value.IndexOf(last)); - string tail = value.Substring(value.IndexOf(last) + last.Length); - - string[] dirList = new string[0]; - - try - { - dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); - } - catch - { - // do nothing - } - - if (dirList.Length <= 0) - { - return value; - } - - return dirList[(dirList.Length - 1)] + tail; - } - - } -} diff --git a/Program.cs b/Program.cs deleted file mode 100644 index 49753de..0000000 --- a/Program.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace AppLauncher -{ - static class Program - { - const string applicationID = "f31c9f65-4047-41e4-ac85-dbe11d12ee46"; - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - System.Threading.Mutex mutex = new System.Threading.Mutex(false, applicationID); - if (mutex.WaitOne(TimeSpan.Zero)) - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - - mutex.ReleaseMutex(); - } - - mutex.Close(); - mutex.Dispose(); - mutex = null; - } - } -} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs deleted file mode 100644 index 91add18..0000000 --- a/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Fizzy Launcher")] -[assembly: AssemblyDescription("Application and shortcut launcher")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Hi, I'm Ray")] -[assembly: AssemblyProduct("Fizzy Launcher")] -[assembly: AssemblyCopyright("Copyright © Ray Lam 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("66c1c75c-3612-4d23-b937-c3de0d653292")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("0.1.2.016")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs deleted file mode 100644 index 90bd94d..0000000 --- a/Properties/Resources.Designer.cs +++ /dev/null @@ -1,103 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AppLauncher.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap app_icon { - get { - object obj = ResourceManager.GetObject("app_icon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap folder_32 { - get { - object obj = ResourceManager.GetObject("folder_32", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap toggle_left_ea_16 { - get { - object obj = ResourceManager.GetObject("toggle_left_ea_16", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap toggle_right_ea_16 { - get { - object obj = ResourceManager.GetObject("toggle_right_ea_16", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/Properties/Resources.resx b/Properties/Resources.resx deleted file mode 100644 index dda20bf..0000000 --- a/Properties/Resources.resx +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\app_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\toggle-left-ea-16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\toggle-right-ea-16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs deleted file mode 100644 index 85a6f63..0000000 --- a/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AppLauncher.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/Properties/Settings.settings b/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Resources/app_icon.png b/Resources/app_icon.png deleted file mode 100644 index ad67f186232163c4a2d7e16a43bde59383176977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmV-G1;6@pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H11kFiA zK~zYIomOj16jv1f&YhWc7b)NZi;sYU3#$YafuzAlv^KTXNLnguRKzr`twx%VG-@g~ z!HQa|rfH&73+W#bA)v%cTT`1RwiXjp9x7E31uBa? zRDYwN{Gj$RAaLx`#q7@jh-nE}tyT$gV1kfnBO|tnb8ZG8LKg&!_}FL`zbp!2p&<}L z;6mXQT>bG^K+t)kw{vGsPLAt81*|)E&l4IuPQ((05WYG^;W0}VQ(SB`#V?D7kB|3+ z9bPHDj*CU50PvHZ^qceYPW4YHkerg1#Td(2yE=izEsMgEs727}l&Ks90Nl8F8)tL# z1q8|^ZD>P5K~Cpzj*Tc0tu%+t$F2{yB0e^H+T;MRX4R`WxIc{)MUK^!8Gl;0?=gFH zux8C6*%aJm-?;uYL+aKf2$zbM*WVjQWIU3N8FQ|}{3;>8D0RSSxLp=oK1@oX-LZMhfL3-Vogcryd z=e~R+JupG0036BuM4CI>q$eg7FaQwXD*^+Js-LgVw0)l}X8HLdFutw8Ay8Xa&$*`kE?ak`hiIBQ z+Y&Kq56KdYS?S=t&qtR<1jDL0Fnttc2zY$BI)8wTPF<6&1%rb_5`k{XoV!*K2$qP^ z7t95a7q-x&Z32*FFhK2+QQwm2k(=qQASPt={$X7M06^0CEg76GHyCtU@Vq(FaDgfW zcHM7Aq_-Xh=5D>Fe+Wdt;sz&5iW(6##|r@9a&ok_4&dvv%OOeb+J}!CAW5vHF#oho zmSncl60wjGjoFDed|Mc{Z6L^{E>9wPyqgy7hvSEQut!*6x2Qp8oEv@Yy#Si)hQDJwW!tTI; z#z&qzof>RU`e1v~hqhLS2d4Ig|C~e_0LYgvoVk&dx;vq#r}viwnI{7?_U)0(=1}-4 z61LuL@&E_uBzSu(Xm4}i#L>GW&kbHO=*6z~u&x0_4XA+``8q^ptFGZ@U1siqJG>UnsA<$M4rXBF+Ud ziP<#HuR#+(FxB*Paq%JNSgy$qeM;Vzb_9fs$VFy!b@yuR&pIRkf=R5Bb6!G%N{jQ) zR8MB#lz$bQQqs~G(NO?p;P_r+&eD<#IjvLShT~r)8rJyMfXr3^0000uwGJ diff --git a/Resources/app_icon_32.png b/Resources/app_icon_32.png deleted file mode 100644 index 51e5f0d1efcbb24071542496d559afef98fa93d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1728 zcmV;x20!_UP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H122Dvs zK~z|UwU>WPmDd@^Kj(el%cYkK2$Ns4E+Lqf56&)s}7HnrX zyKHH?kacE@W~p6}P@Bv~h08cwe|b zP-)%wzvn&Q=Xt*GbIy6rIfAbU`{uGGQnFqk3M4E?h?nb+R35xre=*mD6%`dqhjTbz zs;rli0s&be6e$p|I%+C+-!lPEl$KheZ$v$&qZbG%o&b^qWASmZ6aeY*GWb|Y#NZ;@OiImO6txfU2YHb>mW7x$^yBsERK9tL z#{ZlJ$)pf+v!kY}9zdIB%T-80X2znhK&JHjiOS9}Y;XSno;D}?h#Mv8mV448i1=j& zM-HDxx;sGkU@}Fsv%G|_B_?qEFMl^nL|x(Lvhw;PRc}rUkUR{KVG9=!m6OH1om&li z;^;{{ZO$N$n!XXm_Pk;Hn_s~1?wI~RA=t9= zdc<m$2AAwK}TaI>waRT_Xt2e;3T$cZwm?0q92MVXH4?7lcv3B+jtO$HiJg#91DcM`4qC~cl$ zpBfpbc4!p0&u?4|@>V9XBqPq?w0!(I-A*@tzYG=-n15s=fQA&S05WW|@BigiGo=d? z4cjjzwL`(D>mpkmtJh3V;o!gxx}EN@Sb+-Yihc&B4x=o9p)1#B6>zWMc8_u8>M+3Q zgNsu;0|NE}ymjzh{@n24|5bpq$0+}qii!#yK&!9W|6BXUvLOj?z4P92&E;~lZHql< zLH=`Og6BFuGwjas$*|xpO~VXao-pi-J>lEZd8+{ll+%H48i1p=>g}hC%Kj@9QTNxs z{mU{kGRjZNONcU=SQu@hWBeu^<2QqX#i$A?Q5x1bl_;}HZ_jmlLy{&Wn$fiB`{Jiv zQ}geadSl>Q(7t=RxIACzoB-x$*wXpM&$bh5jS2gcF9WaF$JS?e;r01^!XpzLj;e8( zaU%lw)8YM1sv_3_m%6(9sM!4mE?4+Uo_lgHr~ci9*XIMoxj=H5zHA_Z}+W8>gkUo#xhdK56S@a?%qR+E-t*|E1ds0NC*3o%1xG?TFFLymJZr3YdYAb)-a-Qb1Z8*F8&~-g9qytSzjtQ@~+Tl20l=ZeRqjl?EFvle7 zhk$2Hn#PM|Tlx0N9AjKcNnihEnp@jxX>I3X-=&%EUkK!BgmOal;i#*t9E_CXj!!eY z-LA^0ls|whQ&oj+#dZ=B;%Pp6o|e{j+}Fou(yvJ&k1Hq*H!Yr%#}6F1ai{oq{W!I6 z+VP4+z82~u;erq}2tUV`XC^fT8qD2dPOsy_%{xkva<706iEI#pV~!(LJ#&c>ivIzs Wj#q5(AM-N+0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TVrcG=30_DO16O;x4pyeRIh||EuJw0C;nEs~%ng4;9jfsKj03*ZyyTst1 z|G$4o$tXXYlvQp6HVg`o9Y7SAJGE;sFpg$JxugK*|BMVqjQ<(-r({+bL&ZpU00?~M z_+0>WL?JLBI*G+V^|OFl{{S(|KZgIUV1s}FISqh<6$Efwd;%=Kl=;UO;511Aq-$Ng(9|Vgenqe$KScAc!~=q-IyD z{rmS1)Yj*Qh|mmtWnyA7nmx7s7Kj6HmY+L)% diff --git a/Resources/raw/icon-set.svg b/Resources/raw/icon-set.svg deleted file mode 100644 index d7d223a..0000000 --- a/Resources/raw/icon-set.svg +++ /dev/null @@ -1,942 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/toggle-left-ea-16.png b/Resources/toggle-left-ea-16.png deleted file mode 100644 index e7895fd54022e74fed851ee550eb693be6ae2aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TM5@V(vBy06gh#SCn!Re04uR-KxwohL*PApgR+f zrj7KUOn8Hn2u=(>tlM;X=VzHXhI#D4_;!W3py}0MU}hXKj!~R&?oY=f>tB72PltNB wTnVs3{n)7GQ?5qa_(;1m>16cWkZK&F58rczF09|kUjP6A07*qoM6N<$f`0zlMF0Q* diff --git a/Resources/toggle-right-ea-16.png b/Resources/toggle-right-ea-16.png deleted file mode 100644 index aedd7c2f94120ca876963df3b9500d46e6f058f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TL0F?FR`V=ECyHf# zC!0Dmf>$6COU#i-nwj>IP!QrLqx)f!Cb%(JSV$J~+0+JGb|Q$4V_}KrGbz{0^f75C zx;4oV3E#ZFT<CMeKqm}$0;P4b~%Obpjb;62m&2=NUkMDbk zYZVCvi1`qUUyx;CUUjohSE+{jAq?L?y$6Kp0C7NhIe)-{bf7-T%P*Cb7;jLRjG1P* zysSnut-vis?D!=sDx%s^du#1EW?;^oDb~D(Hp5md9`#Q6$Y-2wt#l8r+(jefZB6yz zyT^}7Y=toRHLo?xUYup(H0E)Lrz~jV2c!GJz*_Lcct#1K^LaPpY<_>FiJ4?Cm-GVK s96+JwitNV}J~e;F&805N(m#jj3n7Dw9b#Vt6#xJL07*qoM6N<$f{}0FssI20 diff --git a/Windows/Forms/OptionsForm.cs b/Windows/Forms/OptionsForm.cs deleted file mode 100644 index ff34358..0000000 --- a/Windows/Forms/OptionsForm.cs +++ /dev/null @@ -1,446 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; -using System.Drawing; -using System.Text; - -namespace AppLauncher.Windows.Forms -{ - public class OptionsForm : TDialogForm - { - private System.Windows.Forms.Label label1; - private TButton button1; - private TTextBox textBox1; - private TYesNoPickerBox pickerBox1; - private System.Windows.Forms.Label label2; - private TYesNoPickerBox pickerBox2; - private System.Windows.Forms.Label label3; - private TYesNoPickerBox pickerBox3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TYesNoPickerBox pickerBox4; - private System.Windows.Forms.Label label6; - private TYesNoPickerBox pickerBox5; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private TPickerBox pickerBox6; - - public MainForm parentForm { get; set; } = null; - protected LauncherSession.HotKeyOptions hotKeyOptions = null; - - public OptionsForm(MainForm parent) : base() - { - InitializeComponent(); - - parentForm = parent; - - textBox1.InnerTextBox.ReadOnly = true; - textBox1.InnerTextBox.BackColor = Color.White; - textBox1.InnerTextBox.KeyUp += textBox1_KeyUp; - - pickerBox6.ComboBox.Items.Clear(); - foreach (string item in Enum.GetNames(typeof(LauncherSession.AutoSaveOption))) - { - pickerBox6.ComboBox.Items.Add(item); - } - - if (pickerBox6.ComboBox.Items.Count > 0) pickerBox6.ComboBox.SelectedIndex = 0; - - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm)); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); - this.label2 = new System.Windows.Forms.Label(); - this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); - this.label3 = new System.Windows.Forms.Label(); - this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - this.pickerBox4 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); - this.label6 = new System.Windows.Forms.Label(); - this.pickerBox5 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.pickerBox6 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 206); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 83); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Use Control"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.IsSelected = false; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // pickerBox1 - // - this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox1.BackColor = System.Drawing.Color.Transparent; - this.pickerBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox1.Location = new System.Drawing.Point(159, 83); - this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox1.Name = "pickerBox1"; - this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox1.Size = new System.Drawing.Size(220, 32); - this.pickerBox1.SubmitButton = null; - this.pickerBox1.TabIndex = 174; - this.pickerBox1.Value = false; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.Black; - this.label2.Location = new System.Drawing.Point(8, 50); - this.label2.Margin = new System.Windows.Forms.Padding(0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(385, 24); - this.label2.TabIndex = 175; - this.label2.Text = "Toggle Hotkey"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pickerBox2 - // - this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox2.BackColor = System.Drawing.Color.Transparent; - this.pickerBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox2.Location = new System.Drawing.Point(159, 124); - this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox2.Name = "pickerBox2"; - this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox2.Size = new System.Drawing.Size(220, 32); - this.pickerBox2.SubmitButton = null; - this.pickerBox2.TabIndex = 177; - this.pickerBox2.Value = false; - // - // label3 - // - this.label3.BackColor = System.Drawing.Color.Transparent; - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label3.Location = new System.Drawing.Point(18, 124); - this.label3.Margin = new System.Windows.Forms.Padding(0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(131, 32); - this.label3.TabIndex = 176; - this.label3.Text = "Use Alt"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pickerBox3 - // - this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox3.BackColor = System.Drawing.Color.Transparent; - this.pickerBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox3.Location = new System.Drawing.Point(159, 165); - this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox3.Name = "pickerBox3"; - this.pickerBox3.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox3.Size = new System.Drawing.Size(220, 32); - this.pickerBox3.SubmitButton = null; - this.pickerBox3.TabIndex = 179; - this.pickerBox3.Value = false; - // - // label4 - // - this.label4.BackColor = System.Drawing.Color.Transparent; - this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label4.Location = new System.Drawing.Point(18, 165); - this.label4.Margin = new System.Windows.Forms.Padding(0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(131, 32); - this.label4.TabIndex = 178; - this.label4.Text = "Use Shift"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label5 - // - this.label5.BackColor = System.Drawing.Color.Transparent; - this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label5.Location = new System.Drawing.Point(18, 206); - this.label5.Margin = new System.Windows.Forms.Padding(0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(131, 32); - this.label5.TabIndex = 180; - this.label5.Text = "Key"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 247); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 181; - // - // pickerBox4 - // - this.pickerBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox4.BackColor = System.Drawing.Color.Transparent; - this.pickerBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox4.Location = new System.Drawing.Point(159, 300); - this.pickerBox4.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox4.Name = "pickerBox4"; - this.pickerBox4.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox4.Size = new System.Drawing.Size(220, 32); - this.pickerBox4.SubmitButton = null; - this.pickerBox4.TabIndex = 183; - this.pickerBox4.Value = true; - // - // label6 - // - this.label6.BackColor = System.Drawing.Color.Transparent; - this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label6.Location = new System.Drawing.Point(18, 300); - this.label6.Margin = new System.Windows.Forms.Padding(0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(131, 32); - this.label6.TabIndex = 182; - this.label6.Text = "Hide On Close"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pickerBox5 - // - this.pickerBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox5.BackColor = System.Drawing.Color.Transparent; - this.pickerBox5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox5.Location = new System.Drawing.Point(159, 341); - this.pickerBox5.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox5.Name = "pickerBox5"; - this.pickerBox5.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox5.Size = new System.Drawing.Size(220, 32); - this.pickerBox5.SubmitButton = null; - this.pickerBox5.TabIndex = 185; - this.pickerBox5.Value = true; - // - // label7 - // - this.label7.BackColor = System.Drawing.Color.Transparent; - this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label7.Location = new System.Drawing.Point(18, 341); - this.label7.Margin = new System.Windows.Forms.Padding(0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(131, 32); - this.label7.TabIndex = 184; - this.label7.Text = "Hide On Click"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label8 - // - this.label8.BackColor = System.Drawing.Color.Transparent; - this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label8.Location = new System.Drawing.Point(18, 259); - this.label8.Margin = new System.Windows.Forms.Padding(0); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(131, 32); - this.label8.TabIndex = 186; - this.label8.Text = "Auto Save"; - this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pickerBox6 - // - this.pickerBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox6.BackColor = System.Drawing.Color.Transparent; - this.pickerBox6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox6.Location = new System.Drawing.Point(159, 259); - this.pickerBox6.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.pickerBox6.Name = "pickerBox6"; - this.pickerBox6.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox6.Size = new System.Drawing.Size(220, 32); - this.pickerBox6.SubmitButton = null; - this.pickerBox6.TabIndex = 187; - // - // OptionsForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.pickerBox6); - this.Controls.Add(this.label8); - this.Controls.Add(this.pickerBox5); - this.Controls.Add(this.label7); - this.Controls.Add(this.pickerBox4); - this.Controls.Add(this.label6); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.label5); - this.Controls.Add(this.pickerBox3); - this.Controls.Add(this.label4); - this.Controls.Add(this.pickerBox2); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.pickerBox1); - this.Controls.Add(this.button1); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Name = "OptionsForm"; - this.Title = "Options"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.pickerBox1, 0); - this.Controls.SetChildIndex(this.label2, 0); - this.Controls.SetChildIndex(this.label3, 0); - this.Controls.SetChildIndex(this.pickerBox2, 0); - this.Controls.SetChildIndex(this.label4, 0); - this.Controls.SetChildIndex(this.pickerBox3, 0); - this.Controls.SetChildIndex(this.label5, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - this.Controls.SetChildIndex(this.label6, 0); - this.Controls.SetChildIndex(this.pickerBox4, 0); - this.Controls.SetChildIndex(this.label7, 0); - this.Controls.SetChildIndex(this.pickerBox5, 0); - this.Controls.SetChildIndex(this.label8, 0); - this.Controls.SetChildIndex(this.pickerBox6, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - if (hotKeyOptions == null) hotKeyOptions = new LauncherSession.HotKeyOptions(); - - if (parentForm == null) - { - return; - } - - if (parentForm.CurrentSession == null) - { - return; - } - - // hotkey - if (parentForm.CurrentSession.HotKey != null) - { - hotKeyOptions.IsCtrl = parentForm.CurrentSession.HotKey.IsCtrl; - hotKeyOptions.IsAlt = parentForm.CurrentSession.HotKey.IsAlt; - hotKeyOptions.IsShift = parentForm.CurrentSession.HotKey.IsShift; - hotKeyOptions.Key = parentForm.CurrentSession.HotKey.Key; - - pickerBox1.Value = hotKeyOptions.IsCtrl; - pickerBox2.Value = hotKeyOptions.IsAlt; - pickerBox3.Value = hotKeyOptions.IsShift; - - textBox1.Text = hotKeyOptions.KeyCode.ToString(); - } - - pickerBox4.Value = parentForm.CurrentSession.HideOnClose; - pickerBox5.Value = parentForm.CurrentSession.HideOnClick; - pickerBox6.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave; - - } - - private void button1_Click(object sender, EventArgs e) - { - if (hotKeyOptions == null) hotKeyOptions = new LauncherSession.HotKeyOptions(); - - if (parentForm != null) - { - if (parentForm.CurrentSession == null) parentForm.CurrentSession = new LauncherSession(); - if (parentForm.CurrentSession.HotKey == null) parentForm.CurrentSession.HotKey = new LauncherSession.HotKeyOptions(); - - parentForm.CurrentSession.HotKey.IsCtrl = pickerBox1.Value; - parentForm.CurrentSession.HotKey.IsAlt = pickerBox2.Value; - parentForm.CurrentSession.HotKey.IsShift = pickerBox3.Value; - parentForm.CurrentSession.HotKey.Key = hotKeyOptions.Key; - - parentForm.CurrentSession.HideOnClose = pickerBox4.Value; - parentForm.CurrentSession.HideOnClick = pickerBox5.Value; - parentForm.CurrentSession.AutoSave = (LauncherSession.AutoSaveOption)pickerBox6.ComboBox.SelectedIndex; - - } - - this.Close(); - } - - private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) - { - if (e.KeyCode == System.Windows.Forms.Keys.ControlKey) return; - if (e.KeyCode == System.Windows.Forms.Keys.ShiftKey) return; - if (e.KeyCode == System.Windows.Forms.Keys.Menu) return; - - if (hotKeyOptions == null) hotKeyOptions = new LauncherSession.HotKeyOptions(); - //hotKeyOptions.IsCtrl = pickerBox1.Value; - //hotKeyOptions.IsAlt = pickerBox2.Value; - //hotKeyOptions.IsShift = pickerBox3.Value; - hotKeyOptions.Key = (int)e.KeyCode; - - //StringBuilder sb = new StringBuilder(); - //if (hotKeyOptions.IsCtrl) sb = sb.Append("Ctrl + "); - //if (hotKeyOptions.IsAlt) sb = sb.Append("Alt + "); - //if (hotKeyOptions.IsShift) sb = sb.Append("Shift + "); - //sb = sb.Append(e.KeyCode.ToString()); - - //textBox1.Text = sb.ToString(); - textBox1.Text = e.KeyCode.ToString(); - } - - } -} \ No newline at end of file diff --git a/Windows/Forms/OptionsForm.resx b/Windows/Forms/OptionsForm.resx deleted file mode 100644 index 3747e00..0000000 --- a/Windows/Forms/OptionsForm.resx +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/AddListTileForm.cs b/Windows/Forms/Tile/AddListTileForm.cs deleted file mode 100644 index 2229333..0000000 --- a/Windows/Forms/Tile/AddListTileForm.cs +++ /dev/null @@ -1,294 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace AppLauncher.Windows.Forms -{ - public class AddListTileForm : TDialogForm - { - public static void ShowDialog(TTilePanelLayout control, Point coord) - { - AddListTileForm form = new AddListTileForm(); - form.TilePanelLayout = control; - form.AimCoord = coord; - form.ShowDialog(); - } - - private System.Windows.Forms.Label label1; - private TButton button1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TTextBox textBox1; - private TListBox listBox1; - private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; - private System.Windows.Forms.Label label2; - - public TTilePanelLayout TilePanelLayout { get; set; } = null; - public Point AimCoord { get; set; } = new Point(-1, -1); - - public AddListTileForm() : base() - { - InitializeComponent(); - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddListTileForm)); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox(); - this.label2 = new System.Windows.Forms.Label(); - this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 50); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 50); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Title"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.IsSelected = false; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 92); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 177; - // - // listBox1 - // - this.listBox1.AllowDrop = true; - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.BackColor = System.Drawing.Color.Transparent; - this.listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.listBox1.Location = new System.Drawing.Point(159, 101); - this.listBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.listBox1.Name = "listBox1"; - this.listBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.listBox1.Size = new System.Drawing.Size(220, 280); - this.listBox1.SubmitButton = null; - this.listBox1.TabIndex = 180; - this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); - this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); - this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); - this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label2.Location = new System.Drawing.Point(18, 104); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(131, 32); - this.label2.TabIndex = 181; - this.label2.Text = "List"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // tHorizontalSeparator1 - // - this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 391); - this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); - this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; - this.tHorizontalSeparator1.Size = new System.Drawing.Size(380, 2); - this.tHorizontalSeparator1.TabIndex = 182; - // - // AddListTileForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.tHorizontalSeparator1); - this.Controls.Add(this.label2); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.button1); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Name = "AddListTileForm"; - this.Title = "Add List Tile"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - this.Controls.SetChildIndex(this.listBox1, 0); - this.Controls.SetChildIndex(this.label2, 0); - this.Controls.SetChildIndex(this.tHorizontalSeparator1, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - private void button1_Click(object sender, EventArgs e) - { - TileModel model = new TileModel() - { - Title = textBox1.Text?.Trim(), - IsGroup = true - }; - - if (!this.AimCoord.Equals(new Point(-1, -1))) - { - model.Position = this.AimCoord; - } - - model.Items = new System.Collections.Generic.List(); - - foreach (TileModel item in listBox1.ListBox.Items.OfType()) - { - if (item.IsGroup) - { - continue; - } - - model.Items.Add(item); - } - - this.TilePanelLayout.AddTile(model); - - this.Close(); - } - - private void listBox1_OnAdd(object sender, EventArgs e) => AddTileForm.ShowDialog(listBox1); - - private void listBox1_OnEdit(object sender, EventArgs e) - { - if (listBox1.ListBox.Items.Count <= 0) - { - return; - } - - EditTileForm.ShowDialog(listBox1); - } - - private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - e.Effect = DragDropEffects.Link; - } - else - { - e.Effect = DragDropEffects.None; - } - } - - private void listBox1_DragDrop(object sender, DragEventArgs e) - { - string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; - if (fileList == null) - { - return; - } - - if (fileList.Length <= 0) - { - return; - } - - if (string.IsNullOrWhiteSpace(fileList[0])) - { - return; - } - - TileModel model = new TileModel() - { - ProcessFilename = fileList[0], - Title = Path.GetFileName(fileList[0]) - }; - - // exe - if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) - { - if (File.Exists(fileList[0])) - { - try - { - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); - if (fvi != null) - { - model.Title = fvi.ProductName; - } - } - catch - { - // do nothing - } - } - - - if (string.IsNullOrWhiteSpace(model.Title)) - { - model.Title = Path.GetFileNameWithoutExtension(fileList[0]); - } - } - - listBox1.ListBox.Items.Add(model); - } - - } -} \ No newline at end of file diff --git a/Windows/Forms/Tile/AddListTileForm.resx b/Windows/Forms/Tile/AddListTileForm.resx deleted file mode 100644 index 3747e00..0000000 --- a/Windows/Forms/Tile/AddListTileForm.resx +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/AddTileForm.cs b/Windows/Forms/Tile/AddTileForm.cs deleted file mode 100644 index a44bf72..0000000 --- a/Windows/Forms/Tile/AddTileForm.cs +++ /dev/null @@ -1,375 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; -using System.Drawing; - -namespace AppLauncher.Windows.Forms -{ - public class AddTileForm : TDialogForm - { - public static void ShowDialog(TTilePanelLayout control, Point coord) - { - AddTileForm form = new AddTileForm(); - form.TilePanelLayout = control; - form.AimCoord = coord; - form.ShowDialog(); - } - - public static void ShowDialog(TListBox control) - { - AddTileForm form = new AddTileForm(); - form.ListBox = control; - form.ShowDialog(); - } - - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private TOpenFileTextBox textBox2; - private TTextBox textBox3; - private TFolderTextBox textBox4; - private TButton button1; - private TPickerBox pickerBox1; - private TPickerBox pickerBox2; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TTextBox textBox1; - - public TTilePanelLayout TilePanelLayout { get; set; } = null; - public Point AimCoord { get; set; } = new Point(-1, -1); - public TListBox ListBox { get; set; } = null; - - public AddTileForm() : base() - { - InitializeComponent(); - - pickerBox1.ComboBox.Items.Clear(); - pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" }); - if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; - - pickerBox2.ComboBox.Items.Clear(); - pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); - if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0; - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddTileForm)); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle1 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle2 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle3 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.textBox2 = new RyzStudio.Windows.ThemedForms.TOpenFileTextBox(); - this.textBox3 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.textBox4 = new RyzStudio.Windows.ThemedForms.TFolderTextBox(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - this.horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - this.Text = "Add Tile"; - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 50); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label6 - // - this.label6.BackColor = System.Drawing.Color.Transparent; - this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label6.Location = new System.Drawing.Point(18, 268); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(208, 32); - this.label6.TabIndex = 163; - this.label6.Text = "Run As Admin"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label7 - // - this.label7.BackColor = System.Drawing.Color.Transparent; - this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label7.Location = new System.Drawing.Point(18, 227); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(208, 32); - this.label7.TabIndex = 161; - this.label7.Text = "Window Style"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label4 - // - this.label4.BackColor = System.Drawing.Color.Transparent; - this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label4.Location = new System.Drawing.Point(18, 173); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(131, 32); - this.label4.TabIndex = 159; - this.label4.Text = "Working Directory"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label3 - // - this.label3.BackColor = System.Drawing.Color.Transparent; - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label3.Location = new System.Drawing.Point(18, 132); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(131, 32); - this.label3.TabIndex = 157; - this.label3.Text = "Argument"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label2.Location = new System.Drawing.Point(18, 91); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(131, 32); - this.label2.TabIndex = 155; - this.label2.Text = "Filename"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 50); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Title"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // textBox2 - // - this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox2.BackColor = System.Drawing.Color.Transparent; - this.textBox2.FileDialog = null; - this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox2.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox2.HighlightImage"))); - this.textBox2.Location = new System.Drawing.Point(159, 91); - this.textBox2.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); - this.textBox2.Name = "textBox2"; - this.textBox2.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox2.NormalImage"))); - this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox2.Size = new System.Drawing.Size(220, 32); - this.textBox2.SubmitButton = null; - this.textBox2.TabIndex = 170; - this.textBox2.UseSystemPasswordChar = false; - // - // textBox3 - // - this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox3.BackColor = System.Drawing.Color.Transparent; - this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox3.Location = new System.Drawing.Point(159, 132); - this.textBox3.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox3.Name = "textBox3"; - this.textBox3.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox3.Size = new System.Drawing.Size(220, 32); - this.textBox3.SubmitButton = null; - this.textBox3.TabIndex = 171; - this.textBox3.UseSystemPasswordChar = false; - // - // textBox4 - // - this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox4.BackColor = System.Drawing.Color.Transparent; - this.textBox4.FolderDialog = null; - this.textBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox4.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox4.HighlightImage"))); - this.textBox4.Location = new System.Drawing.Point(159, 173); - this.textBox4.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); - this.textBox4.Name = "textBox4"; - this.textBox4.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox4.NormalImage"))); - this.textBox4.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox4.Size = new System.Drawing.Size(220, 32); - this.textBox4.SubmitButton = null; - this.textBox4.TabIndex = 172; - this.textBox4.UseSystemPasswordChar = false; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // pickerBox1 - // - this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox1.BackColor = System.Drawing.Color.Transparent; - this.pickerBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox1.Location = new System.Drawing.Point(239, 227); - this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.pickerBox1.Name = "pickerBox1"; - this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox1.Size = new System.Drawing.Size(140, 32); - this.pickerBox1.SubmitButton = null; - this.pickerBox1.TabIndex = 174; - // - // pickerBox2 - // - this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox2.BackColor = System.Drawing.Color.Transparent; - this.pickerBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox2.Location = new System.Drawing.Point(239, 268); - this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.pickerBox2.Name = "pickerBox2"; - this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox2.Size = new System.Drawing.Size(140, 32); - this.pickerBox2.SubmitButton = null; - this.pickerBox2.TabIndex = 175; - // - // horizontalSeparator1 - // - this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator1.Location = new System.Drawing.Point(10, 215); - this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator1.Name = "horizontalSeparator1"; - this.horizontalSeparator1.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator1.TabIndex = 176; - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 310); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 177; - // - // AddTileForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.horizontalSeparator1); - this.Controls.Add(this.pickerBox2); - this.Controls.Add(this.pickerBox1); - this.Controls.Add(this.button1); - this.Controls.Add(this.textBox4); - this.Controls.Add(this.textBox3); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.label6); - this.Controls.Add(this.label7); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Title = "Add Tile"; - this.Name = "AddTileForm"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.label2, 0); - this.Controls.SetChildIndex(this.label3, 0); - this.Controls.SetChildIndex(this.label4, 0); - this.Controls.SetChildIndex(this.label7, 0); - this.Controls.SetChildIndex(this.label6, 0); - this.Controls.SetChildIndex(this.textBox2, 0); - this.Controls.SetChildIndex(this.textBox3, 0); - this.Controls.SetChildIndex(this.textBox4, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.pickerBox1, 0); - this.Controls.SetChildIndex(this.pickerBox2, 0); - this.Controls.SetChildIndex(this.horizontalSeparator1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - private void button1_Click(object sender, EventArgs e) - { - TileModel model = buildModel(); - - if (this.TilePanelLayout != null) - { - this.TilePanelLayout.AddTile(model); - } - else if (this.ListBox != null) - { - int n = this.ListBox.ListBox.Items.Add(model); - this.ListBox.ListBox.SelectedIndex = n; - } - - this.Close(); - } - - protected TileModel buildModel() - { - TileModel rs = new TileModel() - { - Title = textBox1.Text?.Trim(), - ProcessFilename = textBox2.Text?.Trim(), - ProcessArgument = textBox3.Text?.Trim(), - ProcessWorkingDirectory = textBox4.Text?.Trim(), - ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex, - ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1) - }; - - if (!this.AimCoord.Equals(new Point(-1, -1))) - { - rs.Position = this.AimCoord; - } - - return rs; - } - - } -} diff --git a/Windows/Forms/Tile/AddTileForm.resx b/Windows/Forms/Tile/AddTileForm.resx deleted file mode 100644 index e6f3e1a..0000000 --- a/Windows/Forms/Tile/AddTileForm.resx +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAK9JREFUOE/t0zsKwkAURuGp1BWJK3EhIrgAV+EOLLWwtRQLwQdiIbbiIkwynj+O - IVwnyhR2XvjyInNIkXHee8f0cEQBPbDOaKEarSvXhsAJO4wirlB4jipiA3phoIvIrLFChhnKiA3o8Ckw - RR93LNBODVwwwRL62kNKYIxNzQ1FSsDOEHk08HrYJMw/8KtA06/cCef6KJDZgDbTFrHNZO3x9idqOyui - m2+07bvPgHcPXOhtG3D6cUIAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAMZJREFUOE/tk7sNwjAQQF3BRohJGAQhMQBTsAElFLSUiAKJTxIXhBZlCILNuyRG - iXEQKeg46fmsO/slhU9Za5XWehiXYcD6JElygZ6qhdwTioVDGo4wDXDjsohXdYkvMDTHVa8R9Hb0tpCz - XzqJL5Df/CRYRFE0Yn8nr9M07XcSwBXmXN6QDfncRTCjt6+Rgfla4Adfn3D+ERS4Yht/wY8FxVN2xTac - gLP5qyYLAhmmA4SGyeeEoPkSq3EWydsoB4gRDEqBVU/p15ajstHKCgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAJtJREFUOE/t0zEKwkAQheEpvILHSLySlTeJ6AnEzpPYi0ERPIKWKtZKNv9LNS5x - E6xS+OCDJew8tsgYmeCECsGZo1dKXLBwtnghQ2fe0JDPGHecsW6xwgwjNM8tdIgyxQ0qij2gORV9LejK - Bk8dfi3QjGY/C0IISS7/gkEVtP3KfbKEZm0PLZM++IVK0d0rdrAcR8TrnKK7BzPLa7Wb+WX/Nb8PAAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAALZJREFUOE/tkzEKwjAYRjt4BY9hvZKTN1HsCYqbJzGzKBGb9gY6qjgrxvdJK7ZS - Gpwc/ODBnzTvg0AT5Xk+hB3cwVc456ZRSIqi2MAeafbGEq5Zlg3KY+1Bvkkql89Ya/vsnUCZN8FJYWyM - 6ekKnsWkdF9hb8S3I6ioyRnkpa0FXcFbwOXrAjlyawXe+06q/At+qoDh41cOCU4iV8OaQY8pUVEgOnuA - VcSzjRm2UHvOHeisdc7FDwDnJKIbLgP9AAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/EditGroupForm.cs b/Windows/Forms/Tile/EditGroupForm.cs deleted file mode 100644 index 0929250..0000000 --- a/Windows/Forms/Tile/EditGroupForm.cs +++ /dev/null @@ -1,187 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; - -namespace AppLauncher.Windows.Forms -{ - public class EditGroupForm : TDialogForm - { - public static void ShowDialog(TTilePanelLayout control) - { - EditGroupForm form = new EditGroupForm(); - form.TilePanelLayout = control; - form.ShowDialog(); - } - - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private TButton button1; - private TPickerBox pickerBox1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TTextBox textBox1; - - public TTilePanelLayout TilePanelLayout { get; set; } = null; - - public EditGroupForm() : base() - { - InitializeComponent(); - - pickerBox1.ComboBox.Items.Clear(); - pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); - if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditGroupForm)); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 50); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label2.Location = new System.Drawing.Point(18, 91); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(131, 32); - this.label2.TabIndex = 155; - this.label2.Text = "Show Only Expanded"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 50); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Title"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.IsSelected = false; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // pickerBox1 - // - this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox1.BackColor = System.Drawing.Color.Transparent; - this.pickerBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox1.Location = new System.Drawing.Point(239, 91); - this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.pickerBox1.Name = "pickerBox1"; - this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox1.Size = new System.Drawing.Size(140, 32); - this.pickerBox1.SubmitButton = null; - this.pickerBox1.TabIndex = 174; - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 133); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 182; - // - // EditGroupForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.pickerBox1); - this.Controls.Add(this.button1); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Name = "EditGroupForm"; - this.Text = "Edit Group"; - this.Title = "Edit Group"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.label2, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.pickerBox1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - if (this.TilePanelLayout != null) - { - textBox1.Text = this.TilePanelLayout.Model.Title; - pickerBox1.ComboBox.SelectedIndex = (this.TilePanelLayout.Model.IsExclusive ? 1 : 0); - } - } - - private void button1_Click(object sender, EventArgs e) - { - TileGroupModel model = this.TilePanelLayout.Model; - model.Title = textBox1.Text?.Trim(); - model.IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1); - - this.TilePanelLayout.UpdateModel(model); - - this.Close(); - } - - } -} diff --git a/Windows/Forms/Tile/EditGroupForm.resx b/Windows/Forms/Tile/EditGroupForm.resx deleted file mode 100644 index 3747e00..0000000 --- a/Windows/Forms/Tile/EditGroupForm.resx +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/EditListTileForm.cs b/Windows/Forms/Tile/EditListTileForm.cs deleted file mode 100644 index d901c45..0000000 --- a/Windows/Forms/Tile/EditListTileForm.cs +++ /dev/null @@ -1,302 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace AppLauncher.Windows.Forms -{ - public class EditListTileForm : TDialogForm - { - public static void ShowDialog(TTilePanel control) - { - EditListTileForm form = new EditListTileForm(); - form.TilePanel = control; - form.ShowDialog(); - } - - private System.Windows.Forms.Label label1; - private TButton button1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TTextBox textBox1; - private TListBox listBox1; - private System.Windows.Forms.Label label2; - - public TTilePanel TilePanel { get; set; } = null; - - public EditListTileForm() : base() - { - InitializeComponent(); - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditListTileForm)); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle1 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle2 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle3 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox(); - this.label2 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - // lblDescription - // - this.Title = "Edit List Tile"; - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 50); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 50); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Title"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 92); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 177; - // - // listBox1 - // - this.listBox1.AllowDrop = true; - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.BackColor = System.Drawing.Color.Transparent; - this.listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.listBox1.Location = new System.Drawing.Point(159, 101); - this.listBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); - this.listBox1.Name = "listBox1"; - this.listBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.listBox1.Size = new System.Drawing.Size(220, 280); - this.listBox1.SubmitButton = null; - this.listBox1.TabIndex = 180; - this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); - this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); - this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); - this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label2.Location = new System.Drawing.Point(18, 104); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(131, 32); - this.label2.TabIndex = 181; - this.label2.Text = "List"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // EditListTileForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.label2); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.button1); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Title = "Edit List Tile"; - this.Name = "EditListTileForm"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - this.Controls.SetChildIndex(this.listBox1, 0); - this.Controls.SetChildIndex(this.label2, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - listBox1.ListBox.Items.Clear(); - - if (this.TilePanel == null) return; - if (this.TilePanel.ModelInfo == null) return; - - textBox1.Text = this.TilePanel.ModelInfo.Title; - - if (this.TilePanel.ModelInfo.Items != null) - { - foreach (TileModel item in this.TilePanel.ModelInfo.Items) - { - if (item.IsGroup) - { - continue; - } - - listBox1.ListBox.Items.Add(item); - } - } - } - - private void button1_Click(object sender, EventArgs e) - { - TileModel model = new TileModel() - { - Title = textBox1.Text?.Trim(), - IsGroup = true - }; - - model.Items = new System.Collections.Generic.List(); - - foreach (TileModel item in listBox1.ListBox.Items.OfType()) - { - if (item.IsGroup) - { - continue; - } - - model.Items.Add(item); - } - - this.TilePanel.LoadInfo(model); - - this.Close(); - } - - private void listBox1_OnAdd(object sender, EventArgs e) => AddTileForm.ShowDialog(listBox1); - - private void listBox1_OnEdit(object sender, EventArgs e) - { - if (listBox1.ListBox.Items.Count <= 0) - { - return; - } - - EditTileForm.ShowDialog(listBox1); - } - - private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - e.Effect = DragDropEffects.Link; - } - else - { - e.Effect = DragDropEffects.None; - } - } - - private void listBox1_DragDrop(object sender, DragEventArgs e) - { - string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; - if (fileList == null) - { - return; - } - - if (fileList.Length <= 0) - { - return; - } - - if (string.IsNullOrWhiteSpace(fileList[0])) - { - return; - } - - TileModel model = new TileModel() - { - ProcessFilename = fileList[0], - Title = Path.GetFileName(fileList[0]) - }; - - // exe - if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) - { - if (File.Exists(fileList[0])) - { - try - { - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); - if (fvi != null) - { - model.Title = fvi.ProductName; - } - } - catch - { - // do nothing - } - } - - if (string.IsNullOrWhiteSpace(model.Title)) - { - model.Title = Path.GetFileNameWithoutExtension(fileList[0]); - } - } - - listBox1.ListBox.Items.Add(model); - } - - } -} \ No newline at end of file diff --git a/Windows/Forms/Tile/EditListTileForm.resx b/Windows/Forms/Tile/EditListTileForm.resx deleted file mode 100644 index 3747e00..0000000 --- a/Windows/Forms/Tile/EditListTileForm.resx +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/EditTileForm.cs b/Windows/Forms/Tile/EditTileForm.cs deleted file mode 100644 index 7b876f0..0000000 --- a/Windows/Forms/Tile/EditTileForm.cs +++ /dev/null @@ -1,408 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.ThemedForms; -using System; - -namespace AppLauncher.Windows.Forms -{ - public class EditTileForm : TDialogForm - { - public static void ShowDialog(TTilePanel control) - { - EditTileForm form = new EditTileForm(); - form.TilePanel = control; - form.ShowDialog(); - } - - public static void ShowDialog(TListBox control) - { - EditTileForm form = new EditTileForm(); - form.ListBox = control; - form.ShowDialog(); - } - - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private TOpenFileTextBox textBox2; - private TTextBox textBox3; - private TFolderTextBox textBox4; - private TButton button1; - private TPickerBox pickerBox1; - private TPickerBox pickerBox2; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; - private TTextBox textBox1; - - public TTilePanel TilePanel { get; set; } = null; - public TListBox ListBox { get; set; } = null; - - public EditTileForm() : base() - { - InitializeComponent(); - - pickerBox1.ComboBox.Items.Clear(); - pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" }); - if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; - - pickerBox2.ComboBox.Items.Clear(); - pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); - if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0; - } - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditTileForm)); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle1 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle2 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle3 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.textBox2 = new RyzStudio.Windows.ThemedForms.TOpenFileTextBox(); - this.textBox3 = new RyzStudio.Windows.ThemedForms.TTextBox(); - this.textBox4 = new RyzStudio.Windows.ThemedForms.TFolderTextBox(); - this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TPickerBox(); - this.horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); - this.SuspendLayout(); - // - // imgbxClose - // - this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); - this.imgbxClose.Location = new System.Drawing.Point(367, 5); - // - // lblDescription - // - this.Title = "Edit Tile"; - // - // panel1 - // - this.panel1.Location = new System.Drawing.Point(394, 474); - // - // area1 - // - this.area1.Location = new System.Drawing.Point(1, 474); - this.area1.Size = new System.Drawing.Size(392, 5); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.BackColor = System.Drawing.Color.Transparent; - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox1.Location = new System.Drawing.Point(159, 50); - this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox1.Name = "textBox1"; - this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox1.Size = new System.Drawing.Size(220, 32); - this.textBox1.SubmitButton = null; - this.textBox1.TabIndex = 152; - this.textBox1.UseSystemPasswordChar = false; - // - // label6 - // - this.label6.BackColor = System.Drawing.Color.Transparent; - this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label6.Location = new System.Drawing.Point(18, 268); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(208, 32); - this.label6.TabIndex = 163; - this.label6.Text = "Run As Admin"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label7 - // - this.label7.BackColor = System.Drawing.Color.Transparent; - this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label7.Location = new System.Drawing.Point(18, 227); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(208, 32); - this.label7.TabIndex = 161; - this.label7.Text = "Window Style"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label4 - // - this.label4.BackColor = System.Drawing.Color.Transparent; - this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label4.Location = new System.Drawing.Point(18, 173); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(131, 32); - this.label4.TabIndex = 159; - this.label4.Text = "Working Directory"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label3 - // - this.label3.BackColor = System.Drawing.Color.Transparent; - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label3.Location = new System.Drawing.Point(18, 132); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(131, 32); - this.label3.TabIndex = 157; - this.label3.Text = "Argument"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label2.Location = new System.Drawing.Point(18, 91); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(131, 32); - this.label2.TabIndex = 155; - this.label2.Text = "Filename"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); - this.label1.Location = new System.Drawing.Point(18, 50); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(131, 32); - this.label1.TabIndex = 153; - this.label1.Text = "Title"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // textBox2 - // - this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox2.BackColor = System.Drawing.Color.Transparent; - this.textBox2.FileDialog = null; - this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox2.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox2.HighlightImage"))); - this.textBox2.Location = new System.Drawing.Point(159, 91); - this.textBox2.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); - this.textBox2.Name = "textBox2"; - this.textBox2.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox2.NormalImage"))); - this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox2.Size = new System.Drawing.Size(220, 32); - this.textBox2.SubmitButton = null; - this.textBox2.TabIndex = 170; - this.textBox2.UseSystemPasswordChar = false; - // - // textBox3 - // - this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox3.BackColor = System.Drawing.Color.Transparent; - this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox3.Location = new System.Drawing.Point(159, 132); - this.textBox3.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.textBox3.Name = "textBox3"; - this.textBox3.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox3.Size = new System.Drawing.Size(220, 32); - this.textBox3.SubmitButton = null; - this.textBox3.TabIndex = 171; - this.textBox3.UseSystemPasswordChar = false; - // - // textBox4 - // - this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox4.BackColor = System.Drawing.Color.Transparent; - this.textBox4.FolderDialog = null; - this.textBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.textBox4.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox4.HighlightImage"))); - this.textBox4.Location = new System.Drawing.Point(159, 173); - this.textBox4.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); - this.textBox4.Name = "textBox4"; - this.textBox4.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox4.NormalImage"))); - this.textBox4.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); - this.textBox4.Size = new System.Drawing.Size(220, 32); - this.textBox4.SubmitButton = null; - this.textBox4.TabIndex = 172; - this.textBox4.UseSystemPasswordChar = false; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button1.BackColor = System.Drawing.Color.Transparent; - this.button1.DefaultImage = null; - this.button1.DownImage = null; - this.button1.LabelText = "&Save"; - this.button1.Location = new System.Drawing.Point(251, 427); - this.button1.Name = "button1"; - this.button1.OverImage = null; - this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); - this.button1.Size = new System.Drawing.Size(128, 32); - this.button1.TabIndex = 173; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // pickerBox1 - // - this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox1.BackColor = System.Drawing.Color.Transparent; - this.pickerBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox1.Location = new System.Drawing.Point(239, 227); - this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.pickerBox1.Name = "pickerBox1"; - this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox1.Size = new System.Drawing.Size(140, 32); - this.pickerBox1.SubmitButton = null; - this.pickerBox1.TabIndex = 174; - // - // pickerBox2 - // - this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pickerBox2.BackColor = System.Drawing.Color.Transparent; - this.pickerBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.pickerBox2.Location = new System.Drawing.Point(239, 268); - this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); - this.pickerBox2.Name = "pickerBox2"; - this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); - this.pickerBox2.Size = new System.Drawing.Size(140, 32); - this.pickerBox2.SubmitButton = null; - this.pickerBox2.TabIndex = 175; - // - // horizontalSeparator1 - // - this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator1.Location = new System.Drawing.Point(10, 215); - this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator1.Name = "horizontalSeparator1"; - this.horizontalSeparator1.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator1.TabIndex = 176; - // - // horizontalSeparator2 - // - this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator2.Location = new System.Drawing.Point(10, 310); - this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator2.Name = "horizontalSeparator2"; - this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator2.TabIndex = 177; - // - // EditTileForm - // - this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.horizontalSeparator2); - this.Controls.Add(this.horizontalSeparator1); - this.Controls.Add(this.pickerBox2); - this.Controls.Add(this.pickerBox1); - this.Controls.Add(this.button1); - this.Controls.Add(this.textBox4); - this.Controls.Add(this.textBox3); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.label6); - this.Controls.Add(this.label7); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Title = "Edit Tile"; - this.Name = "EditTileForm"; - this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.panel1, 0); - this.Controls.SetChildIndex(this.area1, 0); - this.Controls.SetChildIndex(this.textBox1, 0); - this.Controls.SetChildIndex(this.label1, 0); - this.Controls.SetChildIndex(this.label2, 0); - this.Controls.SetChildIndex(this.label3, 0); - this.Controls.SetChildIndex(this.label4, 0); - this.Controls.SetChildIndex(this.label7, 0); - this.Controls.SetChildIndex(this.label6, 0); - this.Controls.SetChildIndex(this.textBox2, 0); - this.Controls.SetChildIndex(this.textBox3, 0); - this.Controls.SetChildIndex(this.textBox4, 0); - this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.pickerBox1, 0); - this.Controls.SetChildIndex(this.pickerBox2, 0); - this.Controls.SetChildIndex(this.horizontalSeparator1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator2, 0); - ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); - this.ResumeLayout(false); - - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - if (this.TilePanel != null) - { - updateModel(this.TilePanel.ModelInfo); - } - else if (this.ListBox != null) - { - if (this.ListBox.ListBox.SelectedItem != null) - { - TileModel model = (this.ListBox.ListBox.SelectedItem as TileModel); - if (model != null) - { - updateModel(model); - } - } - } - } - - private void button1_Click(object sender, EventArgs e) - { - TileModel model = buildModel(); - - if (this.TilePanel != null) - { - this.TilePanel.LoadInfo(model); - } - else if (this.ListBox != null) - { - int n = this.ListBox.ListBox.SelectedIndex; - if (n >= 0) - { - this.ListBox.ListBox.Items.RemoveAt(n); - this.ListBox.ListBox.Items.Insert(n, model); - this.ListBox.ListBox.SelectedIndex = n; - } - } - - this.Close(); - } - - protected TileModel buildModel() - { - return new TileModel() - { - Title = textBox1.Text?.Trim(), - ProcessFilename = textBox2.Text?.Trim(), - ProcessArgument = textBox3.Text?.Trim(), - ProcessWorkingDirectory = textBox4.Text?.Trim(), - ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex, - ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1) - }; - } - - protected void updateModel(TileModel model) - { - if (model == null) - { - return; - } - - textBox1.Text = model.Title; - textBox2.Text = model.ProcessFilename; - textBox3.Text = model.ProcessArgument; - textBox4.Text = model.ProcessWorkingDirectory; - pickerBox1.ComboBox.SelectedIndex = (int)model.ProcessWindowStyle; - pickerBox2.ComboBox.SelectedIndex = (model.ProcessAsAdmin ? 1 : 0); - } - - } -} \ No newline at end of file diff --git a/Windows/Forms/Tile/EditTileForm.resx b/Windows/Forms/Tile/EditTileForm.resx deleted file mode 100644 index e6f3e1a..0000000 --- a/Windows/Forms/Tile/EditTileForm.resx +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wwAADsMBx2+oZAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS4xYyqcSwAAANlJREFUOE+lU1sO - gjAQrHgRY6KemQ+VT9NrgAfgfRA+SawzdTAk2lhkkgm7s7vTAq0py/LUNM0dHEEXSfYWfd8fDQIOD23b - nvFMY6jeAcxpMFIwC1HX9YWzNOCWUunR4AxnvxpUVbV3zm2UGsbUlHoEDfBhdsgf4BWDCcmYGmtqCxtw - NeQcoJ6JjGn43hXy8CvIxDeIGbREZY+pHjLgtqeVHf7SzVq7VdmDM6x9GGj1/19h9UckVv3GWMwNRh5L - 6dGYH+UCHCTQ9SfV+7pMvJIIaLL0Oudd1x2eUQ8MyeAeq0cAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAK9JREFUOE/t0zsKwkAURuGp1BWJK3EhIrgAV+EOLLWwtRQLwQdiIbbiIkwynj+O - IVwnyhR2XvjyInNIkXHee8f0cEQBPbDOaKEarSvXhsAJO4wirlB4jipiA3phoIvIrLFChhnKiA3o8Ckw - RR93LNBODVwwwRL62kNKYIxNzQ1FSsDOEHk08HrYJMw/8KtA06/cCef6KJDZgDbTFrHNZO3x9idqOyui - m2+07bvPgHcPXOhtG3D6cUIAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAMZJREFUOE/tk7sNwjAQQF3BRohJGAQhMQBTsAElFLSUiAKJTxIXhBZlCILNuyRG - iXEQKeg46fmsO/slhU9Za5XWehiXYcD6JElygZ6qhdwTioVDGo4wDXDjsohXdYkvMDTHVa8R9Hb0tpCz - XzqJL5Df/CRYRFE0Yn8nr9M07XcSwBXmXN6QDfncRTCjt6+Rgfla4Adfn3D+ERS4Yht/wY8FxVN2xTac - gLP5qyYLAhmmA4SGyeeEoPkSq3EWydsoB4gRDEqBVU/p15ajstHKCgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAAJtJREFUOE/t0zEKwkAQheEpvILHSLySlTeJ6AnEzpPYi0ERPIKWKtZKNv9LNS5x - E6xS+OCDJew8tsgYmeCECsGZo1dKXLBwtnghQ2fe0JDPGHecsW6xwgwjNM8tdIgyxQ0qij2gORV9LejK - Bk8dfi3QjGY/C0IISS7/gkEVtP3KfbKEZm0PLZM++IVK0d0rdrAcR8TrnKK7BzPLa7Wb+WX/Nb8PAAAA - AElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - xAAADsQBlSsOGwAAALZJREFUOE/tkzEKwjAYRjt4BY9hvZKTN1HsCYqbJzGzKBGb9gY6qjgrxvdJK7ZS - Gpwc/ODBnzTvg0AT5Xk+hB3cwVc456ZRSIqi2MAeafbGEq5Zlg3KY+1Bvkkql89Ya/vsnUCZN8FJYWyM - 6ekKnsWkdF9hb8S3I6ioyRnkpa0FXcFbwOXrAjlyawXe+06q/At+qoDh41cOCU4iV8OaQY8pUVEgOnuA - VcSzjRm2UHvOHeisdc7FDwDnJKIbLgP9AAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/Windows/Forms/Tile/TTilePanel.Designer.cs b/Windows/Forms/Tile/TTilePanel.Designer.cs deleted file mode 100644 index 84b30d3..0000000 --- a/Windows/Forms/Tile/TTilePanel.Designer.cs +++ /dev/null @@ -1,124 +0,0 @@ -namespace AppLauncher.Windows.Forms -{ - partial class TTilePanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.label1 = new System.Windows.Forms.Label(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.contextMenuStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoEllipsis = true; - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.ContextMenuStrip = this.contextMenuStrip1; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(234)))), ((int)(((byte)(234))))); - this.label1.Location = new System.Drawing.Point(0, 47); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(70, 13); - this.label1.TabIndex = 24; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseClick); - this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseDoubleClick); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.editToolStripMenuItem, - this.removeToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(118, 48); - // - // editToolStripMenuItem - // - this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - this.editToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.editToolStripMenuItem.Text = "&Edit"; - this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); - // - // removeToolStripMenuItem - // - this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22); - this.removeToolStripMenuItem.Text = "&Remove"; - this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); - // - // pictureBox1 - // - this.pictureBox1.BackColor = System.Drawing.Color.Transparent; - this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.pictureBox1.ContextMenuStrip = this.contextMenuStrip1; - this.pictureBox1.ErrorImage = null; - this.pictureBox1.InitialImage = null; - this.pictureBox1.Location = new System.Drawing.Point(0, 8); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(0); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(70, 38); - this.pictureBox1.TabIndex = 25; - this.pictureBox1.TabStop = false; - this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseClick); - this.pictureBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseDoubleClick); - // - // TilePanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.label1); - this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(234)))), ((int)(((byte)(234))))); - this.Margin = new System.Windows.Forms.Padding(3, 3, 0, 0); - this.MaximumSize = new System.Drawing.Size(70, 70); - this.MinimumSize = new System.Drawing.Size(70, 70); - this.Name = "TilePanel"; - this.Size = new System.Drawing.Size(70, 70); - this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseClick); - this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.panel_MouseDoubleClick); - this.contextMenuStrip1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; - private System.Windows.Forms.ToolTip toolTip1; - } -} diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs deleted file mode 100644 index 88ad239..0000000 --- a/Windows/Forms/Tile/TTilePanel.cs +++ /dev/null @@ -1,429 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.Forms; -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Windows.Forms; - -namespace AppLauncher.Windows.Forms -{ - public partial class TTilePanel : TUserControl - { - protected bool isDragging = false; - protected Point startPosition = new Point(); - - protected ContextMenuStrip groupContextMenu = null; - protected TileModel modelInfo = new TileModel(); - - public TTilePanel() : base() - { - InitializeComponent(); - - this.BackColor = Color.FromArgb(250, 250, 250); - this.ContextMenuStrip = contextMenuStrip1; - this.DoubleBuffered = true; - this.AllowDrop = true; - - label1.ForeColor = Color.FromArgb(99, 105, 119); - label1.Font = new Font(this.Font.FontFamily, 8.25F); - - this.MouseDown += panel_MouseDown; - this.MouseUp += panel_MouseUp; - this.MouseMove += panel_MouseMove; - pictureBox1.MouseDown += panel_MouseDown; - pictureBox1.MouseUp += panel_MouseUp; - pictureBox1.MouseMove += panel_MouseMove; - label1.MouseDown += panel_MouseDown; - label1.MouseUp += panel_MouseUp; - label1.MouseMove += panel_MouseMove; - } - - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - - g.DrawRectangle(new Pen(Color.FromArgb(204, 206, 218), 1), new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - 1), (this.DisplayRectangle.Height - 1))); - - } - - [Category("Appearance"), Browsable(true)] - public string Title { get => label1.Text; protected set => label1.Text = value; } - - [Category("Appearance"), Browsable(true)] - public Image Image { get => pictureBox1.BackgroundImage; protected set => pictureBox1.BackgroundImage = value; } - - [Browsable(false)] - public TileModel ModelInfo => modelInfo; - - public TTilePanelLayout PanelContainer - { - get - { - if (this.Parent == null) - { - return null; - } - - if (this.Parent.GetType() != typeof(TTilePanelLayout)) - { - return null; - } - - return (TTilePanelLayout)this.Parent; - } - } - - protected override void OnDragDrop(DragEventArgs e) - { - string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; - - if (this.ModelInfo.IsGroup) - { - this.DropFileList(fileList); - - invalidateGroupMenu(this.ModelInfo); - } - else - { - if (this.PanelContainer != null) - { - this.PanelContainer.DropFileList(fileList); - } - } - } - - protected override void OnDragOver(DragEventArgs e) - { - base.OnDragDrop(e); - - e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None; - } - - public void DropFileList(string[] fileList) - { - if (fileList == null) - { - return; - } - - if (fileList.Length <= 0) - { - return; - } - - if (string.IsNullOrWhiteSpace(fileList[0])) - { - return; - } - - TileModel model = new TileModel() - { - ProcessFilename = fileList[0], - Title = Path.GetFileName(fileList[0]) - }; - - // exe - if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) - { - if (File.Exists(fileList[0])) - { - try - { - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); - if (fvi != null) - { - model.Title = fvi.ProductName; - } - } - catch - { - // do nothing - } - } - - if (string.IsNullOrWhiteSpace(model.Title)) - { - model.Title = Path.GetFileNameWithoutExtension(fileList[0]); - } - } - - this.ModelInfo.Items.Add(model); - } - - public void LoadInfo(TileModel model) - { - this.modelInfo = model; - - this.Image = null; - this.Title = model.Title; - - if (this.modelInfo.IsGroup) - { - this.Image = Properties.Resources.folder_32; - - invalidateGroupMenu(this.modelInfo); - } - else - { - this.Image = getIcon(model); - } - - toolTip1.SetToolTip(this, this.Title); - toolTip1.SetToolTip(pictureBox1, this.Title); - toolTip1.SetToolTip(label1, this.Title); - } - - private void panel_MouseDown(object sender, MouseEventArgs e) - { - TTilePanelLayout container = this.PanelContainer; - if (container == null) - { - return; - } - - this.BringToFront(); - - if (((e.Button == MouseButtons.Left) && (Control.ModifierKeys == Keys.Control)) || (e.Button == MouseButtons.Right)) - { - isDragging = true; - startPosition = e.Location; - } - } - - private void panel_MouseUp(object sender, MouseEventArgs e) - { - isDragging = false; - } - - private void panel_MouseMove(object sender, MouseEventArgs e) - { - if (isDragging) - { - TTilePanelLayout layoutPanel = this.PanelContainer; - if (layoutPanel == null) - { - return; - } - - int x = (this.Location.X + (e.Location.X - startPosition.X)); - int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); - - layoutPanel.MoveTile(this, x, y); - } - } - - private void panel_MouseClick(object sender, MouseEventArgs e) - { - if (Control.ModifierKeys == Keys.Control) return; - if (this.ModelInfo == null) return; - - if (e.Button == MouseButtons.Left) - { - if (this.ModelInfo.IsGroup) - { - if (groupContextMenu != null) - { - invalidateGroupMenuSize(); - - groupContextMenu.Show(this, e.Location); - } - } - else - { - panel_MouseDoubleClick(sender, e); - } - } - } - - private void panel_MouseDoubleClick(object sender, MouseEventArgs e) - { - if (Control.ModifierKeys == Keys.Control) return; - - if (e.Button == MouseButtons.Left) - { - execute(this.ModelInfo); - } - } - - private void editToolStripMenuItem_Click(object sender, EventArgs e) - { - if (this.ModelInfo.IsGroup) - { - EditListTileForm.ShowDialog(this); - } - else - { - EditTileForm.ShowDialog(this); - } - } - - private void removeToolStripMenuItem_Click(object sender, EventArgs e) - { - if (this.PanelContainer == null) - { - return; - } - - this.PanelContainer.Remove(this); - } - - protected void execute(TileModel model) - { - if (model == null) - { - return; - } - - if (model.IsGroup) - { - return; - } - - if (string.IsNullOrWhiteSpace(model.CleanProcessFilename)) - { - return; - } - - if (!File.Exists(model.CleanProcessFilename)) - { - return; - } - - ProcessStartInfo p = new ProcessStartInfo(); - p.FileName = model.CleanProcessFilename; - p.WindowStyle = model.ProcessWindowStyle; - if (!string.IsNullOrWhiteSpace(model.CleanProcessArgument)) p.Arguments = model.CleanProcessArgument; - if (!string.IsNullOrWhiteSpace(model.CleanProcessWorkingDirectory)) p.WorkingDirectory = model.CleanProcessWorkingDirectory; - if (model.ProcessAsAdmin) p.Verb = "runas"; - - MainForm parentForm = findMainForm(); - if (parentForm != null) - { - if (parentForm.CurrentSession != null) - { - if (parentForm.CurrentSession.HideOnClick) - { - parentForm.Visible = false; - } - } - } - - try - { - Process.Start(p); - } - catch (Exception exc) - { - MessageBox.Show(exc.Message); - } - } - - protected Image getIcon(TileModel model) - { - if (!File.Exists(model.CleanProcessFilename)) - { - return null; - } - - try - { - return Icon.ExtractAssociatedIcon(model.CleanProcessFilename)?.ToBitmap(); - } - catch - { - // do nothing - } - - return null; - } - - protected void invalidateGroupMenu(TileModel model) - { - if (groupContextMenu == null) - { - groupContextMenu = new ContextMenuStrip(); - } - - groupContextMenu.Items.Clear(); - - if (model.Items == null) - { - return; - } - - foreach (TileModel item in model.Items) - { - ToolStripItem toolItem = groupContextMenu.Items.Add(item.Title); - toolItem.Image = getIcon(item); - toolItem.Tag = item; - toolItem.Click += toolItem_Click; - } - } - - protected void invalidateGroupMenuSize() - { - if (this.PanelContainer != null) - { - if (this.PanelContainer.MainForm != null) - { - if (this.PanelContainer.MainForm.CurrentSession != null) - { - if (this.PanelContainer.MainForm.CurrentSession.EnableBigIconInFolder) - { - groupContextMenu.ImageScalingSize = new Size(24, 24); - return; - } - } - } - } - - groupContextMenu.ImageScalingSize = new Size(16, 16); - } - - protected MainForm findMainForm() - { - Control item = this; - - while (true) - { - item = item.Parent; - if (item == null) - { - return null; - } - - if (item.GetType() == typeof(MainForm)) - { - return (item as MainForm); - } - } - } - - private void toolItem_Click(object sender, EventArgs e) - { - if (sender.GetType() != typeof(ToolStripMenuItem)) - { - return; - } - - ToolStripMenuItem item = (sender as ToolStripMenuItem); - if (item.Tag == null) - { - return; - } - - if (item.Tag.GetType() != typeof(TileModel)) - { - return; - } - - TileModel model = (item.Tag as TileModel); - execute(model); - } - - } -} \ No newline at end of file diff --git a/Windows/Forms/Tile/TTilePanel.resx b/Windows/Forms/Tile/TTilePanel.resx deleted file mode 100644 index 955aa4f..0000000 --- a/Windows/Forms/Tile/TTilePanel.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 172, 17 - - \ No newline at end of file diff --git a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs deleted file mode 100644 index 7f5696d..0000000 --- a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs +++ /dev/null @@ -1,222 +0,0 @@ -namespace AppLauncher.Windows.Forms -{ - partial class TTilePanelLayout - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem(); - this.topToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.downToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); - this.label1 = new System.Windows.Forms.Label(); - this.contextMenuStrip1.SuspendLayout(); - this.contextMenuStrip2.SuspendLayout(); - this.SuspendLayout(); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.addToolStripMenuItem, - this.addListToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(181, 70); - // - // addToolStripMenuItem - // - this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.addToolStripMenuItem.Text = "&Add Tile"; - this.addToolStripMenuItem.Click += new System.EventHandler(this.addTileMenuItem_Click); - // - // addListToolStripMenuItem - // - this.addListToolStripMenuItem.Name = "addListToolStripMenuItem"; - this.addListToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.addListToolStripMenuItem.Text = "Add &Folder"; - this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click); - // - // contextMenuStrip2 - // - this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem2, - this.toolStripMenuItem5, - this.toolStripMenuItem1, - this.removeRowToolStripMenuItem, - this.toolStripSeparator2, - this.toolStripMenuItem4, - this.toolStripSeparator1, - this.toolStripMenuItem3}); - this.contextMenuStrip2.Name = "contextMenuStrip1"; - this.contextMenuStrip2.Size = new System.Drawing.Size(144, 148); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(143, 22); - this.toolStripMenuItem2.Text = "&Add Group"; - this.toolStripMenuItem2.Click += new System.EventHandler(this.addGroupMenuItem_Click); - // - // toolStripMenuItem5 - // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(143, 22); - this.toolStripMenuItem5.Text = "Add &Row"; - this.toolStripMenuItem5.Click += new System.EventHandler(this.addRowMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(143, 22); - this.toolStripMenuItem1.Text = "&Edit"; - this.toolStripMenuItem1.Click += new System.EventHandler(this.editGroupMenuItem_Click); - // - // removeRowToolStripMenuItem - // - this.removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem"; - this.removeRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22); - this.removeRowToolStripMenuItem.Text = "Remo&ve Row"; - this.removeRowToolStripMenuItem.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(140, 6); - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.topToolStripMenuItem, - this.upToolStripMenuItem, - this.downToolStripMenuItem, - this.bottomToolStripMenuItem}); - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(143, 22); - this.toolStripMenuItem4.Text = "&Move"; - // - // topToolStripMenuItem - // - this.topToolStripMenuItem.Name = "topToolStripMenuItem"; - this.topToolStripMenuItem.Size = new System.Drawing.Size(114, 22); - this.topToolStripMenuItem.Text = "&Top"; - this.topToolStripMenuItem.Click += new System.EventHandler(this.moveTopMenuItem_Click); - // - // upToolStripMenuItem - // - this.upToolStripMenuItem.Name = "upToolStripMenuItem"; - this.upToolStripMenuItem.Size = new System.Drawing.Size(114, 22); - this.upToolStripMenuItem.Text = "&Up"; - this.upToolStripMenuItem.Click += new System.EventHandler(this.moveUpMenuItem_Click); - // - // downToolStripMenuItem - // - this.downToolStripMenuItem.Name = "downToolStripMenuItem"; - this.downToolStripMenuItem.Size = new System.Drawing.Size(114, 22); - this.downToolStripMenuItem.Text = "&Down"; - this.downToolStripMenuItem.Click += new System.EventHandler(this.moveDownMenuItem_Click); - // - // bottomToolStripMenuItem - // - this.bottomToolStripMenuItem.Name = "bottomToolStripMenuItem"; - this.bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22); - this.bottomToolStripMenuItem.Text = "&Bottom"; - this.bottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomMenuItem_Click); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(140, 6); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(143, 22); - this.toolStripMenuItem3.Text = "&Remove"; - this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(99)))), ((int)(((byte)(105)))), ((int)(((byte)(119))))); - this.label1.Image = global::AppLauncher.Properties.Resources.toggle_left_ea_16; - this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.label1.Location = new System.Drawing.Point(227, 72); - this.label1.Margin = new System.Windows.Forms.Padding(0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(0, 13); - this.label1.TabIndex = 2; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); - this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); - // - // TTilePanelLayout - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.Transparent; - this.Controls.Add(this.label1); - this.Name = "TTilePanelLayout"; - this.Size = new System.Drawing.Size(370, 150); - this.contextMenuStrip1.ResumeLayout(false); - this.contextMenuStrip2.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem addListToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem topToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; - private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem; - private System.Windows.Forms.Label label1; - } -} diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs deleted file mode 100644 index e0a0fb6..0000000 --- a/Windows/Forms/Tile/TTilePanelLayout.cs +++ /dev/null @@ -1,855 +0,0 @@ -using AppLauncher.Models; -using RyzStudio.Windows.Forms; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AppLauncher.Windows.Forms -{ - public partial class TTilePanelLayout : TUserControl - { - public class Item - { - public TTilePanel Tile { get; set; } - public Point Coord { get; set; } = new Point(0, 0); - } - - protected readonly int tileSize = 70; - protected readonly int margin = 3; - protected readonly int labelHeight = 20; - protected readonly int collapseIncrement = 6; - protected readonly int expandIncrement = 8; - - protected TileGroupModel groupModel = null; - protected List items = new List(); - - protected int collapseHeight = 0; - protected int expandedHeight = 0; - - protected bool isAnimating = false; - protected bool isChecked = true; - protected Point lastMousePosition = new Point(); - protected Point gridSize = new Point(); - - public TTilePanelLayout(TileGroupModel model) : base() - { - InitializeComponent(); - - this.AllowDrop = true; - this.BackColor = Color.Transparent; - - this.LoadModel(model); - - label1.Location = new Point(0, 4); - label1.Margin = new Padding(0); - label1.Padding = new Padding(0); - } - - protected override void OnDragDrop(DragEventArgs e) - { - string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; - - this.DropFileList(fileList); - } - - protected override void OnDragOver(DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - e.Effect = DragDropEffects.Link; - } - else - { - e.Effect = DragDropEffects.None; - } - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - - this.Margin = new Padding(0); - this.Padding = new Padding(0, 0, 0, 10); - //this.MaximumSize = new Size(panel1.Width, ExpandedHeight); - //this.MinimumSize = new Size(panel1.Width, label1.Height); - //this.Size = this.MaximumSize; - //this.Size = new Size(panel1.Width, this.ExpandedHeight); - } - - protected override async void OnResize(EventArgs e) - { - base.OnResize(e); - - await this.InvalidateContainer(); - } - - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - - lastMousePosition = e.Location; - - bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= 20)); - - if (e.Button == MouseButtons.Left) - { - // do nothing - } - else if (e.Button == MouseButtons.Right) - { - if (isLabel) - { - contextMenuStrip2.Show(this, e.Location); - } - else - { - contextMenuStrip1.Show(this, e.Location); - } - } - } - - protected override void OnMouseDoubleClick(MouseEventArgs e) => base.OnMouseClick(e); - - public Point GridSize - { - get - { - //int w = (int)Math.Floor(decimal.Divide(this.Width, this.TileSize)); - //int h = (int)Math.Floor(decimal.Divide(this.Height - labelHeight, this.TileSize)); - - //return new Point(w, h); - return gridSize; - } - } - - public bool EnableAnimation - { - get - { - MainForm mainForm = this.MainForm; - if (mainForm == null) - { - return false; - } - - if (mainForm.CurrentSession == null) - { - return false; - } - - return mainForm.CurrentSession.EnableAnimation; - } - } - - public int CollapseHeight => labelHeight + collapseHeight; - - public int ExpandedHeight => expandedHeight + this.Padding.Bottom; - - public void DropFileList(string[] fileList) - { - if (fileList == null) - { - return; - } - - if (fileList.Length <= 0) - { - return; - } - - if (string.IsNullOrWhiteSpace(fileList[0])) - { - return; - } - - TileModel model = new TileModel() - { - ProcessFilename = fileList[0], - Title = Path.GetFileName(fileList[0]) - }; - - // exe - if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) - { - if (File.Exists(fileList[0])) - { - try - { - FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); - if (fvi != null) - { - model.Title = fvi.ProductName; - } - } - catch - { - // do nothing - } - } - - if (string.IsNullOrWhiteSpace(model.Title)) - { - model.Title = Path.GetFileNameWithoutExtension(fileList[0]); - } - } - - this.AddTile(model); - } - - public TileGroupModel Model - { - get - { - TileGroupModel rs = new TileGroupModel() - { - Title = groupModel.Title, - GridSize = new Size(this.GridSize.X, this.GridSize.Y), - IsExpanded = isChecked, - IsExclusive = groupModel.IsExclusive, - Items = this.Tiles - }; - - return rs; - } - } - - public FlowLayoutPanel FlowLayoutPanel - { - get - { - Control parentControl = this.Parent; - while (true) - { - if (parentControl == null) - { - return null; - } - - if (parentControl.GetType() == typeof(FlowLayoutPanel)) - { - return parentControl as FlowLayoutPanel; - } - - parentControl = parentControl.Parent; - } - } - } - - public MainForm MainForm - { - get - { - Control parentControl = this.FlowLayoutPanel; - while (true) - { - if (parentControl == null) - { - return null; - } - - if (parentControl.GetType() == typeof(MainForm)) - { - return parentControl as MainForm; - } - - parentControl = parentControl.Parent; - } - } - } - - public List Tiles - { - get - { - List rs = new List(); - foreach (Item item in items) - { - TileModel model = item.Tile.ModelInfo; - model.Position = item.Coord; - - rs.Add(model); - } - - return rs; - } - } - - public int TileSize => (tileSize + margin); - - public void AddTile(TileModel tile) - { - Point gridSize = this.GridSize; - - if (items.Count >= (gridSize.X * gridSize.Y)) - { - this.SetGridSize(gridSize.X, (gridSize.Y + 1)); - } - - Point? newCoord = tile.Position; - if ((newCoord == null) || hasTile(tile.Position)) - { - newCoord = findLastFreeCoord(); - } - - if (newCoord == null) - { - return; - } - - tile.Position = newCoord.Value; - - TTilePanel panel = new TTilePanel(); - panel.LoadInfo(tile); - panel.Location = convertCoordToLocation(tile.Position); - - items.Add(new Item() - { - Tile = panel, - Coord = tile.Position - }); - - this.Controls.Add(panel); - } - - public void Clear() - { - this.Controls.Clear(); - } - - public async Task Collapse() - { - await Task.Run(() => - { - if (isAnimating) return; - - isAnimating = true; - isChecked = false; - - if (this.EnableAnimation) - { - while (this.Height > this.CollapseHeight) - { - ThreadControl.SetHeight(this, (this.Height - collapseIncrement)); - - Thread.Sleep(10); - } - } - - ThreadControl.SetHeight(this, this.CollapseHeight); - - isAnimating = false; - - this.Invalidate(this.DisplayRectangle, false); - }); - } - - public async Task Expand() - { - await Task.Run(() => - { - if (isAnimating) return; - - isAnimating = true; - isChecked = true; - - if (this.EnableAnimation) - { - while (this.Height < this.ExpandedHeight) - { - ThreadControl.SetHeight(this, (this.Height + expandIncrement)); - Thread.Sleep(10); - } - } - - ThreadControl.SetHeight(this, this.ExpandedHeight); - - isAnimating = false; - - this.Invalidate(this.DisplayRectangle, false); - }); - } - - public Point GetTilePosition(int posX, int posY) - { - int x = (int)Math.Round(decimal.Divide(posX, this.TileSize)); - int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize)); - - if (x < 0) x = 0; - if (y < 0) y = 0; - - return new Point((x * this.TileSize), ((y * this.TileSize) + labelHeight)); - } - - public async Task InvalidateContainer() - { - if (isAnimating) - { - return; - } - - if (isChecked) - { - await this.Expand(); - } - else - { - await this.Collapse(); - } - } - - public void AddGroup() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - this.FlowLayoutPanel.Controls.Add(new TTilePanelLayout(new TileGroupModel() - { - Title = "New Group", - GridSize = new Size(8, 1) - })); - } - - public void AddRow() => this.SetGridSize(gridSize.X, (gridSize.Y + 1)); - - public void EditGroup() => EditGroupForm.ShowDialog(this); - - public void LoadModel(TileGroupModel model) - { - groupModel = model; - - isChecked = groupModel.IsExpanded; - - label1.Text = " " + groupModel?.Title; - label1.Image = (isChecked ? Properties.Resources.toggle_right_ea_16 : Properties.Resources.toggle_left_ea_16); - - this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); - this.LoadTiles(model.Items); - this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); - - this.Invalidate(); - } - - public void UpdateModel(TileGroupModel model) - { - groupModel = model; - isChecked = groupModel.IsExpanded; - - label1.Text = " " + groupModel?.Title; - - this.Invalidate(); - } - - public void LoadTiles(List tiles) - { - if (tiles == null) - { - return; - } - - if (tiles.Count() <= 0) - { - return; - } - - foreach (TileModel item in tiles) - { - // resolve final grid position - Point? confirmedPosition = resolveCoord(item.Position); - if (confirmedPosition == null) - { - continue; - } - - // place control - TTilePanel panel = new TTilePanel(); - panel.LoadInfo(item); - panel.Location = convertCoordToLocation(confirmedPosition.Value); - - items.Add(new Item() - { - Tile = panel, - Coord = confirmedPosition.Value - }); - - this.Controls.Add(panel); - } - } - - public void MoveTile(TTilePanel panel, int posX, int posY) - { - Item item = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault(); - if (item == null) - { - return; - } - - Point newPosition = convertLocationToCoord_Nearest(posX, posY); - if (!isTileInBounds(newPosition)) - { - return; - } - - if (hasTile(newPosition)) - { - Item swapItem = items.Where(x => x.Coord.Equals(newPosition)).FirstOrDefault(); - if (swapItem != null) - { - swapItem.Coord = item.Coord; - swapItem.Tile.Location = convertCoordToLocation(item.Coord); - } - - item.Coord = newPosition; - panel.Location = convertCoordToLocation(newPosition); - } - else - { - item.Coord = newPosition; - panel.Location = convertCoordToLocation(newPosition); - } - } - - public void MoveTop() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - this.FlowLayoutPanel.Controls.SetChildIndex(this, 0); - } - - public void MoveUp() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this); - if (pos <= 0) - { - return; - } - - this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos - 1)); - } - - public void MoveDown() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this); - if (pos >= (this.FlowLayoutPanel.Controls.Count - 1)) - { - return; - } - - this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos + 1)); - } - - public void MoveBottom() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - this.FlowLayoutPanel.Controls.SetChildIndex(this, (this.FlowLayoutPanel.Controls.Count - 1)); - } - - public void Remove() - { - if (this.FlowLayoutPanel == null) - { - return; - } - - this.FlowLayoutPanel.Controls.Remove(this); - } - - public void Remove(TTilePanel panel) - { - Item m = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault(); - if (m != null) - { - items.Remove(m); - } - - this.Controls.Remove(panel); - } - - public void SetGridSize(int width, int height) - { - gridSize = new Point(width, height); - - groupModel.GridSize.Height = height; - - expandedHeight = (this.TileSize * height) + labelHeight; - - int w = (this.TileSize * gridSize.X); - - this.Size = new Size(w, (isChecked ? this.ExpandedHeight : this.CollapseHeight)); - } - - protected Point convertCoordToLocation(Point position) => new Point((position.X * this.TileSize), ((position.Y * this.TileSize) + labelHeight)); - - protected Point convertLocationToCoord(int posX, int posY) - { - int x = (int)Math.Ceiling(decimal.Divide(posX, this.TileSize)); - int y = (int)Math.Ceiling(decimal.Divide((posY - labelHeight), this.TileSize)); - - x--; - y--; - - if (x < 0) x = 0; - if (y < 0) y = 0; - - return new Point(x, y); - } - - protected Point convertLocationToCoord_Nearest(int posX, int posY) - { - int x = (int)Math.Round(decimal.Divide(posX, this.TileSize)); - int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize)); - - if (x < 0) x = 0; - if (y < 0) y = 0; - - return new Point(x, y); - } - - protected Point? findFirstFreeCoord() - { - Point gridSize = this.GridSize; - - for (int y = 0; y < gridSize.Y; y++) - { - for (int x = 0; x < gridSize.X; x++) - { - if (hasTile(new Point(x, y))) - { - continue; - } - - return new Point(x, y); - } - } - - return null; - } - - protected Point? findLastFreeCoord() - { - Point gridSize = this.GridSize; - - // none available - if (items.Count >= (gridSize.X * gridSize.Y)) - { - return null; - } - - if (items.Count <= 0) - { - return findFirstFreeCoord(); - } - - // only one available - if (items.Count >= ((gridSize.X * gridSize.Y) - 1)) - { - return findFirstFreeCoord(); - } - - Point? rv = null; - - for (int y = (gridSize.Y - 1); y >= 0; y--) - { - for (int x = (gridSize.X - 1); x >= 0; x--) - { - if (hasTile(new Point(x, y))) - { - if (rv.HasValue) - { - return rv; - } - } - else - { - rv = new Point(x, y); - } - } - } - - return null; - } - - protected bool hasTile(Point position) - { - if (items == null) - { - return false; - } - - if (items.Count <= 0) - { - return false; - } - - return (items.Count(x => x.Coord.Equals(position)) > 0); - } - - protected bool isTileInBounds(Point position) - { - Point gridSize = this.GridSize; - - if (position.X >= gridSize.X) - { - return false; - } - - if (position.Y >= gridSize.Y) - { - return false; - } - - return true; - } - - protected Point? resolveCoord(Point coord) - { - if (!isTileInBounds(coord)) - { - return null; - } - - if (!hasTile(coord)) - { - return coord; - } - - return resolveNextCoord(coord); - } - - protected Point? resolveNextCoord(Point coord) - { - Point gridSize = this.GridSize; - Point newCoord = coord; - - while (true) - { - newCoord.X++; - - if (newCoord.X >= gridSize.X) - { - newCoord.Y++; - newCoord.X = 0; - } - - if (!isTileInBounds(newCoord)) - { - return null; - } - - if (hasTile(newCoord)) - { - continue; - } - - return newCoord; - } - } - - private void addTileMenuItem_Click(object sender, EventArgs e) - { - Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); - - AddTileForm.ShowDialog(this, coord); - } - - private void addListTileMenuItem_Click(object sender, EventArgs e) - { - Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); - - AddListTileForm.ShowDialog(this, coord); - } - - private void addGroupMenuItem_Click(object sender, EventArgs e) => this.AddGroup(); - - private void addRowMenuItem_Click(object sender, EventArgs e) => this.AddRow(); - - private void editGroupMenuItem_Click(object sender, EventArgs e) => this.EditGroup(); - - private void moveTopMenuItem_Click(object sender, EventArgs e) => this.MoveTop(); - - private void moveUpMenuItem_Click(object sender, EventArgs e) => this.MoveUp(); - - private void moveDownMenuItem_Click(object sender, EventArgs e) => this.MoveDown(); - - private void moveBottomMenuItem_Click(object sender, EventArgs e) => this.MoveBottom(); - - private void removeGroupMenuItem3_Click(object sender, EventArgs e) => this.Remove(); - - private void removeRowToolStripMenuItem_Click(object sender, EventArgs e) - { - bool rs = items.Exists(x => x.Coord.Y.Equals(gridSize.Y - 1)); - if (!rs) - { - this.SetGridSize(gridSize.X, (gridSize.Y - 1)); - } - } - - private async void label1_MouseClick(object sender, MouseEventArgs e) - { - if (isAnimating) return; - - if (e.Button == MouseButtons.Left) - { - isChecked = !isChecked; - - label1.Image = (isChecked ? Properties.Resources.toggle_right_ea_16 : Properties.Resources.toggle_left_ea_16); - - this.Invalidate(); - - await this.InvalidateContainer(); - - // exclusivity - if (isChecked) - { - if (this.Model.IsExclusive) - { - if (this.FlowLayoutPanel != null) - { - foreach (TTilePanelLayout item in this.FlowLayoutPanel.Controls.OfType()) - { - if (item.Equals(this)) - { - continue; - } - - await item.Collapse(); - } - } - } - } - - label1.Image = (isChecked ? Properties.Resources.toggle_right_ea_16 : Properties.Resources.toggle_left_ea_16); - } - else if (e.Button == MouseButtons.Right) - { - contextMenuStrip2.Show(this, e.Location); - } - } - - } -} diff --git a/Windows/Forms/Tile/TTilePanelLayout.resx b/Windows/Forms/Tile/TTilePanelLayout.resx deleted file mode 100644 index 8baf68f..0000000 --- a/Windows/Forms/Tile/TTilePanelLayout.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 172, 17 - - \ No newline at end of file diff --git a/build-release.bat b/build-release.bat deleted file mode 100644 index 4647cd4..0000000 --- a/build-release.bat +++ /dev/null @@ -1,2 +0,0 @@ -"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" "skye.sln" /T:Build /P:Configuration=Release -PAUSE \ No newline at end of file diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 5d60ade9d37ee6deb89e358cb4d6cac929ebef26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17542 zcmd5^32;J00t`mB!9v(z3CtzH;00qYiAx9}aoYw7uns^H2x$<~pwS$i|Ld84>UncX z=Ip9p{f_SbzrSA}|Is5wiBo>0y!fI*`A}u!KPk$8D~d97Xy86UQQGO*Gtc<%7yh}T ztaw>b66iU~kNc6L{A`$_JWq9~2_=mP&mU&8nGL_Qn)J;?brz%UeOrp*4g0WRgyhLj z7L#ra;r0+Q4YgZMy7gAGZbYWZ^p{VfBo?DSPlH)2gSdBDjrzSLk2O2h@UzD)i@{(R zM7TeevA;KaCcAk4EZhEhF`GRpQ{aw}8)|H3z1?aa{?enCCG*WU`>W*Pg(?=57# zE*F#2t=1M+wr3YB_`f+UGxeU zj|@HJy6bKyt2|Q9Ru{a-CXGsoCQCQ9{iVgMPX(_BDT^g3=~-&~f{cCF*3BVUV?Drk zI#+X&tuI>1rdviulf_MQ<^Zj2*|eVh!~Mu&P1e0YxSIs_%#;!A=z)E)pvHXf^ZD4- z+DmN5#&vA&)SPIt_$(&F^dBOFCE4&Q;ik3Fzdq)q8`;_Fs+ib*NP(Lz&20a!oow0M zSqyz7cn0!T!XGyf8Ej_V@2Rd+v@>OF8oP4oyB`8=z;(o&nL0LIl_Sfjqn*2diPpDt z!tEB=-?5Eh*Ba^vjN^VQ6urM##ZUXk$o`xR|@UJ0f|UPEj-{$9Ph)&^j9pf4F^Vao#%&-%_N@CthP`zfxjSOWiC{g*EKh z#g2}##iVnK-dF30i>q~)`tZ~G7YRS#mrVLCs;t!Sg-i2;_9d^UJ0@-+TV2Jk1O#?w z{^FR}g?wJkKIoyn1#3nCmv4f>@Yh-yuvgHYdPK&)Zq#CH*a7KPzMZg4W}3NyguP zy*OME)^vVUMErH1tq)tL_4tXX_<={lH&@0_d-W;t4th#O*@3V;@bGcr$9^p^QeGzG zr~3}^uIlLFh}a(|{=1!>jPwX0Lsv#d#-9oqtR}-Af&bKr<4+`hfSNNoOW6Eo-dv?qu=y23sA?(_N(~GX5A?8TMUN3ApBfU$fEh{a`i-%L7u;29gURN9e+h_r{C*; zMke$2_Nw*di{|UsRQ!bZn!t~o?oW$vaQWi5aKk{KyHvY9F@TxE>aMugk~GuU%uNe~(Rel0l?b2)nY*6_etq z%)KZgz;@0WnIvTJVC@ky$Uc#Z^6)xD&pn@teSX$0_Q~Ro5Snai;bn5i^x^;2SAP7@ z?d)Y4mF^Hq+~-zh>v9XJ!{>`~rwjbFj~U)j@tgEHVhpV-S`oIgjQ_}{l;HfvPQ*Ex?8Tmk3Cu7$6g&SJqh@s;|QG4eFT2!MD)B1@1QF|XVRu8 z0Y7xiKK%L)fgd?NFB9*evue}h#t+?I_C-SX55jNM&lmW2YznnC9w+|2w697!G<^fz zw_0EJc(dVu1b+CCv`NOlc3B6jJm?Ie`PsK3&fhooyV+*i3$$cA>4`Xhyt5v9;?wXUW|`eIees||Dnqv?jZZ$9;OiR4a+({;c&u-91FANeH_(m z6*3@)FB|I-e39^RKa2#QyyRy?|F^?;uff)@Tf_>ezE74xzJ@;+F$csRqUqZGl@qZL zjlaJMF_V6QjZg?N8^mr9!y)XdA6=FM*N6cj7KHs;8^h}le#D?OZC;RV!wB#O^cees z&8Rof+FDG!92$Nqe|&$$8xeQJ8WJsGU)u0#@V-Rf{dl;2X+U6O6o!vI5K~%C@-#-0 z1$%w|%&BbG)=jM8>Xjf-urDDNsj0hze9Lqi;?X9=pm{9XWT?^L3Bre%He%a|aU<5P zDf=<{<L~;GEV_qG3c2>YP?U2W%tz`VgJ>m}D^<{*ju0B#C^9@6z}TqdSmY zVAe0RCL3O{+wFhypuu4Mq}bd?nBTB*5AXY$pHn~_ar*d>a~`c0vu-u!P&8YnzZe6t z*G=G^Ju;bT<2cZfu!mtU!=8q65;1-CySL@ zn{TlFf84>A&dJs4U9deXX#Jm-VK599JR;@eQVoAc<`h%;N^a|*rXp_cLbtL}Q6y2|>%q^5# zVh=ta&>ue0%0Rcl7^1e_vVT=z!8tK{hjUgG-(Td{S$$siZP~MGY+R1%oZtI2>%G^+ zT_dUuA`4JPn-B_qn!x=g&MrUQ@?|-Ri zEo(k>R3#Dnl=~lT7O(su@D2Pr8tr9&0RI&f!_p?fUmo{;*Ky3%U8jyedEAR@%nKjc zLvq4*20zjt*Fb*iho9hn@|cn8xL3>5{DX|)sHeM@7sI(2%z<#!b31hHy586jkY8V` zjzP2TGBDg|YE)T^i?&t|yLz!VgqoZB9D22#K307@lp4E({Z(j_$2&7d0)r2-0|VKh zpMn3;gZl(qp5yrF+y8Z4jqS+3NyMvKuDMwq@kV?poDc8mjdZpv6axDwf1dvv81?@P z{^YM73;rdA9|rM9Tns!BQ#!DtOQnxy`(rWa7sw6X#-nalSm#wq#E!zny>@TkBECUB z_+u`BKjwy<1b_IH<+N{m7sn;@Ur`%8&V=tc9DmGp@FO|~{#Xm>nxA*U8X?ld;@>w1 z^zGn}MEc}zV8R+H(!=17H6A{Ifc!K3-1!*D#k1`jN(6h_1O4BBT54-hJaLZoW=Q|P z`gL#&@r5t_u|?7U828)Oe z$W*6-h{tPCA3jXz)X=S=W5-I+)y4T>=GSBE89~1 zDfc;P&-laNIU(JzZl9r{GP{dF#K68ept_WU(j9`?d;gyJ9ik))xhS< zNi*^_ht``rG^R=-tyx$bGR-5ZsGP6za9OP7NPRDUBlG#{kFlnKSJ0VZ$TTh~X(-L% z+U&Gs&-v3eYTbceESfdLOFRzB{RBOW+HRgSCe?GL_9E$`9(G}W0=Fgl^m>KP_-$ov zHD^L>+RE%Hsy>f1snowt5%;BeH;nk*otZV(EzVi_ye{5$$BhlD4uA3R^W2Vstx}Ua zSJm5ZRaJ9-KDYm%)ak0gd6vL$(K1sEx93dB_R8@W(f+;8vugL$9(ze`|IFNc^?6s* zwV?LzI6C-RPU~bQ`Y0=P#A(utgS6%QX&;PpbH=;HnNpik_rb(bDIPhlC)&Sse%c$7F^{e{HK;Pv$5L&^KKpSM zbGvRa=Z$97Rupz)Tg~adx^#v81Z^Vj=8s|MnbuCnc|O@TIJmQmbvnH479E#eCD{Y8 z4RGF1PWaso+Nbs7Ey#ee3Hwwe4;e4e_ok+_sOJjPN$)HBvWpc_dry&lBhC)~JfLs( zN-WUV6Gxe`UM=T+MCW_)O+@?dUVr-ym-}?BcSp5yd4TsNI+rNY*$%&*{X*SrjXYo)E39*q$qf>U0Pr2)!<~Mpm&se*%pnKAo6esQXb##XBIe$&6OEFyf zy>VsXvi$B?wl2mO*%vO-!=|FXCC%{6#L+32Hhfy>^m^T-Km3^QUD(&Jf0x6qZraNC zb^I=%GG`js7iubx(Rz@!AN6THuK)Urt$bni`N)4&@iLz>-Hs}D?ZQ~@!@m1Hlyb(- zELhCz!;Ymn-$~WuCTEOnY^wjBzej!e#^E2t@4iHR{B8^WK={Cg|8e^Gx9{Q%)a22r zCD_;e4S0k6>W-Fe>}KUj)sKF4BmLHah0Jw~TcgJ`~}G%4F7rVE8n@)`c-Xyt}oO1Zc!h7j=rb*3a!lt5la*PMV#BmzEM)(;QX;~ zU|;?57V;mG17&N;njRW2S2In+{~q-*7BD7cT?X=K6UJ8IvPI5Gqf<}F|LXx`5n~c# z6Js>oI*l=nv5hev>G%8MTm^m8ik$T1o`MClJ7^C1Fqbf=sBR(bRbY;lFlRA$F^4gi qF{i`T>3O|0u|B>uu{^Fc(N07$b6RV{lbxQUjD3*5j%P?|;{OB00kg6I diff --git a/installer.iss b/installer.iss deleted file mode 100644 index 354cdaf..0000000 --- a/installer.iss +++ /dev/null @@ -1,52 +0,0 @@ -; Script generated by the Inno Setup Script Wizard. -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! - -#define MyAppName "Fizzy Launcher" -#define MyAppVersion "0.1.2.016" -#define MyAppPublisher "Hi, I'm Ray" -#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher" -#define MyAppExeName "fizzylauncher.exe" - -[Setup] -; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. -; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) -AppId={{472ED37C-C4FC-4B72-8BC3-C281A6E0D2F9} -AppName={#MyAppName} -AppVersion={#MyAppVersion} -;AppVerName={#MyAppName} {#MyAppVersion} -AppPublisher={#MyAppPublisher} -AppPublisherURL={#MyAppURL} -AppSupportURL={#MyAppURL} -AppUpdatesURL={#MyAppURL} -DefaultDirName={autopf}\{#MyAppName} -DefaultGroupName={#MyAppName} -DisableProgramGroupPage=yes -; Remove the following line to run in administrative install mode (install for all users.) -PrivilegesRequired=lowest -OutputDir=L:\gitlab-hiimray\fizzy-launcher\bin -OutputBaseFilename=fizzy-launcher -Compression=lzma -SolidCompression=yes -WizardStyle=modern - -[Languages] -Name: "english"; MessagesFile: "compiler:Default.isl" - -[Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked - -[Files] -Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\fizzylauncher.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\fizzylauncher.ui.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion -Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion -; NOTE: Don't use "Flags: ignoreversion" on any shared system files - -[Icons] -Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" -Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" -Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon - -[Run] -Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent - diff --git a/packages.config b/packages.config deleted file mode 100644 index a9de8b5..0000000 --- a/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/skye.sln b/skye.sln deleted file mode 100644 index f67c029..0000000 --- a/skye.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30523.141 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FizzyLauncher", "FizzyLauncher.csproj", "{66C1C75C-3612-4D23-B937-C3DE0D653292}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FizzyLauncher.UI", "FizzyLauncher.UI\FizzyLauncher.UI.csproj", "{D9A49347-583F-41B4-AFE1-63EC80BBDB38}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {66C1C75C-3612-4D23-B937-C3DE0D653292}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66C1C75C-3612-4D23-B937-C3DE0D653292}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66C1C75C-3612-4D23-B937-C3DE0D653292}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66C1C75C-3612-4D23-B937-C3DE0D653292}.Release|Any CPU.Build.0 = Release|Any CPU - {D9A49347-583F-41B4-AFE1-63EC80BBDB38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9A49347-583F-41B4-AFE1-63EC80BBDB38}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D9A49347-583F-41B4-AFE1-63EC80BBDB38}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D9A49347-583F-41B4-AFE1-63EC80BBDB38}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {517C5E2C-E479-4B03-A992-C875F8B7ABCD} - EndGlobalSection -EndGlobal From 2d4fd8233b2f0c634b7fe9272c0616032e083779 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 00:45:30 +0100 Subject: [PATCH 2/7] Added: port to net-5 --- .gitignore | 3 + AppResource.Designer.cs | 93 ++ AppResource.resx | 130 +++ FizzyLauncher.csproj | 85 ++ FizzyLauncher.csproj.user | 68 ++ FizzyLauncher.sln | 25 + MainForm.Designer.cs | 346 +++++++ MainForm.cs | 644 +++++++++++++ MainForm.resx | 670 ++++++++++++++ Models/LauncherSession.cs | 42 + Models/TileGroupModel.cs | 14 + Models/TileModel.cs | 100 +++ OptionsForm.cs | 279 ++++++ OptionsForm.resx | 80 ++ Program.cs | 23 + Resources/UI/arrow_down.png | Bin 0 -> 601 bytes Resources/UI/arrow_down2.png | Bin 0 -> 417 bytes Resources/UI/arrow_up.png | Bin 0 -> 590 bytes Resources/UI/arrow_up2.png | Bin 0 -> 410 bytes Resources/UI/close.png | Bin 0 -> 367 bytes Resources/UI/close2.png | Bin 0 -> 468 bytes Resources/UI/edit.png | Bin 0 -> 612 bytes Resources/UI/edit2.png | Bin 0 -> 419 bytes Resources/UI/file.png | Bin 0 -> 372 bytes Resources/UI/file2.png | Bin 0 -> 323 bytes Resources/UI/folder.png | Bin 0 -> 352 bytes Resources/UI/folder2.png | Bin 0 -> 288 bytes Resources/UI/minus.png | Bin 0 -> 532 bytes Resources/UI/minus2.png | Bin 0 -> 380 bytes Resources/UI/plus.png | Bin 0 -> 559 bytes Resources/UI/plus2.png | Bin 0 -> 398 bytes Resources/UI/trash.png | Bin 0 -> 382 bytes Resources/UI/trash2.png | Bin 0 -> 289 bytes Resources/folder_32.png | Bin 0 -> 601 bytes Resources/toggle-left-ea-16.png | Bin 0 -> 506 bytes Resources/toggle-right-ea-16.png | Bin 0 -> 502 bytes RyzStudio/Data/SQLite/SQLiteDatabase.cs | 444 +++++++++ RyzStudio/Drawing/Rectangoid.cs | 124 +++ RyzStudio/IO/FileType.cs | 56 ++ RyzStudio/IO/SessionFileFormatBase.cs | 290 ++++++ RyzStudio/IO/SharpZipLib.cs | 76 ++ RyzStudio/Net/HttpWeb.cs | 168 ++++ RyzStudio/Windows/Forms/StackLayoutPanel.cs | 69 ++ RyzStudio/Windows/Forms/TFlatButton.cs | 115 +++ RyzStudio/Windows/Forms/TForm.cs | 434 +++++++++ RyzStudio/Windows/Forms/TForm.resx | 424 +++++++++ .../Forms/THorizontalSeparator.Designer.cs | 37 + .../Windows/Forms/THorizontalSeparator.cs | 101 +++ .../Windows/Forms/THorizontalSeparator.resx | 120 +++ RyzStudio/Windows/Forms/TImageBox.cs | 84 ++ RyzStudio/Windows/Forms/TPanelBook.cs | 258 ++++++ RyzStudio/Windows/Forms/TUserControl.cs | 73 ++ RyzStudio/Windows/Forms/ThreadControl.cs | 571 ++++++++++++ .../ThemedForms/BorderlessForm.Designer.cs | 193 ++++ .../Windows/ThemedForms/BorderlessForm.cs | 409 +++++++++ .../Windows/ThemedForms/BorderlessForm.resx | 158 ++++ .../BorderlessToolForm.Designer.cs | 191 ++++ .../Windows/ThemedForms/BorderlessToolForm.cs | 394 ++++++++ .../ThemedForms/BorderlessToolForm.resx | 138 +++ .../ThemedForms/PickerBox/TPickerBox.cs | 98 ++ .../PickerBox/TPickerBox.designer.cs | 59 ++ .../ThemedForms/PickerBox/TPickerBox.resx | 120 +++ .../ThemedForms/PickerBox/TYesNoPickerBox.cs | 17 + RyzStudio/Windows/ThemedForms/TButton.cs | 170 ++++ .../Windows/ThemedForms/TButton.designer.cs | 61 ++ RyzStudio/Windows/ThemedForms/TButton.resx | 120 +++ .../ThemedForms/TDialogForm.Designer.cs | 47 + RyzStudio/Windows/ThemedForms/TDialogForm.cs | 117 +++ .../Windows/ThemedForms/TDialogForm.resx | 60 ++ RyzStudio/Windows/ThemedForms/TListBox.cs | 233 +++++ .../Windows/ThemedForms/TListBox.designer.cs | 182 ++++ RyzStudio/Windows/ThemedForms/TListBox.resx | 120 +++ RyzStudio/Windows/ThemedForms/TUserControl.cs | 106 +++ .../ThemedForms/TUserControl.designer.cs | 37 + .../ThemedForms/TextBox/TButtonTextBox.cs | 127 +++ .../TextBox/TButtonTextBox.designer.cs | 81 ++ .../ThemedForms/TextBox/TButtonTextBox.resx | 120 +++ .../TextBox/TFolderTextBox - Copy.resx | 120 +++ .../ThemedForms/TextBox/TFolderTextBox.cs | 42 + .../ThemedForms/TextBox/TFolderTextBox.resx | 120 +++ .../ThemedForms/TextBox/TKeyCodeTextBox.cs | 92 ++ .../ThemedForms/TextBox/TOpenFileTextBox.cs | 43 + .../Windows/ThemedForms/TextBox/TTextBox.cs | 100 +++ .../ThemedForms/TextBox/TTextBox.designer.cs | 60 ++ .../Windows/ThemedForms/TextBox/TTextBox.resx | 120 +++ Text/Json/JsonPointConverter.cs | 40 + Text/Json/JsonSizeConverter.cs | 40 + UIResource.Designer.cs | 243 +++++ UIResource.resx | 175 ++++ Windows/Forms/EditGroupForm.cs | 177 ++++ Windows/Forms/EditGroupForm.resx | 60 ++ Windows/Forms/EditTileFolderForm.cs | 384 ++++++++ Windows/Forms/EditTileFolderForm.resx | 60 ++ Windows/Forms/EditTileForm.cs | 483 ++++++++++ Windows/Forms/EditTileForm.resx | 97 ++ Windows/Forms/TilePanel.Designer.cs | 82 ++ Windows/Forms/TilePanel.cs | 491 ++++++++++ Windows/Forms/TilePanel.resx | 66 ++ Windows/Forms/TilePanelLayout.Designer.cs | 222 +++++ Windows/Forms/TilePanelLayout.cs | 849 ++++++++++++++++++ Windows/Forms/TilePanelLayout.resx | 126 +++ favicon.ico | Bin 0 -> 17542 bytes 102 files changed, 13696 insertions(+) create mode 100644 .gitignore create mode 100644 AppResource.Designer.cs create mode 100644 AppResource.resx create mode 100644 FizzyLauncher.csproj create mode 100644 FizzyLauncher.csproj.user create mode 100644 FizzyLauncher.sln create mode 100644 MainForm.Designer.cs create mode 100644 MainForm.cs create mode 100644 MainForm.resx create mode 100644 Models/LauncherSession.cs create mode 100644 Models/TileGroupModel.cs create mode 100644 Models/TileModel.cs create mode 100644 OptionsForm.cs create mode 100644 OptionsForm.resx create mode 100644 Program.cs create mode 100644 Resources/UI/arrow_down.png create mode 100644 Resources/UI/arrow_down2.png create mode 100644 Resources/UI/arrow_up.png create mode 100644 Resources/UI/arrow_up2.png create mode 100644 Resources/UI/close.png create mode 100644 Resources/UI/close2.png create mode 100644 Resources/UI/edit.png create mode 100644 Resources/UI/edit2.png create mode 100644 Resources/UI/file.png create mode 100644 Resources/UI/file2.png create mode 100644 Resources/UI/folder.png create mode 100644 Resources/UI/folder2.png create mode 100644 Resources/UI/minus.png create mode 100644 Resources/UI/minus2.png create mode 100644 Resources/UI/plus.png create mode 100644 Resources/UI/plus2.png create mode 100644 Resources/UI/trash.png create mode 100644 Resources/UI/trash2.png create mode 100644 Resources/folder_32.png create mode 100644 Resources/toggle-left-ea-16.png create mode 100644 Resources/toggle-right-ea-16.png create mode 100644 RyzStudio/Data/SQLite/SQLiteDatabase.cs create mode 100644 RyzStudio/Drawing/Rectangoid.cs create mode 100644 RyzStudio/IO/FileType.cs create mode 100644 RyzStudio/IO/SessionFileFormatBase.cs create mode 100644 RyzStudio/IO/SharpZipLib.cs create mode 100644 RyzStudio/Net/HttpWeb.cs create mode 100644 RyzStudio/Windows/Forms/StackLayoutPanel.cs create mode 100644 RyzStudio/Windows/Forms/TFlatButton.cs create mode 100644 RyzStudio/Windows/Forms/TForm.cs create mode 100644 RyzStudio/Windows/Forms/TForm.resx create mode 100644 RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs create mode 100644 RyzStudio/Windows/Forms/THorizontalSeparator.cs create mode 100644 RyzStudio/Windows/Forms/THorizontalSeparator.resx create mode 100644 RyzStudio/Windows/Forms/TImageBox.cs create mode 100644 RyzStudio/Windows/Forms/TPanelBook.cs create mode 100644 RyzStudio/Windows/Forms/TUserControl.cs create mode 100644 RyzStudio/Windows/Forms/ThreadControl.cs create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessForm.cs create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessForm.resx create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs create mode 100644 RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx create mode 100644 RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.resx create mode 100644 RyzStudio/Windows/ThemedForms/PickerBox/TYesNoPickerBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TButton.cs create mode 100644 RyzStudio/Windows/ThemedForms/TButton.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TButton.resx create mode 100644 RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TDialogForm.cs create mode 100644 RyzStudio/Windows/ThemedForms/TDialogForm.resx create mode 100644 RyzStudio/Windows/ThemedForms/TListBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TListBox.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TListBox.resx create mode 100644 RyzStudio/Windows/ThemedForms/TUserControl.cs create mode 100644 RyzStudio/Windows/ThemedForms/TUserControl.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.resx create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox - Copy.resx create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.resx create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TKeyCodeTextBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TOpenFileTextBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TTextBox.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TTextBox.designer.cs create mode 100644 RyzStudio/Windows/ThemedForms/TextBox/TTextBox.resx create mode 100644 Text/Json/JsonPointConverter.cs create mode 100644 Text/Json/JsonSizeConverter.cs create mode 100644 UIResource.Designer.cs create mode 100644 UIResource.resx create mode 100644 Windows/Forms/EditGroupForm.cs create mode 100644 Windows/Forms/EditGroupForm.resx create mode 100644 Windows/Forms/EditTileFolderForm.cs create mode 100644 Windows/Forms/EditTileFolderForm.resx create mode 100644 Windows/Forms/EditTileForm.cs create mode 100644 Windows/Forms/EditTileForm.resx create mode 100644 Windows/Forms/TilePanel.Designer.cs create mode 100644 Windows/Forms/TilePanel.cs create mode 100644 Windows/Forms/TilePanel.resx create mode 100644 Windows/Forms/TilePanelLayout.Designer.cs create mode 100644 Windows/Forms/TilePanelLayout.cs create mode 100644 Windows/Forms/TilePanelLayout.resx create mode 100644 favicon.ico diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28bcb4a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.vs +/bin +/obj diff --git a/AppResource.Designer.cs b/AppResource.Designer.cs new file mode 100644 index 0000000..4512104 --- /dev/null +++ b/AppResource.Designer.cs @@ -0,0 +1,93 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FizzyLauncher { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class AppResource { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal AppResource() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FizzyLauncher.AppResource", typeof(AppResource).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap folder_32 { + get { + object obj = ResourceManager.GetObject("folder_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap toggle_left_ea_16 { + get { + object obj = ResourceManager.GetObject("toggle_left_ea_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap toggle_right_ea_16 { + get { + object obj = ResourceManager.GetObject("toggle_right_ea_16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/AppResource.resx b/AppResource.resx new file mode 100644 index 0000000..f5bec56 --- /dev/null +++ b/AppResource.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\toggle-left-ea-16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\toggle-right-ea-16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj new file mode 100644 index 0000000..47ac8db --- /dev/null +++ b/FizzyLauncher.csproj @@ -0,0 +1,85 @@ + + + + WinExe + net5.0-windows + true + true + favicon.ico + false + fizzylauncher + Ray Lam + Hi, I'm Ray + Fizzy Launcher + Ray Lam + 0.2.1.055 + 0.2.1.055 + + + + bin\Debug\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + AppResource.resx + + + UserControl + + + True + True + UIResource.resx + + + + + + ResXFileCodeGenerator + AppResource.Designer.cs + + + TFolderTextBox.resx + + + ResXFileCodeGenerator + UIResource.Designer.cs + + + + \ No newline at end of file diff --git a/FizzyLauncher.csproj.user b/FizzyLauncher.csproj.user new file mode 100644 index 0000000..3091f15 --- /dev/null +++ b/FizzyLauncher.csproj.user @@ -0,0 +1,68 @@ + + + + false + + + + Form + + + UserControl + + + Component + + + UserControl + + + UserControl + + + UserControl + + + Form + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + UserControl + + + Form + + + Form + + + Form + + + Form + + + UserControl + + + UserControl + + + \ No newline at end of file diff --git a/FizzyLauncher.sln b/FizzyLauncher.sln new file mode 100644 index 0000000..aafd02f --- /dev/null +++ b/FizzyLauncher.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31410.357 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FizzyLauncher", "FizzyLauncher.csproj", "{4833FB27-0817-4720-A54B-180369B0C374}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4833FB27-0817-4720-A54B-180369B0C374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4833FB27-0817-4720-A54B-180369B0C374}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CB4C1DB0-19FE-4AA0-9621-D66FAC4CF7C5} + EndGlobalSection +EndGlobal diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs new file mode 100644 index 0000000..16b56d0 --- /dev/null +++ b/MainForm.Designer.cs @@ -0,0 +1,346 @@ +namespace FizzyLauncher +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); + this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.exitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); + this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); + this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showBigIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.enableAnimationsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); + this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.panel1 = new System.Windows.Forms.Panel(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.contextMenuStrip2.SuspendLayout(); + this.menuStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // saveFileDialog1 + // + this.saveFileDialog1.Filter = "Session files|*.jsonfig"; + this.saveFileDialog1.Title = "Choose file to save the session"; + // + // openFileDialog1 + // + this.openFileDialog1.Filter = "Session files|*.jsonfig"; + this.openFileDialog1.Title = "Choose session file"; + // + // notifyIcon1 + // + this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip2; + this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); + this.notifyIcon1.Text = "notifyIcon1"; + this.notifyIcon1.Visible = true; + this.notifyIcon1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseClick); + // + // contextMenuStrip2 + // + this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.exitToolStripMenuItem1}); + this.contextMenuStrip2.Name = "contextMenuStrip2"; + this.contextMenuStrip2.Size = new System.Drawing.Size(94, 26); + // + // exitToolStripMenuItem1 + // + this.exitToolStripMenuItem1.Name = "exitToolStripMenuItem1"; + this.exitToolStripMenuItem1.Size = new System.Drawing.Size(93, 22); + this.exitToolStripMenuItem1.Text = "E&xit"; + this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.viewToolStripMenuItem, + this.toolsToolStripMenuItem, + this.helpToolStripMenuItem1}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(633, 24); + this.menuStrip1.TabIndex = 2; + this.menuStrip1.MenuActivate += new System.EventHandler(this.menuStrip1_MenuActivate); + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.openToolStripMenuItem, + this.toolStripMenuItem13, + this.closeToolStripMenuItem, + this.toolStripMenuItem14, + this.saveToolStripMenuItem, + this.saveAsToolStripMenuItem, + this.toolStripMenuItem15, + this.exitToolStripMenuItem2}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "&File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.newToolStripMenuItem.Text = "&New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.openToolStripMenuItem.Text = "&Open"; + this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); + // + // toolStripMenuItem13 + // + this.toolStripMenuItem13.Name = "toolStripMenuItem13"; + this.toolStripMenuItem13.Size = new System.Drawing.Size(120, 6); + // + // closeToolStripMenuItem + // + this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; + this.closeToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.closeToolStripMenuItem.Text = "&Close"; + this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); + // + // toolStripMenuItem14 + // + this.toolStripMenuItem14.Name = "toolStripMenuItem14"; + this.toolStripMenuItem14.Size = new System.Drawing.Size(120, 6); + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.saveToolStripMenuItem.Text = "&Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); + // + // saveAsToolStripMenuItem + // + this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.saveAsToolStripMenuItem.Text = "Save &As..."; + this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); + // + // toolStripMenuItem15 + // + this.toolStripMenuItem15.Name = "toolStripMenuItem15"; + this.toolStripMenuItem15.Size = new System.Drawing.Size(120, 6); + // + // exitToolStripMenuItem2 + // + this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; + this.exitToolStripMenuItem2.Size = new System.Drawing.Size(123, 22); + this.exitToolStripMenuItem2.Text = "E&xit"; + this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem2_Click); + // + // viewToolStripMenuItem + // + this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.showBigIconsToolStripMenuItem, + this.enableAnimationsToolStripMenuItem, + this.alwaysOnTopToolStripMenuItem}); + this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; + this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20); + this.viewToolStripMenuItem.Text = "&View"; + // + // showBigIconsToolStripMenuItem + // + this.showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; + this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; + this.showBigIconsToolStripMenuItem.Click += new System.EventHandler(this.showBigIconsToolStripMenuItem_Click); + // + // enableAnimationsToolStripMenuItem + // + this.enableAnimationsToolStripMenuItem.Name = "enableAnimationsToolStripMenuItem"; + this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.enableAnimationsToolStripMenuItem.Text = "Enable &Animations"; + this.enableAnimationsToolStripMenuItem.Click += new System.EventHandler(this.enableAnimationsToolStripMenuItem_Click); + // + // alwaysOnTopToolStripMenuItem + // + this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; + this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; + this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click); + // + // toolsToolStripMenuItem + // + this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.optionsToolStripMenuItem}); + this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; + this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20); + this.toolsToolStripMenuItem.Text = "&Tools"; + // + // optionsToolStripMenuItem + // + this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.optionsToolStripMenuItem.Text = "&Options"; + this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click); + // + // helpToolStripMenuItem1 + // + this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.viewHelpToolStripMenuItem1, + this.toolStripMenuItem16, + this.aboutToolStripMenuItem1}); + this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1"; + this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20); + this.helpToolStripMenuItem1.Text = "&Help"; + // + // viewHelpToolStripMenuItem1 + // + this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; + this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(127, 22); + this.viewHelpToolStripMenuItem1.Text = "&View Help"; + this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click); + // + // toolStripMenuItem16 + // + this.toolStripMenuItem16.Name = "toolStripMenuItem16"; + this.toolStripMenuItem16.Size = new System.Drawing.Size(124, 6); + // + // aboutToolStripMenuItem1 + // + this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; + this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(127, 22); + this.aboutToolStripMenuItem1.Text = "&About"; + this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); + // + // panel1 + // + this.panel1.AutoScroll = true; + this.panel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.panel1.BackColor = System.Drawing.Color.Transparent; + this.panel1.Controls.Add(this.flowLayoutPanel1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 24); + this.panel1.Margin = new System.Windows.Forms.Padding(0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(10, 10, 10, 20); + this.panel1.Size = new System.Drawing.Size(633, 376); + this.panel1.TabIndex = 3; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.AutoSize = true; + this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent; + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.Location = new System.Drawing.Point(10, 10); + this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 20); + this.flowLayoutPanel1.Size = new System.Drawing.Size(0, 20); + this.flowLayoutPanel1.TabIndex = 29; + this.flowLayoutPanel1.WrapContents = false; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); + this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.ClientSize = new System.Drawing.Size(633, 400); + this.Controls.Add(this.panel1); + this.Controls.Add(this.menuStrip1); + this.DoubleBuffered = true; + this.ForeColor = System.Drawing.SystemColors.ControlText; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(420, 280); + this.Name = "MainForm"; + this.Text = "Fizzy Launcher"; + this.contextMenuStrip2.ResumeLayout(false); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.SaveFileDialog saveFileDialog1; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private System.Windows.Forms.NotifyIcon notifyIcon1; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem1; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13; + private System.Windows.Forms.ToolStripMenuItem closeToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem14; + private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem showBigIconsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem enableAnimationsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem alwaysOnTopToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem16; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; + } +} + diff --git a/MainForm.cs b/MainForm.cs new file mode 100644 index 0000000..bd47082 --- /dev/null +++ b/MainForm.cs @@ -0,0 +1,644 @@ +using FizzyLauncher.Models; +using FizzyLauncher.Text.Json; +using FizzyLauncher.Windows.Forms; +using RyzStudio.Windows.Forms; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Runtime.InteropServices; +using System.Text.Json; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace FizzyLauncher +{ + public partial class MainForm : Form + { + [DllImport("user32.dll")] + protected static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk); + + [DllImport("user32.dll")] + protected static extern bool UnregisterHotKey(IntPtr hWnd, int id); + + //protected const int MOD_ALT = 0x1; + //protected const int MOD_CONTROL = 0x2; + //protected const int MOD_SHIFT = 0x4; + //protected const int MOD_WIN = 0x8; + protected const int WM_HOTKEY = 0x312; + protected const int WM_QUERYENDSESSION = 0x0011; + + protected OptionsForm optionsForm = null; + protected string sessionFilename = null; + protected bool isBusy = false; + protected bool requestExit = false; + + + public MainForm() : base() + { + InitializeComponent(); + + notifyIcon1.Text = Application.ProductName; + + this.StartPosition = FormStartPosition.WindowsDefaultBounds; + this.Visible = false; + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + ThreadControl.SetVisible(this, false); + ThreadControl.SetSize(this, this.MinimumSize); + } + + protected async override void OnShown(EventArgs e) + { + base.OnShown(e); + + ThreadControl.SetVisible(this, false); + + string jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig"); + if (File.Exists(jsonfigFilename)) + { + await loadFile(jsonfigFilename); + } + else + { + this.CurrentSession = new LauncherSession(); + + ThreadControl.SetVisible(this, true); + } + } + + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + + if (this.CurrentSession == null) this.CurrentSession = new LauncherSession(); + + if (this.CurrentSession.HideOnClose && !requestExit) + { + this.Visible = !this.Visible; + e.Cancel = true; + return; + } + + requestExit = false; + + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + // do nothing + } + else + { + if (this.CurrentSession.AutoSave == LauncherSession.AutoSaveOption.Prompt) + { + DialogResult dr = MessageBox.Show("Save existing session?", "Exit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) + { + bool rv = saveFile(sessionFilename, false); + if (!rv) + { + e.Cancel = true; + } + } + else if (dr == DialogResult.No) + { + // do nothing + } + else if (dr == DialogResult.Cancel) + { + e.Cancel = true; + } + } + else if (this.CurrentSession.AutoSave == LauncherSession.AutoSaveOption.Yes) + { + saveFile(sessionFilename, false); + } + } + + if (this.CurrentSession.HotKey != null) + { + if (this.CurrentSession.HotKey.KeyCode != Keys.None) + { + // UnregisterHotKey((IntPtr)Handle, 1); + } + } + + } + + protected override void WndProc(ref Message m) + { + switch (m.Msg) + { + case WM_HOTKEY: + if (m.WParam.ToInt32() == 1) + { + this.Visible = !this.Visible; + } + + break; + case WM_QUERYENDSESSION: + requestExit = true; + //this.Close(); + Application.Exit(); + + break; + default: break; + + } + + base.WndProc(ref m); + } + + + public LauncherSession CurrentSession { get; set; } = null; + + + protected async Task collapseWindow(int width, int increment = 6) + { + await Task.Run(() => + { + while (this.Width > width) + { + ThreadControl.SetWidth(this, (this.Width - increment)); + + Application.DoEvents(); + } + + ThreadControl.SetWidth(this, width); + }); + } + + protected async Task expandWindow(int width, int increment = 8) + { + await Task.Run(() => + { + while (this.Width < width) + { + ThreadControl.SetWidth(this, (this.Width + increment)); + + Application.DoEvents(); + } + + ThreadControl.SetWidth(this, width); + }); + } + + protected void invalidateHotKey() + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(() => + { + // UnregisterHotKey((IntPtr)Handle, 1); + })); + } + else + { + // UnregisterHotKey((IntPtr)Handle, 1); + } + + if (this.CurrentSession.HotKey != null) + { + if (this.CurrentSession.HotKey.KeyCode != Keys.None) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(() => + { + // RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); + })); + } + else + { + // RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); + } + } + } + } + + + protected void newSession() + { + flowLayoutPanel1.Controls.Clear(); + flowLayoutPanel1.Controls.Add(new TilePanelLayout(new TileGroupModel() + { + Title = "New Group", + IsExpanded = true, + GridSize = new Size(6, 1) + })); + + InvalidateWidth(6); + } + + protected async Task loadFile(string filename) + { + await Task.Run(() => + { + if (isBusy) + { + return; + } + + if (string.IsNullOrWhiteSpace(filename)) + { + return; + } + + if (!File.Exists(filename)) + { + return; + } + + string sourceCode = null; + + try + { + sessionFilename = filename; + + sourceCode = File.ReadAllText(sessionFilename); + } + catch (Exception exc) + { + MessageBox.Show(exc.Message, "Load session"); + return; + } + + if (string.IsNullOrWhiteSpace(sourceCode)) + { + return; + } + + // load options + var options = new JsonSerializerOptions(); + options.Converters.Add(new JsonPointConverter()); + options.Converters.Add(new JsonSizeConverter()); + + this.CurrentSession = JsonSerializer.Deserialize(sourceCode, options); + if (this.CurrentSession == null) + { + this.CurrentSession = new LauncherSession(); + } + + // load tiles + int maxTileWidth = 0; + ThreadControl.Clear(flowLayoutPanel1); + + if (this.CurrentSession.Groups != null) + { + foreach (TileGroupModel item in this.CurrentSession.Groups) + { + maxTileWidth = Math.Max(maxTileWidth, item.GridSize.Width); + + TilePanelLayout panel = new TilePanelLayout(item); + + ThreadControl.Add(flowLayoutPanel1, panel); + } + } + + // resize + InvalidateSize(maxTileWidth); + + // reposition + if (!this.CurrentSession.StartPosition.IsEmpty) ThreadControl.SetLocation(this, this.CurrentSession.StartPosition); + + // + ThreadControl.SetTopMost(this, this.CurrentSession.AlwaysOnTop); + ThreadControl.SetVisible(this, true); + ThreadControl.SetChecked(enableAnimationsToolStripMenuItem, this.CurrentSession.EnableAnimation); + ThreadControl.SetChecked(showBigIconsToolStripMenuItem, this.CurrentSession.EnableBigIconInFolder); + + ThreadControl.SetFocus(this); + + // hotkey + invalidateHotKey(); + + }); + } + + protected bool saveFile(string filename, bool showNotices = true) + { + if (isBusy) + { + return false; + } + + if (string.IsNullOrWhiteSpace(filename)) + { + return false; + } + + if (flowLayoutPanel1.Controls.Count <= 0) + { + return true; + } + + isBusy = true; + + // update session + if (this.CurrentSession == null) + { + this.CurrentSession = new LauncherSession(); + } + + this.CurrentSession.DefaultHeight = this.Height; + this.CurrentSession.AlwaysOnTop = this.TopMost; + this.CurrentSession.StartPosition = this.Location; + + // save + this.CurrentSession.Groups = new List(); + for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++) + { + if (flowLayoutPanel1.Controls[i].GetType() != typeof(TilePanelLayout)) + { + continue; + } + + TilePanelLayout container = flowLayoutPanel1.Controls[i] as TilePanelLayout; + this.CurrentSession.Groups.Add(container.Model); + } + + try + { + File.WriteAllText(filename, JsonSerializer.Serialize(this.CurrentSession)); + + if (showNotices) + { + MessageBox.Show("Session saved!", "Save session", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (Exception exc) + { + MessageBox.Show(exc.Message, "Save session"); + + return false; + } + + isBusy = false; + + return true; + } + + protected bool saveAsFile() + { + if (isBusy) + { + return false; + } + + if (saveFileDialog1.ShowDialog() == DialogResult.OK) + { + bool rv = saveFile(saveFileDialog1.FileName); + if (rv) + { + sessionFilename = saveFileDialog1.FileName; + } + + return rv; + } + + return false; + } + + + protected void InvalidateSize(int columnWidth) + { + int newWidth = TilePanelLayout.CalcWidth(columnWidth); + newWidth += SystemInformation.VerticalScrollBarWidth; + newWidth += flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Margin.Horizontal; + newWidth += panel1.Left + panel1.Padding.Horizontal + panel1.Margin.Horizontal; + newWidth += this.Padding.Horizontal; + + ThreadControl.ClientSize(this, newWidth, this.CurrentSession.DefaultHeight); + } + + protected void InvalidateWidth(int columnWidth) + { + int newWidth = TilePanelLayout.CalcWidth(columnWidth); + newWidth += SystemInformation.VerticalScrollBarWidth; + newWidth += panel1.Left + panel1.Padding.Horizontal + this.Padding.Horizontal + flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Left; + + ThreadControl.SetClientWidth(this, newWidth); + } + + + #region main menu + + private void newToolStripMenuItem_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + newSession(); + } + else + { + DialogResult dr = MessageBox.Show("Save existing session?", "New session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) + { + bool rv = saveFile(sessionFilename, false); + if (rv) + { + newSession(); + + sessionFilename = null; + } + } + else if (dr == DialogResult.No) + { + newSession(); + + sessionFilename = null; + } + else if (dr == DialogResult.Cancel) + { + return; + } + } + } + + private async void openToolStripMenuItem_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + if (openFileDialog1.ShowDialog() == DialogResult.OK) + { + await loadFile(openFileDialog1.FileName); + } + } + else + { + DialogResult dr = MessageBox.Show("Save existing session?", "Open session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) + { + bool rv = saveFile(sessionFilename, false); + if (rv) + { + if (openFileDialog1.ShowDialog() == DialogResult.OK) + { + await loadFile(openFileDialog1.FileName); + } + } + } + else if (dr == DialogResult.No) + { + if (openFileDialog1.ShowDialog() == DialogResult.OK) + { + await loadFile(openFileDialog1.FileName); + } + } + else if (dr == DialogResult.Cancel) + { + return; + } + } + } + + private void closeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + flowLayoutPanel1.Controls.Clear(); + } + else + { + DialogResult dr = MessageBox.Show("Save existing session?", "Close session", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + if (dr == DialogResult.Yes) + { + bool rv = saveFile(sessionFilename, false); + if (rv) + { + flowLayoutPanel1.Controls.Clear(); + + sessionFilename = null; + } + } + else if (dr == DialogResult.No) + { + flowLayoutPanel1.Controls.Clear(); + + sessionFilename = null; + } + else if (dr == DialogResult.Cancel) + { + return; + } + } + } + + private void saveToolStripMenuItem_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(sessionFilename)) + { + saveAsFile(); + } + else + { + saveFile(sessionFilename, true); + } + } + + private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) + { + saveAsFile(); + } + + private void exitToolStripMenuItem2_Click(object sender, EventArgs e) + { + requestExit = true; + + this.Close(); + } + + + private void showBigIconsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.CurrentSession == null) + { + return; + } + + this.CurrentSession.EnableBigIconInFolder = !this.CurrentSession.EnableBigIconInFolder; + + showBigIconsToolStripMenuItem.Checked = this.CurrentSession.EnableBigIconInFolder; + } + + private void enableAnimationsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.CurrentSession == null) + { + return; + } + + this.CurrentSession.EnableAnimation = !this.CurrentSession.EnableAnimation; + + enableAnimationsToolStripMenuItem.Checked = this.CurrentSession.EnableAnimation; + } + + private void alwaysOnTopToolStripMenuItem_Click(object sender, EventArgs e) + { + this.TopMost = !this.TopMost; + } + + + private void optionsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (optionsForm == null) optionsForm = new OptionsForm(this); + optionsForm.ShowDialog(); + + invalidateHotKey(); + } + + + private void viewHelpToolStripMenuItem1_Click(object sender, EventArgs e) + { + try + { + System.Diagnostics.Process.Start("https://www.hiimray.co.uk/software-fizzy-launcher"); + } + catch + { + // do nothing + } + } + + private void aboutToolStripMenuItem1_Click(object sender, EventArgs e) + { + MessageBox.Show(Application.ProductName + " v" + Application.ProductVersion, "About", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + + private void menuStrip1_MenuActivate(object sender, EventArgs e) + { + alwaysOnTopToolStripMenuItem.Checked = this.TopMost; + saveAsToolStripMenuItem.Enabled = !string.IsNullOrWhiteSpace(sessionFilename); + } + + + #endregion + + #region notification icon + + private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + this.Visible = !this.Visible; + } + } + + private void exitToolStripMenuItem1_Click(object sender, EventArgs e) + { + requestExit = true; + + this.Close(); + } + + + #endregion + + + } +} \ No newline at end of file diff --git a/MainForm.resx b/MainForm.resx new file mode 100644 index 0000000..04386e6 --- /dev/null +++ b/MainForm.resx @@ -0,0 +1,670 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 172, 17 + + + 308, 17 + + + 448, 17 + + + 561, 17 + + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc + VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta + VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// + ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 + /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb + VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb + VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN + y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb + VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// + /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb + VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ + VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d + Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 + 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 + 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// + ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb + VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 + +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// + ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// + /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb + VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K + Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl + bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb + VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// + /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// + ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA + AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l + ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// + ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb + VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 + 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl + bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py + 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// + //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// + ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// + //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// + //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT + Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl + bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb + VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU + Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj + p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA + AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb + VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 + 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE + if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// + ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb + VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk + 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 + +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA + AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f + WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 + /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk + +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// + /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// + //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// + ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// + /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 + bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI + 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk + +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm + ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// + /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// + //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb + VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 + 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// + //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e + V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 + /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk + +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// + //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// + //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// + ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// + /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb + VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty + /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 + ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta + VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD + wP/08/L///////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb + VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb + VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////0czK/3Bh + Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// + //////////////////////////////////////////////////////////////////////////////// + ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb + VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// + /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb + U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// + ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 + dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa + VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb + VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd + VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w + AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP + rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA + AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA + rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA + AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ + rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb + VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He + 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// + ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// + ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb + VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// + //////////////////////////////////////////////////////////////////////////////r6 + +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// + //////////////////////////////////////////////////////////////////////////////// + //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 + +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg + nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj + p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc + Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl + bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb + VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx + zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA + gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh + lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By + bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i + mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// + ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 + /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ + /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg + 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// + /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt + /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ + u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc + VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt + /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb + VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 + 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV + 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// + //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// + ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// + /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// + /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 + 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk + +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// + ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f + Wf/7+vr///////////////////////////////////////////////////////////////////////// + ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// + //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// + ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// + ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb + VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm + TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc + VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A + AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA + AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb + VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ + U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// + ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA + AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// + ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// + ////////////////////////////////////////////////////////////////////////in55/W1d + Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN + 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm + 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 + /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// + ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e + Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// + ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 + AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW + kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm + 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// + /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// + /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk + 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA + AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// + ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 + 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv + 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb + /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m + ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ + ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// + /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA + AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// + ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg + Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He + 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H + /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA + AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo + YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 + +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// + ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX + cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw + yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx + zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU + Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ + //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// + ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh + W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA + AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b + UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b + Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA + gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA + AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== + + + + 716, 17 + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc + VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta + VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// + ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 + /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb + VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb + VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN + y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb + VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// + /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb + VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ + VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d + Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 + 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 + 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// + ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb + VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 + +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// + ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// + /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb + VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K + Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl + bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb + VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// + /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// + ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA + AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l + ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// + ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb + VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 + 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl + bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py + 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// + //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// + ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// + //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// + //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT + Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl + bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb + VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU + Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj + p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA + AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb + VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 + 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE + if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// + ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb + VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk + 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 + +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA + AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f + WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 + /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk + +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// + /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// + //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// + ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// + /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 + bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI + 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk + +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm + ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// + /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// + //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb + VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 + 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// + //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e + V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 + /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk + +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// + //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// + //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// + ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// + /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb + VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty + /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 + ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta + VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD + wP/08/L///////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb + VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb + VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////0czK/3Bh + Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// + //////////////////////////////////////////////////////////////////////////////// + ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb + VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// + /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb + U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// + ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 + dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa + VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb + VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd + VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w + AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP + rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA + AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA + rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA + AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ + rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb + VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He + 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// + ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// + ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb + VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// + //////////////////////////////////////////////////////////////////////////////r6 + +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// + //////////////////////////////////////////////////////////////////////////////// + //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 + +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg + nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj + p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc + Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl + bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb + VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx + zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA + gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh + lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By + bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i + mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// + ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 + /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ + /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg + 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// + /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt + /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ + u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc + VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt + /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb + VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 + 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV + 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// + //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// + ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// + /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// + /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 + 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk + +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// + ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f + Wf/7+vr///////////////////////////////////////////////////////////////////////// + ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// + //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// + ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// + ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb + VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm + TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc + VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A + AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA + AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb + VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ + U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// + ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA + AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// + ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// + ////////////////////////////////////////////////////////////////////////in55/W1d + Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN + 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm + 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 + /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// + ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e + Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// + ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 + AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW + kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm + 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// + /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// + /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk + 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA + AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// + ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 + 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv + 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb + /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m + ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ + ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// + /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA + AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// + ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg + Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He + 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H + /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA + AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo + YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 + +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// + ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX + cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw + yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx + zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU + Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ + //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// + ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh + W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA + AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b + UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b + Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA + gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA + AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== + + + \ No newline at end of file diff --git a/Models/LauncherSession.cs b/Models/LauncherSession.cs new file mode 100644 index 0000000..784b2d8 --- /dev/null +++ b/Models/LauncherSession.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.Drawing; + +namespace FizzyLauncher.Models +{ + public class LauncherSession + { + public class HotKeyOptions + { + public bool IsCtrl { get; set; } = false; + public bool IsAlt { get; set; } = false; + public bool IsShift { get; set; } = false; + public int Key { get; set; } = (int)System.Windows.Forms.Keys.None; + + public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0)); + + public System.Windows.Forms.Keys KeyCode => (System.Windows.Forms.Keys)this.Key; + } + + public enum AutoSaveOption + { + Prompt = 0, + Yes, + No + } + + public int DefaultHeight { get; set; } = 280; + public HotKeyOptions HotKey { get; set; } = null; + + public bool AlwaysOnTop { get; set; } = false; + public bool EnableAnimation { get; set; } = false; + public bool EnableBigIconInFolder { get; set; } = false; + + public bool HideOnClose { get; set; } = false; + public bool HideOnClick { get; set; } = false; + public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt; + public List Groups { get; set; } = new List(); + + public Point StartPosition { get; set; } = Point.Empty; + + } +} \ No newline at end of file diff --git a/Models/TileGroupModel.cs b/Models/TileGroupModel.cs new file mode 100644 index 0000000..cdf04a6 --- /dev/null +++ b/Models/TileGroupModel.cs @@ -0,0 +1,14 @@ +using System.Collections.Generic; +using System.Drawing; + +namespace FizzyLauncher.Models +{ + public class TileGroupModel + { + public string Title { get; set; } + public bool IsExpanded { get; set; } = false; + public bool IsExclusive { get; set; } = false; + public List Items { get; set; } = new List(); + public Size GridSize { get; set; } = new Size(0, 0); + } +} \ No newline at end of file diff --git a/Models/TileModel.cs b/Models/TileModel.cs new file mode 100644 index 0000000..72f8411 --- /dev/null +++ b/Models/TileModel.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; + +namespace FizzyLauncher.Models +{ + public class TileModel + { + public string Title { get; set; } + public string ProcessFilename { get; set; } + public string ProcessArgument { get; set; } + public string ProcessWorkingDirectory { get; set; } + public ProcessWindowStyle ProcessWindowStyle { get; set; } = ProcessWindowStyle.Normal; + public bool ProcessAsAdmin { get; set; } = false; + public Point Position { get; set; } + + public bool IsGroup { get; set; } = false; + public List Items { get; set; } = new List(); + + public override string ToString() => this.Title ?? string.Empty; + + public string CleanProcessFilename => (string.IsNullOrWhiteSpace(this.ProcessFilename) ? string.Empty : resolvePath(this.ProcessFilename)); + + public string CleanProcessArgument => (string.IsNullOrWhiteSpace(this.ProcessArgument) ? string.Empty : resolvePath(this.ProcessArgument)); + + public string CleanProcessWorkingDirectory => (string.IsNullOrWhiteSpace(this.ProcessWorkingDirectory) ? string.Empty : resolvePath(this.ProcessWorkingDirectory)); + + protected string resolvePath(string value) + { + string rv = Environment.ExpandEnvironmentVariables(value); + + rv = resolveFirstPath(rv); + rv = resolveLastPath(rv); + + return rv; + } + + protected string resolveFirstPath(string value) + { + const string last = "%FIRST%"; + if (!value.Contains(last)) + { + return value; + } + + string head = value.Substring(0, value.IndexOf(last)); + string tail = value.Substring(value.IndexOf(last) + last.Length); + + string[] dirList = new string[0]; + + try + { + dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); + } + catch + { + // do nothing + } + + if (dirList.Length <= 0) + { + return value; + } + + return dirList[0] + tail; + } + + protected string resolveLastPath(string value) + { + const string last = "%LAST%"; + if (!value.Contains(last)) + { + return value; + } + + string head = value.Substring(0, value.IndexOf(last)); + string tail = value.Substring(value.IndexOf(last) + last.Length); + + string[] dirList = new string[0]; + + try + { + dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly); + } + catch + { + // do nothing + } + + if (dirList.Length <= 0) + { + return value; + } + + return dirList[(dirList.Length - 1)] + tail; + } + + } +} diff --git a/OptionsForm.cs b/OptionsForm.cs new file mode 100644 index 0000000..29aff71 --- /dev/null +++ b/OptionsForm.cs @@ -0,0 +1,279 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.ThemedForms; +using System; + +namespace FizzyLauncher +{ + public class OptionsForm : TDialogForm + { + private System.Windows.Forms.Label label1; + private TButton button1; + private TYesNoPickerBox pickerBox2; + private System.Windows.Forms.Label label6; + private TYesNoPickerBox pickerBox3; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private TPickerBox pickerBox1; + private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; + private TKeyCodeTextBox textBox1; + + + public OptionsForm(MainForm parent) : base() + { + InitializeComponent(); + + parentForm = parent; + + pickerBox1.ComboBox.Items.Clear(); + foreach (string item in Enum.GetNames(typeof(LauncherSession.AutoSaveOption))) + { + pickerBox1.ComboBox.Items.Add(item); + } + + if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; + + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm)); + RyzStudio.Windows.ThemedForms.TKeyCodeTextBox.Results results1 = new RyzStudio.Windows.ThemedForms.TKeyCodeTextBox.Results(); + this.label1 = new System.Windows.Forms.Label(); + this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); + this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); + this.label6 = new System.Windows.Forms.Label(); + this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); + this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.textBox1 = new RyzStudio.Windows.ThemedForms.TKeyCodeTextBox(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.SystemColors.ControlText; + this.label1.Location = new System.Drawing.Point(10, 21); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label1.Size = new System.Drawing.Size(107, 34); + this.label1.TabIndex = 153; + this.label1.Text = "Show/Hide Hotkey"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button1.BackColor = System.Drawing.Color.Transparent; + this.button1.DefaultImage = null; + this.button1.DownImage = null; + this.button1.IsSelected = false; + this.button1.LabelText = "&Save"; + this.button1.Location = new System.Drawing.Point(241, 469); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.OverImage = null; + this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.button1.Size = new System.Drawing.Size(128, 32); + this.button1.TabIndex = 173; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // pickerBox2 + // + this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox2.BackColor = System.Drawing.Color.Transparent; + this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox2.Location = new System.Drawing.Point(285, 103); + this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); + this.pickerBox2.Name = "pickerBox2"; + this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox2.Size = new System.Drawing.Size(84, 34); + this.pickerBox2.SubmitButton = null; + this.pickerBox2.TabIndex = 183; + this.pickerBox2.Value = true; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.BackColor = System.Drawing.Color.Transparent; + this.label6.ForeColor = System.Drawing.SystemColors.ControlText; + this.label6.Location = new System.Drawing.Point(10, 103); + this.label6.Margin = new System.Windows.Forms.Padding(0); + this.label6.Name = "label6"; + this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label6.Size = new System.Drawing.Size(83, 34); + this.label6.TabIndex = 182; + this.label6.Text = "Hide On Close"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pickerBox3 + // + this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox3.BackColor = System.Drawing.Color.Transparent; + this.pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox3.Location = new System.Drawing.Point(285, 144); + this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); + this.pickerBox3.Name = "pickerBox3"; + this.pickerBox3.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox3.Size = new System.Drawing.Size(84, 34); + this.pickerBox3.SubmitButton = null; + this.pickerBox3.TabIndex = 185; + this.pickerBox3.Value = true; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.BackColor = System.Drawing.Color.Transparent; + this.label7.ForeColor = System.Drawing.SystemColors.ControlText; + this.label7.Location = new System.Drawing.Point(10, 144); + this.label7.Margin = new System.Windows.Forms.Padding(0); + this.label7.Name = "label7"; + this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label7.Size = new System.Drawing.Size(95, 34); + this.label7.TabIndex = 184; + this.label7.Text = "Hide On Execute"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.BackColor = System.Drawing.Color.Transparent; + this.label8.ForeColor = System.Drawing.SystemColors.ControlText; + this.label8.Location = new System.Drawing.Point(10, 62); + this.label8.Margin = new System.Windows.Forms.Padding(0); + this.label8.Name = "label8"; + this.label8.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label8.Size = new System.Drawing.Size(60, 34); + this.label8.TabIndex = 186; + this.label8.Text = "Auto Save"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pickerBox1 + // + this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox1.BackColor = System.Drawing.Color.Transparent; + this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox1.Location = new System.Drawing.Point(285, 62); + this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); + this.pickerBox1.Name = "pickerBox1"; + this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox1.Size = new System.Drawing.Size(84, 34); + this.pickerBox1.SubmitButton = null; + this.pickerBox1.TabIndex = 187; + // + // tHorizontalSeparator1 + // + this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; + this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437); + this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); + this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); + this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; + this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22); + this.tHorizontalSeparator1.TabIndex = 188; + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.BackColor = System.Drawing.Color.Transparent; + this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox1.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox1.HighlightImage"))); + results1.IsAlt = false; + results1.IsCtrl = false; + results1.IsShift = false; + results1.Key = System.Windows.Forms.Keys.None; + this.textBox1.KeyCodeResults = results1; + this.textBox1.Location = new System.Drawing.Point(192, 20); + this.textBox1.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); + this.textBox1.Name = "textBox1"; + this.textBox1.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox1.NormalImage"))); + this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox1.Size = new System.Drawing.Size(177, 35); + this.textBox1.SubmitButton = null; + this.textBox1.TabIndex = 189; + this.textBox1.UseSystemPasswordChar = false; + // + // OptionsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 521); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.tHorizontalSeparator1); + this.Controls.Add(this.pickerBox1); + this.Controls.Add(this.label8); + this.Controls.Add(this.pickerBox3); + this.Controls.Add(this.label7); + this.Controls.Add(this.pickerBox2); + this.Controls.Add(this.label6); + this.Controls.Add(this.button1); + this.Controls.Add(this.label1); + this.MinimumSize = new System.Drawing.Size(400, 560); + this.Name = "OptionsForm"; + this.Text = "Options"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + if (parentForm == null) + { + return; + } + + if (parentForm.CurrentSession == null) + { + return; + } + + // hotkey + if (parentForm.CurrentSession.HotKey != null) + { + textBox1.UpdateKeyCode(parentForm.CurrentSession.HotKey.IsCtrl, parentForm.CurrentSession.HotKey.IsAlt, parentForm.CurrentSession.HotKey.IsShift, parentForm.CurrentSession.HotKey.KeyCode); + } + + pickerBox1.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave; + pickerBox2.Value = parentForm.CurrentSession.HideOnClose; + pickerBox3.Value = parentForm.CurrentSession.HideOnClick; + } + + + public MainForm parentForm { get; set; } = null; + + + private void button1_Click(object sender, EventArgs e) + { + if (parentForm != null) + { + if (parentForm.CurrentSession == null) parentForm.CurrentSession = new LauncherSession(); + if (parentForm.CurrentSession.HotKey == null) parentForm.CurrentSession.HotKey = new LauncherSession.HotKeyOptions(); + + parentForm.CurrentSession.HotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl; + parentForm.CurrentSession.HotKey.IsAlt = textBox1.KeyCodeResults.IsAlt; + parentForm.CurrentSession.HotKey.IsShift = textBox1.KeyCodeResults.IsShift; + parentForm.CurrentSession.HotKey.Key = textBox1.KeyCodeResults.KeyCode; + + parentForm.CurrentSession.AutoSave = (LauncherSession.AutoSaveOption)pickerBox1.ComboBox.SelectedIndex; + parentForm.CurrentSession.HideOnClose = pickerBox2.Value; + parentForm.CurrentSession.HideOnClick = pickerBox3.Value; + + } + + this.Close(); + } + + } +} \ No newline at end of file diff --git a/OptionsForm.resx b/OptionsForm.resx new file mode 100644 index 0000000..e3d054b --- /dev/null +++ b/OptionsForm.resx @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vQAADr0BR/uQrQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAClSURBVDhP7dI/ + DgFBGIbxSVTKjcRx3MLqXYCOjkocQcMF3MAZOIKaE5AthOexf2QnbJQKb/JLJvO9XzLFhCgtbHDBveB5 + DWcfM8ANC0wKnr1LUUsbHXSxxBlJxDtnduy6E04on/Utd0IPOxwxxBT9iHfO7Nh155kV9vmxMXbsVvkv + vvIji4f82Bg7tcUxrpih/NyxOeyMUMVPu0WGd39TzuzQDeEB5/ZKvTSyulEAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vQAADr0BR/uQrQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADTSURBVDhP7ZI7 + CsJQEEUfWFmK4HLchdpnA9ppp5W4BBtdQNyBC0ilRf6VdVyBwUL03JdXxC/YWThwmDcz94YJjKmH7/uN + OI7XaZqekiS5Cr1hpZmTPQemAeILeU4eC/dWr+9kVQRB0MzzvB2GYQfBAsExiqJWHfU0k0ZaeQyNAuxa + X1CYLMu6/MOW4kD2YAK9B9TznGYrj12XVZY0drb4ENJI68q/sR4/YoS9K9+GNHdGLmIEJV+cku1xP4Jh + Ri7JQ2erDp3mBs7w6jaFZht74MaYGwmLbkeRGexGAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..71f4564 --- /dev/null +++ b/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace FizzyLauncher +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.SetHighDpiMode(HighDpiMode.SystemAware); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/Resources/UI/arrow_down.png b/Resources/UI/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..cccf233e96a5deccc73a84bdfff320ebbdfafc31 GIT binary patch literal 601 zcmV-f0;c_mP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10p>|W zK~y-6eN#PaR6!Iy=Mro-30PSKiIpPraGR~|R%2l*e}HHL+OCNp+H6D%i7rT@MYhmh z(i)A;{sSL-=OJm7fImQkE@*a-h4bX)1w7SoKjxlu?hH{wQ52b^B}r`n^C|oVz%I#t z2q9MMSsr4HCnWU%+yd|oz>cIn03dl5zyirxNiRv>2_gLYcR^}?3*aKjhojMGz13>{ ztWL`FykTamX7)hRfaI0(61e-OyZ?6gt940r#26Q2jEBSF@Hqf5Y5oXcErhUEE4~H* zA%r*8xVv{r-Uo2Ol40LRqtSYOnxth(%k}tpJbohSK+=*Ww|DBA|A%I?`2&AVZX1Bp zrQ0R#;c)m^l2w>kjPX$^DPfP~{1hsyOqeEluPBOBBnbdTQEW-N0pNO_%@lzBv}XW7 z2;r5xpOo~BpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10WL{I zK~y-6jnlm@#8D6h@SlxrVbQ8YCtB8ZG=hYV6`zG(JOYKMKq6{25g!Gc zP~6$wzw0k?l1XmP%$dxcdoI5*fj!*fHR1+M)brw=!nqnn3wXu_?jtvfX$;~7%lMFq zukeXA^p#9j!#Y|~TP-G!LOfF<%+ZJ@`)y((h_#a9*@zq)p&2JF?D3DWFC%i)@Pyq8 zCZ&bF|6}|%-a<23!LaVO+hcE|Qs64s^7A_P80q!%DWM;$7%JpWF^{>jac*&zaZC8Z zL&R5bMVw0p)0CE2`=d#jxL;aglVs19WRe^QI4t2eL({SLVGxay;vBz>MAynK$t3x8 z1lKlD$IAI<+QA}TBm><=ZVXcxz%f>2pQ(sCc5xkzUgO*p)-B>2nOsV+E0#r300000 LNkvXXu0mjf{w}h~ literal 0 HcmV?d00001 diff --git a/Resources/UI/arrow_up.png b/Resources/UI/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..a08438ba358ad09ba06ed091b453a749822880e9 GIT binary patch literal 590 zcmV-U0pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ozGL zK~y-6jZ?d7R8bUNYa=#e@&^(t#e2kQrnVc6h4}>q6HrW}CN{B|2nrHM@L9~@7lgD% zV>5r?W%d~)jS|QQXp9#$bC=DTaC22~Rhxa*eynxQA!-Dwn+9v z2(ilNB#1E{m-H0C4FF#OY)aY&0FtKx%#xgz^qS<|5W>&H2C4WhfD0ra6h*PtYPEh; zC*^tGFtcSdyDw=#^75n!-2J7y|8n;$bxC!^80TV)2gBj;82~V8{s>?-gs@sAyZdu9 zW0qx$wS0%<3V`#L4Et6T#afMY8^B^&mbX%Ti1B#*Skj)Pc}s3@RyC)BF3DYzy8yb? zCe3DZKbhP%04FDICym!q@f!dm0HYLl-Ti81k!_MQhRRhYe3$en%d!O}WLdUA@*&Cn zx~azi?4)}J0E7_M0jwt}005FDfR$fQf^7~=^^mjG-T$v(+x zGh40`N%lzg>Ul}`NKTRLBdz)(#&{58ocoXIM;?-;Np~a-0BpE>=WlZIJa4#r2f&7; zftf7Q?WoAo9K2vSQAnCfKHpx=}DCslF4pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10VhdB zK~y-6jnlm@#6c7V@E?&aEFMGR<2l&IR(cuSj8oi2Z4ea<-~bDFQy^dB z9n0v=oUDu$w4%4vS=&NS~}Hj#!a|`7in~jti1KTYl=$#$-ehYr*-l_HHDq|JePPk@&W9OHwy?ow9EOeObBq znKm$o7fHO^s10EZ{n*E%!e{Elh~%)V7}Sh)O<1=RpFanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+E%T^vI!dZ$iy^gC=I;CkO> z<|#+zzjR7P%Dh^VpUb|W zuaP%kWos0J=myW7@>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10bxl* zK~y-6jgwDG!(b4_e=m)Hj-UilO2wT^H#X2qR7$HOD^ccms&;z)#hy{b* zK+rVfq7iFbYTj;U-kW(de4moz(*yIY0~`T9#gGCISjqXh_|U|)P+CN7m@nf5Wmi6M zWa4_~wtrD@IsmU>Q^1)A_(doGfxIuk_m0<*a9lIrOvvdcW( z3*!BYpKdExm?9FgjTzb|^+zpZE;uky5r(URtmZ|W$qhAV}!e^5dtj$0000< KMNUMnLSTZlBh&@} literal 0 HcmV?d00001 diff --git a/Resources/UI/edit.png b/Resources/UI/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..031e3f604221f0e7d68be875e68412c8b19e089e GIT binary patch literal 612 zcmV-q0-ODbP)N&JP;!hkk{ zRVu+~Z1NxY$nNDxqXYy=r$G`A&=uh-v}Ty`Xl)F_Rz z44c^_NkL{SvR@t;JdFsO8D5|@|IhypJ#m5!Q1H8FZd#HA7)3J*ZxDUgU4a4Co} z6%!PDjXBPkVI?QoXRZBTXYKENoA#K*7Oqi`=L%I!pUHfp1o!65dr zj5j&>0`DlJ@0ZDnSVJTB7P7_NfaiVz^D!SywwsB`NR+!kQ#inIyjOx5Ckgh{VQeVj z0iQU{9OoIEB(;zJ0Y6|iQ#-~b)Fg5Kf){f23TnN6{>m)8g&{m*6^9+BY&*gz?lWI5 zb>L1UgQ-d)7Nbzc2kyGS{gQ}Pl06$*IxI$$kxnCHJ(zE6??ht03)GA@Bhj*QLsGZc z&M9gc=-bNq%d~+dyy6@;Q5(ZF2C#<}xyzJ|3CUrX(WoBls<3W0z5w(WQ9cjxl3D-& N002ovPDHLkV1gdCtIYra literal 0 HcmV?d00001 diff --git a/Resources/UI/file.png b/Resources/UI/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c9e5830ade13c518f1a0a7fb5c4e4f20407e41 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?GJx_eO>q8-{0o#jg5}n z9g>X_tOiC#_t=80Zr!@IUqOk7N1;}M!R*1StE;a!K12(Z}++-JXWeQ&xW63z>H+#w~#;bXZn+`j)9pFh|njA5wmragwuLSFoy^UXf z-QJ$R*||lK?E$O9ZJ!1+Yvz}S9d3O--Y>s=VUUaD2I&+{T?OdXq84umfFr?P-?xdad}WKNiL#_{XZGGItC Nc)I$ztaD0e0s!%Bg1i6# literal 0 HcmV?d00001 diff --git a/Resources/UI/file2.png b/Resources/UI/file2.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e9f6d2179af7121d2314669151bada83185afe GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1en@P?<0V~B_mzch1Gq$$e+;8eZOfUvhDuXxoI>Z<;4FSAKHgGum`mj9+JAe$xE~D$Gfb_Ufni z7#v^{&B$rov*qGpw%RufHG>j*wWC%%Y+_q<#CAgOdiK0!6}xON-0+;gM&xay`G2PQ zOt+G*wXB{cw|r8~q%TRk64!0sue^WDo$FTu|J0^hdJ9TEnV5RN^Ixw)1@p4T61G!! S%?<z-+dbOt}?FI(5&63 z!&xxsRAc6>xjSk&zt`3`Z)|F7-J~QH5X=#{UFURYn3YI@fwwJ_jttCAK*V_`Ki{a*MzIbzRjOhYh_C1ebkJR#jNvvd?fa!=5|A|9&sX=bBqw z_}4JvZ^yzP0u8$9uV$_TjT-wL<FVdQ&MBb@0I8Ogm;e9( literal 0 HcmV?d00001 diff --git a/Resources/UI/folder2.png b/Resources/UI/folder2.png new file mode 100644 index 0000000000000000000000000000000000000000..d21178aa8cafb22ebfe50bf0379772d84075e671 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8sr;#}Etux0m z`({cN-g>d1b*@z9#RhA)7pn!Ax7qqdta#{pJI^3+VJW*+#mk31-fh|?`8{_S-y0oW z`^Bn$it?(JjOTVb)$O~faH{@5KU<52yXeMiVqQy{0_Lhp%~1Zkc=O`wSeX!(3x_|< hFBYubZFY>sKU2UnWXUOwlRytJc)I$ztaD0e0suaOZf^hp literal 0 HcmV?d00001 diff --git a/Resources/UI/minus.png b/Resources/UI/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..6b396d43dcd620706ec9a4eb0662e997b8117f02 GIT binary patch literal 532 zcmV+v0_**WP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ij7m zK~y-6om0JPltC0d=MrqzO5kdSx+&3_!H6}Lu z1`a!Sku(W;0}b&5&CapNM814RT|CwN+1jj7FnNlIA6K0h}$zI{-FG_Cp9> zkLS_C-A_q+2H-A$F96mhZ2vZTIqB;-|9*+ z#+I2an%N^s1CrN|NRU!`nNs?ZQo7l+)P%dwx%$fHRWb)jZzHIo~-c(ahe2 z5LU}}i{uSMt(E_SDFC~r&j5g;u=?keLy){6Y1aU30GN$2wkB0|_tTQD0oXK>eUdX~ zwm2z)q$QHmB>Mn>l+p`#KXCWC3Dl2$BrAUIOBw)JODXkEvJ+!$rIdOA)+7zgYytRv zn4XfnCuxu5hn(~0a($8HRg%*==T~O7aBP?wPYjZ7OX`w52Y`~cNq!{xHiR&$$NvNo W{^Fg|2zLko0000?$b literal 0 HcmV?d00001 diff --git a/Resources/UI/minus2.png b/Resources/UI/minus2.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb41283a7f3e8d7bdf81467b5391984bea3e424 GIT binary patch literal 380 zcmV-?0fYXDP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10SQS& zK~y-6ozqP&Ltzxg@gI>6wCuoCLc0!;h?>{~#$wuF&J`hI14vi^39BfHbP+^!LbHDi&}exebH)(CK42f-|p2KH8R>@rpHj$_iauf~A; zx<-2j3%Jb{HnCL#UE(g{4%Vjq|CJMI(kt9Z29rrctd0TKq#u!B!L;5BMXSiziR`#punlviDHSUVQ#Mw|)j a=Jf+%ay>&=(wun!0000pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10lY~> zK~y-6om0zdR6!6urwDGwONgnr%qKDk=bN2xg=>pQV+n{1b+cAA~_5p z#HK$F4l%}4lAZ&&3*ak&O-b7TK=M3*Ig&Gy-jI9{Lil-@AO&v#xJvR#RaL9qZudu% zsVIt;nJt^yV@YF@*AJ4w-Cw!;FL%G0OUfCsYmi00808y@&n012w~Fn{|yw|_65H@(}Ms2002ovPDHLkV1jc+^1c87 literal 0 HcmV?d00001 diff --git a/Resources/UI/plus2.png b/Resources/UI/plus2.png new file mode 100644 index 0000000000000000000000000000000000000000..0c29081e25aa7911ea1e9793e66094cb06efb9df GIT binary patch literal 398 zcmV;90df9`P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10UJp~ zK~y-6ozp!|LQxO};7KRYlk!JoJaAu%jMV?+z3 zuy_MJAMYjTNhY~>X3o7cbI)ZOHJqY{L0A_ZRI|x*sdYJ$_V9*V^dq*4Z7ksm2l$d9 zKjIrr%;!{AK?}pkEvJJQLEgzBX3>a4&PI+}IGQ=hyJ1-z1!tXPU@rw_--TsS!7JJ& z)FlJ^oT2;?K7vy(VcBHbqp}~uHo`{xbUS^ll>C0mf1!u#f>_ZE;0E0i?j<6r{Nd6C zY)RTul{`r+C$Z=mkApLo_IWrOGu%EUBqmZGN<@;^PQ^q(V<~4p(+T$RE*ai)#MZEh sMO@-g<};;HMH^3X&>+?wA>A~70F4SmZKJ&MYXATM07*qoM6N<$f>mIi`~Uy| literal 0 HcmV?d00001 diff --git a/Resources/UI/trash.png b/Resources/UI/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..55e65525ddc861bd34825421f233b1589aa8733a GIT binary patch literal 382 zcmV-^0fGLBP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Sie) zK~yM_?T)cZ!%!H7&$$VKIz+OFd#CFw_!<)3>f{5s2r9Vf;No0$5f>q&n=g>5TXNB* zv*Hp=KqZiSoLYhuN(VQ;`TNfQ6Fssl3#_%b#+W@x0{|fT1>nIscaWxOH*>>&Xsz8L zIr83LlKcPw@BKQ-BWvvwfNbV6&+|c&Bx`Nk20;)UO4^rX`-3E(N#1o`cNIlZS5?&~ z%d&h0u!+@p3ym?ml1?QJNnQZh05JU}4gtJNIw3hFc@6+5iel`Xn=CuyoSPIyF$Ms$ z;)`?s!#@qZ_gp6Toe%&>z5p0G=guU3FN!1$NN!2GpNDl_U&nF0E$J9Qv?wIm0(fki c<^}+M0F=gWXpb8FNB{r;07*qoM6N<$f^I65pa1{> literal 0 HcmV?d00001 diff --git a/Resources/UI/trash2.png b/Resources/UI/trash2.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae8d4397a12014956b526440cb2e4675e781690 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_Db50q$YP-QVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|-S17sn8diEl62@;Md?uzZ-` z|17gaZ^7k4hUFK$W1JipEff&H5TIe%c#cuVVezzp%oZn&Kb-nUvP;x%rlqHqcRdu9 z>?u5;dWLcF0ow_^lG!U3_t)Nddhv+N<@Ds1m>m(v_?mAVWYdaxAQN=M=BSs|Y>`zN zi#z1FB97aMZFJQxxNB{Ak`$T(tQF+0igsy-?D*NU< hd{S)h?Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TVrcG=30_DO16O;x4pyeRIh||EuJw0C;nEs~%ng4;9jfsKj03*ZyyTst1 z|G$4o$tXXYlvQp6HVg`o9Y7SAJGE;sFpg$JxugK*|BMVqjQ<(-r({+bL&ZpU00?~M z_+0>WL?JLBI*G+V^|OFl{{S(|KZgIUV1s}FISqh<6$Efwd;%=Kl=;UO;511Aq-$Ng(9|Vgenqe$KScAc!~=q-IyD z{rmS1)Yj*Qh|mmtWnyA7nmx7s7Kj6HmY+L)% literal 0 HcmV?d00001 diff --git a/Resources/toggle-left-ea-16.png b/Resources/toggle-left-ea-16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7895fd54022e74fed851ee550eb693be6ae2aa1 GIT binary patch literal 506 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TM5@V(vBy06gh#SCn!Re04uR-KxwohL*PApgR+f zrj7KUOn8Hn2u=(>tlM;X=VzHXhI#D4_;!W3py}0MU}hXKj!~R&?oY=f>tB72PltNB wTnVs3{n)7GQ?5qa_(;1m>16cWkZK&F58rczF09|kUjP6A07*qoM6N<$f`0zlMF0Q* literal 0 HcmV?d00001 diff --git a/Resources/toggle-right-ea-16.png b/Resources/toggle-right-ea-16.png new file mode 100644 index 0000000000000000000000000000000000000000..aedd7c2f94120ca876963df3b9500d46e6f058f4 GIT binary patch literal 502 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TL0F?FR`V=ECyHf# zC!0Dmf>$6COU#i-nwj>IP!QrLqx)f!Cb%(JSV$J~+0+JGb|Q$4V_}KrGbz{0^f75C zx;4oV3E#ZFT<CMeKqm}$0;P4b~%Obpjb;62m&2=NUkMDbk zYZVCvi1`qUUyx;CUUjohSE+{jAq?L?y$6Kp0C7NhIe)-{bf7-T%P*Cb7;jLRjG1P* zysSnut-vis?D!=sDx%s^du#1EW?;^oDb~D(Hp5md9`#Q6$Y-2wt#l8r+(jefZB6yz zyT^}7Y=toRHLo?xUYup(H0E)Lrz~jV2c!GJz*_Lcct#1K^LaPpY<_>FiJ4?Cm-GVK s96+JwitNV}J~e;F&805N(m#jj3n7Dw9b#Vt6#xJL07*qoM6N<$f{}0FssI20 literal 0 HcmV?d00001 diff --git a/RyzStudio/Data/SQLite/SQLiteDatabase.cs b/RyzStudio/Data/SQLite/SQLiteDatabase.cs new file mode 100644 index 0000000..2ebab58 --- /dev/null +++ b/RyzStudio/Data/SQLite/SQLiteDatabase.cs @@ -0,0 +1,444 @@ +using System; +using System.ComponentModel; +using System.Data; +using System.IO; + +namespace RyzStudio.Data.SQLite +{ + public class SQLiteDatabase + { + #region static methods + + public static string escapeSQL(string query) + { + return query.Replace("'", "''").Trim(); + } + + public static string escapeValue(string text) + { + return text.Replace("\"", "\\\"").Replace("\t", "\\t").Replace("\r", " \\r").Replace("\n", "\\n"); + } + + public static string PrepareQuery(string query, params string[] arguments) + { + string rv = query; + + if (string.IsNullOrEmpty(rv)) + { + return string.Empty; + } + + for (int i = 0; i < arguments.Length; i++) + { + rv = rv.Replace("[^" + (i + 1).ToString() + "]", escapeSQL(arguments[i])); + } + + return rv; + } + + #endregion + + protected SQLiteWrapper.SQLiteBase database = null; + protected string databaseLocation = ":memory:"; + protected string lastError = ""; + + protected string[] requiredTableList = new string[0]; + + protected const string tableNameConfig = "ryz_app_xxxx_config"; + + #region public properties + + [Browsable(false)] + public SQLiteWrapper.SQLiteBase Database + { + get { return database; } + set { database = value; } + } + + [Browsable(false)] + public string DatabaseLocation + { + get { return databaseLocation; } + set { databaseLocation = value; } + } + + [Browsable(false)] + public string LastError + { + get { return lastError; } + } + + [Browsable(false)] + public int LastInsertID + { + get + { + if (database == null) + { + return 0; + } + + DataTable dt = this.DoQuery("SELECT last_insert_rowid() AS ccc;"); + if (dt == null) + { + return 0; + } + + if (dt.Rows.Count <= 0) + { + return 0; + } + + return int.Parse(dt.Rows[0]["ccc"].ToString()); + } + } + + #endregion + + #region public methods + + public bool Create(bool use_memory = true) + { + lastError = string.Empty; + + if (string.IsNullOrEmpty(databaseLocation)) + { + return false; + } + + try + { + if (database != null) + { + database.CloseDatabase(); + } + + database = new SQLiteWrapper.SQLiteBase(((use_memory) ? ":memory:" : databaseLocation)); + } + catch (Exception exc) + { + lastError = exc.Message; + return false; + } + + bool rv = Prepare(); + if (!rv) + { + return false; + } + + return CheckRequiredTables(); + } + + public bool Create(string filename, bool override_file = false) + { + lastError = string.Empty; + databaseLocation = filename; + + if (string.IsNullOrEmpty(databaseLocation)) + { + return false; + } + + if (File.Exists(databaseLocation) && override_file) + { + try + { + File.Delete(databaseLocation); + } + catch (Exception xc) + { + lastError = xc.Message; + return false; + } + } + + try + { + if (database != null) + { + database.CloseDatabase(); + } + + database = new SQLiteWrapper.SQLiteBase(databaseLocation); + } + catch (Exception exc) + { + lastError = exc.Message; + return false; + } + + bool rv = CheckRequiredTables(); + if (!rv) + { + Prepare(); + } + + return CheckRequiredTables(); + } + + public bool Load(string filename) + { + if (!File.Exists(filename)) + { + return false; + } + + lastError = string.Empty; + databaseLocation = filename; + + try + { + if (database != null) + { + database.CloseDatabase(); + } + + database = new SQLiteWrapper.SQLiteBase(databaseLocation); + } + catch (Exception exc) + { + lastError = exc.Message; + return false; + } + + return CheckRequiredTables(); + } + + public void Close() + { + if (database != null) + { + database.CloseDatabase(); + } + } + + + public DataTable DoQuery(string query) + { + lastError = string.Empty; + if (database == null) + { + return null; + } + + try + { + return database.ExecuteQuery(query); + } + catch (Exception exc) + { + lastError = exc.Message; + return null; + } + } + + public DataTable DoQuery(string query, params string[] args) + { + string sql = SQLiteDatabase.PrepareQuery(query, args); + + return DoQuery(sql); + } + + public bool DoNonQuery(string query) + { + lastError = string.Empty; + if (database == null) + { + return false; + } + + try + { + database.ExecuteNonQuery(query); + return true; + } + catch (Exception exc) + { + lastError = exc.Message; + return false; + } + } + + public bool DoNonQuery(string query, params string[] args) + { + string sql = SQLiteDatabase.PrepareQuery(query, args); + + return DoNonQuery(sql); + } + + public string DoQuerySingle(string query) + { + lastError = string.Empty; + if (database == null) + { + return string.Empty; + } + + DataTable tbl = DoQuery(query); + + if (tbl == null) + { + return string.Empty; + } + + if (tbl.Columns.Count <= 0) + { + return string.Empty; + } + + if (tbl.Rows.Count <= 0) + { + return string.Empty; + } + + return tbl.Rows[0][0].ToString(); + } + + public string DoQuerySingle(string query, params string[] args) + { + string sql = SQLiteDatabase.PrepareQuery(query, args); + + return DoQuerySingle(sql); + } + + public int DoQueryCount(string query) + { + if (database == null) + { + return -1; + } + + DataTable tbl = DoQuery(query); + + if (tbl == null) + { + return -1; + } + + if (tbl.Rows.Count <= 0) + { + return 0; + } + + return tbl.Rows.Count; + } + + public int DoQueryCount(string query, params string[] args) + { + string sql = SQLiteDatabase.PrepareQuery(query, args); + + return DoQueryCount(sql); + } + + public bool DoQueryExist(string query) + { + int rv = DoQueryCount(query); + + return (rv > 0); + } + + public bool DoQueryExist(string query, params string[] args) + { + string sql = SQLiteDatabase.PrepareQuery(query, args); + + return DoQueryExist(sql); + } + + public bool HasTable(string table_name) + { + lastError = string.Empty; + if (database == null) + { + return false; + } + + int rv = this.DoQueryCount("SELECT 1 FROM sqlite_master WHERE type='table' AND name='" + escapeSQL(table_name) + "'"); + + return (rv > 0); + } + + public bool CheckRequiredTables() + { + bool rv = true; + foreach (string tbl in requiredTableList) + { + if (string.IsNullOrEmpty(tbl)) + { + continue; + } + + if (!this.HasTable(tbl)) + { + rv = false; + break; + } + } + + return rv; + } + + + protected bool PrepareConfig() + { + if (HasTable(tableNameConfig)) + { + return true; + } + + bool rv = this.DoNonQuery(@" + BEGIN TRANSACTION; + CREATE TABLE " + tableNameConfig + @" (cfg_name TEXT, cfg_value TEXT); + COMMIT; + "); + + return rv; + } + + public bool SetConfig(string name, string value) + { + if (!PrepareConfig()) + { + return false; + } + + string sql = string.Empty; + int rv = this.DoQueryCount("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); + if (rv <= 0) + { + sql = "INSERT INTO " + tableNameConfig + " (cfg_name, cfg_value) VALUES ('[^1]', '[^2]');"; + } + else + { + sql = "UPDATE " + tableNameConfig + " SET cfg_value='[^2]' WHERE cfg_name='[^1]';"; + } + + sql = PrepareQuery(sql, new string[] { name, value }); + + return this.DoNonQuery(sql); + } + + public string GetConfig(string name, string default_value = "") + { + if (!PrepareConfig()) + { + return default_value; + } + + bool rv = this.DoQueryExist("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); + if (!rv) + { + return default_value; + } + + return this.DoQuerySingle("SELECT cfg_value FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'"); + } + + #endregion + + protected virtual bool Prepare() + { + return true; + } + } +} \ No newline at end of file diff --git a/RyzStudio/Drawing/Rectangoid.cs b/RyzStudio/Drawing/Rectangoid.cs new file mode 100644 index 0000000..59a24d8 --- /dev/null +++ b/RyzStudio/Drawing/Rectangoid.cs @@ -0,0 +1,124 @@ +using System.Drawing; +using System.Drawing.Drawing2D; + +namespace RyzStudio.Drawing +{ + public struct Rectangoid + { + private int X; + private int Y; + private int Width; + private int Height; + private int Radius; + + public Rectangoid(Rectangle rect, int radius) + { + X = rect.X; + Y = rect.Y; + Width = rect.Width; + Height = rect.Height; + Radius = radius; + } + + public Rectangoid(Rectangle rect, int radius, int borderWidth) + { + rect.Inflate((-1 * borderWidth), (-1 * borderWidth)); + + X = rect.X; + Y = rect.Y; + Width = rect.Width; + Height = rect.Height; + Radius = radius; + } + + public Rectangoid(int x, int y, int width, int height, int radius) + { + X = x; + Y = y; + Width = width; + Height = height; + Radius = radius; + } + + public Rectangoid(int x, int y, int width, int height) + { + X = x; + Y = y; + Width = width; + Height = height; + Radius = 0; + } + + public Rectangoid(int width, int height, int radius) + { + X = 0; + Y = 0; + Width = width; + Height = height; + Radius = radius; + } + + public Rectangoid(int width, int height) + { + X = 0; + Y = 0; + Width = width; + Height = height; + Radius = 0; + } + + public Rectangoid(int width) + { + X = 0; + Y = 0; + Width = width; + Height = width; + Radius = 0; + } + + public GraphicsPath ToGraphicsPath() + { + GraphicsPath rv = new GraphicsPath(); + rv.AddLine(X + this.Radius, Y, X + Width - (this.Radius * 2), Y); + + if (this.Radius > 0) + { + rv.AddArc(X + Width - (this.Radius * 2), Y, this.Radius * 2, this.Radius * 2, 270, 90); + } + + rv.AddLine(X + Width, Y + this.Radius, X + Width, Y + Height - (this.Radius * 2)); + + if (this.Radius > 0) + { + rv.AddArc(X + Width - (this.Radius * 2), Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 0, 90); + } + + rv.AddLine(X + Width - (this.Radius * 2), Y + Height, X + this.Radius, Y + Height); + + if (this.Radius > 0) + { + rv.AddArc(X, Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 90, 90); + } + + rv.AddLine(X, Y + Height - (this.Radius * 2), X, Y + this.Radius); + + if (this.Radius > 0) + { + rv.AddArc(X, Y, this.Radius * 2, this.Radius * 2, 180, 90); + } + + rv.CloseFigure(); + + return rv; + } + + public PointF GetOrigin() + { + PointF rv = new PointF(); + rv.X = ((float)Width / 2) + X; + rv.Y = ((float)Height / 2) + Y; + + return rv; + } + } +} \ No newline at end of file diff --git a/RyzStudio/IO/FileType.cs b/RyzStudio/IO/FileType.cs new file mode 100644 index 0000000..3c8b616 --- /dev/null +++ b/RyzStudio/IO/FileType.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RyzStudio.IO +{ + public class FileType + { + protected static readonly byte[] BMP = { 66, 77 }; + protected static readonly byte[] GIF = { 71, 73, 70, 56 }; + protected static readonly byte[] ICO = { 0, 0, 1, 0 }; + protected static readonly byte[] JPG = { 255, 216, 255 }; + protected static readonly byte[] PNG = { 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82 }; + + public static bool IsImage(byte[] byteArray) + { + if (byteArray == null) + { + return false; + } + + if (byteArray.Length <= 0) + { + return false; + } + + if (byteArray.Take(2).SequenceEqual(BMP)) + { + return true; + } + + if (byteArray.Take(4).SequenceEqual(GIF)) + { + return true; + } + + if (byteArray.Take(4).SequenceEqual(ICO)) + { + return true; + } + + if (byteArray.Take(3).SequenceEqual(JPG)) + { + return true; + } + + if (byteArray.Take(16).SequenceEqual(PNG)) + { + return true; + } + + return false; + } + } +} diff --git a/RyzStudio/IO/SessionFileFormatBase.cs b/RyzStudio/IO/SessionFileFormatBase.cs new file mode 100644 index 0000000..3ae2887 --- /dev/null +++ b/RyzStudio/IO/SessionFileFormatBase.cs @@ -0,0 +1,290 @@ +using System; +using System.IO; +using System.Text; +using System.Xml; +using System.Windows.Forms; +using ICSharpCode.SharpZipLib.Zip; + +namespace RyzStudio.IO +{ + public abstract class SessionFileFormatBase + { + protected string CONST_KEYPASS = ""; + protected string CONST_PRODUCT = ""; + protected string CONST_STREAM_FILE_NAME = ""; + + protected bool enableErrorReporting = false; + protected string lastUsedFileName = ""; + + #region public properties + + public string passkey + { + get { return CONST_KEYPASS; } + set { CONST_KEYPASS = value; } + } + + /*public string LastFilename + { + get { return lastUsedFileName; } + set { lastUsedFileName = value; } + }*/ + + #endregion + + #region public methods + +/* public bool loadFromRyz() + { + return loadFromRyz(lastUsedFileName); + }*/ + + public bool loadFromRyz(string file_name) + { + lastUsedFileName = file_name; + if (!File.Exists(file_name)) + { + return false; + } + + bool rv = false; + + try + { + ZipInputStream zipIn = new ZipInputStream(File.OpenRead(file_name)); + zipIn.Password = CONST_KEYPASS; + ZipEntry theEntry = null; + + while ((theEntry = zipIn.GetNextEntry()) != null) + { + string streamFileName = Path.GetFileName(theEntry.Name); + if (streamFileName.Equals(CONST_STREAM_FILE_NAME)) + { + MemoryStream oxStream = new MemoryStream(); + StreamWriter streamWriter = new StreamWriter(oxStream); + int size = 2048; + byte[] data = new byte[size]; + while (true) + { + size = zipIn.Read(data, 0, data.Length); + if (size <= 0) break; + streamWriter.BaseStream.Write(data, 0, size); + } + + oxStream.Position = 0; + + StreamReader sr2 = new StreamReader(oxStream, Encoding.UTF8); + XmlDocument xDoc = new XmlDocument(); + xDoc.LoadXml(sr2.ReadToEnd()); + + loadFromXmlDocument(ref xDoc); + } + } + + zipIn.Close(); + + rv = true; + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + return rv; + } + + public bool loadFromXml() + { + return loadFromXml(lastUsedFileName); + } + + public bool loadFromXml(string file_name) + { + lastUsedFileName = file_name; + if (!File.Exists(file_name)) + { + return false; + } + + bool rv = false; + + try + { + StreamReader sr2 = new StreamReader(file_name, Encoding.UTF8); + XmlDocument xDoc = new XmlDocument(); + xDoc.LoadXml(sr2.ReadToEnd()); + + loadFromXmlDocument(ref xDoc); + sr2.Close(); + + rv = true; + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + return rv; + } + +/* public bool saveToRyz() + { + return saveToRyz(lastUsedFileName); + } +*/ + + public bool saveToRyz(string file_name) + { + bool rv = false; + lastUsedFileName = file_name; + byte[] buffer = new byte[4096]; + + try + { + File.Delete(file_name); + FileInfo fileinfo1 = new FileInfo(file_name); + if (!Directory.Exists(fileinfo1.DirectoryName)) + { + Directory.CreateDirectory(fileinfo1.DirectoryName); + } + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + try + { + ZipOutputStream zipOutStream1 = new ZipOutputStream(File.Create(file_name)); + zipOutStream1.SetLevel(9); + zipOutStream1.Password = CONST_KEYPASS; + + MemoryStream oxIndexStream = new MemoryStream(); + XmlTextWriter oxTW = new XmlTextWriter(oxIndexStream, Encoding.UTF8); + saveToXmlTextWriter(ref oxTW); + oxTW.Flush(); + + // write to file + zipOutStream1.PutNextEntry(new ZipEntry(CONST_STREAM_FILE_NAME)); + oxIndexStream.Position = 0; + StreamReader sr2 = new StreamReader(oxIndexStream, Encoding.UTF8); + int sourceBytes; + do + { + sourceBytes = sr2.BaseStream.Read(buffer, 0, buffer.Length); + zipOutStream1.Write(buffer, 0, sourceBytes); + } + while (sourceBytes > 0); + + sr2.Close(); + oxTW.Close(); + zipOutStream1.Finish(); + zipOutStream1.Close(); + + rv = true; + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + return rv; + } + + public bool saveToXml() + { + return saveToXml(lastUsedFileName); + } + + public bool saveToXml(string file_name) + { + bool rv = false; + + lastUsedFileName = file_name; + try + { + File.Delete(file_name); + FileInfo fileinfo1 = new FileInfo(file_name); + if (!Directory.Exists(fileinfo1.DirectoryName)) + { + Directory.CreateDirectory(fileinfo1.DirectoryName); + } + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + try + { + XmlTextWriter oxTW = new XmlTextWriter(file_name, Encoding.UTF8); + saveToXmlTextWriter(ref oxTW); + oxTW.Flush(); + oxTW.Close(); + + rv = true; + } + catch (Exception exc) + { + if (enableErrorReporting) + { + MessageBox.Show(exc.Message); + } + } + + return rv; + } + + #endregion + + protected virtual void loadFromXmlDocument(ref XmlDocument xml_doc) { } + protected virtual void saveToXmlTextWriter(ref XmlTextWriter writer) { } + + #region public methods (conversions) + + public int[] convIntArrayString(string s1, char c) + { + string[] sarr = s1.Split(c); + int[] iarr = new int[sarr.Length]; + for (int i = 0; i < sarr.Length; i++) + { + iarr[i] = Int32.Parse(sarr[i]); + } + + return iarr; + } + + public string convStringIntArray(int[] r, char s) + { + string t = null; + for (int i = 0; i < r.Length; i++) + { + if (i != 0) + { + t += s.ToString(); + } + + t += r[i].ToString(); + } + + return t; + } + +#endregion + } +} \ No newline at end of file diff --git a/RyzStudio/IO/SharpZipLib.cs b/RyzStudio/IO/SharpZipLib.cs new file mode 100644 index 0000000..b162124 --- /dev/null +++ b/RyzStudio/IO/SharpZipLib.cs @@ -0,0 +1,76 @@ +using System; +using System.IO; +using ICSharpCode.SharpZipLib.Zip; + +namespace RyzStudio.IO +{ + public class SharpZipLib + { + /// + /// Is zip file encrypted + /// + /// Filename + /// Is encrypted + public static bool IsZipEncrypted(string fn) + { + bool ret_val = false; + try + { + ZipInputStream zipIn = new ZipInputStream(System.IO.File.OpenRead(fn)); + ZipEntry theEntry = null; + while ((theEntry = zipIn.GetNextEntry()) != null) + { + if (theEntry.IsCrypted) + { + ret_val = true; + } + + break; + } + + zipIn.Close(); + } + catch + { + // do nothing + } + + return ret_val; + } + + public static void AddFile(ZipOutputStream zipstream, string filename, string prefixpath = null) + { + byte[] buffer = new byte[4096]; + + string f1 = ""; + if (prefixpath != null) + { + f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\"; + f1 = f1.Replace(prefixpath, "").TrimEnd('\\') + "\\"; + f1 = f1 + Path.GetFileName(filename); + f1 = f1.TrimStart('\\'); + } + + ZipEntry entry = new ZipEntry(f1); + entry.DateTime = DateTime.Now; + zipstream.PutNextEntry(entry); + + FileStream fs = File.OpenRead(filename); + int sourceBytes; + do + { + sourceBytes = fs.Read(buffer, 0, buffer.Length); + zipstream.Write(buffer, 0, sourceBytes); + } + while (sourceBytes > 0); + } + + public static void AddFolder(ZipOutputStream zipstream, string folderpath, string prefixpath = null) + { + foreach (string fn in Directory.GetFiles(folderpath, "*.*", System.IO.SearchOption.AllDirectories)) + { + AddFile(zipstream, fn, prefixpath); + } + } + } +} \ No newline at end of file diff --git a/RyzStudio/Net/HttpWeb.cs b/RyzStudio/Net/HttpWeb.cs new file mode 100644 index 0000000..bafff2e --- /dev/null +++ b/RyzStudio/Net/HttpWeb.cs @@ -0,0 +1,168 @@ +using System; +using System.IO; +using System.Net; +using System.Text; +using System.Windows.Forms; + +namespace RyzStudio.Net +{ + public class HttpWeb + { + public string defaultUserAgent = "Momozilla/5.0 (" + Environment.OSVersion.Platform.ToString() + " ; " + Environment.OSVersion.VersionString + "; " + Application.CurrentCulture.TwoLetterISOLanguageName + ")"; + public int defaultTimeout = 6000; + public int defaultMaxRedirect = 8; + public bool defaultAllowRedirect = true; + public CookieContainer defaultCookierContainer = null; + + public HttpWeb() + { + } + + public HttpWebRequest CreateRequest(string url) + { + return this.CreateRequest(url, url); + } + + public HttpWebRequest CreateRequest(string url, string referrerURL) + { + if (defaultCookierContainer == null) + { + defaultCookierContainer = new CookieContainer(); + } + + HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); + webRequest.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore); + webRequest.MaximumAutomaticRedirections = defaultMaxRedirect; + webRequest.CookieContainer = defaultCookierContainer; + webRequest.UserAgent = defaultUserAgent; + webRequest.AllowAutoRedirect = defaultAllowRedirect; + webRequest.Timeout = defaultTimeout; + + return webRequest; + } + + public int GetResponse(out string sourceCode, string url, string referrerURL = "") + { + HttpWebRequest webRequest = this.CreateRequest(url, referrerURL); + + return GetResponse(out sourceCode, webRequest); + } + + public int GetResponse(out string sourceCode, HttpWebRequest webRequest) + { + sourceCode = string.Empty; + + int rv = 0; + + try + { + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + + rv = (int)webResponse.StatusCode; + + StreamReader readContent = new StreamReader(webResponse.GetResponseStream()); + sourceCode = readContent.ReadToEnd(); + + webResponse.Close(); + webResponse = null; + } + catch (WebException xc) + { + if (xc.Response is HttpWebResponse) + { + HttpWebResponse rs = xc.Response as HttpWebResponse; + StreamReader readContent = new StreamReader(rs.GetResponseStream()); + if (readContent != null) + { + sourceCode = readContent.ReadToEnd(); + } + + rv = (int)rs.StatusCode; + } + else + { + rv = (int)xc.Status; + sourceCode = xc.Message; + } + } + catch (Exception xc) + { + sourceCode = xc.Message; + } + + return rv; + } + + public static HttpWebRequest AddBasicAuthentication(HttpWebRequest webRequest, string username, string password) + { + webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(string.Concat(username, ":", password))); + webRequest.PreAuthenticate = true; + + return webRequest; + } + + + public int GetPOSTResponse(out string sourceCode, HttpWebRequest webRequest, string postData) + { + sourceCode = ""; + int rv = 0; + byte[] buffer = Encoding.UTF8.GetBytes(postData); + + webRequest.ContentLength = buffer.Length; + + try + { + Stream dataStream = webRequest.GetRequestStream(); + dataStream.Write(buffer, 0, buffer.Length); + dataStream.Close(); + } + catch (Exception xc) + { + sourceCode = xc.Message; + return rv; + } + + return this.GetResponse(out sourceCode, webRequest); + } + + public int GetHeader(out WebHeaderCollection headerCollection, string url, string referrerURL = "") + { + headerCollection = null; + + int rv = 0; + + HttpWebRequest webRequest = this.CreateRequest(url, referrerURL); + webRequest.Method = "HEAD"; + + try + { + HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); + headerCollection = webResponse.Headers; + + rv = (int)webResponse.StatusCode; + + webResponse.Close(); + webResponse = null; + } + catch (WebException xc) + { + if (xc.Response is HttpWebResponse) + { + HttpWebResponse rs = xc.Response as HttpWebResponse; + + rv = (int)rs.StatusCode; + } + else + { + rv = (int)xc.Status; + } + } + catch + { + // do nothing + } + + return rv; + } + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/StackLayoutPanel.cs b/RyzStudio/Windows/Forms/StackLayoutPanel.cs new file mode 100644 index 0000000..8cdeae5 --- /dev/null +++ b/RyzStudio/Windows/Forms/StackLayoutPanel.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace RyzStudio.Windows.Forms +{ + public class StackLayoutPanel : FlowLayoutPanel + { + public StackLayoutPanel() : base() + { + this.AutoScroll = true; + this.FlowDirection = FlowDirection.TopDown; + this.WrapContents = false; + } + + protected override void OnResize(EventArgs eventargs) + { + base.OnResize(eventargs); + + //int w = this.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth; + int w = this.ClientRectangle.Width - 1; + + foreach (Control item in this.Controls) + { + if (item.Width != w) + { + item.Width = w; + } + } + } + + protected override void OnControlAdded(ControlEventArgs e) + { + base.OnControlAdded(e); + + OnResize(null); + } + + protected override void OnControlRemoved(ControlEventArgs e) + { + base.OnControlRemoved(e); + + OnResize(null); + } + + public void AddControl(Control value) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(() => + { + value.Margin = new Padding(0, 3, 0, 3); + + this.Controls.Add(value); + })); + } + else + { + value.Margin = new Padding(0, 3, 0, 3); + + this.Controls.Add(value); + } + } + + } +} diff --git a/RyzStudio/Windows/Forms/TFlatButton.cs b/RyzStudio/Windows/Forms/TFlatButton.cs new file mode 100644 index 0000000..b50dee0 --- /dev/null +++ b/RyzStudio/Windows/Forms/TFlatButton.cs @@ -0,0 +1,115 @@ +using System.Drawing; +using System.Windows.Forms; + +namespace RyzStudio.Windows.Forms +{ + public class TFlatButton : Label + { + public class ButtonStyle + { + public Color BackColour { get; set; } = Color.Transparent; + public Color PenColour { get; set; } = Color.Transparent; + } + + public enum FlatButtonState + { + Idle = 0, + Hover, + Down + } + + protected FlatButtonState controlState = FlatButtonState.Idle; + + public TFlatButton() : base() + { + this.AutoSize = false; + this.ImageAlign = ContentAlignment.MiddleCenter; + this.TextAlign = ContentAlignment.MiddleCenter; + + // customise + this.StyleOver = new ButtonStyle() + { + BackColour = Color.FromArgb(51, 51, 51), + PenColour = Color.White + }; + this.StyleDown = new ButtonStyle() + { + BackColour = Color.FromArgb(179, 179, 179), + PenColour = Color.Black + }; + this.StyleDefault = new ButtonStyle() + { + BackColour = Color.White, + PenColour = Color.Black + }; + + this.VisualState = FlatButtonState.Idle; + + this.Click += delegate { this.OnClick(null); }; + this.MouseEnter += delegate { this.VisualState = FlatButtonState.Hover; }; + this.MouseLeave += delegate { this.VisualState = FlatButtonState.Idle; }; + this.MouseDown += delegate { this.VisualState = FlatButtonState.Down; }; + this.MouseUp += delegate { this.VisualState = FlatButtonState.Idle; }; + } + + protected FlatButtonState VisualState + { + get { return controlState; } + set + { + switch (value) + { + case FlatButtonState.Idle: + if (this.VisualState == FlatButtonState.Down) + { + updateButton(StyleOver); + } + else + { + updateButton(StyleDefault); + } + + break; + case FlatButtonState.Hover: + updateButton(StyleOver); + break; + case FlatButtonState.Down: + updateButton(StyleDown); + break; + default: + updateButton(StyleDefault); + break; + } + + controlState = value; + } + } + + protected void updateButton(ButtonStyle style) + { + this.ForeColor = style.PenColour; + this.BackColor = style.BackColour; + } + + protected ButtonStyle StyleOver { get; set; } = new ButtonStyle(); + + protected ButtonStyle StyleDown { get; set; } = new ButtonStyle(); + + protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle(); + + public void PerformClick() + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(() => { + this.OnClick(null); + })); + } + else + { + this.OnClick(null); + } + } + + } +} diff --git a/RyzStudio/Windows/Forms/TForm.cs b/RyzStudio/Windows/Forms/TForm.cs new file mode 100644 index 0000000..58ed7dc --- /dev/null +++ b/RyzStudio/Windows/Forms/TForm.cs @@ -0,0 +1,434 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +//using Resources = AppLauncher.Properties.Resources; + +namespace RyzStudio.Windows.Forms +{ + public class TForm : Form + { + //protected readonly Color borderColour = Color.FromArgb(200, 200, 200); + //protected readonly int borderWidth = 1; + + //protected readonly int resizeBorderWidth = 4; + + protected readonly Color backColour = Color.FromArgb(250, 250, 250); + + //protected readonly Color titleBackColour = Color.FromArgb(235, 234, 233); + //protected readonly Color titleBorderColour = Color.FromArgb(200, 198, 196); + //protected readonly Color titleColour = Color.FromArgb(102, 102, 102); + //protected readonly int titleBarHeight = 33; + //protected readonly bool showTitleBarLine = true; + //protected Font titleFont = null; + //protected int titleFontTop = 0; + + //protected readonly Size titleBarIconSize = new Size(48, 32); + //protected readonly int titleBarIconMargin = 0; + //protected readonly int titleBarIconMarginRight = 0; + + //protected Image appIcon = null; + //protected const int appIconLeft = 12; + //protected const int appIconRight = 6; + //protected int appIconTop = 0; + + protected bool isDragging = false; + protected Point startPosition = new Point(); + + //protected Point startWindowSize = new Point(); + + //protected bool enableMinimise { get; set; } = true; + //protected bool enableMaximise { get; set; } = true; + //protected bool enableClose { get; set; } = true; + //protected bool closeOnMinimise { get; set; } = false; + + protected bool isBusy = false; + + private IContainer components; + + public TForm() : base() + { + InitializeComponent(); + + //if (!this.DesignMode) + //{ + // this.FormBorderStyle = FormBorderStyle.None; + // this.StartPosition = FormStartPosition.Manual; + //} + + this.AutoScaleMode = AutoScaleMode.Font; + this.BackColor = backColour; + this.FormBorderStyle = FormBorderStyle.Sizable; + this.Padding = new Padding(0); + this.DoubleBuffered = true; + + this.MouseDown += new MouseEventHandler(form_MouseDown); + this.MouseMove += new MouseEventHandler(form_MouseMove); + this.MouseUp += new MouseEventHandler(form_MouseUp); + this.PreviewKeyDown += new PreviewKeyDownEventHandler(form_PreviewKeyDown); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + this.Text = Application.ProductName; + + //initialiseLoadComponent(); + + //if (appIcon != null) appIconTop = (int)Math.Floor((decimal)(titleBarHeight - appIcon.Height) / 2) + borderWidth; + //titleFont = new Font(this.Font.FontFamily, 10F); + //titleFontTop = (int)Math.Floor((decimal)(titleBarHeight - TextRenderer.MeasureText("#", titleFont).Height) / 2) + borderWidth; + + } + + //protected override void OnMouseClick(MouseEventArgs e) + //{ + // base.OnMouseClick(e); + + // bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= titleBarHeight)); + + // if (e.Button == MouseButtons.Left) + // { + // if (isLabel) + // { + // // do nothing + // } + // else + // { + // // do nothing + // } + // } + // else if (e.Button == MouseButtons.Right) + // { + // if (isLabel) + // { + // if (this.TitleContextMenuStrip != null) + // { + // this.TitleContextMenuStrip.Show(this, e.Location); + // } + // } + // else + // { + // // do nothing + // } + // } + //} + + //protected override void OnPaint(PaintEventArgs e) + //{ + // base.OnPaint(e); + + // Graphics g = e.Graphics; + // Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth)); + + // // border + // g.DrawRectangle(new Pen(borderColour, borderWidth), area); + + // area.Inflate((-1 * borderWidth), (-1 * borderWidth)); + + //g.FillRectangle(new SolidBrush(titleBackColour), area.X, area.Y, (area.Width + area.X), titleBarHeight); + + //if (showTitleBarLine) g.DrawLine(new Pen(titleBorderColour, 1), area.X, titleBarHeight, (area.Width + area.X), titleBarHeight); + + //if (!DesignMode) + //{ + // if (appIcon != null) g.DrawImageUnscaled(appIcon, appIconLeft, appIconTop); + + // int iconPosX = borderWidth + appIconLeft + appIconRight + ((appIcon == null) ? 0 : appIcon.Width); + // TextRenderer.DrawText(g, this.Text, titleFont, new Point(iconPosX, titleFontTop), titleColour); + //} + //} + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + this.Invalidate(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color BackColor { get => base.BackColor; set => base.BackColor = backColour; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + [Category("Appearance")] + public ContextMenuStrip TitleContextMenuStrip { get; set; } = null; + + //[Browsable(false)] + //public Image AppIcon { get; set; } = null; + + //[Browsable(false)] + //public bool IsMaximiseEnabled { get; set; } = false; + + //protected Point DefaultLocation + //{ + // get + // { + // Point newPosition = new Point(Cursor.Position.X, Cursor.Position.Y); + // newPosition.X -= (this.Width / 2); + // newPosition.Y -= (this.Height / 2); + + // newPosition.X = Math.Max(newPosition.X, Screen.PrimaryScreen.WorkingArea.Left); + // newPosition.Y = Math.Max(newPosition.Y, Screen.PrimaryScreen.WorkingArea.Top); + + // return newPosition; + // } + //} + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TForm)); + this.SuspendLayout(); + // + // AForm + // + this.Name = "AForm"; + this.ResumeLayout(false); + } + + private void form_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + isDragging = true; + startPosition = e.Location; + //startWindowSize = new Point(this.Width, this.Height); + } + } + + private void form_MouseMove(object sender, MouseEventArgs e) + { + if (isDragging) + { + int x = (this.Location.X + (e.Location.X - startPosition.X)); + int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); + + //this.Location = validateFormLocation(x, y); + this.Location = new Point(x, y); + } + } + + private void form_MouseUp(object sender, MouseEventArgs e) + { + isDragging = false; + } + + private void form_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + Application.Exit(); + } + } + + //protected virtual void initialiseLoadComponent() + //{ + // if (DesignMode) return; + + // // close + // TImageBox closeBox = generateToolbarImageBox(); + // closeBox.Image = closeBox.ImageNormal = (enableClose) ? Resources.titlebar_close : Resources.titlebar_blank; + // closeBox.ImageHover = (enableClose) ? Resources.titlebar_close3 : Resources.titlebar_blank; + // closeBox.ImageSelected = Resources.titlebar_close3; + // closeBox.MouseClick += delegate (object sender, MouseEventArgs e) + // { + // if (e.Button == MouseButtons.Left) + // { + // if (enableClose) + // { + // this.Close(); + // } + // } + // }; + // closeBox.Left = this.DisplayRectangle.Width - closeBox.Width - (titleBarIconMarginRight + borderWidth); + + // this.Controls.Add(closeBox); + + // // maximise + // TImageBox maximiseBox = generateToolbarImageBox(); + // maximiseBox.Image = maximiseBox.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank; + // maximiseBox.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank; + // maximiseBox.ImageSelected = Resources.titlebar_maximise3; + // maximiseBox.MouseClick += delegate (object sender, MouseEventArgs e) + // { + // if (!(sender is TImageBox)) return; + + // TImageBox imageBox2 = (sender as TImageBox); + + // if (imageBox2 == null) return; + + // if (e.Button == MouseButtons.Left) + // { + // if (enableMaximise) + // { + // if (this.WindowState == FormWindowState.Maximized) + // { + // this.WindowState = FormWindowState.Normal; + // imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise; + // } + // else + // { + // this.WindowState = FormWindowState.Maximized; + // imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise5; + // } + // } + // } + // else if (e.Button == MouseButtons.Right) + // { + // this.TopMost = !this.TopMost; + + // if (this.TopMost) + // { + // imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise3; + // imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_maximise3; + // } + // else + // { + // imageBox2.Image = imageBox2.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank; + // imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank; + // } + // } + // }; + // maximiseBox.Left = closeBox.Left - maximiseBox.Width - titleBarIconMargin; + + // this.Controls.Add(maximiseBox); + + // // minimise + // TImageBox minimiseBox = generateToolbarImageBox(); + // minimiseBox.Image = minimiseBox.ImageNormal = (enableMinimise) ? Resources.titlebar_minimise : Resources.titlebar_blank; + // minimiseBox.ImageHover = (enableMinimise) ? Resources.titlebar_minimise5 : Resources.titlebar_blank; + // //minimiseBox.ImageSelected = null; + // minimiseBox.MouseClick += delegate (object sender, MouseEventArgs e) + // { + // if (!enableMinimise) return; + // if (e.Button != MouseButtons.Left) return; + + // if (closeOnMinimise) + // { + // this.Close(); + // } + // else + // { + // this.WindowState = FormWindowState.Minimized; + // } + // }; + // minimiseBox.Left = maximiseBox.Left - minimiseBox.Width - titleBarIconMargin; + + // this.Controls.Add(minimiseBox); + + // // resize + // UserControl uc1 = new UserControl() + // { + // Anchor = (AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right), + // Height = resizeBorderWidth, + // Width = this.DisplayRectangle.Width - resizeBorderWidth, + // Left = 0, + // Top = this.DisplayRectangle.Height - resizeBorderWidth, + // BackColor = Color.Transparent, + // Cursor = Cursors.SizeNS + // }; + // uc1.MouseDown += form_MouseDown; + // uc1.MouseUp += form_MouseUp; + // uc1.MouseMove += delegate (object sender, MouseEventArgs e) + // { + // if (isDragging) + // { + // this.Size = new Size(startWindowSize.X, e.Y - startPosition.Y + this.Height); + // } + // }; + // uc1.BringToFront(); + + // this.Controls.Add(uc1); + + // UserControl uc2 = new UserControl() + // { + // Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom), + // Height = this.DisplayRectangle.Height - resizeBorderWidth, + // Width = resizeBorderWidth, + // Left = this.DisplayRectangle.Width - resizeBorderWidth, + // Top = 0, + // BackColor = Color.Transparent, + // Cursor = Cursors.SizeWE + // }; + // uc2.MouseDown += form_MouseDown; + // uc2.MouseUp += form_MouseUp; + // uc2.MouseMove += delegate (object sender, MouseEventArgs e) + // { + // if (isDragging) + // { + // this.Size = new Size(e.X - startPosition.X + this.Width, startWindowSize.Y); + // } + // }; + // uc2.BringToFront(); + + // this.Controls.Add(uc2); + + // UserControl uc3 = new UserControl() + // { + // Anchor = (AnchorStyles.Bottom | AnchorStyles.Right), + // Height = resizeBorderWidth, + // Width = resizeBorderWidth, + // Left = this.DisplayRectangle.Width - resizeBorderWidth, + // Top = this.DisplayRectangle.Height - resizeBorderWidth, + // BackColor = Color.Transparent, + // Cursor = Cursors.SizeNWSE + // }; + // uc3.MouseDown += form_MouseDown; + // uc3.MouseUp += form_MouseUp; + // uc3.MouseMove += delegate (object sender, MouseEventArgs e) + // { + // if (isDragging) + // { + // this.Size = new Size((e.X - startPosition.X + this.Width), (e.Y - startPosition.Y + this.Height)); + // } + // }; + // uc3.BringToFront(); + + // this.Controls.Add(uc3); + //} + + //protected TImageBox generateToolbarImageBox() + //{ + // TImageBox imageBox = new TImageBox(); + // //imageBox.BackColor = Color.Transparent; + // imageBox.BackColorHover = imageBox.BackColorSelected = Color.FromArgb(220, 220, 220); + // imageBox.BackgroundImageLayout = ImageLayout.Center; + // imageBox.ErrorImage = null; + // //imageBox.Image = Resources.close; + // //imageBox.ImageHover = Resources.close2; + // //imageBox.ImageNormal = Resources.close; + // imageBox.ImageSelected = null; + // imageBox.IsSelected = false; + // //closeBox.Location = new System.Drawing.Point(169, 12); + // imageBox.Size = titleBarIconSize; + // imageBox.SizeMode = PictureBoxSizeMode.CenterImage; + // //imageBox.MouseClick += new MouseEventHandler(closeBox_MouseClick); + // //imageBox.Left = this.DisplayRectangle.Width - imageBox.Width - 17; + // imageBox.Top = (int)Math.Floor((decimal) (titleBarHeight - titleBarIconSize.Height) / 2) + borderWidth; + // imageBox.Anchor = (AnchorStyles.Top | AnchorStyles.Right); + // imageBox.Padding = new Padding(0); + + // return imageBox; + //} + + //private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close(); + + //private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) + //{ + // if (e.Button == MouseButtons.Left) + // { + // this.Visible = !this.Visible; + // } + + // //notifyIcon1.Visible = !this.Visible; + //} + + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/TForm.resx b/RyzStudio/Windows/Forms/TForm.resx new file mode 100644 index 0000000..b723165 --- /dev/null +++ b/RyzStudio/Windows/Forms/TForm.resx @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 130, 17 + + + + + AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA + IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc + VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta + VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn///////// + ////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38 + /P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb + VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb + VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN + y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb + VP9rW1T/bV1W/8S9u/////////////////////////////////////////////////////////////// + /////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb + VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ + VTxrW1Tua1tU/2tbVP9wYVr/0czK//////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d + Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6 + 7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1 + 9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L///////// + ///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb + VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5 + +f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1//// + ////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn///////// + /////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb + VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K + Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl + bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb + VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov////////////// + /////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////////////////////// + ///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA + AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l + ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX///////// + ///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb + VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38 + 9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl + bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py + 8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf///////////////////////// + //////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1//// + ////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////// + //////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD///////// + //////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT + Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl + bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb + VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU + Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj + p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA + AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb + VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38 + 9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE + if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP////////////////////////////// + ///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb + VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk + 6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2 + +v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA + AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f + WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3 + /v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk + +f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+/////////////////////////// + /////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv////////////// + //////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq//// + ////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////// + /////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0 + bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI + 7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk + +f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm + ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f////////////// + /////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////// + //+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb + VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4 + 9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////// + //////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e + V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3 + /v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk + +f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+/////////////////////////// + //+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37///////// + //////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq//// + ////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+/////////// + /////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb + VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9 + 5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty + /f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75 + ///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM//////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta + VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD + wP/08/L///////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb + VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb + VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of///////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////0czK/3Bh + Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+//// + //////////////////////////////////////////////////////////////////////////////// + ///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb + VP9rW1T/eGpj/6Wbl//Szcv/+vn5//////////////////////////////////////////////////// + /////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb + U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u//////////////////// + ///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8 + dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb + VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa + VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb + VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd + VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w + AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP + rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA + AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA + rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA + AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/ + rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA + AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb + VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He + 3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ//////////////////// + ////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P////////////// + ///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb + VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7///////// + //////////////////////////////////////////////////////////////////////////////r6 + +v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy//// + //////////////////////////////////////////////////////////////////////////////// + //////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5 + +f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl + bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg + nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj + p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc + Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl + bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb + VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx + zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA + gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh + lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By + bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i + mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr///////// + ////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3 + AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79 + /f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+ + /f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg + 4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L///////// + /////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt + /v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+ + u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk + +f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc + VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt + /v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb + VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9 + 5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV + 0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7/////////////// + //+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8//////////////// + ////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v//// + /////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z///// + /////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9 + 5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk + +f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz///////// + ///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk + +f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f + Wf/7+vr///////////////////////////////////////////////////////////////////////// + ////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABsW1TMa1tU/8S9u//6+vr///////////////////////////////////////////////////////// + //////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v////////////////////////////// + ///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm//// + ////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb + VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm + TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc + VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A + AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA + AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA + AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb + VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ + U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq////////// + ////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA + AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv/////////////////////////////////////////////// + ////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N//// + ////////////////////////////////////////////////////////////////////////in55/W1d + Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN + 0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm + 5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77 + /P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH///////// + ///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e + Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n///////// + ///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3 + AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW + kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm + 5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726//// + /////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9//// + /////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk + 6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA + AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr///////// + ///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9 + 5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv + 7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb + /f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m + ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+ + ///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3///////////////////////////// + /////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA + AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f////////////////////////////////////////////// + ////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg + Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He + 3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H + /0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA + AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo + YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5 + +f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6//////////////////// + ///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX + cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw + yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx + zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU + Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+ + //+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8/// + ///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh + W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA + AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b + UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b + Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J + SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA + gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA + AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA + rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ== + + + \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs b/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs new file mode 100644 index 0000000..1058088 --- /dev/null +++ b/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs @@ -0,0 +1,37 @@ +namespace RyzStudio.Windows.Forms +{ + partial class THorizontalSeparator + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/RyzStudio/Windows/Forms/THorizontalSeparator.cs b/RyzStudio/Windows/Forms/THorizontalSeparator.cs new file mode 100644 index 0000000..1be87f2 --- /dev/null +++ b/RyzStudio/Windows/Forms/THorizontalSeparator.cs @@ -0,0 +1,101 @@ +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace RyzStudio.Windows.Forms +{ + public partial class THorizontalSeparator : System.Windows.Forms.UserControl + { + public THorizontalSeparator() + { + InitializeComponent(); + + this.BackColor = Color.Transparent; + this.Margin = new Padding(10, 0, 10, 0); + this.MaximumSize = new Size(SystemInformation.VirtualScreen.Width, 22); + this.MinimumSize = new Size(0, 22); + this.Padding = new Padding(0, 10, 0, 10); + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + base.OnPaintBackground(e); + + Graphics g = e.Graphics; + + g.FillRectangle(new SolidBrush(Color.FromArgb(213, 223, 229)), new Rectangle(this.DisplayRectangle.Left, 11, this.DisplayRectangle.Width, 1)); + g.FillRectangle(new SolidBrush(Color.FromArgb(249, 251, 253)), new Rectangle(this.DisplayRectangle.Left, 12, this.DisplayRectangle.Width, 1)); + } + + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new BorderStyle BorderStyle { get => base.BorderStyle; set => base.BorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Font Font { get => base.Font; set => base.Font = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color BackColor { get => base.BackColor; set => base.BackColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color ForeColor { get => base.ForeColor; set => base.ForeColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AllowDrop { get => base.AllowDrop; set => base.AllowDrop = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override AutoValidate AutoValidate { get => base.AutoValidate; set => base.AutoValidate = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override ContextMenuStrip ContextMenuStrip { get => base.ContextMenuStrip; set => base.ContextMenuStrip = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get => base.Margin; set => base.Margin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new DockStyle Dock { get => base.Dock; set => base.Dock = value; } + + } +} diff --git a/RyzStudio/Windows/Forms/THorizontalSeparator.resx b/RyzStudio/Windows/Forms/THorizontalSeparator.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/Forms/THorizontalSeparator.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/TImageBox.cs b/RyzStudio/Windows/Forms/TImageBox.cs new file mode 100644 index 0000000..09f7bbe --- /dev/null +++ b/RyzStudio/Windows/Forms/TImageBox.cs @@ -0,0 +1,84 @@ +using System; +using System.ComponentModel; +using System.Drawing; + +namespace RyzStudio.Windows.Forms +{ + public class TImageBox : System.Windows.Forms.PictureBox + { + public TImageBox() : base() + { + this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.ErrorImage = null; + this.InitialImage = null; + this.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + } + + protected override void OnCreateControl() + { + OnMouseLeave(null); + + base.OnCreateControl(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Image Image { get => base.Image; set => base.Image = value; } + + [Category("Appearance"), Browsable(true)] + public Color BackColorNormal { get; set; } = Color.Transparent; + + [Category("Appearance"), Browsable(true)] + public Color BackColorHover { get; set; } = Color.Transparent; + + [Category("Appearance"), Browsable(true)] + public Color BackColorSelected { get; set; } = Color.Transparent; + + [Category("Appearance"), Browsable(true)] + public Image ImageNormal { get; set; } + + [Category("Appearance"), Browsable(true)] + public Image ImageHover { get; set; } + + [Category("Appearance"), Browsable(true)] + public Image ImageSelected { get; set; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public Image NormalImage { get => this.ImageNormal; set => this.ImageNormal = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public Image HoverImage { get => this.ImageHover; set => this.ImageHover = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public Image SelectedImage { get => this.ImageSelected; set => this.ImageSelected = value; } + + public bool IsSelected { get; set; } = false; + + protected override void OnMouseEnter(EventArgs e) + { + this.Image = this.ImageHover; + this.BackColor = this.BackColorHover; + + base.OnMouseEnter(e); + } + + protected override void OnMouseLeave(EventArgs e) + { + this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal); + this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal); + + base.OnMouseLeave(e); + } + + protected override void OnLostFocus(EventArgs e) + { + this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal); + this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal); + + base.OnLostFocus(e); + } + + } +} diff --git a/RyzStudio/Windows/Forms/TPanelBook.cs b/RyzStudio/Windows/Forms/TPanelBook.cs new file mode 100644 index 0000000..eae6a0f --- /dev/null +++ b/RyzStudio/Windows/Forms/TPanelBook.cs @@ -0,0 +1,258 @@ +namespace RyzStudio.Windows.Forms +{ + using System; + using System.Collections; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + [ToolboxItem(true)] + public class TPanelBook : UserControl + { + public class PanelCollection : CollectionBase + { + protected TPanelBook panelBook = null; + + public PanelCollection(TPanelBook parentPanelBook) : base() + { + panelBook = parentPanelBook; + } + + public TPanelBook Parent => panelBook; + + public Panel this[int index] { get => (Panel)List[index]; set => List[index] = value; } + + public int Add(Panel value) => List.Add(value); + + public void AddRange(Panel[] pages) => Array.ForEach(pages, x => this.Add(x)); + + public bool Contains(Panel value) => List.Contains(value); + + public int IndexOf(Panel value) => List.IndexOf(value); + + public void Insert(int index, Panel value) => List.Insert(index, value); + + public void Remove(Panel value) => List.Remove(value); + + protected override void OnInsertComplete(int index, object value) + { + base.OnInsertComplete(index, value); + + if (panelBook != null) + { + panelBook.PageIndex = index; + } + } + + protected override void OnRemoveComplete(int index, object value) + { + base.OnRemoveComplete(index, value); + + if (panelBook != null) + { + if (panelBook.PageIndex == index) + { + if (index < InnerList.Count) + { + panelBook.PageIndex = index; + } + else + { + panelBook.PageIndex = InnerList.Count - 1; + } + } + } + } + + } + + private System.ComponentModel.IContainer components = null; + + protected PanelCollection panelCollection = null; + + public TPanelBook() + { + InitializeComponent(); + + panelCollection = new PanelCollection(this); + } + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + + base.Dispose(disposing); + } + + protected void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public Panel ActivePanel { get; protected set; } = null; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } + + [Category("Collection")] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PanelCollection Pages => panelCollection; + + [Category("Collection")] + public int SelectedIndex + { + get => (panelCollection.Count <= 0) ? -1 : panelCollection.IndexOf(this.ActivePanel); + set + { + if (panelCollection.Count <= 0) return; + if (value < 0) return; + if (value > (panelCollection.Count - 1)) return; + if (value == this.SelectedIndex) return; + + ActivatePage(value); + } + } + + protected internal int PageIndex + { + get => panelCollection.IndexOf(this.ActivePanel); + set + { + if (panelCollection.Count <= 0) + { + ActivatePage(-1); + return; + } + + if ((value < -1) || (value >= panelCollection.Count)) + { + throw new ArgumentOutOfRangeException("PageIndex", value, "The page index must be between 0 and " + Convert.ToString(panelCollection.Count - 1)); + } + + ActivatePage(value); + } + } + + protected internal void ActivatePage(int index) + { + if ((panelCollection.Count == 0) && (index >= panelCollection.Count) && (index <= 0)) + { + return; + } + + Panel p = (Panel)panelCollection[index]; + + ActivatePage(p); + } + + protected internal void ActivatePage(Panel page) + { + if (this.ActivePanel != null) + { + if (this.ActivePanel.InvokeRequired) + { + this.ActivePanel.Invoke(new MethodInvoker(() => { + this.ActivePanel.Visible = false; + })); + } + else + { + this.ActivePanel.Visible = false; + } + } + + this.ActivePanel = page; + if (this.ActivePanel != null) + { + this.ActivePanel.Parent = this; + if (!this.Contains(this.ActivePanel)) + { + this.Container.Add(this.ActivePanel); + } + + if (this.ActivePanel.InvokeRequired) + { + this.ActivePanel.Invoke(new MethodInvoker(() => { + this.ActivePanel.Dock = DockStyle.Fill; + this.ActivePanel.Visible = true; + this.ActivePanel.BringToFront(); + })); + } + else + { + this.ActivePanel.Dock = DockStyle.Fill; + this.ActivePanel.Visible = true; + this.ActivePanel.BringToFront(); + } + } + + if (this.ActivePanel != null) + { + if (this.ActivePanel.InvokeRequired) + { + this.ActivePanel.Invoke(new MethodInvoker(() => { + this.ActivePanel.Invalidate(); + })); + } + else + { + this.ActivePanel.Invalidate(); + } + } + else + { + this.Invalidate(); + } + } + +#if DEBUG + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + if (this.DesignMode) + { + this.Invalidate(); + } + } + +#endif + + protected override void DestroyHandle() + { + base.DestroyHandle(); + + foreach (Panel p in panelCollection) + { + p.Dispose(); + } + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/TUserControl.cs b/RyzStudio/Windows/Forms/TUserControl.cs new file mode 100644 index 0000000..8a22585 --- /dev/null +++ b/RyzStudio/Windows/Forms/TUserControl.cs @@ -0,0 +1,73 @@ +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace RyzStudio.Windows.Forms +{ + public class TUserControl : UserControl + { + + public TUserControl() : base() + { + + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new BorderStyle BorderStyle { get => base.BorderStyle; set => base.BorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Font Font { get => base.Font; set => base.Font = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color ForeColor { get => base.ForeColor; set => base.ForeColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AllowDrop { get => base.AllowDrop; set => base.AllowDrop = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override AutoValidate AutoValidate { get => base.AutoValidate; set => base.AutoValidate = value; } + + //[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + //public override ContextMenuStrip ContextMenuStrip { get => base.ContextMenuStrip; set => base.ContextMenuStrip = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/Forms/ThreadControl.cs b/RyzStudio/Windows/Forms/ThreadControl.cs new file mode 100644 index 0000000..49220fb --- /dev/null +++ b/RyzStudio/Windows/Forms/ThreadControl.cs @@ -0,0 +1,571 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace RyzStudio.Windows.Forms +{ + public class ThreadControl + { + public static void Add(Control control, Control value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Controls.Add(value); + })); + } + else + { + control.Controls.Add(value); + } + } + + public static void Add(ListBox control, string value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Items.Add(value); + })); + } + else + { + control.Items.Add(value); + } + } + + //public static void Add(FlowLayoutPanel control, Control value) + //{ + // if (control.InvokeRequired) + // { + // control.Invoke(new MethodInvoker(() => { + // control.Controls.Add(value); + // })); + // } + // else + // { + // control.Controls.Add(value); + // } + //} + + public static int Add(TreeView control, TreeNode value) + { + int n = -1; + + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + n = control.Nodes.Add(value); + })); + } + else + { + n = control.Nodes.Add(value); + } + + return n; + } + + public static int Add(TreeNode control, TreeNode value) + { + int n = -1; + + if (control.TreeView.InvokeRequired) + { + control.TreeView.Invoke(new MethodInvoker(() => { + n = control.Nodes.Add(value); + })); + } + else + { + n = control.Nodes.Add(value); + } + + return n; + } + + public static int Add(DataGridView control, object[] value) + { + int n = -1; + + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + n = control.Rows.Add(value); + })); + } + else + { + n = control.Rows.Add(value); + } + + return n; + } + + public static int Add(DataGridView control, object[] value, object tag) + { + int n = -1; + + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + n = control.Rows.Add(value); + control.Rows[n].Tag = tag; + })); + } + else + { + n = control.Rows.Add(value); + control.Rows[n].Tag = tag; + } + + return n; + } + + public static TreeNode Add(TreeView control, string key, string text) + { + TreeNode rv = null; + + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + rv = control.Nodes.Add(key, text); + })); + } + else + { + rv = control.Nodes.Add(key, text); + } + + return rv; + } + + public static TreeNode Add(TreeNode control, string key, string text) + { + TreeNode rv = null; + + if (control.TreeView.InvokeRequired) + { + control.TreeView.Invoke(new MethodInvoker(() => { + rv = control.Nodes.Add(key, text); + })); + } + else + { + rv = control.Nodes.Add(key, text); + } + + return rv; + } + + public static void AddLine(RichTextBox control, string text) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Text += text + Environment.NewLine; + })); + } + else + { + control.Text += text + Environment.NewLine; + } + } + + public static void Clear(ListBox control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Items.Clear(); + })); + } + else + { + control.Items.Clear(); + } + } + + public static void Clear(FlowLayoutPanel control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Controls.Clear(); + })); + } + else + { + control.Controls.Clear(); + } + } + + public static void Clear(TreeView control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Nodes.Clear(); + })); + } + else + { + control.Nodes.Clear(); + } + } + + public static void Clear(Label control) => SetText(control, string.Empty); + + public static void Clear(PictureBox control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Image = null; + })); + } + else + { + control.Image = null; + } + } + + public static void Clear(DataGridView control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Rows.Clear(); + })); + } + else + { + control.Rows.Clear(); + } + } + + public static List FindChildControl(Control control) where T : Control + { + List rs = new List(); + + foreach (Control item in control.Controls) + { + var ctr = item as T; + if (ctr == null) + { + rs.AddRange(FindChildControl(item)); + } + else + { + rs.Add(ctr); + } + } + + return rs; + } + + public static string GetText(Control control, bool doTrim = true) + { + string rv = string.Empty; + + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + rv = (doTrim ? control.Text?.Trim() : control.Text); + })); + } + else + { + rv = (doTrim ? control.Text?.Trim() : control.Text); + } + + return rv; + } + + public static void SetChecked(ToolStripMenuItem control, bool value) + { + if (control.GetCurrentParent().InvokeRequired) + { + control.GetCurrentParent().Invoke(new MethodInvoker(() => + { + control.Checked = value; + })); + } + else + { + control.Checked = value; + } + } + + public static void SetEnable(Control control, bool value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Enabled = value; + })); + } + else + { + control.Enabled = value; + } + } + + public static void SetFocus(Control control) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Focus(); + })); + } + else + { + control.Focus(); + } + } + + public static int GetValue(NumericUpDown sender) + { + int rv = 0; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { + rv = (int)sender.Value; + })); + } + else + { + rv = (int)sender.Value; + } + + return rv; + } + + public static string GetSelectedValue(ListBox sender) + { + string rv = string.Empty; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { + rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); + })); + } + else + { + rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); + } + + return rv; + } + + public static void SetHeight(Control control, int value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Height = value; + })); + } + else + { + control.Height = value; + } + } + + public static void SetLocation(Control control, Point value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Location = value; + })); + } + else + { + control.Location = value; + } + } + + public static void ClientSize(Control control, int width, int height) => ClientSize(control, new Size(width, height)); + + public static void ClientSize(Control control, Size value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.ClientSize = value; + })); + } + else + { + control.ClientSize = value; + } + } + + public static void SetSize(Control control, int width, int height) => SetSize(control, new Size(width, height)); + + public static void SetSize(Control control, Size value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Size = value; + })); + } + else + { + control.Size = value; + } + } + + public static void SetText(Control control, string text) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Text = text; + })); + } + else + { + control.Text = text; + } + } + + public static void SetTopMost(Form control, bool value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.TopMost = value; + })); + } + else + { + control.TopMost = value; + } + } + + public static void SetValue(Control control, string value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Text = value; + })); + } + else + { + control.Text = value; + } + } + + public static void SetValue(PictureBox control, Image value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => + { + control.Image = value; + })); + } + else + { + control.Image = value; + } + } + + public static void SetVisible(Control control, bool value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Visible = value; + })); + } + else + { + control.Visible = value; + } + } + + public static void SetVisible(Form control, bool value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + if (value) + { + //control.ShowInTaskbar = value; + //control.Opacity = 100; + control.Visible = value; + } + else + { + control.Visible = value; + //control.ShowInTaskbar = value; + //control.Opacity = 0; + } + })); + } + else + { + if (value) + { + //control.ShowInTaskbar = value; + //control.Opacity = 100; + control.Visible = value; + } + else + { + control.Visible = value; + //control.ShowInTaskbar = value; + //control.Opacity = 0; + } + } + } + + public static void SetWidth(Control control, int value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.Width = value; + })); + } + else + { + control.Width = value; + } + } + + public static void SetClientWidth(Control control, int value) + { + if (control.InvokeRequired) + { + control.Invoke(new MethodInvoker(() => { + control.ClientSize = new Size(value, control.ClientSize.Height); + })); + } + else + { + control.ClientSize = new Size(value, control.ClientSize.Height); + } + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs b/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs new file mode 100644 index 0000000..d39ad3c --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs @@ -0,0 +1,193 @@ +using RyzStudio.Windows.Forms; + +namespace RyzStudio.Windows.ThemedForms +{ + partial class BorderlessForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BorderlessForm)); + this.label1 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.area1 = new System.Windows.Forms.Panel(); + this.pictureBox4 = new RyzStudio.Windows.Forms.TImageBox(); + this.pictureBox2 = new RyzStudio.Windows.Forms.TImageBox(); + this.pictureBox1 = new RyzStudio.Windows.Forms.TImageBox(); + this.pictureBox3 = new RyzStudio.Windows.Forms.TImageBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241))))); + this.label1.Location = new System.Drawing.Point(1, 1); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(48, 0, 0, 0); + this.label1.Size = new System.Drawing.Size(454, 48); + this.label1.TabIndex = 148; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.label1.DoubleClick += new System.EventHandler(this.label1_DoubleClick); + this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); + this.label1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown); + this.label1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); + this.label1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.label1_MouseUp); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.Color.Transparent; + this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNWSE; + this.panel1.Location = new System.Drawing.Point(594, 674); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(6, 6); + this.panel1.TabIndex = 150; + this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown); + this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); + this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp); + // + // area1 + // + this.area1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.area1.BackColor = System.Drawing.Color.Transparent; + this.area1.Cursor = System.Windows.Forms.Cursors.SizeNS; + this.area1.Location = new System.Drawing.Point(1, 674); + this.area1.Name = "area1"; + this.area1.Size = new System.Drawing.Size(592, 6); + this.area1.TabIndex = 152; + this.area1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseDown); + this.area1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseMove); + this.area1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseUp); + // + // pictureBox4 + // + this.pictureBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox4.BackColor = System.Drawing.Color.Transparent; + this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.pictureBox4.ErrorImage = null; + this.pictureBox4.ImageHover = global::hiim.dply.Properties.Resources.form20_menu2; + this.pictureBox4.Image = global::hiim.dply.Properties.Resources.form20_menu; + this.pictureBox4.InitialImage = null; + this.pictureBox4.Location = new System.Drawing.Point(460, 11); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.NormalImage = global::hiim.dply.Properties.Resources.form20_menu; + this.pictureBox4.Size = new System.Drawing.Size(28, 28); + this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox4.TabIndex = 149; + this.pictureBox4.TabStop = false; + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox2.BackColor = System.Drawing.Color.Transparent; + this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.pictureBox2.ErrorImage = null; + this.pictureBox2.ImageHover = global::hiim.dply.Properties.Resources.form20_maximise2; + this.pictureBox2.Image = global::hiim.dply.Properties.Resources.form20_maximise; + this.pictureBox2.InitialImage = null; + this.pictureBox2.Location = new System.Drawing.Point(528, 11); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.NormalImage = global::hiim.dply.Properties.Resources.form20_maximise; + this.pictureBox2.Size = new System.Drawing.Size(28, 28); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox2.TabIndex = 147; + this.pictureBox2.TabStop = false; + // + // pictureBox1 + // + this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox1.BackColor = System.Drawing.Color.Transparent; + this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.pictureBox1.ErrorImage = null; + this.pictureBox1.ImageHover = global::hiim.dply.Properties.Resources.form20_minimise2; + this.pictureBox1.Image = global::hiim.dply.Properties.Resources.form20_minimise; + this.pictureBox1.InitialImage = null; + this.pictureBox1.Location = new System.Drawing.Point(494, 11); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.NormalImage = global::hiim.dply.Properties.Resources.form20_minimise; + this.pictureBox1.Size = new System.Drawing.Size(28, 28); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox1.TabIndex = 146; + this.pictureBox1.TabStop = false; + // + // pictureBox3 + // + this.pictureBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox3.BackColor = System.Drawing.Color.Transparent; + this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.pictureBox3.ErrorImage = null; + this.pictureBox3.ImageHover = global::hiim.dply.Properties.Resources.form20_close2; + this.pictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox3.Image"))); + this.pictureBox3.InitialImage = null; + this.pictureBox3.Location = new System.Drawing.Point(562, 11); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.NormalImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.NormalImage"))); + this.pictureBox3.Size = new System.Drawing.Size(28, 28); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox3.TabIndex = 145; + this.pictureBox3.TabStop = false; + // + // BorderlessForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.WhiteSmoke; + this.ClientSize = new System.Drawing.Size(600, 680); + this.Controls.Add(this.area1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.pictureBox4); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.pictureBox3); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "BorderlessForm"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + protected internal TImageBox pictureBox2; + protected internal TImageBox pictureBox1; + protected internal TImageBox pictureBox3; + protected internal System.Windows.Forms.Label label1; + protected internal TImageBox pictureBox4; + protected internal System.Windows.Forms.Panel panel1; + protected internal System.Windows.Forms.Panel area1; + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.cs b/RyzStudio/Windows/ThemedForms/BorderlessForm.cs new file mode 100644 index 0000000..840d970 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessForm.cs @@ -0,0 +1,409 @@ +namespace RyzStudio.Windows.ThemedForms +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Design; + using System.Windows.Forms; + + public partial class BorderlessForm : System.Windows.Forms.Form + { + protected bool isBusy = false; + + protected Color topFillColour = Color.FromArgb(15, 15, 15); + protected int topFillHeight = 48; + protected Color bottomFillColour = Color.FromArgb(15, 15, 15); + protected int bottomFillMargin = 19; + protected int bottomLeftMargin = 20; + protected int borderWidth = 1; + protected int menuFillWidth = 160; + protected Color menuFillColour = Color.FromArgb(179, 179, 179); + + private bool windowDragging = false; + private Point windowOffset = new Point(); + private Point windowSize = new Point(); + + public BorderlessForm() : base() + { + this.InitializeComponent(); + + this.BackColor = Color.FromArgb(247, 247, 247); + this.FormBorderStyle = FormBorderStyle.None; + this.Padding = new Padding(1); + + this.topFillColour = Color.FromArgb(51, 51, 51); + this.topFillHeight = 48; + this.bottomFillColour = Color.FromArgb(0, 152, 167); + this.bottomFillMargin = 6; + + pictureBox1.Click += pictureBox1_Click; + pictureBox2.Click += pictureBox2_Click; + pictureBox3.Click += pictureBox3_Click; + pictureBox4.Click += pictureBox4_Click; + + updatePictureBox2Image(); + } + + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + + if (this.IsBusy) + { + e.Cancel = true; + } + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Graphics g = e.Graphics; + + Rectangle areaTop = new Rectangle(this.DisplayRectangle.Left, this.Padding.Top, this.DisplayRectangle.Width, topFillHeight); + Rectangle areaBottom = new Rectangle(this.DisplayRectangle.Left, (this.DisplayRectangle.Height - bottomFillMargin + this.Padding.Top), this.DisplayRectangle.Width, bottomFillMargin); + Rectangle areaBorder = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - borderWidth, this.ClientRectangle.Height - borderWidth); + + Rectangle areaMenu = new Rectangle(this.DisplayRectangle.Left, this.DisplayRectangle.Top + topFillHeight, menuFillWidth, (this.DisplayRectangle.Height - bottomFillMargin - topFillHeight)); + + // draw header + if (topFillHeight > 0) + { + g.FillRectangle(new SolidBrush(topFillColour), areaTop); + } + + // fill menu + g.FillRectangle(new SolidBrush(menuFillColour), areaMenu); + + // draw footer + if (bottomFillMargin > 0) + { + g.FillRectangle(new SolidBrush(bottomFillColour), areaBottom); + } + + // draw logo + if (this.TitleLogo != null) + { + g.DrawImageUnscaled(this.TitleLogo, this.Padding.Left, this.Padding.Top); + } + + if (this.Banner != null) + { + g.DrawImageUnscaled(this.Banner, this.Padding.Left + bottomLeftMargin, (this.DisplayRectangle.Height - this.Banner.Height - bottomFillMargin + this.Padding.Top), (this.DisplayRectangle.Width - (this.Padding.Left + this.Padding.Right)), this.Banner.Height); + } + + g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + updatePictureBox2Image(); + + this.Invalidate(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + [Category("Appearance"), Browsable(true)] + public string Description + { + get + { + return label1.Text?.Replace("\n", "\\n"); + } + set + { + label1.Text = value?.Replace("\\n", "\n"); + } + } + + [Category("Appearance"), Browsable(true)] + public Image TitleLogo { get; set; } + + [Category("Appearance"), Browsable(true)] + public Image Banner { get; set; } + + [Category("Appearance"), Browsable(true)] + public bool ShowMenuButton { get => pictureBox4.Visible; set => pictureBox4.Visible = value; } + + protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } + + private void pictureBox4_Click(object sender, System.EventArgs e) + { + //this.WindowState = FormWindowState.Minimized; + } + + private void pictureBox1_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + this.WindowState = FormWindowState.Minimized; + } + + private void pictureBox2_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + pictureBox2.NormalImage = Resources.form20_maximise; + pictureBox2.HighlightImage = Resources.form20_maximise2; + } + else + { + this.WindowState = FormWindowState.Maximized; + pictureBox2.NormalImage = Resources.form20_restore; + pictureBox2.HighlightImage = Resources.form20_restore2; + } + } + + private void pictureBox3_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + this.Close(); + } + + public void SetValue(Label sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); + } + else + { + sender.Text = value; + } + } + + public void SetValue(GroupBox sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); + } + else + { + sender.Text = value; + } + } + + public void AddValue(ListBox sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Items.Add(value); })); + } + else + { + sender.Items.Add(value); + } + } + + public void AddControl(FlowLayoutPanel sender, Control value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => + { + sender.Controls.Add(value); + })); + } + else + { + sender.Controls.Add(value); + } + } + + public void ClearValues(ListBox sender) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Items.Clear(); })); + } + else + { + sender.Items.Clear(); + } + } + + public string GetValue(ListBox sender) + { + string rv = string.Empty; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); })); + } + else + { + rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); + } + + return rv; + } + + public string GetValue(TextBox sender) + { + string rv = string.Empty; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = sender.Text.Trim(); })); + } + else + { + rv = sender.Text.Trim(); + } + + return rv; + } + + public int GetValue(NumericUpDown sender) + { + int rv = 0; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = (int)sender.Value; })); + } + else + { + rv = (int)sender.Value; + } + + return rv; + } + + protected void updatePictureBox2Image() + { + if (this.WindowState == FormWindowState.Maximized) + { + pictureBox2.NormalImage = Resources.form20_restore; + pictureBox2.HighlightImage = Resources.form20_restore2; + } + else + { + pictureBox2.NormalImage = Resources.form20_maximise; + pictureBox2.HighlightImage = Resources.form20_maximise2; + } + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + Point currentScreenPos = PointToScreen(e.Location); + Location = new Point(currentScreenPos.X - windowOffset.X, currentScreenPos.Y - windowOffset.Y); + } + } + + private void label1_DoubleClick(object sender, EventArgs e) => pictureBox2_Click(sender, e); + + private void label1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Middle) + { + this.TopMost = !this.TopMost; + } + } + + private void panel1_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + windowSize = new Point(this.Width, this.Height); + } + + private void panel1_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + } + + private void panel1_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + this.Size = new Size(e.X - windowOffset.X + this.Width, e.Y - windowOffset.Y + this.Height); + } + } + + private void panel2_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + windowSize = new Point(this.Width, this.Height); + } + + private void panel2_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + } + + private void panel2_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + this.Size = new Size(windowSize.X, e.Y - windowOffset.Y + this.Height); + } + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.resx b/RyzStudio/Windows/ThemedForms/BorderlessForm.resx new file mode 100644 index 0000000..db173e1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessForm.resx @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + + + iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADnSURBVDhP1ZVB + DoIwEEW7whNo9Cri/QCv5Y4YEoTWxK71Gvqn+W2AgEkbNvxkYPgzfWkpKcpau9NaX/u+/yC+iSFjK3Ay + RdhcU0qUChc3s67rzipRGJ8T+JYHR2ctWYGzXSC8Gzbs3rbtgZaSXDyp0QoKnJBMBK8WH5vVCUhCcvbX + bAuivwxsmmaP2TxYfyE3zJ/Ij2wLYu3/OxQoah4kYedgIt8TDTTGnFgeyfcsAodLxn205Dlo4IRkInjr + bgq8dT+bWG0L6A/WnLVo4b1eyHDHV8WHNaJwvwAkJeI9KMSGjC201tkP+AimzgF8cMEAAAAASUVORK5C + YII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADnSURBVDhP1ZVB + DoIwEEW7whNo9Cri/QCv5Y4YEoTWxK71Gvqn+W2AgEkbNvxkYPgzfWkpKcpau9NaX/u+/yC+iSFjK3Ay + RdhcU0qUChc3s67rzipRGJ8T+JYHR2ctWYGzXSC8Gzbs3rbtgZaSXDyp0QoKnJBMBK8WH5vVCUhCcvbX + bAuivwxsmmaP2TxYfyE3zJ/Ij2wLYu3/OxQoah4kYedgIt8TDTTGnFgeyfcsAodLxn205Dlo4IRkInjr + bgq8dT+bWG0L6A/WnLVo4b1eyHDHV8WHNaJwvwAkJeI9KMSGjC201tkP+AimzgF8cMEAAAAASUVORK5C + YII= + + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs new file mode 100644 index 0000000..75f86a0 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs @@ -0,0 +1,191 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class BorderlessToolForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lblDescription = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.imgbxMenu = new RyzStudio.Windows.Forms.ImageBox(); + this.imgbxMaximise = new RyzStudio.Windows.Forms.ImageBox(); + this.imgbxMinimise = new RyzStudio.Windows.Forms.ImageBox(); + this.imgbxClose = new RyzStudio.Windows.Forms.ImageBox(); + this.area1 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxMenu)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxMaximise)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxMinimise)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); + this.SuspendLayout(); + // + // lblDescription + // + this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lblDescription.BackColor = System.Drawing.Color.Transparent; + this.lblDescription.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblDescription.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241))))); + this.lblDescription.Location = new System.Drawing.Point(1, 1); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lblDescription.Size = new System.Drawing.Size(194, 30); + this.lblDescription.TabIndex = 148; + this.lblDescription.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lblDescription.DoubleClick += new System.EventHandler(this.label1_DoubleClick); + this.lblDescription.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); + this.lblDescription.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown); + this.lblDescription.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); + this.lblDescription.MouseUp += new System.Windows.Forms.MouseEventHandler(this.label1_MouseUp); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.Color.Transparent; + this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNWSE; + this.panel1.Location = new System.Drawing.Point(335, 595); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(5, 5); + this.panel1.TabIndex = 150; + this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown); + this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); + this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp); + // + // imgbxMenu + // + this.imgbxMenu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.imgbxMenu.BackColor = System.Drawing.Color.Transparent; + this.imgbxMenu.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imgbxMenu.ErrorImage = null; + this.imgbxMenu.HighlightImage = global::AppLauncher.Properties.Resources.form16_menu2; + this.imgbxMenu.Image = global::AppLauncher.Properties.Resources.form16_menu; + this.imgbxMenu.InitialImage = null; + this.imgbxMenu.Location = new System.Drawing.Point(224, 4); + this.imgbxMenu.Name = "imgbxMenu"; + this.imgbxMenu.NormalImage = global::AppLauncher.Properties.Resources.form16_menu; + this.imgbxMenu.Size = new System.Drawing.Size(24, 24); + this.imgbxMenu.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgbxMenu.TabIndex = 149; + this.imgbxMenu.TabStop = false; + // + // imgbxMaximise + // + this.imgbxMaximise.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.imgbxMaximise.BackColor = System.Drawing.Color.Transparent; + this.imgbxMaximise.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imgbxMaximise.ErrorImage = null; + this.imgbxMaximise.HighlightImage = global::AppLauncher.Properties.Resources.form16_maximise2; + this.imgbxMaximise.Image = global::AppLauncher.Properties.Resources.form16_maximise; + this.imgbxMaximise.InitialImage = null; + this.imgbxMaximise.Location = new System.Drawing.Point(280, 4); + this.imgbxMaximise.Name = "imgbxMaximise"; + this.imgbxMaximise.NormalImage = global::AppLauncher.Properties.Resources.form16_maximise; + this.imgbxMaximise.Size = new System.Drawing.Size(24, 24); + this.imgbxMaximise.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgbxMaximise.TabIndex = 147; + this.imgbxMaximise.TabStop = false; + // + // imgbxMinimise + // + this.imgbxMinimise.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.imgbxMinimise.BackColor = System.Drawing.Color.Transparent; + this.imgbxMinimise.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imgbxMinimise.ErrorImage = null; + this.imgbxMinimise.HighlightImage = global::AppLauncher.Properties.Resources.form16_minimise2; + this.imgbxMinimise.Image = global::AppLauncher.Properties.Resources.form16_minimise; + this.imgbxMinimise.InitialImage = null; + this.imgbxMinimise.Location = new System.Drawing.Point(252, 4); + this.imgbxMinimise.Name = "imgbxMinimise"; + this.imgbxMinimise.NormalImage = global::AppLauncher.Properties.Resources.form16_minimise; + this.imgbxMinimise.Size = new System.Drawing.Size(24, 24); + this.imgbxMinimise.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgbxMinimise.TabIndex = 146; + this.imgbxMinimise.TabStop = false; + // + // imgbxClose + // + this.imgbxClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.imgbxClose.BackColor = System.Drawing.Color.Transparent; + this.imgbxClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imgbxClose.ErrorImage = null; + this.imgbxClose.HighlightImage = global::AppLauncher.Properties.Resources.form16_close2; + this.imgbxClose.Image = global::AppLauncher.Properties.Resources.form16_close; + this.imgbxClose.InitialImage = null; + this.imgbxClose.Location = new System.Drawing.Point(308, 4); + this.imgbxClose.Name = "imgbxClose"; + this.imgbxClose.NormalImage = global::AppLauncher.Properties.Resources.form16_close; + this.imgbxClose.Size = new System.Drawing.Size(24, 24); + this.imgbxClose.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imgbxClose.TabIndex = 145; + this.imgbxClose.TabStop = false; + // + // area1 + // + this.area1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.area1.BackColor = System.Drawing.Color.Transparent; + this.area1.Cursor = System.Windows.Forms.Cursors.SizeNS; + this.area1.Location = new System.Drawing.Point(0, 595); + this.area1.Name = "area1"; + this.area1.Size = new System.Drawing.Size(334, 5); + this.area1.TabIndex = 151; + this.area1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseDown); + this.area1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseMove); + this.area1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseUp); + // + // BorderlessToolForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.WhiteSmoke; + this.ClientSize = new System.Drawing.Size(340, 600); + this.Controls.Add(this.area1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.imgbxMenu); + this.Controls.Add(this.lblDescription); + this.Controls.Add(this.imgbxMaximise); + this.Controls.Add(this.imgbxMinimise); + this.Controls.Add(this.imgbxClose); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MinimumSize = new System.Drawing.Size(40, 0); + this.Name = "BorderlessToolForm"; + ((System.ComponentModel.ISupportInitialize)(this.imgbxMenu)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxMaximise)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxMinimise)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + protected internal Forms.ImageBox imgbxMaximise; + protected internal Forms.ImageBox imgbxMinimise; + protected internal Forms.ImageBox imgbxClose; + protected internal System.Windows.Forms.Label lblDescription; + protected internal Forms.ImageBox imgbxMenu; + protected internal System.Windows.Forms.Panel panel1; + protected internal System.Windows.Forms.Panel area1; + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs new file mode 100644 index 0000000..3c17b0b --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs @@ -0,0 +1,394 @@ +namespace RyzStudio.Windows.ThemedForms +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Drawing.Design; + using System.Windows.Forms; + using Resources = AppLauncher.Properties.Resources; + + public partial class BorderlessToolForm : System.Windows.Forms.Form + { + protected bool isBusy = false; + + protected Color topFillColour = Color.FromArgb(15, 15, 15); + protected int topFillHeight = 32; + protected int borderWidth = 1; + + private bool windowDragging = false; + private Point windowOffset = new Point(); + private Point windowSize = new Point(); + + public BorderlessToolForm() : base() + { + this.InitializeComponent(); + + this.BackColor = Color.FromArgb(246, 246, 246); + this.Padding = new Padding(1); + + this.topFillColour = Color.FromArgb(51, 51, 51); + this.topFillHeight = 32; + + this.BackColor = Color.FromArgb(179, 179, 179); + this.FormBorderStyle = FormBorderStyle.None; + + imgbxMinimise.Click += pictureBox1_Click; + imgbxMaximise.Click += pictureBox2_Click; + imgbxClose.Click += pictureBox3_Click; + imgbxMenu.Click += pictureBox4_Click; + + updatePictureBox2Image(); + } + + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + + if (this.IsBusy) + { + e.Cancel = true; + } + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Graphics g = e.Graphics; + + Rectangle areaTop = new Rectangle(this.DisplayRectangle.Left, this.Padding.Top, this.DisplayRectangle.Width, topFillHeight); + Rectangle areaBorder = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - borderWidth, this.ClientRectangle.Height - borderWidth); + + // draw header + if (topFillHeight > 0) + { + g.FillRectangle(new SolidBrush(topFillColour), areaTop); + } + + // draw logo + //if (this.TitleLogo != null) + //{ + // g.DrawImageUnscaled(this.TitleLogo, this.Padding.Left, this.Padding.Top); + //} + + g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + updatePictureBox2Image(); + + this.Invalidate(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + [Category("Appearance"), Browsable(true)] + public string Description + { + get + { + return lblDescription.Text?.Replace("\n", "\\n"); + } + set + { + lblDescription.Text = value?.Replace("\\n", "\n"); + } + } + + //[Category("Appearance"), Browsable(true)] + //public Image TitleLogo { get; set; } + + [Category("Appearance"), Browsable(true)] + public Image Banner { get; set; } + + [Category("Appearance"), Browsable(true)] + public bool ShowMenuButton { get => imgbxMenu.Visible; set => imgbxMenu.Visible = value; } + + [Category("Appearance"), Browsable(true)] + public bool ShowMinimiseButton { get => imgbxMinimise.Visible; set => imgbxMinimise.Visible = value; } + + [Category("Appearance"), Browsable(true)] + public bool ShowMaximiseButton { get => imgbxMaximise.Visible; set => imgbxMaximise.Visible = value; } + + protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } + + private void pictureBox4_Click(object sender, System.EventArgs e) + { + //this.WindowState = FormWindowState.Minimized; + } + + private void pictureBox1_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + this.WindowState = FormWindowState.Minimized; + } + + private void pictureBox2_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + if (this.WindowState == FormWindowState.Maximized) + { + this.WindowState = FormWindowState.Normal; + imgbxMaximise.NormalImage = Resources.form16_maximise; + imgbxMaximise.HighlightImage = Resources.form16_maximise2; + } + else + { + this.WindowState = FormWindowState.Maximized; + imgbxMaximise.NormalImage = Resources.form16_restore; + imgbxMaximise.HighlightImage = Resources.form16_restore2; + } + } + + private void pictureBox3_Click(object sender, System.EventArgs e) + { + MouseEventArgs mouseEvent = (MouseEventArgs)e; + if (mouseEvent != null) + { + if (mouseEvent.Button != MouseButtons.Left) + { + return; + } + } + + this.Close(); + } + + public void SetValue(Label sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); + } + else + { + sender.Text = value; + } + } + + public void SetValue(GroupBox sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Text = value; })); + } + else + { + sender.Text = value; + } + } + + public void AddValue(ListBox sender, string value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Items.Add(value); })); + } + else + { + sender.Items.Add(value); + } + } + + public void AddControl(FlowLayoutPanel sender, Control value) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => + { + sender.Controls.Add(value); + })); + } + else + { + sender.Controls.Add(value); + } + } + + public void ClearValues(ListBox sender) + { + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { sender.Items.Clear(); })); + } + else + { + sender.Items.Clear(); + } + } + + public string GetValue(ListBox sender) + { + string rv = string.Empty; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); })); + } + else + { + rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString(); + } + + return rv; + } + + public string GetValue(TTextBox sender) + { + string rv = string.Empty; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = sender.Text.Trim(); })); + } + else + { + rv = sender.Text.Trim(); + } + + return rv; + } + + public int GetValue(NumericUpDown sender) + { + int rv = 0; + + if (sender.InvokeRequired) + { + sender.Invoke(new MethodInvoker(() => { rv = (int)sender.Value; })); + } + else + { + rv = (int)sender.Value; + } + + return rv; + } + + protected void updatePictureBox2Image() + { + if (this.WindowState == FormWindowState.Maximized) + { + imgbxMaximise.NormalImage = Resources.form16_restore; + imgbxMaximise.HighlightImage = Resources.form16_restore2; + } + else + { + imgbxMaximise.NormalImage = Resources.form16_maximise; + imgbxMaximise.HighlightImage = Resources.form16_maximise2; + } + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + Point currentScreenPos = PointToScreen(e.Location); + Location = new Point(currentScreenPos.X - windowOffset.X, currentScreenPos.Y - windowOffset.Y); + } + } + + private void label1_DoubleClick(object sender, EventArgs e) => pictureBox2_Click(sender, e); + + private void label1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Middle) + { + this.TopMost = !this.TopMost; + } + } + + private void panel1_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + windowSize = new Point(this.Width, this.Height); + } + + private void panel1_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + } + + private void panel1_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + this.Size = new Size(e.X - windowOffset.X + this.Width, e.Y - windowOffset.Y + this.Height); + } + } + + private void panel2_MouseDown(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + windowDragging = true; + windowOffset = e.Location; + windowSize = new Point(this.Width, this.Height); + } + + private void panel2_MouseUp(object sender, MouseEventArgs e) + { + windowDragging = false; + + } + + private void panel2_MouseMove(object sender, MouseEventArgs e) + { + if (windowDragging) + { + this.Size = new Size(windowSize.X, e.Y - windowOffset.Y + this.Height); + } + } + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx new file mode 100644 index 0000000..8c98a25 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.cs b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.cs new file mode 100644 index 0000000..255f98c --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.cs @@ -0,0 +1,98 @@ +namespace RyzStudio.Windows.ThemedForms +{ + using RyzStudio.Drawing; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + public partial class TPickerBox : RyzStudio.Windows.ThemedForms.TUserControl + { + protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2); + + public TPickerBox() : base() + { + InitializeComponent(); + + this.Font = new Font(this.Font, FontStyle.Regular); + this.Margin = new Padding(10, 4, 10, 4); + + comboBox1.Font = this.Font; + comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; + comboBox1.PreviewKeyDown += textBox_PreviewKeyDown; + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + + comboBox1.Focus(); + } + + protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Enter: + if (this.SubmitButton != null) + { + this.SubmitButton.PerformClick(); + } + + break; + case Keys.Escape: + close(); + break; + default: break; + } + } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public System.Windows.Forms.ComboBox ComboBox { get => comboBox1; set => comboBox1 = value; } + + //[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + //[Category("Appearance")] + //public new string Text + //{ + // get => textBox1.Text; + // set + // { + // textBox1.Text = value; + // textBox1.SelectionStart = textBox1.Text.Length; + // } + //} + + //[Browsable(true)] + //[Category("Appearance")] + //public ComboBox.ObjectCollection Items { get => comboBox1.Items; set => comboBox1.Items = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public TButton SubmitButton { get; set; } = null; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get => base.Margin; set => base.Margin = value; } + + protected override void updateBackground(Graphics g, ThemeStyle style) + { + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); + + Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); + g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); + g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.designer.cs b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.designer.cs new file mode 100644 index 0000000..760329f --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.designer.cs @@ -0,0 +1,59 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TPickerBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(4, 4); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(121, 21); + this.comboBox1.TabIndex = 0; + // + // PickerBox + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.Controls.Add(this.comboBox1); + this.Name = "PickerBox"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.Size = new System.Drawing.Size(128, 32); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + } +} diff --git a/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.resx b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/PickerBox/TYesNoPickerBox.cs b/RyzStudio/Windows/ThemedForms/PickerBox/TYesNoPickerBox.cs new file mode 100644 index 0000000..89225ee --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/PickerBox/TYesNoPickerBox.cs @@ -0,0 +1,17 @@ +namespace RyzStudio.Windows.ThemedForms +{ + public class TYesNoPickerBox : TPickerBox + { + + public TYesNoPickerBox() : base() + { + this.ComboBox.Items.Clear(); + + this.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); + if (this.ComboBox.Items.Count > 0) this.ComboBox.SelectedIndex = 0; + } + + public bool Value { get => (this.ComboBox.SelectedIndex == 1); set =>this.ComboBox.SelectedIndex = (value ? 1 : 0); } + + } +} diff --git a/RyzStudio/Windows/ThemedForms/TButton.cs b/RyzStudio/Windows/ThemedForms/TButton.cs new file mode 100644 index 0000000..b6e4d93 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TButton.cs @@ -0,0 +1,170 @@ +namespace RyzStudio.Windows.ThemedForms +{ + using System; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + public partial class TButton : RyzStudio.Windows.ThemedForms.TUserControl + { + public class ButtonStyle + { + public Color BackColour { get; set; } = Color.Transparent; + public Color PenColour { get; set; } = Color.Transparent; + public Image ForeImage { get; set; } = null; + } + + public enum ButtonState + { + Idle = 0, + Hover, + Down + } + + protected ButtonState controlState = ButtonState.Idle; + protected bool isSelected = false; + + public TButton() : base() + { + InitializeComponent(); + + this.Margin = new Padding(10); + + this.StyleDefault = new ButtonStyle() + { + BackColour = Color.White, + PenColour = Color.Black, + ForeImage = this.DefaultImage + }; + this.StyleDown = new ButtonStyle() + { + BackColour = Color.FromArgb(0, 183, 209), + PenColour = Color.Black, + ForeImage = this.DownImage + }; + this.StyleOver = new ButtonStyle() + { + BackColour = Color.FromArgb(108, 101, 196), + PenColour = Color.White, + ForeImage = this.OverImage + }; + this.StyleSelected = new ButtonStyle() + { + BackColour = Color.FromArgb(51, 51, 51), + PenColour = Color.White, + ForeImage = this.OverImage + }; + + label1.ImageAlign = ContentAlignment.MiddleCenter; + label1.Click += delegate { this.OnClick(null); }; + label1.MouseEnter += delegate { this.VisualState = ButtonState.Hover; }; + label1.MouseLeave += delegate { this.VisualState = ButtonState.Idle; }; + label1.MouseDown += delegate { this.VisualState = ButtonState.Down; }; + label1.MouseUp += delegate { this.VisualState = ButtonState.Idle; }; + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + this.VisualState = ButtonState.Idle; + } + + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get => base.Margin; set => base.Margin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + + protected ButtonState VisualState + { + get { return controlState; } + set + { + switch (value) + { + case ButtonState.Idle: + if (this.VisualState == ButtonState.Down) + { + updateButton(StyleOver); + } + else + { + if (this.IsSelected) + { + updateButton(StyleSelected); + } + else + { + updateButton(StyleDefault); + } + } + + break; + case ButtonState.Hover: + updateButton(StyleOver); + break; + case ButtonState.Down: + updateButton(StyleDown); + break; + default: + if (this.IsSelected) + { + updateButton(StyleSelected); + } + else + { + updateButton(StyleDefault); + } + + break; + } + + controlState = value; + } + } + + protected void updateButton(ButtonStyle style) + { + label1.ForeColor = style.PenColour; + label1.BackColor = style.BackColour; + label1.Image = style.ForeImage; + } + + [Browsable(true)] + [Category("Appearance")] + public string LabelText { get => label1.Text; set => label1.Text = value; } + + [Browsable(true)] + [Category("Appearance")] + public Image OverImage { get; set; } = null; + + [Browsable(true)] + [Category("Appearance")] + public Image DownImage { get; set; } = null; + + [Browsable(true)] + [Category("Appearance")] + public Image DefaultImage { get; set; } = null; + + public bool IsSelected + { + get => isSelected; + set + { + isSelected = value; + + this.VisualState = this.VisualState; + } + } + + protected ButtonStyle StyleOver { get; set; } = new ButtonStyle(); + protected ButtonStyle StyleDown { get; set; } = new ButtonStyle(); + protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle(); + protected ButtonStyle StyleSelected { get; set; } = new ButtonStyle(); + + public void PerformClick() => this.OnClick(null); + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TButton.designer.cs b/RyzStudio/Windows/ThemedForms/TButton.designer.cs new file mode 100644 index 0000000..5bf79d6 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TButton.designer.cs @@ -0,0 +1,61 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TButton + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(4, 4); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(121, 25); + this.label1.TabIndex = 0; + this.label1.Text = "label1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Button + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.label1); + this.Name = "Button"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.Size = new System.Drawing.Size(128, 32); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + } +} diff --git a/RyzStudio/Windows/ThemedForms/TButton.resx b/RyzStudio/Windows/ThemedForms/TButton.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TButton.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs b/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs new file mode 100644 index 0000000..0133a0e --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs @@ -0,0 +1,47 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TDialogForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // TDialogForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(249)))), ((int)(((byte)(250))))); + this.ClientSize = new System.Drawing.Size(340, 600); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MinimumSize = new System.Drawing.Size(40, 0); + this.Name = "TDialogForm"; + this.ResumeLayout(false); + + } + + #endregion + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.cs b/RyzStudio/Windows/ThemedForms/TDialogForm.cs new file mode 100644 index 0000000..05dc0e4 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.cs @@ -0,0 +1,117 @@ +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace RyzStudio.Windows.ThemedForms +{ + public partial class TDialogForm : Form + { + public TDialogForm() + { + this.InitializeComponent(); + + this.BackColor = Color.FromArgb(254, 254, 254); + this.FormBorderStyle = FormBorderStyle.Sizable; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Padding = new Padding(5, 10, 5, 10); + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = FormStartPosition.CenterParent; + this.TopMost = true; + this.SizeGripStyle = SizeGripStyle.Hide; + this.AutoScaleMode = AutoScaleMode.Font; + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color BackColor { get => base.BackColor; set => base.BackColor = value; } + + [Browsable(false)] + public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; } + + [Browsable(false)] + public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } + + //[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + //public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; } + + //[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + //public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool ShowIcon { get => base.ShowIcon; set => base.ShowIcon = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool ShowInTaskbar { get => base.ShowInTaskbar; set => base.ShowInTaskbar = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormStartPosition StartPosition { get => base.StartPosition; set => base.StartPosition = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool TopMost { get => base.TopMost; set => base.TopMost = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool RightToLeftLayout { get => base.RightToLeftLayout; set => base.RightToLeftLayout = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool MinimizeBox { get => base.MinimizeBox; set => base.MinimizeBox = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool MaximizeBox { get => base.MaximizeBox; set => base.MaximizeBox = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool ControlBox { get => base.ControlBox; set => base.ControlBox = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool HelpButton { get => base.HelpButton; set => base.HelpButton = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new MenuStrip MainMenuStrip { get => base.MainMenuStrip; set => base.MainMenuStrip = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new SizeGripStyle SizeGripStyle { get => base.SizeGripStyle; set => base.SizeGripStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new AutoScaleMode AutoScaleMode { get => base.AutoScaleMode; set => base.AutoScaleMode = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Point AutoScrollOffset { get => base.AutoScrollOffset; set => base.AutoScrollOffset = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormWindowState WindowState { get => base.WindowState; set => base.WindowState = value; } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.resx b/RyzStudio/Windows/ThemedForms/TDialogForm.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TListBox.cs b/RyzStudio/Windows/ThemedForms/TListBox.cs new file mode 100644 index 0000000..2ddc41b --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TListBox.cs @@ -0,0 +1,233 @@ +using RyzStudio.Drawing; +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using UIResource = FizzyLauncher.UIResource; + +namespace RyzStudio.Windows.ThemedForms +{ + public partial class TListBox : RyzStudio.Windows.ThemedForms.TUserControl + { + protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2); + + public TListBox() : base() + { + InitializeComponent(); + + this.Font = new Font(this.Font, FontStyle.Regular); + this.Margin = new Padding(10, 4, 10, 4); + + listBox1.Font = this.Font; + listBox1.BorderStyle = BorderStyle.None; + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + //int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + //this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + + listBox1.Focus(); + } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public System.Windows.Forms.ListBox ListBox { get => listBox1; set => listBox1 = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public TButton SubmitButton { get; set; } = null; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get => base.Margin; set => base.Margin = value; } + + [Category("Action")] + [Browsable(true)] + public event EventHandler OnAdd; + + [Category("Action")] + [Browsable(true)] + public event EventHandler OnEdit; + + protected override void updateBackground(Graphics g, ThemeStyle style) + { + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); + + Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); + g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); + g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); + } + + /// + /// Add + /// + /// + /// + private void imageBox1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + this.OnAdd?.Invoke(sender, e); + } + + /// + /// Edit + /// + /// + /// + private void imageBox5_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + this.OnEdit?.Invoke(sender, e); + } + + /// + /// Remove + /// + /// + /// + private void imageBox2_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + { + return; + } + + if (listBox1.SelectedIndex < 0) + { + return; + } + + int pos = listBox1.SelectedIndex; + + listBox1.Items.RemoveAt(pos); + + if (pos > (listBox1.Items.Count - 1)) + { + pos = (listBox1.Items.Count - 1); + } + + listBox1.SelectedIndex = pos; + } + + /// + /// Move up + /// + /// + /// + private void imageBox3_MouseClick(object sender, MouseEventArgs e) + { + if (e != null) + { + if (e.Button != MouseButtons.Left) + { + return; + } + } + + if (listBox1.SelectedIndex <= 0) + { + return; + } + + if (listBox1.SelectedItem == null) + { + return; + } + + object item = listBox1.SelectedItem; + int pos = listBox1.SelectedIndex; + + listBox1.Items.RemoveAt(pos); + listBox1.Items.Insert((pos - 1), item); + + listBox1.SelectedIndex = (pos - 1); + } + + /// + /// Move down + /// + /// + /// + private void imageBox4_MouseClick(object sender, MouseEventArgs e) + { + if (e != null) + { + if (e.Button != MouseButtons.Left) + { + return; + } + } + + if (listBox1.SelectedIndex >= (listBox1.Items.Count - 1)) + { + return; + } + + if (listBox1.SelectedItem == null) + { + return; + } + + object item = listBox1.SelectedItem; + int pos = listBox1.SelectedIndex; + + listBox1.Items.RemoveAt(pos); + listBox1.Items.Insert((pos + 1), item); + + listBox1.SelectedIndex = (pos + 1); + } + + private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) => imageBox5_MouseClick(sender, e); + + private void listBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Enter: + if (this.SubmitButton != null) + { + this.SubmitButton.PerformClick(); + } + + break; + case Keys.Escape: + close(); + break; + case Keys.Up: + if (e.Alt) + { + imageBox3_MouseClick(sender, null); + } + + break; + case Keys.Down: + if (e.Alt) + { + imageBox4_MouseClick(sender, null); + } + + break; + default: break; + } + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TListBox.designer.cs b/RyzStudio/Windows/ThemedForms/TListBox.designer.cs new file mode 100644 index 0000000..469e7b0 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TListBox.designer.cs @@ -0,0 +1,182 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TListBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listBox1 = new System.Windows.Forms.ListBox(); + this.imageBox5 = new RyzStudio.Windows.Forms.TImageBox(); + this.imageBox4 = new RyzStudio.Windows.Forms.TImageBox(); + this.imageBox3 = new RyzStudio.Windows.Forms.TImageBox(); + this.imageBox2 = new RyzStudio.Windows.Forms.TImageBox(); + this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit(); + this.SuspendLayout(); + // + // listBox1 + // + this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listBox1.FormattingEnabled = true; + this.listBox1.Location = new System.Drawing.Point(4, 4); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(121, 82); + this.listBox1.TabIndex = 0; + this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick); + this.listBox1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listBox1_PreviewKeyDown); + // + // imageBox5 + // + this.imageBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imageBox5.BackColor = System.Drawing.Color.Transparent; + this.imageBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox5.ErrorImage = null; + this.imageBox5.ImageHover = global::FizzyLauncher.UIResource.edit2; + this.imageBox5.Image = global::FizzyLauncher.UIResource.edit; + this.imageBox5.InitialImage = null; + this.imageBox5.Location = new System.Drawing.Point(52, 94); + this.imageBox5.Name = "imageBox5"; + this.imageBox5.ImageNormal = global::FizzyLauncher.UIResource.edit; + this.imageBox5.Size = new System.Drawing.Size(18, 25); + this.imageBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox5.TabIndex = 6; + this.imageBox5.TabStop = false; + this.imageBox5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick); + this.imageBox5.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick); + // + // imageBox4 + // + this.imageBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imageBox4.BackColor = System.Drawing.Color.Transparent; + this.imageBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox4.ErrorImage = null; + this.imageBox4.ImageHover = global::FizzyLauncher.UIResource.arrow_down2; + this.imageBox4.Image = global::FizzyLauncher.UIResource.arrow_down; + this.imageBox4.InitialImage = null; + this.imageBox4.Location = new System.Drawing.Point(100, 94); + this.imageBox4.Name = "imageBox4"; + this.imageBox4.ImageNormal = global::FizzyLauncher.UIResource.arrow_down; + this.imageBox4.Size = new System.Drawing.Size(18, 25); + this.imageBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox4.TabIndex = 5; + this.imageBox4.TabStop = false; + this.imageBox4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick); + this.imageBox4.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick); + // + // imageBox3 + // + this.imageBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imageBox3.BackColor = System.Drawing.Color.Transparent; + this.imageBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox3.ErrorImage = null; + this.imageBox3.ImageHover = global::FizzyLauncher.UIResource.arrow_up2; + this.imageBox3.Image = global::FizzyLauncher.UIResource.arrow_up; + this.imageBox3.InitialImage = null; + this.imageBox3.Location = new System.Drawing.Point(76, 94); + this.imageBox3.Name = "imageBox3"; + this.imageBox3.ImageNormal = global::FizzyLauncher.UIResource.arrow_up; + this.imageBox3.Size = new System.Drawing.Size(18, 25); + this.imageBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox3.TabIndex = 4; + this.imageBox3.TabStop = false; + this.imageBox3.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick); + this.imageBox3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick); + // + // imageBox2 + // + this.imageBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imageBox2.BackColor = System.Drawing.Color.Transparent; + this.imageBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox2.ErrorImage = null; + this.imageBox2.ImageHover = global::FizzyLauncher.UIResource.minus2; + this.imageBox2.Image = global::FizzyLauncher.UIResource.minus; + this.imageBox2.InitialImage = null; + this.imageBox2.Location = new System.Drawing.Point(28, 94); + this.imageBox2.Name = "imageBox2"; + this.imageBox2.ImageNormal = global::FizzyLauncher.UIResource.minus; + this.imageBox2.Size = new System.Drawing.Size(18, 25); + this.imageBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox2.TabIndex = 3; + this.imageBox2.TabStop = false; + this.imageBox2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox2_MouseClick); + this.imageBox2.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox2_MouseClick); + // + // imageBox1 + // + this.imageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.imageBox1.BackColor = System.Drawing.Color.Transparent; + this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox1.ErrorImage = null; + this.imageBox1.ImageHover = global::FizzyLauncher.UIResource.plus2; + this.imageBox1.Image = global::FizzyLauncher.UIResource.plus; + this.imageBox1.InitialImage = null; + this.imageBox1.Location = new System.Drawing.Point(4, 94); + this.imageBox1.Name = "imageBox1"; + this.imageBox1.ImageNormal = global::FizzyLauncher.UIResource.plus; + this.imageBox1.Size = new System.Drawing.Size(18, 25); + this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox1.TabIndex = 2; + this.imageBox1.TabStop = false; + this.imageBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick); + this.imageBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick); + // + // TListBox + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.Controls.Add(this.imageBox5); + this.Controls.Add(this.imageBox4); + this.Controls.Add(this.imageBox3); + this.Controls.Add(this.imageBox2); + this.Controls.Add(this.imageBox1); + this.Controls.Add(this.listBox1); + this.Name = "TListBox"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.Size = new System.Drawing.Size(128, 120); + ((System.ComponentModel.ISupportInitialize)(this.imageBox5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox listBox1; + private Forms.TImageBox imageBox1; + private Forms.TImageBox imageBox2; + private Forms.TImageBox imageBox3; + private Forms.TImageBox imageBox4; + private Forms.TImageBox imageBox5; + } +} diff --git a/RyzStudio/Windows/ThemedForms/TListBox.resx b/RyzStudio/Windows/ThemedForms/TListBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TListBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TUserControl.cs b/RyzStudio/Windows/ThemedForms/TUserControl.cs new file mode 100644 index 0000000..56bea24 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TUserControl.cs @@ -0,0 +1,106 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using RyzStudio.Drawing; +using System.ComponentModel; + +namespace RyzStudio.Windows.ThemedForms +{ + public partial class TUserControl : System.Windows.Forms.UserControl + { + public class ThemeStyle + { + public int BorderWidth; + public int BorderRadius; + public int BorderPadding; + public Color BorderColour; + public Color BackColour; + public Color ForeColour; + + public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour) + { + this.BorderWidth = borderWidth; + this.BorderRadius = borderRadius; + this.BorderPadding = borderPadding; + this.BorderColour = borderColour; + this.BackColour = backColour; + this.ForeColour = Color.Black; + } + + public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour, Color foreColour) + { + this.BorderWidth = borderWidth; + this.BorderRadius = borderRadius; + this.BorderPadding = borderPadding; + this.BorderColour = borderColour; + this.BackColour = backColour; + this.ForeColour = foreColour; + } + } + + protected ThemeStyle styleActive = new ThemeStyle(1, 3, 2, Color.FromArgb(212, 212, 212), Color.White); + + public TUserControl() + { + InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + this.BackColor = Color.Transparent; + } + + protected override void OnPaintBackground(PaintEventArgs e) + { + base.OnPaintBackground(e); + + Graphics g = e.Graphics; + //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + //g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; + //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; + //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + + updateBackground(g, styleActive); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = value; } + + protected virtual void updateBackground(Graphics g, ThemeStyle style) + { + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Padding = new Padding(b, b, (b - 1), (b - 1)); + + Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); + g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); + g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); + } + + protected virtual void close() + { + if (this.Parent == null) + { + return; + } + + if (this.Parent is Form) + { + (this.Parent as Form).Close(); + return; + } + + if (this.Parent.GetType().IsSubclassOf(typeof(System.Windows.Forms.Form))) + { + System.Windows.Forms.Form parentForm = (System.Windows.Forms.Form)this.Parent; + if (parentForm != null) + { + parentForm.Close(); + } + } + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs b/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs new file mode 100644 index 0000000..6f57544 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs @@ -0,0 +1,37 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TUserControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.cs b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.cs new file mode 100644 index 0000000..dbe7d77 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.cs @@ -0,0 +1,127 @@ +namespace RyzStudio.Windows.ThemedForms +{ + using RyzStudio.Drawing; + using System; + using System.ComponentModel; + using System.Drawing; + using System.Windows.Forms; + + public partial class TButtonTextBox : RyzStudio.Windows.ThemedForms.TUserControl + { + protected readonly Padding textboxPadding = new Padding(6, 6, 6, 6); + + public TButtonTextBox() : base() + { + InitializeComponent(); + + //this.Margin = new Padding(10, 6, 10, 6); + this.Margin = new Padding(10, 3, 3, 3); + this.Font = new Font(this.Font, FontStyle.Regular); + + textBox1.Font = this.Font; + textBox1.Left = this.Margin.Left; + textBox1.PreviewKeyDown += textBox_PreviewKeyDown; + + imageBox1.Click += imageBox1_Click; + + OnResize(null); + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); + + imageBox1.Width = 18; + imageBox1.Height = textBox1.Height + textboxPadding.Top + textboxPadding.Bottom; + imageBox1.Left = this.Width - (this.Margin.Right + b + imageBox1.Width); + + textBox1.Left = this.Margin.Left; + textBox1.Width = imageBox1.Left - textBox1.Left - 3; + textBox1.Top = (int)Math.Ceiling(decimal.Divide((this.Height - textBox1.Height), 2)); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + + textBox1.Focus(); + } + + protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Enter: + if (this.SubmitButton != null) + { + this.SubmitButton.PerformClick(); + } + + break; + case Keys.Escape: + close(); + break; + default: break; + } + } + + protected virtual void imageBox1_Click(object sender, EventArgs e) => OnButtonClick?.Invoke(sender, e); + + [Category("Action")] + [Browsable(true)] + public event EventHandler OnButtonClick; + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public Forms.TImageBox InnerImageBox { get => imageBox1; set => imageBox1 = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; } + + [Category("Appearance"), Browsable(true)] + public Image NormalImage { get => imageBox1.ImageNormal; set => imageBox1.ImageNormal = value; } + + [Category("Appearance"), Browsable(true)] + public Image HighlightImage { get => imageBox1.ImageHover; set => imageBox1.ImageHover = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public new string Text + { + get => textBox1.Text; + set + { + textBox1.Text = value; + textBox1.SelectionStart = textBox1.Text.Length; + } + } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public TButton SubmitButton { get; set; } = null; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get => base.Margin; set => base.Margin = value; } + + protected override void updateBackground(Graphics g, ThemeStyle style) + { + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); + + Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); + g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); + g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.designer.cs b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.designer.cs new file mode 100644 index 0000000..6a37b71 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.designer.cs @@ -0,0 +1,81 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TButtonTextBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.textBox1 = new System.Windows.Forms.TextBox(); + this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox(); + ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.BackColor = System.Drawing.SystemColors.Window; + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.HideSelection = false; + this.textBox1.Location = new System.Drawing.Point(7, 7); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(68, 13); + this.textBox1.TabIndex = 0; + // + // imageBox1 + // + this.imageBox1.BackColor = System.Drawing.Color.Transparent; + this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.imageBox1.ErrorImage = null; + this.imageBox1.ImageHover = null; + this.imageBox1.Image = null; + this.imageBox1.InitialImage = null; + this.imageBox1.Location = new System.Drawing.Point(107, 4); + this.imageBox1.Name = "imageBox1"; + this.imageBox1.ImageNormal = null; + this.imageBox1.Size = new System.Drawing.Size(18, 25); + this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.imageBox1.TabIndex = 1; + this.imageBox1.TabStop = false; + // + // TextBox2 + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.Controls.Add(this.imageBox1); + this.Controls.Add(this.textBox1); + this.Name = "TextBox2"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.Size = new System.Drawing.Size(128, 32); + ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox1; + private Forms.TImageBox imageBox1; + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.resx b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox - Copy.resx b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox - Copy.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox - Copy.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.cs b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.cs new file mode 100644 index 0000000..341b480 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Windows.Forms; +using UIResources = FizzyLauncher.UIResource; + +namespace RyzStudio.Windows.ThemedForms +{ + public class TFolderTextBox : TButtonTextBox + { + public TFolderTextBox() : base() + { + this.NormalImage = UIResources.folder; + this.HighlightImage = UIResources.folder2; + this.Text = string.Empty; + } + + public FolderBrowserDialog FolderDialog { get; set; } = null; + + protected override void imageBox1_Click(object sender, EventArgs e) + { + if (this.FolderDialog == null) + { + this.FolderDialog = new FolderBrowserDialog(); + this.FolderDialog.Description = "Choose a directory"; + } + + if (!string.IsNullOrWhiteSpace(this.Text)) + { + if (Directory.Exists(this.Text)) + { + this.FolderDialog.SelectedPath = this.Text; + } + } + + if (this.FolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + this.Text = this.FolderDialog.SelectedPath; + } + } + + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.resx b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TKeyCodeTextBox.cs b/RyzStudio/Windows/ThemedForms/TextBox/TKeyCodeTextBox.cs new file mode 100644 index 0000000..08e9f2f --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TKeyCodeTextBox.cs @@ -0,0 +1,92 @@ +using System; +using System.Text; +using System.Windows.Forms; +using UIResources = FizzyLauncher.UIResource; + +namespace RyzStudio.Windows.ThemedForms +{ + public class TKeyCodeTextBox : TButtonTextBox + { + public class Results + { + public bool IsCtrl { get; set; } = false; + public bool IsAlt { get; set; } = false; + public bool IsShift { get; set; } = false; + public Keys Key { get; set; } = Keys.None; + + public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0)); + + public int KeyCode => (int)this.Key; + + public string DisplayText + { + get + { + StringBuilder sb = new StringBuilder(); + + if (this.IsCtrl) sb.Append("Ctrl+"); + if (this.IsShift) sb.Append("Shift+"); + if (this.IsAlt) sb.Append("Alt+"); + + sb.Append(this.Key.ToString()); + + return sb.ToString(); + } + } + + public void Clear() + { + this.IsCtrl = false; + this.IsAlt = false; + this.IsShift = false; + this.Key = Keys.None; + } + } + + + public Results KeyCodeResults { get; set; } = new Results(); + + + public TKeyCodeTextBox() : base() + { + this.NormalImage = UIResources.trash; + this.HighlightImage = UIResources.trash2; + this.Text = string.Empty; + + this.InnerTextBox.ReadOnly = true; + this.InnerTextBox.PreviewKeyDown += textBox1_PreviewKeyDown; + } + + private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + if (e.KeyCode == Keys.ControlKey) return; + if (e.KeyCode == Keys.ShiftKey) return; + if (e.KeyCode == Keys.Menu) return; + + this.KeyCodeResults.IsCtrl = e.Control; + this.KeyCodeResults.IsAlt = e.Alt; + this.KeyCodeResults.IsShift = e.Shift; + this.KeyCodeResults.Key = e.KeyCode; + + this.Text = this.KeyCodeResults.DisplayText; + } + + protected override void imageBox1_Click(object sender, EventArgs e) + { + this.KeyCodeResults.Clear(); + + this.Text = this.KeyCodeResults.DisplayText; + } + + public void UpdateKeyCode(bool isCtrl, bool isAlt, bool isShift, Keys key) + { + this.KeyCodeResults.IsCtrl = isCtrl; + this.KeyCodeResults.IsAlt = isAlt; + this.KeyCodeResults.IsShift = isShift; + this.KeyCodeResults.Key = key; + + this.Text = this.KeyCodeResults.DisplayText; + } + + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TOpenFileTextBox.cs b/RyzStudio/Windows/ThemedForms/TextBox/TOpenFileTextBox.cs new file mode 100644 index 0000000..0fb3daa --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TOpenFileTextBox.cs @@ -0,0 +1,43 @@ +using System; +using System.IO; +using System.Windows.Forms; +using UIResources = FizzyLauncher.UIResource; + +namespace RyzStudio.Windows.ThemedForms +{ + public class TOpenFileTextBox : TButtonTextBox + { + public TOpenFileTextBox() : base() + { + this.NormalImage = UIResources.file; + this.HighlightImage = UIResources.file2; + this.Text = string.Empty; + } + + public OpenFileDialog FileDialog { get; set; } = null; + + protected override void imageBox1_Click(object sender, EventArgs e) + { + if (this.FileDialog == null) + { + this.FileDialog = new OpenFileDialog(); + this.FileDialog.Title = "Choose a file"; + this.FileDialog.Filter = "All files|*"; + } + + if (!string.IsNullOrWhiteSpace(this.Text)) + { + if (File.Exists(this.Text)) + { + this.FileDialog.InitialDirectory = Path.GetDirectoryName(this.Text); + } + } + + if (this.FileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + this.Text = this.FileDialog.FileName; + } + } + + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.cs b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.cs new file mode 100644 index 0000000..be72ccd --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.cs @@ -0,0 +1,100 @@ +using RyzStudio.Drawing; +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace RyzStudio.Windows.ThemedForms +{ + public partial class TTextBox : RyzStudio.Windows.ThemedForms.TUserControl + { + protected readonly Padding textboxPadding = new Padding(6, 6, 6, 6); + + + public TTextBox() : base() + { + InitializeComponent(); + + this.Margin = new Padding(10, 6, 10, 6); + this.Font = new Font(this.Font, FontStyle.Regular); + + textBox1.Font = this.Font; + textBox1.PreviewKeyDown += textBox_PreviewKeyDown; + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom); + + this.Invalidate(); + } + + protected override void OnGotFocus(EventArgs e) + { + base.OnGotFocus(e); + + textBox1.Focus(); + } + + protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + switch (e.KeyCode) + { + case Keys.Enter: + if (this.SubmitButton != null) + { + this.SubmitButton.PerformClick(); + } + + break; + case Keys.Escape: + close(); + break; + default: break; + } + } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public new string Text + { + get => textBox1.Text; + set + { + textBox1.Text = value; + textBox1.SelectionStart = textBox1.Text.Length; + } + } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; } + + [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)] + [Category("Appearance")] + public TButton SubmitButton { get; set; } = null; + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } } + + protected override void updateBackground(Graphics g, ThemeStyle style) + { + int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding; + + this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom)); + + Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth); + g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath()); + g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath()); + } + + } +} \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.designer.cs b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.designer.cs new file mode 100644 index 0000000..752557d --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.designer.cs @@ -0,0 +1,60 @@ +namespace RyzStudio.Windows.ThemedForms +{ + partial class TTextBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox1.HideSelection = false; + this.textBox1.Location = new System.Drawing.Point(4, 4); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(121, 13); + this.textBox1.TabIndex = 0; + // + // TextBox + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.Controls.Add(this.textBox1); + this.Name = "TextBox"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.Size = new System.Drawing.Size(128, 32); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox textBox1; + } +} diff --git a/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.resx b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/RyzStudio/Windows/ThemedForms/TextBox/TTextBox.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Text/Json/JsonPointConverter.cs b/Text/Json/JsonPointConverter.cs new file mode 100644 index 0000000..e787cdc --- /dev/null +++ b/Text/Json/JsonPointConverter.cs @@ -0,0 +1,40 @@ +using System; +using System.Drawing; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace FizzyLauncher.Text.Json +{ + public class JsonPointConverter : JsonConverter + { + public override Point Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + Point rs = new Point(0, 0); + + if (reader.TokenType == JsonTokenType.String) + { + string[] parts = reader.GetString().Split(','); + if (parts.Length != 2) + { + return rs; + } + + int x = 0; + int y = 0; + + if (!int.TryParse(parts[0].Trim(), out x)) x = 0; + if (!int.TryParse(parts[1].Trim(), out y)) y = 0; + + return new Point(x, y); + } + + return rs; + } + + public override void Write(Utf8JsonWriter writer, Point value, JsonSerializerOptions options) + { + writer.WriteStringValue(string.Format("{0}, {1}", value.X.ToString(), value.Y.ToString())); + } + + } +} diff --git a/Text/Json/JsonSizeConverter.cs b/Text/Json/JsonSizeConverter.cs new file mode 100644 index 0000000..eb763fa --- /dev/null +++ b/Text/Json/JsonSizeConverter.cs @@ -0,0 +1,40 @@ +using System; +using System.Drawing; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace FizzyLauncher.Text.Json +{ + public class JsonSizeConverter : JsonConverter + { + public override Size Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + Size rs = new Size(0, 0); + + if (reader.TokenType == JsonTokenType.String) + { + string[] parts = reader.GetString().Split(','); + if (parts.Length != 2) + { + return rs; + } + + int w = 0; + int h = 0; + + if (!int.TryParse(parts[0].Trim(), out w)) w = 0; + if (!int.TryParse(parts[1].Trim(), out h)) h = 0; + + return new Size(w, h); + } + + return rs; + } + + public override void Write(Utf8JsonWriter writer, Size value, JsonSerializerOptions options) + { + writer.WriteStringValue(string.Format("{0}, {1}", value.Width.ToString(), value.Height.ToString())); + } + + } +} diff --git a/UIResource.Designer.cs b/UIResource.Designer.cs new file mode 100644 index 0000000..0f0a495 --- /dev/null +++ b/UIResource.Designer.cs @@ -0,0 +1,243 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FizzyLauncher { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class UIResource { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal UIResource() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FizzyLauncher.UIResource", typeof(UIResource).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_down { + get { + object obj = ResourceManager.GetObject("arrow_down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_down2 { + get { + object obj = ResourceManager.GetObject("arrow_down2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_up { + get { + object obj = ResourceManager.GetObject("arrow_up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrow_up2 { + get { + object obj = ResourceManager.GetObject("arrow_up2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap close { + get { + object obj = ResourceManager.GetObject("close", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap close2 { + get { + object obj = ResourceManager.GetObject("close2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap edit { + get { + object obj = ResourceManager.GetObject("edit", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap edit2 { + get { + object obj = ResourceManager.GetObject("edit2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap file { + get { + object obj = ResourceManager.GetObject("file", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap file2 { + get { + object obj = ResourceManager.GetObject("file2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap folder { + get { + object obj = ResourceManager.GetObject("folder", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap folder2 { + get { + object obj = ResourceManager.GetObject("folder2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap minus { + get { + object obj = ResourceManager.GetObject("minus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap minus2 { + get { + object obj = ResourceManager.GetObject("minus2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plus { + get { + object obj = ResourceManager.GetObject("plus", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap plus2 { + get { + object obj = ResourceManager.GetObject("plus2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap trash { + get { + object obj = ResourceManager.GetObject("trash", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap trash2 { + get { + object obj = ResourceManager.GetObject("trash2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/UIResource.resx b/UIResource.resx new file mode 100644 index 0000000..96b7c2a --- /dev/null +++ b/UIResource.resx @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\UI\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\arrow_down2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\arrow_up2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\edit2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\file2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\minus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\plus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\trash2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Windows/Forms/EditGroupForm.cs b/Windows/Forms/EditGroupForm.cs new file mode 100644 index 0000000..c3108d9 --- /dev/null +++ b/Windows/Forms/EditGroupForm.cs @@ -0,0 +1,177 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.ThemedForms; +using System; + +namespace FizzyLauncher.Windows.Forms +{ + public class EditGroupForm : TDialogForm + { + public static void ShowDialog(TilePanelLayout control) + { + EditGroupForm form = new EditGroupForm(); + form.TilePanelLayout = control; + form.ShowDialog(); + } + + + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private TButton button1; + private TPickerBox pickerBox1; + private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; + private TTextBox textBox1; + + + public EditGroupForm() : base() + { + InitializeComponent(); + + pickerBox1.ComboBox.Items.Clear(); + pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); + if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; + } + + private void InitializeComponent() + { + this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); + this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); + this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.BackColor = System.Drawing.Color.Transparent; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox1.Location = new System.Drawing.Point(192, 20); + this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.textBox1.Name = "textBox1"; + this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox1.Size = new System.Drawing.Size(177, 35); + this.textBox1.SubmitButton = null; + this.textBox1.TabIndex = 152; + this.textBox1.UseSystemPasswordChar = false; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.ForeColor = System.Drawing.SystemColors.ControlText; + this.label2.Location = new System.Drawing.Point(10, 62); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label2.Size = new System.Drawing.Size(119, 34); + this.label2.TabIndex = 155; + this.label2.Text = "Show Only Expanded"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.SystemColors.ControlText; + this.label1.Location = new System.Drawing.Point(10, 21); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label1.Size = new System.Drawing.Size(29, 34); + this.label1.TabIndex = 153; + this.label1.Text = "Title"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button1.BackColor = System.Drawing.Color.Transparent; + this.button1.DefaultImage = null; + this.button1.DownImage = null; + this.button1.IsSelected = false; + this.button1.LabelText = "&OK"; + this.button1.Location = new System.Drawing.Point(241, 469); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.OverImage = null; + this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.button1.Size = new System.Drawing.Size(128, 32); + this.button1.TabIndex = 173; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // pickerBox1 + // + this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox1.BackColor = System.Drawing.Color.Transparent; + this.pickerBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox1.Location = new System.Drawing.Point(285, 62); + this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.pickerBox1.Name = "pickerBox1"; + this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox1.Size = new System.Drawing.Size(84, 34); + this.pickerBox1.SubmitButton = null; + this.pickerBox1.TabIndex = 174; + // + // horizontalSeparator2 + // + this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent; + this.horizontalSeparator2.Location = new System.Drawing.Point(10, 437); + this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); + this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22); + this.horizontalSeparator2.Name = "horizontalSeparator2"; + this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22); + this.horizontalSeparator2.TabIndex = 182; + // + // EditGroupForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.ClientSize = new System.Drawing.Size(384, 521); + this.Controls.Add(this.horizontalSeparator2); + this.Controls.Add(this.pickerBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.MinimumSize = new System.Drawing.Size(400, 560); + this.Name = "EditGroupForm"; + this.Text = "Edit Group"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + if (this.TilePanelLayout != null) + { + textBox1.Text = this.TilePanelLayout.Model.Title; + pickerBox1.ComboBox.SelectedIndex = (this.TilePanelLayout.Model.IsExclusive ? 1 : 0); + } + } + + + public TilePanelLayout TilePanelLayout { get; set; } = null; + + + private void button1_Click(object sender, EventArgs e) + { + TileGroupModel model = this.TilePanelLayout.Model; + model.Title = textBox1.Text?.Trim(); + model.IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1); + + this.TilePanelLayout.UpdateModel(model); + + this.Close(); + } + + } +} diff --git a/Windows/Forms/EditGroupForm.resx b/Windows/Forms/EditGroupForm.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Windows/Forms/EditGroupForm.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Windows/Forms/EditTileFolderForm.cs b/Windows/Forms/EditTileFolderForm.cs new file mode 100644 index 0000000..a16b75e --- /dev/null +++ b/Windows/Forms/EditTileFolderForm.cs @@ -0,0 +1,384 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.ThemedForms; +using System; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace FizzyLauncher.Windows.Forms +{ + public class EditTileFolderForm : TDialogForm + { + public static void ShowAddDialog(TilePanelLayout control, Point coord) + { + EditTileFolderForm form = new EditTileFolderForm(DialogModeType.Add); + form.TilePanelLayout = control; + form.AimCoord = coord; + form.ShowDialog(); + } + + public static void ShowEditDialog(TilePanel control) + { + EditTileFolderForm form = new EditTileFolderForm(DialogModeType.Edit); + form.TilePanel = control; + form.ShowDialog(); + } + + + private System.Windows.Forms.Label label1; + private TButton button1; + private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; + private TTextBox textBox1; + private TListBox listBox1; + private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; + private System.Windows.Forms.Label label2; + + + public enum DialogModeType + { + Add = 0, + Edit + } + + + protected DialogModeType dialogMode = DialogModeType.Add; + + + public EditTileFolderForm(DialogModeType dialogMode) : base() + { + InitializeComponent(); + + this.DialogMode = dialogMode; + } + + private void InitializeComponent() + { + this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); + this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox(); + this.label2 = new System.Windows.Forms.Label(); + this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.BackColor = System.Drawing.Color.Transparent; + this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox1.Location = new System.Drawing.Point(192, 20); + this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.textBox1.Name = "textBox1"; + this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox1.Size = new System.Drawing.Size(177, 35); + this.textBox1.SubmitButton = null; + this.textBox1.TabIndex = 152; + this.textBox1.UseSystemPasswordChar = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.SystemColors.ControlText; + this.label1.Location = new System.Drawing.Point(10, 21); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label1.Size = new System.Drawing.Size(29, 34); + this.label1.TabIndex = 153; + this.label1.Text = "Title"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button1.BackColor = System.Drawing.Color.Transparent; + this.button1.DefaultImage = null; + this.button1.DownImage = null; + this.button1.IsSelected = false; + this.button1.LabelText = "&OK"; + this.button1.Location = new System.Drawing.Point(241, 469); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.OverImage = null; + this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.button1.Size = new System.Drawing.Size(128, 32); + this.button1.TabIndex = 173; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // horizontalSeparator2 + // + this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent; + this.horizontalSeparator2.Location = new System.Drawing.Point(10, 61); + this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); + this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22); + this.horizontalSeparator2.Name = "horizontalSeparator2"; + this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22); + this.horizontalSeparator2.TabIndex = 177; + // + // listBox1 + // + this.listBox1.AllowDrop = true; + this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listBox1.BackColor = System.Drawing.Color.Transparent; + this.listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.listBox1.Location = new System.Drawing.Point(109, 87); + this.listBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); + this.listBox1.Name = "listBox1"; + this.listBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.listBox1.Size = new System.Drawing.Size(260, 346); + this.listBox1.SubmitButton = null; + this.listBox1.TabIndex = 180; + this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); + this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); + this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); + this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.ForeColor = System.Drawing.SystemColors.ControlText; + this.label2.Location = new System.Drawing.Point(8, 87); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label2.Size = new System.Drawing.Size(25, 34); + this.label2.TabIndex = 181; + this.label2.Text = "List"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // tHorizontalSeparator1 + // + this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; + this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437); + this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); + this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); + this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; + this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22); + this.tHorizontalSeparator1.TabIndex = 182; + // + // AddTileFolderForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.ClientSize = new System.Drawing.Size(384, 521); + this.Controls.Add(this.tHorizontalSeparator1); + this.Controls.Add(this.label2); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.horizontalSeparator2); + this.Controls.Add(this.button1); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.MinimumSize = new System.Drawing.Size(400, 560); + this.Name = "AddTileFolderForm"; + this.Text = "Add List Tile"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + if (this.DialogMode == DialogModeType.Edit) + { + listBox1.ListBox.Items.Clear(); + + if (this.TilePanel == null) return; + if (this.TilePanel.ModelInfo == null) return; + + textBox1.Text = this.TilePanel.ModelInfo.Title; + + if (this.TilePanel.ModelInfo.Items != null) + { + foreach (TileModel item in this.TilePanel.ModelInfo.Items) + { + if (item.IsGroup) + { + continue; + } + + listBox1.ListBox.Items.Add(item); + } + } + } + } + + + public TilePanelLayout TilePanelLayout { get; set; } = null; + + public TilePanel TilePanel { get; set; } = null; + + public Point AimCoord { get; set; } = new Point(-1, -1); + + public DialogModeType DialogMode + { + get => dialogMode; + set + { + dialogMode = value; + + switch (dialogMode) + { + case DialogModeType.Add: + this.Text = "Add Tile List"; + break; + case DialogModeType.Edit: + this.Text = "Edit Tile List"; + break; + default: break; + } + } + } + + + private void button1_Click(object sender, EventArgs e) + { + TileModel model = new TileModel() + { + Title = textBox1.Text?.Trim(), + IsGroup = true + }; + + switch (this.DialogMode) + { + case DialogModeType.Add: + if (!this.AimCoord.Equals(new Point(-1, -1))) + { + model.Position = this.AimCoord; + } + + model.Items = new System.Collections.Generic.List(); + + foreach (TileModel item in listBox1.ListBox.Items.OfType()) + { + if (item.IsGroup) + { + continue; + } + + model.Items.Add(item); + } + + this.TilePanelLayout.AddTile(model); + + break; + case DialogModeType.Edit: + model.Items = new System.Collections.Generic.List(); + + foreach (TileModel item in listBox1.ListBox.Items.OfType()) + { + if (item.IsGroup) + { + continue; + } + + model.Items.Add(item); + } + + this.TilePanel.LoadInfo(model); + + break; + default: break; + } + + this.Close(); + } + + private void listBox1_OnAdd(object sender, EventArgs e) => EditTileForm.ShowAddDialog(listBox1); + + private void listBox1_OnEdit(object sender, EventArgs e) + { + if (listBox1.ListBox.Items.Count <= 0) + { + return; + } + + EditTileForm.ShowEditDialog(listBox1); + } + + private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + e.Effect = DragDropEffects.Link; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + private void listBox1_DragDrop(object sender, DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + + + if (string.IsNullOrWhiteSpace(model.Title)) + { + model.Title = Path.GetFileNameWithoutExtension(fileList[0]); + } + } + + listBox1.ListBox.Items.Add(model); + } + + } +} \ No newline at end of file diff --git a/Windows/Forms/EditTileFolderForm.resx b/Windows/Forms/EditTileFolderForm.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/Windows/Forms/EditTileFolderForm.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Windows/Forms/EditTileForm.cs b/Windows/Forms/EditTileForm.cs new file mode 100644 index 0000000..4c962c7 --- /dev/null +++ b/Windows/Forms/EditTileForm.cs @@ -0,0 +1,483 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.ThemedForms; +using System; +using System.Drawing; + +namespace FizzyLauncher.Windows.Forms +{ + public class EditTileForm : TDialogForm + { + public static void ShowAddDialog(TilePanelLayout control, Point coord) + { + EditTileForm form = new EditTileForm(DialogModeType.Add); + form.TilePanelLayout = control; + form.AimCoord = coord; + form.ShowDialog(); + } + + public static void ShowAddDialog(TListBox control) + { + EditTileForm form = new EditTileForm(DialogModeType.Add); + form.ListBox = control; + form.ShowDialog(); + } + + public static void ShowEditDialog(TilePanel control) + { + EditTileForm form = new EditTileForm(DialogModeType.Edit); + form.TilePanel = control; + form.ShowDialog(); + } + + public static void ShowEditDialog(TListBox control) + { + EditTileForm form = new EditTileForm(DialogModeType.Edit); + form.ListBox = control; + form.ShowDialog(); + } + + + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private TOpenFileTextBox textBox2; + private TTextBox textBox3; + private TFolderTextBox textBox4; + private TButton button1; + private TPickerBox pickerBox1; + private TPickerBox pickerBox2; + private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1; + private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; + private TTextBox textBox1; + + + public enum DialogModeType + { + Add = 0, + Edit + } + + + protected DialogModeType dialogMode = DialogModeType.Add; + + + public EditTileForm(DialogModeType dialogMode) : base() + { + InitializeComponent(); + + this.DialogMode = dialogMode; + + pickerBox1.ComboBox.Items.Clear(); + pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" }); + if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; + + pickerBox2.ComboBox.Items.Clear(); + pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); + if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0; + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditTileForm)); + this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.textBox2 = new RyzStudio.Windows.ThemedForms.TOpenFileTextBox(); + this.textBox3 = new RyzStudio.Windows.ThemedForms.TTextBox(); + this.textBox4 = new RyzStudio.Windows.ThemedForms.TFolderTextBox(); + this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); + this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); + this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TPickerBox(); + this.horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox1.BackColor = System.Drawing.Color.Transparent; + this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox1.Location = new System.Drawing.Point(192, 20); + this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.textBox1.Name = "textBox1"; + this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox1.Size = new System.Drawing.Size(177, 35); + this.textBox1.SubmitButton = null; + this.textBox1.TabIndex = 152; + this.textBox1.UseSystemPasswordChar = false; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.BackColor = System.Drawing.Color.Transparent; + this.label6.ForeColor = System.Drawing.SystemColors.ControlText; + this.label6.Location = new System.Drawing.Point(10, 250); + this.label6.Name = "label6"; + this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label6.Size = new System.Drawing.Size(83, 34); + this.label6.TabIndex = 163; + this.label6.Text = "Run As Admin"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.BackColor = System.Drawing.Color.Transparent; + this.label7.ForeColor = System.Drawing.SystemColors.ControlText; + this.label7.Location = new System.Drawing.Point(10, 209); + this.label7.Name = "label7"; + this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label7.Size = new System.Drawing.Size(79, 34); + this.label7.TabIndex = 161; + this.label7.Text = "Window Style"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.BackColor = System.Drawing.Color.Transparent; + this.label4.ForeColor = System.Drawing.SystemColors.ControlText; + this.label4.Location = new System.Drawing.Point(10, 144); + this.label4.Name = "label4"; + this.label4.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label4.Size = new System.Drawing.Size(103, 34); + this.label4.TabIndex = 159; + this.label4.Text = "Working Directory"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.BackColor = System.Drawing.Color.Transparent; + this.label3.ForeColor = System.Drawing.SystemColors.ControlText; + this.label3.Location = new System.Drawing.Point(10, 103); + this.label3.Name = "label3"; + this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label3.Size = new System.Drawing.Size(61, 34); + this.label3.TabIndex = 157; + this.label3.Text = "Argument"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.ForeColor = System.Drawing.SystemColors.ControlText; + this.label2.Location = new System.Drawing.Point(10, 62); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label2.Size = new System.Drawing.Size(55, 34); + this.label2.TabIndex = 155; + this.label2.Text = "Filename"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.Transparent; + this.label1.ForeColor = System.Drawing.SystemColors.ControlText; + this.label1.Location = new System.Drawing.Point(10, 21); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); + this.label1.Size = new System.Drawing.Size(29, 34); + this.label1.TabIndex = 153; + this.label1.Text = "Title"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBox2 + // + this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox2.BackColor = System.Drawing.Color.Transparent; + this.textBox2.FileDialog = null; + this.textBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox2.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox2.HighlightImage"))); + this.textBox2.Location = new System.Drawing.Point(192, 61); + this.textBox2.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); + this.textBox2.Name = "textBox2"; + this.textBox2.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox2.NormalImage"))); + this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox2.Size = new System.Drawing.Size(177, 35); + this.textBox2.SubmitButton = null; + this.textBox2.TabIndex = 170; + this.textBox2.UseSystemPasswordChar = false; + // + // textBox3 + // + this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox3.BackColor = System.Drawing.Color.Transparent; + this.textBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox3.Location = new System.Drawing.Point(192, 102); + this.textBox3.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.textBox3.Name = "textBox3"; + this.textBox3.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox3.Size = new System.Drawing.Size(177, 35); + this.textBox3.SubmitButton = null; + this.textBox3.TabIndex = 171; + this.textBox3.UseSystemPasswordChar = false; + // + // textBox4 + // + this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox4.BackColor = System.Drawing.Color.Transparent; + this.textBox4.FolderDialog = null; + this.textBox4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.textBox4.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox4.HighlightImage"))); + this.textBox4.Location = new System.Drawing.Point(192, 143); + this.textBox4.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); + this.textBox4.Name = "textBox4"; + this.textBox4.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox4.NormalImage"))); + this.textBox4.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); + this.textBox4.Size = new System.Drawing.Size(177, 35); + this.textBox4.SubmitButton = null; + this.textBox4.TabIndex = 172; + this.textBox4.UseSystemPasswordChar = false; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.button1.BackColor = System.Drawing.Color.Transparent; + this.button1.DefaultImage = null; + this.button1.DownImage = null; + this.button1.IsSelected = false; + this.button1.LabelText = "&OK"; + this.button1.Location = new System.Drawing.Point(241, 469); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.OverImage = null; + this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); + this.button1.Size = new System.Drawing.Size(128, 32); + this.button1.TabIndex = 173; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // pickerBox1 + // + this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox1.BackColor = System.Drawing.Color.Transparent; + this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox1.Location = new System.Drawing.Point(241, 209); + this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.pickerBox1.Name = "pickerBox1"; + this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox1.Size = new System.Drawing.Size(128, 34); + this.pickerBox1.SubmitButton = null; + this.pickerBox1.TabIndex = 174; + // + // pickerBox2 + // + this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pickerBox2.BackColor = System.Drawing.Color.Transparent; + this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.pickerBox2.Location = new System.Drawing.Point(285, 250); + this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); + this.pickerBox2.Name = "pickerBox2"; + this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.pickerBox2.Size = new System.Drawing.Size(84, 34); + this.pickerBox2.SubmitButton = null; + this.pickerBox2.TabIndex = 175; + // + // horizontalSeparator1 + // + this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.horizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.horizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.horizontalSeparator1.BackColor = System.Drawing.Color.Transparent; + this.horizontalSeparator1.Location = new System.Drawing.Point(10, 181); + this.horizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); + this.horizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); + this.horizontalSeparator1.Name = "horizontalSeparator1"; + this.horizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.horizontalSeparator1.Size = new System.Drawing.Size(364, 22); + this.horizontalSeparator1.TabIndex = 176; + // + // horizontalSeparator2 + // + this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0); + this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent; + this.horizontalSeparator2.Location = new System.Drawing.Point(10, 437); + this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); + this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); + this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22); + this.horizontalSeparator2.Name = "horizontalSeparator2"; + this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); + this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22); + this.horizontalSeparator2.TabIndex = 177; + // + // AddTileForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.ClientSize = new System.Drawing.Size(384, 521); + this.Controls.Add(this.horizontalSeparator2); + this.Controls.Add(this.horizontalSeparator1); + this.Controls.Add(this.pickerBox2); + this.Controls.Add(this.pickerBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.label6); + this.Controls.Add(this.label7); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.MinimumSize = new System.Drawing.Size(400, 560); + this.Name = "AddTileForm"; + this.Text = "Add Tile"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + if (this.DialogMode == DialogModeType.Edit) + { + if (this.TilePanel != null) + { + updateModel(this.TilePanel.ModelInfo); + } + else if (this.ListBox != null) + { + if (this.ListBox.ListBox.SelectedItem != null) + { + TileModel model = (this.ListBox.ListBox.SelectedItem as TileModel); + if (model != null) + { + updateModel(model); + } + } + } + } + } + + + public TilePanelLayout TilePanelLayout { get; set; } = null; + + public TilePanel TilePanel { get; set; } = null; + + public TListBox ListBox { get; set; } = null; + + public Point AimCoord { get; set; } = new Point(-1, -1); + + public DialogModeType DialogMode + { + get => dialogMode; + set + { + dialogMode = value; + + switch (dialogMode) + { + case DialogModeType.Add: + this.Text = "Add Tile"; + break; + case DialogModeType.Edit: + this.Text = "Edit Tile"; + break; + default: break; + } + } + } + + + private void button1_Click(object sender, EventArgs e) + { + TileModel model = buildModel(); + + switch (this.DialogMode) + { + case DialogModeType.Add: + if (this.TilePanelLayout != null) + { + this.TilePanelLayout.AddTile(model); + } + else if (this.ListBox != null) + { + int n = this.ListBox.ListBox.Items.Add(model); + this.ListBox.ListBox.SelectedIndex = n; + } + + break; + case DialogModeType.Edit: + if (this.TilePanel != null) + { + this.TilePanel.LoadInfo(model); + } + else if (this.ListBox != null) + { + int n = this.ListBox.ListBox.SelectedIndex; + if (n >= 0) + { + this.ListBox.ListBox.Items.RemoveAt(n); + this.ListBox.ListBox.Items.Insert(n, model); + this.ListBox.ListBox.SelectedIndex = n; + } + } + + break; + default: break; + } + + this.Close(); + } + + protected TileModel buildModel() + { + TileModel rs = new TileModel() + { + Title = textBox1.Text?.Trim(), + ProcessFilename = textBox2.Text?.Trim(), + ProcessArgument = textBox3.Text?.Trim(), + ProcessWorkingDirectory = textBox4.Text?.Trim(), + ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex, + ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1) + }; + + if (this.DialogMode == DialogModeType.Add) + { + if (!this.AimCoord.Equals(new Point(-1, -1))) + { + rs.Position = this.AimCoord; + } + } + + return rs; + } + + protected void updateModel(TileModel model) + { + if (model == null) + { + return; + } + + textBox1.Text = model.Title; + textBox2.Text = model.ProcessFilename; + textBox3.Text = model.ProcessArgument; + textBox4.Text = model.ProcessWorkingDirectory; + pickerBox1.ComboBox.SelectedIndex = (int)model.ProcessWindowStyle; + pickerBox2.ComboBox.SelectedIndex = (model.ProcessAsAdmin ? 1 : 0); + } + + } +} diff --git a/Windows/Forms/EditTileForm.resx b/Windows/Forms/EditTileForm.resx new file mode 100644 index 0000000..0fa2bef --- /dev/null +++ b/Windows/Forms/EditTileForm.resx @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vwAADr8BOAVTJAAAAK9JREFUOE/t0zsKwkAURuGp1BWJK3EhIrgAV+EOLLWwtRQLwQdiIbbiIkwynj+O + IVwnyhR2XvjyInNIkXHee8f0cEQBPbDOaKEarSvXhsAJO4wirlB4jipiA3phoIvIrLFChhnKiA3o8Ckw + RR93LNBODVwwwRL62kNKYIxNzQ1FSsDOEHk08HrYJMw/8KtA06/cCef6KJDZgDbTFrHNZO3x9idqOyui + m2+07bvPgHcPXOhtG3D6cUIAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vwAADr8BOAVTJAAAAMZJREFUOE/tk7sNwjAQQF3BRohJGAQhMQBTsAElFLSUiAKJTxIXhBZlCILNuyRG + iXEQKeg46fmsO/slhU9Za5XWehiXYcD6JElygZ6qhdwTioVDGo4wDXDjsohXdYkvMDTHVa8R9Hb0tpCz + XzqJL5Df/CRYRFE0Yn8nr9M07XcSwBXmXN6QDfncRTCjt6+Rgfla4Adfn3D+ERS4Yht/wY8FxVN2xTac + gLP5qyYLAhmmA4SGyeeEoPkSq3EWydsoB4gRDEqBVU/p15ajstHKCgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAJtJREFUOE/t0zEKwkAQheEpvILHSLySlTeJ6AnEzpPYi0ERPIKWKtZKNv9LNS5x + E6xS+OCDJew8tsgYmeCECsGZo1dKXLBwtnghQ2fe0JDPGHecsW6xwgwjNM8tdIgyxQ0qij2gORV9LejK + Bk8dfi3QjGY/C0IISS7/gkEVtP3KfbKEZm0PLZM++IVK0d0rdrAcR8TrnKK7BzPLa7Wb+WX/Nb8PAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE/tkzEKwjAYRjt4BY9hvZKTN1HsCYqbJzGzKBGb9gY6qjgrxvdJK7ZS + Gpwc/ODBnzTvg0AT5Xk+hB3cwVc456ZRSIqi2MAeafbGEq5Zlg3KY+1Bvkkql89Ya/vsnUCZN8FJYWyM + 6ekKnsWkdF9hb8S3I6ioyRnkpa0FXcFbwOXrAjlyawXe+06q/At+qoDh41cOCU4iV8OaQY8pUVEgOnuA + VcSzjRm2UHvOHeisdc7FDwDnJKIbLgP9AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Windows/Forms/TilePanel.Designer.cs b/Windows/Forms/TilePanel.Designer.cs new file mode 100644 index 0000000..6334cd0 --- /dev/null +++ b/Windows/Forms/TilePanel.Designer.cs @@ -0,0 +1,82 @@ +namespace FizzyLauncher.Windows.Forms +{ + partial class TilePanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.editToolStripMenuItem, + this.removeToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(118, 48); + // + // editToolStripMenuItem + // + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.editToolStripMenuItem.Text = "&Edit"; + this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); + // + // removeToolStripMenuItem + // + this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; + this.removeToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.removeToolStripMenuItem.Text = "&Remove"; + this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); + // + // TTilePanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(234)))), ((int)(((byte)(234))))); + this.Margin = new System.Windows.Forms.Padding(4, 3, 0, 0); + this.MaximumSize = new System.Drawing.Size(82, 81); + this.MinimumSize = new System.Drawing.Size(82, 81); + this.Name = "TTilePanel"; + this.Size = new System.Drawing.Size(82, 81); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; + private System.Windows.Forms.ToolTip toolTip1; + } +} diff --git a/Windows/Forms/TilePanel.cs b/Windows/Forms/TilePanel.cs new file mode 100644 index 0000000..237b67d --- /dev/null +++ b/Windows/Forms/TilePanel.cs @@ -0,0 +1,491 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.Forms; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Windows.Forms; +using AppResource = FizzyLauncher.AppResource; + +namespace FizzyLauncher.Windows.Forms +{ + public partial class TilePanel : TUserControl + { + protected bool isDragging = false; + protected Point startPosition = new Point(); + + protected int imageLeft = 0; + protected int imageTop = 11; + protected int labelMargin = 3; + protected int labelTop = 47; + protected Rectangle labelRectangle = new Rectangle(); + + protected string title = ""; + protected Image icon = null; + protected ContextMenuStrip groupContextMenu = null; + protected TileModel modelInfo = new TileModel(); + + + public TilePanel() : base() + { + InitializeComponent(); + + this.AllowDrop = true; + this.AutoSize = false; + this.BackColor = Color.FromArgb(250, 250, 250); + this.ContextMenuStrip = contextMenuStrip1; + this.DoubleBuffered = true; + this.Font = new Font(this.Font.FontFamily, 8.25F); + this.ForeColor = Color.FromArgb(99, 105, 119); + this.Size = new Size(70, 70); + this.MaximumSize = this.MinimumSize = this.Size; + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + this.AllowDrop = true; + this.AutoSize = false; + this.BackColor = Color.FromArgb(250, 250, 250); + this.ContextMenuStrip = contextMenuStrip1; + this.DoubleBuffered = true; + this.Font = new Font(this.Font.FontFamily, 8.25F); + this.Size = new Size(70, 70); + this.MaximumSize = this.MinimumSize = this.Size; + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Graphics g = e.Graphics; + + + if (this.Image != null) + { + g.DrawImage(this.Image, new Point(imageLeft, imageTop)); + } + + if (!string.IsNullOrWhiteSpace(this.Title)) + { + TextRenderer.DrawText(e.Graphics, this.Title, this.Font, labelRectangle, this.ForeColor, TextFormatFlags.HorizontalCenter | TextFormatFlags.NoPadding | TextFormatFlags.EndEllipsis); + } + + g.DrawRectangle(new Pen(Color.FromArgb(204, 206, 218), 1), new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - 1), (this.DisplayRectangle.Height - 1))); + + } + + [Category("Tile"), Browsable(true)] + public Image Image + { + get => icon; + protected set + { + icon = value; + + if (icon == null) + { + imageLeft = 0; + } + else + { + imageLeft = (this.Width - icon.Width) / 2; + } + } + } + + [Category("Tile"), Browsable(true)] + public string Title + { + get => title; + protected set + { + title = value; + + labelRectangle = new Rectangle(labelMargin, labelTop, (this.Width - (labelMargin * 2)), (this.Height - labelTop - 1)); + } + } + + + [Browsable(false)] + public TileModel ModelInfo => modelInfo; + + public TilePanelLayout PanelContainer + { + get + { + if (this.Parent == null) + { + return null; + } + + if (this.Parent.GetType() != typeof(TilePanelLayout)) + { + return null; + } + + return (TilePanelLayout)this.Parent; + } + } + + protected override void OnDragDrop(DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + + if (this.ModelInfo.IsGroup) + { + this.DropFileList(fileList); + + invalidateGroupMenu(this.ModelInfo); + } + else + { + if (this.PanelContainer != null) + { + this.PanelContainer.DropFileList(fileList); + } + } + } + + protected override void OnDragOver(DragEventArgs e) + { + base.OnDragDrop(e); + + e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None; + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + + isDragging = false; + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + + TilePanelLayout container = this.PanelContainer; + if (container == null) + { + return; + } + + this.BringToFront(); + + if (((e.Button == MouseButtons.Left) && (Control.ModifierKeys == Keys.Control)) || (e.Button == MouseButtons.Right)) + { + isDragging = true; + startPosition = e.Location; + } + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (Control.ModifierKeys == Keys.Control) return; + if (this.ModelInfo == null) return; + + if (e.Button == MouseButtons.Left) + { + if (this.ModelInfo.IsGroup) + { + if (groupContextMenu != null) + { + invalidateGroupMenuSize(); + + groupContextMenu.Show(this, e.Location); + } + } + else + { + OnMouseDoubleClick(e); + } + } + } + + protected override void OnMouseDoubleClick(MouseEventArgs e) + { + base.OnMouseDoubleClick(e); + + if (Control.ModifierKeys == Keys.Control) return; + + if (e.Button == MouseButtons.Left) + { + execute(this.ModelInfo); + } + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (isDragging) + { + TilePanelLayout layoutPanel = this.PanelContainer; + if (layoutPanel == null) + { + return; + } + + int x = (this.Location.X + (e.Location.X - startPosition.X)); + int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); + + layoutPanel.MoveTile(this, x, y); + } + } + + + public void DropFileList(string[] fileList) + { + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + + if (string.IsNullOrWhiteSpace(model.Title)) + { + model.Title = Path.GetFileNameWithoutExtension(fileList[0]); + } + } + + this.ModelInfo.Items.Add(model); + } + + public void LoadInfo(TileModel model) + { + this.modelInfo = model; + + this.Image = null; + this.Title = model.Title; + + if (this.modelInfo.IsGroup) + { + this.Image = AppResource.folder_32; + + invalidateGroupMenu(this.modelInfo); + } + else + { + this.Image = getIcon(model); + } + + toolTip1.SetToolTip(this, this.Title); + } + + private void editToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.ModelInfo.IsGroup) + { + EditTileFolderForm.ShowEditDialog(this); + } + else + { + EditTileForm.ShowEditDialog(this); + } + } + + private void removeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.PanelContainer == null) + { + return; + } + + this.PanelContainer.Remove(this); + } + + protected void execute(TileModel model) + { + if (model == null) + { + return; + } + + if (model.IsGroup) + { + return; + } + + if (string.IsNullOrWhiteSpace(model.CleanProcessFilename)) + { + return; + } + + if (!File.Exists(model.CleanProcessFilename)) + { + return; + } + + ProcessStartInfo p = new ProcessStartInfo(); + p.FileName = model.CleanProcessFilename; + p.WindowStyle = model.ProcessWindowStyle; + if (!string.IsNullOrWhiteSpace(model.CleanProcessArgument)) p.Arguments = model.CleanProcessArgument; + if (!string.IsNullOrWhiteSpace(model.CleanProcessWorkingDirectory)) p.WorkingDirectory = model.CleanProcessWorkingDirectory; + if (model.ProcessAsAdmin) p.Verb = "runas"; + + MainForm parentForm = findMainForm(); + if (parentForm != null) + { + if (parentForm.CurrentSession != null) + { + if (parentForm.CurrentSession.HideOnClick) + { + parentForm.Visible = false; + } + } + } + + try + { + Process.Start(p); + } + catch (Exception exc) + { + MessageBox.Show(exc.Message); + } + } + + protected Image getIcon(TileModel model) + { + if (!File.Exists(model.CleanProcessFilename)) + { + return null; + } + + try + { + return Icon.ExtractAssociatedIcon(model.CleanProcessFilename)?.ToBitmap(); + } + catch + { + // do nothing + } + + return null; + } + + protected void invalidateGroupMenu(TileModel model) + { + if (groupContextMenu == null) + { + groupContextMenu = new ContextMenuStrip(); + } + + groupContextMenu.Items.Clear(); + + if (model.Items == null) + { + return; + } + + foreach (TileModel item in model.Items) + { + ToolStripItem toolItem = groupContextMenu.Items.Add(item.Title); + toolItem.Image = getIcon(item); + toolItem.Tag = item; + toolItem.Click += toolItem_Click; + } + } + + protected void invalidateGroupMenuSize() + { + if (this.PanelContainer != null) + { + if (this.PanelContainer.MainForm != null) + { + if (this.PanelContainer.MainForm.CurrentSession != null) + { + if (this.PanelContainer.MainForm.CurrentSession.EnableBigIconInFolder) + { + groupContextMenu.ImageScalingSize = new Size(24, 24); + return; + } + } + } + } + + groupContextMenu.ImageScalingSize = new Size(16, 16); + } + + protected MainForm findMainForm() + { + Control item = this; + + while (true) + { + item = item.Parent; + if (item == null) + { + return null; + } + + if (item.GetType() == typeof(MainForm)) + { + return (item as MainForm); + } + } + } + + private void toolItem_Click(object sender, EventArgs e) + { + if (sender.GetType() != typeof(ToolStripMenuItem)) + { + return; + } + + ToolStripMenuItem item = (sender as ToolStripMenuItem); + if (item.Tag == null) + { + return; + } + + if (item.Tag.GetType() != typeof(TileModel)) + { + return; + } + + TileModel model = (item.Tag as TileModel); + execute(model); + } + + } +} \ No newline at end of file diff --git a/Windows/Forms/TilePanel.resx b/Windows/Forms/TilePanel.resx new file mode 100644 index 0000000..60ff723 --- /dev/null +++ b/Windows/Forms/TilePanel.resx @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 172, 17 + + \ No newline at end of file diff --git a/Windows/Forms/TilePanelLayout.Designer.cs b/Windows/Forms/TilePanelLayout.Designer.cs new file mode 100644 index 0000000..9da7f33 --- /dev/null +++ b/Windows/Forms/TilePanelLayout.Designer.cs @@ -0,0 +1,222 @@ +namespace FizzyLauncher.Windows.Forms +{ + partial class TilePanelLayout + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.addListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem(); + this.topToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.downToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); + this.label1 = new System.Windows.Forms.Label(); + this.contextMenuStrip1.SuspendLayout(); + this.contextMenuStrip2.SuspendLayout(); + this.SuspendLayout(); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.addToolStripMenuItem, + this.addListToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(181, 70); + // + // addToolStripMenuItem + // + this.addToolStripMenuItem.Name = "addToolStripMenuItem"; + this.addToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.addToolStripMenuItem.Text = "&Add Tile"; + this.addToolStripMenuItem.Click += new System.EventHandler(this.addTileMenuItem_Click); + // + // addListToolStripMenuItem + // + this.addListToolStripMenuItem.Name = "addListToolStripMenuItem"; + this.addListToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.addListToolStripMenuItem.Text = "Add &Folder"; + this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click); + // + // contextMenuStrip2 + // + this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem2, + this.toolStripMenuItem5, + this.toolStripMenuItem1, + this.removeRowToolStripMenuItem, + this.toolStripSeparator2, + this.toolStripMenuItem4, + this.toolStripSeparator1, + this.toolStripMenuItem3}); + this.contextMenuStrip2.Name = "contextMenuStrip1"; + this.contextMenuStrip2.Size = new System.Drawing.Size(144, 148); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(143, 22); + this.toolStripMenuItem2.Text = "&Add Group"; + this.toolStripMenuItem2.Click += new System.EventHandler(this.addGroupMenuItem_Click); + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(143, 22); + this.toolStripMenuItem5.Text = "Add &Row"; + this.toolStripMenuItem5.Click += new System.EventHandler(this.addRowMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(143, 22); + this.toolStripMenuItem1.Text = "&Edit"; + this.toolStripMenuItem1.Click += new System.EventHandler(this.editGroupMenuItem_Click); + // + // removeRowToolStripMenuItem + // + this.removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem"; + this.removeRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22); + this.removeRowToolStripMenuItem.Text = "Remo&ve Row"; + this.removeRowToolStripMenuItem.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(140, 6); + // + // toolStripMenuItem4 + // + this.toolStripMenuItem4.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.topToolStripMenuItem, + this.upToolStripMenuItem, + this.downToolStripMenuItem, + this.bottomToolStripMenuItem}); + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new System.Drawing.Size(143, 22); + this.toolStripMenuItem4.Text = "&Move"; + // + // topToolStripMenuItem + // + this.topToolStripMenuItem.Name = "topToolStripMenuItem"; + this.topToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.topToolStripMenuItem.Text = "&Top"; + this.topToolStripMenuItem.Click += new System.EventHandler(this.moveTopMenuItem_Click); + // + // upToolStripMenuItem + // + this.upToolStripMenuItem.Name = "upToolStripMenuItem"; + this.upToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.upToolStripMenuItem.Text = "&Up"; + this.upToolStripMenuItem.Click += new System.EventHandler(this.moveUpMenuItem_Click); + // + // downToolStripMenuItem + // + this.downToolStripMenuItem.Name = "downToolStripMenuItem"; + this.downToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.downToolStripMenuItem.Text = "&Down"; + this.downToolStripMenuItem.Click += new System.EventHandler(this.moveDownMenuItem_Click); + // + // bottomToolStripMenuItem + // + this.bottomToolStripMenuItem.Name = "bottomToolStripMenuItem"; + this.bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.bottomToolStripMenuItem.Text = "&Bottom"; + this.bottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomMenuItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(140, 6); + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(143, 22); + this.toolStripMenuItem3.Text = "&Remove"; + this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(99)))), ((int)(((byte)(105)))), ((int)(((byte)(119))))); + this.label1.Image = global::FizzyLauncher.AppResource.toggle_left_ea_16; + this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.label1.Location = new System.Drawing.Point(227, 72); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(0, 13); + this.label1.TabIndex = 2; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); + this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); + // + // TTilePanelLayout + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Transparent; + this.Controls.Add(this.label1); + this.Name = "TTilePanelLayout"; + this.Size = new System.Drawing.Size(370, 150); + this.contextMenuStrip1.ResumeLayout(false); + this.contextMenuStrip2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem addListToolStripMenuItem; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip2; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4; + private System.Windows.Forms.ToolStripMenuItem topToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; + private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem; + private System.Windows.Forms.Label label1; + } +} diff --git a/Windows/Forms/TilePanelLayout.cs b/Windows/Forms/TilePanelLayout.cs new file mode 100644 index 0000000..a975ba2 --- /dev/null +++ b/Windows/Forms/TilePanelLayout.cs @@ -0,0 +1,849 @@ +using FizzyLauncher.Models; +using RyzStudio.Windows.Forms; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using AppResource = FizzyLauncher.AppResource; + +namespace FizzyLauncher.Windows.Forms +{ + public partial class TilePanelLayout : TUserControl + { + public static int CalcWidth(int tileCount) => (tileCount * tileSize) + ((tileCount - 1) * margin); + + + public class Item + { + public TilePanel Tile { get; set; } + public Point Coord { get; set; } = new Point(0, 0); + } + + + protected const int tileSize = 70; + protected const int margin = 3; + protected const int labelHeight = 20; + protected const int collapseIncrement = 6; + protected const int expandIncrement = 8; + + protected TileGroupModel groupModel = null; + protected List items = new List(); + + protected int collapseHeight = 0; + protected int expandedHeight = 0; + + protected bool isAnimating = false; + protected bool isChecked = true; + protected Point lastMousePosition = new Point(); + protected Point gridSize = new Point(); + + + public TilePanelLayout(TileGroupModel model) : base() + { + InitializeComponent(); + + this.AllowDrop = true; + this.BackColor = Color.Transparent; + + this.LoadModel(model); + + label1.Location = new Point(0, 4); + label1.Margin = new Padding(0); + label1.Padding = new Padding(0); + } + + protected override void OnDragDrop(DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + + this.DropFileList(fileList); + } + + protected override void OnDragOver(DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + e.Effect = DragDropEffects.Link; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + this.Margin = new Padding(0); + this.Padding = new Padding(0, 0, 0, 10); + } + + protected override async void OnResize(EventArgs e) + { + base.OnResize(e); + + await this.InvalidateContainer(); + } + + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + lastMousePosition = e.Location; + + bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= 20)); + + if (e.Button == MouseButtons.Left) + { + // do nothing + } + else if (e.Button == MouseButtons.Right) + { + if (isLabel) + { + contextMenuStrip2.Show(this, e.Location); + } + else + { + contextMenuStrip1.Show(this, e.Location); + } + } + } + + protected override void OnMouseDoubleClick(MouseEventArgs e) => base.OnMouseClick(e); + + public Point GridSize + { + get => gridSize; + } + + public bool EnableAnimation + { + get + { + MainForm mainForm = this.MainForm; + if (mainForm == null) + { + return false; + } + + if (mainForm.CurrentSession == null) + { + return false; + } + + return mainForm.CurrentSession.EnableAnimation; + } + } + + public int CollapseHeight => labelHeight + collapseHeight; + + public int ExpandedHeight => expandedHeight + this.Padding.Bottom; + + public void DropFileList(string[] fileList) + { + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + + if (string.IsNullOrWhiteSpace(model.Title)) + { + model.Title = Path.GetFileNameWithoutExtension(fileList[0]); + } + } + + this.AddTile(model); + } + + public TileGroupModel Model + { + get + { + TileGroupModel rs = new TileGroupModel() + { + Title = groupModel.Title, + GridSize = new Size(this.GridSize.X, this.GridSize.Y), + IsExpanded = isChecked, + IsExclusive = groupModel.IsExclusive, + Items = this.Tiles + }; + + return rs; + } + } + + public FlowLayoutPanel FlowLayoutPanel + { + get + { + Control parentControl = this.Parent; + while (true) + { + if (parentControl == null) + { + return null; + } + + if (parentControl.GetType() == typeof(FlowLayoutPanel)) + { + return parentControl as FlowLayoutPanel; + } + + parentControl = parentControl.Parent; + } + } + } + + public MainForm MainForm + { + get + { + Control parentControl = this.FlowLayoutPanel; + while (true) + { + if (parentControl == null) + { + return null; + } + + if (parentControl.GetType() == typeof(MainForm)) + { + return parentControl as MainForm; + } + + parentControl = parentControl.Parent; + } + } + } + + public List Tiles + { + get + { + List rs = new List(); + foreach (Item item in items) + { + TileModel model = item.Tile.ModelInfo; + model.Position = item.Coord; + + rs.Add(model); + } + + return rs; + } + } + + public int TileSize => (tileSize + margin); + + public void AddTile(TileModel tile) + { + Point gridSize = this.GridSize; + + if (items.Count >= (gridSize.X * gridSize.Y)) + { + this.SetGridSize(gridSize.X, (gridSize.Y + 1)); + } + + Point? newCoord = tile.Position; + if ((newCoord == null) || hasTile(tile.Position)) + { + newCoord = findLastFreeCoord(); + } + + if (newCoord == null) + { + return; + } + + tile.Position = newCoord.Value; + + TilePanel panel = new TilePanel(); + panel.LoadInfo(tile); + panel.Location = convertCoordToLocation(tile.Position); + + items.Add(new Item() + { + Tile = panel, + Coord = tile.Position + }); + + this.Controls.Add(panel); + } + + public void Clear() + { + this.Controls.Clear(); + } + + public async Task Collapse() + { + await Task.Run(() => + { + if (isAnimating) return; + + isAnimating = true; + isChecked = false; + + if (this.EnableAnimation) + { + while (this.Height > this.CollapseHeight) + { + ThreadControl.SetHeight(this, (this.Height - collapseIncrement)); + + Thread.Sleep(10); + } + } + + ThreadControl.SetHeight(this, this.CollapseHeight); + + isAnimating = false; + + this.Invalidate(this.DisplayRectangle, false); + }); + } + + public async Task Expand() + { + await Task.Run(() => + { + if (isAnimating) return; + + isAnimating = true; + isChecked = true; + + if (this.EnableAnimation) + { + while (this.Height < this.ExpandedHeight) + { + ThreadControl.SetHeight(this, (this.Height + expandIncrement)); + Thread.Sleep(10); + } + } + + ThreadControl.SetHeight(this, this.ExpandedHeight); + + isAnimating = false; + + this.Invalidate(this.DisplayRectangle, false); + }); + } + + public Point GetTilePosition(int posX, int posY) + { + int x = (int)Math.Round(decimal.Divide(posX, this.TileSize)); + int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize)); + + if (x < 0) x = 0; + if (y < 0) y = 0; + + return new Point((x * this.TileSize), ((y * this.TileSize) + labelHeight)); + } + + public async Task InvalidateContainer() + { + if (isAnimating) + { + return; + } + + if (isChecked) + { + await this.Expand(); + } + else + { + await this.Collapse(); + } + } + + public void AddGroup() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + this.FlowLayoutPanel.Controls.Add(new TilePanelLayout(new TileGroupModel() + { + Title = "New Group", + GridSize = new Size(8, 1) + })); + } + + public void AddRow() => this.SetGridSize(gridSize.X, (gridSize.Y + 1)); + + public void EditGroup() => EditGroupForm.ShowDialog(this); + + public void LoadModel(TileGroupModel model) + { + groupModel = model; + + isChecked = groupModel.IsExpanded; + + label1.Text = " " + groupModel?.Title; + label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16); + + this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); + this.LoadTiles(model.Items); + this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); + + this.Invalidate(); + } + + public void UpdateModel(TileGroupModel model) + { + groupModel = model; + isChecked = groupModel.IsExpanded; + + label1.Text = " " + groupModel?.Title; + + this.Invalidate(); + } + + public void LoadTiles(List tiles) + { + if (tiles == null) + { + return; + } + + if (tiles.Count() <= 0) + { + return; + } + + foreach (TileModel item in tiles) + { + // resolve final grid position + Point? confirmedPosition = resolveCoord(item.Position); + if (confirmedPosition == null) + { + continue; + } + + // place control + TilePanel panel = new TilePanel(); + panel.LoadInfo(item); + panel.Location = convertCoordToLocation(confirmedPosition.Value); + + items.Add(new Item() + { + Tile = panel, + Coord = confirmedPosition.Value + }); + + this.Controls.Add(panel); + } + } + + public void MoveTile(TilePanel panel, int posX, int posY) + { + Item item = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault(); + if (item == null) + { + return; + } + + Point newPosition = convertLocationToCoord_Nearest(posX, posY); + if (!isTileInBounds(newPosition)) + { + return; + } + + if (hasTile(newPosition)) + { + Item swapItem = items.Where(x => x.Coord.Equals(newPosition)).FirstOrDefault(); + if (swapItem != null) + { + swapItem.Coord = item.Coord; + swapItem.Tile.Location = convertCoordToLocation(item.Coord); + } + + item.Coord = newPosition; + panel.Location = convertCoordToLocation(newPosition); + } + else + { + item.Coord = newPosition; + panel.Location = convertCoordToLocation(newPosition); + } + } + + public void MoveTop() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + this.FlowLayoutPanel.Controls.SetChildIndex(this, 0); + } + + public void MoveUp() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this); + if (pos <= 0) + { + return; + } + + this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos - 1)); + } + + public void MoveDown() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this); + if (pos >= (this.FlowLayoutPanel.Controls.Count - 1)) + { + return; + } + + this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos + 1)); + } + + public void MoveBottom() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + this.FlowLayoutPanel.Controls.SetChildIndex(this, (this.FlowLayoutPanel.Controls.Count - 1)); + } + + public void Remove() + { + if (this.FlowLayoutPanel == null) + { + return; + } + + this.FlowLayoutPanel.Controls.Remove(this); + } + + public void Remove(TilePanel panel) + { + Item m = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault(); + if (m != null) + { + items.Remove(m); + } + + this.Controls.Remove(panel); + } + + public void SetGridSize(int width, int height) + { + gridSize = new Point(width, height); + + groupModel.GridSize = new Size(groupModel.GridSize.Width, height); + + expandedHeight = (this.TileSize * height) + labelHeight; + + int w = CalcWidth(gridSize.X); + + this.Size = new Size(w, (isChecked ? this.ExpandedHeight : this.CollapseHeight)); + } + + protected Point convertCoordToLocation(Point position) => new Point((position.X * this.TileSize), ((position.Y * this.TileSize) + labelHeight)); + + protected Point convertLocationToCoord(int posX, int posY) + { + int x = (int)Math.Ceiling(decimal.Divide(posX, this.TileSize)); + int y = (int)Math.Ceiling(decimal.Divide((posY - labelHeight), this.TileSize)); + + x--; + y--; + + if (x < 0) x = 0; + if (y < 0) y = 0; + + return new Point(x, y); + } + + protected Point convertLocationToCoord_Nearest(int posX, int posY) + { + int x = (int)Math.Round(decimal.Divide(posX, this.TileSize)); + int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize)); + + if (x < 0) x = 0; + if (y < 0) y = 0; + + return new Point(x, y); + } + + protected Point? findFirstFreeCoord() + { + Point gridSize = this.GridSize; + + for (int y = 0; y < gridSize.Y; y++) + { + for (int x = 0; x < gridSize.X; x++) + { + if (hasTile(new Point(x, y))) + { + continue; + } + + return new Point(x, y); + } + } + + return null; + } + + protected Point? findLastFreeCoord() + { + Point gridSize = this.GridSize; + + // none available + if (items.Count >= (gridSize.X * gridSize.Y)) + { + return null; + } + + if (items.Count <= 0) + { + return findFirstFreeCoord(); + } + + // only one available + if (items.Count >= ((gridSize.X * gridSize.Y) - 1)) + { + return findFirstFreeCoord(); + } + + Point? rv = null; + + for (int y = (gridSize.Y - 1); y >= 0; y--) + { + for (int x = (gridSize.X - 1); x >= 0; x--) + { + if (hasTile(new Point(x, y))) + { + if (rv.HasValue) + { + return rv; + } + } + else + { + rv = new Point(x, y); + } + } + } + + return null; + } + + protected bool hasTile(Point position) + { + if (items == null) + { + return false; + } + + if (items.Count <= 0) + { + return false; + } + + return (items.Count(x => x.Coord.Equals(position)) > 0); + } + + protected bool isTileInBounds(Point position) + { + Point gridSize = this.GridSize; + + if (position.X >= gridSize.X) + { + return false; + } + + if (position.Y >= gridSize.Y) + { + return false; + } + + return true; + } + + protected Point? resolveCoord(Point coord) + { + if (!isTileInBounds(coord)) + { + return null; + } + + if (!hasTile(coord)) + { + return coord; + } + + return resolveNextCoord(coord); + } + + protected Point? resolveNextCoord(Point coord) + { + Point gridSize = this.GridSize; + Point newCoord = coord; + + while (true) + { + newCoord.X++; + + if (newCoord.X >= gridSize.X) + { + newCoord.Y++; + newCoord.X = 0; + } + + if (!isTileInBounds(newCoord)) + { + return null; + } + + if (hasTile(newCoord)) + { + continue; + } + + return newCoord; + } + } + + private void addTileMenuItem_Click(object sender, EventArgs e) + { + Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); + + EditTileForm.ShowAddDialog(this, coord); + } + + private void addListTileMenuItem_Click(object sender, EventArgs e) + { + Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); + + EditTileFolderForm.ShowAddDialog(this, coord); + } + + private void addGroupMenuItem_Click(object sender, EventArgs e) => this.AddGroup(); + + private void addRowMenuItem_Click(object sender, EventArgs e) => this.AddRow(); + + private void editGroupMenuItem_Click(object sender, EventArgs e) => this.EditGroup(); + + private void moveTopMenuItem_Click(object sender, EventArgs e) => this.MoveTop(); + + private void moveUpMenuItem_Click(object sender, EventArgs e) => this.MoveUp(); + + private void moveDownMenuItem_Click(object sender, EventArgs e) => this.MoveDown(); + + private void moveBottomMenuItem_Click(object sender, EventArgs e) => this.MoveBottom(); + + private void removeGroupMenuItem3_Click(object sender, EventArgs e) => this.Remove(); + + private void removeRowToolStripMenuItem_Click(object sender, EventArgs e) + { + bool rs = items.Exists(x => x.Coord.Y.Equals(gridSize.Y - 1)); + if (!rs) + { + this.SetGridSize(gridSize.X, (gridSize.Y - 1)); + } + } + + private async void label1_MouseClick(object sender, MouseEventArgs e) + { + if (isAnimating) return; + + if (e.Button == MouseButtons.Left) + { + isChecked = !isChecked; + + label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16); + + this.Invalidate(); + + await this.InvalidateContainer(); + + // exclusivity + if (isChecked) + { + if (this.Model.IsExclusive) + { + if (this.FlowLayoutPanel != null) + { + foreach (TilePanelLayout item in this.FlowLayoutPanel.Controls.OfType()) + { + if (item.Equals(this)) + { + continue; + } + + await item.Collapse(); + } + } + } + } + + label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16); + } + else if (e.Button == MouseButtons.Right) + { + contextMenuStrip2.Show(this, e.Location); + } + } + + } +} diff --git a/Windows/Forms/TilePanelLayout.resx b/Windows/Forms/TilePanelLayout.resx new file mode 100644 index 0000000..8baf68f --- /dev/null +++ b/Windows/Forms/TilePanelLayout.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 172, 17 + + \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5d60ade9d37ee6deb89e358cb4d6cac929ebef26 GIT binary patch literal 17542 zcmd5^32;J00t`mB!9v(z3CtzH;00qYiAx9}aoYw7uns^H2x$<~pwS$i|Ld84>UncX z=Ip9p{f_SbzrSA}|Is5wiBo>0y!fI*`A}u!KPk$8D~d97Xy86UQQGO*Gtc<%7yh}T ztaw>b66iU~kNc6L{A`$_JWq9~2_=mP&mU&8nGL_Qn)J;?brz%UeOrp*4g0WRgyhLj z7L#ra;r0+Q4YgZMy7gAGZbYWZ^p{VfBo?DSPlH)2gSdBDjrzSLk2O2h@UzD)i@{(R zM7TeevA;KaCcAk4EZhEhF`GRpQ{aw}8)|H3z1?aa{?enCCG*WU`>W*Pg(?=57# zE*F#2t=1M+wr3YB_`f+UGxeU zj|@HJy6bKyt2|Q9Ru{a-CXGsoCQCQ9{iVgMPX(_BDT^g3=~-&~f{cCF*3BVUV?Drk zI#+X&tuI>1rdviulf_MQ<^Zj2*|eVh!~Mu&P1e0YxSIs_%#;!A=z)E)pvHXf^ZD4- z+DmN5#&vA&)SPIt_$(&F^dBOFCE4&Q;ik3Fzdq)q8`;_Fs+ib*NP(Lz&20a!oow0M zSqyz7cn0!T!XGyf8Ej_V@2Rd+v@>OF8oP4oyB`8=z;(o&nL0LIl_Sfjqn*2diPpDt z!tEB=-?5Eh*Ba^vjN^VQ6urM##ZUXk$o`xR|@UJ0f|UPEj-{$9Ph)&^j9pf4F^Vao#%&-%_N@CthP`zfxjSOWiC{g*EKh z#g2}##iVnK-dF30i>q~)`tZ~G7YRS#mrVLCs;t!Sg-i2;_9d^UJ0@-+TV2Jk1O#?w z{^FR}g?wJkKIoyn1#3nCmv4f>@Yh-yuvgHYdPK&)Zq#CH*a7KPzMZg4W}3NyguP zy*OME)^vVUMErH1tq)tL_4tXX_<={lH&@0_d-W;t4th#O*@3V;@bGcr$9^p^QeGzG zr~3}^uIlLFh}a(|{=1!>jPwX0Lsv#d#-9oqtR}-Af&bKr<4+`hfSNNoOW6Eo-dv?qu=y23sA?(_N(~GX5A?8TMUN3ApBfU$fEh{a`i-%L7u;29gURN9e+h_r{C*; zMke$2_Nw*di{|UsRQ!bZn!t~o?oW$vaQWi5aKk{KyHvY9F@TxE>aMugk~GuU%uNe~(Rel0l?b2)nY*6_etq z%)KZgz;@0WnIvTJVC@ky$Uc#Z^6)xD&pn@teSX$0_Q~Ro5Snai;bn5i^x^;2SAP7@ z?d)Y4mF^Hq+~-zh>v9XJ!{>`~rwjbFj~U)j@tgEHVhpV-S`oIgjQ_}{l;HfvPQ*Ex?8Tmk3Cu7$6g&SJqh@s;|QG4eFT2!MD)B1@1QF|XVRu8 z0Y7xiKK%L)fgd?NFB9*evue}h#t+?I_C-SX55jNM&lmW2YznnC9w+|2w697!G<^fz zw_0EJc(dVu1b+CCv`NOlc3B6jJm?Ie`PsK3&fhooyV+*i3$$cA>4`Xhyt5v9;?wXUW|`eIees||Dnqv?jZZ$9;OiR4a+({;c&u-91FANeH_(m z6*3@)FB|I-e39^RKa2#QyyRy?|F^?;uff)@Tf_>ezE74xzJ@;+F$csRqUqZGl@qZL zjlaJMF_V6QjZg?N8^mr9!y)XdA6=FM*N6cj7KHs;8^h}le#D?OZC;RV!wB#O^cees z&8Rof+FDG!92$Nqe|&$$8xeQJ8WJsGU)u0#@V-Rf{dl;2X+U6O6o!vI5K~%C@-#-0 z1$%w|%&BbG)=jM8>Xjf-urDDNsj0hze9Lqi;?X9=pm{9XWT?^L3Bre%He%a|aU<5P zDf=<{<L~;GEV_qG3c2>YP?U2W%tz`VgJ>m}D^<{*ju0B#C^9@6z}TqdSmY zVAe0RCL3O{+wFhypuu4Mq}bd?nBTB*5AXY$pHn~_ar*d>a~`c0vu-u!P&8YnzZe6t z*G=G^Ju;bT<2cZfu!mtU!=8q65;1-CySL@ zn{TlFf84>A&dJs4U9deXX#Jm-VK599JR;@eQVoAc<`h%;N^a|*rXp_cLbtL}Q6y2|>%q^5# zVh=ta&>ue0%0Rcl7^1e_vVT=z!8tK{hjUgG-(Td{S$$siZP~MGY+R1%oZtI2>%G^+ zT_dUuA`4JPn-B_qn!x=g&MrUQ@?|-Ri zEo(k>R3#Dnl=~lT7O(su@D2Pr8tr9&0RI&f!_p?fUmo{;*Ky3%U8jyedEAR@%nKjc zLvq4*20zjt*Fb*iho9hn@|cn8xL3>5{DX|)sHeM@7sI(2%z<#!b31hHy586jkY8V` zjzP2TGBDg|YE)T^i?&t|yLz!VgqoZB9D22#K307@lp4E({Z(j_$2&7d0)r2-0|VKh zpMn3;gZl(qp5yrF+y8Z4jqS+3NyMvKuDMwq@kV?poDc8mjdZpv6axDwf1dvv81?@P z{^YM73;rdA9|rM9Tns!BQ#!DtOQnxy`(rWa7sw6X#-nalSm#wq#E!zny>@TkBECUB z_+u`BKjwy<1b_IH<+N{m7sn;@Ur`%8&V=tc9DmGp@FO|~{#Xm>nxA*U8X?ld;@>w1 z^zGn}MEc}zV8R+H(!=17H6A{Ifc!K3-1!*D#k1`jN(6h_1O4BBT54-hJaLZoW=Q|P z`gL#&@r5t_u|?7U828)Oe z$W*6-h{tPCA3jXz)X=S=W5-I+)y4T>=GSBE89~1 zDfc;P&-laNIU(JzZl9r{GP{dF#K68ept_WU(j9`?d;gyJ9ik))xhS< zNi*^_ht``rG^R=-tyx$bGR-5ZsGP6za9OP7NPRDUBlG#{kFlnKSJ0VZ$TTh~X(-L% z+U&Gs&-v3eYTbceESfdLOFRzB{RBOW+HRgSCe?GL_9E$`9(G}W0=Fgl^m>KP_-$ov zHD^L>+RE%Hsy>f1snowt5%;BeH;nk*otZV(EzVi_ye{5$$BhlD4uA3R^W2Vstx}Ua zSJm5ZRaJ9-KDYm%)ak0gd6vL$(K1sEx93dB_R8@W(f+;8vugL$9(ze`|IFNc^?6s* zwV?LzI6C-RPU~bQ`Y0=P#A(utgS6%QX&;PpbH=;HnNpik_rb(bDIPhlC)&Sse%c$7F^{e{HK;Pv$5L&^KKpSM zbGvRa=Z$97Rupz)Tg~adx^#v81Z^Vj=8s|MnbuCnc|O@TIJmQmbvnH479E#eCD{Y8 z4RGF1PWaso+Nbs7Ey#ee3Hwwe4;e4e_ok+_sOJjPN$)HBvWpc_dry&lBhC)~JfLs( zN-WUV6Gxe`UM=T+MCW_)O+@?dUVr-ym-}?BcSp5yd4TsNI+rNY*$%&*{X*SrjXYo)E39*q$qf>U0Pr2)!<~Mpm&se*%pnKAo6esQXb##XBIe$&6OEFyf zy>VsXvi$B?wl2mO*%vO-!=|FXCC%{6#L+32Hhfy>^m^T-Km3^QUD(&Jf0x6qZraNC zb^I=%GG`js7iubx(Rz@!AN6THuK)Urt$bni`N)4&@iLz>-Hs}D?ZQ~@!@m1Hlyb(- zELhCz!;Ymn-$~WuCTEOnY^wjBzej!e#^E2t@4iHR{B8^WK={Cg|8e^Gx9{Q%)a22r zCD_;e4S0k6>W-Fe>}KUj)sKF4BmLHah0Jw~TcgJ`~}G%4F7rVE8n@)`c-Xyt}oO1Zc!h7j=rb*3a!lt5la*PMV#BmzEM)(;QX;~ zU|;?57V;mG17&N;njRW2S2In+{~q-*7BD7cT?X=K6UJ8IvPI5Gqf<}F|LXx`5n~c# z6Js>oI*l=nv5hev>G%8MTm^m8ik$T1o`MClJ7^C1Fqbf=sBR(bRbY;lFlRA$F^4gi qF{i`T>3O|0u|B>uu{^Fc(N07$b6RV{lbxQUjD3*5j%P?|;{OB00kg6I literal 0 HcmV?d00001 From f54bb1c38a6f211e29595663ada7409d51b2cb9f Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 01:19:27 +0100 Subject: [PATCH 3/7] Added: icons to main menu --- FizzyLauncher.csproj | 1 + MainForm.Designer.cs | 37 +++++---- Resources/UI/cog.png | Bin 0 -> 713 bytes Resources/UI/cog2.png | Bin 0 -> 467 bytes Resources/UI/disk.png | Bin 0 -> 439 bytes Resources/UI/disk2.png | Bin 0 -> 347 bytes Resources/UI/help.png | Bin 0 -> 670 bytes Resources/UI/help2.png | Bin 0 -> 436 bytes Resources/UI/icons.svg | 168 +++++++++++++++++++++++++++++++++++++++++ UIResource.Designer.cs | 60 +++++++++++++++ UIResource.resx | 18 +++++ 11 files changed, 268 insertions(+), 16 deletions(-) create mode 100644 Resources/UI/cog.png create mode 100644 Resources/UI/cog2.png create mode 100644 Resources/UI/disk.png create mode 100644 Resources/UI/disk2.png create mode 100644 Resources/UI/help.png create mode 100644 Resources/UI/help2.png create mode 100644 Resources/UI/icons.svg diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj index 47ac8db..97db607 100644 --- a/FizzyLauncher.csproj +++ b/FizzyLauncher.csproj @@ -14,6 +14,7 @@ Ray Lam 0.2.1.055 0.2.1.055 + 0.2.1.055 diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 16b56d0..92961d9 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -126,58 +126,61 @@ // // newToolStripMenuItem // + this.newToolStripMenuItem.Image = global::FizzyLauncher.UIResource.file2; this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.newToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.newToolStripMenuItem.Text = "&New"; this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); // // openToolStripMenuItem // + this.openToolStripMenuItem.Image = global::FizzyLauncher.UIResource.folder2; this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.openToolStripMenuItem.Text = "&Open"; this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); // // toolStripMenuItem13 // this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(120, 6); + this.toolStripMenuItem13.Size = new System.Drawing.Size(177, 6); // // closeToolStripMenuItem // this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; - this.closeToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.closeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.closeToolStripMenuItem.Text = "&Close"; this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); // // toolStripMenuItem14 // this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(120, 6); + this.toolStripMenuItem14.Size = new System.Drawing.Size(177, 6); // // saveToolStripMenuItem // + this.saveToolStripMenuItem.Image = global::FizzyLauncher.UIResource.disk2; this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.saveToolStripMenuItem.Text = "&Save"; this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); // // saveAsToolStripMenuItem // this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(123, 22); + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.saveAsToolStripMenuItem.Text = "Save &As..."; this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); // // toolStripMenuItem15 // this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(120, 6); + this.toolStripMenuItem15.Size = new System.Drawing.Size(177, 6); // // exitToolStripMenuItem2 // this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; - this.exitToolStripMenuItem2.Size = new System.Drawing.Size(123, 22); + this.exitToolStripMenuItem2.Size = new System.Drawing.Size(180, 22); this.exitToolStripMenuItem2.Text = "E&xit"; this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem2_Click); // @@ -194,21 +197,21 @@ // showBigIconsToolStripMenuItem // this.showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; - this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; this.showBigIconsToolStripMenuItem.Click += new System.EventHandler(this.showBigIconsToolStripMenuItem_Click); // // enableAnimationsToolStripMenuItem // this.enableAnimationsToolStripMenuItem.Name = "enableAnimationsToolStripMenuItem"; - this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.enableAnimationsToolStripMenuItem.Text = "Enable &Animations"; this.enableAnimationsToolStripMenuItem.Click += new System.EventHandler(this.enableAnimationsToolStripMenuItem_Click); // // alwaysOnTopToolStripMenuItem // this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; - this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(173, 22); + this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click); // @@ -222,8 +225,9 @@ // // optionsToolStripMenuItem // + this.optionsToolStripMenuItem.Image = global::FizzyLauncher.UIResource.cog2; this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.optionsToolStripMenuItem.Text = "&Options"; this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click); // @@ -239,20 +243,21 @@ // // viewHelpToolStripMenuItem1 // + this.viewHelpToolStripMenuItem1.Image = global::FizzyLauncher.UIResource.help2; this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; - this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(127, 22); + this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); this.viewHelpToolStripMenuItem1.Text = "&View Help"; this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click); // // toolStripMenuItem16 // this.toolStripMenuItem16.Name = "toolStripMenuItem16"; - this.toolStripMenuItem16.Size = new System.Drawing.Size(124, 6); + this.toolStripMenuItem16.Size = new System.Drawing.Size(177, 6); // // aboutToolStripMenuItem1 // this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; - this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(127, 22); + this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); this.aboutToolStripMenuItem1.Text = "&About"; this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); // diff --git a/Resources/UI/cog.png b/Resources/UI/cog.png new file mode 100644 index 0000000000000000000000000000000000000000..7a63c8ff497a06e19075ce81b066f66cccff3621 GIT binary patch literal 713 zcmV;)0yh1LP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10#->x zK~y-6g_ALe+(j70e{c36f*7kDVrxYBf4hqi!B{B7GN?sj@WAH4$O$3@vVKU}^TD=CDTk-i=|cdmwRK6?BwcH*eGD+2P9H6$JZW2Voc4h?fs>N% z*uDguk#w}RwkK%|_!L+H4ggn%!{Mm~LC<>K_6eYqbQ1U?BF+KioZn6`#0c9 zYwfY|czk0CK+?~)@1~TNBjP-8{$Elr^i9tBJ>d3WFt`P<1kiQePomJGM^)M8r8sN9XA*^{(FD+uQp^lK1J> zeP*}T_U2YAAH}M@wTauoUv^IYSsn+^oYwhXL zXmkXi);gT84Qxb2=_CKz_7B71aCNcM?(Xivob#Q@Wb!WmQ>B!(obz9$lt&gZ&StY^ z;2=;ZlgS$?r4`#(BjN)|E~T8ceG2&8_IJR6*4i>~b74--c@uaUxGU+h?bVdhG26e| zF2F~UUbX!&uo)4rNc!hf*jCPYlv27C5jS(r71#xS2VRVbLpwV=56)(@L*w!I#vHe_ v$mw2$+xz6cDe0o^2W-DCsR4iVy{NwdQgAt!(CbpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10bof) zK~y-6jnX|!mT?pY@So4pP`D-L(2$!whJz3^1hyqKnBO7$0F_8i`T^1*H^EV~!EaDY zV`fWBU|SJCfcJo*|=qi;4l8H-~IFR_h<0Qcb;-r)(R6ML%;a3kn5y=JY+ zJPvWK=~%_v+W#n)^V&80c1G;V1AN9AW@Ed9zX|>ry#iUx2wir*Vhi`3v$CATR^ASl z;%h0(UB_MvSCq}~`=6R7#g%l@ZPzx9gE;15Yp3lUh4VkS9pCfB?%`nt(!vTp)GD>p z_EIgGLg$)>^y65$fs15Dp?t8aOgYbfg^j1F@}f59oWjUFek*$$Xd-WBwo~OM&J<=w zVt=hHyMv7iyt(O7{KAiP^F_J3N4Sow`R-m~R1*pOj>o-%{sE_RS^{qBODF&U002ov JPDHLkV1n}Z*WUmD literal 0 HcmV?d00001 diff --git a/Resources/UI/disk.png b/Resources/UI/disk.png new file mode 100644 index 0000000000000000000000000000000000000000..7355b964686b0062baebd248f6857423282e052b GIT binary patch literal 439 zcmV;o0Z9IdP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Yphe zK~y-6t&_b)5XbR`bFSGBaRBm?l5x>{ilXR- zi-fJf)t@i+5WfNW!=EV}>z002ovPDHLkV1k?dw_^YR literal 0 HcmV?d00001 diff --git a/Resources/UI/disk2.png b/Resources/UI/disk2.png new file mode 100644 index 0000000000000000000000000000000000000000..29b59a4edfdd5e1c25cd3912d2772c20c4b8e8c7 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(S+T^vI!de>gI^Ngw?bDDi%l9pJp;Dum{qmSst11WCT60!?2w%<+t z>UhyNbbq*g$YHB>fr%zZ+afL=a++X%;dtDS^M75~+ba%=$<1)QX=nQ_M}|J+Jnj@y+qsYZz=EStxIqY4xv`t(f!5i*pCxF48OLZZ6O}esi|R r&%XJr&)YtRtUvQ@uJr1H&a3+7+TP-o%(d-6KQnl``njxgN@xNA{ppR@ literal 0 HcmV?d00001 diff --git a/Resources/UI/help.png b/Resources/UI/help.png new file mode 100644 index 0000000000000000000000000000000000000000..88b4864006518565fd2c8e5e5072b0fd688d4466 GIT binary patch literal 670 zcmV;P0%84$P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10xL;G zK~y-6ZBsE!6hRbyZ*C(6LSv4^!e|5LZp@wqHCTvZOo*}4&O{1rY!n(S1Y<)mCdQzN z7aP0N7!wN-D8#~888>%xr%-5!4RlIybL4KG%^q16UN!mu&HVq~pHE~^uh&mW8kaNz z;CK@L1z?F}*;?z;e0C1bxkHj30k{F+4}b+ps{lZ90Kh28UP(_$-nQ26>^_iOeh*-X z~wW? zeeCb=-v)5cIro+18}I!bfLly7e*-XMt)1!k;Jsf2a5Rzdqt$AiEtN{Y0iaf^O_Q7g z5SqlWzi}MTb=vjb&jN_O_o4UxjHDw$5KMRS?RI-s(w3xgleoQ*)=csRfGc4bR>Lq{ z0kG`7Ki$cfN~P_@>*hO0Mu%=C(gN+b8ak6Y&04JjYeaSJm=h) zbFNjbRv!bIuS{}S(t~!pJ)4Yb7f}>-=W@A8l2hrgoL#1eByUREBKg64|2;_;NS-6v zpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10YOPb zK~y-6b<;6RT|p29;7^n%`1Jh(Yr#BI+J&T38?Dk<+az^jE73l=L5!&aqM(*m5(|HV z)iV%;v}pp7s30U4wAhKR>wO0Xc4yA)-8uIxk1>Uh_=c;9Q&i}d}N5YtL6yu!Z14-@OV&0dS&h~paDL8xR!G$DF69%z_Ye}aZ ztGF2Q@K=`D!6FW@+>g{W!hbx&^FFnG$zUo;#C8K|D5AuuBw|IfXRTR>Eo?XB*P`dn z+8dErD2NjgIUX5_dn?zHx=rJ>-5co6%H?BvkJq@wk>o&_#0 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UIResource.Designer.cs b/UIResource.Designer.cs index 0f0a495..90f6194 100644 --- a/UIResource.Designer.cs +++ b/UIResource.Designer.cs @@ -120,6 +120,46 @@ namespace FizzyLauncher { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap cog { + get { + object obj = ResourceManager.GetObject("cog", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap cog2 { + get { + object obj = ResourceManager.GetObject("cog2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disk { + get { + object obj = ResourceManager.GetObject("disk", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap disk2 { + get { + object obj = ResourceManager.GetObject("disk2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// @@ -180,6 +220,26 @@ namespace FizzyLauncher { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap help { + get { + object obj = ResourceManager.GetObject("help", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap help2 { + get { + object obj = ResourceManager.GetObject("help2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/UIResource.resx b/UIResource.resx index 96b7c2a..03adecf 100644 --- a/UIResource.resx +++ b/UIResource.resx @@ -136,6 +136,18 @@ Resources\UI\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\UI\cog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\cog2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\disk.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\disk2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Resources\UI\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -154,6 +166,12 @@ Resources\UI\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Resources\UI\help.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UI\help2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Resources\UI\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a From 639152e3e44b09156b057ca6c1a676a894744190 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 02:19:03 +0100 Subject: [PATCH 4/7] Added: publish profiles --- FizzyLauncher.csproj | 5 +++++ FizzyLauncher.csproj.user | 1 + Properties/PublishProfiles/Release x64.pubxml | 17 +++++++++++++++++ .../PublishProfiles/Release x64.pubxml.user | 9 +++++++++ Properties/PublishProfiles/Release x86.pubxml | 17 +++++++++++++++++ .../PublishProfiles/Release x86.pubxml.user | 9 +++++++++ 6 files changed, 58 insertions(+) create mode 100644 Properties/PublishProfiles/Release x64.pubxml create mode 100644 Properties/PublishProfiles/Release x64.pubxml.user create mode 100644 Properties/PublishProfiles/Release x86.pubxml create mode 100644 Properties/PublishProfiles/Release x86.pubxml.user diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj index 97db607..511af66 100644 --- a/FizzyLauncher.csproj +++ b/FizzyLauncher.csproj @@ -21,6 +21,11 @@ bin\Debug\ + + none + false + + diff --git a/FizzyLauncher.csproj.user b/FizzyLauncher.csproj.user index 3091f15..ff4db01 100644 --- a/FizzyLauncher.csproj.user +++ b/FizzyLauncher.csproj.user @@ -2,6 +2,7 @@ false + <_LastSelectedProfileId>L:\gitlab-hiimray\fizzy-launcher\Properties\PublishProfiles\Release x86.pubxml diff --git a/Properties/PublishProfiles/Release x64.pubxml b/Properties/PublishProfiles/Release x64.pubxml new file mode 100644 index 0000000..23a6044 --- /dev/null +++ b/Properties/PublishProfiles/Release x64.pubxml @@ -0,0 +1,17 @@ + + + + + Release + Any CPU + bin\Release\64\ + FileSystem + net5.0-windows + win-x64 + false + True + False + + \ No newline at end of file diff --git a/Properties/PublishProfiles/Release x64.pubxml.user b/Properties/PublishProfiles/Release x64.pubxml.user new file mode 100644 index 0000000..dfee95b --- /dev/null +++ b/Properties/PublishProfiles/Release x64.pubxml.user @@ -0,0 +1,9 @@ + + + + + True|2021-07-23T00:58:59.4046567Z; + + \ No newline at end of file diff --git a/Properties/PublishProfiles/Release x86.pubxml b/Properties/PublishProfiles/Release x86.pubxml new file mode 100644 index 0000000..56c7547 --- /dev/null +++ b/Properties/PublishProfiles/Release x86.pubxml @@ -0,0 +1,17 @@ + + + + + Release + Any CPU + bin\Release\86\ + FileSystem + net5.0-windows + win-x86 + false + True + False + + \ No newline at end of file diff --git a/Properties/PublishProfiles/Release x86.pubxml.user b/Properties/PublishProfiles/Release x86.pubxml.user new file mode 100644 index 0000000..a3ff1d7 --- /dev/null +++ b/Properties/PublishProfiles/Release x86.pubxml.user @@ -0,0 +1,9 @@ + + + + + True|2021-07-23T00:59:33.9680448Z;True|2021-07-23T01:52:28.5639205+01:00;True|2021-07-23T01:49:36.9865426+01:00;True|2021-07-23T01:48:31.0435665+01:00; + + \ No newline at end of file From e441034c9f8576bc75ec908a31c89fd88c40c6f4 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 02:29:34 +0100 Subject: [PATCH 5/7] Changed: re-enable hotkeys --- .gitignore | 3 + FizzyLauncher.csproj.user | 69 ------------------- MainForm.cs | 10 +-- .../PublishProfiles/Release x64.pubxml.user | 9 --- .../PublishProfiles/Release x86.pubxml.user | 9 --- 5 files changed, 8 insertions(+), 92 deletions(-) delete mode 100644 FizzyLauncher.csproj.user delete mode 100644 Properties/PublishProfiles/Release x64.pubxml.user delete mode 100644 Properties/PublishProfiles/Release x86.pubxml.user diff --git a/.gitignore b/.gitignore index 28bcb4a..30a047b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /.vs /bin /obj +*.user +*.pubxml.user +*.csproj.user diff --git a/FizzyLauncher.csproj.user b/FizzyLauncher.csproj.user deleted file mode 100644 index ff4db01..0000000 --- a/FizzyLauncher.csproj.user +++ /dev/null @@ -1,69 +0,0 @@ - - - - false - <_LastSelectedProfileId>L:\gitlab-hiimray\fizzy-launcher\Properties\PublishProfiles\Release x86.pubxml - - - - Form - - - UserControl - - - Component - - - UserControl - - - UserControl - - - UserControl - - - Form - - - UserControl - - - UserControl - - - UserControl - - - UserControl - - - UserControl - - - UserControl - - - UserControl - - - Form - - - Form - - - Form - - - Form - - - UserControl - - - UserControl - - - \ No newline at end of file diff --git a/MainForm.cs b/MainForm.cs index bd47082..1ddb62c 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -123,7 +123,7 @@ namespace FizzyLauncher { if (this.CurrentSession.HotKey.KeyCode != Keys.None) { - // UnregisterHotKey((IntPtr)Handle, 1); + UnregisterHotKey((IntPtr)Handle, 1); } } @@ -193,12 +193,12 @@ namespace FizzyLauncher { this.Invoke(new MethodInvoker(() => { - // UnregisterHotKey((IntPtr)Handle, 1); + UnregisterHotKey((IntPtr)Handle, 1); })); } else { - // UnregisterHotKey((IntPtr)Handle, 1); + UnregisterHotKey((IntPtr)Handle, 1); } if (this.CurrentSession.HotKey != null) @@ -209,12 +209,12 @@ namespace FizzyLauncher { this.Invoke(new MethodInvoker(() => { - // RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); + RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); })); } else { - // RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); + RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.HotKey.ModifierCode, this.CurrentSession.HotKey.Key); } } } diff --git a/Properties/PublishProfiles/Release x64.pubxml.user b/Properties/PublishProfiles/Release x64.pubxml.user deleted file mode 100644 index dfee95b..0000000 --- a/Properties/PublishProfiles/Release x64.pubxml.user +++ /dev/null @@ -1,9 +0,0 @@ - - - - - True|2021-07-23T00:58:59.4046567Z; - - \ No newline at end of file diff --git a/Properties/PublishProfiles/Release x86.pubxml.user b/Properties/PublishProfiles/Release x86.pubxml.user deleted file mode 100644 index a3ff1d7..0000000 --- a/Properties/PublishProfiles/Release x86.pubxml.user +++ /dev/null @@ -1,9 +0,0 @@ - - - - - True|2021-07-23T00:59:33.9680448Z;True|2021-07-23T01:52:28.5639205+01:00;True|2021-07-23T01:49:36.9865426+01:00;True|2021-07-23T01:48:31.0435665+01:00; - - \ No newline at end of file From 515b81920f04ff9aef3fa18842fec74658c634a3 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 13:27:15 +0100 Subject: [PATCH 6/7] Added: installer build scripts --- installer-64.iss | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ installer-86.iss | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 installer-64.iss create mode 100644 installer-86.iss diff --git a/installer-64.iss b/installer-64.iss new file mode 100644 index 0000000..0928c3f --- /dev/null +++ b/installer-64.iss @@ -0,0 +1,49 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "Fizzy Launcher" +#define MyAppVersion "0.2.1.055" +#define MyAppPublisher "Hi, I'm Ray" +#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher" +#define MyAppExeName "fizzylauncher.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{472ED37C-C4FC-4B72-8BC3-C281A6E0D2F9} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={autopf}\{#MyAppName} +DefaultGroupName={#MyAppName} +DisableProgramGroupPage=yes +; Remove the following line to run in administrative install mode (install for all users.) +PrivilegesRequired=lowest +OutputDir=L:\gitlab-hiimray\fizzy-launcher\bin +OutputBaseFilename=fizzy-launcher-64 +Compression=lzma +SolidCompression=yes +WizardStyle=modern + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\64\fizzylauncher.exe"; DestDir: "{app}"; Flags: ignoreversion +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/installer-86.iss b/installer-86.iss new file mode 100644 index 0000000..55499af --- /dev/null +++ b/installer-86.iss @@ -0,0 +1,49 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define MyAppName "Fizzy Launcher" +#define MyAppVersion "0.2.1.055" +#define MyAppPublisher "Hi, I'm Ray" +#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher" +#define MyAppExeName "fizzylauncher.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{472ED37C-C4FC-4B72-8BC3-C281A6E0D2F9} +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +AppPublisherURL={#MyAppURL} +AppSupportURL={#MyAppURL} +AppUpdatesURL={#MyAppURL} +DefaultDirName={autopf}\{#MyAppName} +DefaultGroupName={#MyAppName} +DisableProgramGroupPage=yes +; Remove the following line to run in administrative install mode (install for all users.) +PrivilegesRequired=lowest +OutputDir=L:\gitlab-hiimray\fizzy-launcher\bin +OutputBaseFilename=fizzy-launcher-86 +Compression=lzma +SolidCompression=yes +WizardStyle=modern + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\86\fizzylauncher.exe"; DestDir: "{app}"; Flags: ignoreversion +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + From dd32aee9d99385788f2d96a3eb73072ec58d435d Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 23 Jul 2021 14:38:07 +0100 Subject: [PATCH 7/7] Fixed: session file writing bad format --- MainForm.cs | 17 +++++++++++++++-- Models/TileGroupModel.cs | 9 ++++++++- Models/TileModel.cs | 12 +++++++++++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/MainForm.cs b/MainForm.cs index 1ddb62c..cd9b259 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -277,7 +277,16 @@ namespace FizzyLauncher options.Converters.Add(new JsonPointConverter()); options.Converters.Add(new JsonSizeConverter()); - this.CurrentSession = JsonSerializer.Deserialize(sourceCode, options); + try + { + this.CurrentSession = JsonSerializer.Deserialize(sourceCode, options); + } + catch (Exception exc) + { + MessageBox.Show("Unable to read session", "Load session"); + return; + } + if (this.CurrentSession == null) { this.CurrentSession = new LauncherSession(); @@ -361,9 +370,13 @@ namespace FizzyLauncher this.CurrentSession.Groups.Add(container.Model); } + var options = new JsonSerializerOptions(); + options.Converters.Add(new JsonPointConverter()); + options.Converters.Add(new JsonSizeConverter()); + try { - File.WriteAllText(filename, JsonSerializer.Serialize(this.CurrentSession)); + File.WriteAllText(filename, JsonSerializer.Serialize(this.CurrentSession, options)); if (showNotices) { diff --git a/Models/TileGroupModel.cs b/Models/TileGroupModel.cs index cdf04a6..6f69481 100644 --- a/Models/TileGroupModel.cs +++ b/Models/TileGroupModel.cs @@ -1,14 +1,21 @@ -using System.Collections.Generic; +using FizzyLauncher.Text.Json; +using System.Collections.Generic; using System.Drawing; +using System.Text.Json.Serialization; namespace FizzyLauncher.Models { public class TileGroupModel { public string Title { get; set; } + public bool IsExpanded { get; set; } = false; + public bool IsExclusive { get; set; } = false; + public List Items { get; set; } = new List(); + + [JsonConverter(typeof(JsonSizeConverter))] public Size GridSize { get; set; } = new Size(0, 0); } } \ No newline at end of file diff --git a/Models/TileModel.cs b/Models/TileModel.cs index 72f8411..9e47756 100644 --- a/Models/TileModel.cs +++ b/Models/TileModel.cs @@ -1,21 +1,31 @@ -using System; +using FizzyLauncher.Text.Json; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; +using System.Text.Json.Serialization; namespace FizzyLauncher.Models { public class TileModel { public string Title { get; set; } + public string ProcessFilename { get; set; } + public string ProcessArgument { get; set; } + public string ProcessWorkingDirectory { get; set; } + public ProcessWindowStyle ProcessWindowStyle { get; set; } = ProcessWindowStyle.Normal; + public bool ProcessAsAdmin { get; set; } = false; + + [JsonConverter(typeof(JsonPointConverter))] public Point Position { get; set; } public bool IsGroup { get; set; } = false; + public List Items { get; set; } = new List(); public override string ToString() => this.Title ?? string.Empty;