Use dark themed menus in main window and tray menu

This commit is contained in:
Jaex 2019-05-16 02:05:32 +03:00
parent ccc20fce0a
commit 0aca109705
13 changed files with 344 additions and 19 deletions

View file

@ -0,0 +1,258 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2019 ShareX Team
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 <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System.Drawing;
using System.Windows.Forms;
namespace ShareX.HelpersLib
{
public class DarkColorTable : ProfessionalColorTable
{
public override Color ButtonSelectedHighlight
{
get { return ButtonSelectedGradientMiddle; }
}
public override Color ButtonSelectedHighlightBorder
{
get { return ButtonSelectedBorder; }
}
public override Color ButtonPressedHighlight
{
get { return ButtonPressedGradientMiddle; }
}
public override Color ButtonPressedHighlightBorder
{
get { return ButtonPressedBorder; }
}
public override Color ButtonCheckedHighlight
{
get { return ButtonCheckedGradientMiddle; }
}
public override Color ButtonCheckedHighlightBorder
{
get { return ButtonSelectedBorder; }
}
public override Color ButtonPressedBorder
{
get { return ButtonSelectedBorder; }
}
public override Color ButtonSelectedBorder
{
get { return Color.FromArgb(255, 116, 129, 152); }
}
public override Color ButtonCheckedGradientBegin
{
get { return Color.FromArgb(255, 55, 63, 74); }
}
public override Color ButtonCheckedGradientMiddle
{
get { return Color.FromArgb(255, 55, 63, 74); }
}
public override Color ButtonCheckedGradientEnd
{
get { return Color.FromArgb(255, 55, 63, 74); }
}
public override Color ButtonSelectedGradientBegin
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color ButtonSelectedGradientMiddle
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color ButtonSelectedGradientEnd
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color ButtonPressedGradientBegin
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color ButtonPressedGradientMiddle
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color ButtonPressedGradientEnd
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color CheckBackground
{
get { return Color.FromArgb(255, 74, 83, 100); }
}
public override Color CheckSelectedBackground
{
get { return Color.FromArgb(255, 74, 83, 100); }
}
public override Color CheckPressedBackground
{
get { return Color.FromArgb(255, 74, 83, 100); }
}
public override Color GripDark
{
get { return Color.FromArgb(255, 22, 26, 31); }
}
public override Color GripLight
{
get { return Color.FromArgb(255, 74, 83, 100); }
}
public override Color ImageMarginGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ImageMarginGradientMiddle
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ImageMarginGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ImageMarginRevealedGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ImageMarginRevealedGradientMiddle
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ImageMarginRevealedGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color MenuStripGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color MenuStripGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color MenuItemSelected
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color MenuItemBorder
{
get { return Color.FromArgb(255, 22, 26, 31); }
}
public override Color MenuBorder
{
get { return Color.FromArgb(255, 22, 26, 31); }
}
public override Color MenuItemSelectedGradientBegin
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color MenuItemSelectedGradientEnd
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color MenuItemPressedGradientBegin
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color MenuItemPressedGradientMiddle
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color MenuItemPressedGradientEnd
{
get { return Color.FromArgb(255, 30, 34, 40); }
}
public override Color RaftingContainerGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color RaftingContainerGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color SeparatorDark
{
get { return Color.FromArgb(255, 22, 26, 31); }
}
public override Color SeparatorLight
{
get { return Color.FromArgb(255, 56, 64, 75); }
}
public override Color StatusStripGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color StatusStripGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripBorder
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripDropDownBackground
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripGradientMiddle
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripContentPanelGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripContentPanelGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripPanelGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color ToolStripPanelGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color OverflowButtonGradientBegin
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color OverflowButtonGradientMiddle
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
public override Color OverflowButtonGradientEnd
{
get { return Color.FromArgb(255, 42, 47, 56); }
}
}
}

View file

