41 lines
1.1 KiB
Swift

//
// Submenu.swift
// Adwaita
//
// Created by david-swift on 22.10.23.
//
import Libadwaita
/// A submenu widget.
public struct Submenu: MenuItem {
/// The submenu's label.
var label: String
/// The content of the submenu.
var submenuContent: MenuContent
/// Initialize a submenu.
/// - Parameters:
/// - label: The submenu's label.
/// - content: The content of the submenu.
public init(_ label: String, @MenuBuilder content: () -> MenuContent) {
self.label = label
self.submenuContent = content()
}
/// Add the submenu to a menu.
/// - Parameters:
/// - menu: The menu.
/// - app: The application containing the menu.
/// - window: The application window containing the menu.
public func addMenuItem(menu: Libadwaita.Menu, app: GTUIApp, window: GTUIApplicationWindow?) {
let submenu = Libadwaita.Menu()
_ = menu.append(label, submenu: submenu)
for element in submenuContent {
element.addMenuItems(menu: submenu, app: app, window: window)
}
}
}