diff --git a/Business/Menus.cs b/Business/Menus.cs
index ddf1350..384e8a7 100644
--- a/Business/Menus.cs
+++ b/Business/Menus.cs
@@ -20,6 +20,7 @@ namespace SystemTrayMenu.Business
using SystemTrayMenu.Helper;
using SystemTrayMenu.Helpers;
using SystemTrayMenu.Utilities;
+ using static SystemTrayMenu.UserInterface.Menu;
using Menu = SystemTrayMenu.UserInterface.Menu;
internal class Menus : IDisposable
@@ -62,18 +63,17 @@ namespace SystemTrayMenu.Business
if (e.Result == null)
{
- // Clean up menu status IsMenuOpen for previous one
+ // The main menu gets loaded again
+ // Clean up menu status of previous one
ListView dgvMainMenu = menus[0].GetDataGridView();
-#if TODO
- foreach (DataRow row in ((DataTable)dgvMainMenu.DataSource).Rows)
+ foreach (ListViewItemData item in dgvMainMenu.Items)
{
- RowData rowDataToClear = (RowData)row[2];
+ RowData rowDataToClear = item.data;
rowDataToClear.IsMenuOpen = false;
rowDataToClear.IsClicking = false;
rowDataToClear.IsSelected = false;
rowDataToClear.IsContextMenuOpen = false;
}
-#endif
RefreshSelection(dgvMainMenu);
@@ -86,6 +86,7 @@ namespace SystemTrayMenu.Business
}
else
{
+ // First time the main menu gets loaded
MenuData menuData = (MenuData)e.Result;
switch (menuData.Validity)
{
@@ -267,12 +268,6 @@ namespace SystemTrayMenu.Business
keyboardInput.RowDeselected += waitToOpenMenu.RowDeselected;
keyboardInput.EnterPressed += waitToOpenMenu.EnterOpensInstantly;
keyboardInput.RowSelected += waitToOpenMenu.RowSelected;
- keyboardInput.RowSelected += AdjustScrollbarToDisplayedRow;
- void AdjustScrollbarToDisplayedRow(ListView dgv, int index)
- {
- Menu menu = (Menu)dgv.GetParentWindow();
- menu.AdjustScrollbar();
- }
joystickHelper = new();
joystickHelper.KeyPressed += (key) => menus[0].Dispatcher.Invoke(keyboardInput.CmdKeyProcessed, new object[] { null, key });
@@ -586,46 +581,7 @@ namespace SystemTrayMenu.Business
List
items = new();
ListView lv = menu.GetDataGridView();
-#if TODO // REMOVE?
- DataTable dataTable = new();
- foreach (var prop in typeof(Menu.ListViewItemData).GetProperties())
- {
- dataTable.Columns.Add(prop.Name, prop.PropertyType);
- }
-
- foreach (RowData rowData in data)
- {
- if (!(rowData.IsAddionalItem && Properties.Settings.Default.ShowOnlyAsSearchResult))
- {
- if (rowData.ContainsMenu)
- {
- foldersCount++;
- }
- else
- {
- filesCount++;
- }
- }
-
- rowData.SetData(rowData, dataTable);
- }
-
- lv.ItemsSource = dataTable.DefaultView;
-
- foreach (DataRow row in dataTable.Rows)
- {
- RowData rowData = (RowData)row[nameof(Menu.ListViewItemData.data)];
- if (rowData.IsAddionalItem && Properties.Settings.Default.ShowOnlyAsSearchResult)
- {
- row[nameof(Menu.ListViewItemData.SortIndex)] = 99;
- }
- else
- {
- row[nameof(Menu.ListViewItemData.SortIndex)] = 0;
- }
- }
-#else
foreach (RowData rowData in data)
{
if (!(rowData.IsAddionalItem && Properties.Settings.Default.ShowOnlyAsSearchResult))
@@ -649,7 +605,6 @@ namespace SystemTrayMenu.Business
}
lv.ItemsSource = items;
-#endif
}
private bool IsActive()
@@ -660,17 +615,15 @@ namespace SystemTrayMenu.Business
foreach (Menu menu in menus.Where(m => m != null))
{
ListView dgv = menu.GetDataGridView();
-#if TODO
- foreach (DataGridViewRow row in dgv.Items)
+ foreach (ListViewItemData item in dgv.Items)
{
- RowData rowData = (RowData)row.Cells[2].Value;
+ RowData rowData = item.data;
if (rowData != null && rowData.IsContextMenuOpen)
{
isShellContextMenuOpen = true;
break;
}
}
-#endif
if (isShellContextMenuOpen)
{
@@ -771,13 +724,6 @@ namespace SystemTrayMenu.Business
dgv.MouseDoubleClick += Dgv_MouseDoubleClick;
dgv.SelectionChanged += Dgv_SelectionChanged;
dgv.RowPostPaint += Dgv_RowPostPaint;
- dgv.DataError += Dgv_DataError;
- void Dgv_DataError(object sender, DataGridViewDataErrorEventArgs e)
- {
- // WARN Dgv_DataError occured System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Icon'
- // => Rare times occured (e.g. when focused an close other application => closed and activated at same time)
- Log.Warn("Dgv_DataError occured", e.Exception);
- }
#endif
menu.SetCounts(foldersCount, filesCount);
@@ -857,8 +803,6 @@ namespace SystemTrayMenu.Business
{
isDragSwipeScrolled = true;
dgv.FirstDisplayedScrollingRowIndex = newFirstDisplayedScrollingRowIndex;
- Menu menu = (Menu)dgv.GetParentWindow();
- menu.AdjustScrollbar();
scrolled = dgv.FirstDisplayedScrollingRowIndex == newFirstDisplayedScrollingRowIndex;
}
#endif
@@ -1120,10 +1064,9 @@ namespace SystemTrayMenu.Business
{
// Clean up menu status IsMenuOpen for previous one
ListView dgvPrevious = menuPrevious.GetDataGridView();
-#if TODO
- foreach (DataRow row in ((DataTable)dgvPrevious.DataSource).Rows)
+ foreach (ListViewItemData item in dgvPrevious.Items)
{
- RowData rowDataToClear = (RowData)row[2];
+ RowData rowDataToClear = item.data;
if (rowDataToClear == (RowData)menuToShow.Tag)
{
rowDataToClear.IsMenuOpen = keepOrSetIsMenuOpen;
@@ -1133,7 +1076,6 @@ namespace SystemTrayMenu.Business
rowDataToClear.IsMenuOpen = false;
}
}
-#endif
RefreshSelection(dgvPrevious);
@@ -1356,11 +1298,10 @@ namespace SystemTrayMenu.Business
try
{
List rowDatas = new();
-#if TODO
- DataTable dataTable = (DataTable)menus[0].GetDataGridView().DataSource;
- foreach (DataRow row in dataTable.Rows)
+ ListView dgv = menus[0].GetDataGridView();
+ foreach (ListViewItemData item in dgv.Items)
{
- RowData rowData = (RowData)row[2];
+ RowData rowData = item.data;
if (rowData.Path.StartsWith($"{e.OldFullPath}"))
{
string path = rowData.Path.Replace(e.OldFullPath, e.FullPath);
@@ -1386,7 +1327,6 @@ namespace SystemTrayMenu.Business
rowDatas.Add(rowData);
}
}
-#endif
rowDatas = MenusHelpers.SortItems(rowDatas);
keyboardInput.ClearIsSelectedByKey();
@@ -1408,29 +1348,25 @@ namespace SystemTrayMenu.Business
{
try
{
- List rowsToRemove = new();
-#if TODO
+ List rowsToRemove = new();
ListView dgv = menus[0].GetDataGridView();
- DataTable dataTable = (DataTable)dgv.DataSource;
- foreach (DataRow row in dataTable.Rows)
+ foreach (ListViewItemData item in dgv.Items)
{
- RowData rowData = (RowData)row[2];
+ RowData rowData = item.data;
if (rowData.Path == e.FullPath ||
rowData.Path.StartsWith($"{e.FullPath}\\"))
{
IconReader.RemoveIconFromCache(rowData.Path);
- rowsToRemove.Add(row);
+ rowsToRemove.Add(item);
}
}
- foreach (DataRow rowToRemove in rowsToRemove)
+ foreach (ListViewItemData rowToRemove in rowsToRemove)
{
- dataTable.Rows.Remove(rowToRemove);
+ dgv.Items.Remove(rowToRemove);
}
keyboardInput.ClearIsSelectedByKey();
- dgv.DataSource = dataTable;
-#endif
hideSubmenuDuringRefreshSearch = false;
menus[0].ResetHeight();
@@ -1463,13 +1399,11 @@ namespace SystemTrayMenu.Business
rowData,
};
-#if TODO
- DataTable dataTable = (DataTable)menus[0].GetDataGridView().DataSource;
- foreach (DataRow row in dataTable.Rows)
+ ListView dgv = menus[0].GetDataGridView();
+ foreach (ListViewItemData item in dgv.Items)
{
- rowDatas.Add((RowData)row[2]);
+ rowDatas.Add(item.data);
}
-#endif
rowDatas = MenusHelpers.SortItems(rowDatas);
keyboardInput.ClearIsSelectedByKey();
diff --git a/Business/WaitToLoadMenu.cs b/Business/WaitToLoadMenu.cs
index 3a76a11..10ed3e2 100644
--- a/Business/WaitToLoadMenu.cs
+++ b/Business/WaitToLoadMenu.cs
@@ -12,6 +12,7 @@ namespace SystemTrayMenu.Handler
using SystemTrayMenu.DataClasses;
using SystemTrayMenu.UserInterface;
using SystemTrayMenu.Utilities;
+ using static SystemTrayMenu.UserInterface.Menu;
using ListView = System.Windows.Controls.ListView;
using Menu = SystemTrayMenu.UserInterface.Menu;
@@ -174,7 +175,7 @@ namespace SystemTrayMenu.Handler
{
if (dgv.Items.Count > rowIndex)
{
- RowData rowData = ((Menu.ListViewItemData)dgv.Items[rowIndex]).data;
+ RowData rowData = ((ListViewItemData)dgv.Items[rowIndex]).data;
Menu menu = (Menu)dgv.GetParentWindow();
rowData.Level = menu.Level;
if (rowData.ContainsMenu)
@@ -198,33 +199,29 @@ namespace SystemTrayMenu.Handler
dgvTmp = null;
this.dgv = dgv;
this.rowIndex = rowIndex;
-#if TODO
- RowData rowData = (RowData)dgv.Items[rowIndex].Cells[2].Value;
+
+ RowData rowData = ((ListViewItemData)dgv.Items[rowIndex]).data;
if (rowData != null)
{
rowData.IsSelected = true;
}
- dgv.Items[rowIndex].Selected = false;
- dgv.Items[rowIndex].Selected = true;
-#endif
+ dgv.SelectedIndex = rowIndex;
}
private void ResetData(ListView dgv, int rowIndex)
{
if (dgv != null && dgv.Items.Count > rowIndex)
{
-#if TODO
- RowData rowData = (RowData)dgv.Items[rowIndex].Cells[2].Value;
+ RowData rowData = ((ListViewItemData)dgv.Items[rowIndex]).data;
if (rowData != null)
{
rowData.IsSelected = false;
rowData.IsClicking = false;
- dgv.Items[rowIndex].Selected = false;
+ dgv.SelectedItem = null;
this.dgv = null;
this.rowIndex = 0;
}
-#endif
}
}
}
diff --git a/DataClasses/RowData.cs b/DataClasses/RowData.cs
index ec88e83..4853def 100644
--- a/DataClasses/RowData.cs
+++ b/DataClasses/RowData.cs
@@ -147,26 +147,6 @@ namespace SystemTrayMenu.DataClasses
internal bool ProcessStarted { get; set; }
-#if TODO // WPF REMOVE?
- internal void SetData(RowData data, DataTable dataTable)
- {
- DataRow row = dataTable.Rows.Add();
- data.RowIndex = dataTable.Rows.IndexOf(row);
-
- if (HiddenEntry)
- {
- row[0] = AddIconOverlay(data.Icon, Properties.Resources.White50Percentage);
- }
- else
- {
- row[0] = data.Icon;
- }
-
- row[1] = data.Text;
- row[2] = data;
- }
-#endif
-
internal Icon ReadIcon(bool updateIconInBackground)
{
if (IsFolder || IsLinkToFolder)
diff --git a/SystemTrayMenu.csproj b/SystemTrayMenu.csproj
index 92e1d8e..5498230 100644
--- a/SystemTrayMenu.csproj
+++ b/SystemTrayMenu.csproj
@@ -104,8 +104,6 @@
1701;1702;WFAC010;MSB3061
-
-
@@ -140,8 +138,6 @@
True
-
-
diff --git a/UserInterface/CustomScrollbar/CustomScrollbar.cs b/UserInterface/CustomScrollbar/CustomScrollbar.cs
deleted file mode 100644
index b030edb..0000000
--- a/UserInterface/CustomScrollbar/CustomScrollbar.cs
+++ /dev/null
@@ -1,745 +0,0 @@
-//
-// Copyright (c) PlaceholderCompany. All rights reserved.
-//
-
-namespace SystemTrayMenu.UserInterface
-{
- using System;
- using System.ComponentModel;
- using System.Drawing;
- using System.Windows.Forms;
-
- [Designer(typeof(ScrollbarControlDesigner))]
- public class CustomScrollbar : UserControl
- {
- private readonly Timer timerMouseStillClicked = new();
- private float largeChange = 10;
- private float smallChange = 1;
- private int minimum = 0;
- private int maximum = 100;
- private int value = 0;
- private int lastValue = 0;
- private int clickPoint;
- private float sliderTop = 0;
- private bool sliderDown = false;
- private bool sliderDragging = false;
- private bool arrowUpHovered = false;
- private bool sliderHovered = false;
- private bool arrowDownHovered = false;
- private bool trackHovered = false;
- private bool mouseStillClickedMoveUp = false;
- private bool mouseStillClickedMoveLarge = false;
- private int timerMouseStillClickedCounter = 0;
- private bool paintEnabled = false;
- private int width;
-
- public CustomScrollbar()
- {
- InitializeComponent();
- SetStyle(ControlStyles.ResizeRedraw, true);
- SetStyle(ControlStyles.AllPaintingInWmPaint, true);
- SetStyle(ControlStyles.DoubleBuffer, true);
- timerMouseStillClicked.Interval = 30;
- timerMouseStillClicked.Tick += TimerMouseStillClicked_Tick;
- }
-
- public new event EventHandler Scroll = null;
-
- public event EventHandler ValueChanged = null;
-
- [EditorBrowsable(EditorBrowsableState.Always)]
- [Browsable(true)]
- [DefaultValue(false)]
- [Category("Behavior")]
- [Description("LargeChange")]
- public float LargeChange
- {
- get => largeChange;
-
- set
- {
- largeChange = value;
- Invalidate();
- }
- }
-
- [EditorBrowsable(EditorBrowsableState.Always)]
- [Browsable(true)]
- [DefaultValue(false)]
- [Category("Behavior")]
- [Description("SmallChange")]
- public float SmallChange
- {
- get => smallChange;
-
- set
- {
- smallChange = value;
- Invalidate();
- }
- }
-
- [EditorBrowsable(EditorBrowsableState.Always)]
- [Browsable(true)]
- [DefaultValue(false)]
- [Category("Behavior")]
- [Description("Minimum")]
- public int Minimum
- {
- get => minimum;
-
- set
- {
- minimum = value;
- Invalidate();
- }
- }
-
- [EditorBrowsable(EditorBrowsableState.Always)]
- [Browsable(true)]
- [DefaultValue(false)]
- [Category("Behavior")]
- [Description("Maximum")]
- public int Maximum
- {
- get => maximum;
-
- set
- {
- maximum = value;
- Invalidate();
- }
- }
-
- [EditorBrowsable(EditorBrowsableState.Always)]
- [Browsable(true)]
- [DefaultValue(false)]
- [Category("Behavior")]
- [Description("Value")]
- public int Value
- {
- get => value;
-
- set
- {
- this.value = value;
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int pixelRange = trackHeight - sliderHeight;
- int realRange = GetRealRange();
- float percentage = 0.0f;
- if (realRange != 0)
- {
- percentage = this.value / (float)realRange;
- }
-
- float top = percentage * pixelRange;
- sliderTop = (int)top;
- Invalidate();
- }
- }
-
- public int Delta => Value - lastValue;
-
- public override bool AutoSize
- {
- get => base.AutoSize;
-
- set => base.AutoSize = value;
- }
-
- public void CustomScrollbar_MouseWheel(object sender, MouseEventArgs e)
- {
- if (e.Delta > 0)
- {
- MoveUp(SmallChange * MenuDefines.Scrollspeed);
- }
- else
- {
- MoveDown(SmallChange * MenuDefines.Scrollspeed);
- }
- }
-
- internal void Reset()
- {
- sliderTop = 0;
- sliderDown = false;
- sliderDragging = false;
- arrowUpHovered = false;
- sliderHovered = false;
- arrowDownHovered = false;
- trackHovered = false;
- mouseStillClickedMoveUp = false;
- mouseStillClickedMoveLarge = false;
- timerMouseStillClickedCounter = 0;
- lastValue = 0;
- }
-
- ///
- /// Show the control
- /// (workaround, because visible = false, was causing appearing scrollbars).
- ///
- /// newHeight which to paint.
- internal void PaintEnable(int newHeight)
- {
- int newWidth = Math.Max(width, Width);
- Size = new Size(newWidth, newHeight);
- paintEnabled = true;
- }
-
- ///
- /// Hide the control
- /// (workaround, because visible = false, was causing appearing scrollbars).
- ///
- internal void PaintDisable()
- {
- if (Width > 0)
- {
- width = Width;
- }
-
- Size = new Size(0, 0);
- paintEnabled = false;
- }
-
- protected override void Dispose(bool disposing)
- {
- MouseDown -= CustomScrollbar_MouseDown;
- MouseMove -= CustomScrollbar_MouseMove;
- MouseUp -= CustomScrollbar_MouseUp;
- MouseLeave -= CustomScrollbar_MouseLeave;
- timerMouseStillClicked.Tick -= TimerMouseStillClicked_Tick;
- timerMouseStillClicked.Dispose();
- base.Dispose(disposing);
- }
-
- protected override void OnPaint(PaintEventArgs e)
- {
- e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
-
- Color colorArrow;
- Color colorArrowHoverBackground;
- Color colorArrowHover;
- Color colorArrowClick;
- Color colorArrowClickBackground;
- Color colorSliderArrowsAndTrackHover;
- Color colorSlider;
- Color colorSliderHover;
- Color colorSliderDragging;
- Color colorScrollbarBackground;
- if (Config.IsDarkMode())
- {
- colorArrow = AppColors.ArrowDarkMode;
- colorArrowHoverBackground = AppColors.ArrowHoverBackgroundDarkMode;
- colorArrowHover = AppColors.ArrowHoverDarkMode;
- colorArrowClick = AppColors.ArrowClickDarkMode;
- colorArrowClickBackground = AppColors.ArrowClickBackgroundDarkMode;
- colorSliderArrowsAndTrackHover = AppColors.SliderArrowsAndTrackHoverDarkMode;
- colorSlider = AppColors.SliderDarkMode;
- colorSliderHover = AppColors.SliderHoverDarkMode;
- colorSliderDragging = AppColors.SliderDraggingDarkMode;
- colorScrollbarBackground = AppColors.ScrollbarBackgroundDarkMode;
- }
- else
- {
- colorArrow = AppColors.Arrow;
- colorArrowHoverBackground = AppColors.ArrowHoverBackground;
- colorArrowHover = AppColors.ArrowHover;
- colorArrowClick = AppColors.ArrowClick;
- colorArrowClickBackground = AppColors.ArrowClickBackground;
- colorSliderArrowsAndTrackHover = AppColors.SliderArrowsAndTrackHover;
- colorSlider = AppColors.Slider;
- colorSliderHover = AppColors.SliderHover;
- colorSliderDragging = AppColors.SliderDragging;
- colorScrollbarBackground = AppColors.ScrollbarBackground;
- }
-
- if (!paintEnabled)
- {
- e.Graphics.FillRectangle(
- new SolidBrush(colorScrollbarBackground),
- new Rectangle(0, 0, Width, Height));
- return;
- }
-
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int top = (int)sliderTop + Width;
-
- // Draw background
- Brush brushScrollbarBorder = new SolidBrush(colorScrollbarBackground);
- e.Graphics.FillRectangle(brushScrollbarBorder, new Rectangle(0, 0, Width, Height));
-
- // Draw arrowUp
- SolidBrush solidBrushArrowUpBackground;
- SolidBrush solidBrushArrowUp;
- Pen penArrowUp;
- if (timerMouseStillClicked.Enabled &&
- !mouseStillClickedMoveLarge && mouseStillClickedMoveUp)
- {
- solidBrushArrowUpBackground = new SolidBrush(colorArrowClickBackground);
- solidBrushArrowUp = new SolidBrush(colorArrowClick);
- penArrowUp = new Pen(colorArrowClick, 2.5F);
- }
- else if (arrowUpHovered)
- {
- solidBrushArrowUpBackground = new SolidBrush(colorArrowHoverBackground);
- solidBrushArrowUp = new SolidBrush(colorArrowHover);
- penArrowUp = new Pen(colorArrowHover, 2.5F);
- }
- else
- {
- solidBrushArrowUpBackground = new SolidBrush(colorScrollbarBackground);
- solidBrushArrowUp = new SolidBrush(colorArrow);
- penArrowUp = new Pen(colorArrow, 2.5F);
- }
-
- e.Graphics.FillRectangle(solidBrushArrowUpBackground, GetUpArrowRectangleWithoutBorder());
-
- int widthDevidedBy2 = Width / 2;
- int widthDevidedBy6 = Width / 6;
- int widthDevidedBy2PluswidthDevidedBy8 = widthDevidedBy2 + (Width / 8);
- PointF pointArrowUp1 = new(widthDevidedBy2 - widthDevidedBy6, widthDevidedBy2PluswidthDevidedBy8);
- PointF pointArrowUp2 = new(widthDevidedBy2 + widthDevidedBy6, widthDevidedBy2PluswidthDevidedBy8);
- PointF pointArrowUp3 = new(widthDevidedBy2, widthDevidedBy2PluswidthDevidedBy8 - widthDevidedBy6);
- PointF pointArrowUp4 = pointArrowUp1;
- PointF[] curvePoints =
- {
- pointArrowUp1,
- pointArrowUp2,
- pointArrowUp3,
- pointArrowUp4,
- };
-
- e.Graphics.FillPolygon(solidBrushArrowUp, curvePoints);
- e.Graphics.DrawPolygon(penArrowUp, curvePoints);
-
- // draw slider
- SolidBrush solidBrushSlider;
- if (sliderDragging)
- {
- solidBrushSlider = new SolidBrush(colorSliderDragging);
- }
- else if (sliderHovered)
- {
- solidBrushSlider = new SolidBrush(colorSliderHover);
- }
- else
- {
- if (arrowUpHovered || arrowDownHovered || trackHovered)
- {
- solidBrushSlider = new SolidBrush(colorSliderArrowsAndTrackHover);
- }
- else
- {
- solidBrushSlider = new SolidBrush(colorSlider);
- }
- }
-
- Rectangle rectangleSlider = new(1, top, Width - 2, sliderHeight);
- e.Graphics.FillRectangle(solidBrushSlider, rectangleSlider);
-
- // Draw arrowDown
- SolidBrush solidBrushArrowDownBackground;
- SolidBrush solidBrushArrowDown;
- Pen penArrowDown;
- if (timerMouseStillClicked.Enabled &&
- !mouseStillClickedMoveLarge && !mouseStillClickedMoveUp)
- {
- solidBrushArrowDownBackground = new SolidBrush(colorArrowClickBackground);
- solidBrushArrowDown = new SolidBrush(colorArrowClick);
- penArrowDown = new Pen(colorArrowClick, 2.5F);
- }
- else
- if (arrowDownHovered)
- {
- solidBrushArrowDownBackground = new SolidBrush(colorArrowHoverBackground);
- solidBrushArrowDown = new SolidBrush(colorArrowHover);
- penArrowDown = new Pen(colorArrowHover, 2.5F);
- }
- else
- {
- solidBrushArrowDownBackground = new SolidBrush(colorScrollbarBackground);
- solidBrushArrowDown = new SolidBrush(colorArrow);
- penArrowDown = new Pen(colorArrow, 2.5F);
- }
-
- e.Graphics.FillRectangle(solidBrushArrowDownBackground, GetDownArrowRectangleWithoutBorder(trackHeight));
-
- PointF pointArrowDown1 = new(widthDevidedBy2 - widthDevidedBy6, Height - widthDevidedBy2PluswidthDevidedBy8);
- PointF pointArrowDown2 = new(widthDevidedBy2 + widthDevidedBy6, Height - widthDevidedBy2PluswidthDevidedBy8);
- PointF pointArrowDown3 = new(widthDevidedBy2, Height - widthDevidedBy2PluswidthDevidedBy8 + widthDevidedBy6);
- PointF pointArrowDown4 = pointArrowDown1;
- PointF[] curvePointsArrowDown =
- {
- pointArrowDown1,
- pointArrowDown2,
- pointArrowDown3,
- pointArrowDown4,
- };
-
- e.Graphics.FillPolygon(solidBrushArrowDown, curvePointsArrowDown);
- e.Graphics.DrawPolygon(penArrowDown, curvePointsArrowDown);
- }
-
- private void TimerMouseStillClicked_Tick(object sender, EventArgs e)
- {
- timerMouseStillClickedCounter++;
-
- Point pointCursor = PointToClient(Cursor.Position);
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int top = (int)sliderTop + Width;
-
- Rectangle sliderRectangle = GetSliderRectangle(sliderHeight, top);
- if (sliderRectangle.Contains(pointCursor))
- {
- timerMouseStillClicked.Stop();
- }
- else if (timerMouseStillClickedCounter > 6)
- {
- float change;
- if (mouseStillClickedMoveLarge)
- {
- change = SmallChange * MenuDefines.Scrollspeed;
- }
- else
- {
- change = SmallChange;
- }
-
- if (mouseStillClickedMoveUp)
- {
- MoveUp(change);
- }
- else
- {
- MoveDown(change);
- }
- }
- }
-
- private void InitializeComponent()
- {
- SuspendLayout();
- Name = "CustomScrollbar";
- MouseDown += CustomScrollbar_MouseDown;
- MouseMove += CustomScrollbar_MouseMove;
- MouseUp += CustomScrollbar_MouseUp;
- MouseLeave += CustomScrollbar_MouseLeave;
- ResumeLayout(false);
- }
-
- private void CustomScrollbar_MouseLeave(object sender, EventArgs e)
- {
- arrowUpHovered = false;
- sliderHovered = false;
- arrowDownHovered = false;
- trackHovered = false;
- Refresh();
- }
-
- private void CustomScrollbar_MouseDown(object sender, MouseEventArgs e)
- {
- Point pointCursor = PointToClient(Cursor.Position);
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int top = (int)sliderTop + Width;
-
- Rectangle sliderRectangle = GetSliderRectangle(sliderHeight, top);
- Rectangle trackRectangle = GetTrackRectangle(trackHeight);
- if (sliderRectangle.Contains(pointCursor))
- {
- clickPoint = pointCursor.Y - top;
- sliderDown = true;
- }
- else if (trackRectangle.Contains(pointCursor))
- {
- if (e.Y < sliderRectangle.Y)
- {
- MoveUp(Height);
- mouseStillClickedMoveUp = true;
- }
- else
- {
- MoveDown(Height);
- mouseStillClickedMoveUp = false;
- }
-
- mouseStillClickedMoveLarge = true;
- timerMouseStillClickedCounter = 0;
- timerMouseStillClicked.Start();
- }
-
- Rectangle upArrowRectangle = GetUpArrowRectangle();
- if (upArrowRectangle.Contains(pointCursor))
- {
- MoveUp(SmallChange);
- mouseStillClickedMoveUp = true;
- mouseStillClickedMoveLarge = false;
- timerMouseStillClickedCounter = 0;
- timerMouseStillClicked.Start();
- }
-
- Rectangle downArrowRectangle = GetDownArrowRectangle(trackHeight);
- if (downArrowRectangle.Contains(pointCursor))
- {
- MoveDown(SmallChange);
- mouseStillClickedMoveUp = false;
- mouseStillClickedMoveLarge = false;
- timerMouseStillClickedCounter = 0;
- timerMouseStillClicked.Start();
- }
- }
-
- private void MoveDown(float change)
- {
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int realRange = GetRealRange();
- int pixelRange = trackHeight - sliderHeight;
- if (realRange > 0)
- {
- if (pixelRange > 0)
- {
- float changeForOneItem = GetChangeForOneItem(change, pixelRange);
-
- if ((sliderTop + changeForOneItem) > pixelRange)
- {
- sliderTop = pixelRange;
- }
- else
- {
- sliderTop += changeForOneItem;
- }
-
- CalculateValue(pixelRange);
-
- if (Value != lastValue)
- {
- ValueChanged?.Invoke(this, new EventArgs());
- Scroll?.Invoke(this, new EventArgs());
- lastValue = Value;
- }
-
- Invalidate();
- }
- }
- }
-
- private void MoveUp(float change)
- {
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int realRange = GetRealRange();
- int pixelRange = trackHeight - sliderHeight;
- if (realRange > 0)
- {
- if (pixelRange > 0)
- {
- float changeForOneItem = GetChangeForOneItem(change, pixelRange);
-
- if ((sliderTop - changeForOneItem) < 0)
- {
- sliderTop = 0;
- }
- else
- {
- sliderTop -= changeForOneItem;
- }
-
- CalculateValue(pixelRange);
-
- if (Value != lastValue)
- {
- ValueChanged?.Invoke(this, new EventArgs());
- Scroll?.Invoke(this, new EventArgs());
- lastValue = Value;
- }
-
- Invalidate();
- }
- }
- }
-
- private void CustomScrollbar_MouseUp(object sender, MouseEventArgs e)
- {
- sliderDown = false;
- sliderDragging = false;
- timerMouseStillClicked.Stop();
- }
-
- private void CustomScrollbar_MouseMove(object sender, MouseEventArgs e)
- {
- if (sliderDown == true)
- {
- sliderDragging = true;
- }
-
- if (sliderDragging)
- {
- MoveSlider(e.Y);
- }
-
- if (Value != lastValue)
- {
- ValueChanged?.Invoke(this, new EventArgs());
- Scroll?.Invoke(this, new EventArgs());
- lastValue = Value;
- }
-
- Point pointCursor = PointToClient(Cursor.Position);
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int top = (int)sliderTop + Width;
-
- Rectangle sliderRectangle = GetSliderRectangle(sliderHeight, top);
- Rectangle trackRectangle = GetTrackRectangle(trackHeight);
- if (sliderRectangle.Contains(pointCursor))
- {
- if (e.Button != MouseButtons.Left)
- {
- arrowUpHovered = false;
- sliderHovered = true;
- arrowDownHovered = false;
- trackHovered = false;
- }
- }
- else if (trackRectangle.Contains(pointCursor))
- {
- arrowUpHovered = false;
- sliderHovered = false;
- arrowDownHovered = false;
- trackHovered = true;
- }
-
- Rectangle upArrowRectangle = GetUpArrowRectangle();
- if (upArrowRectangle.Contains(pointCursor))
- {
- if (e.Button != MouseButtons.Left)
- {
- arrowUpHovered = true;
- sliderHovered = false;
- arrowDownHovered = false;
- trackHovered = false;
- }
- }
-
- Rectangle downArrowRectangle = GetDownArrowRectangle(trackHeight);
- if (downArrowRectangle.Contains(pointCursor))
- {
- if (e.Button != MouseButtons.Left)
- {
- arrowUpHovered = false;
- sliderHovered = false;
- arrowDownHovered = true;
- trackHovered = false;
- }
- }
-
- Invalidate();
- }
-
- private void MoveSlider(int y)
- {
- int nRealRange = Maximum - Minimum;
- int trackHeight = GetTrackHeight();
- int sliderHeight = GetSliderHeight(trackHeight);
- int spot = clickPoint;
- int pixelRange = trackHeight - sliderHeight;
- if (sliderDown && nRealRange > 0)
- {
- if (pixelRange > 0)
- {
- int newSliderTop = y - (Width + spot);
-
- if (newSliderTop < 0)
- {
- sliderTop = 0;
- }
- else if (newSliderTop > pixelRange)
- {
- sliderTop = pixelRange;
- }
- else
- {
- sliderTop = y - (Width + spot);
- }
-
- CalculateValue(pixelRange);
-
- Invalidate();
- }
- }
- }
-
- private void CalculateValue(int pixelRange)
- {
- float percentage = sliderTop / pixelRange;
- float fValue = percentage * (Maximum - LargeChange);
- value = (int)fValue;
- }
-
- private Rectangle GetSliderRectangle(int sliderHeight, int top)
- {
- return new Rectangle(new Point(0, top), new Size(Width + 1, sliderHeight));
- }
-
- private Rectangle GetUpArrowRectangle()
- {
- return new Rectangle(new Point(0, 0), new Size(Width + 1, Width));
- }
-
- private Rectangle GetUpArrowRectangleWithoutBorder()
- {
- return new Rectangle(new Point(1, 0), new Size(Width - 2, Width));
- }
-
- private Rectangle GetDownArrowRectangle(int trackHeight)
- {
- return new Rectangle(new Point(0, Width + trackHeight), new Size(Width + 1, Width));
- }
-
- private Rectangle GetDownArrowRectangleWithoutBorder(int trackHeight)
- {
- return new Rectangle(new Point(1, Width + trackHeight), new Size(Width - 2, Width));
- }
-
- private Rectangle GetTrackRectangle(int trackHeight)
- {
- return new Rectangle(new Point(0, Width), new Size(Width + 1, trackHeight));
- }
-
- private int GetRealRange()
- {
- return Maximum - Minimum - (int)LargeChange;
- }
-
- private float GetChangeForOneItem(float change, int pixelRange)
- {
- return change * pixelRange / (Maximum - LargeChange);
- }
-
- private int GetTrackHeight()
- {
- return Height - (Width + Width);
- }
-
- private int GetSliderHeight(int trackHeight)
- {
- int sliderHeight = (int)((float)LargeChange / Maximum * trackHeight);
-
- if (sliderHeight > trackHeight)
- {
- sliderHeight = trackHeight;
- }
-
- if (sliderHeight < 56)
- {
- sliderHeight = 56;
- }
-
- return sliderHeight;
- }
- }
-}
\ No newline at end of file
diff --git a/UserInterface/CustomScrollbar/CustomScrollbar.resx b/UserInterface/CustomScrollbar/CustomScrollbar.resx
deleted file mode 100644
index 1af7de1..0000000
--- a/UserInterface/CustomScrollbar/CustomScrollbar.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/UserInterface/CustomScrollbar/ScrollbarControlDesigner.cs b/UserInterface/CustomScrollbar/ScrollbarControlDesigner.cs
deleted file mode 100644
index 92c996b..0000000
--- a/UserInterface/CustomScrollbar/ScrollbarControlDesigner.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Copyright (c) PlaceholderCompany. All rights reserved.
-//
-
-namespace SystemTrayMenu.UserInterface
-{
- using System.ComponentModel;
- using System.Windows.Forms.Design;
-
- internal class ScrollbarControlDesigner : ControlDesigner
- {
- public override SelectionRules SelectionRules
- {
- get
- {
- SelectionRules selectionRules = base.SelectionRules;
- PropertyDescriptor propDescriptor = TypeDescriptor.GetProperties(Component)["AutoSize"];
- if (propDescriptor != null)
- {
- bool autoSize = (bool)propDescriptor.GetValue(Component);
- if (autoSize)
- {
- selectionRules = SelectionRules.Visible | SelectionRules.Moveable | SelectionRules.BottomSizeable | SelectionRules.TopSizeable;
- }
- else
- {
- selectionRules = SelectionRules.Visible | SelectionRules.AllSizeable | SelectionRules.Moveable;
- }
- }
-
- return selectionRules;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/UserInterface/Menu.xaml.cs b/UserInterface/Menu.xaml.cs
index 1c44bd7..d121ea3 100644
--- a/UserInterface/Menu.xaml.cs
+++ b/UserInterface/Menu.xaml.cs
@@ -129,21 +129,11 @@ namespace SystemTrayMenu.UserInterface
labelItems.FontSize = Scaling.ScaleFontByPoints(7F);
dgv.FontSize = Scaling.ScaleFontByPoints(9F);
-#if TODO
- customScrollbar = new CustomScrollbar();
-
- tableLayoutPanelDgvAndScrollbar.Controls.Add(customScrollbar, 1, 0);
-#endif
MouseDown += Menu_MouseDown;
MouseUp += Menu_MouseUp;
MouseMove += Menu_MouseMove;
#if TODO
labelTitle.MouseWheel += new MouseEventHandler(DgvMouseWheel);
-
- // customScrollbar
- customScrollbar.Location = new Point(0, 0);
- customScrollbar.Name = "customScrollbar";
- customScrollbar.Size = new Size(Scaling.Scale(15), 40);
#endif
SolidColorBrush foreColor = new(Colors.Black);
SolidColorBrush backColor = AppColors.Background.ToSolidColorBrush();
@@ -170,21 +160,6 @@ namespace SystemTrayMenu.UserInterface
dgv.GotFocus += (_, _) => FocusTextBox();
#if TODO
- customScrollbar.GotFocus += (sender, e) => FocusTextBox();
-
- customScrollbar.Margin = new Padding(0);
- customScrollbar.Scroll += CustomScrollbar_Scroll;
- void CustomScrollbar_Scroll(object sender, EventArgs e)
- {
- decimal firstIndex = customScrollbar.Value * dgv.Rows.Count / (decimal)customScrollbar.Maximum;
- int firstIndexRounded = (int)Math.Ceiling(firstIndex);
- if (firstIndexRounded > -1 && firstIndexRounded < dgv.RowCount)
- {
- dgv.FirstDisplayedScrollingRowIndex = firstIndexRounded;
- }
- }
-
- customScrollbar.MouseEnter += ControlsMouseEnter;
dgv.MouseEnter += ControlsMouseEnter;
labelTitle.MouseEnter += ControlsMouseEnter;
textBoxSearch.MouseEnter += ControlsMouseEnter;
@@ -202,7 +177,6 @@ namespace SystemTrayMenu.UserInterface
MouseEnter?.Invoke();
}
- customScrollbar.MouseLeave += ControlsMouseLeave;
dgv.MouseLeave += ControlsMouseLeave;
labelTitle.MouseLeave += ControlsMouseLeave;
textBoxSearch.MouseLeave += ControlsMouseLeave;
@@ -343,9 +317,6 @@ namespace SystemTrayMenu.UserInterface
{
dgv.ScrollIntoView(dgv.Items[0]);
}
-#if TODO
- AdjustScrollbar();
-#endif
}
internal void RefreshSearchText()
@@ -355,9 +326,6 @@ namespace SystemTrayMenu.UserInterface
{
dgv.ScrollIntoView(dgv.Items[0]);
}
-#if TODO
- AdjustScrollbar();
-#endif
}
internal void FocusTextBox()
@@ -772,19 +740,6 @@ namespace SystemTrayMenu.UserInterface
};
}
- internal void AdjustScrollbar()
- {
-#if TODO
- if (dgv.Rows.Count > 0)
- {
- customScrollbar.Value = (int)Math.Round(
- dgv.FirstDisplayedScrollingRowIndex * (decimal)customScrollbar.Maximum / dgv.Rows.Count,
- 0,
- MidpointRounding.AwayFromZero);
- }
-#endif
- }
-
internal void ResetHeight()
{
#if TODO
@@ -870,20 +825,10 @@ namespace SystemTrayMenu.UserInterface
if (dgvHeightByItems > dgvHeightMax)
{
ScrollbarVisible = true;
- customScrollbar.PaintEnable(dgv.Height);
- if (customScrollbar.Maximum != dgvHeightByItems)
- {
- customScrollbar.Reset();
- customScrollbar.Minimum = 0;
- customScrollbar.Maximum = dgvHeightByItems;
- customScrollbar.LargeChange = dgvHeightMax;
- customScrollbar.SmallChange = Resources["RowHeight"];
- }
}
else
{
ScrollbarVisible = false;
- customScrollbar.PaintDisable();
}
#endif
}
@@ -944,7 +889,6 @@ namespace SystemTrayMenu.UserInterface
#if TODO
int widthIcon = dgv.Columns[0].Width;
int widthText = dgv.Columns[1].Width;
- int widthScrollbar = customScrollbar.Width;
using Graphics gfx = labelTitle.CreateGraphics();
gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
@@ -952,15 +896,15 @@ namespace SystemTrayMenu.UserInterface
txtTitle.Text + "___",
dgv.RowTemplate.DefaultCellStyle.Font).Width + 0.5);
- if (withTitle > (widthIcon + widthText + widthScrollbar))
+ if (withTitle > (widthIcon + widthText))
{
tableLayoutPanelDgvAndScrollbar.MinimumSize = new Size(withTitle, 0);
- dgv.Width = withTitle - widthScrollbar;
+ dgv.Width = withTitle;
dgv.Columns[1].Width = dgv.Width - widthIcon;
}
else
{
- tableLayoutPanelDgvAndScrollbar.MinimumSize = new Size(widthIcon + widthText + widthScrollbar, 0);
+ tableLayoutPanelDgvAndScrollbar.MinimumSize = new Size(widthIcon + widthText, 0);
dgv.Width = widthIcon + widthText;
dgv.Columns[1].Width = dgv.Width - widthIcon;
}
@@ -974,7 +918,6 @@ namespace SystemTrayMenu.UserInterface
private void DgvMouseWheel(object sender, MouseEventArgs e)
{
((HandledMouseEventArgs)e).Handled = true;
- customScrollbar.CustomScrollbar_MouseWheel(sender, e);
MouseWheel?.Invoke();
}
@@ -986,8 +929,6 @@ namespace SystemTrayMenu.UserInterface
private void TextBoxSearch_TextChanged()
{
#if TODO
- customScrollbar.Value = 0;
-
DataTable data = (DataTable)dgv.DataSource;
#endif
string filterField = nameof(ListViewItemData.ColumnText);
@@ -1347,7 +1288,6 @@ namespace SystemTrayMenu.UserInterface
private void ListViewItem_MouseUp(object sender, MouseButtonEventArgs e)
{
CellMouseUp?.Invoke(dgv, dgv.Items.IndexOf(((ListViewItem)sender).Content), e);
- AdjustScrollbar();
}
private void ListViewxItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
diff --git a/UserInterface/SettingsWindow.xaml.cs b/UserInterface/SettingsWindow.xaml.cs
index fd2b59f..ac053cf 100644
--- a/UserInterface/SettingsWindow.xaml.cs
+++ b/UserInterface/SettingsWindow.xaml.cs
@@ -1197,24 +1197,6 @@ namespace SystemTrayMenu.UserInterface
textBoxColorScrollbarBackgroundDarkMode.Text = "#171717";
}
-#if TODO
- private void StopPlayingDingSoundEnterKeyPressed_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- e.Handled = e.SuppressKeyPress = true;
- }
- }
-
- private void StopPlayingDingSoundEnterKeyPressed_KeyUp(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- e.Handled = e.SuppressKeyPress = true;
- }
- }
-#endif
-
private void ButtonCancel_Click(object sender, RoutedEventArgs e)
{
Settings.Default.Reload();