CoreMenu.cs 921 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. namespace InABox.Core
  4. {
  5. public class CoreMenu<T> where T : class
  6. {
  7. public List<ICoreMenuItem> Items { get; } = new List<ICoreMenuItem>();
  8. public CoreMenu<T> AddItem(string header, T? image, Action action)
  9. {
  10. var result = new CoreMenuItem<T>(header, image, action);
  11. Items.Add(result);
  12. return this;
  13. }
  14. public CoreMenu<T> AddItem(string header, Action action)
  15. {
  16. var result = new CoreMenuItem<T>(header, null, action);
  17. Items.Add(result);
  18. return this;
  19. }
  20. public CoreMenu<T> AddSeparator()
  21. {
  22. Items.Add(new CoreMenuSeparator());
  23. return this;
  24. }
  25. public CoreMenu<T> AddHeader(CoreMenuHeader<T> header)
  26. {
  27. Items.Add(header);
  28. return this;
  29. }
  30. }
  31. }