From c18b408df28b081ab5f5a17e68fe7c7af1681323 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Wed, 21 Oct 2020 01:54:00 +0100
Subject: [PATCH 01/15] WIP: simplifying UI

---
 .gitignore                                    |   2 +
 FizzyLauncher.UI/FizzyLauncher.UI.csproj      | 197 +++++++++++++
 FizzyLauncher.UI/Properties/AssemblyInfo.cs   |  36 +++
 .../Properties/Resources.Designer.cs          | 223 +++++++++++++++
 FizzyLauncher.UI/Properties/Resources.resx    | 169 ++++++++++++
 FizzyLauncher.UI/Resources/arrow_down16_a.png | Bin 0 -> 601 bytes
 FizzyLauncher.UI/Resources/arrow_down16_b.png | Bin 0 -> 417 bytes
 FizzyLauncher.UI/Resources/arrow_up16_a.png   | Bin 0 -> 590 bytes
 FizzyLauncher.UI/Resources/arrow_up16_b.png   | Bin 0 -> 410 bytes
 FizzyLauncher.UI/Resources/close16_a.png      | Bin 0 -> 367 bytes
 FizzyLauncher.UI/Resources/close16_b.png      | Bin 0 -> 468 bytes
 FizzyLauncher.UI/Resources/edit16_a.png       | Bin 0 -> 612 bytes
 FizzyLauncher.UI/Resources/edit16_b.png       | Bin 0 -> 419 bytes
 FizzyLauncher.UI/Resources/file16_a.png       | Bin 0 -> 372 bytes
 FizzyLauncher.UI/Resources/file16_b.png       | Bin 0 -> 323 bytes
 FizzyLauncher.UI/Resources/folder16_a.png     | Bin 0 -> 352 bytes
 FizzyLauncher.UI/Resources/folder16_b.png     | Bin 0 -> 288 bytes
 FizzyLauncher.UI/Resources/minus16_a.png      | Bin 0 -> 532 bytes
 FizzyLauncher.UI/Resources/minus16_b.png      | Bin 0 -> 380 bytes
 FizzyLauncher.UI/Resources/plus16_a.png       | Bin 0 -> 559 bytes
 FizzyLauncher.UI/Resources/plus16_b.png       | Bin 0 -> 398 bytes
 .../RyzStudio}/Data/SQLite/SQLiteDatabase.cs  |   0
 .../RyzStudio}/Drawing/Rectangoid.cs          |   0
 .../RyzStudio}/IO/FileType.cs                 |   0
 .../RyzStudio}/IO/SessionFileFormatBase.cs    |   0
 .../RyzStudio}/IO/SharpZipLib.cs              |   0
 .../RyzStudio}/Net/HttpWeb.cs                 |   0
 .../RyzStudio/Windows/Forms/PanelBook.cs      | 258 ++++++++++++++++++
 .../Windows/Forms/StackLayoutPanel.cs         |   0
 .../RyzStudio}/Windows/Forms/TFlatButton.cs   |   0
 .../Forms/THorizontalSeparator.Designer.cs    |   0
 .../Windows/Forms/THorizontalSeparator.cs     |   0
 .../RyzStudio}/Windows/Forms/TImageBox.cs     |   0
 .../RyzStudio/Windows/Forms/TUserControl.cs   |   8 +-
 .../RyzStudio}/Windows/Forms/ThreadControl.cs |   0
 .../ThemedForms/BorderlessForm.Designer.cs    |   0
 .../Windows/ThemedForms/BorderlessForm.cs     |   0
 .../Windows/ThemedForms/BorderlessForm.resx   |   0
 .../BorderlessToolForm.Designer.cs            |   0
 .../Windows/ThemedForms/BorderlessToolForm.cs |   0
 .../ThemedForms/BorderlessToolForm.resx       |   0
 .../RyzStudio}/Windows/ThemedForms/TButton.cs |   0
 .../Windows/ThemedForms/TButton.designer.cs   |   0
 .../Windows/ThemedForms/TButton.resx          |   0
 .../Windows/ThemedForms/TButtonTextBox.cs     |   0
 .../ThemedForms/TButtonTextBox.designer.cs    |   0
 .../Windows/ThemedForms/TButtonTextBox.resx   |   0
 .../ThemedForms/TDialogForm.Designer.cs       |   4 +-
 .../Windows/ThemedForms/TDialogForm.cs        |   2 +-
 .../Windows/ThemedForms/TDialogForm.resx      |   0
 .../Windows/ThemedForms/TFolderTextBox.cs     |   5 +-
 .../Windows/ThemedForms/TForm.Designer.cs     |   0
 .../RyzStudio}/Windows/ThemedForms/TForm.cs   |   0
 .../RyzStudio}/Windows/ThemedForms/TForm.resx |   0
 .../Windows/ThemedForms/TListBox.cs           |   0
 .../Windows/ThemedForms/TListBox.designer.cs  |  30 +-
 .../Windows/ThemedForms/TListBox.resx         |   0
 .../Windows/ThemedForms/TOpenFileTextBox.cs   |   5 +-
 .../Windows/ThemedForms/TPickerBox.cs         |   0
 .../ThemedForms/TPickerBox.designer.cs        |   0
 .../Windows/ThemedForms/TPickerBox.resx       |   0
 .../Windows/ThemedForms/TTextBox.cs           |   0
 .../Windows/ThemedForms/TTextBox.designer.cs  |   0
 .../Windows/ThemedForms/TTextBox.resx         |   0
 .../Windows/ThemedForms/TUserControl.cs       |   0
 .../ThemedForms/TUserControl.designer.cs      |   0
 .../Windows/ThemedForms/TYesNoPickerBox.cs    |   0
 FizzyLauncher.csproj                          |  94 +------
 RyzStudio/Windows/Forms/PanelBook.Designer.cs |  37 ---
 RyzStudio/Windows/Forms/PanelBook.cs          | 159 -----------
 RyzStudio/Windows/Forms/PanelCollection.cs    |  80 ------
 Windows/Forms/AForm.cs                        |   3 +-
 Windows/Forms/Tile/TTilePanel.cs              |   2 +-
 Windows/Forms/Tile/TTilePanelLayout.cs        |   2 +-
 skye.sln                                      |  10 +-
 75 files changed, 931 insertions(+), 395 deletions(-)
 create mode 100644 FizzyLauncher.UI/FizzyLauncher.UI.csproj
 create mode 100644 FizzyLauncher.UI/Properties/AssemblyInfo.cs
 create mode 100644 FizzyLauncher.UI/Properties/Resources.Designer.cs
 create mode 100644 FizzyLauncher.UI/Properties/Resources.resx
 create mode 100644 FizzyLauncher.UI/Resources/arrow_down16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/arrow_down16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/arrow_up16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/arrow_up16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/close16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/close16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/edit16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/edit16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/file16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/file16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/folder16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/folder16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/minus16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/minus16_b.png
 create mode 100644 FizzyLauncher.UI/Resources/plus16_a.png
 create mode 100644 FizzyLauncher.UI/Resources/plus16_b.png
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Data/SQLite/SQLiteDatabase.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Drawing/Rectangoid.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/IO/FileType.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/IO/SessionFileFormatBase.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/IO/SharpZipLib.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Net/HttpWeb.cs (100%)
 create mode 100644 FizzyLauncher.UI/RyzStudio/Windows/Forms/PanelBook.cs
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/StackLayoutPanel.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/TFlatButton.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/THorizontalSeparator.Designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/THorizontalSeparator.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/TImageBox.cs (100%)
 rename Windows/Forms/AUserControl.cs => FizzyLauncher.UI/RyzStudio/Windows/Forms/TUserControl.cs (95%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/Forms/ThreadControl.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessForm.Designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessForm.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessForm.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessToolForm.Designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessToolForm.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/BorderlessToolForm.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButton.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButton.designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButton.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButtonTextBox.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButtonTextBox.designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TButtonTextBox.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TDialogForm.Designer.cs (95%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TDialogForm.cs (98%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TDialogForm.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TFolderTextBox.cs (86%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TForm.Designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TForm.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TForm.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TListBox.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TListBox.designer.cs (87%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TListBox.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TOpenFileTextBox.cs (87%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TPickerBox.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TPickerBox.designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TPickerBox.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TTextBox.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TTextBox.designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TTextBox.resx (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TUserControl.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TUserControl.designer.cs (100%)
 rename {RyzStudio => FizzyLauncher.UI/RyzStudio}/Windows/ThemedForms/TYesNoPickerBox.cs (100%)
 delete mode 100644 RyzStudio/Windows/Forms/PanelBook.Designer.cs
 delete mode 100644 RyzStudio/Windows/Forms/PanelBook.cs
 delete mode 100644 RyzStudio/Windows/Forms/PanelCollection.cs

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..23e9e57
--- /dev/null
+++ b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{D9A49347-583F-41B4-AFE1-63EC80BBDB38}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>AppLauncher</RootNamespace>
+    <AssemblyName>fizzylauncher.ui</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Drawing\Rectangoid.cs" />
+    <Compile Include="RyzStudio\Windows\Forms\TUserControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\Forms\TFlatButton.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\Forms\THorizontalSeparator.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\Forms\THorizontalSeparator.Designer.cs">
+      <DependentUpon>THorizontalSeparator.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\Forms\ThreadControl.cs" />
+    <Compile Include="RyzStudio\Windows\Forms\TImageBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TButton.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TButton.designer.cs">
+      <DependentUpon>TButton.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.designer.cs">
+      <DependentUpon>TButtonTextBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TDialogForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TDialogForm.Designer.cs">
+      <DependentUpon>TDialogForm.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TFolderTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TListBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TListBox.designer.cs">
+      <DependentUpon>TListBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TOpenFileTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TPickerBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TPickerBox.designer.cs">
+      <DependentUpon>TPickerBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TTextBox.designer.cs">
+      <DependentUpon>TTextBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TUserControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TUserControl.designer.cs">
+      <DependentUpon>TUserControl.cs</DependentUpon>
+    </Compile>
+    <Compile Include="RyzStudio\Windows\ThemedForms\TYesNoPickerBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TButton.resx">
+      <DependentUpon>TButton.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.resx">
+      <DependentUpon>TButtonTextBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TDialogForm.resx">
+      <DependentUpon>TDialogForm.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TListBox.resx">
+      <DependentUpon>TListBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TPickerBox.resx">
+      <DependentUpon>TPickerBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TTextBox.resx">
+      <DependentUpon>TTextBox.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\close16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\close16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\file16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\file16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\folder16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\folder16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\edit16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\edit16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\arrow_down16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\arrow_down16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\arrow_up16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\arrow_up16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\minus16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\minus16_b.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\plus16_a.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\plus16_b.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ 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/FizzyLauncher.UI/Properties/Resources.Designer.cs b/FizzyLauncher.UI/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..40f0b6b
--- /dev/null
+++ b/FizzyLauncher.UI/Properties/Resources.Designer.cs
@@ -0,0 +1,223 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace AppLauncher.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap arrow_down16_a {
+            get {
+                object obj = ResourceManager.GetObject("arrow_down16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap arrow_down16_b {
+            get {
+                object obj = ResourceManager.GetObject("arrow_down16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap arrow_up16_a {
+            get {
+                object obj = ResourceManager.GetObject("arrow_up16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap arrow_up16_b {
+            get {
+                object obj = ResourceManager.GetObject("arrow_up16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap close16_a {
+            get {
+                object obj = ResourceManager.GetObject("close16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap close16_b {
+            get {
+                object obj = ResourceManager.GetObject("close16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap edit16_a {
+            get {
+                object obj = ResourceManager.GetObject("edit16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap edit16_b {
+            get {
+                object obj = ResourceManager.GetObject("edit16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap file16_a {
+            get {
+                object obj = ResourceManager.GetObject("file16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap file16_b {
+            get {
+                object obj = ResourceManager.GetObject("file16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap folder16_a {
+            get {
+                object obj = ResourceManager.GetObject("folder16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap folder16_b {
+            get {
+                object obj = ResourceManager.GetObject("folder16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap minus16_a {
+            get {
+                object obj = ResourceManager.GetObject("minus16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap minus16_b {
+            get {
+                object obj = ResourceManager.GetObject("minus16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap plus16_a {
+            get {
+                object obj = ResourceManager.GetObject("plus16_a", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap plus16_b {
+            get {
+                object obj = ResourceManager.GetObject("plus16_b", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}
diff --git a/FizzyLauncher.UI/Properties/Resources.resx b/FizzyLauncher.UI/Properties/Resources.resx
new file mode 100644
index 0000000..a71d849
--- /dev/null
+++ b/FizzyLauncher.UI/Properties/Resources.resx
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="arrow_down16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow_down16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="arrow_down16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow_down16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="arrow_up16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow_up16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="arrow_up16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\arrow_up16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="edit16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\edit16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="edit16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\edit16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="folder16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\folder16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="folder16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\folder16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="minus16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\minus16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="minus16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\minus16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="plus16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\plus16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="plus16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\plus16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/FizzyLauncher.UI/Resources/arrow_down16_a.png b/FizzyLauncher.UI/Resources/arrow_down16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..cccf233e96a5deccc73a84bdfff320ebbdfafc31
GIT binary patch
literal 601
zcmV-f0;c_mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10p>|W
zK~y-6eN#PaR6!Iy=Mro-30PSKiIpPraGR~|R%2l*e}HHL+OCNp+H6D%i7rT@MYhmh
z(i)A;{sSL-=OJm7fImQkE@*a-h4bX)1w7SoKjxlu?hH{wQ52b^B}r`n^C|oVz%I#t
z2q9MMSsr4HCnWU%+yd|oz>cIn03dl5zyirxNiRv>2_gLYcR^}?3*aKjhojMGz13>{
ztWL`FykTamX7)hRfaI0(61e-OyZ?6gt940r#26Q2jEBSF@Hqf5Y5oXcErhUEE4~H*
zA%r*8xVv{r-Uo2Ol40LRqtSYOnxth(%k}tpJbohSK+=*Ww|DBA|A%I?`2&AVZX1Bp
zrQ0R#;c)m^l2w>kjPX$^DPfP~{1hsyOqeEluPBOBBnbdTQEW-N0pNO_%@lzBv}XW7
z2;r5xpOo~B<k!TY4WN@{+3T{7<T*+E2H-t_g*?w2WirdM9)OOdIZ1P=xmS@nE$K3V
zT_f2iIcsLCRcfhW!^}3T&56-nk~1Xx004L2h%p|<7#ELweiZeGWJym)(g47=yLYQ{
zO5}OoaQ7~NZAk+&TLF%Lrl%xtOFAI=ZZesCO6l_?FOi&?OeQbPY~{#js!<G*Zc1vC
nJOhA|K9l@Faw~*TRO|l$hQb)jyjdwG00000NkvXXu0mjf^)LpI

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/arrow_down16_b.png b/FizzyLauncher.UI/Resources/arrow_down16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..5b0b11556cd01e9e14cfc44d5acb34d204a173a1
GIT binary patch
literal 417
zcmV;S0bc%zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10WL{I
zK~y-6jnlm@#8D6h@SlxrVbQ8YCt<w?(b&oZh>B8ZG=hYV6`zG(JOYKMKq6{25g!Gc
zP~6$wzw0k?l1XmP%$dxcdoI5*fj!*fHR1+M)brw=!nqnn3wXu_?jtvfX$;~7%lMFq
zukeXA^p#9j!#Y|~TP-G!LOfF<%+ZJ@`)y((h_#a9*@zq)p&2JF?D3DWFC%i)@Pyq8
zCZ&bF|6}|%-a<23!LaVO+hcE|Qs64s^7A_P80q!%DWM;$7%JpWF^{>jac*&zaZC8Z
zL&R5bMVw0p)0CE2`=d#jxL;aglVs19WRe^QI4t2eL({SLVGxay;vBz>MAynK$t3x8
z1lKlD$IAI<+QA}TBm><=ZVXcxz%f>2pQ(sCc5xkzUgO*p)-B>2nOsV+E0#r300000
LNkvXXu0mjf{w}h~

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/arrow_up16_a.png b/FizzyLauncher.UI/Resources/arrow_up16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..a08438ba358ad09ba06ed091b453a749822880e9
GIT binary patch
literal 590
zcmV-U0<ryxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ozGL
zK~y-6jZ?d7R8bUNYa=#e@&^(t#e2kQrnVc6h4}>q6HrW}CN{B|2nrHM@L9~@7lgD%
zV>5r?W%d~)jS|QQXp9#$bC=DTaC22~Rhxa*eynxQA!-<nM&~5WOKJm{N$D>Dwn+9v
z2(ilNB#1E{m-H0C4FF#OY)aY&0FtKx%#xgz^qS<|5W>&H2C4WhfD0ra6h*PtYPEh;
zC*^tGFtcSdyDw=#^75n!-2J7y|8n;$bxC!^80TV)2gBj;82~V8{s>?-gs@sAyZdu9
zW0qx$wS0%<3V`#L4Et6T#afMY8^B^&mbX%Ti1B#*Skj)Pc}s3@RyC)BF3DYzy8yb?
zCe3DZKbhP%04FDICym!q@f!dm0HYLl-Ti81k!_MQhRRhYe3$en%d!O}WLdUA@*&Cn
zx~azi?4)}J0E7_M0jwt}005FDfR$<?$up9648VH;vw5C3>fQf^7~=^^mjG-T$v(+x
zGh40`N%lzg>Ul}`NKTRLBdz)(#&{58ocoXIM;?-;Np~a-0BpE>=WlZIJa4#r2f&7;
zftf7<e}1MXByUREBl)f@%TMX}EXj)`r^>Q?WoAo9K2vSQAnCfKHpx=}DCslF4<vgb
cgi)3M8%|0O&HO-)KL7v#07*qoM6N<$g0V#Ue*gdg

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/arrow_up16_b.png b/FizzyLauncher.UI/Resources/arrow_up16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..07c1797bf4de4fbe3e64cb44f2e1ebf9e1a99805
GIT binary patch
literal 410
zcmV;L0cHM)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10VhdB
zK~y-6jnlm@#6c7V@E?&aEFMGR<2l&IR(cu<rBI5XQL*B)+7@r%E1m+0s1+(=t%gk~
z<}T}RBu;XZ$-Vd7nK^TY-x$RfZqSUlMhzpy=B|!)DVk>Sj8oi2Z4ea<-~bDFQy^dB
z9n0v=oUDu$w4%4vS=<ZqM21*IHHK`r6Qhw>&NS~}H<Mot&M--^$IP+k@ewg!sFm@A
zO_JJ&e~|AZazl=A1r14@Hl~A6$9Y6Oa#MwCG<y7eO47TpV+kjbo52HKWsti<8)p$Y
z9OJq>j#!a|`7in~jti1KTYl=$#$-ehYr*-l_HHDq|JePPk@&W9OHwy?ow9EOeObBq
znKm$o7fHO^s10EZ{n*E%!e{Elh~%)V7}Sh)O<1=RpF<x|X2`42&;S4c07*qoM6N<$
Ef({U`lK=n!

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/close16_a.png b/FizzyLauncher.UI/Resources/close16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..25fc63244c4ebb4d67ac4fe0f893e9c281eb1584
GIT binary patch
literal 367
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l
zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+E%T^vI!dZ$iy^gC=I;CkO>
z<pYUO)l+@9r|7QmxU;gGZPQb!fX;Uo4xydF3KLiLyUM0`WE_sKwE6b=dqq#x%5_(c
zJ<PfyUMls9YX{T32HC?QOxF)ccW#r}@i97UshR5{UR%p><|#+zzjR7P%Dh^VpUb|W
zuaP%kWos0J=myW7@><mk-aGK#VOrZQ{lM^PAG4BEDPIlK_sm^v@01Qr4$rVW5Ggi4
zJ+IH&<7l+n?b5PV{?dDe6Rol*9!)M?Z@0zO=W%VEOX<Q}j7y%JOwVDgUGLzMQ-74{
z_P(vG?Rqj_RsAzq-gqVOo(Zwo^8CVC;|HRpv-Ul!-~V}Y)kju8Rng2BAC$fT!-2um
L)z4*}Q$iB}b%d0U

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/close16_b.png b/FizzyLauncher.UI/Resources/close16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..c02cdf0e09c2d9a8c5c6283505b31c941f7b7f5d
GIT binary patch
literal 468
zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10bxl*
zK~y-6jgwDG!(b4_e=m)Hj-UilO2wT^H#X2qR7$H<KEZS3B9>OD^ccms&;z)#hy{b*
zK+rVfq7iFbYTj;U-kW(de4moz(*yIY0~`T9#gGCISjqXh_|U|)P+CN7m@nf5Wmi6M
zWa4_~wtrD@IsmU>Q^1)A_(doGfxIuk_m<Vh)n?g1zn0Os+AJ^QE;M+nHTFu<C<$8~
zBl3*MOTt#CB#qu`jlFsP!qvBigK-kJdcb)SjsynK2D)3r!T8?>0<*a9lIrOvvdcW(
z3*!BYpKdExm?9FgjTzb|^+zpZE;uky5<Xq!wtLfCX6@vC{lmb`yI64WUTf^;;%*S{
zyCAMOpbNC~+Ugayhl7`iStW@3PDGiAvLNoeiCJZPIC%MY1%TbVo9EeBV9e!a9i&*c
zwyd}kQ%&jv51{&M*!+2(1;wg^?tQG}(4+%8!>r(URtmZ|W$qhAV}!e^5dtj$0000<
KMNUMnLSTZlBh&@}

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/edit16_a.png b/FizzyLauncher.UI/Resources/edit16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..031e3f604221f0e7d68be875e68412c8b19e089e
GIT binary patch
literal 612
zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000ip
z000ip0UQ`76951J8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10r5#h
zK~y-6b(6nqR6!8OKi}oBiAg2tBvuhw&!o6IU=fXlsRgYxg|;yfK@k%>N&JP;!hkk{
zRVu+~Z1NxY$nNDxqXYy=r$G<AyB(YN<mG%$wd~GkX1+5!qR*Pm=1DV~F|$cvB)|Rw
zY)D%5-p8`PibIU?keNLMt^(hIbu-%mkTeQRNg6V<=aQ~_?|=Udki+kQ2}$?b?e<cm
z(fC!)lx5j~b8g-_ciYT1C7mmR5JFf9A#_3r=ldn~Ta0l!#@OB3+Ij+@T=OSj(R;sG
z1+`kO)16M|Qm@y$Gd@24HH5Gr=@xLx<qiAMZnu~IlksA=+kGSHa;;W-4AATK?wi@Z
zna#Mo+w1+B3pl0p02l`L%<L7w*x1<5yvdUeI9hbO3YIhs>`A&=uh-v}Ty`Xl)F_Rz
z44c^_Nk<CUd;hXZq62pGIRmi0y*-*zS_TSuwhESX9N2Zh2Vg48vH^gU(uKV2Z#n$B
zqQb*wb{5!hl2#=RIp^l{0DF?|I_D;;U;s0_A!$(3DgYsbr!mHEjB&aO=*xcKBe`79
zteI^BYaxV%LQdJTEE@<REC6d}w&|RkgMXK4S<*E#+n4k{rPRuwPe?i=X)vYq%sDrA
yV43<#^k#O&%qArr17v2OC4H3i!h7E=`~Ly1e;M$j$(1+&0000<MNUMnLSTX}h8gJq

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/edit16_b.png b/FizzyLauncher.UI/Resources/edit16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9e93ab30d4ed2c5793f4eab9ad7689ab26568fc
GIT binary patch
literal 419
zcmV;U0bKrxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000ip
z000ip0UQ`76951J8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10We8K
zK~y-6jnlg>L{SvR@t;JdFsO8D5|@|IhypJ#m5!Q1H8FZd#HA7)3J*ZxDUgU4a4Co}
z6%!PDjXBPkVI?QoXRZBTXYKENoA#K*7Oqi`=L%I!<Tv+Z)`i%#h!>pUHfp1o!65dr
zj5j&>0`DlJ@0ZDnSVJTB7P7_NfaiVz^D!SywwsB`NR+!kQ#inIyjOx5Ckgh{VQeVj
z0iQU{9OoIEB(;zJ0Y6|iQ#-~b)Fg5Kf){f23TnN6{>m)8g&{m*6^9+BY&*gz?lWI5
zb>L1UgQ-d)7Nbzc2kyGS{gQ}Pl06$*IxI$$kxnCHJ(zE6??ht03)GA@Bhj*QLsGZc
z&M9gc=-bNq%d~+dyy6@;Q5(ZF2C#<}xyzJ|3CUrX(WoBls<3W0z5w(WQ9cjxl3D-&
N002ovPDHLkV1gdCtIYra

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/file16_a.png b/FizzyLauncher.UI/Resources/file16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0c9e5830ade13c518f1a0a7fb5c4e4f20407e41
GIT binary patch
literal 372
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?GJx_eO>q8-{0o#jg5}n
z9g>X_tOiC#_t=80Zr!@IUqOk7N1;}M!R*1StE;a!<V<){v_V7b1hbR^XUKL*kM=`6
zj^+>K12(Z}++-JXWeQ&xW63z>H+#w~#;bXZn+`j)9pFh|njA5wmragwuLSFoy^UXf
z-QJ$R*||lK?E$O9ZJ!1+Yvz}S9d3O--Y>s=VUUaD2I&<qnFXYc4GljszMSq5#jeH9
z$+N)zKl9;*99k{nG5czEvaI;0?;+2zcn5=82X`{FODm(DK^DUyhBuBq%nX;AVr+}j
zesLbrKCtMAqsRpYH(gy_TLE@U>+{T?OdXq84umfFr?P-?xdad}WKNiL#_{XZGGItC
Nc)I$ztaD0e0s!%Bg1i6#

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/file16_b.png b/FizzyLauncher.UI/Resources/file16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3e9f6d2179af7121d2314669151bada83185afe
GIT binary patch
literal 323
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sBufiR<}hF1en@P?<0V~B<S+shmI4hD!E`xwWpw!2(_TX47M
z88QAuf%iw;l1#i@l0=&?rfn9w@_){^u)ANf<PS{$bL-yiZ(A(i@*Xna@epU<qaeIa
z_>_mzch1Gq$$e+;8eZOfUvhDuXxoI>Z<;4FSAKHgGum`mj9+JAe$xE~D$Gfb_Ufni
z7#v^{&B$rov*qGpw%RufHG>j*wWC%%Y+_q<#CAgOdiK0!6}xON-0+;gM&xay`G2PQ
zOt+G*wXB{cw|r8~q%TRk64!0sue^WDo$FTu|J0^hdJ9TEnV5RN^Ixw)1@p4T61G!!
S%?<<o$l&Sf=d#Wzp$Pyn#DaSO

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/folder16_a.png b/FizzyLauncher.UI/Resources/folder16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..a97c4e0107de391e61dc628ff9a964c9e5063a99
GIT binary patch
literal 352
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8#x<#}Etux0CJp4?0L3dq1HsY2pXTU+zg8
zeyX+A@gyEQlqb~EpQNOkX??@6Wb^B}&)-g+64E8{canPf`^)>z-+dbOt}?FI(5&63
z!&xxsRAc6>xjSk&zt`3`Z)|F7-J~QH5X=#{UFURYn3YI@<L3(oJ!NkUj~AYrwd}2-
zt>fwwJ_jttCAK*V_`Ki{a*MzIbzRjOhYh_C1ebkJR#jNvvd?fa!=5|A|9&sX=bBqw
z_}4JvZ^yzP0u8$9uV$_<FL*5fp_}1OddKUN!Ht#6@)j&_uv+3@+3P8KY*Niv3t_J;
wNA`ES*0nZBa{XF+dEal7jD>TjT-wL<<V0!oL$}2<fC0eZ>FVdQ&MBb@0I8Ogm;e9(

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/folder16_b.png b/FizzyLauncher.UI/Resources/folder16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..d21178aa8cafb22ebfe50bf0379772d84075e671
GIT binary patch
literal 288
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8sr;#}Etux0m<wF*=I0J(Rp+#c94#sP)`j
zjhHs+1(#mC99+7BLvX5`?4s?*ey`Ov+iWj1W#1FeXLH`nnUiANX0q`pvtDAy_Kgt>
z`({cN-g>d1b*@z9#RhA)7pn!Ax7qqdta#{pJI^3+VJW*+#mk31-fh|?`8{_S-y0oW
z`^Bn$it?(JjOTVb)$O~faH{@5KU<52yXeMiVqQy{0_Lhp%~1Zkc=O`wSeX!(3x_|<
hFBYubZFY>sKU2UnWXUOwlRytJc)I$ztaD0e0suaOZf^hp

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/minus16_a.png b/FizzyLauncher.UI/Resources/minus16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b396d43dcd620706ec9a4eb0662e997b8117f02
GIT binary patch
literal 532
zcmV+v0_**WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ij7m
zK~y-6om0JPltC0d=Mrqz<PAhCMMm6aYrEBmn94UWpthQ%(Pm>O5kdSx+&3_!H6}Lu
z1`a!Sku(W;0}b&5&CapNM814RT|CwN+<VTPd*>1jj7FnNlIA6K0h}$zI{-FG_Cp9>
zkLS_C-A_q+2H-A$F96mhZ2<tu^8jW^&PaMq@<9mU`!9l${2ss+l8>vZTIqB;-|9*+
z#+I2an%N^s1CrN|NRU!`nNs?ZQo7l+)P%dwx%<IzID8HOES^6BSPmg9|BIjq_DDVi
zaM?=1zE)MWGD$K3jK||AlJ+FcTdDSX)AQfZZnyVwSmf>$fHRWb)jZzHIo~-c(ahe2
z5LU}}i{uSMt(E_SDFC~r&j5g;u=?keLy){6Y1aU30GN$2wkB0|_tTQD0oXK>eUdX~
zwm2z)q$QHmB>Mn>l+p`#KXCWC3Dl2$BrAUIOBw)JODXkEvJ+!$rIdOA)+7zgYytRv
zn4XfnCuxu5hn(~0a($8HRg%*==T~O7aBP?wPYjZ7OX`w52Y`~cNq!{xHiR&$$NvNo
W{^Fg|2zLko0000<MNUMnLSTaH$>?$b

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/minus16_b.png b/FizzyLauncher.UI/Resources/minus16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..9bb41283a7f3e8d7bdf81467b5391984bea3e424
GIT binary patch
literal 380
zcmV-?0fYXDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10SQS&
zK~y-6ozqP&Ltzxg@gI>6wCuoCLc0!;h?>{~#$wuF&J`hI14vi^39BfHbP+^!L<a`%
zDc5ap()LMia&pf3zaQs5FN12}1TW~u_lyknV)Ilku0+!|K5&mt)E2Rdd0b!@UkdOO
zzR|+$kdsxhk6!dv^2PIj*N1>bHDi&}exebH)(CK42f-|p2KH8R>@rpHj$_iauf~A;
zx<-2j3%Jb{HnCL#UE(g{4%Vjq|CJMI(kt9Z29rrctd0TKq#<S`d-f!gjH<(6eyx2L
ziRK9KhJum!vvN-|$*}9xayvf;Gw_&>u!B!L;5BMXSiziR`#punlviDHSUVQ#Mw|)j
a=Jf+%ay>&=(wun!0000<MNUMnLSTY9jGv<b

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/plus16_a.png b/FizzyLauncher.UI/Resources/plus16_a.png
new file mode 100644
index 0000000000000000000000000000000000000000..f63ace902d9e993fbf04de2688e18f9c4648530e
GIT binary patch
literal 559
zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10lY~>
zK~y-6om0zdR6!6urwDGw<PStwinQY(%-Y?Uh?tdsV1l~U#Eoty?j$0J4`k*K4A~}e
z+{_<%xz&SYqvQ`X=mkygabYLiv_XQk>ONgnr%qKDk=bN2xg=>pQV+n{1b+cAA~_5p
z#HK$F4l%}4lAZ&&3*ak&O-b7TK=M3*Ig&Gy-jI9{Lil-@AO&v#xJvR#RaL9qZudu%
zsVIt;nJt^yV@YF@*AJ4w-Cw!;FL%G0OUf<AI3Hu&E6ef)05EC(2w)|Iu#!370)P<0
zS`&BoKFLP_E?a8Yx2mdEb2dqfk`{A(e}Dg}q+Ll1mb$%}YyOvYI-T$M)8yV1fHRWb
zHOsE+`cArD0f4eBM*v`EZyR#9N!~CtM)^NB1z;!58Ngw~)&RiWw*a8sZqMd{BrizX
zF#zuY%oRn^Iw@<6@wB8_03#zgBspVd%g3+`NDgvb(nFHdB!@_)zKk*M#Te&Lz<%T-
zSz@{`X$)Z9-TTMMDT<=y?tK93lE!AX1pK{B&q&^rv`ccUuIo?f`69_{B&X}Ter;w;
xN0uooF-W>CsYmi00808y@&n012w~Fn{|yw|_65H@(}Ms2002ovPDHLkV1jc+^1c87

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/plus16_b.png b/FizzyLauncher.UI/Resources/plus16_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c29081e25aa7911ea1e9793e66094cb06efb9df
GIT binary patch
literal 398
zcmV;90df9`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10UJp~
zK~y-6ozp!|LQxO};7<w)QFmbMOcXlTfZ9mqBDB_;puJ#>KRYlk!JoJaAu%jMV?+z3
zuy_MJAMYjTNhY~>X3o7cbI)ZOHJqY{L0A_ZRI|x*sdYJ$_V9*V^dq*4Z7ksm2l$d9
zKjIrr%;!{AK?}pkEvJJQLEgzBX3>a4&PI+}IGQ=hyJ1-z1!tXPU@rw_--TsS!7JJ&
z)FlJ^oT2;?K7vy(VcBHbqp}~uHo`{xbUS^ll>C0mf1!u#f>_ZE;0E0i?j<6r{Nd6C
zY)RTul{`r+C$Z=mkApLo_IWrOGu%EUBqmZGN<@;^PQ^q(V<~4p(+T$RE*ai)#MZEh
sMO@-g<};;HMH^3X&>+?wA>A~70F4SmZKJ&MYXATM07*qoM6N<$f>mIi`~Uy|

literal 0
HcmV?d00001

diff --git a/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/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..f0ec21a 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.Resources.close16_b;
             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.Resources.close16_a;
             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 98%
rename from RyzStudio/Windows/ThemedForms/TDialogForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
index f6d451e..2f2b440 100644
--- a/RyzStudio/Windows/ThemedForms/TDialogForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
@@ -5,7 +5,7 @@
     using System.Drawing;
     using System.Drawing.Design;
     using System.Windows.Forms;
-    using Resources = AppLauncher.Properties.Resources;
+//    using Resources = AppLauncher.Properties.Resources;
 
     public partial class TDialogForm : System.Windows.Forms.Form
     {
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 86%
rename from RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
index 1327b26..ec17cc5 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.Resources;
 
 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.folder16_a;
+            this.HighlightImage = Resources.folder16_b;
             this.Text = string.Empty;
         }
 
diff --git a/RyzStudio/Windows/ThemedForms/TForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TForm.Designer.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
diff --git a/RyzStudio/Windows/ThemedForms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.cs
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.cs
diff --git a/RyzStudio/Windows/ThemedForms/TForm.resx b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.resx
similarity index 100%
rename from RyzStudio/Windows/ThemedForms/TForm.resx
rename to FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.resx
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..bab75f5 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.Resources.edit16_b;
+            this.imageBox5.Image = global::AppLauncher.Properties.Resources.edit16_a;
             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.Resources.edit16_a;
             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.Resources.arrow_down16_b;
+            this.imageBox4.Image = global::AppLauncher.Properties.Resources.arrow_down16_a;
             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.Resources.arrow_down16_a;
             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.Resources.arrow_up16_b;
+            this.imageBox3.Image = global::AppLauncher.Properties.Resources.arrow_up16_a;
             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.Resources.arrow_up16_a;
             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.Resources.minus16_b;
+            this.imageBox2.Image = global::AppLauncher.Properties.Resources.minus16_a;
             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.Resources.minus16_a;
             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.Resources.plus16_b;
+            this.imageBox1.Image = global::AppLauncher.Properties.Resources.plus16_a;
             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.Resources.plus16_a;
             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..cca78a3 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.Resources;
 
 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.file16_a;
+            this.HighlightImage = Resources.file16_b;
             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..c39b609 100644
--- a/FizzyLauncher.csproj
+++ b/FizzyLauncher.csproj
@@ -78,71 +78,6 @@
       <DesignTime>True</DesignTime>
       <DependentUpon>Resource1.resx</DependentUpon>
     </Compile>
-    <Compile Include="RyzStudio\Drawing\Rectangoid.cs" />
-    <Compile Include="RyzStudio\Windows\Forms\TFlatButton.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\Forms\THorizontalSeparator.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\Forms\THorizontalSeparator.Designer.cs">
-      <DependentUpon>THorizontalSeparator.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\Forms\ThreadControl.cs" />
-    <Compile Include="RyzStudio\Windows\Forms\TImageBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TButton.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TButton.designer.cs">
-      <DependentUpon>TButton.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TDialogForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TDialogForm.Designer.cs">
-      <DependentUpon>TDialogForm.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TListBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TListBox.designer.cs">
-      <DependentUpon>TListBox.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TFolderTextBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TOpenFileTextBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TPickerBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TPickerBox.designer.cs">
-      <DependentUpon>TPickerBox.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TTextBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TTextBox.designer.cs">
-      <DependentUpon>TTextBox.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.designer.cs">
-      <DependentUpon>TButtonTextBox.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TUserControl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TUserControl.designer.cs">
-      <DependentUpon>TUserControl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="RyzStudio\Windows\ThemedForms\TYesNoPickerBox.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
     <Compile Include="Windows\Forms\Tile\AddTileForm.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -164,9 +99,6 @@
     <Compile Include="Windows\Forms\AForm.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Windows\Forms\AUserControl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
     <Compile Include="Windows\Forms\Tile\TTilePanelLayout.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -190,24 +122,6 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resource1.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TButton.resx">
-      <DependentUpon>TButton.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TDialogForm.resx">
-      <DependentUpon>TDialogForm.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TListBox.resx">
-      <DependentUpon>TListBox.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TPickerBox.resx">
-      <DependentUpon>TPickerBox.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TTextBox.resx">
-      <DependentUpon>TTextBox.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TButtonTextBox.resx">
-      <DependentUpon>TButtonTextBox.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="Windows\Forms\AForm.resx">
       <DependentUpon>AForm.cs</DependentUpon>
     </EmbeddedResource>
@@ -260,7 +174,13 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="favicon.ico" />
-    <None Include="RyzStudio\Windows\Forms\Resources\maximise3_20.png" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="FizzyLauncher.UI\FizzyLauncher.UI.csproj">
+      <Project>{d9a49347-583f-41b4-afe1-63ec80bbdb38}</Project>
+      <Name>FizzyLauncher.UI</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file
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
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Component Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        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/Windows/Forms/AForm.cs b/Windows/Forms/AForm.cs
index 1d75d60..4e1e9ac 100644
--- a/Windows/Forms/AForm.cs
+++ b/Windows/Forms/AForm.cs
@@ -13,6 +13,7 @@ namespace AppLauncher.Windows.Forms
         protected readonly Color backColour = Color.FromArgb(254, 254, 254);
 
         protected readonly Color titleBarColour = Color.FromArgb(237, 240, 247);
+        protected readonly Color titleBorderColour = Color.FromArgb(232, 231, 236);
         protected readonly Color titleColour = Color.FromArgb(156, 158, 171);
         protected readonly int titleBarHeight = 56;
 
@@ -158,7 +159,7 @@ namespace AppLauncher.Windows.Forms
             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));
+            g.DrawLine(new Pen(titleBorderColour, 1), area.X, (titleBarHeight + 1), (area.Width + area.X), (titleBarHeight + 1));
 
             if (!DesignMode) g.DrawImageUnscaled(Properties.Resources.app_icon_24, 17, 17);
 
diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs
index 8136700..48d2d8c 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();
diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs
index 5a2a515..64b5b1f 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
         {
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

From 76d3b5a425261eb237bcc5cd3d96b1addd0bc41c Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Wed, 21 Oct 2020 02:17:24 +0100
Subject: [PATCH 02/15] Changed: clean-up

---
 FizzyLauncher.UI/FizzyLauncher.UI.csproj      |  76 +++--
 FizzyLauncher.UI/FizzyLauncher.UI.csproj.user |   6 +
 ...es.Designer.cs => Resources16.Designer.cs} |  70 ++---
 .../{Resources.resx => Resources16.resx}      |  64 ++--
 .../Properties/Resources20.Designer.cs        | 133 ++++++++
 .../Resources20.resx}                         |  22 ++
 .../Resources/16}/arrow_down.png              | Bin
 .../Resources/16}/arrow_down2.png             | Bin
 .../Resources/16}/arrow_up.png                | Bin
 .../Resources/16}/arrow_up2.png               | Bin
 .../Resources/{close16_a.png => 16/close.png} | Bin
 .../{close16_b.png => 16/close2.png}          | Bin
 .../Resources/16}/edit.png                    | Bin
 .../Resources/16}/edit2.png                   | Bin
 .../Resources/16}/file.png                    | Bin
 .../Resources/16}/file2.png                   | Bin
 .../Resources/16}/folder.png                  | Bin
 .../Resources/16}/folder2.png                 | Bin
 .../Resources/16}/minus.png                   | Bin
 .../Resources/16}/minus2.png                  | Bin
 .../Resources/16}/plus.png                    | Bin
 .../Resources/16}/plus2.png                   | Bin
 .../Resources/20/close.png                    | Bin
 .../Resources/20/close2.png                   | Bin
 .../Resources/20/maximise.png                 | Bin
 .../Resources/20/maximise2.png                | Bin
 .../Resources/20/maximise3.png                | Bin
 .../Resources/20/minimise.png                 | Bin
 .../Resources/20/minimise2.png                | Bin
 FizzyLauncher.UI/Resources/arrow_down16_a.png | Bin 601 -> 0 bytes
 FizzyLauncher.UI/Resources/arrow_down16_b.png | Bin 417 -> 0 bytes
 FizzyLauncher.UI/Resources/arrow_up16_a.png   | Bin 590 -> 0 bytes
 FizzyLauncher.UI/Resources/arrow_up16_b.png   | Bin 410 -> 0 bytes
 FizzyLauncher.UI/Resources/edit16_a.png       | Bin 612 -> 0 bytes
 FizzyLauncher.UI/Resources/edit16_b.png       | Bin 419 -> 0 bytes
 FizzyLauncher.UI/Resources/file16_a.png       | Bin 372 -> 0 bytes
 FizzyLauncher.UI/Resources/file16_b.png       | Bin 323 -> 0 bytes
 FizzyLauncher.UI/Resources/folder16_a.png     | Bin 352 -> 0 bytes
 FizzyLauncher.UI/Resources/folder16_b.png     | Bin 288 -> 0 bytes
 FizzyLauncher.UI/Resources/minus16_a.png      | Bin 532 -> 0 bytes
 FizzyLauncher.UI/Resources/minus16_b.png      | Bin 380 -> 0 bytes
 FizzyLauncher.UI/Resources/plus16_a.png       | Bin 559 -> 0 bytes
 FizzyLauncher.UI/Resources/plus16_b.png       | Bin 398 -> 0 bytes
 .../RyzStudio/Windows/Forms/TForm.cs          |  35 ++-
 .../RyzStudio/Windows/Forms/TForm.resx        |   0
 .../ThemedForms/TDialogForm.Designer.cs       |   4 +-
 .../Windows/ThemedForms/TDialogForm.cs        |  11 +-
 .../Windows/ThemedForms/TFolderTextBox.cs     |   6 +-
 .../Windows/ThemedForms/TForm.Designer.cs     |  52 ----
 .../RyzStudio/Windows/ThemedForms/TForm.cs    | 173 -----------
 .../Windows/ThemedForms/TListBox.designer.cs  |  30 +-
 .../Windows/ThemedForms/TOpenFileTextBox.cs   |   6 +-
 FizzyLauncher.csproj                          |  15 -
 MainForm.cs                                   |   3 +-
 Resource1.Designer.cs                         | 293 ------------------
 Resource1.resx                                | 190 ------------
 .../Windows/Forms/Resources/close2_16.png     | Bin 468 -> 0 bytes
 .../Windows/Forms/Resources/close_16.png      | Bin 367 -> 0 bytes
 installer.iss                                 |  51 ---
 59 files changed, 335 insertions(+), 905 deletions(-)
 create mode 100644 FizzyLauncher.UI/FizzyLauncher.UI.csproj.user
 rename FizzyLauncher.UI/Properties/{Resources.Designer.cs => Resources16.Designer.cs} (75%)
 rename FizzyLauncher.UI/Properties/{Resources.resx => Resources16.resx} (71%)
 create mode 100644 FizzyLauncher.UI/Properties/Resources20.Designer.cs
 rename FizzyLauncher.UI/{RyzStudio/Windows/ThemedForms/TForm.resx => Properties/Resources20.resx} (75%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/arrow_down.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/arrow_down2.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/arrow_up.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/arrow_up2.png (100%)
 rename FizzyLauncher.UI/Resources/{close16_a.png => 16/close.png} (100%)
 rename FizzyLauncher.UI/Resources/{close16_b.png => 16/close2.png} (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/edit.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/edit2.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/file.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/file2.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/folder.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/folder2.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/minus.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/minus2.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/plus.png (100%)
 rename {RyzStudio/Windows/Forms/Resources => FizzyLauncher.UI/Resources/16}/plus2.png (100%)
 rename RyzStudio/Windows/Forms/Resources/close_20.png => FizzyLauncher.UI/Resources/20/close.png (100%)
 rename RyzStudio/Windows/Forms/Resources/close2_20.png => FizzyLauncher.UI/Resources/20/close2.png (100%)
 rename RyzStudio/Windows/Forms/Resources/maximise_20.png => FizzyLauncher.UI/Resources/20/maximise.png (100%)
 rename RyzStudio/Windows/Forms/Resources/maximise2_20.png => FizzyLauncher.UI/Resources/20/maximise2.png (100%)
 rename RyzStudio/Windows/Forms/Resources/maximise3_20.png => FizzyLauncher.UI/Resources/20/maximise3.png (100%)
 rename RyzStudio/Windows/Forms/Resources/minimise_20.png => FizzyLauncher.UI/Resources/20/minimise.png (100%)
 rename RyzStudio/Windows/Forms/Resources/minimise2_20.png => FizzyLauncher.UI/Resources/20/minimise2.png (100%)
 delete mode 100644 FizzyLauncher.UI/Resources/arrow_down16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/arrow_down16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/arrow_up16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/arrow_up16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/edit16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/edit16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/file16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/file16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/folder16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/folder16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/minus16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/minus16_b.png
 delete mode 100644 FizzyLauncher.UI/Resources/plus16_a.png
 delete mode 100644 FizzyLauncher.UI/Resources/plus16_b.png
 rename Windows/Forms/AForm.cs => FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs (92%)
 rename Windows/Forms/AForm.resx => FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.resx (100%)
 delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
 delete mode 100644 FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.cs
 delete mode 100644 Resource1.Designer.cs
 delete mode 100644 Resource1.resx
 delete mode 100644 RyzStudio/Windows/Forms/Resources/close2_16.png
 delete mode 100644 RyzStudio/Windows/Forms/Resources/close_16.png
 delete mode 100644 installer.iss

diff --git a/FizzyLauncher.UI/FizzyLauncher.UI.csproj b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
index 23e9e57..34ecce2 100644
--- a/FizzyLauncher.UI/FizzyLauncher.UI.csproj
+++ b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
@@ -47,12 +47,20 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Properties\Resources.Designer.cs">
+    <Compile Include="Properties\Resources16.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
+      <DependentUpon>Resources16.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Resources20.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources20.resx</DependentUpon>
     </Compile>
     <Compile Include="RyzStudio\Drawing\Rectangoid.cs" />
+    <Compile Include="RyzStudio\Windows\Forms\TForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="RyzStudio\Windows\Forms\TUserControl.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -122,9 +130,16 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="Properties\Resources.resx">
+    <EmbeddedResource Include="Properties\Resources16.resx">
       <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <LastGenOutput>Resources16.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources20.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources20.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RyzStudio\Windows\Forms\TForm.resx">
+      <DependentUpon>TForm.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="RyzStudio\Windows\ThemedForms\TButton.resx">
       <DependentUpon>TButton.cs</DependentUpon>
@@ -146,52 +161,73 @@
     </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\close16_a.png" />
+    <None Include="Resources\20\close.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\close16_b.png" />
+    <None Include="Resources\20\close2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\file16_a.png" />
+    <None Include="Resources\20\maximise.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\file16_b.png" />
+    <None Include="Resources\20\maximise2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\folder16_a.png" />
+    <None Include="Resources\20\maximise3.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\folder16_b.png" />
+    <None Include="Resources\20\minimise.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\edit16_a.png" />
+    <None Include="Resources\20\minimise2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\edit16_b.png" />
+    <None Include="Resources\16\arrow_down.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\arrow_down16_a.png" />
+    <None Include="Resources\16\arrow_down2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\arrow_down16_b.png" />
+    <None Include="Resources\16\arrow_up.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\arrow_up16_a.png" />
+    <None Include="Resources\16\arrow_up2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\arrow_up16_b.png" />
+    <None Include="Resources\16\close.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\minus16_a.png" />
+    <None Include="Resources\16\close2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\minus16_b.png" />
+    <None Include="Resources\16\edit.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\plus16_a.png" />
+    <None Include="Resources\16\edit2.png" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Resources\plus16_b.png" />
+    <None Include="Resources\16\file.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\file2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\folder.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\folder2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\minus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\minus2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\plus.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\16\plus2.png" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ 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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <ProjectView>ProjectFiles</ProjectView>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/FizzyLauncher.UI/Properties/Resources.Designer.cs b/FizzyLauncher.UI/Properties/Resources16.Designer.cs
similarity index 75%
rename from FizzyLauncher.UI/Properties/Resources.Designer.cs
rename to FizzyLauncher.UI/Properties/Resources16.Designer.cs
index 40f0b6b..a48b080 100644
--- a/FizzyLauncher.UI/Properties/Resources.Designer.cs
+++ b/FizzyLauncher.UI/Properties/Resources16.Designer.cs
@@ -22,14 +22,14 @@ namespace AppLauncher.Properties {
     [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 {
+    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 Resources() {
+        internal Resources16() {
         }
         
         /// <summary>
@@ -39,7 +39,7 @@ namespace AppLauncher.Properties {
         internal static global::System.Resources.ResourceManager ResourceManager {
             get {
                 if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources", typeof(Resources).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AppLauncher.Properties.Resources16", typeof(Resources16).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
@@ -63,9 +63,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap arrow_down16_a {
+        internal static System.Drawing.Bitmap arrow_down {
             get {
-                object obj = ResourceManager.GetObject("arrow_down16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("arrow_down", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -73,9 +73,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap arrow_down16_b {
+        internal static System.Drawing.Bitmap arrow_down2 {
             get {
-                object obj = ResourceManager.GetObject("arrow_down16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("arrow_down2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -83,9 +83,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap arrow_up16_a {
+        internal static System.Drawing.Bitmap arrow_up {
             get {
-                object obj = ResourceManager.GetObject("arrow_up16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("arrow_up", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -93,9 +93,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap arrow_up16_b {
+        internal static System.Drawing.Bitmap arrow_up2 {
             get {
-                object obj = ResourceManager.GetObject("arrow_up16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("arrow_up2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -103,9 +103,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap close16_a {
+        internal static System.Drawing.Bitmap close {
             get {
-                object obj = ResourceManager.GetObject("close16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("close", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -113,9 +113,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap close16_b {
+        internal static System.Drawing.Bitmap close2 {
             get {
-                object obj = ResourceManager.GetObject("close16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("close2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -123,9 +123,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap edit16_a {
+        internal static System.Drawing.Bitmap edit {
             get {
-                object obj = ResourceManager.GetObject("edit16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("edit", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -133,9 +133,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap edit16_b {
+        internal static System.Drawing.Bitmap edit2 {
             get {
-                object obj = ResourceManager.GetObject("edit16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("edit2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -143,9 +143,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap file16_a {
+        internal static System.Drawing.Bitmap file {
             get {
-                object obj = ResourceManager.GetObject("file16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("file", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -153,9 +153,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap file16_b {
+        internal static System.Drawing.Bitmap file2 {
             get {
-                object obj = ResourceManager.GetObject("file16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("file2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -163,9 +163,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap folder16_a {
+        internal static System.Drawing.Bitmap folder {
             get {
-                object obj = ResourceManager.GetObject("folder16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("folder", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -173,9 +173,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap folder16_b {
+        internal static System.Drawing.Bitmap folder2 {
             get {
-                object obj = ResourceManager.GetObject("folder16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("folder2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -183,9 +183,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap minus16_a {
+        internal static System.Drawing.Bitmap minus {
             get {
-                object obj = ResourceManager.GetObject("minus16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("minus", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -193,9 +193,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap minus16_b {
+        internal static System.Drawing.Bitmap minus2 {
             get {
-                object obj = ResourceManager.GetObject("minus16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("minus2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -203,9 +203,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap plus16_a {
+        internal static System.Drawing.Bitmap plus {
             get {
-                object obj = ResourceManager.GetObject("plus16_a", resourceCulture);
+                object obj = ResourceManager.GetObject("plus", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
@@ -213,9 +213,9 @@ namespace AppLauncher.Properties {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        internal static System.Drawing.Bitmap plus16_b {
+        internal static System.Drawing.Bitmap plus2 {
             get {
-                object obj = ResourceManager.GetObject("plus16_b", resourceCulture);
+                object obj = ResourceManager.GetObject("plus2", resourceCulture);
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
diff --git a/FizzyLauncher.UI/Properties/Resources.resx b/FizzyLauncher.UI/Properties/Resources16.resx
similarity index 71%
rename from FizzyLauncher.UI/Properties/Resources.resx
rename to FizzyLauncher.UI/Properties/Resources16.resx
index a71d849..78ba89b 100644
--- a/FizzyLauncher.UI/Properties/Resources.resx
+++ b/FizzyLauncher.UI/Properties/Resources16.resx
@@ -118,52 +118,52 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="arrow_down16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow_down16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="arrow_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="arrow_down16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow_down16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="arrow_down2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\arrow_down2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="arrow_up16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow_up16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="arrow_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="arrow_up16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\arrow_up16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="arrow_up2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\arrow_up2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="close16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\close16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="close" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="close16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\close16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="close2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="edit16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\edit16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="edit16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\edit16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="edit2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\edit2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="file16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\file16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="file16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\file16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="file2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\file2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="folder16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\folder16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="folder16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\folder16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="folder2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="minus16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\minus16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="minus16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\minus16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="minus2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\minus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="plus16_a" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\plus16_a.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="plus16_b" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\plus16_b.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="plus2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\16\plus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>
\ 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..8614271
--- /dev/null
+++ b/FizzyLauncher.UI/Properties/Resources20.Designer.cs
@@ -0,0 +1,133 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace AppLauncher.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // 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() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [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;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap close {
+            get {
+                object obj = ResourceManager.GetObject("close", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap close2 {
+            get {
+                object obj = ResourceManager.GetObject("close2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap maximise {
+            get {
+                object obj = ResourceManager.GetObject("maximise", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap maximise2 {
+            get {
+                object obj = ResourceManager.GetObject("maximise2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap maximise3 {
+            get {
+                object obj = ResourceManager.GetObject("maximise3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap minimise {
+            get {
+                object obj = ResourceManager.GetObject("minimise", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap minimise2 {
+            get {
+                object obj = ResourceManager.GetObject("minimise2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}
diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.resx b/FizzyLauncher.UI/Properties/Resources20.resx
similarity index 75%
rename from FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.resx
rename to FizzyLauncher.UI/Properties/Resources20.resx
index 1af7de1..ec8e6d8 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.resx
+++ b/FizzyLauncher.UI/Properties/Resources20.resx
@@ -117,4 +117,26 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="close" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="maximise" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\maximise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="maximise2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\maximise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="maximise3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\maximise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="minimise" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\minimise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="minimise2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\minimise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
 </root>
\ 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/FizzyLauncher.UI/Resources/close16_a.png b/FizzyLauncher.UI/Resources/16/close.png
similarity index 100%
rename from FizzyLauncher.UI/Resources/close16_a.png
rename to FizzyLauncher.UI/Resources/16/close.png
diff --git a/FizzyLauncher.UI/Resources/close16_b.png b/FizzyLauncher.UI/Resources/16/close2.png
similarity index 100%
rename from FizzyLauncher.UI/Resources/close16_b.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/RyzStudio/Windows/Forms/Resources/close_20.png b/FizzyLauncher.UI/Resources/20/close.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/close_20.png
rename to FizzyLauncher.UI/Resources/20/close.png
diff --git a/RyzStudio/Windows/Forms/Resources/close2_20.png b/FizzyLauncher.UI/Resources/20/close2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/close2_20.png
rename to FizzyLauncher.UI/Resources/20/close2.png
diff --git a/RyzStudio/Windows/Forms/Resources/maximise_20.png b/FizzyLauncher.UI/Resources/20/maximise.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/maximise_20.png
rename to FizzyLauncher.UI/Resources/20/maximise.png
diff --git a/RyzStudio/Windows/Forms/Resources/maximise2_20.png b/FizzyLauncher.UI/Resources/20/maximise2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/maximise2_20.png
rename to FizzyLauncher.UI/Resources/20/maximise2.png
diff --git a/RyzStudio/Windows/Forms/Resources/maximise3_20.png b/FizzyLauncher.UI/Resources/20/maximise3.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/maximise3_20.png
rename to FizzyLauncher.UI/Resources/20/maximise3.png
diff --git a/RyzStudio/Windows/Forms/Resources/minimise_20.png b/FizzyLauncher.UI/Resources/20/minimise.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/minimise_20.png
rename to FizzyLauncher.UI/Resources/20/minimise.png
diff --git a/RyzStudio/Windows/Forms/Resources/minimise2_20.png b/FizzyLauncher.UI/Resources/20/minimise2.png
similarity index 100%
rename from RyzStudio/Windows/Forms/Resources/minimise2_20.png
rename to FizzyLauncher.UI/Resources/20/minimise2.png
diff --git a/FizzyLauncher.UI/Resources/arrow_down16_a.png b/FizzyLauncher.UI/Resources/arrow_down16_a.png
deleted file mode 100644
index cccf233e96a5deccc73a84bdfff320ebbdfafc31..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 601
zcmV-f0;c_mP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10p>|W
zK~y-6eN#PaR6!Iy=Mro-30PSKiIpPraGR~|R%2l*e}HHL+OCNp+H6D%i7rT@MYhmh
z(i)A;{sSL-=OJm7fImQkE@*a-h4bX)1w7SoKjxlu?hH{wQ52b^B}r`n^C|oVz%I#t
z2q9MMSsr4HCnWU%+yd|oz>cIn03dl5zyirxNiRv>2_gLYcR^}?3*aKjhojMGz13>{
ztWL`FykTamX7)hRfaI0(61e-OyZ?6gt940r#26Q2jEBSF@Hqf5Y5oXcErhUEE4~H*
zA%r*8xVv{r-Uo2Ol40LRqtSYOnxth(%k}tpJbohSK+=*Ww|DBA|A%I?`2&AVZX1Bp
zrQ0R#;c)m^l2w>kjPX$^DPfP~{1hsyOqeEluPBOBBnbdTQEW-N0pNO_%@lzBv}XW7
z2;r5xpOo~B<k!TY4WN@{+3T{7<T*+E2H-t_g*?w2WirdM9)OOdIZ1P=xmS@nE$K3V
zT_f2iIcsLCRcfhW!^}3T&56-nk~1Xx004L2h%p|<7#ELweiZeGWJym)(g47=yLYQ{
zO5}OoaQ7~NZAk+&TLF%Lrl%xtOFAI=ZZesCO6l_?FOi&?OeQbPY~{#js!<G*Zc1vC
nJOhA|K9l@Faw~*TRO|l$hQb)jyjdwG00000NkvXXu0mjf^)LpI

diff --git a/FizzyLauncher.UI/Resources/arrow_down16_b.png b/FizzyLauncher.UI/Resources/arrow_down16_b.png
deleted file mode 100644
index 5b0b11556cd01e9e14cfc44d5acb34d204a173a1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 417
zcmV;S0bc%zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10WL{I
zK~y-6jnlm@#8D6h@SlxrVbQ8YCt<w?(b&oZh>B8ZG=hYV6`zG(JOYKMKq6{25g!Gc
zP~6$wzw0k?l1XmP%$dxcdoI5*fj!*fHR1+M)brw=!nqnn3wXu_?jtvfX$;~7%lMFq
zukeXA^p#9j!#Y|~TP-G!LOfF<%+ZJ@`)y((h_#a9*@zq)p&2JF?D3DWFC%i)@Pyq8
zCZ&bF|6}|%-a<23!LaVO+hcE|Qs64s^7A_P80q!%DWM;$7%JpWF^{>jac*&zaZC8Z
zL&R5bMVw0p)0CE2`=d#jxL;aglVs19WRe^QI4t2eL({SLVGxay;vBz>MAynK$t3x8
z1lKlD$IAI<+QA}TBm><=ZVXcxz%f>2pQ(sCc5xkzUgO*p)-B>2nOsV+E0#r300000
LNkvXXu0mjf{w}h~

diff --git a/FizzyLauncher.UI/Resources/arrow_up16_a.png b/FizzyLauncher.UI/Resources/arrow_up16_a.png
deleted file mode 100644
index a08438ba358ad09ba06ed091b453a749822880e9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 590
zcmV-U0<ryxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ozGL
zK~y-6jZ?d7R8bUNYa=#e@&^(t#e2kQrnVc6h4}>q6HrW}CN{B|2nrHM@L9~@7lgD%
zV>5r?W%d~)jS|QQXp9#$bC=DTaC22~Rhxa*eynxQA!-<nM&~5WOKJm{N$D>Dwn+9v
z2(ilNB#1E{m-H0C4FF#OY)aY&0FtKx%#xgz^qS<|5W>&H2C4WhfD0ra6h*PtYPEh;
zC*^tGFtcSdyDw=#^75n!-2J7y|8n;$bxC!^80TV)2gBj;82~V8{s>?-gs@sAyZdu9
zW0qx$wS0%<3V`#L4Et6T#afMY8^B^&mbX%Ti1B#*Skj)Pc}s3@RyC)BF3DYzy8yb?
zCe3DZKbhP%04FDICym!q@f!dm0HYLl-Ti81k!_MQhRRhYe3$en%d!O}WLdUA@*&Cn
zx~azi?4)}J0E7_M0jwt}005FDfR$<?$up9648VH;vw5C3>fQf^7~=^^mjG-T$v(+x
zGh40`N%lzg>Ul}`NKTRLBdz)(#&{58ocoXIM;?-;Np~a-0BpE>=WlZIJa4#r2f&7;
zftf7<e}1MXByUREBl)f@%TMX}EXj)`r^>Q?WoAo9K2vSQAnCfKHpx=}DCslF4<vgb
cgi)3M8%|0O&HO-)KL7v#07*qoM6N<$g0V#Ue*gdg

diff --git a/FizzyLauncher.UI/Resources/arrow_up16_b.png b/FizzyLauncher.UI/Resources/arrow_up16_b.png
deleted file mode 100644
index 07c1797bf4de4fbe3e64cb44f2e1ebf9e1a99805..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 410
zcmV;L0cHM)P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10VhdB
zK~y-6jnlm@#6c7V@E?&aEFMGR<2l&IR(cu<rBI5XQL*B)+7@r%E1m+0s1+(=t%gk~
z<}T}RBu;XZ$-Vd7nK^TY-x$RfZqSUlMhzpy=B|!)DVk>Sj8oi2Z4ea<-~bDFQy^dB
z9n0v=oUDu$w4%4vS=<ZqM21*IHHK`r6Qhw>&NS~}H<Mot&M--^$IP+k@ewg!sFm@A
zO_JJ&e~|AZazl=A1r14@Hl~A6$9Y6Oa#MwCG<y7eO47TpV+kjbo52HKWsti<8)p$Y
z9OJq>j#!a|`7in~jti1KTYl=$#$-ehYr*-l_HHDq|JePPk@&W9OHwy?ow9EOeObBq
znKm$o7fHO^s10EZ{n*E%!e{Elh~%)V7}Sh)O<1=RpF<x|X2`42&;S4c07*qoM6N<$
Ef({U`lK=n!

diff --git a/FizzyLauncher.UI/Resources/edit16_a.png b/FizzyLauncher.UI/Resources/edit16_a.png
deleted file mode 100644
index 031e3f604221f0e7d68be875e68412c8b19e089e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 612
zcmV-q0-ODbP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000ip
z000ip0UQ`76951J8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10r5#h
zK~y-6b(6nqR6!8OKi}oBiAg2tBvuhw&!o6IU=fXlsRgYxg|;yfK@k%>N&JP;!hkk{
zRVu+~Z1NxY$nNDxqXYy=r$G<AyB(YN<mG%$wd~GkX1+5!qR*Pm=1DV~F|$cvB)|Rw
zY)D%5-p8`PibIU?keNLMt^(hIbu-%mkTeQRNg6V<=aQ~_?|=Udki+kQ2}$?b?e<cm
z(fC!)lx5j~b8g-_ciYT1C7mmR5JFf9A#_3r=ldn~Ta0l!#@OB3+Ij+@T=OSj(R;sG
z1+`kO)16M|Qm@y$Gd@24HH5Gr=@xLx<qiAMZnu~IlksA=+kGSHa;;W-4AATK?wi@Z
zna#Mo+w1+B3pl0p02l`L%<L7w*x1<5yvdUeI9hbO3YIhs>`A&=uh-v}Ty`Xl)F_Rz
z44c^_Nk<CUd;hXZq62pGIRmi0y*-*zS_TSuwhESX9N2Zh2Vg48vH^gU(uKV2Z#n$B
zqQb*wb{5!hl2#=RIp^l{0DF?|I_D;;U;s0_A!$(3DgYsbr!mHEjB&aO=*xcKBe`79
zteI^BYaxV%LQdJTEE@<REC6d}w&|RkgMXK4S<*E#+n4k{rPRuwPe?i=X)vYq%sDrA
yV43<#^k#O&%qArr17v2OC4H3i!h7E=`~Ly1e;M$j$(1+&0000<MNUMnLSTX}h8gJq

diff --git a/FizzyLauncher.UI/Resources/edit16_b.png b/FizzyLauncher.UI/Resources/edit16_b.png
deleted file mode 100644
index b9e93ab30d4ed2c5793f4eab9ad7689ab26568fc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 419
zcmV;U0bKrxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000ip
z000ip0UQ`76951J8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10We8K
zK~y-6jnlg>L{SvR@t;JdFsO8D5|@|IhypJ#m5!Q1H8FZd#HA7)3J*ZxDUgU4a4Co}
z6%!PDjXBPkVI?QoXRZBTXYKENoA#K*7Oqi`=L%I!<Tv+Z)`i%#h!>pUHfp1o!65dr
zj5j&>0`DlJ@0ZDnSVJTB7P7_NfaiVz^D!SywwsB`NR+!kQ#inIyjOx5Ckgh{VQeVj
z0iQU{9OoIEB(;zJ0Y6|iQ#-~b)Fg5Kf){f23TnN6{>m)8g&{m*6^9+BY&*gz?lWI5
zb>L1UgQ-d)7Nbzc2kyGS{gQ}Pl06$*IxI$$kxnCHJ(zE6??ht03)GA@Bhj*QLsGZc
z&M9gc=-bNq%d~+dyy6@;Q5(ZF2C#<}xyzJ|3CUrX(WoBls<3W0z5w(WQ9cjxl3D-&
N002ovPDHLkV1gdCtIYra

diff --git a/FizzyLauncher.UI/Resources/file16_a.png b/FizzyLauncher.UI/Resources/file16_a.png
deleted file mode 100644
index d0c9e5830ade13c518f1a0a7fb5c4e4f20407e41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 372
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sBufiR<}hF1en1E;5pV~B-+@}K|z?GJx_eO>q8-{0o#jg5}n
z9g>X_tOiC#_t=80Zr!@IUqOk7N1;}M!R*1StE;a!<V<){v_V7b1hbR^XUKL*kM=`6
zj^+>K12(Z}++-JXWeQ&xW63z>H+#w~#;bXZn+`j)9pFh|njA5wmragwuLSFoy^UXf
z-QJ$R*||lK?E$O9ZJ!1+Yvz}S9d3O--Y>s=VUUaD2I&<qnFXYc4GljszMSq5#jeH9
z$+N)zKl9;*99k{nG5czEvaI;0?;+2zcn5=82X`{FODm(DK^DUyhBuBq%nX;AVr+}j
zesLbrKCtMAqsRpYH(gy_TLE@U>+{T?OdXq84umfFr?P-?xdad}WKNiL#_{XZGGItC
Nc)I$ztaD0e0s!%Bg1i6#

diff --git a/FizzyLauncher.UI/Resources/file16_b.png b/FizzyLauncher.UI/Resources/file16_b.png
deleted file mode 100644
index f3e9f6d2179af7121d2314669151bada83185afe..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 323
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sBufiR<}hF1en@P?<0V~B<S+shmI4hD!E`xwWpw!2(_TX47M
z88QAuf%iw;l1#i@l0=&?rfn9w@_){^u)ANf<PS{$bL-yiZ(A(i@*Xna@epU<qaeIa
z_>_mzch1Gq$$e+;8eZOfUvhDuXxoI>Z<;4FSAKHgGum`mj9+JAe$xE~D$Gfb_Ufni
z7#v^{&B$rov*qGpw%RufHG>j*wWC%%Y+_q<#CAgOdiK0!6}xON-0+;gM&xay`G2PQ
zOt+G*wXB{cw|r8~q%TRk64!0sue^WDo$FTu|J0^hdJ9TEnV5RN^Ixw)1@p4T61G!!
S%?<<o$l&Sf=d#Wzp$Pyn#DaSO

diff --git a/FizzyLauncher.UI/Resources/folder16_a.png b/FizzyLauncher.UI/Resources/folder16_a.png
deleted file mode 100644
index a97c4e0107de391e61dc628ff9a964c9e5063a99..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 352
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8#x<#}Etux0CJp4?0L3dq1HsY2pXTU+zg8
zeyX+A@gyEQlqb~EpQNOkX??@6Wb^B}&)-g+64E8{canPf`^)>z-+dbOt}?FI(5&63
z!&xxsRAc6>xjSk&zt`3`Z)|F7-J~QH5X=#{UFURYn3YI@<L3(oJ!NkUj~AYrwd}2-
zt>fwwJ_jttCAK*V_`Ki{a*MzIbzRjOhYh_C1ebkJR#jNvvd?fa!=5|A|9&sX=bBqw
z_}4JvZ^yzP0u8$9uV$_<FL*5fp_}1OddKUN!Ht#6@)j&_uv+3@+3P8KY*Niv3t_J;
wNA`ES*0nZBa{XF+dEal7jD>TjT-wL<<V0!oL$}2<fC0eZ>FVdQ&MBb@0I8Ogm;e9(

diff --git a/FizzyLauncher.UI/Resources/folder16_b.png b/FizzyLauncher.UI/Resources/folder16_b.png
deleted file mode 100644
index d21178aa8cafb22ebfe50bf0379772d84075e671..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 288
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sDEfH31!Z9ZwB;8sr;#}Etux0m<wF*=I0J(Rp+#c94#sP)`j
zjhHs+1(#mC99+7BLvX5`?4s?*ey`Ov+iWj1W#1FeXLH`nnUiANX0q`pvtDAy_Kgt>
z`({cN-g>d1b*@z9#RhA)7pn!Ax7qqdta#{pJI^3+VJW*+#mk31-fh|?`8{_S-y0oW
z`^Bn$it?(JjOTVb)$O~faH{@5KU<52yXeMiVqQy{0_Lhp%~1Zkc=O`wSeX!(3x_|<
hFBYubZFY>sKU2UnWXUOwlRytJc)I$ztaD0e0suaOZf^hp

diff --git a/FizzyLauncher.UI/Resources/minus16_a.png b/FizzyLauncher.UI/Resources/minus16_a.png
deleted file mode 100644
index 6b396d43dcd620706ec9a4eb0662e997b8117f02..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 532
zcmV+v0_**WP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10ij7m
zK~y-6om0JPltC0d=Mrqz<PAhCMMm6aYrEBmn94UWpthQ%(Pm>O5kdSx+&3_!H6}Lu
z1`a!Sku(W;0}b&5&CapNM814RT|CwN+<VTPd*>1jj7FnNlIA6K0h}$zI{-FG_Cp9>
zkLS_C-A_q+2H-A$F96mhZ2<tu^8jW^&PaMq@<9mU`!9l${2ss+l8>vZTIqB;-|9*+
z#+I2an%N^s1CrN|NRU!`nNs?ZQo7l+)P%dwx%<IzID8HOES^6BSPmg9|BIjq_DDVi
zaM?=1zE)MWGD$K3jK||AlJ+FcTdDSX)AQfZZnyVwSmf>$fHRWb)jZzHIo~-c(ahe2
z5LU}}i{uSMt(E_SDFC~r&j5g;u=?keLy){6Y1aU30GN$2wkB0|_tTQD0oXK>eUdX~
zwm2z)q$QHmB>Mn>l+p`#KXCWC3Dl2$BrAUIOBw)JODXkEvJ+!$rIdOA)+7zgYytRv
zn4XfnCuxu5hn(~0a($8HRg%*==T~O7aBP?wPYjZ7OX`w52Y`~cNq!{xHiR&$$NvNo
W{^Fg|2zLko0000<MNUMnLSTaH$>?$b

diff --git a/FizzyLauncher.UI/Resources/minus16_b.png b/FizzyLauncher.UI/Resources/minus16_b.png
deleted file mode 100644
index 9bb41283a7f3e8d7bdf81467b5391984bea3e424..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 380
zcmV-?0fYXDP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10SQS&
zK~y-6ozqP&Ltzxg@gI>6wCuoCLc0!;h?>{~#$wuF&J`hI14vi^39BfHbP+^!L<a`%
zDc5ap()LMia&pf3zaQs5FN12}1TW~u_lyknV)Ilku0+!|K5&mt)E2Rdd0b!@UkdOO
zzR|+$kdsxhk6!dv^2PIj*N1>bHDi&}exebH)(CK42f-|p2KH8R>@rpHj$_iauf~A;
zx<-2j3%Jb{HnCL#UE(g{4%Vjq|CJMI(kt9Z29rrctd0TKq#<S`d-f!gjH<(6eyx2L
ziRK9KhJum!vvN-|$*}9xayvf;Gw_&>u!B!L;5BMXSiziR`#punlviDHSUVQ#Mw|)j
a=Jf+%ay>&=(wun!0000<MNUMnLSTY9jGv<b

diff --git a/FizzyLauncher.UI/Resources/plus16_a.png b/FizzyLauncher.UI/Resources/plus16_a.png
deleted file mode 100644
index f63ace902d9e993fbf04de2688e18f9c4648530e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 559
zcmV+~0?_@5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10lY~>
zK~y-6om0zdR6!6urwDGw<PStwinQY(%-Y?Uh?tdsV1l~U#Eoty?j$0J4`k*K4A~}e
z+{_<%xz&SYqvQ`X=mkygabYLiv_XQk>ONgnr%qKDk=bN2xg=>pQV+n{1b+cAA~_5p
z#HK$F4l%}4lAZ&&3*ak&O-b7TK=M3*Ig&Gy-jI9{Lil-@AO&v#xJvR#RaL9qZudu%
zsVIt;nJt^yV@YF@*AJ4w-Cw!;FL%G0OUf<AI3Hu&E6ef)05EC(2w)|Iu#!370)P<0
zS`&BoKFLP_E?a8Yx2mdEb2dqfk`{A(e}Dg}q+Ll1mb$%}YyOvYI-T$M)8yV1fHRWb
zHOsE+`cArD0f4eBM*v`EZyR#9N!~CtM)^NB1z;!58Ngw~)&RiWw*a8sZqMd{BrizX
zF#zuY%oRn^Iw@<6@wB8_03#zgBspVd%g3+`NDgvb(nFHdB!@_)zKk*M#Te&Lz<%T-
zSz@{`X$)Z9-TTMMDT<=y?tK93lE!AX1pK{B&q&^rv`ccUuIo?f`69_{B&X}Ter;w;
xN0uooF-W>CsYmi00808y@&n012w~Fn{|yw|_65H@(}Ms2002ovPDHLkV1jc+^1c87

diff --git a/FizzyLauncher.UI/Resources/plus16_b.png b/FizzyLauncher.UI/Resources/plus16_b.png
deleted file mode 100644
index 0c29081e25aa7911ea1e9793e66094cb06efb9df..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 398
zcmV;90df9`P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10UJp~
zK~y-6ozp!|LQxO};7<w)QFmbMOcXlTfZ9mqBDB_;puJ#>KRYlk!JoJaAu%jMV?+z3
zuy_MJAMYjTNhY~>X3o7cbI)ZOHJqY{L0A_ZRI|x*sdYJ$_V9*V^dq*4Z7ksm2l$d9
zKjIrr%;!{AK?}pkEvJJQLEgzBX3>a4&PI+}IGQ=hyJ1-z1!tXPU@rw_--TsS!7JJ&
z)FlJ^oT2;?K7vy(VcBHbqp}~uHo`{xbUS^ll>C0mf1!u#f>_ZE;0E0i?j<6r{Nd6C
zY)RTul{`r+C$Z=mkApLo_IWrOGu%EUBqmZGN<@;^PQ^q(V<~4p(+T$RE*ai)#MZEh
sMO@-g<};;HMH^3X&>+?wA>A~70F4SmZKJ&MYXATM07*qoM6N<$f>mIi`~Uy|

diff --git a/Windows/Forms/AForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
similarity index 92%
rename from Windows/Forms/AForm.cs
rename to FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index 4e1e9ac..c660ca1 100644
--- a/Windows/Forms/AForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -5,7 +5,7 @@ using System.Windows.Forms;
 
 namespace AppLauncher.Windows.Forms
 {
-    public class AForm : Form
+    public class TForm : Form
     {
         protected readonly Color borderColour = Color.FromArgb(232, 231, 236);
         protected readonly int borderWidth = 1;
@@ -31,7 +31,7 @@ namespace AppLauncher.Windows.Forms
         private ToolStripMenuItem exitToolStripMenuItem;
         private IContainer components;
 
-        public AForm() : base()
+        public TForm() : base()
         {
             InitializeComponent();
 
@@ -161,7 +161,7 @@ namespace AppLauncher.Windows.Forms
             g.FillRectangle(new SolidBrush(titleBarColour), 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(Properties.Resources.app_icon_24, 17, 17);
+            if (!DesignMode) g.DrawImageUnscaled(this.AppIcon, 17, 17);
 
             if (!DesignMode) TextRenderer.DrawText(g, Application.ProductName, new Font(this.Font.FontFamily, 14F), new Point(58, 17), titleColour);
 
@@ -186,6 +186,9 @@ namespace AppLauncher.Windows.Forms
         [Category("Appearance")]
         public ContextMenuStrip TitleContextMenuStrip { get; set; } = null;
 
+        [Browsable(false)]
+        public Image AppIcon { get; set; } = null;
+
         protected Point DefaultLocation
         {
             get
@@ -204,7 +207,7 @@ namespace AppLauncher.Windows.Forms
         private void InitializeComponent()
         {
             this.components = new System.ComponentModel.Container();
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AForm));
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TForm));
             this.imageBox3 = new RyzStudio.Windows.Forms.TImageBox();
             this.imageBox2 = new RyzStudio.Windows.Forms.TImageBox();
             this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox();
@@ -223,9 +226,9 @@ namespace AppLauncher.Windows.Forms
             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.Image = global::AppLauncher.Properties.Resources20.close;
+            this.imageBox3.ImageHover = global::AppLauncher.Properties.Resources20.close2;
+            this.imageBox3.ImageNormal = global::AppLauncher.Properties.Resources20.close;
             this.imageBox3.ImageSelected = null;
             this.imageBox3.InitialImage = null;
             this.imageBox3.IsSelected = false;
@@ -242,10 +245,10 @@ namespace AppLauncher.Windows.Forms
             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.Image = global::AppLauncher.Properties.Resources20.maximise;
+            this.imageBox2.ImageHover = global::AppLauncher.Properties.Resources20.maximise;
+            this.imageBox2.ImageNormal = global::AppLauncher.Properties.Resources20.maximise;
+            this.imageBox2.ImageSelected = global::AppLauncher.Properties.Resources20.maximise2;
             this.imageBox2.InitialImage = null;
             this.imageBox2.IsSelected = false;
             this.imageBox2.Location = new System.Drawing.Point(139, 12);
@@ -261,9 +264,9 @@ namespace AppLauncher.Windows.Forms
             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.Image = global::AppLauncher.Properties.Resources20.minimise;
+            this.imageBox1.ImageHover = global::AppLauncher.Properties.Resources20.minimise2;
+            this.imageBox1.ImageNormal = global::AppLauncher.Properties.Resources20.minimise;
             this.imageBox1.ImageSelected = null;
             this.imageBox1.InitialImage = null;
             this.imageBox1.IsSelected = false;
@@ -351,11 +354,11 @@ namespace AppLauncher.Windows.Forms
 
                 if (this.TopMost)
                 {
-                    imageBox2.Image = imageBox2.ImageNormal = Resource1.maximise3_20;
+                    imageBox2.Image = imageBox2.ImageNormal = Properties.Resources20.maximise3;
                 }
                 else
                 {
-                    imageBox2.Image = imageBox2.ImageNormal = Resource1.maximise_20;
+                    imageBox2.Image = imageBox2.ImageNormal = Properties.Resources20.maximise;
                 }
             }
         }
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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
index f0ec21a..5ee7579 100644
--- a/FizzyLauncher.UI/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.Properties.Resources.close16_b;
+            this.imgbxClose.ImageHover = global::AppLauncher.Properties.Resources16.close2;
             this.imgbxClose.Image = null;
             this.imgbxClose.InitialImage = null;
             this.imgbxClose.Location = new System.Drawing.Point(308, 4);
             this.imgbxClose.Name = "imgbxClose";
-            this.imgbxClose.ImageNormal = global::AppLauncher.Properties.Resources.close16_a;
+            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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TDialogForm.cs
index 2f2b440..d85c999 100644
--- a/FizzyLauncher.UI/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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
index ec17cc5..0c2b9ae 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TFolderTextBox.cs
@@ -1,7 +1,7 @@
 using System;
 using System.IO;
 using System.Windows.Forms;
-using Resources = AppLauncher.Properties.Resources;
+using Resources = AppLauncher.Properties.Resources16;
 
 namespace RyzStudio.Windows.ThemedForms
 {
@@ -9,8 +9,8 @@ namespace RyzStudio.Windows.ThemedForms
     {
         public TFolderTextBox() : base()
         {
-            this.NormalImage = Resources.folder16_a;
-            this.HighlightImage = Resources.folder16_b;
+            this.NormalImage = Resources.folder;
+            this.HighlightImage = Resources.folder2;
             this.Text = string.Empty;
         }
 
diff --git a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
deleted file mode 100644
index 75f5bf1..0000000
--- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.Designer.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-namespace RyzStudio.Windows.ThemedForms
-{
-  partial class TForm
-  {
-    /// <summary>
-    /// Required designer variable.
-    /// </summary>
-    private System.ComponentModel.IContainer components = null;
-
-    /// <summary>
-    /// Clean up any resources being used.
-    /// </summary>
-    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-    protected override void Dispose(bool disposing)
-    {
-      if (disposing && (components != null))
-      {
-        components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Windows Form Designer generated code
-
-    /// <summary>
-    /// Required method for Designer support - do not modify
-    /// the contents of this method with the code editor.
-    /// </summary>
-    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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TForm.cs
deleted file mode 100644
index 541e75f..0000000
--- a/FizzyLauncher.UI/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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TListBox.designer.cs
index bab75f5..81bff0f 100644
--- a/FizzyLauncher.UI/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.Properties.Resources.edit16_b;
-            this.imageBox5.Image = global::AppLauncher.Properties.Resources.edit16_a;
+            this.imageBox5.ImageHover = global::AppLauncher.Properties.Resources16.edit2;
+            this.imageBox5.Image = global::AppLauncher.Properties.Resources16.edit;
             this.imageBox5.InitialImage = null;
             this.imageBox5.Location = new System.Drawing.Point(52, 94);
             this.imageBox5.Name = "imageBox5";
-            this.imageBox5.ImageNormal = global::AppLauncher.Properties.Resources.edit16_a;
+            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.Properties.Resources.arrow_down16_b;
-            this.imageBox4.Image = global::AppLauncher.Properties.Resources.arrow_down16_a;
+            this.imageBox4.ImageHover = global::AppLauncher.Properties.Resources16.arrow_down2;
+            this.imageBox4.Image = global::AppLauncher.Properties.Resources16.arrow_down;
             this.imageBox4.InitialImage = null;
             this.imageBox4.Location = new System.Drawing.Point(100, 94);
             this.imageBox4.Name = "imageBox4";
-            this.imageBox4.ImageNormal = global::AppLauncher.Properties.Resources.arrow_down16_a;
+            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.Properties.Resources.arrow_up16_b;
-            this.imageBox3.Image = global::AppLauncher.Properties.Resources.arrow_up16_a;
+            this.imageBox3.ImageHover = global::AppLauncher.Properties.Resources16.arrow_up2;
+            this.imageBox3.Image = global::AppLauncher.Properties.Resources16.arrow_up;
             this.imageBox3.InitialImage = null;
             this.imageBox3.Location = new System.Drawing.Point(76, 94);
             this.imageBox3.Name = "imageBox3";
-            this.imageBox3.ImageNormal = global::AppLauncher.Properties.Resources.arrow_up16_a;
+            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.Properties.Resources.minus16_b;
-            this.imageBox2.Image = global::AppLauncher.Properties.Resources.minus16_a;
+            this.imageBox2.ImageHover = global::AppLauncher.Properties.Resources16.minus2;
+            this.imageBox2.Image = global::AppLauncher.Properties.Resources16.minus;
             this.imageBox2.InitialImage = null;
             this.imageBox2.Location = new System.Drawing.Point(28, 94);
             this.imageBox2.Name = "imageBox2";
-            this.imageBox2.ImageNormal = global::AppLauncher.Properties.Resources.minus16_a;
+            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.Properties.Resources.plus16_b;
-            this.imageBox1.Image = global::AppLauncher.Properties.Resources.plus16_a;
+            this.imageBox1.ImageHover = global::AppLauncher.Properties.Resources16.plus2;
+            this.imageBox1.Image = global::AppLauncher.Properties.Resources16.plus;
             this.imageBox1.InitialImage = null;
             this.imageBox1.Location = new System.Drawing.Point(4, 94);
             this.imageBox1.Name = "imageBox1";
-            this.imageBox1.ImageNormal = global::AppLauncher.Properties.Resources.plus16_a;
+            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/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
index cca78a3..16a0d11 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/ThemedForms/TOpenFileTextBox.cs
@@ -1,7 +1,7 @@
 using System;
 using System.IO;
 using System.Windows.Forms;
-using Resources = AppLauncher.Properties.Resources;
+using Resources = AppLauncher.Properties.Resources16;
 
 namespace RyzStudio.Windows.ThemedForms
 {
@@ -9,8 +9,8 @@ namespace RyzStudio.Windows.ThemedForms
     {
         public TOpenFileTextBox() : base()
         {
-            this.NormalImage = Resources.file16_a;
-            this.HighlightImage = Resources.file16_b;
+            this.NormalImage = Resources.file;
+            this.HighlightImage = Resources.file2;
             this.Text = string.Empty;
         }
 
diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj
index c39b609..0c659be 100644
--- a/FizzyLauncher.csproj
+++ b/FizzyLauncher.csproj
@@ -73,11 +73,6 @@
       <DesignTime>True</DesignTime>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
-    <Compile Include="Resource1.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resource1.resx</DependentUpon>
-    </Compile>
     <Compile Include="Windows\Forms\Tile\AddTileForm.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -96,9 +91,6 @@
     <Compile Include="Windows\Forms\Tile\EditTileForm.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Windows\Forms\AForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
     <Compile Include="Windows\Forms\Tile\TTilePanelLayout.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -118,13 +110,6 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <EmbeddedResource Include="Resource1.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resource1.Designer.cs</LastGenOutput>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Windows\Forms\AForm.resx">
-      <DependentUpon>AForm.cs</DependentUpon>
-    </EmbeddedResource>
     <EmbeddedResource Include="Windows\Forms\Tile\AddTileForm.resx">
       <DependentUpon>AddTileForm.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/MainForm.cs b/MainForm.cs
index da19af2..e434b0b 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);
@@ -34,6 +34,7 @@ namespace AppLauncher
         {
             InitializeComponent();
 
+            this.AppIcon = Properties.Resources.app_icon_24;
             this.StartPosition = FormStartPosition.WindowsDefaultBounds;
         }
 
diff --git a/Resource1.Designer.cs b/Resource1.Designer.cs
deleted file mode 100644
index 529722f..0000000
--- a/Resource1.Designer.cs
+++ /dev/null
@@ -1,293 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     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.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace AppLauncher {
-    using System;
-    
-    
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // 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 Resource1 {
-        
-        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() {
-        }
-        
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [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.Resource1", typeof(Resource1).Assembly);
-                    resourceMan = temp;
-                }
-                return resourceMan;
-            }
-        }
-        
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
-                return resourceCulture;
-            }
-            set {
-                resourceCulture = value;
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap arrow_down {
-            get {
-                object obj = ResourceManager.GetObject("arrow_down", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap arrow_down2 {
-            get {
-                object obj = ResourceManager.GetObject("arrow_down2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap arrow_up {
-            get {
-                object obj = ResourceManager.GetObject("arrow_up", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap arrow_up2 {
-            get {
-                object obj = ResourceManager.GetObject("arrow_up2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap close_16 {
-            get {
-                object obj = ResourceManager.GetObject("close_16", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap close_20 {
-            get {
-                object obj = ResourceManager.GetObject("close_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap close2_16 {
-            get {
-                object obj = ResourceManager.GetObject("close2_16", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap close2_20 {
-            get {
-                object obj = ResourceManager.GetObject("close2_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap edit {
-            get {
-                object obj = ResourceManager.GetObject("edit", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap edit2 {
-            get {
-                object obj = ResourceManager.GetObject("edit2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap file {
-            get {
-                object obj = ResourceManager.GetObject("file", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap file2 {
-            get {
-                object obj = ResourceManager.GetObject("file2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap folder {
-            get {
-                object obj = ResourceManager.GetObject("folder", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap folder2 {
-            get {
-                object obj = ResourceManager.GetObject("folder2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap maximise_20 {
-            get {
-                object obj = ResourceManager.GetObject("maximise_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap maximise2_20 {
-            get {
-                object obj = ResourceManager.GetObject("maximise2_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap maximise3_20 {
-            get {
-                object obj = ResourceManager.GetObject("maximise3_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap minimise_20 {
-            get {
-                object obj = ResourceManager.GetObject("minimise_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap minimise2_20 {
-            get {
-                object obj = ResourceManager.GetObject("minimise2_20", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap minus {
-            get {
-                object obj = ResourceManager.GetObject("minus", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap minus2 {
-            get {
-                object obj = ResourceManager.GetObject("minus2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap plus {
-            get {
-                object obj = ResourceManager.GetObject("plus", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized resource of type System.Drawing.Bitmap.
-        /// </summary>
-        internal static System.Drawing.Bitmap plus2 {
-            get {
-                object obj = ResourceManager.GetObject("plus2", resourceCulture);
-                return ((System.Drawing.Bitmap)(obj));
-            }
-        }
-    }
-}
diff --git a/Resource1.resx b/Resource1.resx
deleted file mode 100644
index 236baac..0000000
--- a/Resource1.resx
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="arrow_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="arrow_down2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\arrow_down2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="arrow_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="arrow_up2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\arrow_up2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="close2_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\close2_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="close2_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\close2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="close_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\close_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="close_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\close_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="edit2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\edit2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="file2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\file2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="folder2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="maximise2_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\maximise2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="maximise3_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\maximise3_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="maximise_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\maximise_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="minimise2_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\minimise2_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="minimise_20" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\minimise_20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="minus2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\minus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="plus2" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>RyzStudio\Windows\Forms\Resources\plus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-</root>
\ No newline at end of file
diff --git a/RyzStudio/Windows/Forms/Resources/close2_16.png b/RyzStudio/Windows/Forms/Resources/close2_16.png
deleted file mode 100644
index c02cdf0e09c2d9a8c5c6283505b31c941f7b7f5d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 468
zcmV;_0W1EAP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10bxl*
zK~y-6jgwDG!(b4_e=m)Hj-UilO2wT^H#X2qR7$H<KEZS3B9>OD^ccms&;z)#hy{b*
zK+rVfq7iFbYTj;U-kW(de4moz(*yIY0~`T9#gGCISjqXh_|U|)P+CN7m@nf5Wmi6M
zWa4_~wtrD@IsmU>Q^1)A_(doGfxIuk_m<Vh)n?g1zn0Os+AJ^QE;M+nHTFu<C<$8~
zBl3*MOTt#CB#qu`jlFsP!qvBigK-kJdcb)SjsynK2D)3r!T8?>0<*a9lIrOvvdcW(
z3*!BYpKdExm?9FgjTzb|^+zpZE;uky5<Xq!wtLfCX6@vC{lmb`yI64WUTf^;;%*S{
zyCAMOpbNC~+Ugayhl7`iStW@3PDGiAvLNoeiCJZPIC%MY1%TbVo9EeBV9e!a9i&*c
zwyd}kQ%&jv51{&M*!+2(1;wg^?tQG}(4+%8!>r(URtmZ|W$qhAV}!e^5dtj$0000<
KMNUMnLSTZlBh&@}

diff --git a/RyzStudio/Windows/Forms/Resources/close_16.png b/RyzStudio/Windows/Forms/Resources/close_16.png
deleted file mode 100644
index 25fc63244c4ebb4d67ac4fe0f893e9c281eb1584..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 367
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprB-l
zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+E%T^vI!dZ$iy^gC=I;CkO>
z<pYUO)l+@9r|7QmxU;gGZPQb!fX;Uo4xydF3KLiLyUM0`WE_sKwE6b=dqq#x%5_(c
zJ<PfyUMls9YX{T32HC?QOxF)ccW#r}@i97UshR5{UR%p><|#+zzjR7P%Dh^VpUb|W
zuaP%kWos0J=myW7@><mk-aGK#VOrZQ{lM^PAG4BEDPIlK_sm^v@01Qr4$rVW5Ggi4
zJ+IH&<7l+n?b5PV{?dDe6Rol*9!)M?Z@0zO=W%VEOX<Q}j7y%JOwVDgUGLzMQ-74{
z_P(vG?Rqj_RsAzq-gqVOo(Zwo^8CVC;|HRpv-Ul!-~V}Y)kju8Rng2BAC$fT!-2um
L)z4*}Q$iB}b%d0U

diff --git a/installer.iss b/installer.iss
deleted file mode 100644
index e945c85..0000000
--- a/installer.iss
+++ /dev/null
@@ -1,51 +0,0 @@
-; Script generated by the Inno Setup Script Wizard.
-; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
-
-#define MyAppName "Fizzy Launcher"
-#define MyAppVersion "0.1.1.109 alpha"
-#define MyAppPublisher "Hi, I'm Ray"
-#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher"
-#define MyAppExeName "fizzylauncher.exe"
-
-[Setup]
-; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
-; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
-AppId={{472ED37C-C4FC-4B72-8BC3-C281A6E0D2F9}
-AppName={#MyAppName}
-AppVersion={#MyAppVersion}
-;AppVerName={#MyAppName} {#MyAppVersion}
-AppPublisher={#MyAppPublisher}
-AppPublisherURL={#MyAppURL}
-AppSupportURL={#MyAppURL}
-AppUpdatesURL={#MyAppURL}
-DefaultDirName={autopf}\{#MyAppName}
-DefaultGroupName={#MyAppName}
-DisableProgramGroupPage=yes
-; Remove the following line to run in administrative install mode (install for all users.)
-PrivilegesRequired=lowest
-OutputDir=L:\gitlab-hiimray\fizzy-launcher\bin
-OutputBaseFilename=fizzy-launcher
-Compression=lzma
-SolidCompression=yes
-WizardStyle=modern
-
-[Languages]
-Name: "english"; MessagesFile: "compiler:Default.isl"
-
-[Tasks]
-Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-
-[Files]
-Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\fizzylauncher.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
-Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion
-; NOTE: Don't use "Flags: ignoreversion" on any shared system files
-
-[Icons]
-Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
-Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
-Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
-
-[Run]
-Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
-

From bdfca5602304abf757e4b834770b11d15fc6190f Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Wed, 21 Oct 2020 18:53:19 +0100
Subject: [PATCH 03/15] Changed: larger logo

---
 .../RyzStudio/Windows/Forms/TForm.cs             |   2 +-
 FizzyLauncher.csproj                             |   1 +
 Properties/Resources.Designer.cs                 |   6 +++---
 Properties/Resources.resx                        |   4 ++--
 Resources/app_icon_32.png                        | Bin 0 -> 1728 bytes
 5 files changed, 7 insertions(+), 6 deletions(-)
 create mode 100644 Resources/app_icon_32.png

diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index c660ca1..2c821e1 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -161,7 +161,7 @@ namespace AppLauncher.Windows.Forms
             g.FillRectangle(new SolidBrush(titleBarColour), 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(this.AppIcon, 17, 17);
+            if (!DesignMode) g.DrawImageUnscaled(this.AppIcon, 21, 17);
 
             if (!DesignMode) TextRenderer.DrawText(g, Application.ProductName, new Font(this.Font.FontFamily, 14F), new Point(58, 17), titleColour);
 
diff --git a/FizzyLauncher.csproj b/FizzyLauncher.csproj
index 0c659be..0ccca88 100644
--- a/FizzyLauncher.csproj
+++ b/FizzyLauncher.csproj
@@ -159,6 +159,7 @@
   </ItemGroup>
   <ItemGroup>
     <Content Include="favicon.ico" />
+    <None Include="Resources\app_icon_32.png" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="FizzyLauncher.UI\FizzyLauncher.UI.csproj">
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 {
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
-        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 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="app_icon_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\app_icon_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="app_icon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\app_icon_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="folder_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
diff --git a/Resources/app_icon_32.png b/Resources/app_icon_32.png
new file mode 100644
index 0000000000000000000000000000000000000000..51e5f0d1efcbb24071542496d559afef98fa93d1
GIT binary patch
literal 1728
zcmV;x20!_UP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H122Dvs
zK~z|UwU>WPmDd@^Kj(el%cYkK2$Ns4E<wE@D(xstR&6!QnyfA>+Lqf56&)s}7HnrX
zyKHH?kacE@W~p6}P@Bv~h0<QODw=i8+!nWrBL%4l*vk(gT0o`aas{m1AMe>8cwe|b
zP-)%wzvn&Q=Xt*GbIy6rIfAbU`{uGGQnFqk3M4E?h?nb+R35xre=*mD6%`dqhjTbz
zs;rli0s&be6e$p|I%+C+-!lPEl$KheZ$v$&qZbG%o&b^qWASmZ<mRj(@1bm5E;oNX
z?7;8W0Z}D9S6_5E9R4pQps1*HzE{=058?+%9tUCrV=2k=$<0|oZcaAKvuvoUV)!+m
zJ<q<%gG_on2q}-^HE(n{UjO2*1laAR@zP}4j$l2I4=4bNqL67zC-0#L_*QN<X{pJP
zVj1Y_?&EjAuV!p~0)#l_)3gmo-`+QRM*)SK%3lX|0+`KFeDi^2<mId&H)jR0vDVur
z4aLCV6?X5bV)*kBfb&B2uX7x#9=L;m9nBzfpW9Z%+DBJnGMVO-G!!nEo8Ro&&!x+Q
z0GCunKK}0EstYqY#^e<j?}`EWph?qM`)K}GP7aWe5YMk)eTijRHh^#VrP63GDtlxm
z$EZNzrt<FsCzoa{;<aD>6aeY*GWb|Y#NZ;@OiImO6txfU2YHb>mW7x$^yBsERK9tL
z#{ZlJ$)pf+v!kY}9zdIB%T-80X2znhK&JHjiOS9}Y;XSno;D}?h#Mv8mV448i1=j&
zM-HDxx;sGkU@}Fsv%G|_B_?qEFMl^nL|x(Lvhw;PRc}rUkUR{KVG9=!m6OH1om&li
z;^;{{ZO$N$n!XXm_Pk;Hn_s~1?wI~RA=t9<Nvu{2b&eCNlvEdPDo<2ks=I-B7$9>=
zdc<<xD?C;3J)SN3VZeM@0XWxtWf?FpH6@Ao_}E#U?-geBkqa7tDwWj$OEVWobnx{J
zFwyW2!}hdwg>m$2AAwK}TaI>waRT_Xt2e;<Xlf1U$|{5;(-vHQp(==IGn1{IOty9g
zM-c*HwSdVF2=xA1^#0mljur!oMkt(JeYf(9Mh!qJa<!0<8M**fm6RiU&|TNVf{2*=
z&=#ZsDVPeJ;0@;xoeUyafRvK%-hKe-SN&(SCyTcy3!TL=mixGWL23|Lm+(on1=1{G
zvEwua8{qNiTpdXR(!w}aOeBQ3UjA%|iHRG4?0Nri^)*e?)zuQn%vgjF!H1(qO7a@J
z!~cw_4%W41Ddu4hdv>3T$cZwm?0q92MVXH4?7lcv3B+jtO$HiJg#91DcM`4qC~cl$
zpBfpbc4!p0&u?4|@>V9XBqPq?w0!(I-A*@tzYG=-n15s=fQA&S05WW|@BigiGo=d?
z4cjjzwL`(D>mpkmtJh3V;o!gxx}EN@Sb+-Yihc&B4x=o9p)1#B6>zWMc8_u8>M+3Q
zgNsu;0|NE}ymjzh{@n24|5bpq$0+}qii!#yK&!9W|6BXUvLOj?z4P92&E;~lZHql<
zLH=`Og6BFuGwjas$*|xpO~VXao-pi-J>lEZd8+{ll+%H48i1p=>g}hC%Kj@9QTNxs
z{mU{kGRjZNONcU=SQu@hWBeu^<2QqX#i$A?Q5x1bl_;}HZ_jmlLy{&Wn$fiB`{Jiv
zQ}geadSl>Q(7t=RxIACzoB-x$*wXpM&$bh5jS2gcF9WaF$JS?e;r01^!XpzLj;e8(
zaU%lw)8YM1sv_3_m%6(9sM!4mE?4+Uo_lgHr~ci9*XIMoxj=H5<yvmvvVDQ{s~-T_
zN%IqV<>zHA_<Cw2>Z}+W8>gkUo#xhdK56S@a?%qR+E-t*|E1ds0NC*3o%1xG?<i8P
zwZ>TFFLymJZr3YdYAb)-a-Qb1Z8*F8&~-g9qytSzjtQ@~+Tl20l=ZeRqjl?EFvle7
zhk$2Hn#PM|Tlx0N9AjKcNnihEnp@jxX>I3X-=&%EUkK!BgmOal;i#*t9E_CXj!!eY
z-LA^0ls|whQ&oj+#dZ=B;%Pp6o|e{j+}Fou(yvJ&k1Hq*H!Yr%#}6F1ai{oq{W!I6
z+VP4+z82~u;erq}2tUV`XC^fT8qD2dPOsy_%{xkva<706iEI#pV~!(LJ#&c>ivIzs
Wj#q5(AM-N+0000<MNUMnLSTYb07Y5=

literal 0
HcmV?d00001


From b7b771364ab3c6425776c11a036baa6d11b90186 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Thu, 22 Oct 2020 01:45:54 +0100
Subject: [PATCH 04/15] Changed: logo position

---
 .../RyzStudio/Windows/Forms/TForm.cs          |  2 +-
 MainForm.cs                                   | 37 +------------------
 2 files changed, 2 insertions(+), 37 deletions(-)

diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index 2c821e1..011e1b2 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -161,7 +161,7 @@ namespace AppLauncher.Windows.Forms
             g.FillRectangle(new SolidBrush(titleBarColour), 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(this.AppIcon, 21, 17);
+            if (!DesignMode) g.DrawImageUnscaled(this.AppIcon, 17, 13);
 
             if (!DesignMode) TextRenderer.DrawText(g, Application.ProductName, new Font(this.Font.FontFamily, 14F), new Point(58, 17), titleColour);
 
diff --git a/MainForm.cs b/MainForm.cs
index e434b0b..a5fd747 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -34,7 +34,7 @@ namespace AppLauncher
         {
             InitializeComponent();
 
-            this.AppIcon = Properties.Resources.app_icon_24;
+            this.AppIcon = Properties.Resources.app_icon_32;
             this.StartPosition = FormStartPosition.WindowsDefaultBounds;
         }
 
@@ -126,11 +126,6 @@ namespace AppLauncher
 
         public LauncherSession CurrentSession { get; set; } = null;
 
-        /// <summary>
-        /// New
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void toolStripMenuItem5_Click(object sender, EventArgs e)
         {
             if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -163,11 +158,6 @@ namespace AppLauncher
             }
         }
 
-        /// <summary>
-        /// Open
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private async void toolStripMenuItem7_Click(object sender, EventArgs e)
         {
             if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -205,11 +195,6 @@ namespace AppLauncher
             }
         }
 
-        /// <summary>
-        /// Close
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void toolStripMenuItem8_Click(object sender, EventArgs e)
         {
             if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -242,11 +227,6 @@ namespace AppLauncher
             }
         }
 
-        /// <summary>
-        /// Save
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void toolStripMenuItem6_Click(object sender, EventArgs e)
         {
             if (string.IsNullOrWhiteSpace(sessionFilename))
@@ -259,25 +239,10 @@ namespace AppLauncher
             }
         }
 
-        /// <summary>
-        /// Save As
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void toolStripMenuItem2_Click(object sender, EventArgs e) => saveAsFile();
 
-        /// <summary>
-        /// Always On Top
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void toolStripMenuItem1_Click(object sender, EventArgs e) => this.TopMost = !this.TopMost;
 
-        /// <summary>
-        /// Exit
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
         private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close();
 
         private void optionToolStripMenuItem_Click(object sender, EventArgs e)

From 716fe09791c0b45494452bbbc781871cc2a082e3 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Thu, 22 Oct 2020 01:47:42 +0100
Subject: [PATCH 05/15] Changed: title colour

---
 FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index 011e1b2..5e172fa 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -14,7 +14,7 @@ namespace AppLauncher.Windows.Forms
 
         protected readonly Color titleBarColour = Color.FromArgb(237, 240, 247);
         protected readonly Color titleBorderColour = Color.FromArgb(232, 231, 236);
-        protected readonly Color titleColour = Color.FromArgb(156, 158, 171);
+        protected readonly Color titleColour = Color.FromArgb(32, 32, 33);
         protected readonly int titleBarHeight = 56;
 
         private bool isDragging = false;

From 99a563dad60e8806dba209420ae23b8f33176d47 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Thu, 22 Oct 2020 02:01:53 +0100
Subject: [PATCH 06/15] Changed: attempted to reduce flickering

---
 Windows/Forms/Tile/TTilePanel.cs       | 1 +
 Windows/Forms/Tile/TTilePanelLayout.cs | 6 ++----
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/Windows/Forms/Tile/TTilePanel.cs b/Windows/Forms/Tile/TTilePanel.cs
index 48d2d8c..00e144c 100644
--- a/Windows/Forms/Tile/TTilePanel.cs
+++ b/Windows/Forms/Tile/TTilePanel.cs
@@ -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.cs b/Windows/Forms/Tile/TTilePanelLayout.cs
index 64b5b1f..bf72530 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.cs
@@ -335,7 +335,7 @@ namespace AppLauncher.Windows.Forms
 
                 isAnimating = false;
 
-                this.Invalidate();
+                this.Invalidate(this.DisplayRectangle, false);
             });
         }
 
@@ -353,8 +353,6 @@ namespace AppLauncher.Windows.Forms
                     while (this.Height < this.ExpandedHeight)
                     {
                         ThreadControl.SetHeight(this, (this.Height + expandIncrement));
-                        this.Invalidate();
-
                         Thread.Sleep(10);
                     }
                 }
@@ -363,7 +361,7 @@ namespace AppLauncher.Windows.Forms
 
                 isAnimating = false;
 
-                this.Invalidate();
+                this.Invalidate(this.DisplayRectangle, false);
             });
         }
 

From f7db100148c2659da642d30954a0916619e3ef96 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Sun, 8 Nov 2020 16:12:12 +0000
Subject: [PATCH 07/15] Fixed: add row + remove row

---
 .../Forms/Tile/TTilePanelLayout.Designer.cs   | 44 ++++++++++++-------
 Windows/Forms/Tile/TTilePanelLayout.cs        | 13 +++++-
 2 files changed, 39 insertions(+), 18 deletions(-)

diff --git a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
index 03dd3db..93e43a8 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
@@ -44,6 +44,7 @@
             this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
             this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
+            this.removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.contextMenuStrip1.SuspendLayout();
             this.contextMenuStrip2.SuspendLayout();
             this.SuspendLayout();
@@ -54,19 +55,19 @@
             this.addToolStripMenuItem,
             this.addListToolStripMenuItem});
             this.contextMenuStrip1.Name = "contextMenuStrip1";
-            this.contextMenuStrip1.Size = new System.Drawing.Size(181, 70);
+            this.contextMenuStrip1.Size = new System.Drawing.Size(139, 48);
             // 
             // addToolStripMenuItem
             // 
             this.addToolStripMenuItem.Name = "addToolStripMenuItem";
-            this.addToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.addToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
             this.addToolStripMenuItem.Text = "&Add Tile";
             this.addToolStripMenuItem.Click += new System.EventHandler(this.addTileMenuItem_Click);
             // 
             // addListToolStripMenuItem
             // 
             this.addListToolStripMenuItem.Name = "addListToolStripMenuItem";
-            this.addListToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.addListToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
             this.addListToolStripMenuItem.Text = "Add &List Tile";
             this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click);
             // 
@@ -76,38 +77,39 @@
             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(181, 170);
             // 
             // toolStripMenuItem2
             // 
             this.toolStripMenuItem2.Name = "toolStripMenuItem2";
-            this.toolStripMenuItem2.Size = new System.Drawing.Size(132, 22);
+            this.toolStripMenuItem2.Size = new System.Drawing.Size(180, 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(180, 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(180, 22);
             this.toolStripMenuItem1.Text = "&Edit";
             this.toolStripMenuItem1.Click += new System.EventHandler(this.editGroupMenuItem_Click);
             // 
             // toolStripSeparator2
             // 
             this.toolStripSeparator2.Name = "toolStripSeparator2";
-            this.toolStripSeparator2.Size = new System.Drawing.Size(129, 6);
+            this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
             // 
             // toolStripMenuItem4
             // 
@@ -117,55 +119,62 @@
             this.downToolStripMenuItem,
             this.bottomToolStripMenuItem});
             this.toolStripMenuItem4.Name = "toolStripMenuItem4";
-            this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 22);
+            this.toolStripMenuItem4.Size = new System.Drawing.Size(180, 22);
             this.toolStripMenuItem4.Text = "&Move";
             // 
             // topToolStripMenuItem
             // 
             this.topToolStripMenuItem.Name = "topToolStripMenuItem";
-            this.topToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
+            this.topToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
             this.topToolStripMenuItem.Text = "&Top";
             this.topToolStripMenuItem.Click += new System.EventHandler(this.moveTopMenuItem_Click);
             // 
             // upToolStripMenuItem
             // 
             this.upToolStripMenuItem.Name = "upToolStripMenuItem";
-            this.upToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
+            this.upToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
             this.upToolStripMenuItem.Text = "&Up";
             this.upToolStripMenuItem.Click += new System.EventHandler(this.moveUpMenuItem_Click);
             // 
             // downToolStripMenuItem
             // 
             this.downToolStripMenuItem.Name = "downToolStripMenuItem";
-            this.downToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
+            this.downToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
             this.downToolStripMenuItem.Text = "&Down";
             this.downToolStripMenuItem.Click += new System.EventHandler(this.moveDownMenuItem_Click);
             // 
             // bottomToolStripMenuItem
             // 
             this.bottomToolStripMenuItem.Name = "bottomToolStripMenuItem";
-            this.bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
+            this.bottomToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
             this.bottomToolStripMenuItem.Text = "&Bottom";
             this.bottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomMenuItem_Click);
             // 
             // toolStripSeparator1
             // 
             this.toolStripSeparator1.Name = "toolStripSeparator1";
-            this.toolStripSeparator1.Size = new System.Drawing.Size(129, 6);
+            this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
             // 
             // toolStripMenuItem3
             // 
             this.toolStripMenuItem3.Name = "toolStripMenuItem3";
-            this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 22);
+            this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22);
             this.toolStripMenuItem3.Text = "&Remove";
             this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click);
             // 
-            // TilePanelLayout
+            // removeRowToolStripMenuItem
+            // 
+            this.removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem";
+            this.removeRowToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.removeRowToolStripMenuItem.Text = "Remo&ve Row";
+            this.removeRowToolStripMenuItem.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click);
+            // 
+            // 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.Name = "TTilePanelLayout";
             this.Size = new System.Drawing.Size(370, 150);
             this.contextMenuStrip1.ResumeLayout(false);
             this.contextMenuStrip2.ResumeLayout(false);
@@ -189,5 +198,6 @@
         private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem;
         private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
         private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
+        private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem;
     }
 }
diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs
index bf72530..7e0bc29 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.cs
@@ -407,7 +407,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);
 
@@ -578,6 +578,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);
@@ -782,5 +784,14 @@ 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));
+            }
+        }
+
     }
 }

From 264b39e9b2020e94ea22bb6f54bbb758e70b6ec7 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Sun, 8 Nov 2020 23:24:40 +0000
Subject: [PATCH 08/15] Changed: UI base design

---
 FizzyLauncher.UI/FizzyLauncher.UI.csproj      |  15 +
 .../Properties/Resources20.Designer.cs        |  50 ++
 FizzyLauncher.UI/Properties/Resources20.resx  |  15 +
 FizzyLauncher.UI/Resources/20/close.png       | Bin 522 -> 493 bytes
 FizzyLauncher.UI/Resources/20/close2.png      | Bin 514 -> 525 bytes
 FizzyLauncher.UI/Resources/20/close3.png      | Bin 0 -> 514 bytes
 FizzyLauncher.UI/Resources/20/empty.png       | Bin 0 -> 274 bytes
 FizzyLauncher.UI/Resources/20/empty2.png      | Bin 0 -> 289 bytes
 FizzyLauncher.UI/Resources/20/empty3.png      | Bin 0 -> 284 bytes
 FizzyLauncher.UI/Resources/20/maximise.png    | Bin 319 -> 303 bytes
 FizzyLauncher.UI/Resources/20/maximise2.png   | Bin 290 -> 320 bytes
 FizzyLauncher.UI/Resources/20/maximise3.png   | Bin 315 -> 315 bytes
 FizzyLauncher.UI/Resources/20/minimise.png    | Bin 320 -> 304 bytes
 FizzyLauncher.UI/Resources/20/minimise2.png   | Bin 294 -> 320 bytes
 FizzyLauncher.UI/Resources/20/minimise3.png   | Bin 0 -> 315 bytes
 .../RyzStudio/Windows/Forms/TForm.cs          | 578 ++++++++++--------
 MainForm.Designer.cs                          |  81 +--
 MainForm.cs                                   |  59 +-
 MainForm.resx                                 | 334 +++++++++-
 Properties/AssemblyInfo.cs                    |   2 +-
 20 files changed, 781 insertions(+), 353 deletions(-)
 create mode 100644 FizzyLauncher.UI/Resources/20/close3.png
 create mode 100644 FizzyLauncher.UI/Resources/20/empty.png
 create mode 100644 FizzyLauncher.UI/Resources/20/empty2.png
 create mode 100644 FizzyLauncher.UI/Resources/20/empty3.png
 create mode 100644 FizzyLauncher.UI/Resources/20/minimise3.png

diff --git a/FizzyLauncher.UI/FizzyLauncher.UI.csproj b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
index 34ecce2..7334c5e 100644
--- a/FizzyLauncher.UI/FizzyLauncher.UI.csproj
+++ b/FizzyLauncher.UI/FizzyLauncher.UI.csproj
@@ -229,5 +229,20 @@
   <ItemGroup>
     <None Include="Resources\16\plus2.png" />
   </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\20\close3.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\20\empty.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\20\empty2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\20\empty3.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\20\minimise3.png" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>
\ No newline at end of file
diff --git a/FizzyLauncher.UI/Properties/Resources20.Designer.cs b/FizzyLauncher.UI/Properties/Resources20.Designer.cs
index 8614271..017f654 100644
--- a/FizzyLauncher.UI/Properties/Resources20.Designer.cs
+++ b/FizzyLauncher.UI/Properties/Resources20.Designer.cs
@@ -80,6 +80,46 @@ namespace AppLauncher.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap close3 {
+            get {
+                object obj = ResourceManager.GetObject("close3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap empty {
+            get {
+                object obj = ResourceManager.GetObject("empty", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap empty2 {
+            get {
+                object obj = ResourceManager.GetObject("empty2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap empty3 {
+            get {
+                object obj = ResourceManager.GetObject("empty3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
@@ -129,5 +169,15 @@ namespace AppLauncher.Properties {
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap minimise3 {
+            get {
+                object obj = ResourceManager.GetObject("minimise3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
     }
 }
diff --git a/FizzyLauncher.UI/Properties/Resources20.resx b/FizzyLauncher.UI/Properties/Resources20.resx
index ec8e6d8..9a0d447 100644
--- a/FizzyLauncher.UI/Properties/Resources20.resx
+++ b/FizzyLauncher.UI/Properties/Resources20.resx
@@ -124,6 +124,18 @@
   <data name="close2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\20\close2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="close3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\close3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="empty" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\empty.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="empty2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\empty2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="empty3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\empty3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="maximise" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\20\maximise.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -139,4 +151,7 @@
   <data name="minimise2" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\20\minimise2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="minimise3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20\minimise3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/FizzyLauncher.UI/Resources/20/close.png b/FizzyLauncher.UI/Resources/20/close.png
index a1cfe4182a03243e85d6d8aaede4c54310f9c21e..fb4f04994d1336446d00ab48de6c4ed7fae567eb 100644
GIT binary patch
delta 409
zcmV;K0cQS+1nmQmUVnN?L_t(IjkVOjN?bt{$MNqOX1Ju=MnP)>5wtR$29)h0<Oz~u
zn_-$QW0#~z6JKB%c8e{10t?e^8viuGPB4(vDr>RZ$>lC{Qh4n$!d^C~8W_%pA2Vl0
zy4`M3mgQIAJ+MNvx&@9VlgTGrV;>trPqhLZv|25-buv_Sdw(z(Tr|-_2-_*8GZFb<
zYMrJSK#cLcUap#^NUjzR+T4cs{!~O>h{)R*;}{@>u&k=zRrR6Y@4uM~1PWE%Qq@ri
zp$(8y8UY)?&$$y;RkiP&8v&asr88g#tOLKSweNC$*)tpthxb)gwN>>Rcv)kAthIZ+
zUhi&hFjuqLOn;u+&w`y!XURD?5|MS_H*gKC0YAL=*(aI>opUF^CU9kp*)hiK0$0E*
z;COBjC`IJb7}Jh1j$@2tV@z8_E`c)Fl)dGD%~?H<ub&CA_?Pluz*~6yf|?@U`<;4u
zBi{Q%;9vpa0KVCxC_a~E36CG`YD4HoRgb3A>6gFm0uqGkh00CK00000NkvXXu0mjf
Dx);A7

delta 438
zcmV;n0ZIPt1BwKYUVoQKL_t(IjkT1qYg17a#(&?-eU{k9O~K9z2JEC;D=674I7Heh
z1{;cyKfrG4&_&lSrH}?`x0V(<*ex!$U8Gx~g3hhPO=`sC<sAoKx7<Q5^_vcybAEjH
zo^!93mUc(-h0da|3dT)BBu+8buZ`I&moIb{W%e=%bgq9!7Jq)8$(*nXKnjyDYBL8R
zyvF;jNz!x=cov->GZY3e|NQBG7LG@u5T7m`=zNJrbMq6B@44LLdbQjJSYF${5hwj!
z;P-rO=D|=vVIzj_#YxgyUfV7K#7WWu-4*tEXorI76k0+PSCamop#)SEe2K&pU!V65
zYqi-QIjm%6$A1R5!HO8)BH5$4x!LbS0|&b{y4{>Es__Dw&5i4Q)RI&bd<7kwbj!u*
z$CZ^W?-TU`4L%4az>c~uH`Q~|L$D)*J1*|;1OW91IP5uBs#nYHdbQl{IadM>v)n*=
zr#xuSvVFYo>$%WjsQv>`oI>^m1!{G5V=4<z)M#$L11}aX!=0qJu5&i}`s&y(fC?}k
g$T|Vm3!~|qziu0ekFk0!tpET307*qoM6N<$g5n#|p#T5?

diff --git a/FizzyLauncher.UI/Resources/20/close2.png b/FizzyLauncher.UI/Resources/20/close2.png
index 14e88b03b02d8e779388fcbc6250b4525aa663bb..e2a3277eb704cf045e723e630d439ff52ac52c2e 100644
GIT binary patch
delta 441
zcmV;q0Y?6U1dRlcUVoZNL_t(IjkT0LOI$$|hM#kHb~eHWa?J;rE)XFLT1C=mLi833
z38b}2dJ8|&#7<J!m{x;q?=MIZVT;{>8XK__6ilsQ71v@R@!r{cQsk!F3G7AR>cBhm
z@SfqE5#}~aVQ_0%mAAkU`E)9<(H=ZsG8ybcPS8IMDJ+KVyMJo3WCZB=#cH&hhZfE@
z$2DL_Ro(?;ZRUjmv_DUM&&r2EUWiZE4m3XF&U|wl7;tg&s#B}B0LnA<2gVjRfnS%a
zQ_uSXf|Nj?8e43XXX+7vvBd^30<zb4LZ^k-CP*5nj25ijK~jfOQ8==WH@<t`H|(sv
zICE(+Qqe;}hkr$-qQVdBWb$l%@@L<`UXm2l7UX|tyuk9@)_oHs4N<8maxCZ}!s8@$
z&3o^+yesMj8tHyTWfVB*#_>cFyO+R$z!R5tzw`|Ry#n@KoJ5^kwbiLrTP{u_U_bME
z2k{xb<}91XF@J~~*pwRqp2FWRC@&;j_%@N1Clby#KQbvSUPn4bRtmqLO>Yl~vA`qX
jc23rbh^}7_o`3uUQ*D#9U#2e900000NkvXXu0mjf2@A@d

delta 430
zcmV;f0a5;q1cC&RUVo2CL_t(IjkT09OCv!P$A51#CLUObq9l6Ffr0_8w9+hir1Ati
zi^Jq&Xr~r7`YnXj%F05!$Z^p$k}lwZR~+1(2{{NN!fD*yXW^z093hMTt2exvAOD$o
z@5$xDLaO(6U`wC?WQeD_f_KwuubT+A8WYq}MqsUfFr_APhJT36jeg&&#G(ClSLPH>
zRki34T{A8WV6?n{7KI~DT!>9?4m7sJAGc5j{a^y;OS<AU0UEQ#VLuTbgZ%$k-gCPG
zf~J6J-w8{N*<v2Rcft}d33}eO!vyWcfMf|_%1?x+g7`od<;R2RS+bq8zG0?(@Gn6-
zFK_{jE1FgK`F~(~K7abQ+vpnDkv>}q68Q4kek-u<E)NAHOF$O51i27&%&4CHatqcL
zwE_c@N5B+H%>+))1Tv3OLzpn=Vb?&Ad!TAUC!el(&2+_Un$XDu)hPF(tiSwHokjIH
zV>j^*o$@ZgIy{Y_xR9&d*IXx*-|otez}j256J^`n^(VD9dT$4a2JJ{(lOp0>x9&F|
Y0oTQYz0r5p_y7O^07*qoM6N<$f^YrLi2wiq

diff --git a/FizzyLauncher.UI/Resources/20/close3.png b/FizzyLauncher.UI/Resources/20/close3.png
new file mode 100644
index 0000000000000000000000000000000000000000..14e88b03b02d8e779388fcbc6250b4525aa663bb
GIT binary patch
literal 514
zcmV+d0{#7oP)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%00009a7bBm000id
z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10gp*U
zK~y-6wUjYSBS93$e{VA;9$1K?Bznz(f&s0x(kytS@&r4J!{lRVrxrH)Eriv|%0j!y
zanUrAF5rPz9Ne7=IS3-cY24js;ieEAA&dU2H@ul2|CxF3$>qXAs`qwaOP~N`h^M-O
zchhRGn+UcV6Vy>gV6A^Jr6zKQh|G<C->bx-{dHI76i!vO=n!2qE(~C_ynhyjBTih1
zO>Yh~w!|N|PzL>A0_RJ*;xz#pv&CUQ5gvp5|5)C0y8?oyfN9?eOO4rL9>90P5-<sR
z-nGL7?Ztp(31P}lgr|b|Ko;f4gXvkaowL4SrhM=(K|3#S0gNk}RrvW}dOm;pw%h0$
z*pWV42@?47+I}mr?k*1nBuhXRxCFTnbj+xp{BjG{7PSHcl1IQ4O3egL&IB@#QbU+9
z=wa7Dkb9tNLMNZDc+GUhYnsr>1Jx+^qO8CCQk_NhIAb^Q4xREYz&bpQptz8$+}B(u
zl;7^kj=<VmxD#dD-1W6KdT$4a2JJ{(lOp0>x9&F|0oTQYz0r5p_y7O^07*qoM6N<$
Eg4B)T#Q*>R

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/20/empty.png b/FizzyLauncher.UI/Resources/20/empty.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b7e3775c1dc3c6fead96b853278e50b5c933382
GIT binary patch
literal 274
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt
z8c`CQpH@<ySd_|8US6)3nU`IhoLG>mmtT}V`<;yxP|<u(7sn8b-nUm2`3^aVv^=bz
zt(KjAd-asX4R^1E1hI4Q+)0=`buU-Jl(21OzVeH@kL+3C;okepD9h*eHnU?Dtlu0u
z^^`C8UoJT%To&Rqe~Lr6Nb8eKNu{86fjFtPnX{@Qr?neCo1iMI%l2Sz{j#Xks3*~8
z1<d9j>JJEB<G!SHZfESO=E8G#8{e@%X2{#Q^_xs`%hwETRg(@6`}3cl^2#!ph*?yc
RKLa|I!PC{xWt~$(69A{xW~l%G

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/20/empty2.png b/FizzyLauncher.UI/Resources/20/empty2.png
new file mode 100644
index 0000000000000000000000000000000000000000..61de6051ba117b18ebf1986379b816dcdb705860
GIT binary patch
literal 289
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt
z8c`CQpH@<ySd_|8US6)3nU`IhoLG>mmtT}V`<;yxP|-S17sn8b-nUoQ3Na>%9Q*jc
z^6d|fL*9#aa;B>4IX&d7QJEzuvdS>;fNh8Nj~!F)Zc282%Mlk?>2CCUiTdAXmQOhz
zC!d`4$!jX(g#-GX2NYK??LLrb?EhkN+o3yYrM!2Hc%<%a-#fcM%{_2MTlXp+-giFn
zJPNl<*RM0{)&HbxIiuO~hkXLmd+{gTH(suMoTXDHlq>RVf5h?=yFTQ6KQGGJ<-on7
iDr#fLJNd08KbbZiGWe%gqQ?z%IfJLGpUXO@geCwRFmsCl

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/20/empty3.png b/FizzyLauncher.UI/Resources/20/empty3.png
new file mode 100644
index 0000000000000000000000000000000000000000..b98cb4679659560f0cac86ed7953481efaac2e6b
GIT binary patch
literal 284
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt
z8c`CQpH@<ySd_|8US6)3nU`IhoLG>mmtT}V`<;yxP|-?H7sn8b-nUn5`I-U*SRP0^
zF}1cH<g(x@VCYM@knFKs%&dy<i_*W?Lzgt}b{mRhZ5Ffhn%z4!an;IwXUt9q&#SHz
z*5T-3Xt}UdY{9PC*RO27;ljC<lXJ@7M)h^EY?D0q#LAoAQq>k>{HA17mT>+`5`(~d
zGxlg@_wE{R_Ob-_fBX^5^Tn6Au6t>at9?Flqf)@XBw1GP?-z}Y_j4x5=Pr@;+_Y=v
b^FO>LLAuukpU?0CI-0@L)z4*}Q$iB}(j8>a

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/Resources/20/maximise.png b/FizzyLauncher.UI/Resources/20/maximise.png
index 9dc88fbcd2a3c85d219664d37511da1e0f9b244b..b2e90e26a7d406a0d4eabc84adc203dbfb0976c6 100644
GIT binary patch
delta 217
zcmV;~04D#x0<Qv)UVpqvL_t(IjqTJi4uUWg#_@j%2`j5y1-*%`FD#6*se_B&fWXL6
zM2`X^tX-%Buo#S{A;y7kYF^S`zok#baqMZW&%hQ~VV4>xnx;9p1Gcw>#;kzE_kH6I
z%`nD<d7eLPv?z+guIoyr)Xo`nY%zc|P4B}oaBPuxai@kNa#91<AMTb}mTg{#ziBx2
z^0%42;Q}t;zkoILE65fRk@4SGN<^+eGDA6li|cvbQELtTq75ve${16$ZF_nGMI<{V
TP5+Rp00000NkvXXu0mjf_?u;K

delta 233
zcmV<F02cqR0>1)~UVqF<L_t(IjqQ}N4#7|qhQA|C1g)J{!Ba@LN~CGL0UHJjtGOCU
zH)8by%A?dSbnG?IMF_bOG4z{m{^Wl5Kf}2)pKpsLE13w&K~X~o;fNxvnrdj2tYjie
z^|eG9w<3enS(G6t2Oxz;&$SOaK7YAskfssPDP&{n$^g7>dt!e-)(g6lR~XMiKUnX8
z=9{~b=i05u@HY*gz5FR(Z<q^n;eQB)Biz3rO%{t)w)e64!FmP^zR^xZrbcqEjLPN(
jzya!-t{4cdN;<v*GwnD*=oen000000NkvXXu0mjfX!2>m

diff --git a/FizzyLauncher.UI/Resources/20/maximise2.png b/FizzyLauncher.UI/Resources/20/maximise2.png
index 490190ad9903dfbcbd3c6b27b6bcbc4f3d083a64..4c4c81322dd5db22b147d20daf215c7512e2280c 100644
GIT binary patch
delta 234
zcmV<G02TkD0>A>0UVqI=L_t(IjbmiU-Nr7+#L@i!KSK-y1A`<3dEhxC1H<C?LT_qW
zpoW!_X%GxZ{%2q)6MQfHp9ShN1}298*6$`cA0x*!!JK{8|Ctz${Qu7w%ftZnCb@<&
zFfcH@pW<{B%9LUv*AQHQ1)HEi-oC>O3=B2|^d9*z$;lR7kYheB#AY+Gfa)$BHE`6x
z!D8TZ1_nqGM6Mx%`TJq{{u!fS-oDQN3=Cz|aNU0f#t!BmX5oi98ClpE7#I{87#MiT
kH0v27<Ns+Ngx=Hx0JPpX1G;Ug*Z=?k07*qoM6N<$f^Y(9Z2$lO

delta 204
zcmV;-05ku<0-^$tUVpDiL_t(IjqTL2Z31BoK;h5mq;%<F6_PzbVh!jZ1x=WP0>}U?
z5X2})e+!u6k`&P?LO%$l;FT_(Ut>q^J!ve3iPTp@I7w?g^GaihsVq{pv>`JoBX?@4
zFAZbtSmfIoN(a=D+qNx6;)+J!p58T*E~?IL8=u0<-$@QJ_C@-8e4oOu&6jfX!iVr7
z{2#(_;_C$!k{>^JUq^1OFuO$^-Yd@*8Zg12P*e+R;q44Y?l9cr1*qi!0000<MNUMn
GLSTYhR$JQu

diff --git a/FizzyLauncher.UI/Resources/20/maximise3.png b/FizzyLauncher.UI/Resources/20/maximise3.png
index fa1dcec1742feb9929b46170b8b79b7c4053406b..77ae4ee2283652d09bd9c5ddebc94681ffab3ce7 100644
GIT binary patch
delta 21
dcmdnZw3}&y4%cA@2EN0L$MaXDY&2tK1OQL~2L%8C

delta 21
dcmdnZw3}&y4%co52EN^l$A4Tg+i1qh2mn(d2Ydhk

diff --git a/FizzyLauncher.UI/Resources/20/minimise.png b/FizzyLauncher.UI/Resources/20/minimise.png
index ee670153496c2c5417f1554908fcd4cdb4109781..338d63d626d24e70594dded82add989870559a14 100644
GIT binary patch
delta 218
zcmV<0044vx0<Z#*UVptwL_t(IjqTJi4uU`sh2eh*2`#N$1-*&36B<hC)WSw@K%nF(
zqDO%e+HF`1pfMQDMvVop+Dx+FPG*x)aU6SE>m#rR7TBc*il%9H?tpDAp)m^}@qOR8
zLuVLc!aUD!Hd+)#Vb^t~QflK2I<^=<nx@y`7&x}bv&`TO{!;_!P8CJu0xVzLEwe0J
zJr;k{;nd6T<}064L%)J-5fK^ZT`3Vc1IY)P130;!=k2xD&@bA+5~_?bMccNAJ7yj`
UB{X-32LJ#707*qoM6N<$f*zP(4gdfE

delta 234
zcmV<G02TkR0>A>0UVqI=L_t(IjqQ}Z4go<FM$eT^gtdBJ1y3Qmm56M-0UZhr?bf>@
z(b;IdfS*TMy|Cqsf^CG538HYS$xY_WcjqQoe1DbAImt-SE}9Z12zxa1VnO$<oRf@1
z>#mU~<r1WKIEuCe?E)yMblQ!bi7%KfD=4)AnwhjsQyGBQs$*}j$8yG0@`%6iFZ>0e
zb*~sqqcu={a(Cmk8@1cwcM{%v`BgqJ6k!k76=X;lF4F&wC74DNp!be+A~Lp;qdmwM
kP5>@YHgv_n+_Ba03>qCcL8z(&w*UYD07*qoM6N<$f`~|KegFUf

diff --git a/FizzyLauncher.UI/Resources/20/minimise2.png b/FizzyLauncher.UI/Resources/20/minimise2.png
index c1221e34efef00a2449ebfd889d3a4c5b803f387..f7b44a87ee33d42643dc5157bde62eab87b4d3e5 100644
GIT binary patch
delta 234
zcmV<G02TkH0>A>0UVqI=L_t(IjbmiU-Nr7+#L@i!KSK-y1A`<3dEhxC1H<C?LT_qW
zpoW!_X%GxZ{%2q)6MQfHp9ShN1}298*6$`cA0x*!!JK{8|Ctz${Qu7w%ftZnCb@<&
zFfcH@pW<{B%9LUv*AQG_)WA^#2ZMnu*aQXg_8n$mV6Y*e_hZP1Nlv!tg7k4AHk*kB
zG>Mew3=EJWh+IPi^Y_ET`x&EP-oDQN3=Cz|aNU0f#t!BmX5oi98ClpE7#I{87#MiT
kH0v27<Ns+Ngx=Hx0PiR`1M87tCIA2c07*qoM6N<$g15_Q761SM

delta 208
zcmV;>05AW*0;U3xUVpPmL_t(IjqTL2Z300MK+!koBr@l?6>uL$q7BGw0uo#Y0pJ4M
zfDxq}`86;O4hXE1Wi7@c;D;ma->)5MBR}*t7Q#dtC?OoAm7bSMV}YqGQnj=pGbtmt
zYH1)1V{BjK+Zswc)RCLEEuO^%jZU84C6X@g!n^PmgjLrt*GWEw(T^w7F2<g|kN>Bz
z>*n8bg{6c8$1kXmd_TW;9l7y_*<aLQS$XiP0TVnHifUmc%)bB?#4y~1c?pLA0000<
KMNUMnLSTYg$XiMP

diff --git a/FizzyLauncher.UI/Resources/20/minimise3.png b/FizzyLauncher.UI/Resources/20/minimise3.png
new file mode 100644
index 0000000000000000000000000000000000000000..2174ecea11dedf2dd635b1e1bd316eb0161323ad
GIT binary patch
literal 315
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt
z8c`CQpH@<ySd_|8US6)3nU`IhoLG>mmtT}V`<;yxP|*ob7sn8b-sC-RU!FYo(RIbl
ziH(YFjg5|z8f`xOv1dN~$p3xa)lCk(+NzfoBqpS!Bxnc=r2Rk7R4U1=th{*ZmxZdw
zPZ+*knY-m{JzJad|NsB{Q<EC1CdV9>0D>j_`nFuDUWOC1IrI#&9;|3=KIkBp)8wC%
z%x7%yXZykRQ$Kc`d8oSW#iB2Tie|GrSxq{pJm=w=pwtoLJnyE<p+mnVA1B{_;pfKI
zW|Xy~@1wml`)U4p<)t$5EfNb@*NW`yOG!zI`SbAZ`6`BzOw-wKL&`#deq!)+^>bP0
Hl+XkKb}f82

literal 0
HcmV?d00001

diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index 5e172fa..2c73278 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -1,36 +1,54 @@
-using System;
+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(232, 231, 236);
+        protected readonly Color borderColour = Color.FromArgb(235, 234, 233);
         protected readonly int borderWidth = 1;
 
-        protected readonly Color backColour = Color.FromArgb(254, 254, 254);
+        protected readonly int resizeBorderWidth = 3;
 
-        protected readonly Color titleBarColour = Color.FromArgb(237, 240, 247);
-        protected readonly Color titleBorderColour = Color.FromArgb(232, 231, 236);
-        protected readonly Color titleColour = Color.FromArgb(32, 32, 33);
-        protected readonly int titleBarHeight = 56;
+        protected readonly Color backColour = Color.FromArgb(255, 255, 255);
 
-        private bool isDragging = false;
-        private Point startPosition = new Point();
+        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 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;
+        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();
@@ -41,42 +59,29 @@ namespace AppLauncher.Windows.Forms
                 this.StartPosition = FormStartPosition.Manual;
             }
 
+            this.AutoScaleMode = AutoScaleMode.None;
             this.BackColor = backColour;
             this.Padding = new Padding(0);
+            this.DoubleBuffered = true;
 
-            notifyIcon1.Text = Application.ProductName;
+            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.SuspendLayout();
+            this.Text = Application.ProductName;
 
-            imageBox3.Left = this.DisplayRectangle.Width - imageBox3.Width - 17;
-            imageBox3.Top = 18;
-            imageBox3.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
+            initialiseLoadComponent();
 
-            imageBox2.Left = imageBox3.Left - imageBox2.Width - 8;
-            imageBox2.Top = 18;
-            imageBox2.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
+            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;
 
-            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)
@@ -112,40 +117,6 @@ namespace AppLauncher.Windows.Forms
             }
         }
 
-        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);
@@ -158,13 +129,15 @@ namespace AppLauncher.Windows.Forms
 
             area.Inflate((-1 * borderWidth), (-1 * borderWidth));
 
-            g.FillRectangle(new SolidBrush(titleBarColour), area.X, area.Y, (area.Width + area.X), titleBarHeight);
+            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(this.AppIcon, 17, 13);
-
-            if (!DesignMode) TextRenderer.DrawText(g, Application.ProductName, new Font(this.Font.FontFamily, 14F), new Point(58, 17), titleColour);
+            if (!DesignMode)
+            {
+                g.DrawImageUnscaled(appIcon, 17, appIconTop);
 
+                TextRenderer.DrawText(g, this.Text, titleFont, new Point(58, titleFontTop), titleColour);
+            }
         }
 
         protected override void OnResize(EventArgs e)
@@ -186,224 +159,313 @@ namespace AppLauncher.Windows.Forms
         [Category("Appearance")]
         public ContextMenuStrip TitleContextMenuStrip { get; set; } = null;
 
-        [Browsable(false)]
-        public Image AppIcon { get; set; } = null;
+        //[Browsable(false)]
+        //public Image AppIcon { 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);
+        //[Browsable(false)]
+        //public bool IsMaximiseEnabled { get; set; } = false;
 
-                newPosition.X = Math.Max(newPosition.X, Screen.PrimaryScreen.WorkingArea.Left);
-                newPosition.Y = Math.Max(newPosition.Y, Screen.PrimaryScreen.WorkingArea.Top);
+        //protected Point DefaultLocation
+        //{
+        //    get
+        //    {
+        //        Point newPosition = new Point(Cursor.Position.X, Cursor.Position.Y);
+        //        newPosition.X -= (this.Width / 2);
+        //        newPosition.Y -= (this.Height / 2);
 
-                return newPosition;
-            }
-        }
+        //        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.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.Properties.Resources20.close;
-            this.imageBox3.ImageHover = global::AppLauncher.Properties.Resources20.close2;
-            this.imageBox3.ImageNormal = global::AppLauncher.Properties.Resources20.close;
-            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.Properties.Resources20.maximise;
-            this.imageBox2.ImageHover = global::AppLauncher.Properties.Resources20.maximise;
-            this.imageBox2.ImageNormal = global::AppLauncher.Properties.Resources20.maximise;
-            this.imageBox2.ImageSelected = global::AppLauncher.Properties.Resources20.maximise2;
-            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.Properties.Resources20.minimise;
-            this.imageBox1.ImageHover = global::AppLauncher.Properties.Resources20.minimise2;
-            this.imageBox1.ImageNormal = global::AppLauncher.Properties.Resources20.minimise;
-            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.Name = "Form";
             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 = Properties.Resources20.maximise3;
-                }
-                else
-                {
-                    imageBox2.Image = imageBox2.ImageNormal = Properties.Resources20.maximise;
-                }
-            }
-        }
-
-        protected virtual void imageBox3_MouseClick(object sender, MouseEventArgs e)
-        {
-            if (e.Button == MouseButtons.Left)
-            {
-                this.Close();
-            }
-        }
-
-        private void panel1_MouseDown(object sender, MouseEventArgs e)
+        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 panel1_MouseUp(object sender, MouseEventArgs e)
+        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 panel1_MouseMove(object sender, MouseEventArgs e)
+        private void form_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
         {
-            if (isDragging)
+            if (e.KeyCode == Keys.Escape)
             {
-                this.Size = new Size(this.Width, e.Y - startPosition.Y + this.Height);
+                Application.Exit();
             }
         }
 
-        private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close();
-
-        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
+        protected virtual void initialiseLoadComponent()
         {
-            if (e.Button == MouseButtons.Left)
+            if (DesignMode) return;
+
+            // close
+            TImageBox closeBox = generateToolbarImageBox();
+            if (enableCloseMenu)
             {
-                this.Visible = !this.Visible;
+                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;
             }
 
-            //notifyIcon1.Visible = !this.Visible;
+            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/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 a5fd747..01a34f2 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -29,13 +29,19 @@ namespace AppLauncher
 
         protected OptionsForm optionsForm = null;
         protected string sessionFilename = null;
+        protected bool requestExit = false;
 
         public MainForm() : base()
         {
             InitializeComponent();
 
-            this.AppIcon = Properties.Resources.app_icon_32;
+            notifyIcon1.Text = Application.ProductName;
+
             this.StartPosition = FormStartPosition.WindowsDefaultBounds;
+
+            appIcon = Properties.Resources.app_icon_32;
+            enableMaximiseMenu = false;
+            closeOnMinimise = true;
         }
 
         protected override void OnLoad(EventArgs e)
@@ -67,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
@@ -243,7 +258,11 @@ namespace AppLauncher
 
         private void toolStripMenuItem1_Click(object sender, EventArgs e) => this.TopMost = !this.TopMost;
 
-        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)
         {
@@ -253,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(() =>
@@ -542,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 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="imageBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD9SURBVDhP1ZVN
-        CsIwEIWz0hMoehX1fv4s3Ui1ScTlpHXpBdyJKwsKuq7XqJl0HLREobEbHzx4mUk+WhqmYj7ftVc6mcXa
-        3GNliiCXZ6cA0BIO5tsU5ol4PtlSmYEIVLxOhwTMBYWCesFizv8CbW1vfVxstl0qCcxYwx6VWMhAfwRK
-        BYeyBxmCShhkWMMebWMxh0NFSkFnpcypBJhrrJIz5YvW0KNtLOZw8MhBJTiQszQ3HwzFHA4eVYFSwi2K
-        0j6138QcDhV9e2UflDkcKmr8o9has9emrv4J+BysdgRRr7bsdRoR0I2vKS1+ttTJ2P0C7AKh+WuzpvHs
-        BABaDyfvLuW63njGAAAAAElFTkSuQmCC
-</value>
-  </data>
-  <data name="imageBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACTSURBVDhPY5g0
-        aRv77PlruubMX/1szrzV/8nCEL2dq1atYmMAG4ZNEXm4gwHmslnzVlsxkAnmLFhrDTXwKQOU8R8qRzaA
-        m0MXA4H8wzBxPPgwVDkYwMTpYyA5YNTAUQPJAEPJQFjBCiyCoHIkg7lzV9lADQQXX51QDsV47vw17eAq
-        AMgBGfoUWZJEDNLbsWrVKjYA+HjZeiQ05EUAAAAASUVORK5CYII=
-</value>
-  </data>
-  <data name="imageBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wwAADsMBx2+oZAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACTSURBVDhPY5g0
-        aRv77PlruubMX/1szrzV/8nCEL2dq1atYmMAG4ZNEXm4gwHmslnzVlsxkAnmLFhrDTXwKQOU8R8qRzaA
-        mzNqINlg1MChZiCQfxgmjgcfhioHA5g4fQwkB9DQQFjBCiyCoHIkg7lzV9lADQQXX51QDsV47vw17eAq
-        AMgBGfoUWZJEDNLbsWrVKjYA+QjZeove9ZMAAAAASUVORK5CYII=
-</value>
-  </data>
   <metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
@@ -156,6 +126,310 @@
   <metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>308, 17</value>
   </metadata>
+  <metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>448, 17</value>
+  </metadata>
+  <metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>561, 17</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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==
+</value>
+  </data>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         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")]

From 0c3a7562521b8c0cf2564500a3db4e8004ccdb6b Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Sun, 8 Nov 2020 23:30:53 +0000
Subject: [PATCH 09/15] CHanged: label

---
 Windows/Forms/OptionsForm.cs | 104 +++++++++++++++++------------------
 1 file changed, 52 insertions(+), 52 deletions(-)

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);

From 17ac0a435590449327e48d743b5c9144cc5d33d5 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 00:58:27 +0000
Subject: [PATCH 10/15] Changed: better stability on animation

---
 .../Forms/Tile/TTilePanelLayout.Designer.cs   |  63 +++++----
 Windows/Forms/Tile/TTilePanelLayout.cs        | 123 +++++++++++++-----
 2 files changed, 129 insertions(+), 57 deletions(-)

diff --git a/Windows/Forms/Tile/TTilePanelLayout.Designer.cs b/Windows/Forms/Tile/TTilePanelLayout.Designer.cs
index 93e43a8..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,7 +45,7 @@
             this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
             this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
-            this.removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.label1 = new System.Windows.Forms.Label();
             this.contextMenuStrip1.SuspendLayout();
             this.contextMenuStrip2.SuspendLayout();
             this.SuspendLayout();
@@ -55,20 +56,20 @@
             this.addToolStripMenuItem,
             this.addListToolStripMenuItem});
             this.contextMenuStrip1.Name = "contextMenuStrip1";
-            this.contextMenuStrip1.Size = new System.Drawing.Size(139, 48);
+            this.contextMenuStrip1.Size = new System.Drawing.Size(181, 70);
             // 
             // addToolStripMenuItem
             // 
             this.addToolStripMenuItem.Name = "addToolStripMenuItem";
-            this.addToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
+            this.addToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
             this.addToolStripMenuItem.Text = "&Add Tile";
             this.addToolStripMenuItem.Click += new System.EventHandler(this.addTileMenuItem_Click);
             // 
             // addListToolStripMenuItem
             // 
             this.addListToolStripMenuItem.Name = "addListToolStripMenuItem";
-            this.addListToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
-            this.addListToolStripMenuItem.Text = "Add &List Tile";
+            this.addListToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.addListToolStripMenuItem.Text = "Add &Folder";
             this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click);
             // 
             // contextMenuStrip2
@@ -83,33 +84,40 @@
             this.toolStripSeparator1,
             this.toolStripMenuItem3});
             this.contextMenuStrip2.Name = "contextMenuStrip1";
-            this.contextMenuStrip2.Size = new System.Drawing.Size(181, 170);
+            this.contextMenuStrip2.Size = new System.Drawing.Size(144, 148);
             // 
             // toolStripMenuItem2
             // 
             this.toolStripMenuItem2.Name = "toolStripMenuItem2";
-            this.toolStripMenuItem2.Size = new System.Drawing.Size(180, 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(180, 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(180, 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(177, 6);
+            this.toolStripSeparator2.Size = new System.Drawing.Size(140, 6);
             // 
             // toolStripMenuItem4
             // 
@@ -119,66 +127,76 @@
             this.downToolStripMenuItem,
             this.bottomToolStripMenuItem});
             this.toolStripMenuItem4.Name = "toolStripMenuItem4";
-            this.toolStripMenuItem4.Size = new System.Drawing.Size(180, 22);
+            this.toolStripMenuItem4.Size = new System.Drawing.Size(143, 22);
             this.toolStripMenuItem4.Text = "&Move";
             // 
             // topToolStripMenuItem
             // 
             this.topToolStripMenuItem.Name = "topToolStripMenuItem";
-            this.topToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.topToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
             this.topToolStripMenuItem.Text = "&Top";
             this.topToolStripMenuItem.Click += new System.EventHandler(this.moveTopMenuItem_Click);
             // 
             // upToolStripMenuItem
             // 
             this.upToolStripMenuItem.Name = "upToolStripMenuItem";
-            this.upToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.upToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
             this.upToolStripMenuItem.Text = "&Up";
             this.upToolStripMenuItem.Click += new System.EventHandler(this.moveUpMenuItem_Click);
             // 
             // downToolStripMenuItem
             // 
             this.downToolStripMenuItem.Name = "downToolStripMenuItem";
-            this.downToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.downToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
             this.downToolStripMenuItem.Text = "&Down";
             this.downToolStripMenuItem.Click += new System.EventHandler(this.moveDownMenuItem_Click);
             // 
             // bottomToolStripMenuItem
             // 
             this.bottomToolStripMenuItem.Name = "bottomToolStripMenuItem";
-            this.bottomToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+            this.bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
             this.bottomToolStripMenuItem.Text = "&Bottom";
             this.bottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomMenuItem_Click);
             // 
             // toolStripSeparator1
             // 
             this.toolStripSeparator1.Name = "toolStripSeparator1";
-            this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
+            this.toolStripSeparator1.Size = new System.Drawing.Size(140, 6);
             // 
             // toolStripMenuItem3
             // 
             this.toolStripMenuItem3.Name = "toolStripMenuItem3";
-            this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22);
+            this.toolStripMenuItem3.Size = new System.Drawing.Size(143, 22);
             this.toolStripMenuItem3.Text = "&Remove";
             this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click);
             // 
-            // removeRowToolStripMenuItem
+            // label1
             // 
-            this.removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem";
-            this.removeRowToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
-            this.removeRowToolStripMenuItem.Text = "Remo&ve Row";
-            this.removeRowToolStripMenuItem.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click);
+            this.label1.AutoSize = true;
+            this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(99)))), ((int)(((byte)(105)))), ((int)(((byte)(119)))));
+            this.label1.Image = global::AppLauncher.Properties.Resources.toggle_left_ea_16;
+            this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.label1.Location = new System.Drawing.Point(227, 72);
+            this.label1.Margin = new System.Windows.Forms.Padding(0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(0, 13);
+            this.label1.TabIndex = 2;
+            this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+            this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
+            this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
             // 
             // TTilePanelLayout
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.BackColor = System.Drawing.Color.Transparent;
+            this.Controls.Add(this.label1);
             this.Name = "TTilePanelLayout";
             this.Size = new System.Drawing.Size(370, 150);
             this.contextMenuStrip1.ResumeLayout(false);
             this.contextMenuStrip2.ResumeLayout(false);
             this.ResumeLayout(false);
+            this.PerformLayout();
 
         }
 
@@ -199,5 +217,6 @@
         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 7e0bc29..2e99b6c 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.cs
@@ -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,16 +128,16 @@ namespace AppLauncher.Windows.Forms
             //this.Size = new Size(panel1.Width, this.ExpandedHeight);
         }
 
-        protected override void OnPaint(PaintEventArgs e)
-        {
-            base.OnPaint(e);
+        //protected override void OnPaint(PaintEventArgs e)
+        //{
+        //    base.OnPaint(e);
 
-            Graphics g = e.Graphics;
+        //    Graphics g = e.Graphics;
 
-            g.DrawImageUnscaled((isChecked ? Properties.Resources.toggle_right_ea_16 : Properties.Resources.toggle_left_ea_16), 2, 2);
+            //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));
-        }
+            //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)
         {
@@ -152,38 +156,38 @@ namespace AppLauncher.Windows.Forms
 
             if (e.Button == MouseButtons.Left)
             {
-                if (isLabel)
-                {
-                    isChecked = !isChecked;
+                //if (isLabel)
+                //{
+                //    isChecked = !isChecked;
 
-                    this.Invalidate();
+                //    this.Invalidate();
 
-                    await this.InvalidateContainer();
+                //    await this.InvalidateContainer();
 
-                    // exclusivity
-                    if (isChecked)
-                    {
-                        if (this.Model.IsExclusive)
-                        {
-                            if (this.FlowLayoutPanel != null)
-                            {
-                                foreach (TTilePanelLayout item in this.FlowLayoutPanel.Controls.OfType<TTilePanelLayout>())
-                                {
-                                    if (item.Equals(this))
-                                    {
-                                        continue;
-                                    }
+                //    // exclusivity
+                //    if (isChecked)
+                //    {
+                //        if (this.Model.IsExclusive)
+                //        {
+                //            if (this.FlowLayoutPanel != null)
+                //            {
+                //                foreach (TTilePanelLayout item in this.FlowLayoutPanel.Controls.OfType<TTilePanelLayout>())
+                //                {
+                //                    if (item.Equals(this))
+                //                    {
+                //                        continue;
+                //                    }
 
-                                    await item.Collapse();
-                                }
-                            }
-                        }
-                    }
-                }
-                else
-                {
-                    // do nothing
-                }
+                //                    await item.Collapse();
+                //                }
+                //            }
+                //        }
+                //    }
+                //}
+                //else
+                //{
+                //    // do nothing
+                //}
             }
             else if (e.Button == MouseButtons.Right)
             {
@@ -417,6 +421,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);
@@ -429,6 +436,8 @@ namespace AppLauncher.Windows.Forms
             groupModel = model;
             isChecked = groupModel.IsExpanded;
 
+            label1.Text = "        " + groupModel?.Title;
+
             this.Invalidate();
         }
 
@@ -793,5 +802,49 @@ namespace AppLauncher.Windows.Forms
             }
         }
 
+        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<TTilePanelLayout>())
+                            {
+                                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);
+            }
+        }
+
+
+
     }
 }

From 80691f77cee7880b3db94c23796ba67c8fa67209 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 00:59:25 +0000
Subject: [PATCH 11/15] Changed: clean-up

---
 Windows/Forms/Tile/TTilePanelLayout.cs | 48 ++------------------------
 1 file changed, 2 insertions(+), 46 deletions(-)

diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs
index 2e99b6c..53e62a8 100644
--- a/Windows/Forms/Tile/TTilePanelLayout.cs
+++ b/Windows/Forms/Tile/TTilePanelLayout.cs
@@ -128,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);
@@ -146,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);
 
