From c5b7b084a91fba1c65edab082e3d976aad71f56b Mon Sep 17 00:00:00 2001 From: Tig Date: Thu, 4 Apr 2024 18:50:13 -0400 Subject: [PATCH] Way too big a committ.... but I got carried away. - Started MouseEventEventArgs -> MouseEvent transition - for OnMouseEvent. Partially fixes #3029. - Refactored Appliation.OnMouseEvent and View.OnMouseEvent to match design guidelines. - Re-impleented highlight, enabling extensibility (see Border). - Beefed up unit tests --- Terminal.Gui/Application.cs | 50 +-- Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs | 4 +- .../CursesDriver/CursesDriver.cs | 2 +- Terminal.Gui/ConsoleDrivers/NetDriver.cs | 2 +- Terminal.Gui/ConsoleDrivers/WindowsDriver.cs | 20 +- Terminal.Gui/View/Adornment/Border.cs | 22 ++ Terminal.Gui/View/ViewAdornments.cs | 5 +- Terminal.Gui/View/ViewMouse.cs | 278 ++++++++++++---- Terminal.Gui/Views/ComboBox.cs | 4 +- Terminal.Gui/Views/Menu/Menu.cs | 32 +- Terminal.Gui/Views/Menu/MenuBar.cs | 8 +- Terminal.Gui/Views/ScrollBarView.cs | 4 +- Terminal.Gui/Views/ScrollView.cs | 4 +- Terminal.Gui/Views/TabView.cs | 2 +- UICatalog/Scenarios/ASCIICustomButton.cs | 2 +- UICatalog/Scenarios/Adornments.cs | 2 +- UICatalog/Scenarios/BasicColors.cs | 6 +- UICatalog/Scenarios/ContextMenus.cs | 2 +- UICatalog/Scenarios/Mouse.cs | 38 ++- UICatalog/Scenarios/Scrolling.cs | 2 +- UICatalog/Scenarios/TrueColors.cs | 4 +- UnitTests/Application/ApplicationTests.cs | 82 ++--- UnitTests/Application/MouseTests.cs | 55 +--- UnitTests/Input/EscSeqUtilsTests.cs | 12 +- UnitTests/Input/ResponderTests.cs | 2 +- UnitTests/View/MouseTests.cs | 231 +++++++++++--- UnitTests/View/NavigationTests.cs | 8 +- UnitTests/View/ViewTests.cs | 2 +- UnitTests/Views/CheckBoxTests.cs | 6 +- UnitTests/Views/ColorPickerTests.cs | 4 +- UnitTests/Views/ComboBoxTests.cs | 54 ++-- UnitTests/Views/ContextMenuTests.cs | 70 ++-- UnitTests/Views/LabelTests.cs | 2 +- UnitTests/Views/ListViewTests.cs | 25 +- UnitTests/Views/MenuBarTests.cs | 102 +++--- UnitTests/Views/OverlappedTests.cs | 24 +- UnitTests/Views/ScrollBarViewTests.cs | 12 +- UnitTests/Views/TabViewTests.cs | 38 +-- UnitTests/Views/TextFieldTests.cs | 10 +- UnitTests/Views/ToplevelTests.cs | 302 ++++++------------ UnitTests/Views/TreeTableSourceTests.cs | 8 +- 41 files changed, 810 insertions(+), 732 deletions(-) diff --git a/Terminal.Gui/Application.cs b/Terminal.Gui/Application.cs index 53cd14af6..b8cbb7f1f 100644 --- a/Terminal.Gui/Application.cs +++ b/Terminal.Gui/Application.cs @@ -318,7 +318,7 @@ public static partial class Application private static void Driver_SizeChanged (object sender, SizeChangedEventArgs e) { OnSizeChanging (e); } private static void Driver_KeyDown (object sender, Key e) { OnKeyDown (e); } private static void Driver_KeyUp (object sender, Key e) { OnKeyUp (e); } - private static void Driver_MouseEvent (object sender, MouseEventEventArgs e) { OnMouseEvent (e); } + private static void Driver_MouseEvent (object sender, MouseEvent e) { OnMouseEvent (e); } /// Gets of list of types that are available. /// @@ -1441,12 +1441,12 @@ public static partial class Application /// /// The will contain the that contains the mouse coordinates. /// - public static event EventHandler MouseEvent; + public static event EventHandler MouseEvent; /// Called when a mouse event occurs. Raises the event. /// This method can be used to simulate a mouse event, e.g. in unit tests. /// The mouse event with coordinates relative to the screen. - internal static void OnMouseEvent (MouseEventEventArgs a) + internal static void OnMouseEvent (MouseEvent mouseEvent) { if (IsMouseDisabled) { @@ -1454,16 +1454,16 @@ public static partial class Application } // TODO: In PR #3273, FindDeepestView will return adornments. Update logic below to fix adornment mouse handling - var view = View.FindDeepestView (Current, a.MouseEvent.X, a.MouseEvent.Y); + var view = View.FindDeepestView (Current, mouseEvent.X, mouseEvent.Y); if (view is { }) { - a.MouseEvent.View = view; + mouseEvent.View = view; } - MouseEvent?.Invoke (null, new (a.MouseEvent)); + MouseEvent?.Invoke (null, mouseEvent); - if (a.MouseEvent.Handled) + if (mouseEvent.Handled) { return; } @@ -1472,25 +1472,25 @@ public static partial class Application { // If the mouse is grabbed, send the event to the view that grabbed it. // The coordinates are relative to the Bounds of the view that grabbed the mouse. - Point boundsLoc = MouseGrabView.ScreenToBounds (a.MouseEvent.X, a.MouseEvent.Y); + Point boundsLoc = MouseGrabView.ScreenToBounds (mouseEvent.X, mouseEvent.Y); var viewRelativeMouseEvent = new MouseEvent { X = boundsLoc.X, Y = boundsLoc.Y, - Flags = a.MouseEvent.Flags, - ScreenPosition = new (a.MouseEvent.X, a.MouseEvent.Y), + Flags = mouseEvent.Flags, + ScreenPosition = new (mouseEvent.X, mouseEvent.Y), View = MouseGrabView }; if (MouseGrabView.Bounds.Contains (viewRelativeMouseEvent.X, viewRelativeMouseEvent.Y) is false) { // The mouse has moved outside the bounds of the view that grabbed the mouse - _mouseEnteredView?.OnMouseLeave (a.MouseEvent); + _mouseEnteredView?.OnMouseLeave (mouseEvent); } //System.Diagnostics.Debug.WriteLine ($"{nme.Flags};{nme.X};{nme.Y};{mouseGrabView}"); - if (MouseGrabView?.OnMouseEvent (viewRelativeMouseEvent) == true) + if (MouseGrabView?.NewMouseEvent (viewRelativeMouseEvent) == true) { return; } @@ -1511,13 +1511,13 @@ public static partial class Application if ((view is null || view == OverlappedTop) && Current is { Modal: false } && OverlappedTop != null - && a.MouseEvent.Flags != MouseFlags.ReportMousePosition - && a.MouseEvent.Flags != 0) + && mouseEvent.Flags != MouseFlags.ReportMousePosition + && mouseEvent.Flags != 0) { // This occurs when there are multiple overlapped "tops" // E.g. "Mdi" - in the Background Worker Scenario - View? top = FindDeepestTop (Top, a.MouseEvent.X, a.MouseEvent.Y); - view = View.FindDeepestView (top, a.MouseEvent.X, a.MouseEvent.Y); + View? top = FindDeepestTop (Top, mouseEvent.X, mouseEvent.Y); + view = View.FindDeepestView (top, mouseEvent.X, mouseEvent.Y); if (view is { } && view != OverlappedTop && top != Current) { @@ -1535,27 +1535,27 @@ public static partial class Application if (view is Adornment adornment) { - Point frameLoc = adornment.ScreenToFrame (a.MouseEvent.X, a.MouseEvent.Y); + Point frameLoc = adornment.ScreenToFrame (mouseEvent.X, mouseEvent.Y); me = new () { X = frameLoc.X, Y = frameLoc.Y, - Flags = a.MouseEvent.Flags, - ScreenPosition = new (a.MouseEvent.X, a.MouseEvent.Y), + Flags = mouseEvent.Flags, + ScreenPosition = new (mouseEvent.X, mouseEvent.Y), View = view }; } - else if (view.BoundsToScreen (view.Bounds).Contains (a.MouseEvent.X, a.MouseEvent.Y)) + else if (view.BoundsToScreen (view.Bounds).Contains (mouseEvent.X, mouseEvent.Y)) { - Point boundsPoint = view.ScreenToBounds (a.MouseEvent.X, a.MouseEvent.Y); + Point boundsPoint = view.ScreenToBounds (mouseEvent.X, mouseEvent.Y); me = new () { X = boundsPoint.X, Y = boundsPoint.Y, - Flags = a.MouseEvent.Flags, - ScreenPosition = new (a.MouseEvent.X, a.MouseEvent.Y), + Flags = mouseEvent.Flags, + ScreenPosition = new (mouseEvent.X, mouseEvent.Y), View = view }; } @@ -1577,7 +1577,7 @@ public static partial class Application _mouseEnteredView = view; } - if (!view.WantMousePositionReports && a.MouseEvent.Flags == MouseFlags.ReportMousePosition) + if (!view.WantMousePositionReports && mouseEvent.Flags == MouseFlags.ReportMousePosition) { return; } @@ -1586,7 +1586,7 @@ public static partial class Application //Debug.WriteLine ($"OnMouseEvent: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags}"); - if (view.OnMouseEvent (me)) + if (view.NewMouseEvent (me) == false) { // Should we bubble up the event, if it is not handled? //return; diff --git a/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs b/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs index 2a80f3473..1974b6147 100644 --- a/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs @@ -538,11 +538,11 @@ public abstract class ConsoleDriver public void OnKeyUp (Key a) { KeyUp?.Invoke (this, a); } /// Event fired when a mouse event occurs. - public event EventHandler MouseEvent; + public event EventHandler MouseEvent; /// Called when a mouse event occurs. Fires the event. /// - public void OnMouseEvent (MouseEventEventArgs a) { MouseEvent?.Invoke (this, a); } + public void OnMouseEvent (MouseEvent a) { MouseEvent?.Invoke (this, a); } /// Simulates a key press. /// The key character. diff --git a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs index 08457cc83..d372c52d4 100644 --- a/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs @@ -812,7 +812,7 @@ internal class CursesDriver : ConsoleDriver var me = new MouseEvent { Flags = mouseFlag, X = pos.X, Y = pos.Y }; Debug.WriteLine ($"CursesDriver: ({me.X},{me.Y}) - {me.Flags}"); - OnMouseEvent (new MouseEventEventArgs (me)); + OnMouseEvent (me); } #region Color Handling diff --git a/Terminal.Gui/ConsoleDrivers/NetDriver.cs b/Terminal.Gui/ConsoleDrivers/NetDriver.cs index 0f4188be4..4a85804f2 100644 --- a/Terminal.Gui/ConsoleDrivers/NetDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/NetDriver.cs @@ -1138,7 +1138,7 @@ internal class NetDriver : ConsoleDriver case EventType.Mouse: MouseEvent me = ToDriverMouse (inputEvent.MouseEvent); Debug.WriteLine ($"NetDriver: ({me.X},{me.Y}) - {me.Flags}"); - OnMouseEvent (new MouseEventEventArgs (me)); + OnMouseEvent (me); break; case EventType.WindowSize: diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs index ac5dd75ff..e02234aa3 100644 --- a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs +++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs @@ -1396,18 +1396,16 @@ internal class WindowsDriver : ConsoleDriver break; } - OnMouseEvent (new MouseEventEventArgs (me)); + OnMouseEvent (me); if (_processButtonClick) { - OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = me.X, - Y = me.Y, - Flags = ProcessButtonClick (inputEvent.MouseEvent) - })); + OnMouseEvent (new () + { + X = me.X, + Y = me.Y, + Flags = ProcessButtonClick (inputEvent.MouseEvent) + }); } break; @@ -1715,7 +1713,7 @@ internal class WindowsDriver : ConsoleDriver { // When a user presses-and-holds, start generating pressed events every `startDelay` // After `iterationsUntilFast` iterations, speed them up to `fastDelay` ms - const int startDelay = 50; + const int startDelay = 500; const int iterationsUntilFast = 4; const int fastDelay = 50; @@ -1744,7 +1742,7 @@ internal class WindowsDriver : ConsoleDriver //Debug.WriteLine($"ProcessContinuousButtonPressedAsync: {view}"); if (_isButtonPressed && (mouseFlag & MouseFlags.ReportMousePosition) == 0) { - Application.Invoke (() => OnMouseEvent (new MouseEventEventArgs (me))); + Application.Invoke (() => OnMouseEvent (me)); } } } diff --git a/Terminal.Gui/View/Adornment/Border.cs b/Terminal.Gui/View/Adornment/Border.cs index 5cf8cd808..8e32edde2 100644 --- a/Terminal.Gui/View/Adornment/Border.cs +++ b/Terminal.Gui/View/Adornment/Border.cs @@ -56,6 +56,9 @@ public class Border : Adornment Parent = parent; Application.GrabbingMouse += Application_GrabbingMouse; Application.UnGrabbingMouse += Application_UnGrabbingMouse; + + EnablingHighlight += Border_EnablingHighlight; + DisablingHighlight += Border_DisablingHighlight; } #if SUBVIEW_BASED_BORDER @@ -187,6 +190,23 @@ public class Border : Adornment #region Mouse Support + private LineStyle _savedHighlightLineStyle; + + private void Border_EnablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + _savedHighlightLineStyle = Parent?.BorderStyle ?? LineStyle; + LineStyle = LineStyle.Heavy; + Parent?.SetNeedsDisplay (); + e.Cancel = true; + } + + private void Border_DisablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + LineStyle = _savedHighlightLineStyle; + Parent?.SetNeedsDisplay (); + e.Cancel = true; + } + private Point? _dragPosition; private Point _startGrabPoint; @@ -222,6 +242,7 @@ public class Border : Adornment _startGrabPoint = new (mouseEvent.X + Frame.X, mouseEvent.Y + Frame.Y); _dragPosition = new (mouseEvent.X, mouseEvent.Y); Application.GrabMouse (this); + EnableHighlight (); } return true; @@ -265,6 +286,7 @@ public class Border : Adornment { _dragPosition = null; Application.UngrabMouse (); + DisableHighlight(); return true; } diff --git a/Terminal.Gui/View/ViewAdornments.cs b/Terminal.Gui/View/ViewAdornments.cs index 5cf036439..55445cef8 100644 --- a/Terminal.Gui/View/ViewAdornments.cs +++ b/Terminal.Gui/View/ViewAdornments.cs @@ -99,7 +99,10 @@ public partial class View if (value != LineStyle.None) { - Border.Thickness = new (1); + if (Border.Thickness == Thickness.Empty) + { + Border.Thickness = new (1); + } } else { diff --git a/Terminal.Gui/View/ViewMouse.cs b/Terminal.Gui/View/ViewMouse.cs index 689168e50..9f3dac4f2 100644 --- a/Terminal.Gui/View/ViewMouse.cs +++ b/Terminal.Gui/View/ViewMouse.cs @@ -1,4 +1,7 @@ -namespace Terminal.Gui; +using System.ComponentModel; +using System.Diagnostics; + +namespace Terminal.Gui; public partial class View { @@ -77,18 +80,31 @@ public partial class View /// Event fired when the mouse leaves the View's . public event EventHandler MouseLeave; - [CanBeNull] - private ColorScheme _savedColorScheme; - - /// Called when a mouse event occurs within the view's . + /// + /// Processes a . This method is called by when a mouse + /// event occurs. + /// /// /// - /// The coordinates are relative to . + /// A view must be both enabled and visible to receive mouse events. + /// + /// + /// This method calls to process the event. If the event is not handled, and one of the + /// mouse buttons was clicked, it calls to process the click. + /// + /// + /// If is , the view will be highlighted when the mouse is + /// pressed. + /// See and for more information. + /// + /// + /// If is , the event + /// will be invoked repeatedly while the button is pressed. /// /// /// - /// , if the event was handled, otherwise. - protected internal virtual bool OnMouseEvent (MouseEvent mouseEvent) + /// if the event was handled, otherwise. + public bool? NewMouseEvent (MouseEvent mouseEvent) { if (!Enabled) { @@ -101,23 +117,67 @@ public partial class View return false; } - var args = new MouseEventEventArgs (mouseEvent); + if (OnMouseEvent (mouseEvent)) + { + // Technically mouseEvent.Handled should already be true if implementers of OnMouseEvent + // follow the rules. But we'll update it just in case. + return mouseEvent.Handled = true; + } - // Default behavior is to invoke Accept (via HotKey) on clicked. - if ( - // !WantContinuousButtonPressed && - Application.MouseGrabView != this + if ((HighlightOnPress || WantContinuousButtonPressed) && Highlight (mouseEvent)) + { + Debug.Assert (mouseEvent.Handled); + + return mouseEvent.Handled; + } + + if (mouseEvent.Flags.HasFlag (MouseFlags.Button1Clicked) + || mouseEvent.Flags.HasFlag (MouseFlags.Button2Clicked) + || mouseEvent.Flags.HasFlag (MouseFlags.Button3Clicked) + || mouseEvent.Flags.HasFlag (MouseFlags.Button4Clicked)) + { + return OnMouseClick (new (mouseEvent)); + } + + return false; + } + + /// + /// Highlight the view when the mouse is pressed. + /// + /// + /// + /// Set to to have the view highlighted when the mouse is + /// pressed. + /// + /// + /// Calls which fires the event. + /// + /// + /// Calls which fires the event. + /// + /// + /// + /// , if the event was handled, otherwise. + private bool Highlight (MouseEvent mouseEvent) + { + if (Application.MouseGrabView == this && (mouseEvent.Flags.HasFlag (MouseFlags.Button1Clicked) || mouseEvent.Flags.HasFlag (MouseFlags.Button2Clicked) || mouseEvent.Flags.HasFlag (MouseFlags.Button3Clicked) || mouseEvent.Flags.HasFlag (MouseFlags.Button4Clicked))) - { - return OnMouseClick (args); - } - - if (!HighlightOnPress) { - return false; + // We're grabbed. Clicked event comes after the last Release. This is our signal to ungrab + Application.UngrabMouse (); + DisableHighlight (); + + // If mouse is still in bounds, click + if (!WantContinuousButtonPressed && Bounds.Contains (mouseEvent.X, mouseEvent.Y)) + { + return OnMouseClick (new (mouseEvent)); + } + + return mouseEvent.Handled = true; } if (mouseEvent.Flags.HasFlag (MouseFlags.Button1Pressed) @@ -125,47 +185,34 @@ public partial class View || mouseEvent.Flags.HasFlag (MouseFlags.Button3Pressed) || mouseEvent.Flags.HasFlag (MouseFlags.Button4Pressed)) { - // If WantContinuousButtonPressed is true, and this is not the first pressed event, - // invoke Accept (via HotKey) - if (WantContinuousButtonPressed && Application.MouseGrabView == this) - { - return OnMouseClick (args); - } - - // The first time we get pressed event, grab the mouse and invert the colors + // The first time we get pressed event, grab the mouse and set focus if (Application.MouseGrabView != this) { Application.GrabMouse (this); - if (HighlightOnPress && ColorScheme is { }) - { - _savedColorScheme = ColorScheme; - if (CanFocus) - { - // TODO: Make the inverted color configurable - var cs = new ColorScheme (ColorScheme) - { - Focus = new (ColorScheme.Normal.Foreground, ColorScheme.Focus.Background) - }; - ColorScheme = cs; - } - else - { - var cs = new ColorScheme (ColorScheme) - { - Normal = new (ColorScheme.Focus.Background, ColorScheme.Normal.Foreground) - }; - ColorScheme = cs; - } - } - if (CanFocus) { // Set the focus, but don't invoke Accept SetFocus (); } } - args.Handled = true; + + if (Bounds.Contains (mouseEvent.X, mouseEvent.Y)) + { + EnableHighlight (); + } + else + { + DisableHighlight (); + } + + if (WantContinuousButtonPressed && Application.MouseGrabView == this) + { + // If this is not the first pressed event, click + return OnMouseClick (new (mouseEvent)); + } + + return mouseEvent.Handled = true; } if (mouseEvent.Flags.HasFlag (MouseFlags.Button1Released) @@ -173,31 +220,128 @@ public partial class View || mouseEvent.Flags.HasFlag (MouseFlags.Button3Released) || mouseEvent.Flags.HasFlag (MouseFlags.Button4Released)) { - if (Application.MouseGrabView == this) { - // When the mouse is released, if WantContinuousButtonPressed is set, invoke Accept one last time. - //if (WantContinuousButtonPressed) - { - OnMouseClick (args); - } - - Application.UngrabMouse (); - - if (HighlightOnPress && _savedColorScheme is { }) - { - ColorScheme = _savedColorScheme; - _savedColorScheme = null; - } + DisableHighlight (); } - args.Handled = true; + + return mouseEvent.Handled = true; } - if (args.Handled != true) + return mouseEvent.Handled; + } + + [CanBeNull] + private ColorScheme _savedHighlightColorScheme; + + /// + /// Enables the highlight for the view. Called from OnMouseEvent. + /// + public void EnableHighlight () + { + if (OnEnablingHighlight () == true) { - MouseEvent?.Invoke (this, args); + return; } + if (_savedHighlightColorScheme is null && ColorScheme is { }) + { + _savedHighlightColorScheme ??= ColorScheme; + + if (CanFocus) + { + // TODO: Make the inverted color configurable + var cs = new ColorScheme (ColorScheme) + { + // For Buttons etc... + Focus = new (ColorScheme.Normal.Foreground, ColorScheme.Focus.Background), + + // For Adornments + Normal = new (ColorScheme.Focus.Foreground, ColorScheme.Normal.Background) + }; + ColorScheme = cs; + } + else + { + var cs = new ColorScheme (ColorScheme) + { + // For Buttons etc... that can't focus (like up/down). + Normal = new (ColorScheme.Focus.Background, ColorScheme.Normal.Foreground) + }; + ColorScheme = cs; + } + } + } + + /// + /// Fired when the view is highlighted. Set to + /// to implement a custom highlight scheme or prevent the view from being highlighted. + /// + public event EventHandler EnablingHighlight; + + /// + /// Called when the view is to be highlighted. + /// + /// , if the event was handled, otherwise. + protected virtual bool? OnEnablingHighlight () + { + CancelEventArgs args = new (); + EnablingHighlight?.Invoke (this, args); + + return args.Cancel; + } + + /// + /// Disables the highlight for the view. Called from OnMouseEvent. + /// + public void DisableHighlight () + { + if (OnDisablingHighlight () == true) + { + return; + } + + // Unhighlight + if (_savedHighlightColorScheme is { }) + { + ColorScheme = _savedHighlightColorScheme; + _savedHighlightColorScheme = null; + } + } + + /// + /// Fired when the view is no longer to be highlighted. Set to + /// + /// to implement a custom highlight scheme or prevent the view from being highlighted. + /// + public event EventHandler DisablingHighlight; + + /// + /// Called when the view is no longer to be highlighted. + /// + /// , if the event was handled, otherwise. + protected virtual bool? OnDisablingHighlight () + { + CancelEventArgs args = new (); + DisablingHighlight?.Invoke (this, args); + + return args.Cancel; + } + + /// Called when a mouse event occurs within the view's . + /// + /// + /// The coordinates are relative to . + /// + /// + /// + /// , if the event was handled, otherwise. + protected internal virtual bool OnMouseEvent (MouseEvent mouseEvent) + { + var args = new MouseEventEventArgs (mouseEvent); + + MouseEvent?.Invoke (this, args); + return args.Handled; } diff --git a/Terminal.Gui/Views/ComboBox.cs b/Terminal.Gui/Views/ComboBox.cs index 9d151f465..b3c719b5e 100644 --- a/Terminal.Gui/Views/ComboBox.cs +++ b/Terminal.Gui/Views/ComboBox.cs @@ -264,7 +264,7 @@ public class ComboBox : View FocusSelectedItem (); } - return true; + return me.Handled = true; } if (me.Flags == MouseFlags.Button1Pressed) @@ -274,7 +274,7 @@ public class ComboBox : View _search.SetFocus (); } - return true; + return me.Handled = true; } return false; diff --git a/Terminal.Gui/Views/Menu/Menu.cs b/Terminal.Gui/Views/Menu/Menu.cs index d02791836..60f7c00bf 100644 --- a/Terminal.Gui/Views/Menu/Menu.cs +++ b/Terminal.Gui/Views/Menu/Menu.cs @@ -712,9 +712,9 @@ internal sealed class Menu : View } } - private void Application_RootMouseEvent (object sender, MouseEventEventArgs a) + private void Application_RootMouseEvent (object sender, MouseEvent a) { - if (a.MouseEvent.View is { } and (MenuBar or not Menu)) + if (a.View is { } and (MenuBar or not Menu)) { return; } @@ -724,21 +724,21 @@ internal sealed class Menu : View throw new InvalidOperationException ("This shouldn't running on a invisible menu!"); } - View view = a.MouseEvent.View ?? this; + View view = a.View ?? this; - Point boundsPoint = view.ScreenToBounds (a.MouseEvent.X, a.MouseEvent.Y); + Point boundsPoint = view.ScreenToBounds (a.X, a.Y); var me = new MouseEvent { X = boundsPoint.X, Y = boundsPoint.Y, - Flags = a.MouseEvent.Flags, - ScreenPosition = new (a.MouseEvent.X, a.MouseEvent.Y), + Flags = a.Flags, + ScreenPosition = new (a.X, a.Y), View = view }; - if (view.OnMouseEvent (me) || a.MouseEvent.Flags == MouseFlags.Button1Pressed || a.MouseEvent.Flags == MouseFlags.Button1Released) + if (view.NewMouseEvent (me) == true || a.Flags == MouseFlags.Button1Pressed || a.Flags == MouseFlags.Button1Released) { - a.MouseEvent.Handled = true; + a.Handled = true; } } @@ -1189,12 +1189,12 @@ internal sealed class Menu : View if (me.Y < 0) { - return true; + return me.Handled = true; } if (me.Y >= _barItems.Children.Length) { - return true; + return me.Handled = true; } MenuItem item = _barItems.Children [me.Y]; @@ -1206,13 +1206,13 @@ internal sealed class Menu : View if (disabled) { - return true; + return me.Handled = true; } _currentChild = me.Y; RunSelected (); - return true; + return me.Handled = true; } if (me.Flags != MouseFlags.Button1Pressed @@ -1229,14 +1229,14 @@ internal sealed class Menu : View if (me.Y < 0 || me.Y >= _barItems.Children.Length) { - return true; + return me.Handled = true; } MenuItem item = _barItems.Children [me.Y]; if (item is null) { - return true; + return me.Handled = true; } if (item?.IsEnabled () != true) @@ -1254,12 +1254,12 @@ internal sealed class Menu : View SetNeedsDisplay (); SetParentSetNeedsDisplay (); - return true; + return me.Handled = true; } _host.OnMenuOpened (); - return true; + return me.Handled = true; } } diff --git a/Terminal.Gui/Views/Menu/MenuBar.cs b/Terminal.Gui/Views/Menu/MenuBar.cs index e1c8189ac..07ff6912c 100644 --- a/Terminal.Gui/Views/Menu/MenuBar.cs +++ b/Terminal.Gui/Views/Menu/MenuBar.cs @@ -1715,7 +1715,7 @@ public class MenuBar : View { if (!CloseMenu (true, false)) { - return true; + return me.Handled = true; } Activate (i); @@ -1733,7 +1733,7 @@ public class MenuBar : View } } - return true; + return me.Handled = true; } if (i == Menus.Length - 1 && me.Flags == MouseFlags.Button1Clicked) @@ -1742,7 +1742,7 @@ public class MenuBar : View { CloseAllMenus (); - return true; + return me.Handled = true; } } @@ -1804,7 +1804,7 @@ public class MenuBar : View nme = new () { X = me.X + current.Frame.X, Y = 0, Flags = me.Flags, View = v }; } - v.OnMouseEvent (nme); + v.NewMouseEvent (nme); return false; } diff --git a/Terminal.Gui/Views/ScrollBarView.cs b/Terminal.Gui/Views/ScrollBarView.cs index 92fcbd505..e70f1e5c7 100644 --- a/Terminal.Gui/Views/ScrollBarView.cs +++ b/Terminal.Gui/Views/ScrollBarView.cs @@ -325,7 +325,7 @@ public class ScrollBarView : View || mouseEvent.Flags == MouseFlags.WheeledRight || mouseEvent.Flags == MouseFlags.WheeledLeft)) { - return Host.OnMouseEvent (mouseEvent); + return Host.NewMouseEvent (mouseEvent) == true; } if (mouseEvent.Flags == MouseFlags.Button1Pressed && location == 0) @@ -800,7 +800,7 @@ public class ScrollBarView : View || me.MouseEvent.Flags == MouseFlags.WheeledRight || me.MouseEvent.Flags == MouseFlags.WheeledLeft) { - OnMouseEvent (me.MouseEvent); + NewMouseEvent (me.MouseEvent); } else if (me.MouseEvent.Flags == MouseFlags.Button1Clicked) { diff --git a/Terminal.Gui/Views/ScrollView.cs b/Terminal.Gui/Views/ScrollView.cs index 72ebcb355..f021932ab 100644 --- a/Terminal.Gui/Views/ScrollView.cs +++ b/Terminal.Gui/Views/ScrollView.cs @@ -434,11 +434,11 @@ public class ScrollView : View } else if (me.X == _vertical.Frame.X && ShowVerticalScrollIndicator) { - _vertical.OnMouseEvent (me); + _vertical.NewMouseEvent (me); } else if (me.Y == _horizontal.Frame.Y && ShowHorizontalScrollIndicator) { - _horizontal.OnMouseEvent (me); + _horizontal.NewMouseEvent (me); } else if (IsOverridden (me.View, "OnMouseEvent")) { diff --git a/Terminal.Gui/Views/TabView.cs b/Terminal.Gui/Views/TabView.cs index 88689e2c5..8c7638a1d 100644 --- a/Terminal.Gui/Views/TabView.cs +++ b/Terminal.Gui/Views/TabView.cs @@ -533,7 +533,7 @@ public class TabView : View return Style.ShowTopLine ? 3 : 2; } - private void Tab_MouseClick (object sender, MouseEventEventArgs e) { e.Handled = _tabsBar.OnMouseEvent (e.MouseEvent); } + private void Tab_MouseClick (object sender, MouseEventEventArgs e) { e.Handled = _tabsBar.NewMouseEvent (e.MouseEvent) == true; } private void UnSetCurrentTabs () { diff --git a/UICatalog/Scenarios/ASCIICustomButton.cs b/UICatalog/Scenarios/ASCIICustomButton.cs index 729db9265..8051e08ea 100644 --- a/UICatalog/Scenarios/ASCIICustomButton.cs +++ b/UICatalog/Scenarios/ASCIICustomButton.cs @@ -134,7 +134,7 @@ public class ASCIICustomButtonTest : Scenario } public event Action PointerEnter; - private void This_MouseClick (object sender, MouseEventEventArgs obj) { OnMouseEvent (obj.MouseEvent); } + private void This_MouseClick (object sender, MouseEventEventArgs obj) { NewMouseEvent (obj.MouseEvent); } } public class ScrollViewTestWindow : Window diff --git a/UICatalog/Scenarios/Adornments.cs b/UICatalog/Scenarios/Adornments.cs index 91c40f5a4..302eda623 100644 --- a/UICatalog/Scenarios/Adornments.cs +++ b/UICatalog/Scenarios/Adornments.cs @@ -85,7 +85,7 @@ public class Adornments : Scenario view.X = 36; view.Y = 0; view.Width = Dim.Percent (60); - view.Height = Dim.Percent (80); + view.Height = Dim.Percent (80); editor.Initialized += (s, e) => { editor.ViewToEdit = view; }; diff --git a/UICatalog/Scenarios/BasicColors.cs b/UICatalog/Scenarios/BasicColors.cs index faefc6441..9fc6fead5 100644 --- a/UICatalog/Scenarios/BasicColors.cs +++ b/UICatalog/Scenarios/BasicColors.cs @@ -85,10 +85,10 @@ public class BasicColors : Scenario Application.MouseEvent += (s, e) => { - if (e.MouseEvent.View != null) + if (e.View != null) { - Color fore = e.MouseEvent.View.GetNormalColor ().Foreground; - Color back = e.MouseEvent.View.GetNormalColor ().Background; + Color fore = e.View.GetNormalColor ().Foreground; + Color back = e.View.GetNormalColor ().Background; lblForeground.Text = $"#{fore.R:X2}{fore.G:X2}{fore.B:X2} {fore.GetClosestNamedColor ()} "; diff --git a/UICatalog/Scenarios/ContextMenus.cs b/UICatalog/Scenarios/ContextMenus.cs index 35ac50c64..f1bb6c90d 100644 --- a/UICatalog/Scenarios/ContextMenus.cs +++ b/UICatalog/Scenarios/ContextMenus.cs @@ -74,7 +74,7 @@ public class ContextMenus : Scenario Application.MouseEvent += ApplicationMouseEvent; - void ApplicationMouseEvent (object sender, MouseEventEventArgs a) { mousePos = new Point (a.MouseEvent.X, a.MouseEvent.Y); } + void ApplicationMouseEvent (object sender, MouseEvent a) { mousePos = new Point (a.X, a.Y); } Win.WantMousePositionReports = true; diff --git a/UICatalog/Scenarios/Mouse.cs b/UICatalog/Scenarios/Mouse.cs index 9e4096e4a..7291ba92c 100644 --- a/UICatalog/Scenarios/Mouse.cs +++ b/UICatalog/Scenarios/Mouse.cs @@ -58,10 +58,10 @@ public class Mouse : Scenario win.Add (ml); - CheckBox cbWantContinuousPresses = new CheckBox () + CheckBox cbWantContinuousPresses = new () { X = Pos.Right (filterSlider), - Y = Pos.Bottom (ml) + 1, + Y = Pos.Bottom (ml), Title = "_Want Continuous Button Pressed", }; cbWantContinuousPresses.Toggled += (s, e) => @@ -70,11 +70,23 @@ public class Mouse : Scenario }; win.Add (cbWantContinuousPresses); + CheckBox cbHighlightOnPress = new () + { + X = Pos.Right (filterSlider), + Y = Pos.Bottom (cbWantContinuousPresses), + Title = "_Highlight on Press", + }; + cbHighlightOnPress.Toggled += (s, e) => + { + win.HighlightOnPress = !win.HighlightOnPress; + }; + + win.Add (cbHighlightOnPress); var demo = new MouseDemo () { X = Pos.Right (filterSlider), - Y = Pos.Bottom (cbWantContinuousPresses) + 1, + Y = Pos.Bottom (cbHighlightOnPress), Width = 20, Height = 3, Text = "Enter/Leave Demo", @@ -105,17 +117,15 @@ public class Mouse : Scenario Application.MouseEvent += (sender, a) => { - var i = filterSlider.Options.FindIndex (o => o.Data == a.MouseEvent.Flags); + var i = filterSlider.Options.FindIndex (o => o.Data == a.Flags); if (filterSlider.GetSetOptions().Contains(i)) { - ml.Text = $"MouseEvent: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags} {count}"; - appLogList.Add ($"({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags} {count++}"); + ml.Text = $"MouseEvent: ({a.X},{a.Y}) - {a.Flags} {count}"; + appLogList.Add ($"({a.X},{a.Y}) - {a.Flags} {count++}"); appLog.MoveDown (); - } + } }; - - label = new Label () { Text = "_Window Events:", @@ -137,13 +147,19 @@ public class Mouse : Scenario clearButton.Accept += (s, e) => { appLogList.Clear (); + appLog.SetSource (appLogList); winLogList.Clear (); + winLog.SetSource(winLogList); }; win.MouseEvent += (sender, a) => { - winLogList.Add ($"MouseEvent: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags} {count++}"); - winLog.MoveDown (); + var i = filterSlider.Options.FindIndex (o => o.Data == a.MouseEvent.Flags); + if (filterSlider.GetSetOptions ().Contains (i)) + { + winLogList.Add ($"MouseEvent: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags} {count++}"); + winLog.MoveDown (); + } }; win.MouseClick += (sender, a) => { diff --git a/UICatalog/Scenarios/Scrolling.cs b/UICatalog/Scenarios/Scrolling.cs index 33c15e866..f9cf29376 100644 --- a/UICatalog/Scenarios/Scrolling.cs +++ b/UICatalog/Scenarios/Scrolling.cs @@ -251,7 +251,7 @@ public class Scrolling : Scenario Text = "Mouse: " }; Win.Add (mousePos); - Application.MouseEvent += (sender, a) => { mousePos.Text = $"Mouse: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags} {count++}"; }; + Application.MouseEvent += (sender, a) => { mousePos.Text = $"Mouse: ({a.X},{a.Y}) - {a.Flags} {count++}"; }; var progress = new ProgressBar { X = Pos.Right (scrollView) + 1, Y = Pos.AnchorEnd (2), Width = 50 }; Win.Add (progress); diff --git a/UICatalog/Scenarios/TrueColors.cs b/UICatalog/Scenarios/TrueColors.cs index df8697106..7e8962617 100644 --- a/UICatalog/Scenarios/TrueColors.cs +++ b/UICatalog/Scenarios/TrueColors.cs @@ -76,9 +76,9 @@ public class TrueColors : Scenario Application.MouseEvent += (s, e) => { - if (e.MouseEvent.View != null) + if (e.View != null) { - Attribute normal = e.MouseEvent.View.GetNormalColor (); + Attribute normal = e.View.GetNormalColor (); lblRed.Text = normal.Foreground.R.ToString (); lblGreen.Text = normal.Foreground.G.ToString (); lblBlue.Text = normal.Foreground.B.ToString (); diff --git a/UnitTests/Application/ApplicationTests.cs b/UnitTests/Application/ApplicationTests.cs index 2dbad7ccc..9569c99b7 100644 --- a/UnitTests/Application/ApplicationTests.cs +++ b/UnitTests/Application/ApplicationTests.cs @@ -41,9 +41,9 @@ public class ApplicationTests { Assert.Null (Application.Top); Application.Begin (new ()); - Assert.Equal (new Rectangle (0, 0, 80, 25), Application.Top.Frame); + Assert.Equal (new (0, 0, 80, 25), Application.Top.Frame); ((FakeDriver)Application.Driver).SetBufferSize (5, 5); - Assert.Equal (new Rectangle (0, 0, 5, 5), Application.Top.Frame); + Assert.Equal (new (0, 0, 5, 5), Application.Top.Frame); } [Fact] @@ -62,10 +62,10 @@ public class ApplicationTests Assert.Null (rs.Toplevel); - var top = Application.Top; + Toplevel top = Application.Top; #if DEBUG_IDISPOSABLE - var exception = Record.Exception (() => Shutdown ()); + Exception exception = Record.Exception (() => Shutdown ()); Assert.NotNull (exception); Assert.False (top.WasDisposed); top.Dispose (); @@ -130,7 +130,7 @@ public class ApplicationTests var driver = (ConsoleDriver)Activator.CreateInstance (driverType); Application.Init (driverName: driverType.Name); Assert.NotNull (Application.Driver); - Assert.NotEqual(driver, Application.Driver); + Assert.NotEqual (driver, Application.Driver); Assert.Equal (driverType, Application.Driver.GetType ()); Shutdown (); } @@ -212,7 +212,7 @@ public class ApplicationTests Application._mainThreadId = 1; //Application._topLevels = new List (); - Application._mouseEnteredView = new View (); + Application._mouseEnteredView = new (); //Application.SupportedCultures = new List (); Application.Force16Colors = true; @@ -225,7 +225,7 @@ public class ApplicationTests //Application.OverlappedChildren = new List (); //Application.OverlappedTop = - Application._mouseEnteredView = new View (); + Application._mouseEnteredView = new (); //Application.WantContinuousButtonPressedView = new View (); @@ -464,6 +464,7 @@ public class ApplicationTests Application.Run (t1); Assert.Equal (t1, Application.Top); + // top wasn't run and so never was added to toplevel's stack Assert.NotEqual (top, Application.Top); #if DEBUG_IDISPOSABLE @@ -511,7 +512,6 @@ public class ApplicationTests #region RunTests [Fact] - public void Run_T_After_InitWithDriver_with_TopLevel_Does_Not_Throws () { // Setup Mock driver @@ -533,7 +533,6 @@ public class ApplicationTests } [Fact] - public void Run_T_After_InitWithDriver_with_TopLevel_and_Driver_Does_Not_Throws () { // Setup Mock driver @@ -547,6 +546,7 @@ public class ApplicationTests Assert.True (Application.Top is Window); Application.Top.Dispose (); + // Run when already initialized or not with a Driver will not throw (because Dialog is derived from Toplevel) Application.Run (null, new FakeDriver ()); Assert.True (Application.Top is Dialog); @@ -561,7 +561,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_T_After_Init_Does_Not_Disposes_Application_Top () { Init (); @@ -572,7 +571,7 @@ public class ApplicationTests Application.Iteration += (s, a) => { - Assert.NotEqual(initTop, Application.Top); + Assert.NotEqual (initTop, Application.Top); #if DEBUG_IDISPOSABLE Assert.False (initTop.WasDisposed); #endif @@ -596,7 +595,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_T_After_InitWithDriver_with_TestTopLevel_DoesNotThrow () { // Setup Mock driver @@ -617,7 +615,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_T_After_InitNullDriver_with_TestTopLevel_DoesNotThrow () { Application.ForceDriver = "FakeDriver"; @@ -640,7 +637,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_T_Init_Driver_Cleared_with_TestTopLevel_Throws () { Init (); @@ -678,7 +674,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_T_NoInit_WithDriver_DoesNotThrow () { Application.Iteration += (s, a) => { Application.RequestStop (); }; @@ -696,7 +691,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_RequestStop_Stops () { // Setup Mock driver @@ -721,7 +715,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_RunningFalse_Stops () { // Setup Mock driver @@ -746,7 +739,6 @@ public class ApplicationTests [Fact] [TestRespondersDisposed] - public void Run_Loaded_Ready_Unlodaded_Events () { Init (); @@ -782,18 +774,13 @@ public class ApplicationTests if (iteration == 0) { // TODO: Don't use Dialog here as it has more layout logic. Use Window instead. - d = new Dialog (); + d = new (); d.DrawContent += (s, a) => count++; Application.Run (d); } else if (iteration < 3) { - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { X = 0, Y = 0, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new () { X = 0, Y = 0, Flags = MouseFlags.ReportMousePosition }); Assert.False (top.NeedsDisplay); Assert.False (top.SubViewNeedsDisplay); Assert.False (top.LayoutNeeded); @@ -858,25 +845,11 @@ public class ApplicationTests // TODO: In PR #2920 this breaks because the mouse is not grabbed anymore. // TODO: Move the mouse grap/drag mode from Toplevel to Border. - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new () { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed }); Assert.Equal (w.Border, Application.MouseGrabView); // Move down and to the right. - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 1, - Y = 1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new () { X = 1, Y = 1, Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Application.Refresh (); TestHelpers.AssertDriverContentsWithFrameAre ( @@ -925,7 +898,7 @@ public class ApplicationTests Window w = new (); w.Ready += (s, e) => Application.RequestStop (); // Causes `End` to be called - Application.Run(w); + Application.Run (w); #if DEBUG_IDISPOSABLE Assert.False (w.WasDisposed); @@ -934,20 +907,23 @@ public class ApplicationTests Assert.NotNull (w); Assert.Equal (string.Empty, w.Title); // Valid - w has not been disposed. The user may want to run it again Assert.NotNull (Application.Top); - Assert.Equal(w, Application.Top); - Assert.NotEqual(top, Application.Top); + Assert.Equal (w, Application.Top); + Assert.NotEqual (top, Application.Top); Assert.Null (Application.Current); - Application.Run(w); // Valid - w has not been disposed. + Application.Run (w); // Valid - w has not been disposed. #if DEBUG_IDISPOSABLE Assert.False (w.WasDisposed); - var exception = Record.Exception (() => Application.Shutdown()); // Invalid - w has not been disposed. + Exception exception = Record.Exception (() => Application.Shutdown ()); // Invalid - w has not been disposed. Assert.NotNull (exception); w.Dispose (); Assert.True (w.WasDisposed); - exception = Record.Exception (() => Application.Run (w)); // Invalid - w has been disposed. Run it in debug mode will throw, otherwise the user may want to run it again + + exception = Record.Exception ( + () => Application.Run ( + w)); // Invalid - w has been disposed. Run it in debug mode will throw, otherwise the user may want to run it again Assert.NotNull (exception); exception = Record.Exception (() => Assert.Equal (string.Empty, w.Title)); // Invalid - w has been disposed and cannot be accessed @@ -974,11 +950,11 @@ public class ApplicationTests Assert.NotNull (Application.Top); Application.RequestStop (); }; - var top = Application.Run (null, driver); + Toplevel top = Application.Run (null, driver); #if DEBUG_IDISPOSABLE - Assert.Equal(top, Application.Top); + Assert.Equal (top, Application.Top); Assert.False (top.WasDisposed); - var exception = Record.Exception (() => Application.Shutdown ()); + Exception exception = Record.Exception (() => Application.Shutdown ()); Assert.NotNull (exception); Assert.False (top.WasDisposed); #endif @@ -1010,9 +986,10 @@ public class ApplicationTests Application.Run (null, driver); #if DEBUG_IDISPOSABLE Assert.False (Application.Top.WasDisposed); - var exception = Record.Exception (() => Application.Shutdown ()); + Exception exception = Record.Exception (() => Application.Shutdown ()); Assert.NotNull (exception); Assert.False (Application.Top.WasDisposed); + // It's up to caller to dispose it Application.Top.Dispose (); Assert.True (Application.Top.WasDisposed); @@ -1038,9 +1015,10 @@ public class ApplicationTests Application.Run (new (), null, driver); #if DEBUG_IDISPOSABLE Assert.False (Application.Top.WasDisposed); - var exception = Record.Exception (() => Application.Shutdown ()); + Exception exception = Record.Exception (() => Application.Shutdown ()); Assert.NotNull (exception); Assert.False (Application.Top.WasDisposed); + // It's up to caller to dispose it Application.Top.Dispose (); Assert.True (Application.Top.WasDisposed); diff --git a/UnitTests/Application/MouseTests.cs b/UnitTests/Application/MouseTests.cs index d6b4cecca..559cfbb9e 100644 --- a/UnitTests/Application/MouseTests.cs +++ b/UnitTests/Application/MouseTests.cs @@ -42,19 +42,18 @@ public class MouseTests ) { var mouseEvent = new MouseEvent { X = clickX, Y = clickY, Flags = MouseFlags.Button1Pressed }; - var mouseEventArgs = new MouseEventEventArgs (mouseEvent); var clicked = false; - void OnApplicationOnMouseEvent (object s, MouseEventEventArgs e) + void OnApplicationOnMouseEvent (object s, MouseEvent e) { - Assert.Equal (expectedX, e.MouseEvent.X); - Assert.Equal (expectedY, e.MouseEvent.Y); + Assert.Equal (expectedX, e.X); + Assert.Equal (expectedY, e.Y); clicked = true; } Application.MouseEvent += OnApplicationOnMouseEvent; - Application.OnMouseEvent (mouseEventArgs); + Application.OnMouseEvent (mouseEvent); Assert.Equal (expectedClicked, clicked); Application.MouseEvent -= OnApplicationOnMouseEvent; } @@ -107,7 +106,8 @@ public class MouseTests Point pos = new (offset, offset); var clicked = false; - var view = new View () + + var view = new View { X = pos.X, Y = pos.Y, @@ -116,20 +116,19 @@ public class MouseTests }; var mouseEvent = new MouseEvent { X = clickX, Y = clickY, Flags = MouseFlags.Button1Clicked }; - var mouseEventArgs = new MouseEventEventArgs (mouseEvent); view.MouseClick += (s, e) => - { - Assert.Equal (expectedX, e.MouseEvent.X); - Assert.Equal (expectedY, e.MouseEvent.Y); - clicked = true; - }; + { + Assert.Equal (expectedX, e.MouseEvent.X); + Assert.Equal (expectedY, e.MouseEvent.Y); + clicked = true; + }; var top = new Toplevel (); top.Add (view); Application.Begin (top); - Application.OnMouseEvent (mouseEventArgs); + Application.OnMouseEvent (mouseEvent); Assert.Equal (expectedClicked, clicked); } @@ -215,7 +214,6 @@ public class MouseTests top.Add (view); Application.Begin (top); var mouseEvent = new MouseEvent { X = clickX, Y = clickY, Flags = MouseFlags.Button1Clicked }; - var mouseEventArgs = new MouseEventEventArgs (mouseEvent); view.MouseClick += (s, e) => { @@ -224,7 +222,7 @@ public class MouseTests clicked = true; }; - Application.OnMouseEvent (mouseEventArgs); + Application.OnMouseEvent (mouseEvent); Assert.Equal (expectedClicked, clicked); } @@ -254,12 +252,7 @@ public class MouseTests Assert.True (tf.HasFocus); Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { X = 5, Y = 5, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new() { X = 5, Y = 5, Flags = MouseFlags.ReportMousePosition }); Assert.Equal (sv, Application.MouseGrabView); @@ -273,29 +266,15 @@ public class MouseTests // another toplevel (Dialog) was opened Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { X = 5, Y = 5, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new() { X = 5, Y = 5, Flags = MouseFlags.ReportMousePosition }); Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { X = 40, Y = 12, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new() { X = 40, Y = 12, Flags = MouseFlags.ReportMousePosition }); Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new() { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed }); Assert.Null (Application.MouseGrabView); diff --git a/UnitTests/Input/EscSeqUtilsTests.cs b/UnitTests/Input/EscSeqUtilsTests.cs index bf2c930e7..b4486b84a 100644 --- a/UnitTests/Input/EscSeqUtilsTests.cs +++ b/UnitTests/Input/EscSeqUtilsTests.cs @@ -699,11 +699,7 @@ public class EscSeqUtilsTests top.Add (view); Application.Begin (top); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = 0 } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = 0 }); ClearAll (); @@ -760,11 +756,7 @@ public class EscSeqUtilsTests // set Application.WantContinuousButtonPressedView to null view.WantContinuousButtonPressed = false; - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = 0 } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = 0 }); Application.RequestStop (); } diff --git a/UnitTests/Input/ResponderTests.cs b/UnitTests/Input/ResponderTests.cs index 7600a221e..3a1d53076 100644 --- a/UnitTests/Input/ResponderTests.cs +++ b/UnitTests/Input/ResponderTests.cs @@ -234,7 +234,7 @@ public class ResponderTests //Assert.False (r.OnKeyDown (new KeyEventArgs () { Key = Key.Unknown })); Assert.False (r.OnKeyDown (new Key { KeyCode = KeyCode.Null })); Assert.False (r.OnKeyUp (new Key { KeyCode = KeyCode.Null })); - Assert.False (r.OnMouseEvent (new MouseEvent { Flags = MouseFlags.AllEvents })); + Assert.False (r.NewMouseEvent (new MouseEvent { Flags = MouseFlags.AllEvents })); Assert.False (r.OnMouseEnter (new MouseEvent { Flags = MouseFlags.AllEvents })); Assert.False (r.OnMouseLeave (new MouseEvent { Flags = MouseFlags.AllEvents })); diff --git a/UnitTests/View/MouseTests.cs b/UnitTests/View/MouseTests.cs index bee5e35b5..5e6b7ef61 100644 --- a/UnitTests/View/MouseTests.cs +++ b/UnitTests/View/MouseTests.cs @@ -27,7 +27,7 @@ public class MouseTests (ITestOutputHelper output) testView.SetFocus (); } - testView.OnMouseEvent (new () { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked }); + testView.NewMouseEvent (new () { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked }); Assert.True (superView.HasFocus); Assert.Equal (expectedHasFocus, testView.HasFocus); } @@ -73,9 +73,9 @@ public class MouseTests (ITestOutputHelper output) Application.Begin (top); Assert.Equal (new Point (4, 4), testView.Frame.Location); - Application.OnMouseEvent (new (new () { X = xy, Y = xy, Flags = MouseFlags.Button1Pressed })); + Application.OnMouseEvent (new () { X = xy, Y = xy, Flags = MouseFlags.Button1Pressed }); - Application.OnMouseEvent (new (new () { X = xy + 1, Y = xy + 1, Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition })); + Application.OnMouseEvent (new () { X = xy + 1, Y = xy + 1, Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Assert.Equal (expectedMoved, new Point (5, 5) == testView.Frame.Location); } @@ -89,7 +89,7 @@ public class MouseTests (ITestOutputHelper output) var view = new View (); view.MouseEvent += (s, e) => mouseFlagsFromEvent = e.MouseEvent.Flags; - view.OnMouseEvent (new MouseEvent () { Flags = mouseFlags }); + view.NewMouseEvent (new MouseEvent () { Flags = mouseFlags }); Assert.Equal (mouseFlagsFromEvent, expectedMouseFlagsFromEvent); } @@ -280,9 +280,32 @@ public class MouseTests (ITestOutputHelper output) Application.Shutdown (); } + [Fact] + public void NewMouseEvent_Invokes_MouseEvent_Properly () + { + View view = new () + { + Width = 1, + Height = 1, + }; + bool mouseEventInvoked = false; + view.MouseEvent += (s, e) => + { + mouseEventInvoked = true; + e.Handled = true; + }; + + MouseEvent me = new (); + view.NewMouseEvent (me); + Assert.True (mouseEventInvoked); + Assert.True (me.Handled); + + view.Dispose (); + } + [Theory] [MemberData (nameof (AllViews))] - public void AllViews_OnMouseEvent_Enabled_False_Does_Not_Set_Handled (View view, string viewName) + public void AllViews_NewMouseEvent_Enabled_False_Does_Not_Set_Handled (View view, string viewName) { if (view == null) { @@ -292,14 +315,14 @@ public class MouseTests (ITestOutputHelper output) view.Enabled = false; var me = new MouseEvent (); - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.False (me.Handled); view.Dispose (); } [Theory] [MemberData (nameof (AllViews))] - public void AllViews_OnMouseClick_Enabled_False_Does_Not_Set_Handled (View view, string viewName) + public void AllViews_NewMouseEvent_Clicked_Enabled_False_Does_Not_Set_Handled (View view, string viewName) { if (view == null) { @@ -312,7 +335,7 @@ public class MouseTests (ITestOutputHelper output) { Flags = MouseFlags.Button1Clicked }; - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.False (me.Handled); view.Dispose (); } @@ -322,15 +345,14 @@ public class MouseTests (ITestOutputHelper output) [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)] [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)] [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)] - public void WantContinuousButtonPressed_False_Button1Press_Release_DoesNotClick (MouseFlags pressed, MouseFlags released, MouseFlags clicked) + public void WantContinuousButtonPressed_False_Button_Press_Release_DoesNotClick (MouseFlags pressed, MouseFlags released, MouseFlags clicked) { - var me = new MouseEvent () - { - Flags = pressed - }; + var me = new MouseEvent (); var view = new View () { + Width = 1, + Height = 1, WantContinuousButtonPressed = false }; @@ -338,22 +360,23 @@ public class MouseTests (ITestOutputHelper output) view.MouseClick += (s, e) => clickedCount++; - - view.OnMouseEvent (me); + me.Flags = pressed; + view.NewMouseEvent (me); Assert.Equal (0, clickedCount); me.Handled = false; - view.OnMouseEvent (me); + me.Flags = pressed; + view.NewMouseEvent (me); Assert.Equal (0, clickedCount); me.Handled = false; me.Flags = released; - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.Equal (0, clickedCount); me.Handled = false; me.Flags =clicked; - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.Equal (1, clickedCount); view.Dispose (); @@ -364,15 +387,14 @@ public class MouseTests (ITestOutputHelper output) [InlineData (MouseFlags.Button2Pressed, MouseFlags.Button2Released, MouseFlags.Button2Clicked)] [InlineData (MouseFlags.Button3Pressed, MouseFlags.Button3Released, MouseFlags.Button3Clicked)] [InlineData (MouseFlags.Button4Pressed, MouseFlags.Button4Released, MouseFlags.Button4Clicked)] - public void WantContinuousButtonPressed_True_Button1Press_Release_Clicks_Repeatedly (MouseFlags pressed, MouseFlags released, MouseFlags clicked) + public void WantContinuousButtonPressed_True_Button_Press_Release_Clicks_Repeatedly (MouseFlags pressed, MouseFlags released, MouseFlags clicked) { - var me = new MouseEvent () - { - Flags = pressed - }; + var me = new MouseEvent (); var view = new View () { + Width = 1, + Height = 1, WantContinuousButtonPressed = true }; @@ -380,66 +402,179 @@ public class MouseTests (ITestOutputHelper output) view.MouseClick += (s, e) => clickedCount++; - view.OnMouseEvent (me); - Assert.Equal (0, clickedCount); - me.Handled = false; - - view.OnMouseEvent (me); + me.Flags = pressed; + view.NewMouseEvent (me); Assert.Equal (1, clickedCount); me.Handled = false; + me.Flags = pressed; + view.NewMouseEvent (me); + Assert.Equal (2, clickedCount); + me.Handled = false; + me.Flags = released; - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.Equal (2, clickedCount); me.Handled = false; me.Flags = clicked; - view.OnMouseEvent (me); + view.NewMouseEvent (me); Assert.Equal (2, clickedCount); view.Dispose (); } [Fact] - public void HighlightOnPress_False_No_Highlights () + public void WantContinuousButtonPressed_True_Move_InViewport_OutOfViewport_Keeps_Counting () + { + var me = new MouseEvent (); + + var view = new View () + { + Width = 1, + Height = 1, + WantContinuousButtonPressed = true + }; + + var clickedCount = 0; + + view.MouseClick += (s, e) => clickedCount++; + + // Start in Viewport + me.Flags = MouseFlags.Button1Pressed; + me.X = 0; + view.NewMouseEvent (me); + Assert.Equal (1, clickedCount); + me.Handled = false; + + // Move out of Viewport + me.Flags = MouseFlags.Button1Pressed; + me.X = 1; + view.NewMouseEvent (me); + Assert.Equal (2, clickedCount); + me.Handled = false; + + // Move into Viewport + me.Flags = MouseFlags.Button1Pressed; + me.X = 0; + view.NewMouseEvent (me); + Assert.Equal (3, clickedCount); + me.Handled = false; + + view.Dispose (); + } + + [Theory] + [InlineData(false, 0, 0)] + [InlineData (true, 1, 1)] + public void HighlightOnPress_Fires_Events_And_Highlights (bool highlightOnPress, int expectedEnabling, int expectedDisabling) { var view = new View () { - HighlightOnPress = false + HighlightOnPress = highlightOnPress, + Height = 1, + Width = 1 }; + + int enablingHighlight = 0; + int disablingHighlight = 0; + view.EnablingHighlight += View_EnablingHighlight; + view.DisablingHighlight += View_DisablingHighlight; view.ColorScheme = new ColorScheme (new Attribute (ColorName.Red, ColorName.Blue)); ColorScheme originalColorScheme = view.ColorScheme; - var me = new MouseEvent () - { - Flags = MouseFlags.Button1Pressed - }; + view.NewMouseEvent (new () { Flags = MouseFlags.Button1Pressed, }); - view.OnMouseEvent (me); + if (highlightOnPress) + { + Assert.NotEqual (originalColorScheme, view.ColorScheme); + } + else + { + Assert.Equal (originalColorScheme, view.ColorScheme); + } + + view.NewMouseEvent (new () { Flags = MouseFlags.Button1Released, }); Assert.Equal (originalColorScheme, view.ColorScheme); + Assert.Equal (expectedEnabling, enablingHighlight); + Assert.Equal (expectedDisabling, disablingHighlight); view.Dispose (); + + return; + + void View_DisablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + disablingHighlight++; + } + void View_EnablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + enablingHighlight++; + } } - - [Fact] - public void HighlightOnPress_False_Highlights () + [Theory] + [InlineData (0)] + [InlineData (1)] + [InlineData (10)] + public void HighlightOnPress_Move_Keeps_Highlight (int x) { var view = new View () { - HighlightOnPress = true + HighlightOnPress = true, + Height = 1, + Width = 1 }; - view.ColorScheme = new ColorScheme (new Attribute (ColorName.Red, ColorName.Blue)); - ColorScheme originalColorScheme = view.ColorScheme; + int enablingHighlight = 0; + int disablingHighlight = 0; + view.EnablingHighlight += View_EnablingHighlight; + view.DisablingHighlight += View_DisablingHighlight; + bool inViewport = view.Bounds.Contains (x, 0); - var me = new MouseEvent () + // Start at 0,0 ; in viewport + view.NewMouseEvent (new () { X = 0, Flags = MouseFlags.Button1Pressed }); + Assert.Equal (1, enablingHighlight); + Assert.Equal (0, disablingHighlight); + + // Move to x,0 + view.NewMouseEvent (new () { X = x, Flags = MouseFlags.Button1Pressed }); + + if (inViewport) { - Flags = MouseFlags.Button1Pressed - }; + Assert.Equal (2, enablingHighlight); + Assert.Equal (0, disablingHighlight); + } + else + { + Assert.Equal (1, enablingHighlight); + Assert.Equal (1, disablingHighlight); + } - view.OnMouseEvent (me); - Assert.NotEqual (originalColorScheme, view.ColorScheme); + // Move backto 0,0 ; in viewport + view.NewMouseEvent (new () { X = 0, Flags = MouseFlags.Button1Pressed }); + if (inViewport) + { + Assert.Equal (3, enablingHighlight); + Assert.Equal (0, disablingHighlight); + } + else + { + Assert.Equal (2, enablingHighlight); + Assert.Equal (1, disablingHighlight); + } view.Dispose (); + + return; + + void View_DisablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + disablingHighlight++; + } + void View_EnablingHighlight (object sender, System.ComponentModel.CancelEventArgs e) + { + enablingHighlight++; + } } + } diff --git a/UnitTests/View/NavigationTests.cs b/UnitTests/View/NavigationTests.cs index 773ab0f77..3b5fefc94 100644 --- a/UnitTests/View/NavigationTests.cs +++ b/UnitTests/View/NavigationTests.cs @@ -452,7 +452,7 @@ public class NavigationTests view.NewKeyDownEvent (Key.Space); Assert.True (wasClicked); - view.OnMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); + view.NewMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); Assert.False (wasClicked); Assert.True (view.Enabled); Assert.True (view.CanFocus); @@ -461,7 +461,7 @@ public class NavigationTests view.Enabled = false; view.NewKeyDownEvent (Key.Space); Assert.False (wasClicked); - view.OnMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); + view.NewMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); Assert.False (wasClicked); Assert.False (view.Enabled); Assert.True (view.CanFocus); @@ -491,7 +491,7 @@ public class NavigationTests win.NewKeyDownEvent (Key.Enter); Assert.True (wasClicked); - button.OnMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); + button.NewMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); Assert.False (wasClicked); Assert.True (button.Enabled); Assert.True (button.CanFocus); @@ -503,7 +503,7 @@ public class NavigationTests win.Enabled = false; button.NewKeyDownEvent (Key.Enter); Assert.False (wasClicked); - button.OnMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); + button.NewMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked }); Assert.False (wasClicked); Assert.False (button.Enabled); Assert.True (button.CanFocus); diff --git a/UnitTests/View/ViewTests.cs b/UnitTests/View/ViewTests.cs index de9de98c3..ae6c82c3d 100644 --- a/UnitTests/View/ViewTests.cs +++ b/UnitTests/View/ViewTests.cs @@ -865,7 +865,7 @@ At 0,0 //Assert.False (r.OnKeyDown (new KeyEventArgs () { Key = Key.Unknown })); Assert.False (r.OnKeyUp (new Key { KeyCode = KeyCode.Null })); - Assert.False (r.OnMouseEvent (new MouseEvent { Flags = MouseFlags.AllEvents })); + Assert.False (r.NewMouseEvent (new MouseEvent { Flags = MouseFlags.AllEvents })); Assert.False (r.OnMouseEnter (new MouseEvent { Flags = MouseFlags.AllEvents })); Assert.False (r.OnMouseLeave (new MouseEvent { Flags = MouseFlags.AllEvents })); diff --git a/UnitTests/Views/CheckBoxTests.cs b/UnitTests/Views/CheckBoxTests.cs index aeec6b821..88e2afe9a 100644 --- a/UnitTests/Views/CheckBoxTests.cs +++ b/UnitTests/Views/CheckBoxTests.cs @@ -47,7 +47,7 @@ public class CheckBoxTests Assert.False (checkBox.Checked); Assert.True (checkBox.NewKeyDownEvent (Key.Space)); Assert.True (checkBox.Checked); - Assert.True (checkBox.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); + Assert.True (checkBox.NewMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); Assert.False (checkBox.Checked); checkBox.AllowNullChecked = true; @@ -60,11 +60,11 @@ public class CheckBoxTests {CM.Glyphs.NullChecked} Check this out 你", _output ); - Assert.True (checkBox.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); + Assert.True (checkBox.NewMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); Assert.True (checkBox.Checked); Assert.True (checkBox.NewKeyDownEvent (Key.Space)); Assert.False (checkBox.Checked); - Assert.True (checkBox.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); + Assert.True (checkBox.NewMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked })); Assert.Null (checkBox.Checked); checkBox.AllowNullChecked = false; diff --git a/UnitTests/Views/ColorPickerTests.cs b/UnitTests/Views/ColorPickerTests.cs index bdf05a84b..d222f2cd4 100644 --- a/UnitTests/Views/ColorPickerTests.cs +++ b/UnitTests/Views/ColorPickerTests.cs @@ -52,9 +52,9 @@ public class ColorPickerTests top.Add (colorPicker); Application.Begin (top); - Assert.False (colorPicker.OnMouseEvent (new MouseEvent ())); + Assert.False (colorPicker.NewMouseEvent (new MouseEvent ())); - Assert.True (colorPicker.OnMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked, X = 4, Y = 1 })); + Assert.True (colorPicker.NewMouseEvent (new MouseEvent { Flags = MouseFlags.Button1Clicked, X = 4, Y = 1 })); Assert.Equal (ColorName.Blue, colorPicker.SelectedColor); } diff --git a/UnitTests/Views/ComboBoxTests.cs b/UnitTests/Views/ComboBoxTests.cs index 88285ef89..a50e43cc2 100644 --- a/UnitTests/Views/ComboBoxTests.cs +++ b/UnitTests/Views/ComboBoxTests.cs @@ -146,7 +146,7 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -203,7 +203,7 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -240,7 +240,7 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -297,7 +297,7 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -308,7 +308,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 1, Flags = MouseFlags.Button1Clicked } ) ); @@ -319,7 +319,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 1, Flags = MouseFlags.Button1Clicked } ) ); @@ -332,7 +332,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.Button1Clicked } ) ); @@ -342,14 +342,14 @@ public class ComboBoxTests Assert.Equal ("Three", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.Button1Clicked } ) ); @@ -359,7 +359,7 @@ public class ComboBoxTests Assert.Equal ("Three", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -370,7 +370,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -398,14 +398,14 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -416,7 +416,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = -1, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -429,7 +429,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -440,7 +440,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = -1, Flags = MouseFlags.Button1Clicked } ) ); @@ -453,7 +453,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -464,7 +464,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = cb.Frame.Width, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -477,7 +477,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Clicked } ) ); @@ -488,7 +488,7 @@ public class ComboBoxTests Assert.True ( cb.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = cb.Frame.Height, Flags = MouseFlags.Button1Clicked } ) ); @@ -516,7 +516,7 @@ public class ComboBoxTests Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -673,7 +673,7 @@ Three ", Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -685,7 +685,7 @@ Three ", Assert.True (cb.Subviews [1].NewKeyDownEvent (Key.CursorDown)); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -695,7 +695,7 @@ Three ", Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -707,7 +707,7 @@ Three ", Assert.True (cb.Subviews [1].NewKeyDownEvent (Key.CursorUp)); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -735,7 +735,7 @@ Three ", Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); @@ -792,7 +792,7 @@ Three ", Assert.Equal ("", cb.Text); Assert.True ( - cb.OnMouseEvent ( + cb.NewMouseEvent ( new MouseEvent { X = cb.Bounds.Right - 1, Y = 0, Flags = MouseFlags.Button1Pressed } ) ); diff --git a/UnitTests/Views/ContextMenuTests.cs b/UnitTests/Views/ContextMenuTests.cs index 239dca482..bd3f5e488 100644 --- a/UnitTests/Views/ContextMenuTests.cs +++ b/UnitTests/Views/ContextMenuTests.cs @@ -107,11 +107,11 @@ public class ContextMenuTests Assert.True (ContextMenu.IsShow); Assert.Equal (cm.MenuBar, Application.MouseGrabView); Assert.False (menu.IsMenuOpen); - Assert.False (menu.OnMouseEvent (new MouseEvent { X = 1, Flags = MouseFlags.ReportMousePosition, View = menu })); + Assert.False (menu.NewMouseEvent(new MouseEvent { X = 1, Flags = MouseFlags.ReportMousePosition, View = menu })); Assert.True (ContextMenu.IsShow); Assert.Equal (cm.MenuBar, Application.MouseGrabView); Assert.False (menu.IsMenuOpen); - Assert.True (menu.OnMouseEvent (new MouseEvent { X = 1, Flags = MouseFlags.Button1Clicked, View = menu })); + Assert.True (menu.NewMouseEvent(new MouseEvent { X = 1, Flags = MouseFlags.Button1Clicked, View = menu })); Assert.False (ContextMenu.IsShow); Assert.Equal (menu, Application.MouseGrabView); Assert.True (menu.IsMenuOpen); @@ -269,11 +269,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 8, Y = 2, Flags = MouseFlags.Button3Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 8, Y = 2, Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -355,11 +351,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 9, Y = 3, Flags = MouseFlags.Button3Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 9, Y = 3, Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rsDialog, ref firstIteration); @@ -414,11 +406,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 9, Y = 3, Flags = MouseFlags.Button3Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 9, Y = 3, Flags = MouseFlags.Button3Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -517,7 +505,7 @@ public class ContextMenuTests top.RequestStop (); Assert.False (ContextMenu.IsShow); } - + [Fact] [AutoInitShutdown] public void Key_Open_And_Close_The_ContextMenu () @@ -653,7 +641,7 @@ public class ContextMenuTests Assert.True ( top.Subviews [0] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 3, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [0] } ) ); @@ -701,7 +689,7 @@ public class ContextMenuTests Assert.True ( top.Subviews [0] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 30, Y = 3, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [0] } ) ); @@ -748,7 +736,7 @@ public class ContextMenuTests Assert.True ( top.Subviews [0] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 30, Y = 3, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [0] } ) ); @@ -792,7 +780,7 @@ public class ContextMenuTests Assert.True ( top.Subviews [0] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 30, Y = 3, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [0] } ) ); @@ -836,7 +824,7 @@ public class ContextMenuTests Assert.True ( top.Subviews [0] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 30, Y = 3, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [0] } ) ); @@ -879,12 +867,12 @@ public class ContextMenuTests top.Add (lbl); Application.Begin (top); - Assert.True (lbl.OnMouseEvent (new MouseEvent { Flags = cm.MouseFlags })); + Assert.True (lbl.NewMouseEvent (new MouseEvent { Flags = cm.MouseFlags })); Assert.Equal ("Replaced", lbl.Text); lbl.Text = "Original"; cm.MouseFlags = MouseFlags.Button2Clicked; - Assert.True (lbl.OnMouseEvent (new MouseEvent { Flags = cm.MouseFlags })); + Assert.True (lbl.NewMouseEvent (new MouseEvent { Flags = cm.MouseFlags })); Assert.Equal ("Replaced", lbl.Text); } @@ -1326,11 +1314,7 @@ public class ContextMenuTests ); // X=5 is the border and so need to use at least one more - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.Button1Clicked }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1348,11 +1332,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 12, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 12, Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1371,7 +1351,7 @@ public class ContextMenuTests Application.End (rs); } - [Fact] + [Fact] [AutoInitShutdown] public void UseSubMenusSingleFrame_False_By_Mouse () { @@ -1423,11 +1403,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.ReportMousePosition }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1444,11 +1420,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 14, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 14, Flags = MouseFlags.ReportMousePosition }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1466,11 +1438,7 @@ public class ContextMenuTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 13, Flags = MouseFlags.ReportMousePosition }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); diff --git a/UnitTests/Views/LabelTests.cs b/UnitTests/Views/LabelTests.cs index 6a7d10df6..c309b16cf 100644 --- a/UnitTests/Views/LabelTests.cs +++ b/UnitTests/Views/LabelTests.cs @@ -67,7 +67,7 @@ public class LabelTests Assert.False (label.HasFocus); Assert.False (nextSubview.HasFocus); - label.OnMouseEvent (new MouseEvent () { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked }); + label.NewMouseEvent (new MouseEvent () { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked }); Assert.False (label.HasFocus); Assert.True (nextSubview.HasFocus); } diff --git a/UnitTests/Views/ListViewTests.cs b/UnitTests/Views/ListViewTests.cs index 71193de12..a7ee74fc7 100644 --- a/UnitTests/Views/ListViewTests.cs +++ b/UnitTests/Views/ListViewTests.cs @@ -425,7 +425,7 @@ Item 6", public void Accept_Command_Accepts_and_Opens_Selected_Item () { List source = ["One", "Two", "Three"]; - var listView = new ListView {Source = new ListWrapper (source) }; + var listView = new ListView { Source = new ListWrapper (source) }; listView.SelectedItem = 0; var accepted = false; @@ -719,48 +719,43 @@ Item 6", │Three│ └─────┘", _output); - Application.OnMouseEvent (new (new () - { - X = 0, - Y = 0, - Flags = MouseFlags.Button1Clicked - })); + Application.OnMouseEvent (new () { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked }); Assert.Equal ("", selected); Assert.Equal (-1, lv.SelectedItem); - Application.OnMouseEvent (new (new () + Application.OnMouseEvent (new () { X = 1, Y = 1, Flags = MouseFlags.Button1Clicked - })); + }); Assert.Equal ("One", selected); Assert.Equal (0, lv.SelectedItem); - Application.OnMouseEvent (new (new () + Application.OnMouseEvent (new () { X = 1, Y = 2, Flags = MouseFlags.Button1Clicked - })); + }); Assert.Equal ("Two", selected); Assert.Equal (1, lv.SelectedItem); - Application.OnMouseEvent (new (new () + Application.OnMouseEvent (new () { X = 1, Y = 3, Flags = MouseFlags.Button1Clicked - })); + }); Assert.Equal ("Three", selected); Assert.Equal (2, lv.SelectedItem); - Application.OnMouseEvent (new (new () + Application.OnMouseEvent (new () { X = 1, Y = 4, Flags = MouseFlags.Button1Clicked - })); + }); Assert.Equal ("Three", selected); Assert.Equal (2, lv.SelectedItem); } diff --git a/UnitTests/Views/MenuBarTests.cs b/UnitTests/Views/MenuBarTests.cs index ddd216bd5..99b9dc42e 100644 --- a/UnitTests/Views/MenuBarTests.cs +++ b/UnitTests/Views/MenuBarTests.cs @@ -37,13 +37,13 @@ public class MenuBarTests Assert.True (mi.Checked); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); Assert.True ( - menu._openMenu.OnMouseEvent ( + menu._openMenu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked, View = menu._openMenu } ) ); @@ -57,7 +57,7 @@ public class MenuBarTests Assert.Null (mi.Checked); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -75,7 +75,7 @@ public class MenuBarTests ); Assert.True ( - menu._openMenu.OnMouseEvent ( + menu._openMenu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked, View = menu._openMenu } ) ); @@ -87,13 +87,13 @@ public class MenuBarTests Assert.False (mi.Checked); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); Assert.True ( - menu._openMenu.OnMouseEvent ( + menu._openMenu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Clicked, View = menu._openMenu } ) ); @@ -296,7 +296,7 @@ public class MenuBarTests ); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -317,7 +317,7 @@ public class MenuBarTests Assert.True ( top.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.Button1Clicked, View = top.Subviews [1] } ) ); @@ -338,7 +338,7 @@ public class MenuBarTests Assert.True ( top.Subviews [1] - .OnMouseEvent ( + .NewMouseEvent ( new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.ReportMousePosition, View = top.Subviews [1] } ) ); @@ -516,11 +516,7 @@ public class MenuBarTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 20, Y = 5, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 20, Y = 5, Flags = MouseFlags.Button1Clicked }); firstIteration = false; @@ -553,11 +549,7 @@ public class MenuBarTests { menu.OpenMenu (); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 20, Y = 5 + i, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 20, Y = 5 + i, Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rsDialog, ref firstIteration); @@ -712,11 +704,7 @@ public class MenuBarTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 20, Y = 5, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 20, Y = 5, Flags = MouseFlags.Button1Clicked }); firstIteration = false; @@ -738,11 +726,7 @@ public class MenuBarTests { menu.OpenMenu (); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 20, Y = 5 + i, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 20, Y = 5 + i, Flags = MouseFlags.Button1Clicked }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1473,13 +1457,13 @@ wo top.Add (menu); Application.Begin (top); - Assert.True (menu.OnMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); + Assert.True (menu.NewMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); Assert.True (menu.IsMenuOpen); top.Draw (); TestHelpers.AssertDriverContentsAre (expectedMenu.ExpectedSubMenuOpen (0), _output); - Assert.True (menu.OnMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); + Assert.True (menu.NewMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); Assert.False (menu.IsMenuOpen); top.Draw (); TestHelpers.AssertDriverContentsAre (expectedMenu.ClosedMenuText, _output); @@ -2189,7 +2173,7 @@ wo // open the menu Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -2198,7 +2182,7 @@ wo Assert.Equal ("_New", miCurrent.Title); Assert.True ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.ReportMousePosition, View = mCurrent } ) ); @@ -2207,7 +2191,7 @@ wo Assert.Equal ("_New", miCurrent.Title); Assert.True ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.ReportMousePosition, View = mCurrent } ) ); @@ -2216,7 +2200,7 @@ wo Assert.Equal ("_New", miCurrent.Title); Assert.True ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.ReportMousePosition, View = mCurrent } ) ); @@ -2226,7 +2210,7 @@ wo // close the menu Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -2394,7 +2378,7 @@ Edit // Click on Edit Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 10, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -2404,7 +2388,7 @@ Edit // Click on Paste Assert.True ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 10, Y = 2, Flags = MouseFlags.ReportMousePosition, View = mCurrent } ) ); @@ -2418,7 +2402,7 @@ Edit { // Edit menu is open. Click on the menu at Y = -1, which is outside the menu. Assert.False ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 10, Y = i, Flags = MouseFlags.ReportMousePosition, View = menu } ) ); @@ -2427,7 +2411,7 @@ Edit { // Edit menu is open. Click on the menu at Y = i. Assert.True ( - mCurrent.OnMouseEvent ( + mCurrent.NewMouseEvent ( new MouseEvent { X = 10, Y = i, Flags = MouseFlags.ReportMousePosition, View = mCurrent } ) ); @@ -2590,14 +2574,14 @@ Edit Application.Begin (top); Assert.True (tf.HasFocus); - Assert.True (menu.OnMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); + Assert.True (menu.NewMouseEvent (new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); Assert.True (menu.IsMenuOpen); Assert.False (tf.HasFocus); top.Draw (); TestHelpers.AssertDriverContentsAre (expectedMenu.ExpectedSubMenuOpen (0), _output); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 8, Y = 0, Flags = MouseFlags.ReportMousePosition, View = menu } ) ); @@ -2607,7 +2591,7 @@ Edit TestHelpers.AssertDriverContentsAre (expectedMenu.ExpectedSubMenuOpen (1), _output); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 15, Y = 0, Flags = MouseFlags.ReportMousePosition, View = menu } ) ); @@ -2617,7 +2601,7 @@ Edit TestHelpers.AssertDriverContentsAre (expectedMenu.ExpectedSubMenuOpen (2), _output); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 8, Y = 0, Flags = MouseFlags.ReportMousePosition, View = menu } ) ); @@ -2627,7 +2611,7 @@ Edit TestHelpers.AssertDriverContentsAre (expectedMenu.ClosedMenuText, _output); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.ReportMousePosition, View = menu } ) ); @@ -2636,7 +2620,7 @@ Edit top.Draw (); TestHelpers.AssertDriverContentsAre (expectedMenu.ExpectedSubMenuOpen (0), _output); - Assert.True (menu.OnMouseEvent (new MouseEvent { X = 8, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); + Assert.True (menu.NewMouseEvent (new MouseEvent { X = 8, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu })); Assert.False (menu.IsMenuOpen); Assert.True (tf.HasFocus); top.Draw (); @@ -2969,7 +2953,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 8, 1), pos); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -2988,7 +2972,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 10, 6), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.ReportMousePosition, View = Application.Top.Subviews [1] @@ -3011,7 +2995,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 25, 7), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.ReportMousePosition, View = Application.Top.Subviews [1] @@ -3033,7 +3017,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 10, 6), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 70, Y = 2, Flags = MouseFlags.Button1Clicked, View = Application.Top } ) ); @@ -3279,7 +3263,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 8, 1), pos); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -3298,7 +3282,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 10, 6), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.Button1Clicked, View = Application.Top.Subviews [1] } ) ); @@ -3318,7 +3302,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 15, 7), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.Button1Clicked, View = Application.Top.Subviews [2] } ) ); @@ -3337,7 +3321,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 10, 6), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 70, Y = 2, Flags = MouseFlags.Button1Clicked, View = Application.Top } ) ); @@ -3475,7 +3459,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 8, 1), pos); Assert.True ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 0, Flags = MouseFlags.Button1Pressed, View = menu } ) ); @@ -3492,7 +3476,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 8, 4), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.Button1Clicked, View = Application.Top.Subviews [1] } ) ); @@ -3510,7 +3494,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 13, 5), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.Button1Clicked, View = Application.Top.Subviews [2] } ) ); @@ -3527,7 +3511,7 @@ Edit Assert.Equal (new Rectangle (1, 0, 8, 4), pos); Assert.False ( - menu.OnMouseEvent ( + menu.NewMouseEvent ( new MouseEvent { X = 70, Y = 2, Flags = MouseFlags.Button1Clicked, View = Application.Top } ) ); @@ -3710,7 +3694,7 @@ Edit top.Add (menu, btn); Application.Begin (top); - Application.OnMouseEvent (new (new () { X = 0, Y = 4, Flags = MouseFlags.Button1Clicked })); + Application.OnMouseEvent (new () { X = 0, Y = 4, Flags = MouseFlags.Button1Clicked }); Assert.True (btnClicked); } } diff --git a/UnitTests/Views/OverlappedTests.cs b/UnitTests/Views/OverlappedTests.cs index 87bbebe3e..0e66eb74c 100644 --- a/UnitTests/Views/OverlappedTests.cs +++ b/UnitTests/Views/OverlappedTests.cs @@ -944,11 +944,7 @@ public class OverlappedTests attributes ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 1, Y = 1, Flags = MouseFlags.Button1Pressed }); Assert.Equal (win2.Border, Application.MouseGrabView); Application.RunIteration (ref rsOverlapped, ref firstIteration); @@ -960,17 +956,13 @@ public class OverlappedTests Assert.Equal (win2, Application.Current); Assert.Equal (win1, rsWin1.Toplevel); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 2, - Y = 2, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = 2, + Y = 2, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.RunIteration (ref rsOverlapped, ref firstIteration); diff --git a/UnitTests/Views/ScrollBarViewTests.cs b/UnitTests/Views/ScrollBarViewTests.cs index 7ef271ac8..d3c3e2ab3 100644 --- a/UnitTests/Views/ScrollBarViewTests.cs +++ b/UnitTests/Views/ScrollBarViewTests.cs @@ -1154,11 +1154,7 @@ This is a test ", _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 15, Y = 0, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 15, Y = 0, Flags = MouseFlags.Button1Clicked }); Assert.Null (Application.MouseGrabView); Assert.True (clicked); @@ -1186,11 +1182,7 @@ This is a test ", _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 15, Y = 0, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 15, Y = 0, Flags = MouseFlags.Button1Clicked }); Assert.Null (Application.MouseGrabView); Assert.True (clicked); diff --git a/UnitTests/Views/TabViewTests.cs b/UnitTests/Views/TabViewTests.cs index 200f9638e..e798fda2d 100644 --- a/UnitTests/Views/TabViewTests.cs +++ b/UnitTests/Views/TabViewTests.cs @@ -141,32 +141,26 @@ public class TabViewTests top.Add (tv); Application.Begin (top); - MouseEventEventArgs args; + MouseEvent args; // Waving mouse around does not trigger click for (var i = 0; i < 100; i++) { - args = new MouseEventEventArgs ( - new MouseEvent { X = i, Y = 1, Flags = MouseFlags.ReportMousePosition } - ); + args = new MouseEvent { X = i, Y = 1, Flags = MouseFlags.ReportMousePosition }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); Assert.Equal (tab1, tv.SelectedTab); } - args = new MouseEventEventArgs ( - new MouseEvent { X = 3, Y = 1, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 3, Y = 1, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Equal (tab1, clicked); Assert.Equal (tab1, tv.SelectedTab); // Click to tab2 - args = new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 1, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 6, Y = 1, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Equal (tab2, clicked); @@ -179,9 +173,7 @@ public class TabViewTests e.MouseEvent.Handled = true; }; - args = new MouseEventEventArgs ( - new MouseEvent { X = 3, Y = 1, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 3, Y = 1, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); @@ -189,9 +181,7 @@ public class TabViewTests Assert.Equal (tab1, clicked); Assert.Equal (tab2, tv.SelectedTab); - args = new MouseEventEventArgs ( - new MouseEvent { X = 12, Y = 1, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 12, Y = 1, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); @@ -245,9 +235,7 @@ public class TabViewTests Application.Begin (top); // Click the right arrow - var args = new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 2, Flags = MouseFlags.Button1Clicked } - ); + var args = new MouseEvent { X = 6, Y = 2, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -267,9 +255,7 @@ public class TabViewTests ); // Click the left arrow - args = new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 0, Y = 2, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -339,9 +325,7 @@ public class TabViewTests Application.Begin (top); // Click the right arrow - var args = new MouseEventEventArgs ( - new MouseEvent { X = 7, Y = 3, Flags = MouseFlags.Button1Clicked } - ); + var args = new MouseEvent { X = 7, Y = 3, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); @@ -363,9 +347,7 @@ public class TabViewTests ); // Click the left arrow - args = new MouseEventEventArgs ( - new MouseEvent { X = 1, Y = 3, Flags = MouseFlags.Button1Clicked } - ); + args = new MouseEvent { X = 1, Y = 3, Flags = MouseFlags.Button1Clicked }; Application.OnMouseEvent (args); Application.Refresh (); Assert.Null (clicked); diff --git a/UnitTests/Views/TextFieldTests.cs b/UnitTests/Views/TextFieldTests.cs index 3418de10d..7794837ed 100644 --- a/UnitTests/Views/TextFieldTests.cs +++ b/UnitTests/Views/TextFieldTests.cs @@ -1039,13 +1039,13 @@ public class TextFieldTests var mouseEvent = new MouseEvent { Flags = MouseFlags.Button1Clicked, View = tf }; - Application.OnMouseEvent (new MouseEventEventArgs (mouseEvent)); + Application.OnMouseEvent (mouseEvent); Assert.Equal (1, clickCounter); // Get a fresh instance that represents a right click. // Should be ignored because of SuppressRightClick callback mouseEvent = new MouseEvent { Flags = MouseFlags.Button3Clicked, View = tf }; - Application.OnMouseEvent (new MouseEventEventArgs (mouseEvent)); + Application.OnMouseEvent (mouseEvent); Assert.Equal (1, clickCounter); Application.MouseEvent -= HandleRightClick; @@ -1058,14 +1058,14 @@ public class TextFieldTests // This call causes the context menu to pop, and MouseEvent() returns true. // Thus, the clickCounter is NOT incremented. // Which is correct, because the user did NOT click with the left mouse button. - Application.OnMouseEvent (new MouseEventEventArgs (mouseEvent)); + Application.OnMouseEvent (mouseEvent); Assert.Equal (1, clickCounter); return; - void HandleRightClick (object sender, MouseEventEventArgs arg) + void HandleRightClick (object sender, MouseEvent arg) { - if (arg.MouseEvent.Flags.HasFlag (MouseFlags.Button3Clicked)) + if (arg.Flags.HasFlag (MouseFlags.Button3Clicked)) { arg.Handled = true; } diff --git a/UnitTests/Views/ToplevelTests.cs b/UnitTests/Views/ToplevelTests.cs index 6ae1a33ec..4dfce26ec 100644 --- a/UnitTests/Views/ToplevelTests.cs +++ b/UnitTests/Views/ToplevelTests.cs @@ -274,7 +274,7 @@ public class ToplevelTests Assert.NotNull (top.MenuBar); // Application.Top with a menu and without status bar. - View.GetLocationEnsuringFullVisibility (top, 2, 2, out nx, out ny, out sb); + View.GetLocationEnsuringFullVisibility (top, 2, 2, out nx, out ny, out sb); Assert.Equal (0, nx); Assert.Equal (1, ny); Assert.Null (sb); @@ -383,7 +383,7 @@ public class ToplevelTests //Assert.Null (Toplevel._dragPosition); win.OnMouseEvent (new MouseEvent { X = 6, Y = 0, Flags = MouseFlags.Button1Pressed }); - // Assert.Equal (new Point (6, 0), Toplevel._dragPosition); + // Assert.Equal (new Point (6, 0), Toplevel._dragPosition); win.OnMouseEvent (new MouseEvent { X = 6, Y = 0, Flags = MouseFlags.Button1Released }); //Assert.Null (Toplevel._dragPosition); win.CanFocus = false; @@ -893,11 +893,7 @@ public class ToplevelTests Assert.Null (Application.MouseGrabView); // Grab the mouse - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 3, Y = 2, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new () { X = 3, Y = 2, Flags = MouseFlags.Button1Pressed }); Assert.Equal (Application.Current.Border, Application.MouseGrabView); Assert.Equal (new Rectangle (2, 2, 10, 3), Application.Current.Frame); @@ -907,17 +903,13 @@ public class ToplevelTests Assert.Equal (Application.Current.Border, Application.MouseGrabView); // Drag to left - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 2, - Y = 2, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new () + { + X = 2, + Y = 2, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (Application.Current.Border, Application.MouseGrabView); @@ -946,17 +938,13 @@ public class ToplevelTests Assert.Equal (Application.Current.Border, Application.MouseGrabView); // Drag up - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 2, - Y = 1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new () + { + X = 2, + Y = 1, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (Application.Current.Border, Application.MouseGrabView); @@ -986,11 +974,7 @@ public class ToplevelTests Assert.Equal (Application.Current.Border, Application.MouseGrabView); // Ungrab the mouse - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 2, Y = 1, Flags = MouseFlags.Button1Released } - ) - ); + Application.OnMouseEvent (new () { X = 2, Y = 1, Flags = MouseFlags.Button1Released }); Application.Refresh (); Assert.Null (Application.MouseGrabView); @@ -1038,15 +1022,11 @@ public class ToplevelTests Assert.Null (Application.MouseGrabView); // Grab the mouse - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = win.Frame.X, Y = win.Frame.Y, - Flags = MouseFlags.Button1Pressed - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = win.Frame.X, Y = win.Frame.Y, + Flags = MouseFlags.Button1Pressed + }); Assert.Equal (win.Border, Application.MouseGrabView); } @@ -1058,17 +1038,13 @@ public class ToplevelTests movex = 1; movey = 0; - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = win.Frame.X + movex, - Y = win.Frame.Y + movey, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = win.Frame.X + movex, + Y = win.Frame.Y + movey, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Assert.Equal (win.Border, Application.MouseGrabView); } @@ -1087,17 +1063,13 @@ public class ToplevelTests movex = 0; movey = -1; - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = win.Frame.X + movex, - Y = win.Frame.Y + movey, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = win.Frame.X + movex, + Y = win.Frame.Y + movey, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Assert.Equal (win.Border, Application.MouseGrabView); } @@ -1116,15 +1088,11 @@ public class ToplevelTests movex = 0; movey = 0; - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = win.Frame.X + movex, Y = win.Frame.Y + movey, - Flags = MouseFlags.Button1Released - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = win.Frame.X + movex, Y = win.Frame.Y + movey, + Flags = MouseFlags.Button1Released + }); Assert.Null (Application.MouseGrabView); } @@ -1427,25 +1395,11 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 6, Y = 6, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 6, Y = 6, Flags = MouseFlags.Button1Pressed }); Assert.Equal (win.Border, Application.MouseGrabView); Assert.Equal (new (3, 3, 194, 94), win.Frame); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 9, - Y = 9, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 9, Y = 9, Flags = MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition }); Assert.Equal (win.Border, Application.MouseGrabView); top.SetNeedsLayout (); top.LayoutSubviews (); @@ -1473,17 +1427,13 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 5, - Y = 5, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = 5, + Y = 5, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Assert.Equal (win.Border, Application.MouseGrabView); top.SetNeedsLayout (); top.LayoutSubviews (); @@ -1511,19 +1461,11 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 5, Y = 5, Flags = MouseFlags.Button1Released } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 5, Y = 5, Flags = MouseFlags.Button1Released }); // ScrollView always grab the mouse when the container's subview OnMouseEnter don't want grab the mouse Assert.Equal (scrollView, Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 4, Y = 4, Flags = MouseFlags.ReportMousePosition } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 4, Y = 4, Flags = MouseFlags.ReportMousePosition }); Assert.Equal (scrollView, Application.MouseGrabView); } @@ -1551,25 +1493,17 @@ public class ToplevelTests Assert.Null (Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed }); Assert.Equal (window.Border, Application.MouseGrabView); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = -11, - Y = -4, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = -11, + Y = -4, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (new Rectangle (0, 0, 40, 10), top.Frame); @@ -1587,17 +1521,13 @@ public class ToplevelTests // Changes Top size to same size as Dialog more menu and scroll bar ((FakeDriver)Application.Driver).SetBufferSize (20, 3); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = -1, - Y = -1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = -1, + Y = -1, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (new Rectangle (0, 0, 20, 3), top.Frame); @@ -1615,17 +1545,13 @@ public class ToplevelTests // Changes Top size smaller than Dialog size ((FakeDriver)Application.Driver).SetBufferSize (19, 2); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = -1, - Y = -1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = -1, + Y = -1, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame); @@ -1639,17 +1565,13 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 18, - Y = 1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = 18, + Y = 1, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame); @@ -1662,17 +1584,13 @@ public class ToplevelTests ); // On a real app we can't go beyond the SuperView bounds - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 19, - Y = 2, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = 19, + Y = 2, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); Application.Refresh (); Assert.Equal (new Rectangle (0, 0, 19, 2), top.Frame); @@ -1717,11 +1635,7 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed } - ) - ); + Application.OnMouseEvent (new MouseEvent { X = 0, Y = 0, Flags = MouseFlags.Button1Pressed }); var firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1737,17 +1651,13 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent - { - X = 1, - Y = 1, - Flags = MouseFlags.Button1Pressed - | MouseFlags.ReportMousePosition - } - ) - ); + Application.OnMouseEvent (new MouseEvent + { + X = 1, + Y = 1, + Flags = MouseFlags.Button1Pressed + | MouseFlags.ReportMousePosition + }); firstIteration = false; Application.RunIteration (ref rs, ref firstIteration); @@ -1868,11 +1778,7 @@ public class ToplevelTests @$" ┌──────────────────┐ │ ┌─────────────┐ │ -│ │{ - CM.Glyphs.LeftBracket -} Popup { - CM.Glyphs.RightBracket -} │ │ +│ │{CM.Glyphs.LeftBracket} Popup {CM.Glyphs.RightBracket} │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1893,11 +1799,7 @@ public class ToplevelTests _output ); - Application.OnMouseEvent ( - new MouseEventEventArgs ( - new MouseEvent { X = 5, Y = 2, Flags = MouseFlags.Button1Clicked } - ) - ); + Application.OnMouseEvent (new () { X = 5, Y = 2, Flags = MouseFlags.Button1Clicked }); Application.Top.Draw (); var firstIteration = false; @@ -1907,11 +1809,7 @@ public class ToplevelTests @$" ┌──────────────────┐ │ ┌─────────────┐ │ -│ │{ - CM.Glyphs.LeftBracket -} Popup { - CM.Glyphs.RightBracket -} │ │ +│ │{CM.Glyphs.LeftBracket} Popup {CM.Glyphs.RightBracket} │ │ │┌────────────────┐│ ││viewAddedToTop ││ ││ ││ diff --git a/UnitTests/Views/TreeTableSourceTests.cs b/UnitTests/Views/TreeTableSourceTests.cs index b6708f1b3..f8db3a53c 100644 --- a/UnitTests/Views/TreeTableSourceTests.cs +++ b/UnitTests/Views/TreeTableSourceTests.cs @@ -108,7 +108,7 @@ public class TreeTableSourceTests : IDisposable Assert.Equal (0, tv.SelectedRow); Assert.Equal (0, tv.SelectedColumn); - Assert.True (tv.OnMouseEvent (new MouseEvent { X = 2, Y = 2, Flags = MouseFlags.Button1Clicked })); + Assert.True (tv.NewMouseEvent (new MouseEvent { X = 2, Y = 2, Flags = MouseFlags.Button1Clicked })); tv.Draw (); @@ -125,15 +125,15 @@ public class TreeTableSourceTests : IDisposable TestHelpers.AssertDriverContentsAre (expected, _output); // Clicking to the right/left of the expand/collapse does nothing - tv.OnMouseEvent (new MouseEvent { X = 3, Y = 2, Flags = MouseFlags.Button1Clicked }); + tv.NewMouseEvent (new MouseEvent { X = 3, Y = 2, Flags = MouseFlags.Button1Clicked }); tv.Draw (); TestHelpers.AssertDriverContentsAre (expected, _output); - tv.OnMouseEvent (new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.Button1Clicked }); + tv.NewMouseEvent (new MouseEvent { X = 1, Y = 2, Flags = MouseFlags.Button1Clicked }); tv.Draw (); TestHelpers.AssertDriverContentsAre (expected, _output); // Clicking on the + again should collapse - tv.OnMouseEvent (new MouseEvent { X = 2, Y = 2, Flags = MouseFlags.Button1Clicked }); + tv.NewMouseEvent (new MouseEvent { X = 2, Y = 2, Flags = MouseFlags.Button1Clicked }); tv.Draw (); expected =