Skip to content

Commit

Permalink
gtk: switch menus to use blueprints instead of raw builder ui (ghostt…
Browse files Browse the repository at this point in the history
  • Loading branch information
tristan957 authored Feb 23, 2025
2 parents 65c65b9 + a8b6b96 commit eaeb6a6
Show file tree
Hide file tree
Showing 7 changed files with 218 additions and 189 deletions.
2 changes: 1 addition & 1 deletion src/apprt/gtk/Window.zig
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,7 @@ fn initActions(self: *Window) void {
.{ "paste", &gtkActionPaste },
.{ "reset", &gtkActionReset },
.{ "clear", &gtkActionClear },
.{ "prompt_title", &gtkActionPromptTitle },
.{ "prompt-title", &gtkActionPromptTitle },
};

inline for (actions) |entry| {
Expand Down
7 changes: 3 additions & 4 deletions src/apprt/gtk/gresource.zig
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,7 @@ const icons = [_]struct {
},
};

pub const ui_files = [_][]const u8{
"menu-window-titlebar_menu",
"menu-surface-context_menu",
};
pub const ui_files = [_][]const u8{};

pub const VersionedBlueprint = struct {
major: u16,
Expand All @@ -67,6 +64,8 @@ pub const VersionedBlueprint = struct {

pub const blueprint_files = [_]VersionedBlueprint{
.{ .major = 1, .minor = 5, .micro = 0, .name = "prompt-title-dialog" },
.{ .major = 1, .minor = 0, .micro = 0, .name = "menu-surface-context_menu" },
.{ .major = 1, .minor = 0, .micro = 0, .name = "menu-window-titlebar_menu" },
};

pub fn main() !void {
Expand Down
2 changes: 1 addition & 1 deletion src/apprt/gtk/menu.zig
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ pub fn Menu(
else => unreachable,
};

var builder = Builder.init("menu-" ++ object_type ++ "-" ++ menu_name, .ui);
var builder = Builder.init("menu-" ++ object_type ++ "-" ++ menu_name, .blp);
defer builder.deinit();

const menu_model = builder.getObject(gio.MenuModel, "menu").?;
Expand Down
102 changes: 102 additions & 0 deletions src/apprt/gtk/ui/menu-surface-context_menu.blp
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
using Gtk 4.0;

menu menu {
section {
item {
label: _("Copy");
action: "win.copy";
}

item {
label: _("Paste");
action: "win.paste";
}
}

section {
item {
label: _("Clear");
action: "win.clear";
}

item {
label: _("Reset");
action: "win.reset";
}
}

section {
submenu {
label: _("Split");

item {
label: _("Change Title…");
action: "win.prompt-title";
}

item {
label: _("Split Up");
action: "win.split-up";
}

item {
label: _("Split Down");
action: "win.split-down";
}

item {
label: _("Split Left");
action: "win.split-left";
}

item {
label: _("Split Right");
action: "win.split-right";
}
}

submenu {
label: _("Tab");

item {
label: _("New Tab");
action: "win.new-tab";
}

item {
label: _("Close Tab");
action: "win.close-tab";
}
}

submenu {
label: _("Window");

item {
label: _("New Window");
action: "win.new-window";
}

item {
label: _("Close Window");
action: "win.close";
}
}
}

section {
submenu {
label: _("Config");

item {
label: _("Open Configuration");
action: "app.open-config";
}

item {
label: _("Reload Configuration");
action: "app.reload-config";
}
}
}
}
90 changes: 0 additions & 90 deletions src/apprt/gtk/ui/menu-surface-context_menu.ui

This file was deleted.

111 changes: 111 additions & 0 deletions src/apprt/gtk/ui/menu-window-titlebar_menu.blp
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
using Gtk 4.0;

menu menu {
section {
item {
label: _("Copy");
action: "win.copy";
}

item {
label: _("Paste");
action: "win.paste";
}
}

section {
item {
label: _("New Window");
action: "win.new-window";
}

item {
label: _("Close Window");
action: "win.close";
}
}

section {
item {
label: _("New Tab");
action: "win.new-tab";
}

item {
label: _("Close Tab");
action: "win.close-tab";
}
}

section {
submenu {
label: _("Split");

item {
label: _("Change Title…");
action: "win.prompt-title";
}

item {
label: _("Split Up");
action: "win.split-up";
}

item {
label: _("Split Down");
action: "win.split-down";
}

item {
label: _("Split Left");
action: "win.split-left";
}

item {
label: _("Split Right");
action: "win.split-right";
}
}
}

section {
item {
label: _("Clear");
action: "win.clear";
}

item {
label: _("Reset");
action: "win.reset";
}
}

section {
item {
label: _("Terminal Inspector");
action: "win.toggle-inspector";
}

item {
label: _("Open Configuration");
action: "app.open-config";
}

item {
label: _("Reload Configuration");
action: "app.reload-config";
}
}

section {
item {
label: _("About Ghostty");
action: "win.about";
}

item {
label: _("Quit");
action: "app.quit";
}
}
}
Loading

0 comments on commit eaeb6a6

Please sign in to comment.