From 8a3f8542cf12d366d992019a115b912961986409 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 4 Jan 2015 22:24:30 +0200 Subject: [PATCH] Main window menu is resizable now --- .../Controls/SplitContainerCustomSplitter.cs | 25 +++- ShareX/ApplicationConfig.cs | 1 + ShareX/Forms/MainForm.Designer.cs | 43 ++++--- ShareX/Forms/MainForm.cs | 12 +- ShareX/Forms/MainForm.resx | 110 +++++++++++------- 5 files changed, 132 insertions(+), 59 deletions(-) diff --git a/ShareX.HelpersLib/Controls/SplitContainerCustomSplitter.cs b/ShareX.HelpersLib/Controls/SplitContainerCustomSplitter.cs index 479a699bb..91b32801b 100644 --- a/ShareX.HelpersLib/Controls/SplitContainerCustomSplitter.cs +++ b/ShareX.HelpersLib/Controls/SplitContainerCustomSplitter.cs @@ -23,6 +23,7 @@ #endregion License Information (GPL v3) +using System.ComponentModel; using System.Drawing; using System.Windows.Forms; @@ -30,12 +31,32 @@ namespace ShareX.HelpersLib { public class SplitContainerCustomSplitter : SplitContainer { + [DefaultValue(true)] + public bool DrawLineLeftSide { get; set; } + + [DefaultValue(true)] + public bool DrawLineRightSide { get; set; } + + public SplitContainerCustomSplitter() + { + DrawLineLeftSide = true; + DrawLineRightSide = true; + } + protected override void OnPaint(PaintEventArgs pevent) { Graphics g = pevent.Graphics; Rectangle rect = SplitterRectangle; - g.DrawLine(Pens.Black, rect.Left, rect.Top, rect.Left, rect.Bottom - 1); - g.DrawLine(Pens.Black, rect.Right - 1, rect.Top, rect.Right - 1, rect.Bottom - 1); + + if (DrawLineLeftSide) + { + g.DrawLine(Pens.Black, rect.Left, rect.Top, rect.Left, rect.Bottom - 1); + } + + if (DrawLineRightSide) + { + g.DrawLine(Pens.Black, rect.Right - 1, rect.Top, rect.Right - 1, rect.Bottom - 1); + } } } } \ No newline at end of file diff --git a/ShareX/ApplicationConfig.cs b/ShareX/ApplicationConfig.cs index 34715aef6..4cf4c0f8b 100644 --- a/ShareX/ApplicationConfig.cs +++ b/ShareX/ApplicationConfig.cs @@ -50,6 +50,7 @@ public ApplicationConfig() public bool ShowMenu = true; public ImagePreviewVisibility ImagePreview = ImagePreviewVisibility.Automatic; + public int MenuSplitterDistance = 170; public int PreviewSplitterDistance = 335; #endregion Main Form diff --git a/ShareX/Forms/MainForm.Designer.cs b/ShareX/Forms/MainForm.Designer.cs index d5603c7ad..f35d37113 100644 --- a/ShareX/Forms/MainForm.Designer.cs +++ b/ShareX/Forms/MainForm.Designer.cs @@ -30,10 +30,9 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.scMain = new HelpersLib.SplitContainerCustomSplitter(); + this.scMain = new ShareX.HelpersLib.SplitContainerCustomSplitter(); this.lblMainFormTip = new System.Windows.Forms.Label(); - this.lblSplitter = new System.Windows.Forms.Label(); - this.lvUploads = new HelpersLib.MyListView(); + this.lvUploads = new ShareX.HelpersLib.MyListView(); this.chFilename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chStatus = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chProgress = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); @@ -41,7 +40,7 @@ private void InitializeComponent() this.chElapsed = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chRemaining = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.chURL = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.pbPreview = new HelpersLib.MyPictureBox(); + this.pbPreview = new ShareX.HelpersLib.MyPictureBox(); this.tsMain = new System.Windows.Forms.ToolStrip(); this.tsddbCapture = new System.Windows.Forms.ToolStripDropDownButton(); this.tsmiFullscreen = new System.Windows.Forms.ToolStripMenuItem(); @@ -220,6 +219,7 @@ private void InitializeComponent() this.tssTray3 = new System.Windows.Forms.ToolStripSeparator(); this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem(); this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem(); + this.scMenu = new ShareX.HelpersLib.SplitContainerCustomSplitter(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); this.scMain.Panel1.SuspendLayout(); this.scMain.Panel2.SuspendLayout(); @@ -227,6 +227,10 @@ private void InitializeComponent() this.tsMain.SuspendLayout(); this.cmsTaskInfo.SuspendLayout(); this.cmsTray.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.scMenu)).BeginInit(); + this.scMenu.Panel1.SuspendLayout(); + this.scMenu.Panel2.SuspendLayout(); + this.scMenu.SuspendLayout(); this.SuspendLayout(); // // scMain @@ -238,7 +242,6 @@ private void InitializeComponent() // scMain.Panel1 // this.scMain.Panel1.Controls.Add(this.lblMainFormTip); - this.scMain.Panel1.Controls.Add(this.lblSplitter); this.scMain.Panel1.Controls.Add(this.lvUploads); // // scMain.Panel2 @@ -255,12 +258,6 @@ private void InitializeComponent() this.lblMainFormTip.UseMnemonic = false; this.lblMainFormTip.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lblDragAndDropTip_MouseUp); // - // lblSplitter - // - this.lblSplitter.BackColor = System.Drawing.Color.Black; - resources.ApplyResources(this.lblSplitter, "lblSplitter"); - this.lblSplitter.Name = "lblSplitter"; - // // lvUploads // this.lvUploads.AutoFillColumn = true; @@ -1677,13 +1674,27 @@ private void InitializeComponent() resources.ApplyResources(this.tsmiTrayExit, "tsmiTrayExit"); this.tsmiTrayExit.Click += new System.EventHandler(this.tsmiTrayExit_Click); // + // scMenu + // + resources.ApplyResources(this.scMenu, "scMenu"); + this.scMenu.DrawLineLeftSide = false; + this.scMenu.Name = "scMenu"; + // + // scMenu.Panel1 + // + this.scMenu.Panel1.Controls.Add(this.tsMain); + // + // scMenu.Panel2 + // + this.scMenu.Panel2.Controls.Add(this.scMain); + this.scMenu.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.scMenu_SplitterMoved); + // // MainForm // this.AllowDrop = true; resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.scMain); - this.Controls.Add(this.tsMain); + this.Controls.Add(this.scMenu); this.DoubleBuffered = true; this.Name = "MainForm"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); @@ -1702,6 +1713,10 @@ private void InitializeComponent() this.tsMain.PerformLayout(); this.cmsTaskInfo.ResumeLayout(false); this.cmsTray.ResumeLayout(false); + this.scMenu.Panel1.ResumeLayout(false); + this.scMenu.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.scMenu)).EndInit(); + this.scMenu.ResumeLayout(false); this.ResumeLayout(false); } @@ -1803,7 +1818,6 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem tsmiTrayURLSharingServices; private System.Windows.Forms.ToolStripDropDownButton tsddbAfterUploadTasks; private System.Windows.Forms.ToolStripButton tsbScreenshotsFolder; - private System.Windows.Forms.Label lblSplitter; private System.Windows.Forms.ToolStripMenuItem tsmiTrayAfterUploadTasks; private System.Windows.Forms.ToolStripSeparator tssUploadInfo1; private System.Windows.Forms.ToolStripMenuItem tsmiImagePreview; @@ -1898,5 +1912,6 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem tsmiUploadFolder; private System.Windows.Forms.ToolStripMenuItem tsmiTrayUploadFolder; public System.Windows.Forms.Label lblMainFormTip; + private ShareX.HelpersLib.SplitContainerCustomSplitter scMenu; } } \ No newline at end of file diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index ca4c98354..a055f405b 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -547,6 +547,11 @@ private void LoadSettings() AfterSettingsJobs(); + if (Program.Settings.MenuSplitterDistance > 0) + { + scMenu.SplitterDistance = Program.Settings.MenuSplitterDistance; + } + if (Program.Settings.PreviewSplitterDistance > 0) { scMain.SplitterDistance = Program.Settings.PreviewSplitterDistance; @@ -765,7 +770,7 @@ private void UpdateMenu() tsmiHideMenu.Text = Resources.MainForm_UpdateMenu_Show_menu; } - tsMain.Visible = lblSplitter.Visible = Program.Settings.ShowMenu; + scMenu.Panel1Collapsed = !Program.Settings.ShowMenu; Refresh(); } @@ -1100,6 +1105,11 @@ private void lvUploads_MouseDoubleClick(object sender, MouseEventArgs e) } } + private void scMenu_SplitterMoved(object sender, SplitterEventArgs e) + { + Program.Settings.MenuSplitterDistance = scMenu.SplitterDistance; + } + private void scMain_SplitterMoved(object sender, SplitterEventArgs e) { Program.Settings.PreviewSplitterDistance = scMain.SplitterDistance; diff --git a/ShareX/Forms/MainForm.resx b/ShareX/Forms/MainForm.resx index 76d2c3ae9..2c0573515 100644 --- a/ShareX/Forms/MainForm.resx +++ b/ShareX/Forms/MainForm.resx @@ -1,4 +1,3 @@ -