mirror of
https://github.com/Hofknecht/SystemTrayMenu.git
synced 2024-07-09 08:16:41 +12:00
Removed DgvMouseRow helper class
This commit is contained in:
parent
959f0af976
commit
46bd18eb7e
|
@ -30,7 +30,6 @@ namespace SystemTrayMenu.Business
|
||||||
private readonly Menu?[] menus = new Menu?[MenuDefines.MenusMax];
|
private readonly Menu?[] menus = new Menu?[MenuDefines.MenusMax];
|
||||||
private readonly BackgroundWorker workerMainMenu = new();
|
private readonly BackgroundWorker workerMainMenu = new();
|
||||||
private readonly List<BackgroundWorker> workersSubMenu = new();
|
private readonly List<BackgroundWorker> workersSubMenu = new();
|
||||||
private readonly DgvMouseRow<ListView, ListViewItemData> dgvMouseRow = new();
|
|
||||||
private readonly WaitToLoadMenu waitToOpenMenu = new();
|
private readonly WaitToLoadMenu waitToOpenMenu = new();
|
||||||
private readonly KeyboardInput keyboardInput;
|
private readonly KeyboardInput keyboardInput;
|
||||||
private readonly JoystickHelper joystickHelper;
|
private readonly JoystickHelper joystickHelper;
|
||||||
|
@ -165,10 +164,8 @@ namespace SystemTrayMenu.Business
|
||||||
}
|
}
|
||||||
|
|
||||||
waitToOpenMenu.MouseEnterOk += MouseEnterOk;
|
waitToOpenMenu.MouseEnterOk += MouseEnterOk;
|
||||||
dgvMouseRow.RowMouseEnter += waitToOpenMenu.MouseEnter;
|
|
||||||
dgvMouseRow.RowMouseLeave += waitToOpenMenu.MouseLeave;
|
|
||||||
#if TODO // Misc MouseEvents
|
#if TODO // Misc MouseEvents
|
||||||
dgvMouseRow.RowMouseLeave += Dgv_RowMouseLeave;
|
dgvMouseRow.RowMouseLeave += Dgv_RowMouseLeave; // event moved to Menu.CellMouseLeave()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
joystickHelper = new();
|
joystickHelper = new();
|
||||||
|
@ -263,7 +260,6 @@ namespace SystemTrayMenu.Business
|
||||||
waitLeave.Stop();
|
waitLeave.Stop();
|
||||||
IconReader.Dispose();
|
IconReader.Dispose();
|
||||||
menus[0]?.Close();
|
menus[0]?.Close();
|
||||||
dgvMouseRow.Dispose();
|
|
||||||
|
|
||||||
foreach (FileSystemWatcher watcher in watchers)
|
foreach (FileSystemWatcher watcher in watchers)
|
||||||
{
|
{
|
||||||
|
@ -601,8 +597,8 @@ namespace SystemTrayMenu.Business
|
||||||
|
|
||||||
menu.AddItemsToMenu(menuData.RowDatas);
|
menu.AddItemsToMenu(menuData.RowDatas);
|
||||||
|
|
||||||
menu.CellMouseEnter += dgvMouseRow.CellMouseEnter;
|
menu.CellMouseEnter += waitToOpenMenu.MouseEnter;
|
||||||
menu.CellMouseLeave += dgvMouseRow.CellMouseLeave;
|
menu.CellMouseLeave += waitToOpenMenu.MouseLeave;
|
||||||
menu.CellMouseDown += Dgv_MouseDown;
|
menu.CellMouseDown += Dgv_MouseDown;
|
||||||
menu.CellMouseUp += Dgv_MouseUp;
|
menu.CellMouseUp += Dgv_MouseUp;
|
||||||
menu.CellOpenOnClick += Dgv_OpenItemOnClick;
|
menu.CellOpenOnClick += Dgv_OpenItemOnClick;
|
||||||
|
@ -612,7 +608,6 @@ namespace SystemTrayMenu.Business
|
||||||
if (dgv != null)
|
if (dgv != null)
|
||||||
{
|
{
|
||||||
#if TODO // Misc MouseEvents
|
#if TODO // Misc MouseEvents
|
||||||
dgv.MouseLeave += dgvMouseRow.MouseLeave;
|
|
||||||
dgv.MouseMove += waitToOpenMenu.MouseMove;
|
dgv.MouseMove += waitToOpenMenu.MouseMove;
|
||||||
#endif
|
#endif
|
||||||
dgv.SelectionChanged += Dgv_SelectionChanged;
|
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<ListView, ListViewItemData>? CellMouseEnter;
|
||||||
|
|
||||||
internal event Action? CellMouseLeave;
|
internal event Action<ListView, ListViewItemData>? CellMouseLeave;
|
||||||
|
|
||||||
internal event Action<ListView, ListViewItemData, MouseButtonEventArgs>? CellMouseDown;
|
internal event Action<ListView, ListViewItemData, MouseButtonEventArgs>? CellMouseDown;
|
||||||
|
|
||||||
|
@ -1246,7 +1246,7 @@ namespace SystemTrayMenu.UserInterface
|
||||||
|
|
||||||
private void ListViewItem_MouseLeave(object sender, MouseEventArgs e)
|
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)
|
private void ListViewItem_PreviewMouseDown(object sender, MouseButtonEventArgs e)
|
||||||
|
|
Loading…
Reference in a new issue