mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-09-29 16:51:18 +13:00
[Feature] Custom Scrollbar (#183), version 1.0.17.59
This commit is contained in:
parent
81b4bd037b
commit
e6f496a72e
1 changed files with 10 additions and 13 deletions
|
@ -15,7 +15,6 @@ namespace SystemTrayMenu.UserInterface
|
||||||
public class CustomScrollbar : UserControl
|
public class CustomScrollbar : UserControl
|
||||||
{
|
{
|
||||||
private readonly Timer timerMouseStillClicked = new Timer();
|
private readonly Timer timerMouseStillClicked = new Timer();
|
||||||
private readonly int controlWidth = 15;
|
|
||||||
|
|
||||||
private float moLargeChange = 10;
|
private float moLargeChange = 10;
|
||||||
private float moSmallChange = 1;
|
private float moSmallChange = 1;
|
||||||
|
@ -44,8 +43,6 @@ namespace SystemTrayMenu.UserInterface
|
||||||
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||||
SetStyle(ControlStyles.DoubleBuffer, true);
|
SetStyle(ControlStyles.DoubleBuffer, true);
|
||||||
|
|
||||||
Width = controlWidth;
|
|
||||||
MinimumSize = new Size(controlWidth, Width + Width + GetScrollbarHeight());
|
|
||||||
int GetScrollbarHeight()
|
int GetScrollbarHeight()
|
||||||
{
|
{
|
||||||
int nTrackHeight = Height - (Width + Width);
|
int nTrackHeight = Height - (Width + Width);
|
||||||
|
@ -213,7 +210,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
base.AutoSize = value;
|
base.AutoSize = value;
|
||||||
if (base.AutoSize)
|
if (base.AutoSize)
|
||||||
{
|
{
|
||||||
Width = controlWidth;
|
Width = Width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -432,7 +429,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
int nTop = (int)moSliderTop;
|
int nTop = (int)moSliderTop;
|
||||||
nTop += Width;
|
nTop += Width;
|
||||||
Point ptPoint = PointToClient(Cursor.Position);
|
Point ptPoint = PointToClient(Cursor.Position);
|
||||||
Rectangle thumbrect = new Rectangle(new Point(0, nTop), new Size(controlWidth + 1, nScrollbarHeight));
|
Rectangle thumbrect = new Rectangle(new Point(0, nTop), new Size(Width + 1, nScrollbarHeight));
|
||||||
if (thumbrect.Contains(ptPoint))
|
if (thumbrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
timerMouseStillClicked.Stop();
|
timerMouseStillClicked.Stop();
|
||||||
|
@ -501,8 +498,8 @@ namespace SystemTrayMenu.UserInterface
|
||||||
int nTop = (int)moSliderTop;
|
int nTop = (int)moSliderTop;
|
||||||
nTop += Width;
|
nTop += Width;
|
||||||
|
|
||||||
Rectangle thumbrect = new Rectangle(new Point(0, nTop), new Size(controlWidth + 1, nScrollbarHeight));
|
Rectangle thumbrect = new Rectangle(new Point(0, nTop), new Size(Width + 1, nScrollbarHeight));
|
||||||
Rectangle trackRectangle = new Rectangle(new Point(0, Width), new Size(controlWidth + 1, nTrackHeight));
|
Rectangle trackRectangle = new Rectangle(new Point(0, Width), new Size(Width + 1, nTrackHeight));
|
||||||
if (thumbrect.Contains(ptPoint))
|
if (thumbrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
nClickPoint = ptPoint.Y - nTop;
|
nClickPoint = ptPoint.Y - nTop;
|
||||||
|
@ -526,7 +523,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
timerMouseStillClicked.Start();
|
timerMouseStillClicked.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle uparrowrect = new Rectangle(new Point(0, 0), new Size(controlWidth + 1, Width));
|
Rectangle uparrowrect = new Rectangle(new Point(0, 0), new Size(Width + 1, Width));
|
||||||
if (uparrowrect.Contains(ptPoint))
|
if (uparrowrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
MoveUp(SmallChange);
|
MoveUp(SmallChange);
|
||||||
|
@ -536,7 +533,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
timerMouseStillClicked.Start();
|
timerMouseStillClicked.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle downarrowrect = new Rectangle(new Point(0, Width + nTrackHeight), new Size(controlWidth + 1, Width));
|
Rectangle downarrowrect = new Rectangle(new Point(0, Width + nTrackHeight), new Size(Width + 1, Width));
|
||||||
if (downarrowrect.Contains(ptPoint))
|
if (downarrowrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
MoveDown(SmallChange);
|
MoveDown(SmallChange);
|
||||||
|
@ -698,8 +695,8 @@ namespace SystemTrayMenu.UserInterface
|
||||||
int nTop = (int)moSliderTop;
|
int nTop = (int)moSliderTop;
|
||||||
nTop += Width;
|
nTop += Width;
|
||||||
|
|
||||||
Rectangle scrollbarbrect = new Rectangle(new Point(0, nTop), new Size(controlWidth + 1, nSliderHeight));
|
Rectangle scrollbarbrect = new Rectangle(new Point(0, nTop), new Size(Width + 1, nSliderHeight));
|
||||||
Rectangle trackRectangle = new Rectangle(new Point(0, Width), new Size(controlWidth + 1, nTrackHeight));
|
Rectangle trackRectangle = new Rectangle(new Point(0, Width), new Size(Width + 1, nTrackHeight));
|
||||||
if (scrollbarbrect.Contains(ptPoint))
|
if (scrollbarbrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
if (e.Button != MouseButtons.Left)
|
if (e.Button != MouseButtons.Left)
|
||||||
|
@ -725,7 +722,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle uparrowrect = new Rectangle(new Point(0, 0), new Size(controlWidth + 1, Width));
|
Rectangle uparrowrect = new Rectangle(new Point(0, 0), new Size(Width + 1, Width));
|
||||||
if (uparrowrect.Contains(ptPoint))
|
if (uparrowrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
arrowUpHovered = true;
|
arrowUpHovered = true;
|
||||||
|
@ -733,7 +730,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
arrowDownHovered = false;
|
arrowDownHovered = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle downarrowrect = new Rectangle(new Point(0, Width + nTrackHeight), new Size(controlWidth + 1, Width));
|
Rectangle downarrowrect = new Rectangle(new Point(0, Width + nTrackHeight), new Size(Width + 1, Width));
|
||||||
if (downarrowrect.Contains(ptPoint))
|
if (downarrowrect.Contains(ptPoint))
|
||||||
{
|
{
|
||||||
arrowUpHovered = false;
|
arrowUpHovered = false;
|
||||||
|
|
Loading…
Reference in a new issue