MenuEventArgs.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. namespace Terminal.Gui;
  2. /// <summary>
  3. /// An <see cref="EventArgs"/> which allows passing a cancelable menu opening event or replacing with a new
  4. /// <see cref="MenuBarItem"/>.
  5. /// </summary>
  6. public class MenuOpeningEventArgs : EventArgs
  7. {
  8. /// <summary>Initializes a new instance of <see cref="MenuOpeningEventArgs"/>.</summary>
  9. /// <param name="currentMenu">The current <see cref="MenuBarItem"/> parent.</param>
  10. public MenuOpeningEventArgs (MenuBarItem currentMenu) { CurrentMenu = currentMenu; }
  11. /// <summary>
  12. /// Flag that allows the cancellation of the event. If set to <see langword="true"/> in the event handler, the
  13. /// event will be canceled.
  14. /// </summary>
  15. public bool Cancel { get; set; }
  16. /// <summary>The current <see cref="MenuBarItem"/> parent.</summary>
  17. public MenuBarItem CurrentMenu { get; }
  18. /// <summary>The new <see cref="MenuBarItem"/> to be replaced.</summary>
  19. public MenuBarItem NewMenuBarItem { get; set; }
  20. }
  21. /// <summary>Defines arguments for the <see cref="MenuBar.MenuOpened"/> event</summary>
  22. public class MenuOpenedEventArgs : EventArgs
  23. {
  24. /// <summary>Creates a new instance of the <see cref="MenuOpenedEventArgs"/> class</summary>
  25. /// <param name="parent"></param>
  26. /// <param name="menuItem"></param>
  27. public MenuOpenedEventArgs (MenuBarItem parent, MenuItem menuItem)
  28. {
  29. Parent = parent;
  30. MenuItem = menuItem;
  31. }
  32. /// <summary>Gets the <see cref="MenuItem"/> being opened.</summary>
  33. public MenuItem MenuItem { get; }
  34. /// <summary>The parent of <see cref="MenuItem"/>. Will be null if menu opening is the root.</summary>
  35. public MenuBarItem Parent { get; }
  36. }
  37. /// <summary>An <see cref="EventArgs"/> which allows passing a cancelable menu closing event.</summary>
  38. public class MenuClosingEventArgs : EventArgs
  39. {
  40. /// <summary>Initializes a new instance of <see cref="MenuClosingEventArgs"/>.</summary>
  41. /// <param name="currentMenu">The current <see cref="MenuBarItem"/> parent.</param>
  42. /// <param name="reopen">Whether the current menu will reopen.</param>
  43. /// <param name="isSubMenu">Indicates whether it is a sub-menu.</param>
  44. public MenuClosingEventArgs (MenuBarItem currentMenu, bool reopen, bool isSubMenu)
  45. {
  46. CurrentMenu = currentMenu;
  47. Reopen = reopen;
  48. IsSubMenu = isSubMenu;
  49. }
  50. /// <summary>
  51. /// Flag that allows the cancellation of the event. If set to <see langword="true"/> in the event handler, the
  52. /// event will be canceled.
  53. /// </summary>
  54. public bool Cancel { get; set; }
  55. /// <summary>The current <see cref="MenuBarItem"/> parent.</summary>
  56. public MenuBarItem CurrentMenu { get; }
  57. /// <summary>Indicates whether the current menu is a sub-menu.</summary>
  58. public bool IsSubMenu { get; }
  59. /// <summary>Indicates whether the current menu will reopen.</summary>
  60. public bool Reopen { get; }
  61. }