36 lines
960 B
Swift
36 lines
960 B
Swift
//
|
|
// Submenu.swift
|
|
// Adwaita
|
|
//
|
|
// Created by david-swift on 22.10.23.
|
|
//
|
|
|
|
import Libadwaita
|
|
|
|
/// A section for menus.
|
|
public struct MenuSection: MenuItem {
|
|
|
|
/// The content of the section.
|
|
var sectionContent: MenuContent
|
|
|
|
/// Initialize a section for menus.
|
|
/// - Parameter content: The content of the section.
|
|
public init(@MenuBuilder content: () -> MenuContent) {
|
|
self.sectionContent = content()
|
|
}
|
|
|
|
/// Add the section 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 section = Libadwaita.Menu()
|
|
_ = menu.append("", section: section)
|
|
for element in sectionContent {
|
|
element.addMenuItems(menu: section, app: app, window: window)
|
|
}
|
|
}
|
|
|
|
}
|