[Feature] Custom Scrollbar (#183), version 1.0.17.61

This commit is contained in:
Markus Hofknecht 2021-06-04 21:26:03 +02:00
parent 47ccdd7d21
commit c5f4add68b
2 changed files with 53 additions and 26 deletions

View file

@ -39,5 +39,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.17.60")] [assembly: AssemblyVersion("1.0.17.61")]
[assembly: AssemblyFileVersion("1.0.17.60")] [assembly: AssemblyFileVersion("1.0.17.61")]

View file

@ -28,6 +28,7 @@ namespace SystemTrayMenu.UserInterface
private bool arrowUpHovered = false; private bool arrowUpHovered = false;
private bool sliderHovered = false; private bool sliderHovered = false;
private bool arrowDownHovered = false; private bool arrowDownHovered = false;
private bool trackHovered = false;
private bool mouseStillClickedMoveUp = false; private bool mouseStillClickedMoveUp = false;
private bool mouseStillClickedMoveLarge = false; private bool mouseStillClickedMoveLarge = false;
private int timerMouseStillClickedCounter = 0; private int timerMouseStillClickedCounter = 0;
@ -196,6 +197,7 @@ namespace SystemTrayMenu.UserInterface
arrowUpHovered = false; arrowUpHovered = false;
sliderHovered = false; sliderHovered = false;
arrowDownHovered = false; arrowDownHovered = false;
trackHovered = false;
mouseStillClickedMoveUp = false; mouseStillClickedMoveUp = false;
mouseStillClickedMoveLarge = false; mouseStillClickedMoveLarge = false;
timerMouseStillClickedCounter = 0; timerMouseStillClickedCounter = 0;
@ -245,8 +247,11 @@ namespace SystemTrayMenu.UserInterface
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
Color colorArrows; Color colorArrows;
Color colorArrowsHoverBackground; Color colorArrowHoverBackground;
Color colorArrowsHover; Color colorArrowHover;
Color colorArrowClicked;
Color colorArrowClickedBackground;
Color colorSliderArrowsAndTrackHover;
Color colorSlider; Color colorSlider;
Color colorSliderHover; Color colorSliderHover;
Color colorSliderDragging; Color colorSliderDragging;
@ -254,8 +259,11 @@ namespace SystemTrayMenu.UserInterface
if (Config.IsDarkMode()) if (Config.IsDarkMode())
{ {
colorArrows = Color.FromArgb(103, 103, 103); colorArrows = Color.FromArgb(103, 103, 103);
colorArrowsHoverBackground = Color.FromArgb(55, 55, 55); colorArrowHoverBackground = Color.FromArgb(55, 55, 55);
colorArrowsHover = Color.FromArgb(103, 103, 103); colorArrowHover = Color.FromArgb(103, 103, 103);
colorArrowClicked = Color.FromArgb(23, 23, 23);
colorArrowClickedBackground = Color.FromArgb(166, 166, 166);
colorSliderArrowsAndTrackHover = Color.FromArgb(77, 77, 77);
colorSlider = Color.FromArgb(77, 77, 77); colorSlider = Color.FromArgb(77, 77, 77);
colorSliderHover = Color.FromArgb(122, 122, 122); colorSliderHover = Color.FromArgb(122, 122, 122);
colorSliderDragging = Color.FromArgb(166, 166, 166); colorSliderDragging = Color.FromArgb(166, 166, 166);
@ -264,8 +272,11 @@ namespace SystemTrayMenu.UserInterface
else else
{ {
colorArrows = Color.FromArgb(96, 96, 96); colorArrows = Color.FromArgb(96, 96, 96);
colorArrowsHoverBackground = Color.FromArgb(218, 218, 218); colorArrowHoverBackground = Color.FromArgb(218, 218, 218);
colorArrowsHover = Color.FromArgb(0, 0, 0); colorArrowHover = Color.FromArgb(0, 0, 0);
colorArrowClicked = Color.FromArgb(255, 255, 255);
colorArrowClickedBackground = Color.FromArgb(96, 96, 96);
colorSliderArrowsAndTrackHover = Color.FromArgb(192, 192, 192);
colorSlider = Color.FromArgb(205, 205, 205); colorSlider = Color.FromArgb(205, 205, 205);
colorSliderHover = Color.FromArgb(166, 166, 166); colorSliderHover = Color.FromArgb(166, 166, 166);
colorSliderDragging = Color.FromArgb(96, 96, 96); colorSliderDragging = Color.FromArgb(96, 96, 96);
@ -291,10 +302,16 @@ namespace SystemTrayMenu.UserInterface
// Draw arrowUp // Draw arrowUp
SolidBrush solidBrushArrowUp; SolidBrush solidBrushArrowUp;
Pen penArrowUp; Pen penArrowUp;
if (arrowUpHovered) if (timerMouseStillClicked.Enabled &&
!mouseStillClickedMoveLarge && mouseStillClickedMoveUp)
{ {
solidBrushArrowUp = new SolidBrush(colorArrowsHoverBackground); solidBrushArrowUp = new SolidBrush(colorArrowClickedBackground);
penArrowUp = new Pen(colorArrowsHover, 2.5F); penArrowUp = new Pen(colorArrowClicked, 2.5F);
}
else if (arrowUpHovered)
{
solidBrushArrowUp = new SolidBrush(colorArrowHoverBackground);
penArrowUp = new Pen(colorArrowHover, 2.5F);
} }
else else
{ {
@ -332,7 +349,14 @@ namespace SystemTrayMenu.UserInterface
} }
else else
{ {
solidBrushSlider = new SolidBrush(colorSlider); if (arrowUpHovered || arrowDownHovered || trackHovered)
{
solidBrushSlider = new SolidBrush(colorSliderArrowsAndTrackHover);
}
else
{
solidBrushSlider = new SolidBrush(colorSlider);
}
} }
Rectangle rectangleSlider = new Rectangle(1, top, Width - 2, sliderHeight); Rectangle rectangleSlider = new Rectangle(1, top, Width - 2, sliderHeight);
@ -341,10 +365,17 @@ namespace SystemTrayMenu.UserInterface
// Draw arrowDown // Draw arrowDown
SolidBrush solidBrushArrowDown; SolidBrush solidBrushArrowDown;
Pen penArrowDown; Pen penArrowDown;
if (timerMouseStillClicked.Enabled &&
!mouseStillClickedMoveLarge && !mouseStillClickedMoveUp)
{
solidBrushArrowDown = new SolidBrush(colorArrowClickedBackground);
penArrowDown = new Pen(colorArrowClicked, 2.5F);
}
else
if (arrowDownHovered) if (arrowDownHovered)
{ {
solidBrushArrowDown = new SolidBrush(colorArrowsHoverBackground); solidBrushArrowDown = new SolidBrush(colorArrowHoverBackground);
penArrowDown = new Pen(colorArrowsHover, 2.5F); penArrowDown = new Pen(colorArrowHover, 2.5F);
} }
else else
{ {
@ -422,6 +453,7 @@ namespace SystemTrayMenu.UserInterface
arrowUpHovered = false; arrowUpHovered = false;
sliderHovered = false; sliderHovered = false;
arrowDownHovered = false; arrowDownHovered = false;
trackHovered = false;
Refresh(); Refresh();
} }
@ -588,22 +620,15 @@ namespace SystemTrayMenu.UserInterface
arrowUpHovered = false; arrowUpHovered = false;
sliderHovered = true; sliderHovered = true;
arrowDownHovered = false; arrowDownHovered = false;
trackHovered = false;
} }
} }
else if (trackRectangle.Contains(pointCursor)) else if (trackRectangle.Contains(pointCursor))
{ {
if (e.Y < sliderRectangle.Y) arrowUpHovered = false;
{ sliderHovered = false;
arrowUpHovered = false; arrowDownHovered = false;
sliderHovered = false; trackHovered = true;
arrowDownHovered = false;
}
else
{
arrowUpHovered = false;
sliderHovered = false;
arrowDownHovered = false;
}
} }
Rectangle upArrowRectangle = GetUpArrowRectangle(); Rectangle upArrowRectangle = GetUpArrowRectangle();
@ -614,6 +639,7 @@ namespace SystemTrayMenu.UserInterface
arrowUpHovered = true; arrowUpHovered = true;
sliderHovered = false; sliderHovered = false;
arrowDownHovered = false; arrowDownHovered = false;
trackHovered = false;
} }
} }
@ -625,6 +651,7 @@ namespace SystemTrayMenu.UserInterface
arrowUpHovered = false; arrowUpHovered = false;
sliderHovered = false; sliderHovered = false;
arrowDownHovered = true; arrowDownHovered = true;
trackHovered = false;
} }
} }