mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Merge pull request #526 from KDERazorback/menubaritem_refactor
Removed redundant properties on MenuBar View
This commit is contained in:
@@ -190,7 +190,7 @@ static class Demo {
|
||||
new DateField (3, 22, DateTime.Now),
|
||||
new DateField (23, 22, DateTime.Now, true),
|
||||
progress,
|
||||
new Label (3, 24, "Press F9 (on Unix, ESC+9 is an alias) to activate the menubar"),
|
||||
new Label (3, 24, "Press F9 (on Unix, ESC+9 is an alias) or Ctrl+T to activate the menubar"),
|
||||
menuKeysStyle,
|
||||
menuAutoMouseNav
|
||||
|
||||
@@ -636,10 +636,23 @@ static class Demo {
|
||||
};
|
||||
#endif
|
||||
|
||||
win.KeyPress += Win_KeyPress;
|
||||
|
||||
|
||||
top.Add (win);
|
||||
//top.Add (menu);
|
||||
top.Add (menu, statusBar);
|
||||
Application.Run ();
|
||||
}
|
||||
|
||||
private static void Win_KeyPress (object sender, View.KeyEventEventArgs e)
|
||||
{
|
||||
if (e.KeyEvent.Key == Key.ControlT) {
|
||||
if (menu.IsMenuOpen)
|
||||
menu.CloseMenu ();
|
||||
else
|
||||
menu.OpenMenu ();
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1087,6 +1087,11 @@ namespace Terminal.Gui {
|
||||
/// The <see cref="KeyEvent"/> for the event.
|
||||
/// </summary>
|
||||
public KeyEvent KeyEvent { get; set; }
|
||||
/// <summary>
|
||||
/// Indicates if the current Key event has already been processed and the driver should stop notifying any other event subscriber.
|
||||
/// Its important to set this value to true specially when updating any View's layout from inside the subscriber method.
|
||||
/// </summary>
|
||||
public bool Handled { get; set; } = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1097,7 +1102,11 @@ namespace Terminal.Gui {
|
||||
/// <inheritdoc cref="ProcessKey"/>
|
||||
public override bool ProcessKey (KeyEvent keyEvent)
|
||||
{
|
||||
KeyPress?.Invoke (this, new KeyEventEventArgs(keyEvent));
|
||||
|
||||
KeyEventEventArgs args = new KeyEventEventArgs (keyEvent);
|
||||
KeyPress?.Invoke (this, args);
|
||||
if (args.Handled)
|
||||
return true;
|
||||
if (Focused?.ProcessKey (keyEvent) == true)
|
||||
return true;
|
||||
|
||||
@@ -1107,7 +1116,10 @@ namespace Terminal.Gui {
|
||||
/// <inheritdoc cref="ProcessHotKey"/>
|
||||
public override bool ProcessHotKey (KeyEvent keyEvent)
|
||||
{
|
||||
KeyPress?.Invoke (this, new KeyEventEventArgs (keyEvent));
|
||||
KeyEventEventArgs args = new KeyEventEventArgs (keyEvent);
|
||||
KeyPress?.Invoke (this, args);
|
||||
if (args.Handled)
|
||||
return true;
|
||||
if (subviews == null || subviews.Count == 0)
|
||||
return false;
|
||||
foreach (var view in subviews)
|
||||
@@ -1119,7 +1131,10 @@ namespace Terminal.Gui {
|
||||
/// <inheritdoc cref="ProcessColdKey"/>
|
||||
public override bool ProcessColdKey (KeyEvent keyEvent)
|
||||
{
|
||||
KeyPress?.Invoke (this, new KeyEventEventArgs(keyEvent));
|
||||
KeyEventEventArgs args = new KeyEventEventArgs (keyEvent);
|
||||
KeyPress?.Invoke (this, args);
|
||||
if (args.Handled)
|
||||
return true;
|
||||
if (subviews == null || subviews.Count == 0)
|
||||
return false;
|
||||
foreach (var view in subviews)
|
||||
@@ -1136,7 +1151,10 @@ namespace Terminal.Gui {
|
||||
/// <param name="keyEvent">Contains the details about the key that produced the event.</param>
|
||||
public override bool OnKeyDown (KeyEvent keyEvent)
|
||||
{
|
||||
KeyDown?.Invoke (this, new KeyEventEventArgs (keyEvent));
|
||||
KeyEventEventArgs args = new KeyEventEventArgs (keyEvent);
|
||||
KeyDown?.Invoke (this, args);
|
||||
if (args.Handled)
|
||||
return true;
|
||||
if (subviews == null || subviews.Count == 0)
|
||||
return false;
|
||||
foreach (var view in subviews)
|
||||
@@ -1154,7 +1172,10 @@ namespace Terminal.Gui {
|
||||
/// <param name="keyEvent">Contains the details about the key that produced the event.</param>
|
||||
public override bool OnKeyUp (KeyEvent keyEvent)
|
||||
{
|
||||
KeyUp?.Invoke (this, new KeyEventEventArgs (keyEvent));
|
||||
KeyEventEventArgs args = new KeyEventEventArgs (keyEvent);
|
||||
KeyUp?.Invoke (this, args);
|
||||
if (args.Handled)
|
||||
return true;
|
||||
if (subviews == null || subviews.Count == 0)
|
||||
return false;
|
||||
foreach (var view in subviews)
|
||||
|
||||
@@ -784,7 +784,7 @@ namespace Terminal.Gui {
|
||||
/// <summary>
|
||||
/// Closes the current Menu programatically, if open.
|
||||
/// </summary>
|
||||
public void CloseMenu()
|
||||
public void CloseMenu ()
|
||||
{
|
||||
CloseMenu (false, false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user