diff --git a/HelpersLib/HelpersLib.csproj b/HelpersLib/HelpersLib.csproj
index ac317a903..f9c744c10 100644
--- a/HelpersLib/HelpersLib.csproj
+++ b/HelpersLib/HelpersLib.csproj
@@ -115,6 +115,15 @@
+
+ Component
+
+
+ UserControl
+
+
+ TabToTreeView.cs
+
@@ -341,6 +350,9 @@
QRCodeForm.cs
+
+ TabToTreeView.cs
+
DownloaderForm.cs
diff --git a/HelpersLib/UserControls/TabToTreeView.Designer.cs b/HelpersLib/UserControls/TabToTreeView.Designer.cs
new file mode 100644
index 000000000..e6c46e590
--- /dev/null
+++ b/HelpersLib/UserControls/TabToTreeView.Designer.cs
@@ -0,0 +1,121 @@
+namespace HelpersLib
+{
+ partial class TabToTreeView
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.tvMain = new System.Windows.Forms.TreeView();
+ this.scMain = new System.Windows.Forms.SplitContainer();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.tcMain = new HelpersLib.UserControls.TablessControl();
+ ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
+ this.scMain.Panel1.SuspendLayout();
+ this.scMain.Panel2.SuspendLayout();
+ this.scMain.SuspendLayout();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tvMain
+ //
+ this.tvMain.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.tvMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tvMain.FullRowSelect = true;
+ this.tvMain.Location = new System.Drawing.Point(0, 0);
+ this.tvMain.Name = "tvMain";
+ this.tvMain.ShowLines = false;
+ this.tvMain.ShowPlusMinus = false;
+ this.tvMain.Size = new System.Drawing.Size(237, 500);
+ this.tvMain.TabIndex = 0;
+ this.tvMain.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.tvMain_BeforeCollapse);
+ this.tvMain.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tvMain_AfterSelect);
+ //
+ // scMain
+ //
+ this.scMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.scMain.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.scMain.IsSplitterFixed = true;
+ this.scMain.Location = new System.Drawing.Point(0, 0);
+ this.scMain.Margin = new System.Windows.Forms.Padding(0);
+ this.scMain.Name = "scMain";
+ //
+ // scMain.Panel1
+ //
+ this.scMain.Panel1.Controls.Add(this.tvMain);
+ //
+ // scMain.Panel2
+ //
+ this.scMain.Panel2.Controls.Add(this.panel1);
+ this.scMain.Size = new System.Drawing.Size(700, 500);
+ this.scMain.SplitterDistance = 237;
+ this.scMain.SplitterWidth = 3;
+ this.scMain.TabIndex = 0;
+ //
+ // panel1
+ //
+ this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.panel1.Controls.Add(this.tcMain);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(460, 500);
+ this.panel1.TabIndex = 1;
+ //
+ // tcMain
+ //
+ this.tcMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tcMain.Location = new System.Drawing.Point(0, 0);
+ this.tcMain.Name = "tcMain";
+ this.tcMain.SelectedIndex = 0;
+ this.tcMain.Size = new System.Drawing.Size(458, 498);
+ this.tcMain.TabIndex = 0;
+ this.tcMain.Visible = false;
+ //
+ // TabToTreeView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.scMain);
+ this.Margin = new System.Windows.Forms.Padding(0);
+ this.Name = "TabToTreeView";
+ this.Size = new System.Drawing.Size(700, 500);
+ this.scMain.Panel1.ResumeLayout(false);
+ this.scMain.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
+ this.scMain.ResumeLayout(false);
+ this.panel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TreeView tvMain;
+ private System.Windows.Forms.SplitContainer scMain;
+ private UserControls.TablessControl tcMain;
+ private System.Windows.Forms.Panel panel1;
+ }
+}
diff --git a/HelpersLib/UserControls/TabToTreeView.cs b/HelpersLib/UserControls/TabToTreeView.cs
new file mode 100644
index 000000000..18b8f734c
--- /dev/null
+++ b/HelpersLib/UserControls/TabToTreeView.cs
@@ -0,0 +1,115 @@
+#region License Information (GPL v3)
+
+/*
+ ShareX - A program that allows you to take screenshots and share any file type
+ Copyright (C) 2007-2014 ShareX Developers
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Optionally you can also view the license at .
+*/
+
+#endregion License Information (GPL v3)
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HelpersLib
+{
+ public partial class TabToTreeView : UserControl
+ {
+ private TabControl mainTabControl;
+
+ public TabControl MainTabControl
+ {
+ get
+ {
+ return mainTabControl;
+ }
+ set
+ {
+ mainTabControl = value;
+ FillTreeView(tvMain.Nodes, mainTabControl);
+ tvMain.ExpandAll();
+ }
+ }
+
+ private int treeViewSize;
+
+ public int TreeViewSize
+ {
+ get
+ {
+ return treeViewSize;
+ }
+ set
+ {
+ treeViewSize = value;
+ scMain.SplitterDistance = treeViewSize;
+ }
+ }
+
+ public TabToTreeView()
+ {
+ InitializeComponent();
+ TreeViewSize = 150;
+ }
+
+ private void FillTreeView(TreeNodeCollection nodeCollection, TabControl tab)
+ {
+ if (nodeCollection != null && tab != null)
+ {
+ foreach (TabPage tabPage in tab.TabPages)
+ {
+ TreeNode treeNode = new TreeNode(tabPage.Text);
+ treeNode.Tag = tabPage;
+ nodeCollection.Add(treeNode);
+
+ foreach (Control control in tabPage.Controls)
+ {
+ if (control is TabControl)
+ {
+ FillTreeView(treeNode.Nodes, control as TabControl);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ private void tvMain_BeforeCollapse(object sender, TreeViewCancelEventArgs e)
+ {
+ e.Cancel = true;
+ }
+
+ private void tvMain_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ TabPage tabPage = e.Node.Tag as TabPage;
+
+ if (tabPage != null)
+ {
+ tcMain.Visible = true;
+ tcMain.TabPages.Clear();
+ tcMain.TabPages.Add(tabPage);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/HelpersLib/UserControls/TabToTreeView.resx b/HelpersLib/UserControls/TabToTreeView.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/HelpersLib/UserControls/TabToTreeView.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/HelpersLib/UserControls/TablessControl.cs b/HelpersLib/UserControls/TablessControl.cs
new file mode 100644
index 000000000..e1fd53f93
--- /dev/null
+++ b/HelpersLib/UserControls/TablessControl.cs
@@ -0,0 +1,49 @@
+#region License Information (GPL v3)
+
+/*
+ ShareX - A program that allows you to take screenshots and share any file type
+ Copyright (C) 2007-2014 ShareX Developers
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Optionally you can also view the license at .
+*/
+
+#endregion License Information (GPL v3)
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HelpersLib.UserControls
+{
+ public class TablessControl : TabControl
+ {
+ protected override void WndProc(ref Message m)
+ {
+ // Hide tabs by trapping the TCM_ADJUSTRECT message
+ if (m.Msg == 0x1328 && !DesignMode)
+ {
+ m.Result = (IntPtr)1;
+ }
+ else
+ {
+ base.WndProc(ref m);
+ }
+ }
+ }
+}
\ No newline at end of file