From 3413d404f89fb881a0663724410fb8f3d89e6fc7 Mon Sep 17 00:00:00 2001 From: david-swift Date: Thu, 28 Dec 2023 21:36:51 +0100 Subject: [PATCH] Update components to only accept one handler --- Documentation/Reference/classes/Banner.md | 6 +----- Documentation/Reference/classes/Button.md | 6 +----- Documentation/Reference/classes/CheckButton.md | 6 +----- Documentation/Reference/classes/EntryRow.md | 6 +----- Documentation/Reference/classes/ListBox.md | 6 +----- Documentation/Reference/classes/TabButton.md | 6 +----- Sources/Libadwaita/Adwaita/Banner.swift | 9 +++------ Sources/Libadwaita/Adwaita/EntryRow.swift | 8 +++----- Sources/Libadwaita/Adwaita/TabButton.swift | 8 +++----- Sources/Libadwaita/GTK/Button.swift | 8 +++----- Sources/Libadwaita/GTK/CheckButton.swift | 8 +++----- Sources/Libadwaita/GTK/ListBox.swift | 8 +++----- 12 files changed, 24 insertions(+), 61 deletions(-) diff --git a/Documentation/Reference/classes/Banner.md b/Documentation/Reference/classes/Banner.md index fd03cd3..94cd778 100644 --- a/Documentation/Reference/classes/Banner.md +++ b/Documentation/Reference/classes/Banner.md @@ -5,7 +5,7 @@ Adw.Banner ## Properties -### `handlers` +### `handler` The handlers for when the button gets clicked. @@ -31,10 +31,6 @@ Add a handler for the banner's button. - Parameter action: The handler. - Returns: The banner. -### `onClick()` - -Run when the button gets clicked. - ### `show()` Show the banner. diff --git a/Documentation/Reference/classes/Button.md b/Documentation/Reference/classes/Button.md index 045919f..6b8f9ed 100644 --- a/Documentation/Reference/classes/Button.md +++ b/Documentation/Reference/classes/Button.md @@ -5,7 +5,7 @@ Gtk.Button ## Properties -### `handlers` +### `handler` The action handlers. @@ -49,7 +49,3 @@ Set the label for the button. Get the button content. - Returns: The button content. - -### `onClick()` - -Run when the button gets clicked. diff --git a/Documentation/Reference/classes/CheckButton.md b/Documentation/Reference/classes/CheckButton.md index 29b882b..d9b444e 100644 --- a/Documentation/Reference/classes/CheckButton.md +++ b/Documentation/Reference/classes/CheckButton.md @@ -5,7 +5,7 @@ Gtk.CheckButton ## Properties -### `handlers` +### `handler` The handlers for a check button. @@ -35,7 +35,3 @@ Set whether the check button is active. Set whether the check button is in the inconsistent state. - Parameter inconsistent: Whether the check button is in the inconsistent state. - -### `onClick()` - -Run this when the check button gets clicked. diff --git a/Documentation/Reference/classes/EntryRow.md b/Documentation/Reference/classes/EntryRow.md index f6cfb65..7388e8c 100644 --- a/Documentation/Reference/classes/EntryRow.md +++ b/Documentation/Reference/classes/EntryRow.md @@ -5,7 +5,7 @@ Adw.EntryRow ## Properties -### `handlers` +### `handler` The handlers for when the entry row gets submitted. @@ -46,7 +46,3 @@ Get the content of the entry row. Set the content of the entry row. - Parameter text: The new content. - -### `onSubmit()` - -Execute when the text gets submitted. diff --git a/Documentation/Reference/classes/ListBox.md b/Documentation/Reference/classes/ListBox.md index 7cb8650..6f95b6c 100644 --- a/Documentation/Reference/classes/ListBox.md +++ b/Documentation/Reference/classes/ListBox.md @@ -9,7 +9,7 @@ Gtk.ListBox The child widgets. -### `handlers` +### `handler` Handlers for selecting rows. @@ -78,7 +78,3 @@ Set the style of the list box to the sidebar style. Add a handler for when the selection changes. - Parameter handler: The handler. - Returns: The list box. - -### `onSelectRow()` - -Run this function when a row gets selected. diff --git a/Documentation/Reference/classes/TabButton.md b/Documentation/Reference/classes/TabButton.md index 8859b77..00b3ab9 100644 --- a/Documentation/Reference/classes/TabButton.md +++ b/Documentation/Reference/classes/TabButton.md @@ -5,7 +5,7 @@ Adw.TabButton ## Properties -### `handlers` +### `handler` The handlers of the button. @@ -20,7 +20,3 @@ Initialize a tab button with a tab view. Set the action handler of the tab button. - Parameter handler: The action handler. - Returns: The tab button. - -### `onClick()` - -Run when the button gets clicked. diff --git a/Sources/Libadwaita/Adwaita/Banner.swift b/Sources/Libadwaita/Adwaita/Banner.swift index cab9f3f..8316eaf 100644 --- a/Sources/Libadwaita/Adwaita/Banner.swift +++ b/Sources/Libadwaita/Adwaita/Banner.swift @@ -11,7 +11,7 @@ import CGTUI public class Banner: NativeWidgetPeer { /// The handlers for when the button gets clicked. - var handlers: [() -> Void] = [] + var handler: () -> Void = { } /// Whether the banner is revealed. public var isRevealed: Bool { gtui_banner_is_revealed(self.nativePtr) != 0 } @@ -36,13 +36,10 @@ public class Banner: NativeWidgetPeer { /// - Parameter action: The handler. /// - Returns: The banner. public func buttonHandler(_ action: @escaping () -> Void) -> Banner { - handlers.append(action) + handler = action return self } - /// Run when the button gets clicked. - public func onClick() { for handler in handlers { handler() } } - /// Show the banner. public func show() { gtui_banner_set_revealed(self.nativePtr, true.cBool) } @@ -60,5 +57,5 @@ func banner_on_click_cb( userData: UnsafeMutableRawPointer ) { let banner = Unmanaged.fromOpaque(userData).takeUnretainedValue() - banner.onClick() + banner.handler() } diff --git a/Sources/Libadwaita/Adwaita/EntryRow.swift b/Sources/Libadwaita/Adwaita/EntryRow.swift index 0ea02d2..c7149a2 100644 --- a/Sources/Libadwaita/Adwaita/EntryRow.swift +++ b/Sources/Libadwaita/Adwaita/EntryRow.swift @@ -11,7 +11,7 @@ import CGTUI public class EntryRow: PreferencesRow { /// The handlers for when the entry row gets submitted. - var handlers: [() -> Void] = [] + var handler: () -> Void = { } /// Initialize an entry row. /// - Parameter title: The row's title. @@ -46,7 +46,7 @@ public class EntryRow: PreferencesRow { /// - Parameter handler: The handler. /// - Returns: The entry row. public func submitHandler(_ handler: @escaping () -> Void) -> EntryRow { - self.handlers.append(handler) + self.handler = handler gtui_entryrow_set_show_apply_button(self.nativePtr, true.cBool) return self } @@ -68,8 +68,6 @@ public class EntryRow: PreferencesRow { gtui_editable_set_contents(self.nativePtr, text.cString) } - /// Execute when the text gets submitted. - public func onSubmit() { for handler in handlers { handler() } } } /// Handle when the entry row gets submitted. @@ -82,5 +80,5 @@ func entryrow_on_submit_cb( userData: UnsafeMutableRawPointer ) { let entryrow = Unmanaged.fromOpaque(userData).takeUnretainedValue() - entryrow.onSubmit() + entryrow.handler() } diff --git a/Sources/Libadwaita/Adwaita/TabButton.swift b/Sources/Libadwaita/Adwaita/TabButton.swift index bfee7a6..ebd4354 100644 --- a/Sources/Libadwaita/Adwaita/TabButton.swift +++ b/Sources/Libadwaita/Adwaita/TabButton.swift @@ -11,7 +11,7 @@ import CGTUI public class TabButton: NativeWidgetPeer { /// The handlers of the button. - var handlers: [() -> Void] = [] + var handler: () -> Void = { } /// Initialize a tab button with a tab view. /// - Parameter view: The tab view. @@ -26,12 +26,10 @@ public class TabButton: NativeWidgetPeer { /// - Parameter handler: The action handler. /// - Returns: The tab button. public func handler(_ handler: @escaping () -> Void) -> TabButton { - self.handlers.append(handler) + self.handler = handler return self } - /// Run when the button gets clicked. - public func onClick() { for handler in self.handlers { handler() } } } /// Observe when the tab button gets clicked. @@ -44,5 +42,5 @@ func tabbutton_on_click_cb( userData: UnsafeMutableRawPointer ) { let button = Unmanaged.fromOpaque(userData).takeUnretainedValue() - button.onClick() + button.handler() } diff --git a/Sources/Libadwaita/GTK/Button.swift b/Sources/Libadwaita/GTK/Button.swift index d8279a1..34fc736 100644 --- a/Sources/Libadwaita/GTK/Button.swift +++ b/Sources/Libadwaita/GTK/Button.swift @@ -12,7 +12,7 @@ import Foundation public class Button: NativeWidgetPeer { /// The action handlers. - var handlers: [() -> Void] = [] + var handler: () -> Void = { } /// The button content, if there is no label set directly. var content: ButtonContent? @@ -49,7 +49,7 @@ public class Button: NativeWidgetPeer { /// - Parameter handler: The button's handler. /// - Returns: The button. public func handler(_ handler: @escaping () -> Void) -> Button { - self.handlers.append(handler) + self.handler = handler return self } @@ -61,8 +61,6 @@ public class Button: NativeWidgetPeer { /// - Returns: The button content. public func getContent() -> ButtonContent? { content } - /// Run when the button gets clicked. - public func onClick() { for handler in self.handlers { handler() } } } /// Run when the button gets clicked. @@ -75,5 +73,5 @@ func button_on_click_cb( userData: UnsafeMutableRawPointer ) { let button = Unmanaged