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
This commit is contained in:
Tig
2024-04-04 18:50:13 -04:00
parent dd8fe76cab
commit c5b7b084a9
41 changed files with 810 additions and 732 deletions

View File

@@ -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);