|
@@ -177,6 +177,88 @@ Edit
|
|
|
void Copy () => miAction = "Copy";
|
|
|
}
|
|
|
|
|
|
+ [Fact, AutoInitShutdown]
|
|
|
+ public void MenuOpened_On_Disabled_MenuItem ()
|
|
|
+ {
|
|
|
+ MenuItem miCurrent = null;
|
|
|
+ Menu mCurrent = null;
|
|
|
+
|
|
|
+ var menu = new MenuBar (new MenuBarItem [] {
|
|
|
+ new MenuBarItem ("_File", new MenuItem [] {
|
|
|
+ new MenuBarItem ("_New", new MenuItem [] {
|
|
|
+ new MenuItem ("_New doc", "Creates new doc.", null, () => false)
|
|
|
+ }),
|
|
|
+ new MenuItem ("_Save", "Saves the file.", null, null)
|
|
|
+ })
|
|
|
+ });
|
|
|
+ menu.MenuOpened += (e) => {
|
|
|
+ miCurrent = e;
|
|
|
+ mCurrent = menu.openMenu;
|
|
|
+ };
|
|
|
+ menu.UseKeysUpDownAsKeysLeftRight = true;
|
|
|
+ Application.Top.Add (menu);
|
|
|
+
|
|
|
+ // open the menu
|
|
|
+ Assert.True (menu.MouseEvent (new MouseEvent () {
|
|
|
+ X = 1,
|
|
|
+ Y = 0,
|
|
|
+ Flags = MouseFlags.Button1Pressed,
|
|
|
+ View = menu
|
|
|
+ }));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_File", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_New", miCurrent.Title);
|
|
|
+
|
|
|
+ Assert.True (mCurrent.MouseEvent (new MouseEvent () {
|
|
|
+ X = 1,
|
|
|
+ Y = 1,
|
|
|
+ Flags = MouseFlags.ReportMousePosition,
|
|
|
+ View = mCurrent
|
|
|
+ }));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_File", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_New", miCurrent.Title);
|
|
|
+
|
|
|
+ Assert.True (mCurrent.MouseEvent (new MouseEvent () {
|
|
|
+ X = 1,
|
|
|
+ Y = 2,
|
|
|
+ Flags = MouseFlags.ReportMousePosition,
|
|
|
+ View = mCurrent
|
|
|
+ }));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_File", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_Save", miCurrent.Title);
|
|
|
+
|
|
|
+ // close the menu
|
|
|
+ Assert.True (menu.MouseEvent (new MouseEvent () {
|
|
|
+ X = 1,
|
|
|
+ Y = 0,
|
|
|
+ Flags = MouseFlags.Button1Pressed,
|
|
|
+ View = menu
|
|
|
+ }));
|
|
|
+ Assert.False (menu.IsMenuOpen);
|
|
|
+
|
|
|
+ // open the menu
|
|
|
+ Assert.True (menu.ProcessHotKey (new KeyEvent (Key.F9, new KeyModifiers ())));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_New", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_New doc", miCurrent.Title);
|
|
|
+
|
|
|
+ Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_File", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_Save", miCurrent.Title);
|
|
|
+
|
|
|
+ Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())));
|
|
|
+ Assert.True (menu.IsMenuOpen);
|
|
|
+ Assert.Equal ("_File", miCurrent.Parent.Title);
|
|
|
+ Assert.Equal ("_New", miCurrent.Title);
|
|
|
+
|
|
|
+ // close the menu
|
|
|
+ Assert.True (menu.ProcessHotKey (new KeyEvent (Key.F9, new KeyModifiers ())));
|
|
|
+ Assert.False (menu.IsMenuOpen);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
[AutoInitShutdown]
|
|
|
public void MouseEvent_Test ()
|
|
@@ -293,6 +375,7 @@ Edit
|
|
|
miCurrent = null;
|
|
|
mCurrent = null;
|
|
|
};
|
|
|
+ menu.UseKeysUpDownAsKeysLeftRight = true;
|
|
|
Application.Top.Add (menu);
|
|
|
Application.Begin (Application.Top);
|
|
|
|
|
@@ -304,7 +387,7 @@ Edit
|
|
|
Assert.True (menu.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())));
|
|
|
Assert.True (menu.IsMenuOpen);
|
|
|
Assert.Equal ("_About", GetCurrentMenuBarItemTitle ());
|
|
|
- Assert.Equal ("None", GetCurrentMenuTitle ());
|
|
|
+ Assert.Equal ("_About", GetCurrentMenuTitle ());
|
|
|
|
|
|
Assert.True (menu.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())));
|
|
|
Assert.True (menu.IsMenuOpen);
|
|
@@ -363,7 +446,7 @@ Edit
|
|
|
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())));
|
|
|
Assert.True (menu.IsMenuOpen);
|
|
|
Assert.Equal ("_About", GetCurrentMenuBarItemTitle ());
|
|
|
- Assert.Equal ("None", GetCurrentMenuTitle ());
|
|
|
+ Assert.Equal ("_About", GetCurrentMenuTitle ());
|
|
|
|
|
|
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())));
|
|
|
Assert.True (menu.IsMenuOpen);
|
|
@@ -393,7 +476,7 @@ Edit
|
|
|
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())));
|
|
|
Assert.True (menu.IsMenuOpen);
|
|
|
Assert.Equal ("_About", GetCurrentMenuBarItemTitle ());
|
|
|
- Assert.Equal ("None", GetCurrentMenuTitle ());
|
|
|
+ Assert.Equal ("_About", GetCurrentMenuTitle ());
|
|
|
Assert.True (mCurrent.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ())));
|
|
|
Assert.False (menu.IsMenuOpen);
|
|
|
Assert.Equal ("Closed", GetCurrentMenuBarItemTitle ());
|
|
@@ -603,7 +686,7 @@ Edit
|
|
|
new MenuItem ("Three", "", null),
|
|
|
})
|
|
|
});
|
|
|
-
|
|
|
+ menu.UseKeysUpDownAsKeysLeftRight = true;
|
|
|
Application.Top.Add (menu);
|
|
|
|
|
|
Assert.Equal (Point.Empty, new Point (menu.Frame.X, menu.Frame.Y));
|