From b7c0d4c41aeea402605f6cceb4cdae1656d4c61e Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Fri, 15 Nov 2024 22:43:29 -0600 Subject: [PATCH] apprt/gtk: add ability to put tabs in the headerbar Signed-off-by: Tristan Partin --- src/apprt/gtk/Window.zig | 5 +++++ src/apprt/gtk/notebook.zig | 2 +- src/config/Config.zig | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index e220ac03b..55bb8ff8f 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -289,6 +289,10 @@ pub fn init(self: *Window, app: *App) !void { // left and right is not supported in libadwaita. .top, .left, .right => c.adw_toolbar_view_add_top_bar(toolbar_view, tab_bar_widget), .bottom => c.adw_toolbar_view_add_bottom_bar(toolbar_view, tab_bar_widget), + .headerbar => { + c.adw_tab_bar_set_autohide(tab_bar, 0); + c.adw_header_bar_set_title_widget(@ptrCast(@alignCast(self.header.?)), tab_bar_widget); + }, } c.adw_toolbar_view_set_content(toolbar_view, box); @@ -334,6 +338,7 @@ pub fn init(self: *Window, app: *App) !void { .top, .left, .right, + .headerbar, => c.gtk_box_prepend( @ptrCast(box), @ptrCast(@alignCast(tab_bar)), diff --git a/src/apprt/gtk/notebook.zig b/src/apprt/gtk/notebook.zig index 46245ce99..3d6d37385 100644 --- a/src/apprt/gtk/notebook.zig +++ b/src/apprt/gtk/notebook.zig @@ -29,7 +29,7 @@ pub const Notebook = union(enum) { const notebook_widget: *c.GtkWidget = c.gtk_notebook_new(); const notebook: *c.GtkNotebook = @ptrCast(notebook_widget); const notebook_tab_pos: c_uint = switch (app.config.@"gtk-tabs-location") { - .top => c.GTK_POS_TOP, + .top, .headerbar => c.GTK_POS_TOP, .bottom => c.GTK_POS_BOTTOM, .left => c.GTK_POS_LEFT, .right => c.GTK_POS_RIGHT, diff --git a/src/config/Config.zig b/src/config/Config.zig index a3ee8ccf0..faff4d7eb 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -4511,6 +4511,7 @@ pub const GtkTabsLocation = enum { bottom, left, right, + headerbar, }; /// See adw-toolbar-style