@ -30,13 +30,18 @@ namespace ShareX.HelpersLib
{
public class ToolStripBorderRight : ToolStrip
{
public bool DrawCustomBorder { get; set; } = true;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
using (Pen pen = new Pen(ProfessionalColors.SeparatorDark))
if (DrawCustomBorder)
{
e.Graphics.DrawLine(pen, new Point(ClientSize.Width - 1, 0), new Point(ClientSize.Width - 1, ClientSize.Height - 1));
using (Pen pen = new Pen(ProfessionalColors.SeparatorDark))
{
e.Graphics.DrawLine(pen, new Point(ClientSize.Width - 1, 0), new Point(ClientSize.Width - 1, ClientSize.Height - 1));
}
}
}

View file

@ -28,18 +28,17 @@
namespace ShareX.HelpersLib
{
public class ToolStripCheckedBoldRenderer : ToolStripProfessionalRenderer
public class ToolStripCustomRenderer : ToolStripRoundedEdgeRenderer
{
public ToolStripCheckedBoldRenderer()
public ToolStripCustomRenderer(ProfessionalColorTable professionalColorTable) : base(professionalColorTable)
{
RoundedEdges = false;
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
if (e.Item is ToolStripMenuItem && ((ToolStripMenuItem)e.Item).Checked)
if (e.Item is ToolStripMenuItem tsmi && tsmi.Checked)
{
e.TextFont = new Font(e.Item.Font, FontStyle.Bold);
e.TextFont = new Font(tsmi.Font, FontStyle.Bold);
}
base.OnRenderItemText(e);
@ -47,7 +46,7 @@ protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
{
if (e.Item is ToolStripDropDownButton && ((ToolStripDropDownButton)e.Item).Owner is ToolStripBorderRight)
if (e.Item is ToolStripDropDownButton tsddb && tsddb.Owner is ToolStripBorderRight)
{
e.Direction = ArrowDirection.Right;
}

View file

@ -0,0 +1,53 @@
#region License Information (GPL v3)
/*
ShareX - A program that allows you to take screenshots and share any file type
Copyright (c) 2007-2019 ShareX Team
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 <http://www.gnu.org/licenses/>.
*/
#endregion License Information (GPL v3)
using System.Drawing;
using System.Windows.Forms;
namespace ShareX.HelpersLib
{
public class ToolStripDarkRenderer : ToolStripCustomRenderer
{
public static Color LightColor { get; } = Color.FromArgb(235, 235, 235);
public ToolStripDarkRenderer() : base(new DarkColorTable())
{
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextColor = LightColor;
base.OnRenderItemText(e);
}
protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
{
e.ArrowColor = LightColor;
base.OnRenderArrow(e);
}
}
}

View file

@ -27,9 +27,14 @@
namespace ShareX.HelpersLib
{
public class CustomToolStripProfessionalRenderer : ToolStripProfessionalRenderer
public class ToolStripRoundedEdgeRenderer : ToolStripProfessionalRenderer
{
public CustomToolStripProfessionalRenderer()
public ToolStripRoundedEdgeRenderer()
{
RoundedEdges = false;
}
public ToolStripRoundedEdgeRenderer(ProfessionalColorTable professionalColorTable) : base(professionalColorTable)
{
RoundedEdges = false;
}

View file

@ -108,7 +108,8 @@
<Compile Include="..\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Controls\CustomToolStripProfessionalRenderer.cs" />
<Compile Include="Controls\ToolStripRoundedEdgeRenderer.cs" />
<Compile Include="Controls\DarkColorTable.cs" />
<Compile Include="Controls\HotkeySelectionButton.cs">
<SubType>Component</SubType>
</Compile>
@ -130,6 +131,7 @@
<Compile Include="Controls\ToolStripButtonExtraImage.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\ToolStripDarkRenderer.cs" />
<Compile Include="Controls\ToolStripEx.cs">
<SubType>Component</SubType>
</Compile>
@ -188,7 +190,7 @@
<Compile Include="Controls\LabelNoCopy.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\ToolStripCheckedBoldRenderer.cs" />
<Compile Include="Controls\ToolStripCustomRenderer.cs" />
<Compile Include="Controls\ToolStripButtonColorAnimation.cs">
<SubType>Component</SubType>
</Compile>

View file

@ -53,7 +53,7 @@ public ImageHistoryForm(string historyPath, ImageHistorySettings settings, Actio
HistoryPath = historyPath;
Settings = settings;
tsMain.Renderer = new CustomToolStripProfessionalRenderer();
tsMain.Renderer = new ToolStripRoundedEdgeRenderer();
ilvImages.View = (View)Settings.ViewMode;
ilvImages.ThumbnailSize = Settings.ThumbnailSize;

View file

@ -50,7 +50,7 @@ public StickerForm(List<StickerPackInfo> stickerPacks, int selectedStickerPack,
InitializeComponent();
Icon = ShareXResources.Icon;
tsMain.Renderer = new CustomToolStripProfessionalRenderer();
tsMain.Renderer = new ToolStripRoundedEdgeRenderer();
tsnudSize.NumericUpDownControl.Minimum = 16;
tsnudSize.NumericUpDownControl.Maximum = 256;
tsnudSize.NumericUpDownControl.Increment = 16;

View file

@ -91,7 +91,7 @@ internal void CreateToolbar()
Location = new Point(0, 0),
MinimumSize = new Size(10, 30),
Padding = Form.IsEditorMode ? new Padding(5, 1, 3, 0) : new Padding(0, 1, 0, 0),
Renderer = new CustomToolStripProfessionalRenderer(),
Renderer = new ToolStripRoundedEdgeRenderer(),
TabIndex = 0,
ShowItemToolTips = false
};

View file

@ -87,7 +87,7 @@ private void InitializeComponent()
this.lblFilename.AutoEllipsis = true;
this.lblFilename.BackColor = System.Drawing.Color.Transparent;
this.lblFilename.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblFilename.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(228)))), ((int)(((byte)(228)))), ((int)(((byte)(228)))));
this.lblFilename.ForeColor = System.Drawing.Color.White;
this.lblFilename.Location = new System.Drawing.Point(0, 0);
this.lblFilename.Name = "lblFilename";
this.lblFilename.Size = new System.Drawing.Size(256, 22);

View file

@ -135,6 +135,7 @@ public bool ProgressVisible
public TaskPanel(WorkerTask task)
{
InitializeComponent();
lblFilename.ForeColor = ToolStripDarkRenderer.LightColor;
Task = task;
UpdateFilename();

View file

@ -96,7 +96,7 @@ private void InitializeComponent()
Margin = new Padding(1),
MinimumSize = new Size(10, 30),
Padding = new Padding(0, 1, 0, 0),
Renderer = new CustomToolStripProfessionalRenderer(),
Renderer = new ToolStripRoundedEdgeRenderer(),
TabIndex = 0,
ShowItemToolTips = false
};

View file

@ -78,9 +78,11 @@ private void InitializeControls()
niTray.Icon = ShareXResources.Icon;
Text = Program.Title;
tsMain.Renderer = new ToolStripCheckedBoldRenderer();
cmsTray.Renderer = new ToolStripCheckedBoldRenderer();
tsMain.Renderer = new ToolStripDarkRenderer();
tsMain.DrawCustomBorder = false;
cmsTray.Renderer = new ToolStripDarkRenderer();
cmsTray.IgnoreSeparatorClick();
cmsTaskInfo.Renderer = new ToolStripDarkRenderer();
cmsTaskInfo.IgnoreSeparatorClick();
tsddbWorkflows.HideImageMargin();