diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-04-04 19:22:04 +0300 |
|---|---|---|
| committer | Can Celik <ogulcancelik@gmail.com> | 2026-04-05 01:23:06 +0300 |
| commit | 41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch) | |
| tree | 3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/pkg/gtk4-layer-shell/src | |
| parent | 55c138263e190a1e79d4b997bfb9397306c0ec1f (diff) | |
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/pkg/gtk4-layer-shell/src')
| -rw-r--r-- | vendor/libghostty-vt/pkg/gtk4-layer-shell/src/main.zig | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/pkg/gtk4-layer-shell/src/main.zig b/vendor/libghostty-vt/pkg/gtk4-layer-shell/src/main.zig new file mode 100644 index 00000000..a1531323 --- /dev/null +++ b/vendor/libghostty-vt/pkg/gtk4-layer-shell/src/main.zig @@ -0,0 +1,71 @@ +const std = @import("std"); + +const c = @cImport({ + @cInclude("gtk4-layer-shell.h"); +}); +const gdk = @import("gdk"); +const gtk = @import("gtk"); + +pub const ShellLayer = enum(c_uint) { + background = c.GTK_LAYER_SHELL_LAYER_BACKGROUND, + bottom = c.GTK_LAYER_SHELL_LAYER_BOTTOM, + top = c.GTK_LAYER_SHELL_LAYER_TOP, + overlay = c.GTK_LAYER_SHELL_LAYER_OVERLAY, +}; + +pub const ShellEdge = enum(c_uint) { + left = c.GTK_LAYER_SHELL_EDGE_LEFT, + right = c.GTK_LAYER_SHELL_EDGE_RIGHT, + top = c.GTK_LAYER_SHELL_EDGE_TOP, + bottom = c.GTK_LAYER_SHELL_EDGE_BOTTOM, +}; + +pub const KeyboardMode = enum(c_uint) { + none = c.GTK_LAYER_SHELL_KEYBOARD_MODE_NONE, + exclusive = c.GTK_LAYER_SHELL_KEYBOARD_MODE_EXCLUSIVE, + on_demand = c.GTK_LAYER_SHELL_KEYBOARD_MODE_ON_DEMAND, +}; + +pub fn isSupported() bool { + return c.gtk_layer_is_supported() != 0; +} + +pub fn getProtocolVersion() c_uint { + return c.gtk_layer_get_protocol_version(); +} + +pub fn getLibraryVersion() std.SemanticVersion { + return .{ + .major = c.gtk_layer_get_major_version(), + .minor = c.gtk_layer_get_minor_version(), + .patch = c.gtk_layer_get_micro_version(), + }; +} + +pub fn initForWindow(window: *gtk.Window) void { + c.gtk_layer_init_for_window(@ptrCast(window)); +} + +pub fn setLayer(window: *gtk.Window, layer: ShellLayer) void { + c.gtk_layer_set_layer(@ptrCast(window), @intFromEnum(layer)); +} + +pub fn setAnchor(window: *gtk.Window, edge: ShellEdge, anchor_to_edge: bool) void { + c.gtk_layer_set_anchor(@ptrCast(window), @intFromEnum(edge), @intFromBool(anchor_to_edge)); +} + +pub fn setMargin(window: *gtk.Window, edge: ShellEdge, margin_size: c_int) void { + c.gtk_layer_set_margin(@ptrCast(window), @intFromEnum(edge), margin_size); +} + +pub fn setKeyboardMode(window: *gtk.Window, mode: KeyboardMode) void { + c.gtk_layer_set_keyboard_mode(@ptrCast(window), @intFromEnum(mode)); +} + +pub fn setMonitor(window: *gtk.Window, monitor: ?*gdk.Monitor) void { + c.gtk_layer_set_monitor(@ptrCast(window), @ptrCast(monitor)); +} + +pub fn setNamespace(window: *gtk.Window, name: [:0]const u8) void { + c.gtk_layer_set_namespace(@ptrCast(window), name.ptr); +} |
