diff --git a/.gitignore b/.gitignore
index 7ca3e48..fb85c11 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@
/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
new file mode 100644
index 0000000..7334c5e
--- /dev/null
+++ b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
@@ -0,0 +1,248 @@
+
+
+
+
+ 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
+ Resources20.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
+ Resources20.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
new file mode 100644
index 0000000..c10e84b
--- /dev/null
+++ b/FizzyLauncher.UI/FizzyLauncher.UI.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ ProjectFiles
+
+
\ No newline at end of file
diff --git a/FizzyLauncher.UI/Properties/AssemblyInfo.cs b/FizzyLauncher.UI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0ec23d9
--- /dev/null
+++ b/FizzyLauncher.UI/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+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/Resource1.Designer.cs b/FizzyLauncher.UI/Properties/Resources16.Designer.cs
similarity index 72%
rename from Resource1.Designer.cs
rename to FizzyLauncher.UI/Properties/Resources16.Designer.cs
index 529722f..a48b080 100644
--- a/Resource1.Designer.cs
+++ b/FizzyLauncher.UI/Properties/Resources16.Designer.cs
@@ -8,7 +8,7 @@
//
//------------------------------------------------------------------------------
-namespace AppLauncher {
+namespace AppLauncher.Properties {
using System;
@@ -22,14 +22,14 @@ namespace AppLauncher {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resource1 {
+ 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 Resource1() {
+ internal Resources16() {
}
///
@@ -39,7 +39,7 @@ namespace AppLauncher {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Resource1", typeof(Resource1).Assembly);
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources16", typeof(Resources16).Assembly);
resourceMan = temp;
}
return resourceMan;
@@ -103,9 +103,9 @@ namespace AppLauncher {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- internal static System.Drawing.Bitmap close_16 {
+ internal static System.Drawing.Bitmap close {
get {
- object obj = ResourceManager.GetObject("close_16", resourceCulture);
+ object obj = ResourceManager.GetObject("close", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -113,29 +113,9 @@ namespace AppLauncher {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- internal static System.Drawing.Bitmap close_20 {
+ internal static System.Drawing.Bitmap close2 {
get {
- object obj = ResourceManager.GetObject("close_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap close2_16 {
- get {
- object obj = ResourceManager.GetObject("close2_16", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap close2_20 {
- get {
- object obj = ResourceManager.GetObject("close2_20", resourceCulture);
+ object obj = ResourceManager.GetObject("close2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -200,56 +180,6 @@ namespace AppLauncher {
}
}
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap maximise_20 {
- get {
- object obj = ResourceManager.GetObject("maximise_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap maximise2_20 {
- get {
- object obj = ResourceManager.GetObject("maximise2_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap maximise3_20 {
- get {
- object obj = ResourceManager.GetObject("maximise3_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap minimise_20 {
- get {
- object obj = ResourceManager.GetObject("minimise_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap minimise2_20 {
- get {
- object obj = ResourceManager.GetObject("minimise2_20", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
diff --git a/Resource1.resx b/FizzyLauncher.UI/Properties/Resources16.resx
similarity index 59%
rename from Resource1.resx
rename to FizzyLauncher.UI/Properties/Resources16.resx
index 236baac..78ba89b 100644
--- a/Resource1.resx
+++ b/FizzyLauncher.UI/Properties/Resources16.resx
@@ -119,72 +119,51 @@
- RyzStudio\Windows\Forms\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+ ..\Resources\16\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
- RyzStudio\Windows\Forms\Resources\arrow_down2.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
- RyzStudio\Windows\Forms\Resources\arrow_up.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
- RyzStudio\Windows\Forms\Resources\arrow_up2.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
-
- RyzStudio\Windows\Forms\Resources\close2_16.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
-
- RyzStudio\Windows\Forms\Resources\close2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\close_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\close_20.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
- RyzStudio\Windows\Forms\Resources\edit.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
- RyzStudio\Windows\Forms\Resources\edit2.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
- RyzStudio\Windows\Forms\Resources\file.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
- RyzStudio\Windows\Forms\Resources\file2.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
- RyzStudio\Windows\Forms\Resources\folder.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
- RyzStudio\Windows\Forms\Resources\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\maximise2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\maximise3_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\maximise_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\minimise2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
-
- RyzStudio\Windows\Forms\Resources\minimise_20.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
- RyzStudio\Windows\Forms\Resources\minus.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
- RyzStudio\Windows\Forms\Resources\minus2.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
- RyzStudio\Windows\Forms\Resources\plus.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
- RyzStudio\Windows\Forms\Resources\plus2.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/Properties/Resources20.Designer.cs b/FizzyLauncher.UI/Properties/Resources20.Designer.cs
new file mode 100644
index 0000000..017f654
--- /dev/null
+++ b/FizzyLauncher.UI/Properties/Resources20.Designer.cs
@@ -0,0 +1,183 @@
+//------------------------------------------------------------------------------
+//
+// 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 Resources20 {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources20() {
+ }
+
+ ///
+ /// 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.Resources20", typeof(Resources20).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 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 close3 {
+ get {
+ object obj = ResourceManager.GetObject("close3", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap empty {
+ get {
+ object obj = ResourceManager.GetObject("empty", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap empty2 {
+ get {
+ object obj = ResourceManager.GetObject("empty2", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap empty3 {
+ get {
+ object obj = ResourceManager.GetObject("empty3", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap maximise {
+ get {
+ object obj = ResourceManager.GetObject("maximise", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap maximise2 {
+ get {
+ object obj = ResourceManager.GetObject("maximise2", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap maximise3 {
+ get {
+ object obj = ResourceManager.GetObject("maximise3", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap minimise {
+ get {
+ object obj = ResourceManager.GetObject("minimise", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap minimise2 {
+ get {
+ object obj = ResourceManager.GetObject("minimise2", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap minimise3 {
+ get {
+ object obj = ResourceManager.GetObject("minimise3", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/RyzStudio/Windows/ThemedForms/TForm.resx b/FizzyLauncher.UI/Properties/Resources20.resx
similarity index 64%
rename from RyzStudio/Windows/ThemedForms/TForm.resx
rename to FizzyLauncher.UI/Properties/Resources20.resx
index 1af7de1..9a0d447 100644
--- a/RyzStudio/Windows/ThemedForms/TForm.resx
+++ b/FizzyLauncher.UI/Properties/Resources20.resx
@@ -117,4 +117,41 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\20\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\close3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\empty2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\empty3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\maximise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\maximise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\maximise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\minimise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\minimise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\20\minimise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/RyzStudio/Windows/Forms/Resources/arrow_down.png b/FizzyLauncher.UI/Resources/16/arrow_down.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/arrow_down.png
rename to FizzyLauncher.UI/Resources/16/arrow_down.png
diff --git a/RyzStudio/Windows/Forms/Resources/arrow_down2.png b/FizzyLauncher.UI/Resources/16/arrow_down2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/arrow_down2.png
rename to FizzyLauncher.UI/Resources/16/arrow_down2.png
diff --git a/RyzStudio/Windows/Forms/Resources/arrow_up.png b/FizzyLauncher.UI/Resources/16/arrow_up.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/arrow_up.png
rename to FizzyLauncher.UI/Resources/16/arrow_up.png
diff --git a/RyzStudio/Windows/Forms/Resources/arrow_up2.png b/FizzyLauncher.UI/Resources/16/arrow_up2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/arrow_up2.png
rename to FizzyLauncher.UI/Resources/16/arrow_up2.png
diff --git a/RyzStudio/Windows/Forms/Resources/close_16.png b/FizzyLauncher.UI/Resources/16/close.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/close_16.png
rename to FizzyLauncher.UI/Resources/16/close.png
diff --git a/RyzStudio/Windows/Forms/Resources/close2_16.png b/FizzyLauncher.UI/Resources/16/close2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/close2_16.png
rename to FizzyLauncher.UI/Resources/16/close2.png
diff --git a/RyzStudio/Windows/Forms/Resources/edit.png b/FizzyLauncher.UI/Resources/16/edit.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/edit.png
rename to FizzyLauncher.UI/Resources/16/edit.png
diff --git a/RyzStudio/Windows/Forms/Resources/edit2.png b/FizzyLauncher.UI/Resources/16/edit2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/edit2.png
rename to FizzyLauncher.UI/Resources/16/edit2.png
diff --git a/RyzStudio/Windows/Forms/Resources/file.png b/FizzyLauncher.UI/Resources/16/file.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/file.png
rename to FizzyLauncher.UI/Resources/16/file.png
diff --git a/RyzStudio/Windows/Forms/Resources/file2.png b/FizzyLauncher.UI/Resources/16/file2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/file2.png
rename to FizzyLauncher.UI/Resources/16/file2.png
diff --git a/RyzStudio/Windows/Forms/Resources/folder.png b/FizzyLauncher.UI/Resources/16/folder.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/folder.png
rename to FizzyLauncher.UI/Resources/16/folder.png
diff --git a/RyzStudio/Windows/Forms/Resources/folder2.png b/FizzyLauncher.UI/Resources/16/folder2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/folder2.png
rename to FizzyLauncher.UI/Resources/16/folder2.png
diff --git a/RyzStudio/Windows/Forms/Resources/minus.png b/FizzyLauncher.UI/Resources/16/minus.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/minus.png
rename to FizzyLauncher.UI/Resources/16/minus.png
diff --git a/RyzStudio/Windows/Forms/Resources/minus2.png b/FizzyLauncher.UI/Resources/16/minus2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/minus2.png
rename to FizzyLauncher.UI/Resources/16/minus2.png
diff --git a/RyzStudio/Windows/Forms/Resources/plus.png b/FizzyLauncher.UI/Resources/16/plus.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/plus.png
rename to FizzyLauncher.UI/Resources/16/plus.png
diff --git a/RyzStudio/Windows/Forms/Resources/plus2.png b/FizzyLauncher.UI/Resources/16/plus2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/plus2.png
rename to FizzyLauncher.UI/Resources/16/plus2.png
diff --git a/FizzyLauncher.UI/Resources/20/close.png b/FizzyLauncher.UI/Resources/20/close.png
new file mode 100644
index 0000000..fb4f049
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/close.png differ
diff --git a/FizzyLauncher.UI/Resources/20/close2.png b/FizzyLauncher.UI/Resources/20/close2.png
new file mode 100644
index 0000000..e2a3277
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/close2.png differ
diff --git a/RyzStudio/Windows/Forms/Resources/close2_20.png b/FizzyLauncher.UI/Resources/20/close3.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/close2_20.png
rename to FizzyLauncher.UI/Resources/20/close3.png
diff --git a/FizzyLauncher.UI/Resources/20/empty.png b/FizzyLauncher.UI/Resources/20/empty.png
new file mode 100644
index 0000000..8b7e377
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/empty.png differ
diff --git a/FizzyLauncher.UI/Resources/20/empty2.png b/FizzyLauncher.UI/Resources/20/empty2.png
new file mode 100644
index 0000000..61de605
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/empty2.png differ
diff --git a/FizzyLauncher.UI/Resources/20/empty3.png b/FizzyLauncher.UI/Resources/20/empty3.png
new file mode 100644
index 0000000..b98cb46
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/empty3.png differ
diff --git a/FizzyLauncher.UI/Resources/20/maximise.png b/FizzyLauncher.UI/Resources/20/maximise.png
new file mode 100644
index 0000000..b2e90e2
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/maximise.png differ
diff --git a/FizzyLauncher.UI/Resources/20/maximise2.png b/FizzyLauncher.UI/Resources/20/maximise2.png
new file mode 100644
index 0000000..4c4c813
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/maximise2.png differ
diff --git a/RyzStudio/Windows/Forms/Resources/maximise3_20.png b/FizzyLauncher.UI/Resources/20/maximise3.png
similarity index 79%
rename from RyzStudio/Windows/Forms/Resources/maximise3_20.png
rename to FizzyLauncher.UI/Resources/20/maximise3.png
index fa1dcec..77ae4ee 100644
Binary files a/RyzStudio/Windows/Forms/Resources/maximise3_20.png and b/FizzyLauncher.UI/Resources/20/maximise3.png differ
diff --git a/FizzyLauncher.UI/Resources/20/minimise.png b/FizzyLauncher.UI/Resources/20/minimise.png
new file mode 100644
index 0000000..338d63d
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/minimise.png differ
diff --git a/FizzyLauncher.UI/Resources/20/minimise2.png b/FizzyLauncher.UI/Resources/20/minimise2.png
new file mode 100644
index 0000000..f7b44a8
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/minimise2.png differ
diff --git a/FizzyLauncher.UI/Resources/20/minimise3.png b/FizzyLauncher.UI/Resources/20/minimise3.png
new file mode 100644
index 0000000..2174ece
Binary files /dev/null and b/FizzyLauncher.UI/Resources/20/minimise3.png differ
diff --git a/RyzStudio/Data/SQLite/SQLiteDatabase.cs b/FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs
similarity index 100%
rename from RyzStudio/Data/SQLite/SQLiteDatabase.cs
rename to FizzyLauncher.UI/RyzStudio/Data/SQLite/SQLiteDatabase.cs
diff --git a/RyzStudio/Drawing/Rectangoid.cs b/FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs
similarity index 100%
rename from RyzStudio/Drawing/Rectangoid.cs
rename to FizzyLauncher.UI/RyzStudio/Drawing/Rectangoid.cs
diff --git a/RyzStudio/IO/FileType.cs b/FizzyLauncher.UI/RyzStudio/IO/FileType.cs
similarity index 100%
rename from RyzStudio/IO/FileType.cs
rename to FizzyLauncher.UI/RyzStudio/IO/FileType.cs
diff --git a/RyzStudio/IO/SessionFileFormatBase.cs b/FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs
similarity index 100%
rename from RyzStudio/IO/SessionFileFormatBase.cs
rename to FizzyLauncher.UI/RyzStudio/IO/SessionFileFormatBase.cs
diff --git a/RyzStudio/IO/SharpZipLib.cs b/FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs
similarity index 100%
rename from RyzStudio/IO/SharpZipLib.cs
rename to FizzyLauncher.UI/RyzStudio/IO/SharpZipLib.cs
diff --git a/RyzStudio/Net/HttpWeb.cs b/FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs
similarity index 100%
rename from RyzStudio/Net/HttpWeb.cs
rename to FizzyLauncher.UI/RyzStudio/Net/HttpWeb.cs
diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs
new file mode 100644
index 0000000..c6755c8
--- /dev/null
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.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 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/RyzStudio/Windows/Forms/StackLayoutPanel.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/StackLayoutPanel.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/StackLayoutPanel.cs
diff --git a/RyzStudio/Windows/Forms/TFlatButton.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/TFlatButton.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/TFlatButton.cs
diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
new file mode 100644
index 0000000..4e22e8e
--- /dev/null
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -0,0 +1,472 @@
+using RyzStudio.Windows.Forms;
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+using Resources = AppLauncher.Properties.Resources20;
+
+namespace AppLauncher.Windows.Forms
+{
+ public class TForm : Form
+ {
+ protected readonly Color borderColour = Color.FromArgb(235, 234, 233);
+ protected readonly int borderWidth = 1;
+
+ protected readonly int resizeBorderWidth = 3;
+
+ protected readonly Color backColour = Color.FromArgb(255, 255, 255);
+
+ 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 = 54;
+ protected Font titleFont = null;
+ protected int titleFontTop = 0;
+
+ protected readonly int titleBarIconSize = 20;
+ protected readonly int titleBarIconMargin = 8;
+
+ protected bool isDragging = false;
+ protected Point startPosition = new Point();
+ protected Point startWindowSize = new Point();
+
+ protected bool isBusy = false;
+
+ protected Image appIcon = null;
+ protected int appIconTop = 0;
+
+ protected bool isMinimiseEnabled = true;
+ protected bool isMaximiseEnabled = true;
+ protected bool closeOnMinimise = false;
+ protected bool enableMinimiseMenu = true;
+ protected bool enableMaximiseMenu = true;
+ protected bool enableCloseMenu = true;
+
+ protected MouseEventHandler minimiseMenuEvent = null;
+ protected MouseEventHandler maximiseMenuEvent = null;
+ protected MouseEventHandler closeMenuEvent = null;
+
+ 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);
+ g.DrawLine(new Pen(titleBorderColour, 1), area.X, (titleBarHeight + 1), (area.Width + area.X), (titleBarHeight + 1));
+
+ if (!DesignMode)
+ {
+ //g.DrawImageUnscaled(appIcon, 17, appIconTop);
+ g.DrawImage(appIcon, 17, appIconTop, appIcon.Width, appIcon.Height);
+
+ TextRenderer.DrawText(g, this.Text, titleFont, new Point(58, 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 = 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")]
+ 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 = "Form";
+ 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();
+ if (enableCloseMenu)
+ {
+ closeBox.Image = closeBox.ImageNormal = Resources.close;
+ closeBox.ImageHover = Resources.close3;
+ //closeBox.ImageSelected = null;
+ closeBox.MouseClick += delegate (object sender, MouseEventArgs e)
+ {
+ if (e.Button != MouseButtons.Left) return;
+
+ if (closeMenuEvent != null)
+ {
+ closeMenuEvent(sender, e);
+ return;
+ }
+
+ this.Close();
+ };
+ }
+ else
+ {
+ closeBox.Image = closeBox.ImageNormal = closeBox.ImageHover = closeBox.ImageSelected = Resources.close;
+ }
+
+ closeBox.Left = this.DisplayRectangle.Width - closeBox.Width - 17;
+
+ this.Controls.Add(closeBox);
+
+ // maximise
+ TImageBox maximiseBox = generateToolbarImageBox();
+ if (enableMaximiseMenu)
+ {
+ maximiseBox.Image = maximiseBox.ImageNormal = (isMaximiseEnabled) ? Resources.maximise : Resources.empty;
+ maximiseBox.ImageHover = (isMaximiseEnabled) ? Resources.maximise2 : Resources.empty;
+ maximiseBox.ImageSelected = Resources.maximise3;
+ maximiseBox.MouseClick += delegate (object sender, MouseEventArgs e)
+ {
+ if (!(sender is TImageBox)) return;
+
+ TImageBox imageBox2 = (sender as TImageBox);
+
+ if (imageBox2 == null) return;
+
+ if (maximiseMenuEvent != null)
+ {
+ maximiseMenuEvent(sender, e);
+ return;
+ }
+
+ if (e.Button == MouseButtons.Left)
+ {
+ if (isMaximiseEnabled)
+ {
+ if (this.WindowState == FormWindowState.Maximized)
+ {
+ this.WindowState = FormWindowState.Normal;
+ imageBox2.Image = imageBox2.ImageNormal = Resources.maximise;
+ }
+ else
+ {
+ this.WindowState = FormWindowState.Maximized;
+ imageBox2.Image = imageBox2.ImageNormal = Resources.maximise2;
+ }
+ }
+ }
+ else if (e.Button == MouseButtons.Right)
+ {
+ this.TopMost = !this.TopMost;
+
+ if (this.TopMost)
+ {
+ imageBox2.Image = imageBox2.ImageNormal = Resources.maximise3;
+ imageBox2.ImageHover = (isMaximiseEnabled) ? Resources.maximise2 : Resources.maximise3;
+ }
+ else
+ {
+ imageBox2.Image = imageBox2.ImageNormal = (isMaximiseEnabled) ? Resources.maximise : Resources.empty;
+ imageBox2.ImageHover = (isMaximiseEnabled) ? Resources.maximise2 : Resources.empty;
+ }
+ }
+ };
+ }
+ else
+ {
+ maximiseBox.Image = maximiseBox.ImageNormal = maximiseBox.ImageHover = maximiseBox.ImageSelected = Resources.maximise;
+ }
+
+ maximiseBox.Left = closeBox.Left - maximiseBox.Width - titleBarIconMargin;
+
+ this.Controls.Add(maximiseBox);
+
+ // minimise
+ TImageBox minimiseBox = generateToolbarImageBox();
+ if (enableMinimiseMenu)
+ {
+ minimiseBox.Image = minimiseBox.ImageNormal = (isMinimiseEnabled) ? Resources.minimise : Resources.empty;
+ minimiseBox.ImageHover = (isMinimiseEnabled) ? Resources.minimise2 : Resources.empty;
+ //minimiseBox.ImageSelected = null;
+ minimiseBox.MouseClick += delegate (object sender, MouseEventArgs e)
+ {
+ if (!isMinimiseEnabled) return;
+ if (e.Button != MouseButtons.Left) return;
+
+ if (minimiseMenuEvent != null)
+ {
+ minimiseMenuEvent(sender, e);
+ return;
+ }
+
+ if (closeOnMinimise)
+ {
+ this.Close();
+ }
+ else
+ {
+ this.WindowState = FormWindowState.Minimized;
+ }
+ };
+ }
+ else
+ {
+ minimiseBox.Image = minimiseBox.ImageNormal = minimiseBox.ImageHover = minimiseBox.ImageSelected = Resources.minimise;
+ }
+
+ 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.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 = new System.Drawing.Size(titleBarIconSize, 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) / 2);
+ imageBox.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
+
+ 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/Windows/Forms/AForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx
similarity index 100%
rename from Windows/Forms/AForm.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx
diff --git a/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs
diff --git a/RyzStudio/Windows/Forms/THorizontalSeparator.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/THorizontalSeparator.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/THorizontalSeparator.cs
diff --git a/RyzStudio/Windows/Forms/TImageBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/TImageBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/TImageBox.cs
diff --git a/Windows/Forms/AUserControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs
similarity index 95%
rename from Windows/Forms/AUserControl.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs
index fef5b7a..8bb38d6 100644
--- a/Windows/Forms/AUserControl.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs
@@ -2,12 +2,12 @@
using System.Drawing;
using System.Windows.Forms;
-namespace AppLauncher.Windows.Forms
+namespace RyzStudio.Windows.Forms
{
- public class AUserControl : UserControl
+ public class TUserControl : System.Windows.Forms.UserControl
{
- public AUserControl() : base()
+ public TUserControl() : base()
{
}
@@ -36,7 +36,6 @@ namespace AppLauncher.Windows.Forms
[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; }
@@ -49,7 +48,6 @@ namespace AppLauncher.Windows.Forms
[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; }
diff --git a/RyzStudio/Windows/Forms/ThreadControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs
similarity index 100%
rename from RyzStudio/Windows/Forms/ThreadControl.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/ThreadControl.cs
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.Designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.cs
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessForm.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessForm.resx
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.Designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.cs
diff --git a/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/BorderlessToolForm.resx
diff --git a/RyzStudio/Windows/ThemedForms/TButton.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButton.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.cs
diff --git a/RyzStudio/Windows/ThemedForms/TButton.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButton.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TButton.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButton.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButton.resx
diff --git a/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButtonTextBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.cs
diff --git a/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TButtonTextBox.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TButtonTextBox.resx
diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
similarity index 95%
rename from RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
index a2f2043..5ee7579 100644
--- a/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
@@ -50,12 +50,12 @@
this.imgbxClose.BackColor = System.Drawing.Color.Transparent;
this.imgbxClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imgbxClose.ErrorImage = null;
- this.imgbxClose.ImageHover = global::AppLauncher.Resource1.close2_16;
+ 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.Resource1.close_16;
+ 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;
diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
similarity index 94%
rename from RyzStudio/Windows/ThemedForms/TDialogForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
index f6d451e..d85c999 100644
--- a/RyzStudio/Windows/ThemedForms/TDialogForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
@@ -3,15 +3,15 @@
using System;
using System.ComponentModel;
using System.Drawing;
- using System.Drawing.Design;
using System.Windows.Forms;
- using Resources = AppLauncher.Properties.Resources;
public partial class TDialogForm : System.Windows.Forms.Form
{
- //protected readonly Color borderColour = Color.FromArgb(232, 231, 236);
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);
@@ -31,6 +31,9 @@
this.TopMost = true;
imgbxClose.Click += pictureBox3_Click;
+
+ this.BackColor = backColour;
+ this.Padding = new Padding(0);
}
protected override void OnClosing(CancelEventArgs e)
@@ -101,7 +104,7 @@
}
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
- public override Color BackColor { get => base.BackColor; set => base.BackColor = Color.FromArgb(254, 254, 254); }
+ 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; }
diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TDialogForm.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.resx
diff --git a/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
similarity index 87%
rename from RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
index 1327b26..0c2b9ae 100644
--- a/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Windows.Forms;
+using Resources = AppLauncher.Properties.Resources16;
namespace RyzStudio.Windows.ThemedForms
{
@@ -8,8 +9,8 @@ namespace RyzStudio.Windows.ThemedForms
{
public TFolderTextBox() : base()
{
- this.NormalImage = AppLauncher.Resource1.folder;
- this.HighlightImage = AppLauncher.Resource1.folder2;
+ this.NormalImage = Resources.folder;
+ this.HighlightImage = Resources.folder2;
this.Text = string.Empty;
}
diff --git a/RyzStudio/Windows/ThemedForms/TListBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TListBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.cs
diff --git a/RyzStudio/Windows/ThemedForms/TListBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs
similarity index 87%
rename from RyzStudio/Windows/ThemedForms/TListBox.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs
index 758ed83..81bff0f 100644
--- a/RyzStudio/Windows/ThemedForms/TListBox.designer.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs
@@ -60,12 +60,12 @@
this.imageBox5.BackColor = System.Drawing.Color.Transparent;
this.imageBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imageBox5.ErrorImage = null;
- this.imageBox5.ImageHover = global::AppLauncher.Resource1.edit2;
- this.imageBox5.Image = global::AppLauncher.Resource1.edit;
+ 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.Resource1.edit;
+ 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;
@@ -79,12 +79,12 @@
this.imageBox4.BackColor = System.Drawing.Color.Transparent;
this.imageBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imageBox4.ErrorImage = null;
- this.imageBox4.ImageHover = global::AppLauncher.Resource1.arrow_down2;
- this.imageBox4.Image = global::AppLauncher.Resource1.arrow_down;
+ 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.Resource1.arrow_down;
+ 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;
@@ -98,12 +98,12 @@
this.imageBox3.BackColor = System.Drawing.Color.Transparent;
this.imageBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imageBox3.ErrorImage = null;
- this.imageBox3.ImageHover = global::AppLauncher.Resource1.arrow_up2;
- this.imageBox3.Image = global::AppLauncher.Resource1.arrow_up;
+ 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.Resource1.arrow_up;
+ 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;
@@ -117,12 +117,12 @@
this.imageBox2.BackColor = System.Drawing.Color.Transparent;
this.imageBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imageBox2.ErrorImage = null;
- this.imageBox2.ImageHover = global::AppLauncher.Resource1.minus2;
- this.imageBox2.Image = global::AppLauncher.Resource1.minus;
+ 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.Resource1.minus;
+ 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;
@@ -136,12 +136,12 @@
this.imageBox1.BackColor = System.Drawing.Color.Transparent;
this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.imageBox1.ErrorImage = null;
- this.imageBox1.ImageHover = global::AppLauncher.Resource1.plus2;
- this.imageBox1.Image = global::AppLauncher.Resource1.plus;
+ 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.Resource1.plus;
+ 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;
diff --git a/RyzStudio/Windows/ThemedForms/TListBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TListBox.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.resx
diff --git a/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
similarity index 87%
rename from RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
index 12bfa8b..16a0d11 100644
--- a/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Windows.Forms;
+using Resources = AppLauncher.Properties.Resources16;
namespace RyzStudio.Windows.ThemedForms
{
@@ -8,8 +9,8 @@ namespace RyzStudio.Windows.ThemedForms
{
public TOpenFileTextBox() : base()
{
- this.NormalImage = AppLauncher.Resource1.file;
- this.HighlightImage = AppLauncher.Resource1.file2;
+ this.NormalImage = Resources.file;
+ this.HighlightImage = Resources.file2;
this.Text = string.Empty;
}
diff --git a/RyzStudio/Windows/ThemedForms/TPickerBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TPickerBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.cs
diff --git a/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TPickerBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TPickerBox.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TPickerBox.resx
diff --git a/RyzStudio/Windows/ThemedForms/TTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TTextBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.cs
diff --git a/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TTextBox.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TTextBox.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TTextBox.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TTextBox.resx
diff --git a/RyzStudio/Windows/ThemedForms/TUserControl.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TUserControl.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.cs
diff --git a/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TUserControl.designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TUserControl.designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TYesNoPickerBox.cs
diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj
index f39eacc..0ccca88 100644
--- a/FizzyLauncher.csproj
+++ b/FizzyLauncher.csproj
@@ -73,76 +73,6 @@
True
Resources.resx
-
- True
- True
- Resource1.resx
-
-
-
- Component
-
-
- UserControl
-
-
- THorizontalSeparator.cs
-
-
-
- Component
-
-
- UserControl
-
-
- TButton.cs
-
-
- Form
-
-
- TDialogForm.cs
-
-
- UserControl
-
-
- TListBox.cs
-
-
- UserControl
-
-
- UserControl
-
-
- UserControl
-
-
- TPickerBox.cs
-
-
- UserControl
-
-
- TTextBox.cs
-
-
- UserControl
-
-
- TButtonTextBox.cs
-
-
- UserControl
-
-
- TUserControl.cs
-
-
- UserControl
-
Form
@@ -161,12 +91,6 @@
Form
-
- Form
-
-
- UserControl
-
UserControl
@@ -186,31 +110,6 @@
ResXFileCodeGenerator
Resources.Designer.cs
-
- ResXFileCodeGenerator
- Resource1.Designer.cs
-
-
- TButton.cs
-
-
- TDialogForm.cs
-
-
- TListBox.cs
-
-
- TPickerBox.cs
-
-
- TTextBox.cs
-
-
- TButtonTextBox.cs
-
-
- AForm.cs
-
AddTileForm.cs
@@ -260,7 +159,14 @@
-
+
+
+
+ {d9a49347-583f-41b4-afe1-63ec80bbdb38}
+ FizzyLauncher.UI
+
+
+
\ No newline at end of file
diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs
index e535976..8a17426 100644
--- a/MainForm.Designer.cs
+++ b/MainForm.Designer.cs
@@ -47,35 +47,18 @@
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.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
- this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit();
+ 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.contextMenuStrip1.SuspendLayout();
+ this.contextMenuStrip2.SuspendLayout();
this.SuspendLayout();
//
- // imageBox3
- //
- this.imageBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.imageBox3.Image = ((System.Drawing.Image)(resources.GetObject("imageBox3.Image")));
- this.imageBox3.Location = new System.Drawing.Point(-71, 18);
- //
- // imageBox2
- //
- this.imageBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.imageBox2.Image = ((System.Drawing.Image)(resources.GetObject("imageBox2.Image")));
- this.imageBox2.Location = new System.Drawing.Point(-99, 18);
- //
- // imageBox1
- //
- this.imageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.imageBox1.Image = ((System.Drawing.Image)(resources.GetObject("imageBox1.Image")));
- this.imageBox1.Location = new System.Drawing.Point(-127, 18);
- //
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -84,7 +67,7 @@
this.toolStripMenuItem9,
this.helpToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
- this.contextMenuStrip1.Size = new System.Drawing.Size(181, 114);
+ this.contextMenuStrip1.Size = new System.Drawing.Size(102, 92);
this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip1_Opening);
//
// toolStripMenuItem4
@@ -100,7 +83,7 @@
this.toolStripMenuItem10,
this.exitToolStripMenuItem});
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
- this.toolStripMenuItem4.Size = new System.Drawing.Size(180, 22);
+ this.toolStripMenuItem4.Size = new System.Drawing.Size(101, 22);
this.toolStripMenuItem4.Text = "&File";
//
// toolStripMenuItem5
@@ -165,7 +148,7 @@
this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem1});
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22);
+ this.toolStripMenuItem3.Size = new System.Drawing.Size(101, 22);
this.toolStripMenuItem3.Text = "&View";
//
// toolStripMenuItem1
@@ -180,7 +163,7 @@
this.toolStripMenuItem9.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.optionToolStripMenuItem});
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
- this.toolStripMenuItem9.Size = new System.Drawing.Size(180, 22);
+ this.toolStripMenuItem9.Size = new System.Drawing.Size(101, 22);
this.toolStripMenuItem9.Text = "&Tools";
//
// optionToolStripMenuItem
@@ -197,20 +180,25 @@
this.toolStripSeparator1,
this.aboutToolStripMenuItem});
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
- this.helpToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ 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(180, 22);
+ 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(180, 22);
+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(127, 22);
this.aboutToolStripMenuItem.Text = "&About";
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
//
@@ -239,10 +227,27 @@
this.openFileDialog1.Filter = "Session files|*.jsonfig";
this.openFileDialog1.Title = "Choose session file";
//
- // toolStripSeparator1
+ // notifyIcon1
//
- this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
+ 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(181, 48);
+ //
+ // exitToolStripMenuItem1
+ //
+ this.exitToolStripMenuItem1.Name = "exitToolStripMenuItem1";
+ this.exitToolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
+ this.exitToolStripMenuItem1.Text = "E&xit";
+ this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click);
//
// MainForm
//
@@ -252,20 +257,13 @@
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.ClientSize = new System.Drawing.Size(633, 400);
this.Controls.Add(this.flowLayoutPanel1);
- this.DoubleBuffered = true;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MinimumSize = new System.Drawing.Size(633, 280);
this.Name = "MainForm";
this.Text = "Launcher";
this.TitleContextMenuStrip = this.contextMenuStrip1;
- this.Controls.SetChildIndex(this.flowLayoutPanel1, 0);
- this.Controls.SetChildIndex(this.imageBox3, 0);
- this.Controls.SetChildIndex(this.imageBox2, 0);
- this.Controls.SetChildIndex(this.imageBox1, 0);
- ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit();
this.contextMenuStrip1.ResumeLayout(false);
+ this.contextMenuStrip2.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -293,6 +291,9 @@
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;
}
}
diff --git a/MainForm.cs b/MainForm.cs
index da19af2..01a34f2 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace AppLauncher
{
- public partial class MainForm : AForm
+ public partial class MainForm : TForm
{
[DllImport("user32.dll")]
protected static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
@@ -29,12 +29,19 @@ namespace AppLauncher
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_32;
+ enableMaximiseMenu = false;
+ closeOnMinimise = true;
}
protected override void OnLoad(EventArgs e)
@@ -66,6 +73,15 @@ namespace AppLauncher
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
@@ -125,11 +141,6 @@ namespace AppLauncher
public LauncherSession CurrentSession { get; set; } = null;
- ///
- /// New
- ///
- ///
- ///
private void toolStripMenuItem5_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -162,11 +173,6 @@ namespace AppLauncher
}
}
- ///
- /// Open
- ///
- ///
- ///
private async void toolStripMenuItem7_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -204,11 +210,6 @@ namespace AppLauncher
}
}
- ///
- /// Close
- ///
- ///
- ///
private void toolStripMenuItem8_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -241,11 +242,6 @@ namespace AppLauncher
}
}
- ///
- /// Save
- ///
- ///
- ///
private void toolStripMenuItem6_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -258,26 +254,15 @@ namespace AppLauncher
}
}
- ///
- /// Save As
- ///
- ///
- ///
private void toolStripMenuItem2_Click(object sender, EventArgs e) => saveAsFile();
- ///
- /// Always On Top
- ///
- ///
- ///
private void toolStripMenuItem1_Click(object sender, EventArgs e) => this.TopMost = !this.TopMost;
- ///
- /// Exit
- ///
- ///
- ///
- private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close();
+ private void exitToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ requestExit = true;
+ this.Close();
+ }
private void optionToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -287,28 +272,6 @@ namespace AppLauncher
invalidateHotKey();
}
- protected override void imageBox3_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- if (this.CurrentSession == null)
- {
- this.Close();
- }
- else
- {
- if (this.CurrentSession.HideOnClose)
- {
- this.Visible = !this.Visible;
- }
- else
- {
- this.Close();
- }
- }
- }
- }
-
protected async Task collapseWindow(int width, int increment = 6)
{
await Task.Run(() =>
@@ -576,5 +539,19 @@ namespace AppLauncher
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();
+ }
+
}
}
diff --git a/MainForm.resx b/MainForm.resx
index 98f90b3..12b1ad5 100644
--- a/MainForm.resx
+++ b/MainForm.resx
@@ -117,36 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD9SURBVDhP1ZVN
- CsIwEIWz0hMoehX1fv4s3Ui1ScTlpHXpBdyJKwsKuq7XqJl0HLREobEbHzx4mUk+WhqmYj7ftVc6mcXa
- 3GNliiCXZ6cA0BIO5tsU5ol4PtlSmYEIVLxOhwTMBYWCesFizv8CbW1vfVxstl0qCcxYwx6VWMhAfwRK
- BYeyBxmCShhkWMMebWMxh0NFSkFnpcypBJhrrJIz5YvW0KNtLOZw8MhBJTiQszQ3HwzFHA4eVYFSwi2K
- 0j6138QcDhV9e2UflDkcKmr8o9has9emrv4J+BysdgRRr7bsdRoR0I2vKS1+ttTJ2P0C7AKh+WuzpvHs
- BABaDyfvLuW63njGAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACTSURBVDhPY5g0
- aRv77PlruubMX/1szrzV/8nCEL2dq1atYmMAG4ZNEXm4gwHmslnzVlsxkAnmLFhrDTXwKQOU8R8qRzaA
- m0MXA4H8wzBxPPgwVDkYwMTpYyA5YNTAUQPJAEPJQFjBCiyCoHIkg7lzV9lADQQXX51QDsV47vw17eAq
- AMgBGfoUWZJEDNLbsWrVKjYA+HjZeiQ05EUAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACTSURBVDhPY5g0
- aRv77PlruubMX/1szrzV/8nCEL2dq1atYmMAG4ZNEXm4gwHmslnzVlsxkAnmLFhrDTXwKQOU8R8qRzaA
- mzNqINlg1MChZiCQfxgmjgcfhioHA5g4fQwkB9DQQFjBCiyCoHIkg7lzV9lADQQXX51QDsV47vw17eAq
- AMgBGfoUWZJEDNLbsWrVKjYA+QjZeove9ZMAAAAASUVORK5CYII=
-
-
17, 17
@@ -156,6 +126,310 @@
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
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index 735590f..5fb28ec 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("0.1.1.113")]
+[assembly: AssemblyFileVersion("0.1.1.144")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
index ef64037..1ebeada 100644
--- a/Properties/Resources.Designer.cs
+++ b/Properties/Resources.Designer.cs
@@ -19,7 +19,7 @@ namespace AppLauncher.Properties {
// 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", "15.0.0.0")]
+ [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 {
@@ -63,9 +63,9 @@ namespace AppLauncher.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- internal static System.Drawing.Bitmap app_icon_24 {
+ internal static System.Drawing.Bitmap app_icon_32 {
get {
- object obj = ResourceManager.GetObject("app_icon_24", resourceCulture);
+ object obj = ResourceManager.GetObject("app_icon_32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
index c4c3cc9..750ed54 100644
--- a/Properties/Resources.resx
+++ b/Properties/Resources.resx
@@ -118,8 +118,8 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Resources\app_icon_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\app_icon_32.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
diff --git a/Resources/app_icon_32.png b/Resources/app_icon_32.png
new file mode 100644
index 0000000..51e5f0d
Binary files /dev/null and b/Resources/app_icon_32.png differ
diff --git a/RyzStudio/Windows/Forms/PanelBook.Designer.cs b/RyzStudio/Windows/Forms/PanelBook.Designer.cs
deleted file mode 100644
index 576b43a..0000000
--- a/RyzStudio/Windows/Forms/PanelBook.Designer.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-namespace RyzStudio.Windows.Forms
-{
- partial class PanelBook
- {
- ///
- /// 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/PanelBook.cs b/RyzStudio/Windows/Forms/PanelBook.cs
deleted file mode 100644
index 190ec28..0000000
--- a/RyzStudio/Windows/Forms/PanelBook.cs
+++ /dev/null
@@ -1,159 +0,0 @@
-namespace RyzStudio.Windows.Forms
-{
- using System;
- using System.ComponentModel;
- using System.Windows.Forms;
-
- [ToolboxItem(true)]
- public partial class PanelBook : UserControl
- {
- protected PanelCollection panelCollection = null;
-
- public PanelBook()
- {
- InitializeComponent();
-
- panelCollection = new PanelCollection(this);
-
- }
-
- public Panel ActivePanel { get; set; } = null;
-
- [Category("Collection")]
- [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
- public PanelCollection Pages
- {
- get { return panelCollection; }
- }
-
- [Category("Collection")]
- public int SelectedIndex
- {
- get
- {
- if (panelCollection.Count <= 0)
- {
- return -1;
- }
-
- return 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;
- }
-
- ActivatePanel(value);
- }
- }
-
- protected internal int PageIndex
- {
- get
- {
- return panelCollection.IndexOf(this.ActivePanel);
- }
- set
- {
- if (panelCollection.Count <= 0)
- {
- ActivatePanel(-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));
- }
-
- ActivatePanel(value);
- }
- }
-
- protected internal void ActivatePanel(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)
- {
- 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);
- }
-
- this.ActivePanel.Dock = DockStyle.Fill;
- this.ActivePanel.Visible = true;
- this.ActivePanel.BringToFront();
- }
-
- if (this.ActivePanel != null)
- {
- 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();
- }
- }
-
-
- }
-}
diff --git a/RyzStudio/Windows/Forms/PanelCollection.cs b/RyzStudio/Windows/Forms/PanelCollection.cs
deleted file mode 100644
index af9838b..0000000
--- a/RyzStudio/Windows/Forms/PanelCollection.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace RyzStudio.Windows.Forms
-{
- [ToolboxItem(true)]
- public class PanelCollection : CollectionBase
- {
- protected PanelBook panelBook = null;
-
- public PanelCollection()
- {
-
- }
-
- public PanelCollection(PanelBook parent) : base()
- {
- panelBook = parent;
- }
-
- 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)
- {
- foreach (Panel page in pages)
- {
- this.Add(page);
- }
- }
-
- 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);
-
- public bool Contains(Panel value) => List.Contains(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;
- }
- }
- }
- }
-
- }
-}
diff --git a/RyzStudio/Windows/Forms/Resources/close_20.png b/RyzStudio/Windows/Forms/Resources/close_20.png
deleted file mode 100644
index a1cfe41..0000000
Binary files a/RyzStudio/Windows/Forms/Resources/close_20.png and /dev/null differ
diff --git a/RyzStudio/Windows/Forms/Resources/maximise2_20.png b/RyzStudio/Windows/Forms/Resources/maximise2_20.png
deleted file mode 100644
index 490190a..0000000
Binary files a/RyzStudio/Windows/Forms/Resources/maximise2_20.png and /dev/null differ
diff --git a/RyzStudio/Windows/Forms/Resources/maximise_20.png b/RyzStudio/Windows/Forms/Resources/maximise_20.png
deleted file mode 100644
index 9dc88fb..0000000
Binary files a/RyzStudio/Windows/Forms/Resources/maximise_20.png and /dev/null differ
diff --git a/RyzStudio/Windows/Forms/Resources/minimise2_20.png b/RyzStudio/Windows/Forms/Resources/minimise2_20.png
deleted file mode 100644
index c1221e3..0000000
Binary files a/RyzStudio/Windows/Forms/Resources/minimise2_20.png and /dev/null differ
diff --git a/RyzStudio/Windows/Forms/Resources/minimise_20.png b/RyzStudio/Windows/Forms/Resources/minimise_20.png
deleted file mode 100644
index ee67015..0000000
Binary files a/RyzStudio/Windows/Forms/Resources/minimise_20.png and /dev/null differ
diff --git a/RyzStudio/Windows/ThemedForms/TForm.Designer.cs b/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
deleted file mode 100644
index 75f5bf1..0000000
--- a/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-namespace RyzStudio.Windows.ThemedForms
-{
- partial class TForm
- {
- ///
- /// 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();
- //
- // Form
- //
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
- this.BackColor = System.Drawing.Color.WhiteSmoke;
- this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
- this.ClientSize = new System.Drawing.Size(584, 381);
- this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.ForeColor = System.Drawing.Color.Black;
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- this.MaximizeBox = false;
- this.MinimumSize = new System.Drawing.Size(600, 420);
- this.Name = "Form";
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
- this.ResumeLayout(false);
-
- }
-
- #endregion
- }
-}
\ No newline at end of file
diff --git a/RyzStudio/Windows/ThemedForms/TForm.cs b/RyzStudio/Windows/ThemedForms/TForm.cs
deleted file mode 100644
index 541e75f..0000000
--- a/RyzStudio/Windows/ThemedForms/TForm.cs
+++ /dev/null
@@ -1,173 +0,0 @@
-namespace RyzStudio.Windows.ThemedForms
-{
- using System;
- using System.ComponentModel;
- using System.Drawing;
- using System.Windows.Forms;
-
- public partial class TForm : System.Windows.Forms.Form
- {
- protected Color topFillColour = Color.FromArgb(15, 15, 15);
- protected int topFillHeight = 52;
-
- protected Color bottomFillColour = Color.FromArgb(15, 15, 15);
- protected int bottomFillMargin = 19;
-
- protected int borderWidth = 1;
-
- public TForm()
- {
- this.InitializeComponent();
-
- this.BackColor = Color.FromArgb(246, 246, 246);
- }
-
- protected override void OnResize(EventArgs e)
- {
- base.OnResize(e);
-
- this.Invalidate();
- }
-
- 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.DisplayRectangle.Width, bottomFillMargin);
- 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 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, (this.DisplayRectangle.Height - this.Banner.Height - bottomFillMargin), (this.DisplayRectangle.Width - (this.Padding.Left + this.Padding.Right)), this.Banner.Height);
- }
-
- g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder);
- }
-
- [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
- public new Color BackColor { get => base.BackColor; set { base.BackColor = value; } }
-
- [Category("Appearance"), Browsable(true)]
- public Image TitleLogo { get; set; }
-
- [Category("Appearance"), Browsable(true)]
- public Image Banner { get; set; }
-
- 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 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Windows/Forms/AForm.cs b/Windows/Forms/AForm.cs
deleted file mode 100644
index 1d75d60..0000000
--- a/Windows/Forms/AForm.cs
+++ /dev/null
@@ -1,405 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Drawing;
-using System.Windows.Forms;
-
-namespace AppLauncher.Windows.Forms
-{
- public class AForm : Form
- {
- protected readonly Color borderColour = Color.FromArgb(232, 231, 236);
- protected readonly int borderWidth = 1;
-
- protected readonly Color backColour = Color.FromArgb(254, 254, 254);
-
- protected readonly Color titleBarColour = Color.FromArgb(237, 240, 247);
- protected readonly Color titleColour = Color.FromArgb(156, 158, 171);
- protected readonly int titleBarHeight = 56;
-
- private bool isDragging = false;
- private Point startPosition = new Point();
-
- protected bool isBusy = false;
-
- protected internal RyzStudio.Windows.Forms.TImageBox imageBox3;
- protected internal RyzStudio.Windows.Forms.TImageBox imageBox2;
- protected internal RyzStudio.Windows.Forms.TImageBox imageBox1;
- private NotifyIcon notifyIcon1;
- private Panel panel1;
- private ContextMenuStrip contextMenuStrip1;
- private ToolStripMenuItem exitToolStripMenuItem;
- private IContainer components;
-
- public AForm() : base()
- {
- InitializeComponent();
-
- if (!this.DesignMode)
- {
- this.FormBorderStyle = FormBorderStyle.None;
- this.StartPosition = FormStartPosition.Manual;
- }
-
- this.BackColor = backColour;
- this.Padding = new Padding(0);
-
- notifyIcon1.Text = Application.ProductName;
- }
-
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
-
- this.SuspendLayout();
-
- imageBox3.Left = this.DisplayRectangle.Width - imageBox3.Width - 17;
- imageBox3.Top = 18;
- imageBox3.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
-
- imageBox2.Left = imageBox3.Left - imageBox2.Width - 8;
- imageBox2.Top = 18;
- imageBox2.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
-
- imageBox1.Left = imageBox2.Left - imageBox1.Width - 8;
- imageBox1.Top = 18;
- imageBox1.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
-
- panel1.Left = this.DisplayRectangle.Left;
- panel1.Top = this.DisplayRectangle.Height - panel1.Height;
- panel1.Width = this.DisplayRectangle.Width;
- panel1.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom);
-
- if (this.DesignMode)
- {
- imageBox1.Visible = imageBox2.Visible = imageBox3.Visible = false;
- panel1.Visible = false;
- }
-
- this.ResumeLayout();
- }
-
- 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 OnMouseDown(MouseEventArgs e)
- {
- base.OnMouseDown(e);
-
- if (e.Button != MouseButtons.Left)
- {
- return;
- }
-
- 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 = validateFormLocation(x, 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);
-
- area.Inflate((-1 * borderWidth), (-1 * borderWidth));
-
- g.FillRectangle(new SolidBrush(titleBarColour), area.X, area.Y, (area.Width + area.X), titleBarHeight);
- g.DrawLine(new Pen(borderColour, 1), area.X, (titleBarHeight + 1), (area.Width + area.X), (titleBarHeight + 1));
-
- if (!DesignMode) g.DrawImageUnscaled(Properties.Resources.app_icon_24, 17, 17);
-
- if (!DesignMode) TextRenderer.DrawText(g, Application.ProductName, new Font(this.Font.FontFamily, 14F), new Point(58, 17), 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 = 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")]
- public ContextMenuStrip TitleContextMenuStrip { get; set; } = null;
-
- 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(AForm));
- this.imageBox3 = new RyzStudio.Windows.Forms.TImageBox();
- this.imageBox2 = new RyzStudio.Windows.Forms.TImageBox();
- this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox();
- this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
- this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.panel1 = new System.Windows.Forms.Panel();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit();
- this.contextMenuStrip1.SuspendLayout();
- this.SuspendLayout();
- //
- // imageBox3
- //
- this.imageBox3.BackColor = System.Drawing.Color.Transparent;
- this.imageBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
- this.imageBox3.ErrorImage = null;
- this.imageBox3.Image = global::AppLauncher.Resource1.close_20;
- this.imageBox3.ImageHover = global::AppLauncher.Resource1.close2_20;
- this.imageBox3.ImageNormal = global::AppLauncher.Resource1.close_20;
- this.imageBox3.ImageSelected = null;
- this.imageBox3.InitialImage = null;
- this.imageBox3.IsSelected = false;
- this.imageBox3.Location = new System.Drawing.Point(169, 12);
- this.imageBox3.Name = "imageBox3";
- this.imageBox3.Size = new System.Drawing.Size(20, 20);
- this.imageBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
- this.imageBox3.TabIndex = 146;
- this.imageBox3.TabStop = false;
- this.imageBox3.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick);
- //
- // imageBox2
- //
- this.imageBox2.BackColor = System.Drawing.Color.Transparent;
- this.imageBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
- this.imageBox2.ErrorImage = null;
- this.imageBox2.Image = global::AppLauncher.Resource1.maximise_20;
- this.imageBox2.ImageHover = global::AppLauncher.Resource1.maximise_20;
- this.imageBox2.ImageNormal = global::AppLauncher.Resource1.maximise_20;
- this.imageBox2.ImageSelected = global::AppLauncher.Resource1.maximise2_20;
- this.imageBox2.InitialImage = null;
- this.imageBox2.IsSelected = false;
- this.imageBox2.Location = new System.Drawing.Point(139, 12);
- this.imageBox2.Name = "imageBox2";
- this.imageBox2.Size = new System.Drawing.Size(20, 20);
- this.imageBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
- this.imageBox2.TabIndex = 147;
- this.imageBox2.TabStop = false;
- this.imageBox2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox2_MouseClick);
- //
- // imageBox1
- //
- this.imageBox1.BackColor = System.Drawing.Color.Transparent;
- this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
- this.imageBox1.ErrorImage = null;
- this.imageBox1.Image = global::AppLauncher.Resource1.minimise_20;
- this.imageBox1.ImageHover = global::AppLauncher.Resource1.minimise2_20;
- this.imageBox1.ImageNormal = global::AppLauncher.Resource1.minimise_20;
- this.imageBox1.ImageSelected = null;
- this.imageBox1.InitialImage = null;
- this.imageBox1.IsSelected = false;
- this.imageBox1.Location = new System.Drawing.Point(109, 12);
- this.imageBox1.Name = "imageBox1";
- this.imageBox1.Size = new System.Drawing.Size(20, 20);
- this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
- this.imageBox1.TabIndex = 148;
- this.imageBox1.TabStop = false;
- this.imageBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick);
- //
- // notifyIcon1
- //
- this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
- this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
- this.notifyIcon1.Visible = true;
- this.notifyIcon1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseClick);
- this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseClick);
- //
- // contextMenuStrip1
- //
- this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.exitToolStripMenuItem});
- this.contextMenuStrip1.Name = "contextMenuStrip1";
- this.contextMenuStrip1.Size = new System.Drawing.Size(94, 26);
- //
- // exitToolStripMenuItem
- //
- this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
- this.exitToolStripMenuItem.Size = new System.Drawing.Size(93, 22);
- this.exitToolStripMenuItem.Text = "E&xit";
- this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
- //
- // panel1
- //
- this.panel1.BackColor = System.Drawing.Color.Transparent;
- this.panel1.Cursor = System.Windows.Forms.Cursors.SizeNS;
- this.panel1.Location = new System.Drawing.Point(109, 114);
- this.panel1.Margin = new System.Windows.Forms.Padding(0);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(200, 2);
- this.panel1.TabIndex = 149;
- 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);
- //
- // AForm
- //
- this.ClientSize = new System.Drawing.Size(421, 321);
- this.Controls.Add(this.panel1);
- this.Controls.Add(this.imageBox1);
- this.Controls.Add(this.imageBox2);
- this.Controls.Add(this.imageBox3);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
- this.Name = "AForm";
- ((System.ComponentModel.ISupportInitialize)(this.imageBox3)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit();
- this.contextMenuStrip1.ResumeLayout(false);
- this.ResumeLayout(false);
-
- }
-
- private void imageBox1_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- //this.WindowState = FormWindowState.Minimized;
- this.Visible = false;
- //notifyIcon1.Visible = true;
- }
- }
-
- private void imageBox2_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- //this.WindowState = ((this.WindowState == FormWindowState.Maximized) ? FormWindowState.Normal : FormWindowState.Maximized);
-
- //imageBox2.IsSelected = (this.WindowState == FormWindowState.Maximized);
- }
- else if (e.Button == MouseButtons.Right)
- {
- this.TopMost = !this.TopMost;
-
- if (this.TopMost)
- {
- imageBox2.Image = imageBox2.ImageNormal = Resource1.maximise3_20;
- }
- else
- {
- imageBox2.Image = imageBox2.ImageNormal = Resource1.maximise_20;
- }
- }
- }
-
- protected virtual void imageBox3_MouseClick(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- this.Close();
- }
- }
-
- private void panel1_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- isDragging = true;
- startPosition = e.Location;
- }
- }
-
- private void panel1_MouseUp(object sender, MouseEventArgs e)
- {
- isDragging = false;
- }
-
- private void panel1_MouseMove(object sender, MouseEventArgs e)
- {
- if (isDragging)
- {
- this.Size = new Size(this.Width, e.Y - startPosition.Y + this.Height);
- }
- }
-
- 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/Windows/Forms/OptionsForm.cs b/Windows/Forms/OptionsForm.cs
index 5639385..ff34358 100644
--- a/Windows/Forms/OptionsForm.cs
+++ b/Windows/Forms/OptionsForm.cs
@@ -71,24 +71,24 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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);
@@ -100,9 +100,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -112,9 +112,9 @@ namespace AppLauncher.Windows.Forms
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;
@@ -128,10 +128,10 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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);
@@ -143,23 +143,23 @@ namespace AppLauncher.Windows.Forms
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(131, 24);
+ this.label2.Size = new System.Drawing.Size(385, 24);
this.label2.TabIndex = 175;
- this.label2.Text = "Hotkey";
+ 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)
+ //
+ 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);
@@ -171,9 +171,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -183,10 +183,10 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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);
@@ -198,9 +198,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -210,9 +210,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -222,20 +222,20 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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)
+ //
+ 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);
@@ -247,9 +247,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -259,10 +259,10 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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);
@@ -274,9 +274,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -286,9 +286,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -298,10 +298,10 @@ namespace AppLauncher.Windows.Forms
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)
+ //
+ 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);
@@ -312,9 +312,9 @@ namespace AppLauncher.Windows.Forms
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);
diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs
index 8136700..00e144c 100644
--- a/Windows/Forms/Tile/TTilePanel.cs
+++ b/Windows/Forms/Tile/TTilePanel.cs
@@ -9,7 +9,7 @@ using System.Windows.Forms;
namespace AppLauncher.Windows.Forms
{
- public partial class TTilePanel : AUserControl
+ public partial class TTilePanel : TUserControl
{
protected bool isDragging = false;
protected Point startPosition = new Point();
@@ -23,6 +23,7 @@ namespace AppLauncher.Windows.Forms
this.BackColor = Color.FromArgb(250, 250, 250);
this.ContextMenuStrip = contextMenuStrip1;
+ this.DoubleBuffered = true;
label1.ForeColor = Color.FromArgb(99, 105, 119);
label1.Font = new Font(this.Font.FontFamily, 8.25F);
diff --git a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
index 03dd3db..7f5696d 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
@@ -36,6 +36,7 @@
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();
@@ -44,6 +45,7 @@
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();
@@ -67,7 +69,7 @@
//
this.addListToolStripMenuItem.Name = "addListToolStripMenuItem";
this.addListToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
- this.addListToolStripMenuItem.Text = "Add &List Tile";
+ this.addListToolStripMenuItem.Text = "Add &Folder";
this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click);
//
// contextMenuStrip2
@@ -76,38 +78,46 @@
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(133, 126);
+ this.contextMenuStrip2.Size = new System.Drawing.Size(144, 148);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
- this.toolStripMenuItem2.Size = new System.Drawing.Size(132, 22);
+ 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(132, 22);
+ 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(132, 22);
+ 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(129, 6);
+ this.toolStripSeparator2.Size = new System.Drawing.Size(140, 6);
//
// toolStripMenuItem4
//
@@ -117,7 +127,7 @@
this.downToolStripMenuItem,
this.bottomToolStripMenuItem});
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
- this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 22);
+ this.toolStripMenuItem4.Size = new System.Drawing.Size(143, 22);
this.toolStripMenuItem4.Text = "&Move";
//
// topToolStripMenuItem
@@ -151,25 +161,42 @@
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(129, 6);
+ this.toolStripSeparator1.Size = new System.Drawing.Size(140, 6);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 22);
+ this.toolStripMenuItem3.Size = new System.Drawing.Size(143, 22);
this.toolStripMenuItem3.Text = "&Remove";
this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click);
//
- // TilePanelLayout
+ // 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.Name = "TilePanelLayout";
+ 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();
}
@@ -189,5 +216,7 @@
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
index 5a2a515..53e62a8 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.cs
@@ -13,7 +13,7 @@ using System.Windows.Forms;
namespace AppLauncher.Windows.Forms
{
- public partial class TTilePanelLayout : AUserControl
+ public partial class TTilePanelLayout : TUserControl
{
public class Item
{
@@ -46,6 +46,10 @@ namespace AppLauncher.Windows.Forms
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)
@@ -124,17 +128,6 @@ namespace AppLauncher.Windows.Forms
//this.Size = new Size(panel1.Width, this.ExpandedHeight);
}
- protected override void OnPaint(PaintEventArgs e)
- {
- base.OnPaint(e);
-
- Graphics g = e.Graphics;
-
- g.DrawImageUnscaled((isChecked ? Properties.Resources.toggle_right_ea_16 : Properties.Resources.toggle_left_ea_16), 2, 2);
-
- TextRenderer.DrawText(g, groupModel?.Title, new Font(this.Font.FontFamily, 8.25F), new Point(25, 4), Color.FromArgb(99, 105, 119));
- }
-
protected override async void OnResize(EventArgs e)
{
base.OnResize(e);
@@ -142,7 +135,7 @@ namespace AppLauncher.Windows.Forms
await this.InvalidateContainer();
}
- protected override async void OnMouseClick(MouseEventArgs e)
+ protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
@@ -152,38 +145,7 @@ namespace AppLauncher.Windows.Forms
if (e.Button == MouseButtons.Left)
{
- if (isLabel)
- {
- isChecked = !isChecked;
-
- 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();
- }
- }
- }
- }
- }
- else
- {
- // do nothing
- }
+ // do nothing
}
else if (e.Button == MouseButtons.Right)
{
@@ -335,7 +297,7 @@ namespace AppLauncher.Windows.Forms
isAnimating = false;
- this.Invalidate();
+ this.Invalidate(this.DisplayRectangle, false);
});
}
@@ -353,8 +315,6 @@ namespace AppLauncher.Windows.Forms
while (this.Height < this.ExpandedHeight)
{
ThreadControl.SetHeight(this, (this.Height + expandIncrement));
- this.Invalidate();
-
Thread.Sleep(10);
}
}
@@ -363,7 +323,7 @@ namespace AppLauncher.Windows.Forms
isAnimating = false;
- this.Invalidate();
+ this.Invalidate(this.DisplayRectangle, false);
});
}
@@ -409,7 +369,7 @@ namespace AppLauncher.Windows.Forms
}));
}
- public void AddRow() =>this.SetGridSize(groupModel.GridSize.Width, (groupModel.GridSize.Height + 1));
+ public void AddRow() => this.SetGridSize(gridSize.X, (gridSize.Y + 1));
public void EditGroup() => EditGroupForm.ShowDialog(this);
@@ -419,6 +379,9 @@ namespace AppLauncher.Windows.Forms
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);
@@ -431,6 +394,8 @@ namespace AppLauncher.Windows.Forms
groupModel = model;
isChecked = groupModel.IsExpanded;
+ label1.Text = " " + groupModel?.Title;
+
this.Invalidate();
}
@@ -580,6 +545,8 @@ namespace AppLauncher.Windows.Forms
{
gridSize = new Point(width, height);
+ groupModel.GridSize.Height = height;
+
expandedHeight = (this.TileSize * height) + labelHeight;
int w = (this.TileSize * gridSize.X);
@@ -784,5 +751,56 @@ namespace AppLauncher.Windows.Forms
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/build-release.bat b/build-release.bat
new file mode 100644
index 0000000..6875a19
--- /dev/null
+++ b/build-release.bat
@@ -0,0 +1 @@
+"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" "skye.sln" /T:Build /P:Configuration=Release
\ No newline at end of file
diff --git a/installer.iss b/installer.iss
index e945c85..8f5bcae 100644
--- a/installer.iss
+++ b/installer.iss
@@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Fizzy Launcher"
-#define MyAppVersion "0.1.1.109 alpha"
+#define MyAppVersion "0.1.1.144 alpha"
#define MyAppPublisher "Hi, I'm Ray"
#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher"
#define MyAppExeName "fizzylauncher.exe"
@@ -37,6 +37,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
[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
diff --git a/skye.sln b/skye.sln
index 3b21ce7..f67c029 100644
--- a/skye.sln
+++ b/skye.sln
@@ -1,10 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.1022
+# 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
@@ -15,6 +17,10 @@ Global
{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