remove the usage of anonymous structs

This commit is contained in:
Maciej Bartczak
2025-01-02 17:57:54 +01:00
parent a687be9022
commit 82d04efda5

View File

@ -280,16 +280,10 @@ pub fn init(self: *Window, app: *App) !void {
c.adw_banner_set_use_markup(@ptrCast(banner), 1); c.adw_banner_set_use_markup(@ptrCast(banner), 1);
c.adw_banner_set_button_label(@ptrCast(banner), "Dismiss"); c.adw_banner_set_button_label(@ptrCast(banner), "Dismiss");
const close_banner_callback = struct {
fn callback(_: ?*c.GtkWidget, data: ?*anyopaque) callconv(.C) void {
const widget: *c.AdwBanner = @ptrCast(data);
c.adw_banner_set_revealed(widget, c.FALSE);
}
}.callback;
_ = c.g_signal_connect_data( _ = c.g_signal_connect_data(
banner, banner,
"button-clicked", "button-clicked",
c.G_CALLBACK(&close_banner_callback), c.G_CALLBACK(&adwHideBanner),
banner, banner,
null, null,
c.G_CONNECT_DEFAULT, c.G_CONNECT_DEFAULT,
@ -311,16 +305,10 @@ pub fn init(self: *Window, app: *App) !void {
c.gtk_widget_set_margin_top(@ptrCast(close_button), 10); c.gtk_widget_set_margin_top(@ptrCast(close_button), 10);
c.gtk_widget_set_margin_bottom(@ptrCast(close_button), 10); c.gtk_widget_set_margin_bottom(@ptrCast(close_button), 10);
c.gtk_widget_set_margin_end(@ptrCast(close_button), 10); c.gtk_widget_set_margin_end(@ptrCast(close_button), 10);
const close_warning_callback = struct {
fn callback(_: ?*c.GtkWidget, data: ?*anyopaque) callconv(.C) void {
const widget: *c.GtkWidget = @ptrCast(@alignCast(data));
c.gtk_widget_set_visible(widget, c.FALSE);
}
}.callback;
_ = c.g_signal_connect_data( _ = c.g_signal_connect_data(
close_button, close_button,
"clicked", "clicked",
c.G_CALLBACK(&close_warning_callback), c.G_CALLBACK(&gtkHideWidget),
warning_box, warning_box,
null, null,
0 0
@ -1048,6 +1036,16 @@ fn gtkActionReset(
}; };
} }
fn gtkHideWidget(_: ?*c.GtkWidget, data: ?*anyopaque) void {
const widget: *c.GtkWidget = @ptrCast(@alignCast(data));
c.gtk_widget_set_visible(widget, c.FALSE);
}
fn adwHideBanner(_: ?*c.GtkWidget, data: ?*anyopaque) void {
const banner: *c.AdwBanner = @ptrCast(data);
c.adw_banner_set_revealed(banner, c.FALSE);
}
/// Returns the surface to use for an action. /// Returns the surface to use for an action.
fn actionSurface(self: *Window) ?*CoreSurface { fn actionSurface(self: *Window) ?*CoreSurface {
const tab = self.notebook.currentTab() orelse return null; const tab = self.notebook.currentTab() orelse return null;