mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-01-01 16:59:35 +01:00
* Fixes #1739. Setting menu UseKeysUpDownAsKeysLeftRight property as false by default. * Fixed some more bugs and added support for UseKeysUpDownAsKeysLeftRight on the demo file.
This commit is contained in:
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user