diff --git a/Sources/Adwaita/Menu/MenuButton.swift b/Sources/Adwaita/Menu/MenuButton.swift index e697e7b..be22526 100644 --- a/Sources/Adwaita/Menu/MenuButton.swift +++ b/Sources/Adwaita/Menu/MenuButton.swift @@ -39,24 +39,23 @@ public struct MenuButton: MenuWidget { /// - type: The type of the views. /// - Returns: The view storage. public func container( - modifiers: [(any AnyView) -> any AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(nil) - let getItem: (AdwaitaApp, AdwaitaWindow?) -> OpaquePointer? = { app, window in - var label = filteredLabel - storage.fields["app"] = app - if let window, preferApplicationWindow { - app.addKeyboardShortcut(shortcut, id: filteredLabel, window: window, handler: handler) - label = "win." + label - storage.fields["window"] = window - } else { - app.addKeyboardShortcut(shortcut, id: filteredLabel, handler: handler) - label = "app." + label - } - return g_menu_item_new(self.label, label) + var label = filteredLabel + guard let app = data.appStorage as? AdwaitaApp else { + return .init(nil) } - storage.pointer = getItem + if let window = data.sceneStorage.pointer as? AdwaitaWindow, preferApplicationWindow { + app.addKeyboardShortcut(shortcut, id: filteredLabel, window: window, handler: handler) + label = "win." + label + } else { + app.addKeyboardShortcut(shortcut, id: filteredLabel, handler: handler) + label = "app." + label + } + let pointer = g_menu_item_new(self.label, label) + storage.pointer = pointer return storage } @@ -68,14 +67,14 @@ public struct MenuButton: MenuWidget { /// - type: The type of the views. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { - guard let app = storage.fields["app"] as? AdwaitaApp else { + guard let app = data.appStorage as? AdwaitaApp else { return } - if let window = storage.fields["window"] as? AdwaitaWindow, preferApplicationWindow { + if let window = data.sceneStorage.pointer as? AdwaitaWindow, preferApplicationWindow { app.addKeyboardShortcut(shortcut, id: filteredLabel, window: window, handler: handler) } else { app.addKeyboardShortcut(shortcut, id: filteredLabel, handler: handler) diff --git a/Sources/Adwaita/Menu/MenuCollection.swift b/Sources/Adwaita/Menu/MenuCollection.swift index 23079a3..a0c4230 100644 --- a/Sources/Adwaita/Menu/MenuCollection.swift +++ b/Sources/Adwaita/Menu/MenuCollection.swift @@ -26,10 +26,10 @@ public struct MenuCollection: MenuWidget, Wrapper { /// - type: The type of the views. /// - Returns: The view storage. public func container( - modifiers: [(any AnyView) -> any AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { - let storages = content.storages(modifiers: modifiers, type: type) + let storages = content.storages(data: data, type: type) return .init(nil, content: [.mainContent: storages]) } @@ -41,25 +41,25 @@ public struct MenuCollection: MenuWidget, Wrapper { /// - type: The type of the views. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { guard let storages = storage.content[.mainContent] else { return } - content.update(storages, modifiers: modifiers, updateProperties: updateProperties, type: type) + content.update(storages, data: data, updateProperties: updateProperties, type: type) } /// Render the collection as a menu. - /// - Parameters: - /// - app: The app object. - /// - window: The window object. + /// - Parameter data: The widget data. /// - Returns: The view storage with the GMenu as the pointer. - public func getMenu(app: AdwaitaApp, window: AdwaitaWindow?) -> ViewStorage { + public func getMenu(data: WidgetData) -> ViewStorage { let menu = g_menu_new() - let storage = container(modifiers: [], type: MenuContext.self) - initializeMenu(menu: menu, storage: storage, app: app, window: window) + let storage = container(data: data.noModifiers, type: MenuContext.self) + if let app = data.appStorage as? AdwaitaApp, let window = data.sceneStorage.pointer as? AdwaitaWindow { + initializeMenu(menu: menu, storage: storage, app: app, window: window) + } storage.pointer = menu return storage } @@ -71,14 +71,13 @@ public struct MenuCollection: MenuWidget, Wrapper { /// - app: The app object. /// - window: The window object. func initializeMenu(menu: OpaquePointer?, storage: ViewStorage, app: AdwaitaApp, window: AdwaitaWindow?) { - if storage.pointer == nil { + if let item = storage.opaquePointer { + g_menu_append_item(menu, item) + storage.pointer = item + } else { for element in storage.content[.mainContent] ?? [] { initializeMenu(menu: menu, storage: element, app: app, window: window) } - } else if let item = (storage.pointer as? (AdwaitaApp, AdwaitaWindow?) -> OpaquePointer?) { - let item = item(app, window) - g_menu_append_item(menu, item) - storage.pointer = item } } diff --git a/Sources/Adwaita/Menu/MenuSection.swift b/Sources/Adwaita/Menu/MenuSection.swift index 4cf19dc..9e0345b 100644 --- a/Sources/Adwaita/Menu/MenuSection.swift +++ b/Sources/Adwaita/Menu/MenuSection.swift @@ -25,16 +25,14 @@ public struct MenuSection: MenuWidget { /// - type: The type of the views. /// - Returns: The view storage. public func container( - modifiers: [(any AnyView) -> any AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(nil) - let getItem: (AdwaitaApp, AdwaitaWindow?) -> OpaquePointer? = { app, window in - let childStorage = MenuCollection { sectionContent }.getMenu(app: app, window: window) - storage.content[.mainContent] = [childStorage] - return g_menu_item_new_section(nil, childStorage.opaquePointer?.cast()) - } - storage.pointer = getItem + let childStorage = MenuCollection { sectionContent }.getMenu(data: data) + storage.content[.mainContent] = [childStorage] + let pointer = g_menu_item_new_section(nil, childStorage.opaquePointer?.cast()) + storage.pointer = pointer return storage } @@ -46,7 +44,7 @@ public struct MenuSection: MenuWidget { /// - type: The type of the views. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { @@ -54,7 +52,7 @@ public struct MenuSection: MenuWidget { return } MenuCollection { sectionContent } - .updateStorage(content, modifiers: [], updateProperties: updateProperties, type: MenuContext.self) + .updateStorage(content, data: data, updateProperties: updateProperties, type: MenuContext.self) } } diff --git a/Sources/Adwaita/Menu/Submenu.swift b/Sources/Adwaita/Menu/Submenu.swift index 2cae642..254edd1 100644 --- a/Sources/Adwaita/Menu/Submenu.swift +++ b/Sources/Adwaita/Menu/Submenu.swift @@ -30,16 +30,14 @@ public struct Submenu: MenuWidget { /// - type: The type of the views. /// - Returns: The view storage. public func container( - modifiers: [(any AnyView) -> any AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(nil) - let getItem: (AdwaitaApp, AdwaitaWindow?) -> OpaquePointer? = { app, window in - let childStorage = MenuCollection { content }.getMenu(app: app, window: window) - storage.content[.mainContent] = [childStorage] - return g_menu_item_new_submenu(label, childStorage.opaquePointer?.cast()) - } - storage.pointer = getItem + let childStorage = MenuCollection { content }.getMenu(data: data) + storage.content[.mainContent] = [childStorage] + let pointer = g_menu_item_new_submenu(label, childStorage.opaquePointer?.cast()) + storage.pointer = pointer return storage } @@ -51,7 +49,7 @@ public struct Submenu: MenuWidget { /// - type: The type of the views. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { @@ -59,7 +57,7 @@ public struct Submenu: MenuWidget { return } MenuCollection { self.content } - .updateStorage(content, modifiers: [], updateProperties: updateProperties, type: MenuContext.self) + .updateStorage(content, data: data, updateProperties: updateProperties, type: MenuContext.self) } } diff --git a/Sources/Adwaita/View/Dialogs/AboutDialog.swift b/Sources/Adwaita/View/Dialogs/AboutDialog.swift index 533b722..0fbc644 100644 --- a/Sources/Adwaita/View/Dialogs/AboutDialog.swift +++ b/Sources/Adwaita/View/Dialogs/AboutDialog.swift @@ -37,9 +37,9 @@ struct AboutDialog: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { - let storage = child.storage(modifiers: modifiers, type: type) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { + let storage = child.storage(data: data, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -51,11 +51,11 @@ struct AboutDialog: AdwaitaWidget { /// - type: The type of the app storage. func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { - child.updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + child.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) guard updateProperties, (storage.previousState as? Self)?.visible != visible else { return } diff --git a/Sources/Adwaita/View/Dialogs/AlertDialog.swift b/Sources/Adwaita/View/Dialogs/AlertDialog.swift index 902ab4f..593372d 100644 --- a/Sources/Adwaita/View/Dialogs/AlertDialog.swift +++ b/Sources/Adwaita/View/Dialogs/AlertDialog.swift @@ -77,11 +77,11 @@ public struct AlertDialog: AdwaitaWidget { /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { - let storage = child.storage(modifiers: modifiers, type: type) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + let storage = child.storage(data: data, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -93,12 +93,12 @@ public struct AlertDialog: AdwaitaWidget { /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { storage.fields[Self.visibleID + id] = _visible - child.updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + child.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) guard updateProperties else { return } diff --git a/Sources/Adwaita/View/Dialogs/Dialog.swift b/Sources/Adwaita/View/Dialogs/Dialog.swift index 292ba9b..310655d 100644 --- a/Sources/Adwaita/View/Dialogs/Dialog.swift +++ b/Sources/Adwaita/View/Dialogs/Dialog.swift @@ -35,10 +35,10 @@ struct Dialog: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { - let child = child.storage(modifiers: modifiers, type: type) + func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { + let child = child.storage(data: data, type: type) let storage = ViewStorage(child.opaquePointer, content: [.mainContent: [child]]) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -50,23 +50,23 @@ struct Dialog: AdwaitaWidget { /// - type: The type of the app storage. func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { if let storage = storage.content[.mainContent]?.first { - child.updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + child.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } if let storage = storage.content[contentID + id]?.first { content - .updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + .updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } guard updateProperties else { return } if visible { if storage.content[dialogID + id]?.first == nil { - createDialog(storage: storage, modifiers: modifiers, type: type) + createDialog(storage: storage, data: data, type: type) adw_dialog_present( storage.content[dialogID + id]?.first?.opaquePointer?.cast(), storage.opaquePointer?.cast() @@ -96,13 +96,13 @@ struct Dialog: AdwaitaWidget { /// - type: The view render data type. func createDialog( storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) where Data: ViewRenderData { let pointer = adw_dialog_new() let dialog = ViewStorage(pointer?.opaque()) storage.content[dialogID + id] = [dialog] - let contentStorage = content.storage(modifiers: modifiers, type: type) + let contentStorage = content.storage(data: data, type: type) adw_dialog_set_child(pointer, contentStorage.opaquePointer?.cast()) storage.content[contentID + id] = [contentStorage] dialog.connectSignal(name: "closed") { diff --git a/Sources/Adwaita/View/Dialogs/FileDialog.swift b/Sources/Adwaita/View/Dialogs/FileDialog.swift index b1dd088..ce81fb9 100644 --- a/Sources/Adwaita/View/Dialogs/FileDialog.swift +++ b/Sources/Adwaita/View/Dialogs/FileDialog.swift @@ -33,10 +33,10 @@ struct FileDialog: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { - let child = child.storage(modifiers: modifiers, type: type) + func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { + let child = child.storage(data: data, type: type) let storage = ViewStorage(child.opaquePointer, content: [.mainContent: [child]]) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -48,7 +48,7 @@ struct FileDialog: AdwaitaWidget { /// - type: The type of the app storage. func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { @@ -57,7 +57,7 @@ struct FileDialog: AdwaitaWidget { guard let mainStorage = storage.content[.mainContent]?.first else { return } - child.updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + child.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) if open.update, storage.fields["callbacks"] == nil { let pointer = gtk_file_dialog_new() if let initialName { diff --git a/Sources/Adwaita/View/Fixed+.swift b/Sources/Adwaita/View/Fixed+.swift index 11f314a..0ca0783 100644 --- a/Sources/Adwaita/View/Fixed+.swift +++ b/Sources/Adwaita/View/Fixed+.swift @@ -23,8 +23,8 @@ extension Fixed { @ViewBuilder view: @escaping () -> Body ) -> Self { var newSelf = self - newSelf.appearFunctions.append { storage, modifiers in - let view = view().storage(modifiers: modifiers, type: AdwaitaMainView.self) + newSelf.appearFunctions.append { storage, data in + let view = view().storage(data: data, type: AdwaitaMainView.self) gtk_fixed_put( storage.opaquePointer?.cast(), view.opaquePointer?.cast(), @@ -33,14 +33,14 @@ extension Fixed { ) storage.content[id] = [view] } - newSelf.updateFunctions.append { storage, modifiers, updateProperties in + newSelf.updateFunctions.append { storage, data, updateProperties in guard let content = storage.content[id]?.first else { return } view() .updateStorage( content, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: AdwaitaMainView.self ) diff --git a/Sources/Adwaita/View/ForEach.swift b/Sources/Adwaita/View/ForEach.swift index a9dd173..b33f488 100644 --- a/Sources/Adwaita/View/ForEach.swift +++ b/Sources/Adwaita/View/ForEach.swift @@ -31,13 +31,13 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage( gtk_box_new(horizontal ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL, 0)?.opaque() ) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -49,7 +49,7 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { @@ -59,7 +59,7 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { old.identifiableTransform( to: elements, functions: .init { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_box_remove(widget, contentStorage[safe: index]?.opaquePointer?.cast()) gtk_box_insert_child_after( widget, @@ -72,7 +72,7 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { gtk_box_remove(widget, contentStorage[safe: index]?.opaquePointer?.cast()) contentStorage.remove(at: index) } insert: { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_box_insert_child_after( widget, child.opaquePointer?.cast(), @@ -93,7 +93,7 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { content(element) .updateStorage( contentStorage[index], - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) diff --git a/Sources/Adwaita/View/Generated/ActionRow.swift b/Sources/Adwaita/View/Generated/ActionRow.swift index 84cf2d4..8441254 100644 --- a/Sources/Adwaita/View/Generated/ActionRow.swift +++ b/Sources/Adwaita/View/Generated/ActionRow.swift @@ -2,7 +2,7 @@ // ActionRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -47,9 +47,9 @@ import LevenshteinTransformations public struct ActionRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The widget to activate when the row is activated. /// @@ -102,10 +102,6 @@ public struct ActionRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ActionRow`. public init() { @@ -116,26 +112,26 @@ public struct ActionRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_action_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let activatableWidgetStorage = activatableWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let activatableWidgetStorage = activatableWidget?().storage(data: data, type: type) { storage.content["activatableWidget"] = [activatableWidgetStorage] adw_action_row_set_activatable_widget(storage.opaquePointer?.cast(), activatableWidgetStorage.opaquePointer?.cast()) } var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -148,7 +144,7 @@ public struct ActionRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activated { storage.connectSignal(name: "activated", argCount: 0) { activated() @@ -157,7 +153,7 @@ public struct ActionRow: AdwaitaWidget { storage.modify { widget in if let widget = storage.content["activatableWidget"]?.first { - activatableWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + activatableWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let subtitleLines, updateProperties, (storage.previousState as? Self)?.subtitleLines != subtitleLines { adw_action_row_set_subtitle_lines(widget?.cast(), subtitleLines.cInt) @@ -189,7 +185,7 @@ public struct ActionRow: AdwaitaWidget { if let storage = suffixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -201,7 +197,7 @@ public struct ActionRow: AdwaitaWidget { if let storage = prefixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -211,7 +207,7 @@ public struct ActionRow: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/AspectFrame.swift b/Sources/Adwaita/View/Generated/AspectFrame.swift index 452c760..713754f 100644 --- a/Sources/Adwaita/View/Generated/AspectFrame.swift +++ b/Sources/Adwaita/View/Generated/AspectFrame.swift @@ -2,7 +2,7 @@ // AspectFrame.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -25,9 +25,9 @@ import LevenshteinTransformations public struct AspectFrame: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -46,10 +46,6 @@ public struct AspectFrame: AdwaitaWidget { var xalign: Float? /// The vertical alignment of the child. var yalign: Float? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `AspectFrame`. public init(ratio: Float) { @@ -61,13 +57,13 @@ public struct AspectFrame: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_aspect_frame_new(0.5, 0.5, ratio, 0)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_aspect_frame_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -81,11 +77,11 @@ public struct AspectFrame: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let obeyChild, updateProperties, (storage.previousState as? Self)?.obeyChild != obeyChild { gtk_aspect_frame_set_obey_child(widget, obeyChild.cBool) @@ -103,7 +99,7 @@ public struct AspectFrame: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Avatar.swift b/Sources/Adwaita/View/Generated/Avatar.swift index 9c4e16d..9692722 100644 --- a/Sources/Adwaita/View/Generated/Avatar.swift +++ b/Sources/Adwaita/View/Generated/Avatar.swift @@ -2,7 +2,7 @@ // Avatar.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -31,9 +31,9 @@ import LevenshteinTransformations public struct Avatar: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The name of an icon to use as a fallback. /// @@ -50,10 +50,6 @@ public struct Avatar: AdwaitaWidget { /// It's only used to generate the color if [property@Avatar:show-initials] is /// `FALSE`. var text: String? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Avatar`. public init(showInitials: Bool, size: Int) { @@ -66,12 +62,12 @@ public struct Avatar: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_avatar_new(size.cInt, text, showInitials.cBool)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -82,7 +78,7 @@ public struct Avatar: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let iconName, updateProperties, (storage.previousState as? Self)?.iconName != iconName { @@ -101,7 +97,7 @@ public struct Avatar: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Banner.swift b/Sources/Adwaita/View/Generated/Banner.swift index 4f3a009..37305bb 100644 --- a/Sources/Adwaita/View/Generated/Banner.swift +++ b/Sources/Adwaita/View/Generated/Banner.swift @@ -2,7 +2,7 @@ // Banner.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -30,9 +30,9 @@ import LevenshteinTransformations public struct Banner: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The label to show on the button. /// @@ -55,10 +55,6 @@ public struct Banner: AdwaitaWidget { /// /// It can be used as an alternative to setting an action. var buttonClicked: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Banner`. public init(title: String) { @@ -70,12 +66,12 @@ public struct Banner: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_banner_new(title)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -86,7 +82,7 @@ public struct Banner: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let buttonClicked { storage.connectSignal(name: "button-clicked", argCount: 0) { buttonClicked() @@ -110,7 +106,7 @@ public struct Banner: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Bin.swift b/Sources/Adwaita/View/Generated/Bin.swift index 9ec7935..fa98f3c 100644 --- a/Sources/Adwaita/View/Generated/Bin.swift +++ b/Sources/Adwaita/View/Generated/Bin.swift @@ -2,7 +2,7 @@ // Bin.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -20,16 +20,12 @@ import LevenshteinTransformations public struct Bin: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The child widget of the `AdwBin`. var child: (() -> Body)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Bin`. public init() { @@ -40,13 +36,13 @@ public struct Bin: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_bin_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] adw_bin_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } @@ -60,17 +56,17 @@ public struct Bin: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Box.swift b/Sources/Adwaita/View/Generated/Box.swift index 23ea469..ed6d6d1 100644 --- a/Sources/Adwaita/View/Generated/Box.swift +++ b/Sources/Adwaita/View/Generated/Box.swift @@ -2,7 +2,7 @@ // Box.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -45,9 +45,9 @@ import LevenshteinTransformations public struct Box: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -63,10 +63,6 @@ public struct Box: AdwaitaWidget { var append: () -> Body = { [] } /// The body for the widget "prepend". var prepend: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Box`. public init(spacing: Int) { @@ -78,22 +74,22 @@ public struct Box: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_box_new(GTK_ORIENTATION_VERTICAL, spacing.cInt)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) var appendStorage: [ViewStorage] = [] for view in append() { - appendStorage.append(view.storage(modifiers: modifiers, type: type)) + appendStorage.append(view.storage(data: data, type: type)) gtk_box_append(storage.opaquePointer?.cast(), appendStorage.last?.opaquePointer?.cast()) } storage.content["append"] = appendStorage var prependStorage: [ViewStorage] = [] for view in prepend() { - prependStorage.append(view.storage(modifiers: modifiers, type: type)) + prependStorage.append(view.storage(data: data, type: type)) gtk_box_prepend(storage.opaquePointer?.cast(), prependStorage.last?.opaquePointer?.cast()) } storage.content["prepend"] = prependStorage @@ -106,7 +102,7 @@ public struct Box: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let baselineChild, updateProperties, (storage.previousState as? Self)?.baselineChild != baselineChild { @@ -124,7 +120,7 @@ public struct Box: AdwaitaWidget { if let storage = appendStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -136,7 +132,7 @@ public struct Box: AdwaitaWidget { if let storage = prependStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -146,7 +142,7 @@ public struct Box: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Button.swift b/Sources/Adwaita/View/Generated/Button.swift index 367f880..9fe3f03 100644 --- a/Sources/Adwaita/View/Generated/Button.swift +++ b/Sources/Adwaita/View/Generated/Button.swift @@ -2,7 +2,7 @@ // Button.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -41,9 +41,9 @@ import LevenshteinTransformations public struct Button: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -80,10 +80,6 @@ public struct Button: AdwaitaWidget { var activate: (() -> Void)? /// Emitted when the button has been activated (pressed and released). var clicked: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Button`. public init() { @@ -94,13 +90,13 @@ public struct Button: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_button_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_button_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } @@ -114,7 +110,7 @@ public struct Button: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -134,7 +130,7 @@ public struct Button: AdwaitaWidget { gtk_button_set_can_shrink(widget?.cast(), canShrink.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasFrame, updateProperties, (storage.previousState as? Self)?.hasFrame != hasFrame { gtk_button_set_has_frame(widget?.cast(), hasFrame.cBool) @@ -152,7 +148,7 @@ public struct Button: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ButtonContent.swift b/Sources/Adwaita/View/Generated/ButtonContent.swift index d0a533a..722b23b 100644 --- a/Sources/Adwaita/View/Generated/ButtonContent.swift +++ b/Sources/Adwaita/View/Generated/ButtonContent.swift @@ -2,7 +2,7 @@ // ButtonContent.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -47,9 +47,9 @@ import LevenshteinTransformations public struct ButtonContent: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether the button can be smaller than the natural size of its contents. /// @@ -69,10 +69,6 @@ public struct ButtonContent: AdwaitaWidget { /// /// See [property@ButtonContent:label]. var useUnderline: Bool? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ButtonContent`. public init() { @@ -83,12 +79,12 @@ public struct ButtonContent: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_button_content_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -99,7 +95,7 @@ public struct ButtonContent: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let canShrink, updateProperties, (storage.previousState as? Self)?.canShrink != canShrink { @@ -118,7 +114,7 @@ public struct ButtonContent: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Carousel.swift b/Sources/Adwaita/View/Generated/Carousel.swift index 6c06238..c96ae3e 100644 --- a/Sources/Adwaita/View/Generated/Carousel.swift +++ b/Sources/Adwaita/View/Generated/Carousel.swift @@ -2,7 +2,7 @@ // Carousel.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -24,9 +24,9 @@ import LevenshteinTransformations public struct Carousel: AdwaitaWidget where Element: Identifiable { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether to allow swiping for more than one page at a time. /// @@ -65,10 +65,6 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { var elements: [Element] /// The dynamic widget content. var content: (Element) -> Body - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Carousel`. public init(_ elements: [Element], @ViewBuilder content: @escaping (Element) -> Body) { @@ -81,12 +77,12 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_carousel_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -97,7 +93,7 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let pageChanged { storage.connectSignal(name: "page-changed", argCount: 1) { pageChanged() @@ -129,7 +125,7 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { old.identifiableTransform( to: elements, functions: .init { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) adw_carousel_remove(widget, adw_carousel_get_nth_page(widget, UInt(index).cInt)) adw_carousel_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.remove(at: index) @@ -138,7 +134,7 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { adw_carousel_remove(widget, adw_carousel_get_nth_page(widget, UInt(index).cInt)) contentStorage.remove(at: index) } insert: { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) adw_carousel_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.insert(child, at: index) } @@ -146,11 +142,11 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { storage.fields["element"] = elements storage.content[.mainContent] = contentStorage for (index, element) in elements.enumerated() { - content(element).updateStorage(contentStorage[index], modifiers: modifiers, updateProperties: updateProperties, type: type) + content(element).updateStorage(contentStorage[index], data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/CenterBox.swift b/Sources/Adwaita/View/Generated/CenterBox.swift index e0ccf4d..3e381d9 100644 --- a/Sources/Adwaita/View/Generated/CenterBox.swift +++ b/Sources/Adwaita/View/Generated/CenterBox.swift @@ -2,7 +2,7 @@ // CenterBox.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -45,9 +45,9 @@ import LevenshteinTransformations public struct CenterBox: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -76,10 +76,6 @@ public struct CenterBox: AdwaitaWidget { /// In horizontal orientation, the start position is at the leading /// edge wrt. to the text direction. var startWidget: (() -> Body)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `CenterBox`. public init() { @@ -90,21 +86,21 @@ public struct CenterBox: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_center_box_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let centerWidgetStorage = centerWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let centerWidgetStorage = centerWidget?().storage(data: data, type: type) { storage.content["centerWidget"] = [centerWidgetStorage] gtk_center_box_set_center_widget(storage.opaquePointer, centerWidgetStorage.opaquePointer?.cast()) } - if let endWidgetStorage = endWidget?().storage(modifiers: modifiers, type: type) { + if let endWidgetStorage = endWidget?().storage(data: data, type: type) { storage.content["endWidget"] = [endWidgetStorage] gtk_center_box_set_end_widget(storage.opaquePointer, endWidgetStorage.opaquePointer?.cast()) } - if let startWidgetStorage = startWidget?().storage(modifiers: modifiers, type: type) { + if let startWidgetStorage = startWidget?().storage(data: data, type: type) { storage.content["startWidget"] = [startWidgetStorage] gtk_center_box_set_start_widget(storage.opaquePointer, startWidgetStorage.opaquePointer?.cast()) } @@ -118,26 +114,26 @@ public struct CenterBox: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["centerWidget"]?.first { - centerWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + centerWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let widget = storage.content["endWidget"]?.first { - endWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + endWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let shrinkCenterLast, updateProperties, (storage.previousState as? Self)?.shrinkCenterLast != shrinkCenterLast { gtk_center_box_set_shrink_center_last(widget, shrinkCenterLast.cBool) } if let widget = storage.content["startWidget"]?.first { - startWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + startWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/CheckButton.swift b/Sources/Adwaita/View/Generated/CheckButton.swift index 325dbb0..684693b 100644 --- a/Sources/Adwaita/View/Generated/CheckButton.swift +++ b/Sources/Adwaita/View/Generated/CheckButton.swift @@ -2,7 +2,7 @@ // CheckButton.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -68,9 +68,9 @@ import LevenshteinTransformations public struct CheckButton: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -109,10 +109,6 @@ public struct CheckButton: AdwaitaWidget { /// Emitted when the buttons's [property@Gtk.CheckButton:active] /// property changes. var toggled: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `CheckButton`. public init() { @@ -123,13 +119,13 @@ public struct CheckButton: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_check_button_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_check_button_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } @@ -143,7 +139,7 @@ public struct CheckButton: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -169,7 +165,7 @@ if let active, newValue != active.wrappedValue { gtk_check_button_set_active(storage.opaquePointer?.cast(), active.wrappedValue.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let inconsistent, updateProperties, (storage.previousState as? Self)?.inconsistent != inconsistent { gtk_check_button_set_inconsistent(widget?.cast(), inconsistent.cBool) @@ -184,7 +180,7 @@ if let active, newValue != active.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Clamp.swift b/Sources/Adwaita/View/Generated/Clamp.swift index c0639c4..52cf479 100644 --- a/Sources/Adwaita/View/Generated/Clamp.swift +++ b/Sources/Adwaita/View/Generated/Clamp.swift @@ -2,7 +2,7 @@ // Clamp.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -29,9 +29,9 @@ import LevenshteinTransformations public struct Clamp: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The child widget of the `AdwClamp`. var child: (() -> Body)? @@ -54,10 +54,6 @@ public struct Clamp: AdwaitaWidget { /// Effectively, tightening the grip on the child before it reaches its maximum /// size makes transitions to and from the maximum size smoother when resizing. var tighteningThreshold: Int? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Clamp`. public init() { @@ -68,13 +64,13 @@ public struct Clamp: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_clamp_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] adw_clamp_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -88,11 +84,11 @@ public struct Clamp: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let maximumSize, updateProperties, (storage.previousState as? Self)?.maximumSize != maximumSize { adw_clamp_set_maximum_size(widget, maximumSize.cInt) @@ -104,7 +100,7 @@ public struct Clamp: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ComboRow.swift b/Sources/Adwaita/View/Generated/ComboRow.swift index 1af8125..6e042de 100644 --- a/Sources/Adwaita/View/Generated/ComboRow.swift +++ b/Sources/Adwaita/View/Generated/ComboRow.swift @@ -2,7 +2,7 @@ // ComboRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -44,9 +44,9 @@ import LevenshteinTransformations public struct ComboRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The widget to activate when the row is activated. /// @@ -121,10 +121,6 @@ public struct ComboRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ComboRow`. public init() { @@ -135,26 +131,26 @@ public struct ComboRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_combo_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let activatableWidgetStorage = activatableWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let activatableWidgetStorage = activatableWidget?().storage(data: data, type: type) { storage.content["activatableWidget"] = [activatableWidgetStorage] adw_action_row_set_activatable_widget(storage.opaquePointer?.cast(), activatableWidgetStorage.opaquePointer?.cast()) } var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -167,7 +163,7 @@ public struct ComboRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activated { storage.connectSignal(name: "activated", argCount: 0) { activated() @@ -182,7 +178,7 @@ if let selected, newValue != selected.wrappedValue { } } if let widget = storage.content["activatableWidget"]?.first { - activatableWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + activatableWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let enableSearch, updateProperties, (storage.previousState as? Self)?.enableSearch != enableSearch { adw_combo_row_set_enable_search(widget?.cast(), enableSearch.cBool) @@ -221,7 +217,7 @@ if let selected, newValue != selected.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/EntryRow.swift b/Sources/Adwaita/View/Generated/EntryRow.swift index d25ad59..6e3a822 100644 --- a/Sources/Adwaita/View/Generated/EntryRow.swift +++ b/Sources/Adwaita/View/Generated/EntryRow.swift @@ -2,7 +2,7 @@ // EntryRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -42,9 +42,9 @@ import LevenshteinTransformations public struct EntryRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether activating the embedded entry can activate the default widget. var activatesDefault: Bool? @@ -91,10 +91,6 @@ public struct EntryRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `EntryRow`. public init() { @@ -105,22 +101,22 @@ public struct EntryRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_entry_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_entry_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_entry_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -133,7 +129,7 @@ public struct EntryRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let apply { storage.connectSignal(name: "apply", argCount: 0) { apply() @@ -173,7 +169,7 @@ public struct EntryRow: AdwaitaWidget { if let storage = suffixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -185,7 +181,7 @@ public struct EntryRow: AdwaitaWidget { if let storage = prefixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -195,7 +191,7 @@ public struct EntryRow: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ExpanderRow.swift b/Sources/Adwaita/View/Generated/ExpanderRow.swift index 75e20a1..722e4a3 100644 --- a/Sources/Adwaita/View/Generated/ExpanderRow.swift +++ b/Sources/Adwaita/View/Generated/ExpanderRow.swift @@ -2,7 +2,7 @@ // ExpanderRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -36,9 +36,9 @@ import LevenshteinTransformations public struct ExpanderRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether expansion is enabled. var enableExpansion: Binding? @@ -83,10 +83,6 @@ public struct ExpanderRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ExpanderRow`. public init() { @@ -97,28 +93,28 @@ public struct ExpanderRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_expander_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) var rowsStorage: [ViewStorage] = [] for view in rows() { - rowsStorage.append(view.storage(modifiers: modifiers, type: type)) + rowsStorage.append(view.storage(data: data, type: type)) adw_expander_row_add_row(storage.opaquePointer?.cast(), rowsStorage.last?.opaquePointer?.cast()) } storage.content["rows"] = rowsStorage var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_expander_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_expander_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -131,7 +127,7 @@ public struct ExpanderRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in storage.notify(name: "enable-expansion") { @@ -182,7 +178,7 @@ if let expanded, newValue != expanded.wrappedValue { if let storage = rowsStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -194,7 +190,7 @@ if let expanded, newValue != expanded.wrappedValue { if let storage = suffixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -206,7 +202,7 @@ if let expanded, newValue != expanded.wrappedValue { if let storage = prefixStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -216,7 +212,7 @@ if let expanded, newValue != expanded.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Fixed.swift b/Sources/Adwaita/View/Generated/Fixed.swift index 5c7be02..1e7ded8 100644 --- a/Sources/Adwaita/View/Generated/Fixed.swift +++ b/Sources/Adwaita/View/Generated/Fixed.swift @@ -2,7 +2,7 @@ // Fixed.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -48,18 +48,14 @@ import LevenshteinTransformations public struct Fixed: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// /// The accessible role cannot be changed once set. var accessibleRole: String? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Fixed`. public init() { @@ -70,12 +66,12 @@ public struct Fixed: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_fixed_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -86,14 +82,14 @@ public struct Fixed: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/FlowBox.swift b/Sources/Adwaita/View/Generated/FlowBox.swift index b19a782..15a5a24 100644 --- a/Sources/Adwaita/View/Generated/FlowBox.swift +++ b/Sources/Adwaita/View/Generated/FlowBox.swift @@ -2,7 +2,7 @@ // FlowBox.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -55,9 +55,9 @@ import LevenshteinTransformations public struct FlowBox: AdwaitaWidget where Element: Identifiable { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// accept-unpaired-release var acceptUnpairedRelease: Bool? @@ -138,10 +138,6 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { var elements: [Element] /// The dynamic widget content. var content: (Element) -> Body - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `FlowBox`. public init(_ elements: [Element], @ViewBuilder content: @escaping (Element) -> Body) { @@ -154,12 +150,12 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_flow_box_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -170,7 +166,7 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activateCursorChild { storage.connectSignal(name: "activate-cursor-child", argCount: 0) { activateCursorChild() @@ -232,7 +228,7 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { old.identifiableTransform( to: elements, functions: .init { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_flow_box_remove(widget, gtk_flow_box_get_child_at_index(widget, index.cInt)?.cast()) gtk_flow_box_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.remove(at: index) @@ -241,7 +237,7 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { gtk_flow_box_remove(widget, gtk_flow_box_get_child_at_index(widget, index.cInt)?.cast()) contentStorage.remove(at: index) } insert: { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_flow_box_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.insert(child, at: index) } @@ -249,11 +245,11 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { storage.fields["element"] = elements storage.content[.mainContent] = contentStorage for (index, element) in elements.enumerated() { - content(element).updateStorage(contentStorage[index], modifiers: modifiers, updateProperties: updateProperties, type: type) + content(element).updateStorage(contentStorage[index], data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/HeaderBar.swift b/Sources/Adwaita/View/Generated/HeaderBar.swift index 9113531..70fb722 100644 --- a/Sources/Adwaita/View/Generated/HeaderBar.swift +++ b/Sources/Adwaita/View/Generated/HeaderBar.swift @@ -2,7 +2,7 @@ // HeaderBar.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -95,9 +95,9 @@ import LevenshteinTransformations public struct HeaderBar: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The decoration layout for buttons. /// @@ -152,10 +152,6 @@ public struct HeaderBar: AdwaitaWidget { var start: () -> Body = { [] } /// The body for the widget "end". var end: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `HeaderBar`. public init() { @@ -166,26 +162,26 @@ public struct HeaderBar: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_header_bar_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let titleWidgetStorage = titleWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let titleWidgetStorage = titleWidget?().storage(data: data, type: type) { storage.content["titleWidget"] = [titleWidgetStorage] adw_header_bar_set_title_widget(storage.opaquePointer, titleWidgetStorage.opaquePointer?.cast()) } var startStorage: [ViewStorage] = [] for view in start() { - startStorage.append(view.storage(modifiers: modifiers, type: type)) + startStorage.append(view.storage(data: data, type: type)) adw_header_bar_pack_start(storage.opaquePointer, startStorage.last?.opaquePointer?.cast()) } storage.content["start"] = startStorage var endStorage: [ViewStorage] = [] for view in end() { - endStorage.append(view.storage(modifiers: modifiers, type: type)) + endStorage.append(view.storage(data: data, type: type)) adw_header_bar_pack_end(storage.opaquePointer, endStorage.last?.opaquePointer?.cast()) } storage.content["end"] = endStorage @@ -198,7 +194,7 @@ public struct HeaderBar: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let decorationLayout, updateProperties, (storage.previousState as? Self)?.decorationLayout != decorationLayout { @@ -217,7 +213,7 @@ public struct HeaderBar: AdwaitaWidget { adw_header_bar_set_show_title(widget, showTitle.cBool) } if let widget = storage.content["titleWidget"]?.first { - titleWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + titleWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let startStorage = storage.content["start"] { @@ -225,7 +221,7 @@ public struct HeaderBar: AdwaitaWidget { if let storage = startStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -237,7 +233,7 @@ public struct HeaderBar: AdwaitaWidget { if let storage = endStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -247,7 +243,7 @@ public struct HeaderBar: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Label.swift b/Sources/Adwaita/View/Generated/Label.swift index 4c15133..c7757e7 100644 --- a/Sources/Adwaita/View/Generated/Label.swift +++ b/Sources/Adwaita/View/Generated/Label.swift @@ -2,7 +2,7 @@ // Label.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -187,9 +187,9 @@ import LevenshteinTransformations public struct Label: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -268,10 +268,6 @@ public struct Label: AdwaitaWidget { /// /// The default binding for this signal is Ctrl+c. var copyClipboard: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Label`. public init(label: String) { @@ -283,13 +279,13 @@ public struct Label: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_label_new(label)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let mnemonicWidgetStorage = mnemonicWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let mnemonicWidgetStorage = mnemonicWidget?().storage(data: data, type: type) { storage.content["mnemonicWidget"] = [mnemonicWidgetStorage] gtk_label_set_mnemonic_widget(storage.opaquePointer, mnemonicWidgetStorage.opaquePointer?.cast()) } @@ -303,7 +299,7 @@ public struct Label: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let copyClipboard { storage.connectSignal(name: "copy-clipboard", argCount: 0) { copyClipboard() @@ -321,7 +317,7 @@ public struct Label: AdwaitaWidget { gtk_label_set_max_width_chars(widget, maxWidthChars.cInt) } if let widget = storage.content["mnemonicWidget"]?.first { - mnemonicWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + mnemonicWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let selectable, updateProperties, (storage.previousState as? Self)?.selectable != selectable { gtk_label_set_selectable(widget, selectable.cBool) @@ -351,7 +347,7 @@ public struct Label: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/LevelBar.swift b/Sources/Adwaita/View/Generated/LevelBar.swift index cbabfd4..459b44d 100644 --- a/Sources/Adwaita/View/Generated/LevelBar.swift +++ b/Sources/Adwaita/View/Generated/LevelBar.swift @@ -2,7 +2,7 @@ // LevelBar.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -108,9 +108,9 @@ import LevenshteinTransformations public struct LevelBar: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -136,10 +136,6 @@ public struct LevelBar: AdwaitaWidget { /// detailed signal "changed::x" in order to only receive callbacks when /// the value of offset "x" changes. var offsetChanged: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `LevelBar`. public init() { @@ -150,12 +146,12 @@ public struct LevelBar: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_level_bar_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -166,7 +162,7 @@ public struct LevelBar: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let offsetChanged { storage.connectSignal(name: "offset-changed", argCount: 1) { offsetChanged() @@ -190,7 +186,7 @@ public struct LevelBar: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/LinkButton.swift b/Sources/Adwaita/View/Generated/LinkButton.swift index ad0ad50..81147fb 100644 --- a/Sources/Adwaita/View/Generated/LinkButton.swift +++ b/Sources/Adwaita/View/Generated/LinkButton.swift @@ -2,7 +2,7 @@ // LinkButton.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -37,9 +37,9 @@ import LevenshteinTransformations public struct LinkButton: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -82,10 +82,6 @@ public struct LinkButton: AdwaitaWidget { var activate: (() -> Void)? /// Emitted when the button has been activated (pressed and released). var clicked: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `LinkButton`. public init(uri: String) { @@ -97,13 +93,13 @@ public struct LinkButton: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_link_button_new(uri)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_button_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } @@ -117,7 +113,7 @@ public struct LinkButton: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -137,7 +133,7 @@ public struct LinkButton: AdwaitaWidget { gtk_button_set_can_shrink(widget?.cast(), canShrink.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasFrame, updateProperties, (storage.previousState as? Self)?.hasFrame != hasFrame { gtk_button_set_has_frame(widget?.cast(), hasFrame.cBool) @@ -161,7 +157,7 @@ public struct LinkButton: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ListBox.swift b/Sources/Adwaita/View/Generated/ListBox.swift index e073e23..464eb17 100644 --- a/Sources/Adwaita/View/Generated/ListBox.swift +++ b/Sources/Adwaita/View/Generated/ListBox.swift @@ -2,7 +2,7 @@ // ListBox.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -64,9 +64,9 @@ import LevenshteinTransformations public struct ListBox: AdwaitaWidget where Element: Identifiable { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether to accept unpaired release events. var acceptUnpairedRelease: Bool? @@ -115,10 +115,6 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { var elements: [Element] /// The dynamic widget content. var content: (Element) -> Body - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ListBox`. public init(_ elements: [Element], @ViewBuilder content: @escaping (Element) -> Body) { @@ -131,12 +127,12 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_list_box_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -147,7 +143,7 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activateCursorRow { storage.connectSignal(name: "activate-cursor-row", argCount: 0) { activateCursorRow() @@ -202,7 +198,7 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { old.identifiableTransform( to: elements, functions: .init { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_list_box_remove(widget, gtk_list_box_get_row_at_index(widget, index.cInt)?.cast()) gtk_list_box_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.remove(at: index) @@ -211,7 +207,7 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { gtk_list_box_remove(widget, gtk_list_box_get_row_at_index(widget, index.cInt)?.cast()) contentStorage.remove(at: index) } insert: { index, element in - let child = content(element).storage(modifiers: modifiers, type: type) + let child = content(element).storage(data: data, type: type) gtk_list_box_insert(widget, child.opaquePointer?.cast(), index.cInt) contentStorage.insert(child, at: index) } @@ -219,11 +215,11 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { storage.fields["element"] = elements storage.content[.mainContent] = contentStorage for (index, element) in elements.enumerated() { - content(element).updateStorage(contentStorage[index], modifiers: modifiers, updateProperties: updateProperties, type: type) + content(element).updateStorage(contentStorage[index], data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Menu.swift b/Sources/Adwaita/View/Generated/Menu.swift index 8ac6c70..262d67b 100644 --- a/Sources/Adwaita/View/Generated/Menu.swift +++ b/Sources/Adwaita/View/Generated/Menu.swift @@ -2,7 +2,7 @@ // Menu.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -72,9 +72,9 @@ import LevenshteinTransformations public struct Menu: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -111,10 +111,6 @@ public struct Menu: AdwaitaWidget { /// The `::activate` signal on `GtkMenuButton` is an action signal and /// emitting it causes the button to pop up its menu. var activate: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Menu`. public init() { @@ -125,18 +121,18 @@ public struct Menu: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_menu_button_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_menu_button_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } - if let menu = menuModel?(), let app { - let childStorage = MenuCollection { menu }.getMenu(app: app, window: window) + if let menu = menuModel?() { + let childStorage = MenuCollection { menu }.getMenu(data: data) storage.content["menuModel"] = [childStorage] gtk_menu_button_set_menu_model(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -150,7 +146,7 @@ public struct Menu: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -174,7 +170,7 @@ if let active, newValue != active.wrappedValue { gtk_menu_button_set_can_shrink(widget, canShrink.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasFrame, updateProperties, (storage.previousState as? Self)?.hasFrame != hasFrame { gtk_menu_button_set_has_frame(widget, hasFrame.cBool) @@ -187,7 +183,7 @@ if let active, newValue != active.wrappedValue { } if let menu = storage.content["menuModel"]?.first { MenuCollection { menuModel?() ?? [] } - .updateStorage(menu, modifiers: [], updateProperties: updateProperties, type: MenuContext.self) + .updateStorage(menu, data: data.noModifiers, updateProperties: updateProperties, type: MenuContext.self) } if let primary, updateProperties, (storage.previousState as? Self)?.primary != primary { gtk_menu_button_set_primary(widget, primary.cBool) @@ -199,7 +195,7 @@ if let active, newValue != active.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self @@ -277,10 +273,10 @@ if let active, newValue != active.wrappedValue { /// /// See [method@Gtk.MenuButton.set_menu_model] for the interaction /// with the [property@Gtk.MenuButton:popover] property. - public func menuModel(app: AdwaitaApp, window: AdwaitaWindow? = nil, @ViewBuilder _ menuModel: @escaping (() -> Body)) -> Self { + public func menuModel(@ViewBuilder _ menuModel: @escaping (() -> Body)) -> Self { var newSelf = self newSelf.menuModel = menuModel - newSelf.app = app; newSelf.window = window + return newSelf } diff --git a/Sources/Adwaita/View/Generated/NavigationView.swift b/Sources/Adwaita/View/Generated/NavigationView.swift index 42bcecf..77c3306 100644 --- a/Sources/Adwaita/View/Generated/NavigationView.swift +++ b/Sources/Adwaita/View/Generated/NavigationView.swift @@ -2,7 +2,7 @@ // NavigationView.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -121,9 +121,9 @@ import LevenshteinTransformations public struct NavigationView: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether to animate page transitions. /// @@ -162,10 +162,6 @@ public struct NavigationView: AdwaitaWidget { /// /// See [method@NavigationView.replace]. var replaced: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `NavigationView`. public init() { @@ -176,12 +172,12 @@ public struct NavigationView: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_navigation_view_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -192,7 +188,7 @@ public struct NavigationView: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let getNextPage { storage.connectSignal(name: "get-next-page", argCount: 0) { getNextPage() @@ -225,7 +221,7 @@ public struct NavigationView: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Overlay.swift b/Sources/Adwaita/View/Generated/Overlay.swift index 591bdf7..8126f3b 100644 --- a/Sources/Adwaita/View/Generated/Overlay.swift +++ b/Sources/Adwaita/View/Generated/Overlay.swift @@ -2,7 +2,7 @@ // Overlay.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -43,9 +43,9 @@ import LevenshteinTransformations public struct Overlay: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -70,10 +70,6 @@ public struct Overlay: AdwaitaWidget { var getChildPosition: (() -> Void)? /// The body for the widget "overlay". var overlay: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Overlay`. public init() { @@ -84,20 +80,20 @@ public struct Overlay: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_overlay_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_overlay_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } var overlayStorage: [ViewStorage] = [] for view in overlay() { - overlayStorage.append(view.storage(modifiers: modifiers, type: type)) + overlayStorage.append(view.storage(data: data, type: type)) gtk_overlay_add_overlay(storage.opaquePointer, overlayStorage.last?.opaquePointer?.cast()) } storage.content["overlay"] = overlayStorage @@ -110,7 +106,7 @@ public struct Overlay: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let getChildPosition { storage.connectSignal(name: "get-child-position", argCount: 2) { getChildPosition() @@ -119,7 +115,7 @@ public struct Overlay: AdwaitaWidget { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let overlayStorage = storage.content["overlay"] { @@ -127,7 +123,7 @@ public struct Overlay: AdwaitaWidget { if let storage = overlayStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -137,7 +133,7 @@ public struct Overlay: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/OverlaySplitView.swift b/Sources/Adwaita/View/Generated/OverlaySplitView.swift index 126a5f5..199ec64 100644 --- a/Sources/Adwaita/View/Generated/OverlaySplitView.swift +++ b/Sources/Adwaita/View/Generated/OverlaySplitView.swift @@ -2,7 +2,7 @@ // OverlaySplitView.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -116,9 +116,9 @@ import LevenshteinTransformations public struct OverlaySplitView: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether the split view is collapsed. /// @@ -170,10 +170,6 @@ public struct OverlaySplitView: AdwaitaWidget { /// The sidebar widget can be allocated with larger width if its own minimum /// width exceeds the preferred width. var sidebarWidthFraction: Double? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `OverlaySplitView`. public init() { @@ -184,17 +180,17 @@ public struct OverlaySplitView: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_overlay_split_view_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let contentStorage = content?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let contentStorage = content?().storage(data: data, type: type) { storage.content["content"] = [contentStorage] adw_overlay_split_view_set_content(storage.opaquePointer, contentStorage.opaquePointer?.cast()) } - if let sidebarStorage = sidebar?().storage(modifiers: modifiers, type: type) { + if let sidebarStorage = sidebar?().storage(data: data, type: type) { storage.content["sidebar"] = [sidebarStorage] adw_overlay_split_view_set_sidebar(storage.opaquePointer, sidebarStorage.opaquePointer?.cast()) } @@ -208,7 +204,7 @@ public struct OverlaySplitView: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in storage.notify(name: "show-sidebar") { @@ -221,7 +217,7 @@ if let showSidebar, newValue != showSidebar.wrappedValue { adw_overlay_split_view_set_collapsed(widget, collapsed.cBool) } if let widget = storage.content["content"]?.first { - content?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + content?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let enableHideGesture, updateProperties, (storage.previousState as? Self)?.enableHideGesture != enableHideGesture { adw_overlay_split_view_set_enable_hide_gesture(widget, enableHideGesture.cBool) @@ -242,7 +238,7 @@ if let showSidebar, newValue != showSidebar.wrappedValue { adw_overlay_split_view_set_show_sidebar(storage.opaquePointer, showSidebar.wrappedValue.cBool) } if let widget = storage.content["sidebar"]?.first { - sidebar?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + sidebar?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let sidebarWidthFraction, updateProperties, (storage.previousState as? Self)?.sidebarWidthFraction != sidebarWidthFraction { adw_overlay_split_view_set_sidebar_width_fraction(widget, sidebarWidthFraction) @@ -251,7 +247,7 @@ if let showSidebar, newValue != showSidebar.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/PasswordEntryRow.swift b/Sources/Adwaita/View/Generated/PasswordEntryRow.swift index fb2c4c2..323ef84 100644 --- a/Sources/Adwaita/View/Generated/PasswordEntryRow.swift +++ b/Sources/Adwaita/View/Generated/PasswordEntryRow.swift @@ -2,7 +2,7 @@ // PasswordEntryRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -27,9 +27,9 @@ import LevenshteinTransformations public struct PasswordEntryRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether activating the embedded entry can activate the default widget. var activatesDefault: Bool? @@ -76,10 +76,6 @@ public struct PasswordEntryRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `PasswordEntryRow`. public init() { @@ -90,22 +86,22 @@ public struct PasswordEntryRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_password_entry_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_entry_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_entry_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -118,7 +114,7 @@ public struct PasswordEntryRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let apply { storage.connectSignal(name: "apply", argCount: 0) { apply() @@ -156,7 +152,7 @@ public struct PasswordEntryRow: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Picture.swift b/Sources/Adwaita/View/Generated/Picture.swift index 42a8f01..56bd5ee 100644 --- a/Sources/Adwaita/View/Generated/Picture.swift +++ b/Sources/Adwaita/View/Generated/Picture.swift @@ -2,7 +2,7 @@ // Picture.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -57,9 +57,9 @@ import LevenshteinTransformations public struct Picture: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -71,10 +71,6 @@ public struct Picture: AdwaitaWidget { var canShrink: Bool? /// How the content should be resized to fit inside the `GtkPicture`. var contentFit: ContentFit? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Picture`. public init() { @@ -85,12 +81,12 @@ public struct Picture: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_picture_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -101,7 +97,7 @@ public struct Picture: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let alternativeText, updateProperties, (storage.previousState as? Self)?.alternativeText != alternativeText { @@ -117,7 +113,7 @@ public struct Picture: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Popover.swift b/Sources/Adwaita/View/Generated/Popover.swift index 5aede96..2a80db1 100644 --- a/Sources/Adwaita/View/Generated/Popover.swift +++ b/Sources/Adwaita/View/Generated/Popover.swift @@ -2,7 +2,7 @@ // Popover.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -71,9 +71,9 @@ import LevenshteinTransformations public struct Popover: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -99,10 +99,6 @@ public struct Popover: AdwaitaWidget { var activateDefault: (() -> Void)? /// Emitted when the popover is closed. var closed: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Popover`. public init() { @@ -113,17 +109,17 @@ public struct Popover: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_popover_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_popover_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } - if let defaultWidgetStorage = defaultWidget?().storage(modifiers: modifiers, type: type) { + if let defaultWidgetStorage = defaultWidget?().storage(data: data, type: type) { storage.content["defaultWidget"] = [defaultWidgetStorage] gtk_popover_set_default_widget(storage.opaquePointer?.cast(), defaultWidgetStorage.opaquePointer?.cast()) } @@ -137,7 +133,7 @@ public struct Popover: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activateDefault { storage.connectSignal(name: "activate-default", argCount: 0) { activateDefault() @@ -157,10 +153,10 @@ public struct Popover: AdwaitaWidget { gtk_popover_set_cascade_popdown(widget?.cast(), cascadePopdown.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let widget = storage.content["defaultWidget"]?.first { - defaultWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + defaultWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasArrow, updateProperties, (storage.previousState as? Self)?.hasArrow != hasArrow { gtk_popover_set_has_arrow(widget?.cast(), hasArrow.cBool) @@ -172,7 +168,7 @@ public struct Popover: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/PreferencesGroup.swift b/Sources/Adwaita/View/Generated/PreferencesGroup.swift index d4a194c..0380822 100644 --- a/Sources/Adwaita/View/Generated/PreferencesGroup.swift +++ b/Sources/Adwaita/View/Generated/PreferencesGroup.swift @@ -2,7 +2,7 @@ // PreferencesGroup.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -39,9 +39,9 @@ import LevenshteinTransformations public struct PreferencesGroup: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The description for this group of preferences. var description: String? @@ -56,10 +56,6 @@ public struct PreferencesGroup: AdwaitaWidget { var title: String? /// The body for the widget "child". var child: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `PreferencesGroup`. public init() { @@ -70,20 +66,20 @@ public struct PreferencesGroup: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_preferences_group_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let headerSuffixStorage = headerSuffix?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let headerSuffixStorage = headerSuffix?().storage(data: data, type: type) { storage.content["headerSuffix"] = [headerSuffixStorage] adw_preferences_group_set_header_suffix(storage.opaquePointer?.cast(), headerSuffixStorage.opaquePointer?.cast()) } var childStorage: [ViewStorage] = [] for view in child() { - childStorage.append(view.storage(modifiers: modifiers, type: type)) + childStorage.append(view.storage(data: data, type: type)) adw_preferences_group_add(storage.opaquePointer?.cast(), childStorage.last?.opaquePointer?.cast()) } storage.content["child"] = childStorage @@ -96,14 +92,14 @@ public struct PreferencesGroup: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let description, updateProperties, (storage.previousState as? Self)?.description != description { adw_preferences_group_set_description(widget?.cast(), description) } if let widget = storage.content["headerSuffix"]?.first { - headerSuffix?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + headerSuffix?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let title, updateProperties, (storage.previousState as? Self)?.title != title { adw_preferences_group_set_title(widget?.cast(), title) @@ -114,7 +110,7 @@ public struct PreferencesGroup: AdwaitaWidget { if let storage = childStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -124,7 +120,7 @@ public struct PreferencesGroup: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/PreferencesPage.swift b/Sources/Adwaita/View/Generated/PreferencesPage.swift index 2961903..d32c855 100644 --- a/Sources/Adwaita/View/Generated/PreferencesPage.swift +++ b/Sources/Adwaita/View/Generated/PreferencesPage.swift @@ -2,7 +2,7 @@ // PreferencesPage.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -25,9 +25,9 @@ import LevenshteinTransformations public struct PreferencesPage: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The description to be displayed at the top of the page. var description: String? @@ -41,10 +41,6 @@ public struct PreferencesPage: AdwaitaWidget { var useUnderline: Bool? /// The body for the widget "child". var child: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `PreferencesPage`. public init() { @@ -55,16 +51,16 @@ public struct PreferencesPage: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_preferences_page_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) var childStorage: [ViewStorage] = [] for view in child() { - childStorage.append(view.storage(modifiers: modifiers, type: type)) + childStorage.append(view.storage(data: data, type: type)) adw_preferences_group_add(storage.opaquePointer?.cast(), childStorage.last?.opaquePointer?.cast()) } storage.content["child"] = childStorage @@ -77,7 +73,7 @@ public struct PreferencesPage: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let description, updateProperties, (storage.previousState as? Self)?.description != description { @@ -101,7 +97,7 @@ public struct PreferencesPage: AdwaitaWidget { if let storage = childStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -111,7 +107,7 @@ public struct PreferencesPage: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/PreferencesRow.swift b/Sources/Adwaita/View/Generated/PreferencesRow.swift index 1f0b067..23fa40c 100644 --- a/Sources/Adwaita/View/Generated/PreferencesRow.swift +++ b/Sources/Adwaita/View/Generated/PreferencesRow.swift @@ -2,7 +2,7 @@ // PreferencesRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -20,9 +20,9 @@ import LevenshteinTransformations public struct PreferencesRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The title of the preference represented by this row. /// @@ -41,10 +41,6 @@ public struct PreferencesRow: AdwaitaWidget { var useMarkup: Bool? /// Whether an embedded underline in the title indicates a mnemonic. var useUnderline: Bool? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `PreferencesRow`. public init() { @@ -55,12 +51,12 @@ public struct PreferencesRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_preferences_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -71,7 +67,7 @@ public struct PreferencesRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let title, updateProperties, (storage.previousState as? Self)?.title != title { @@ -90,7 +86,7 @@ public struct PreferencesRow: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ProgressBar.swift b/Sources/Adwaita/View/Generated/ProgressBar.swift index eaba9b2..79a8572 100644 --- a/Sources/Adwaita/View/Generated/ProgressBar.swift +++ b/Sources/Adwaita/View/Generated/ProgressBar.swift @@ -2,7 +2,7 @@ // ProgressBar.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -57,9 +57,9 @@ import LevenshteinTransformations public struct ProgressBar: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -84,10 +84,6 @@ public struct ProgressBar: AdwaitaWidget { var showText: Bool? /// Text to be displayed in the progress bar. var text: String? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ProgressBar`. public init() { @@ -98,12 +94,12 @@ public struct ProgressBar: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_progress_bar_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -114,7 +110,7 @@ public struct ProgressBar: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let fraction, updateProperties, (storage.previousState as? Self)?.fraction != fraction { @@ -136,7 +132,7 @@ public struct ProgressBar: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ScrolledWindow.swift b/Sources/Adwaita/View/Generated/ScrolledWindow.swift index 2bf2941..3589f05 100644 --- a/Sources/Adwaita/View/Generated/ScrolledWindow.swift +++ b/Sources/Adwaita/View/Generated/ScrolledWindow.swift @@ -2,7 +2,7 @@ // ScrolledWindow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -79,9 +79,9 @@ import LevenshteinTransformations public struct ScrolledWindow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -164,10 +164,6 @@ public struct ScrolledWindow: AdwaitaWidget { /// The horizontal or vertical adjustment is updated which triggers a /// signal that the scrolled window’s child may listen to and scroll itself. var scrollChild: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ScrolledWindow`. public init() { @@ -178,13 +174,13 @@ public struct ScrolledWindow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_scrolled_window_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_scrolled_window_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -198,7 +194,7 @@ public struct ScrolledWindow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let edgeOvershot { storage.connectSignal(name: "edge-overshot", argCount: 1) { edgeOvershot() @@ -222,7 +218,7 @@ public struct ScrolledWindow: AdwaitaWidget { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasFrame, updateProperties, (storage.previousState as? Self)?.hasFrame != hasFrame { gtk_scrolled_window_set_has_frame(widget, hasFrame.cBool) @@ -255,7 +251,7 @@ public struct ScrolledWindow: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/SearchBar.swift b/Sources/Adwaita/View/Generated/SearchBar.swift index 41561eb..ad1c518 100644 --- a/Sources/Adwaita/View/Generated/SearchBar.swift +++ b/Sources/Adwaita/View/Generated/SearchBar.swift @@ -2,7 +2,7 @@ // SearchBar.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -55,9 +55,9 @@ import LevenshteinTransformations public struct SearchBar: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -71,10 +71,6 @@ public struct SearchBar: AdwaitaWidget { var searchModeEnabled: Bool? /// Whether to show the close button in the search bar. var showCloseButton: Bool? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `SearchBar`. public init() { @@ -85,17 +81,17 @@ public struct SearchBar: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_search_bar_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_search_bar_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } - if let keyCaptureWidgetStorage = keyCaptureWidget?().storage(modifiers: modifiers, type: type) { + if let keyCaptureWidgetStorage = keyCaptureWidget?().storage(data: data, type: type) { storage.content["keyCaptureWidget"] = [keyCaptureWidgetStorage] gtk_search_bar_set_key_capture_widget(storage.opaquePointer, keyCaptureWidgetStorage.opaquePointer?.cast()) } @@ -109,14 +105,14 @@ public struct SearchBar: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let widget = storage.content["keyCaptureWidget"]?.first { - keyCaptureWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + keyCaptureWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let showCloseButton, updateProperties, (storage.previousState as? Self)?.showCloseButton != showCloseButton { gtk_search_bar_set_show_close_button(widget, showCloseButton.cBool) @@ -125,7 +121,7 @@ public struct SearchBar: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/SearchEntry.swift b/Sources/Adwaita/View/Generated/SearchEntry.swift index 1b11715..b941e4c 100644 --- a/Sources/Adwaita/View/Generated/SearchEntry.swift +++ b/Sources/Adwaita/View/Generated/SearchEntry.swift @@ -2,7 +2,7 @@ // SearchEntry.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -55,9 +55,9 @@ import LevenshteinTransformations public struct SearchEntry: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -154,10 +154,6 @@ public struct SearchEntry: AdwaitaWidget { /// /// The default bindings for this signal is Escape. var stopSearch: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `SearchEntry`. public init() { @@ -168,12 +164,12 @@ public struct SearchEntry: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_search_entry_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -184,7 +180,7 @@ public struct SearchEntry: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -263,7 +259,7 @@ if let text, newValue != text.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Separator.swift b/Sources/Adwaita/View/Generated/Separator.swift index 2dccb7c..c9405e0 100644 --- a/Sources/Adwaita/View/Generated/Separator.swift +++ b/Sources/Adwaita/View/Generated/Separator.swift @@ -2,7 +2,7 @@ // Separator.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -27,18 +27,14 @@ import LevenshteinTransformations public struct Separator: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// /// The accessible role cannot be changed once set. var accessibleRole: String? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Separator`. public init() { @@ -49,12 +45,12 @@ public struct Separator: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_separator_new(GTK_ORIENTATION_VERTICAL)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -65,14 +61,14 @@ public struct Separator: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/SpinRow.swift b/Sources/Adwaita/View/Generated/SpinRow.swift index 5fcebe5..d274cd0 100644 --- a/Sources/Adwaita/View/Generated/SpinRow.swift +++ b/Sources/Adwaita/View/Generated/SpinRow.swift @@ -2,7 +2,7 @@ // SpinRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -27,9 +27,9 @@ import LevenshteinTransformations public struct SpinRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The widget to activate when the row is activated. /// @@ -111,10 +111,6 @@ public struct SpinRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `SpinRow`. public init(climbRate: Double, digits: UInt) { @@ -127,26 +123,26 @@ public struct SpinRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_spin_row_new(nil, climbRate, digits.cInt)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let activatableWidgetStorage = activatableWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let activatableWidgetStorage = activatableWidget?().storage(data: data, type: type) { storage.content["activatableWidget"] = [activatableWidgetStorage] adw_action_row_set_activatable_widget(storage.opaquePointer?.cast(), activatableWidgetStorage.opaquePointer?.cast()) } var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -159,7 +155,7 @@ public struct SpinRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activated { storage.connectSignal(name: "activated", argCount: 0) { activated() @@ -189,7 +185,7 @@ if let value, newValue != value.wrappedValue { } } if let widget = storage.content["activatableWidget"]?.first { - activatableWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + activatableWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if updateProperties, (storage.previousState as? Self)?.climbRate != climbRate { adw_spin_row_set_climb_rate(widget, climbRate) @@ -237,7 +233,7 @@ if let value, newValue != value.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/Spinner.swift b/Sources/Adwaita/View/Generated/Spinner.swift index 3f564bf..dc575c9 100644 --- a/Sources/Adwaita/View/Generated/Spinner.swift +++ b/Sources/Adwaita/View/Generated/Spinner.swift @@ -2,7 +2,7 @@ // Spinner.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -26,9 +26,9 @@ import LevenshteinTransformations public struct Spinner: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -36,10 +36,6 @@ public struct Spinner: AdwaitaWidget { var accessibleRole: String? /// Whether the spinner is spinning var spinning: Bool? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `Spinner`. public init() { @@ -50,12 +46,12 @@ public struct Spinner: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_spinner_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -66,7 +62,7 @@ public struct Spinner: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let spinning, updateProperties, (storage.previousState as? Self)?.spinning != spinning { @@ -76,7 +72,7 @@ public struct Spinner: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/SplitButton.swift b/Sources/Adwaita/View/Generated/SplitButton.swift index 999d1fb..e8ea2ce 100644 --- a/Sources/Adwaita/View/Generated/SplitButton.swift +++ b/Sources/Adwaita/View/Generated/SplitButton.swift @@ -2,7 +2,7 @@ // SplitButton.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -43,9 +43,9 @@ import LevenshteinTransformations public struct SplitButton: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// Whether the button can be smaller than the natural size of its contents. /// @@ -95,10 +95,6 @@ public struct SplitButton: AdwaitaWidget { var activate: (() -> Void)? /// Emitted when the button has been activated (pressed and released). var clicked: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `SplitButton`. public init() { @@ -109,18 +105,18 @@ public struct SplitButton: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_split_button_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] adw_split_button_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } - if let menu = menuModel?(), let app { - let childStorage = MenuCollection { menu }.getMenu(app: app, window: window) + if let menu = menuModel?() { + let childStorage = MenuCollection { menu }.getMenu(data: data) storage.content["menuModel"] = [childStorage] adw_split_button_set_menu_model(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -134,7 +130,7 @@ public struct SplitButton: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -151,7 +147,7 @@ public struct SplitButton: AdwaitaWidget { adw_split_button_set_can_shrink(widget, canShrink.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let dropdownTooltip, updateProperties, (storage.previousState as? Self)?.dropdownTooltip != dropdownTooltip { adw_split_button_set_dropdown_tooltip(widget, dropdownTooltip) @@ -164,7 +160,7 @@ public struct SplitButton: AdwaitaWidget { } if let menu = storage.content["menuModel"]?.first { MenuCollection { menuModel?() ?? [] } - .updateStorage(menu, modifiers: [], updateProperties: updateProperties, type: MenuContext.self) + .updateStorage(menu, data: data.noModifiers, updateProperties: updateProperties, type: MenuContext.self) } if let useUnderline, updateProperties, (storage.previousState as? Self)?.useUnderline != useUnderline { adw_split_button_set_use_underline(widget, useUnderline.cBool) @@ -173,7 +169,7 @@ public struct SplitButton: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self @@ -246,10 +242,10 @@ public struct SplitButton: AdwaitaWidget { /// /// If [property@SplitButton:popover] is already set, it will be dissociated /// from the button, and the property is set to `NULL`. - public func menuModel(app: AdwaitaApp, window: AdwaitaWindow? = nil, @ViewBuilder _ menuModel: @escaping (() -> Body)) -> Self { + public func menuModel(@ViewBuilder _ menuModel: @escaping (() -> Body)) -> Self { var newSelf = self newSelf.menuModel = menuModel - newSelf.app = app; newSelf.window = window + return newSelf } diff --git a/Sources/Adwaita/View/Generated/StatusPage.swift b/Sources/Adwaita/View/Generated/StatusPage.swift index 24a657b..4371a25 100644 --- a/Sources/Adwaita/View/Generated/StatusPage.swift +++ b/Sources/Adwaita/View/Generated/StatusPage.swift @@ -2,7 +2,7 @@ // StatusPage.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -25,9 +25,9 @@ import LevenshteinTransformations public struct StatusPage: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The child widget. var child: (() -> Body)? @@ -41,10 +41,6 @@ public struct StatusPage: AdwaitaWidget { /// /// It is not parsed as Pango markup. var title: String? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `StatusPage`. public init() { @@ -55,13 +51,13 @@ public struct StatusPage: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_status_page_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] adw_status_page_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -75,11 +71,11 @@ public struct StatusPage: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let description, updateProperties, (storage.previousState as? Self)?.description != description { adw_status_page_set_description(widget, description) @@ -94,7 +90,7 @@ public struct StatusPage: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/SwitchRow.swift b/Sources/Adwaita/View/Generated/SwitchRow.swift index f169c2b..dae6151 100644 --- a/Sources/Adwaita/View/Generated/SwitchRow.swift +++ b/Sources/Adwaita/View/Generated/SwitchRow.swift @@ -2,7 +2,7 @@ // SwitchRow.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -31,9 +31,9 @@ import LevenshteinTransformations public struct SwitchRow: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The widget to activate when the row is activated. /// @@ -88,10 +88,6 @@ public struct SwitchRow: AdwaitaWidget { var suffix: () -> Body = { [] } /// The body for the widget "prefix". var prefix: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `SwitchRow`. public init() { @@ -102,26 +98,26 @@ public struct SwitchRow: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_switch_row_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let activatableWidgetStorage = activatableWidget?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let activatableWidgetStorage = activatableWidget?().storage(data: data, type: type) { storage.content["activatableWidget"] = [activatableWidgetStorage] adw_action_row_set_activatable_widget(storage.opaquePointer?.cast(), activatableWidgetStorage.opaquePointer?.cast()) } var suffixStorage: [ViewStorage] = [] for view in suffix() { - suffixStorage.append(view.storage(modifiers: modifiers, type: type)) + suffixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_suffix(storage.opaquePointer?.cast(), suffixStorage.last?.opaquePointer?.cast()) } storage.content["suffix"] = suffixStorage var prefixStorage: [ViewStorage] = [] for view in prefix() { - prefixStorage.append(view.storage(modifiers: modifiers, type: type)) + prefixStorage.append(view.storage(data: data, type: type)) adw_action_row_add_prefix(storage.opaquePointer?.cast(), prefixStorage.last?.opaquePointer?.cast()) } storage.content["prefix"] = prefixStorage @@ -134,7 +130,7 @@ public struct SwitchRow: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activated { storage.connectSignal(name: "activated", argCount: 0) { activated() @@ -149,7 +145,7 @@ if let active, newValue != active.wrappedValue { } } if let widget = storage.content["activatableWidget"]?.first { - activatableWidget?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + activatableWidget?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let active, updateProperties, (adw_switch_row_get_active(storage.opaquePointer) != 0) != active.wrappedValue { adw_switch_row_set_active(storage.opaquePointer, active.wrappedValue.cBool) @@ -182,7 +178,7 @@ if let active, newValue != active.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ToastOverlay.swift b/Sources/Adwaita/View/Generated/ToastOverlay.swift index 530159e..00a75be 100644 --- a/Sources/Adwaita/View/Generated/ToastOverlay.swift +++ b/Sources/Adwaita/View/Generated/ToastOverlay.swift @@ -2,7 +2,7 @@ // ToastOverlay.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -47,16 +47,12 @@ import LevenshteinTransformations public struct ToastOverlay: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The child widget. var child: (() -> Body)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ToastOverlay`. public init() { @@ -67,13 +63,13 @@ public struct ToastOverlay: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_toast_overlay_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] adw_toast_overlay_set_child(storage.opaquePointer, childStorage.opaquePointer?.cast()) } @@ -87,17 +83,17 @@ public struct ToastOverlay: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ToggleButton.swift b/Sources/Adwaita/View/Generated/ToggleButton.swift index ed5cc3e..19133be 100644 --- a/Sources/Adwaita/View/Generated/ToggleButton.swift +++ b/Sources/Adwaita/View/Generated/ToggleButton.swift @@ -2,7 +2,7 @@ // ToggleButton.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -86,9 +86,9 @@ import LevenshteinTransformations public struct ToggleButton: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The accessible role of the given `GtkAccessible` implementation. /// @@ -129,10 +129,6 @@ public struct ToggleButton: AdwaitaWidget { var clicked: (() -> Void)? /// Emitted whenever the `GtkToggleButton`'s state is changed. var toggled: (() -> Void)? - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ToggleButton`. public init() { @@ -143,13 +139,13 @@ public struct ToggleButton: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(gtk_toggle_button_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let childStorage = child?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let childStorage = child?().storage(data: data, type: type) { storage.content["child"] = [childStorage] gtk_button_set_child(storage.opaquePointer?.cast(), childStorage.opaquePointer?.cast()) } @@ -163,7 +159,7 @@ public struct ToggleButton: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { if let activate { storage.connectSignal(name: "activate", argCount: 0) { activate() @@ -197,7 +193,7 @@ if let active, newValue != active.wrappedValue { gtk_button_set_can_shrink(widget?.cast(), canShrink.cBool) } if let widget = storage.content["child"]?.first { - child?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + child?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let hasFrame, updateProperties, (storage.previousState as? Self)?.hasFrame != hasFrame { gtk_button_set_has_frame(widget?.cast(), hasFrame.cBool) @@ -215,7 +211,7 @@ if let active, newValue != active.wrappedValue { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/ToolbarView.swift b/Sources/Adwaita/View/Generated/ToolbarView.swift index f3c4721..746b19e 100644 --- a/Sources/Adwaita/View/Generated/ToolbarView.swift +++ b/Sources/Adwaita/View/Generated/ToolbarView.swift @@ -2,7 +2,7 @@ // ToolbarView.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -79,9 +79,9 @@ import LevenshteinTransformations public struct ToolbarView: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The current bottom bar height. /// @@ -138,10 +138,6 @@ public struct ToolbarView: AdwaitaWidget { var bottom: () -> Body = { [] } /// The body for the widget "top". var top: () -> Body = { [] } - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `ToolbarView`. public init() { @@ -152,26 +148,26 @@ public struct ToolbarView: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_toolbar_view_new()?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) - if let contentStorage = content?().storage(modifiers: modifiers, type: type) { + update(storage, data: data, updateProperties: true, type: type) + if let contentStorage = content?().storage(data: data, type: type) { storage.content["content"] = [contentStorage] adw_toolbar_view_set_content(storage.opaquePointer, contentStorage.opaquePointer?.cast()) } var bottomStorage: [ViewStorage] = [] for view in bottom() { - bottomStorage.append(view.storage(modifiers: modifiers, type: type)) + bottomStorage.append(view.storage(data: data, type: type)) adw_toolbar_view_add_bottom_bar(storage.opaquePointer, bottomStorage.last?.opaquePointer?.cast()) } storage.content["bottom"] = bottomStorage var topStorage: [ViewStorage] = [] for view in top() { - topStorage.append(view.storage(modifiers: modifiers, type: type)) + topStorage.append(view.storage(data: data, type: type)) adw_toolbar_view_add_top_bar(storage.opaquePointer, topStorage.last?.opaquePointer?.cast()) } storage.content["top"] = topStorage @@ -184,11 +180,11 @@ public struct ToolbarView: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if let widget = storage.content["content"]?.first { - content?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + content?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } if let extendContentToBottomEdge, updateProperties, (storage.previousState as? Self)?.extendContentToBottomEdge != extendContentToBottomEdge { adw_toolbar_view_set_extend_content_to_bottom_edge(widget, extendContentToBottomEdge.cBool) @@ -208,7 +204,7 @@ public struct ToolbarView: AdwaitaWidget { if let storage = bottomStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -220,7 +216,7 @@ public struct ToolbarView: AdwaitaWidget { if let storage = topStorage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -230,7 +226,7 @@ public struct ToolbarView: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Generated/WindowTitle.swift b/Sources/Adwaita/View/Generated/WindowTitle.swift index f2dd494..2c2ec61 100644 --- a/Sources/Adwaita/View/Generated/WindowTitle.swift +++ b/Sources/Adwaita/View/Generated/WindowTitle.swift @@ -2,7 +2,7 @@ // WindowTitle.swift // Adwaita // -// Created by auto-generation on 03.08.24. +// Created by auto-generation on 15.08.24. // import CAdw @@ -21,9 +21,9 @@ import LevenshteinTransformations public struct WindowTitle: AdwaitaWidget { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] /// The subtitle to display. /// @@ -34,10 +34,6 @@ public struct WindowTitle: AdwaitaWidget { /// The title typically identifies the current view or content item, and /// generally does not use the application name. var title: String - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? /// Initialize `WindowTitle`. public init(subtitle: String, title: String) { @@ -50,12 +46,12 @@ public struct WindowTitle: AdwaitaWidget { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(adw_window_title_new(title, subtitle)?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -66,7 +62,7 @@ public struct WindowTitle: AdwaitaWidget { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData { storage.modify { widget in if updateProperties, (storage.previousState as? Self)?.subtitle != subtitle { @@ -79,7 +75,7 @@ public struct WindowTitle: AdwaitaWidget { } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Adwaita/View/Menu+.swift b/Sources/Adwaita/View/Menu+.swift index 4307962..946d323 100644 --- a/Sources/Adwaita/View/Menu+.swift +++ b/Sources/Adwaita/View/Menu+.swift @@ -14,14 +14,10 @@ extension Menu { /// - Parameters: /// - label: The button's label. /// - icon: The button's icon. - /// - app: The application. - /// - window: The application window. /// - content: The menu's content. public init( _ label: String? = nil, icon: Icon, - app: AdwaitaApp, - window: AdwaitaWindow?, @ViewBuilder content: @escaping () -> Body ) { self.init() @@ -31,26 +27,22 @@ extension Menu { .iconName(icon.string) .label(label) } - .menuModel(app: app, window: window, content) + .menuModel(content) } // swiftlint:enable function_default_parameter_at_end /// Initialize a menu button. /// - Parameters: /// - label: The buttons label. - /// - app: The application. - /// - window: The application window. /// - content: The menu's content. public init( _ label: String, - app: AdwaitaApp, - window: AdwaitaWindow?, @ViewBuilder content: @escaping () -> Body ) { self.init() self = self .label(label) - .menuModel(app: app, window: window, content) + .menuModel(content) } } diff --git a/Sources/Adwaita/View/Modifiers/ToastOverlay+.swift b/Sources/Adwaita/View/Modifiers/ToastOverlay+.swift index 01dc2a5..5be24c1 100644 --- a/Sources/Adwaita/View/Modifiers/ToastOverlay+.swift +++ b/Sources/Adwaita/View/Modifiers/ToastOverlay+.swift @@ -37,7 +37,7 @@ extension ToastOverlay { /// - Returns: The toast overlay. public func action(button: String, handler: @escaping () -> Void) -> Self { var newSelf = self - let action: (ViewStorage, [(AnyView) -> AnyView], Bool) -> Void = { storage, _, _ in + let action: (ViewStorage, WidgetData, Bool) -> Void = { storage, _, _ in storage.fields["button"] = button storage.fields["handler"] = handler } diff --git a/Sources/Adwaita/View/NavigationSplitView.swift b/Sources/Adwaita/View/NavigationSplitView.swift index f462dc0..79e3c82 100644 --- a/Sources/Adwaita/View/NavigationSplitView.swift +++ b/Sources/Adwaita/View/NavigationSplitView.swift @@ -39,26 +39,26 @@ public struct NavigationSplitView: AdwaitaWidget { /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let splitView = adw_navigation_split_view_new() var content: [String: [ViewStorage]] = [:] - let sidebar = sidebar.storage(modifiers: modifiers, type: type) + let sidebar = sidebar.storage(data: data, type: type) let label = sidebar.fields[.navigationLabel] as? String ?? "" let sidebarPage = adw_navigation_page_new(sidebar.opaquePointer?.cast(), label) adw_navigation_split_view_set_sidebar(.init(splitView), sidebarPage?.cast()) content[sidebarID] = [sidebar] - let mainContent = self.content.storage(modifiers: modifiers, type: type) + let mainContent = self.content.storage(data: data, type: type) let mainLabel = mainContent.fields[.navigationLabel] as? String ?? "" let mainPage = adw_navigation_page_new(mainContent.opaquePointer?.cast(), mainLabel) adw_navigation_split_view_set_content(.init(splitView), mainPage?.cast()) content[contentID] = [mainContent] let storage = ViewStorage(splitView?.opaque(), content: content) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) storage.notify(name: "show-content") { showContent?.wrappedValue = adw_navigation_split_view_get_show_content(storage.opaquePointer) != 0 @@ -75,17 +75,17 @@ public struct NavigationSplitView: AdwaitaWidget { /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { if let storage = storage.content[contentID]?[safe: 0] { content - .updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + .updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } if let storage = storage.content[sidebarID]?[safe: 0] { sidebar - .updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + .updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } guard updateProperties else { return diff --git a/Sources/Adwaita/View/NavigationView+.swift b/Sources/Adwaita/View/NavigationView+.swift index 7d17602..a2944dd 100644 --- a/Sources/Adwaita/View/NavigationView+.swift +++ b/Sources/Adwaita/View/NavigationView+.swift @@ -25,8 +25,8 @@ extension NavigationView { @ViewBuilder initialView: @escaping () -> Body ) { self.init() - appearFunctions.append { storage, modifiers in - let initialStorage = initialView().storage(modifiers: modifiers, type: AdwaitaMainView.self) + appearFunctions.append { storage, data in + let initialStorage = initialView().storage(data: data, type: AdwaitaMainView.self) storage.fields[.mainContent] = [initialStorage] adw_navigation_view_push( storage.opaquePointer, @@ -43,10 +43,10 @@ extension NavigationView { } } } - updateFunctions.append { [self] storage, modifiers, updateProperties in + updateFunctions.append { [self] storage, data, updateProperties in updateFunction( storage: storage, - modifiers: modifiers, + data: data, stack: stack, views: (content, initialView()), updateProperties: updateProperties @@ -95,7 +95,7 @@ extension NavigationView { /// - updateProperties: Whether to update properties. func updateFunction( storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, stack: Binding>, views: ((Component) -> Body, Body), updateProperties: Bool @@ -110,7 +110,7 @@ extension NavigationView { storages.removeLast() } else { print("Warning: removing the initial view is not allowed.") } case let .push(component): - let contentStorage = views.0(component).storage(modifiers: modifiers, type: AdwaitaMainView.self) + let contentStorage = views.0(component).storage(data: data, type: AdwaitaMainView.self) contentStorage.fields[Self.componentID] = component storages.append(contentStorage) adw_navigation_view_push( @@ -127,7 +127,7 @@ extension NavigationView { views.0(component) .updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: AdwaitaMainView.self ) @@ -135,7 +135,7 @@ extension NavigationView { views.1 .updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: AdwaitaMainView.self ) diff --git a/Sources/Adwaita/View/VStack.swift b/Sources/Adwaita/View/VStack.swift index 0f32c89..37de091 100644 --- a/Sources/Adwaita/View/VStack.swift +++ b/Sources/Adwaita/View/VStack.swift @@ -53,13 +53,13 @@ public struct VStackWrapper: AdwaitaWidget, Wrapper { /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { if content.count == 1, let element = content.first { - return element.storage(modifiers: modifiers, type: type) + return element.storage(data: data, type: type) } else { - return VStack { content }.storage(modifiers: modifiers, type: type) + return VStack { content }.storage(data: data, type: type) } } @@ -71,15 +71,15 @@ public struct VStackWrapper: AdwaitaWidget, Wrapper { /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { if content.count == 1, let element = content.first { - element.updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + element.updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } else { VStack { content } - .updateStorage(storage, modifiers: modifiers, updateProperties: updateProperties, type: type) + .updateStorage(storage, data: data, updateProperties: updateProperties, type: type) } } diff --git a/Sources/Adwaita/View/ViewStack.swift b/Sources/Adwaita/View/ViewStack.swift index aba84cf..858d662 100644 --- a/Sources/Adwaita/View/ViewStack.swift +++ b/Sources/Adwaita/View/ViewStack.swift @@ -47,12 +47,12 @@ public struct ViewStack: AdwaitaWidget { /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let stack = gtk_stack_new() let storage = ViewStorage(stack?.opaque()) - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) return storage } @@ -64,14 +64,14 @@ public struct ViewStack: AdwaitaWidget { /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { if let view = storage.content[id.description]?.first { - content.updateStorage(view, modifiers: modifiers, updateProperties: updateProperties, type: type) + content.updateStorage(view, data: data, updateProperties: updateProperties, type: type) } else { - let view = content.storage(modifiers: modifiers, type: type) + let view = content.storage(data: data, type: type) gtk_stack_add_named(storage.opaquePointer, view.opaquePointer?.cast(), id.description) storage.content[id.description] = [view] } diff --git a/Sources/Adwaita/View/ViewSwitcher.swift b/Sources/Adwaita/View/ViewSwitcher.swift index dc3bb62..b37a873 100644 --- a/Sources/Adwaita/View/ViewSwitcher.swift +++ b/Sources/Adwaita/View/ViewSwitcher.swift @@ -29,7 +29,7 @@ public struct ViewSwitcher: AdwaitaWidget where Element: ViewSwitcherOp /// - type: The type of the app storage. /// - Returns: The view storage. public func container( - modifiers: [(AnyView) -> AnyView], + data: WidgetData, type: Data.Type ) -> ViewStorage where Data: ViewRenderData { let switcher = ViewStorage(adw_view_switcher_new()?.opaque()) @@ -57,7 +57,7 @@ public struct ViewSwitcher: AdwaitaWidget where Element: ViewSwitcherOp /// - type: The type of the app storage. public func update( _ storage: ViewStorage, - modifiers: [(AnyView) -> AnyView], + data: WidgetData, updateProperties: Bool, type: Data.Type ) where Data: ViewRenderData { diff --git a/Sources/Adwaita/Window/Window.swift b/Sources/Adwaita/Window/Window.swift index ef0cd87..5f01293 100644 --- a/Sources/Adwaita/Window/Window.swift +++ b/Sources/Adwaita/Window/Window.swift @@ -111,7 +111,8 @@ public struct Window: AdwaitaSceneElement { let storage = SceneStorage(id: id, pointer: window) { gtk_window_present(window.pointer?.cast()) } - let viewStorage = content.storage(modifiers: [], type: AdwaitaMainView.self) + let viewStorage = content + .storage(data: .init(sceneStorage: storage, appStorage: app), type: AdwaitaMainView.self) adw_application_window_set_content(window.pointer?.cast(), viewStorage.opaquePointer?.cast()) storage.content[.mainContent] = [viewStorage] let data = SignalData { @@ -163,7 +164,12 @@ public struct Window: AdwaitaSceneElement { } let content = content(window) content - .updateStorage(viewStorage, modifiers: [], updateProperties: updateProperties, type: AdwaitaMainView.self) + .updateStorage( + viewStorage, + data: .init(sceneStorage: storage, appStorage: app), + updateProperties: updateProperties, + type: AdwaitaMainView.self + ) let template = getTemplate(content: content) if let app = app as? AdwaitaApp { for shortcut in template.shortcuts { diff --git a/Sources/Demo/Demo.swift b/Sources/Demo/Demo.swift index b5bb6b2..a802c91 100644 --- a/Sources/Demo/Demo.swift +++ b/Sources/Demo/Demo.swift @@ -138,7 +138,7 @@ struct Demo: App { } var menu: AnyView { - Menu(icon: .default(icon: .openMenu), app: app, window: window) { + Menu(icon: .default(icon: .openMenu)) { MenuButton("New Window", window: false) { app.addWindow("main") } diff --git a/Sources/Generation/GIR/Class+.swift b/Sources/Generation/GIR/Class+.swift index fd5c4fb..4161d6d 100644 --- a/Sources/Generation/GIR/Class+.swift +++ b/Sources/Generation/GIR/Class+.swift @@ -161,13 +161,6 @@ extension Class { """ } content += staticWidgetProperties(namespace: namespace, configs: configs) - content += """ - - /// The application. - var app: AdwaitaApp? - /// The window. - var window: AdwaitaWindow? - """ return content } @@ -198,7 +191,7 @@ extension Class { if let storage = \(widget.name)Storage[safe: index] { view.updateStorage( storage, - modifiers: modifiers, + data: data, updateProperties: updateProperties, type: type ) @@ -216,7 +209,7 @@ extension Class { /// - genConfig: The generation configuration. /// - Returns: The code. func generateDynamicWidgetUpdate(config: WidgetConfiguration, genConfig: GenerationConfiguration) -> String { - let child = "let child = content(element).storage(modifiers: modifiers, type: type)" + let child = "let child = content(element).storage(data: data, type: type)" let pointer = "child.opaquePointer?.cast()" let widget = "widget" + (config.cast ? "?.cast()" : "") if let dynamicWidget = config.dynamicWidget { @@ -244,7 +237,7 @@ extension Class { storage.fields["element"] = elements storage.content[.mainContent] = contentStorage for (index, element) in elements.enumerated() { - content(element).updateStorage(contentStorage[index], modifiers: modifiers, updateProperties: updateProperties, type: type) + content(element).updateStorage(contentStorage[index], data: data, updateProperties: updateProperties, type: type) } """ // swiftlint:enable line_length diff --git a/Sources/Generation/GIR/Class.swift b/Sources/Generation/GIR/Class.swift index 1f38000..343b84b 100644 --- a/Sources/Generation/GIR/Class.swift +++ b/Sources/Generation/GIR/Class.swift @@ -84,9 +84,9 @@ struct Class: ClassLike, Decodable { public struct \(definition) { /// Additional update functions for type extensions. - var updateFunctions: [(ViewStorage, [(AnyView) -> AnyView], Bool) -> Void] = [] + var updateFunctions: [(ViewStorage, WidgetData, Bool) -> Void] = [] /// Additional appear functions for type extensions. - var appearFunctions: [(ViewStorage, [(AnyView) -> AnyView]) -> Void] = [] + var appearFunctions: [(ViewStorage, WidgetData) -> Void] = [] \(generateProperties(config: config, genConfig: genConfig, namespace: namespace, configs: configs)) /// Initialize `\(widgetName)`. @@ -97,12 +97,12 @@ struct Class: ClassLike, Decodable { /// - modifiers: Modify views before being updated. /// - type: The type of the app storage. /// - Returns: The view storage. - public func container(modifiers: [(AnyView) -> AnyView], type: Data.Type) -> ViewStorage where Data: ViewRenderData { + public func container(data: WidgetData, type: Data.Type) -> ViewStorage where Data: ViewRenderData { let storage = ViewStorage(\(generateInitializer(name: widgetName, config: config, namespace: namespace, configs: configs))?.opaque()) for function in appearFunctions { - function(storage, modifiers) + function(storage, data) } - update(storage, modifiers: modifiers, updateProperties: true, type: type) + update(storage, data: data, updateProperties: true, type: type) \(generateWidgetAssignments(config: config, genConfig: genConfig, namespace: namespace, configs: configs)) return storage } @@ -113,14 +113,14 @@ struct Class: ClassLike, Decodable { /// - modifiers: Modify views before being updated /// - updateProperties: Whether to update the view's properties. /// - type: The type of the app storage. - public func update(_ storage: ViewStorage, modifiers: [(AnyView) -> AnyView], updateProperties: Bool, type: Data.Type) where Data: ViewRenderData {\(generateSignalModifications(config: config, genConfig: genConfig, namespace: namespace)) + public func update(_ storage: ViewStorage, data: WidgetData, updateProperties: Bool, type: Data.Type) where Data: ViewRenderData {\(generateSignalModifications(config: config, genConfig: genConfig, namespace: namespace)) storage.modify { widget in \(generateBindingAssignments(config: config, genConfig: genConfig, namespace: namespace, configs: configs)) \(generateModifications(config: config, genConfig: genConfig, namespace: namespace, configs: configs)) \(generateDynamicWidgetUpdate(config: config, genConfig: genConfig)) } for function in updateFunctions { - function(storage, modifiers, updateProperties) + function(storage, data, updateProperties) } if updateProperties { storage.previousState = self diff --git a/Sources/Generation/GIR/ClassLike.swift b/Sources/Generation/GIR/ClassLike.swift index ed2ea58..61e376e 100644 --- a/Sources/Generation/GIR/ClassLike.swift +++ b/Sources/Generation/GIR/ClassLike.swift @@ -91,7 +91,7 @@ extension ClassLike { var \(widget.name)Storage: [ViewStorage] = [] for view in \(widget.name)() { - \(widget.name)Storage.append(view.storage(modifiers: modifiers, type: type)) + \(widget.name)Storage.append(view.storage(data: data, type: type)) \(widget.add)(\(widgetPointer), \(widget.name)Storage.last?.opaquePointer?.cast()) } storage.content["\(widget.name)"] = \(widget.name)Storage diff --git a/Sources/Generation/GIR/Property.swift b/Sources/Generation/GIR/Property.swift index 04fc7a0..add6ddd 100644 --- a/Sources/Generation/GIR/Property.swift +++ b/Sources/Generation/GIR/Property.swift @@ -91,10 +91,6 @@ struct Property: Decodable { let mainParameter = parameter(config: config, genConfig: genConfig, modifier: true, defaultValue: true) var sideParameters = "" var sideAssignments = "" - if type?.isMenu ?? false { - sideParameters += "app: AdwaitaApp, window: AdwaitaWindow? = nil, " - sideAssignments += "newSelf.app = app; newSelf.window = window" - } return """ \(doc?.docComment(indent: " ") ?? "/// \(name)") @@ -124,7 +120,7 @@ struct Property: Decodable { guard !(type?.isWidget ?? false) else { return """ if let widget = storage.content["\(name)"]?.first { - \(name)?().updateStorage(widget, modifiers: modifiers, updateProperties: updateProperties, type: type) + \(name)?().updateStorage(widget, data: data, updateProperties: updateProperties, type: type) } """ @@ -133,7 +129,7 @@ struct Property: Decodable { return """ if let menu = storage.content["\(name)"]?.first { MenuCollection { \(name)?() ?? [] } - .updateStorage(menu, modifiers: [], updateProperties: updateProperties, type: MenuContext.self) + .updateStorage(menu, data: data.noModifiers, updateProperties: updateProperties, type: MenuContext.self) } """ @@ -205,7 +201,7 @@ struct Property: Decodable { let name = convertPropertyName(configuration: genConfig) let view = (self.cast ?? config.cast) ? "storage.opaquePointer?.cast()" : "storage.opaquePointer" return """ - if let \(name)Storage = \(name)?().storage(modifiers: modifiers, type: type) { + if let \(name)Storage = \(name)?().storage(data: data, type: type) { storage.content["\(name)"] = [\(name)Storage] \(setter)(\(view), \(name)Storage.opaquePointer?.cast()) } @@ -231,8 +227,8 @@ struct Property: Decodable { let name = convertPropertyName(configuration: genConfig) let view = (self.cast ?? config.cast) ? "storage.opaquePointer?.cast()" : "storage.opaquePointer" return """ - if let menu = \(name)?(), let app { - let childStorage = MenuCollection { menu }.getMenu(app: app, window: window) + if let menu = \(name)?() { + let childStorage = MenuCollection { menu }.getMenu(data: data) storage.content["\(name)"] = [childStorage] \(setter)(\(view), childStorage.opaquePointer?.cast()) }