mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Use dark themed menus in main window and tray menu
This commit is contained in:
parent
ccc20fce0a
commit
0aca109705
13 changed files with 344 additions and 19 deletions
258
ShareX.HelpersLib/Controls/DarkColorTable.cs
Normal file
258
ShareX.HelpersLib/Controls/DarkColorTable.cs
Normal 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); }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,15 +30,20 @@ namespace ShareX.HelpersLib
|
|||
{
|
||||
public class ToolStripBorderRight : ToolStrip
|
||||
{
|
||||
public bool DrawCustomBorder { get; set; } = true;
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
base.OnPaint(e);
|
||||
|
||||
if (DrawCustomBorder)
|
||||
{
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnPaintBackground(PaintEventArgs e)
|
||||
{
|
||||
|
|
|
@ -28,18 +28,17 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
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;
|
||||
}
|
53
ShareX.HelpersLib/Controls/ToolStripDarkRenderer.cs
Normal file
53
ShareX.HelpersLib/Controls/ToolStripDarkRenderer.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -27,9 +27,14 @@ You should have received a copy of the GNU General Public License
|
|||
|
||||
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;
|
||||
}
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
2
ShareX/Controls/TaskPanel.Designer.cs
generated
2
ShareX/Controls/TaskPanel.Designer.cs
generated
|
@ -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);
|
||||
|
|
|
@ -135,6 +135,7 @@ public bool ProgressVisible
|
|||
public TaskPanel(WorkerTask task)
|
||||
{
|
||||
InitializeComponent();
|
||||
lblFilename.ForeColor = ToolStripDarkRenderer.LightColor;
|
||||
|
||||
Task = task;
|
||||
UpdateFilename();
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue