Browse Source

Added MouseFlagsChangedEventArgs

tznind 2 năm trước cách đây
mục cha
commit
997bfe63a9

+ 34 - 0
Terminal.Gui/Core/EventArgs/MouseFlagsChangedEventArgs.cs

@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Terminal.Gui {
+	/// <summary>
+	/// Args for events that describe a change in <see cref="MouseFlags"/>
+	/// </summary>
+	public class MouseFlagsChangedEventArgs : EventArgs{
+
+		/// <summary>
+		/// Creates a new instance of the <see cref="MouseFlagsChangedEventArgs"/> class.
+		/// </summary>
+		/// <param name="oldValue"></param>
+		/// <param name="newValue"></param>
+		public MouseFlagsChangedEventArgs (MouseFlags oldValue, MouseFlags newValue)
+		{
+			OldValue = oldValue;
+			NewValue = newValue;
+		}
+
+		/// <summary>
+		/// The old value before event
+		/// </summary>
+		public MouseFlags OldValue { get; }
+
+		/// <summary>
+		/// The new value
+		/// </summary>
+		public MouseFlags NewValue { get; }
+	}
+}

+ 2 - 2
Terminal.Gui/Views/ContextMenu.cs

@@ -174,7 +174,7 @@ namespace Terminal.Gui {
 		/// <summary>
 		/// Event invoked when the <see cref="ContextMenu.MouseFlags"/> is changed.
 		/// </summary>
-		public event Action<MouseFlags> MouseFlagsChanged;
+		public event EventHandler<MouseFlagsChangedEventArgs> MouseFlagsChanged;
 
 		/// <summary>
 		/// Gets or sets the menu position.
@@ -206,7 +206,7 @@ namespace Terminal.Gui {
 			set {
 				var oldFlags = mouseFlags;
 				mouseFlags = value;
-				MouseFlagsChanged?.Invoke (oldFlags);
+				MouseFlagsChanged?.Invoke (this, new MouseFlagsChangedEventArgs(oldFlags,value));
 			}
 		}
 

+ 1 - 1
UnitTests/Menus/ContextMenuTests.cs

@@ -241,7 +241,7 @@ namespace Terminal.Gui.MenuTests {
 			var oldMouseFlags = new MouseFlags ();
 			var cm = new ContextMenu ();
 
-			cm.MouseFlagsChanged += (e) => oldMouseFlags = e;
+			cm.MouseFlagsChanged += (s,e) => oldMouseFlags = e.OldValue;
 
 			cm.MouseFlags = MouseFlags.Button2Clicked;
 			Assert.Equal (MouseFlags.Button2Clicked, cm.MouseFlags);