mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-10-03 10:36:30 +13:00
Removed DgvMouseRow helper class
This commit is contained in:
parent
959f0af976
commit
46bd18eb7e
3 changed files with 5 additions and 108 deletions
|
@ -30,7 +30,6 @@ namespace SystemTrayMenu.Business
|
|||
private readonly Menu?[] menus = new Menu?[MenuDefines.MenusMax];
|
||||
private readonly BackgroundWorker workerMainMenu = new();
|
||||
private readonly List<BackgroundWorker> workersSubMenu = new();
|
||||
private readonly DgvMouseRow<ListView, ListViewItemData> dgvMouseRow = new();
|
||||
private readonly WaitToLoadMenu waitToOpenMenu = new();
|
||||
private readonly KeyboardInput keyboardInput;
|
||||
private readonly JoystickHelper joystickHelper;
|
||||
|
@ -165,10 +164,8 @@ namespace SystemTrayMenu.Business
|
|||
}
|
||||
|
||||
waitToOpenMenu.MouseEnterOk += MouseEnterOk;
|
||||
dgvMouseRow.RowMouseEnter += waitToOpenMenu.MouseEnter;
|
||||
dgvMouseRow.RowMouseLeave += waitToOpenMenu.MouseLeave;
|
||||
#if TODO // Misc MouseEvents
|
||||
dgvMouseRow.RowMouseLeave += Dgv_RowMouseLeave;
|
||||
dgvMouseRow.RowMouseLeave += Dgv_RowMouseLeave; // event moved to Menu.CellMouseLeave()
|
||||
#endif
|
||||
|
||||
joystickHelper = new();
|
||||
|
@ -263,7 +260,6 @@ namespace SystemTrayMenu.Business
|
|||
waitLeave.Stop();
|
||||
IconReader.Dispose();
|
||||
menus[0]?.Close();
|
||||
dgvMouseRow.Dispose();
|
||||
|
||||
foreach (FileSystemWatcher watcher in watchers)
|
||||
{
|
||||
|
@ -601,8 +597,8 @@ namespace SystemTrayMenu.Business
|
|||
|
||||
menu.AddItemsToMenu(menuData.RowDatas);
|
||||
|
||||
menu.CellMouseEnter += dgvMouseRow.CellMouseEnter;
|
||||
menu.CellMouseLeave += dgvMouseRow.CellMouseLeave;
|
||||
menu.CellMouseEnter += waitToOpenMenu.MouseEnter;
|
||||
menu.CellMouseLeave += waitToOpenMenu.MouseLeave;
|
||||
menu.CellMouseDown += Dgv_MouseDown;
|
||||
menu.CellMouseUp += Dgv_MouseUp;
|
||||
menu.CellOpenOnClick += Dgv_OpenItemOnClick;
|
||||
|
@ -612,7 +608,6 @@ namespace SystemTrayMenu.Business
|
|||
if (dgv != null)
|
||||
{
|
||||
#if TODO // Misc MouseEvents
|
||||
dgv.MouseLeave += dgvMouseRow.MouseLeave;
|
||||
dgv.MouseMove += waitToOpenMenu.MouseMove;
|
||||
#endif
|
||||
dgv.SelectionChanged += Dgv_SelectionChanged;
|
||||
|
|
|
@ -1,98 +0,0 @@
|
|||
// <copyright file="DgvMouseRow.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace SystemTrayMenu.Helpers
|
||||
{
|
||||
using System;
|
||||
using System.Windows.Threading;
|
||||
|
||||
public class DgvMouseRow<TList, TItem> : IDisposable
|
||||
where TList : notnull
|
||||
where TItem : notnull
|
||||
{
|
||||
private readonly DispatcherTimer timerRaiseRowMouseLeave = new DispatcherTimer(DispatcherPriority.Input, Dispatcher.CurrentDispatcher);
|
||||
private TList? currentList;
|
||||
private TItem? currentItem;
|
||||
|
||||
internal DgvMouseRow()
|
||||
{
|
||||
timerRaiseRowMouseLeave.Interval = TimeSpan.FromMilliseconds(200);
|
||||
timerRaiseRowMouseLeave.Tick += Elapsed;
|
||||
void Elapsed(object? sender, EventArgs e)
|
||||
{
|
||||
timerRaiseRowMouseLeave.Stop();
|
||||
TriggerRowMouseLeave();
|
||||
}
|
||||
}
|
||||
|
||||
internal event Action<TList, TItem>? RowMouseEnter;
|
||||
|
||||
internal event Action<TList, TItem>? RowMouseLeave;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
internal void CellMouseEnter(TList list, TItem item)
|
||||
{
|
||||
if (!list.Equals(currentList) || !item.Equals(currentItem))
|
||||
{
|
||||
if (timerRaiseRowMouseLeave.IsEnabled)
|
||||
{
|
||||
timerRaiseRowMouseLeave.Stop();
|
||||
TriggerRowMouseLeave();
|
||||
}
|
||||
|
||||
TriggerRowMouseEnter(list, item);
|
||||
}
|
||||
else
|
||||
{
|
||||
timerRaiseRowMouseLeave.Stop();
|
||||
}
|
||||
|
||||
currentList = list;
|
||||
currentItem = item;
|
||||
}
|
||||
|
||||
internal void CellMouseLeave()
|
||||
{
|
||||
timerRaiseRowMouseLeave.Start();
|
||||
}
|
||||
|
||||
internal void MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
if (timerRaiseRowMouseLeave.IsEnabled)
|
||||
{
|
||||
timerRaiseRowMouseLeave.Stop();
|
||||
TriggerRowMouseLeave();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
timerRaiseRowMouseLeave.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerRowMouseLeave()
|
||||
{
|
||||
if (currentList != null && currentItem != null)
|
||||
{
|
||||
RowMouseLeave?.Invoke(currentList, currentItem);
|
||||
}
|
||||
|
||||
currentList = default;
|
||||
currentItem = default;
|
||||
}
|
||||
|
||||
private void TriggerRowMouseEnter(TList list, TItem item)
|
||||
{
|
||||
RowMouseEnter?.Invoke(list, item);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -300,7 +300,7 @@ namespace SystemTrayMenu.UserInterface
|
|||
|
||||
internal event Action<ListView, ListViewItemData>? CellMouseEnter;
|
||||
|
||||
internal event Action? CellMouseLeave;
|
||||
internal event Action<ListView, ListViewItemData>? CellMouseLeave;
|
||||
|
||||
internal event Action<ListView, ListViewItemData, MouseButtonEventArgs>? CellMouseDown;
|
||||
|
||||
|
@ -1246,7 +1246,7 @@ namespace SystemTrayMenu.UserInterface
|
|||
|
||||
private void ListViewItem_MouseLeave(object sender, MouseEventArgs e)
|
||||
{
|
||||
CellMouseLeave?.Invoke();
|
||||
CellMouseLeave?.Invoke(dgv, (ListViewItemData)((ListViewItem)sender).Content);
|
||||
}
|
||||
|
||||
private void ListViewItem_PreviewMouseDown(object sender, MouseButtonEventArgs e)
|
||||
|
|
Loading…
Reference in a new issue