1
0

CommandMenu.swift 952 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /// A command menu.
  2. public struct CommandMenu {
  3. /// The menu's name.
  4. var name: String
  5. /// The menu's contents.
  6. var content: [MenuItem]
  7. /// Creates a command menu.
  8. ///
  9. /// - Parameters:
  10. /// - name: The menu's name.
  11. /// - content: The menu's contents.
  12. @MainActor
  13. public init(_ name: String, @ViewBuilder content: () -> some View) {
  14. self.name = name
  15. self.content = content()._asMenuItems
  16. }
  17. /// Creates a command menu.
  18. ///
  19. /// - Parameters:
  20. /// - name: The menu's name.
  21. /// - content: The menu's contents.
  22. init(name: String, content: [MenuItem]) {
  23. self.name = name
  24. self.content = content
  25. }
  26. /// Resolves the menu to a representation used by backends.
  27. @MainActor
  28. func resolve() -> ResolvedMenu.Submenu {
  29. ResolvedMenu.Submenu(
  30. label: name,
  31. content: Menu.resolve(items: content)
  32. )
  33. }
  34. }