@@ -156,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<TTilePanelLayout>())
-                //                {
-                //                    if (item.Equals(this))
-                //                    {
-                //                        continue;
-                //                    }
-
-                //                    await item.Collapse();
-                //                }
-                //            }
-                //        }
-                //    }
-                //}
-                //else
-                //{
-                //    // do nothing
-                //}
+                // do nothing
             }
             else if (e.Button == MouseButtons.Right)
             {
@@ -844,7 +802,5 @@ namespace AppLauncher.Windows.Forms
             }
         }
 
-
-
     }
 }

From a444a4054943ee87f5e4396ecb68b72ae9184be0 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 01:09:13 +0000
Subject: [PATCH 12/15] Reverted: installer config'

---
 installer.iss | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 installer.iss

diff --git a/installer.iss b/installer.iss
new file mode 100644
index 0000000..6d17b5e
--- /dev/null
+++ b/installer.iss
@@ -0,0 +1,51 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define MyAppName "Fizzy Launcher"
+#define MyAppVersion "0.1.1.144 alpha"
+#define MyAppPublisher "Hi, I'm Ray"
+#define MyAppURL "https://www.hiimray.co.uk/software-fizzy-launcher"
+#define MyAppExeName "fizzylauncher.exe"
+
+[Setup]
+; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
+; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
+AppId={{472ED37C-C4FC-4B72-8BC3-C281A6E0D2F9}
+AppName={#MyAppName}
+AppVersion={#MyAppVersion}
+;AppVerName={#MyAppName} {#MyAppVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={autopf}\{#MyAppName}
+DefaultGroupName={#MyAppName}
+DisableProgramGroupPage=yes
+; Remove the following line to run in administrative install mode (install for all users.)
+PrivilegesRequired=lowest
+OutputDir=L:\gitlab-hiimray\fizzy-launcher\bin
+OutputBaseFilename=fizzy-launcher
+Compression=lzma
+SolidCompression=yes
+WizardStyle=modern
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\fizzylauncher.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
+Source: "L:\gitlab-hiimray\fizzy-launcher\bin\Release\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
+Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
+Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
+

From 8e64366f1dc8bf4551dd81c43f799a98be3d7be1 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 01:14:05 +0000
Subject: [PATCH 13/15] Added: build script

---
 build-release.bat | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 build-release.bat

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

From 9a4a727004fab676ec0ebd53ad99f30ab0e1ee7f Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 18:00:07 +0000
Subject: [PATCH 14/15] Changed: icon scaling

---
 FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
index 2c73278..4e22e8e 100644
--- a/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
+++ b/FizzyLauncher.UI/RyzStudio/Windows/Forms/TForm.cs
@@ -134,7 +134,8 @@ namespace AppLauncher.Windows.Forms
 
             if (!DesignMode)
             {
-                g.DrawImageUnscaled(appIcon, 17, appIconTop);
+                //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);
             }

From 8d188852542c359cf81e58becb0ea69e8bc3d258 Mon Sep 17 00:00:00 2001
From: Ray <sympatheticfire@gmail.com>
Date: Mon, 9 Nov 2020 18:03:31 +0000
Subject: [PATCH 15/15] Changed: include ui with installer

---
 installer.iss | 1 +
 1 file changed, 1 insertion(+)

diff --git a/installer.iss b/installer.iss
index 6d17b5e..8f5bcae 100644
--- a/installer.iss
+++ b/installer.iss
@@ -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