const std = @import("std"); const adw = @import("adw"); const gobject = @import("gobject"); const gtk = @import("gtk"); const build_config = @import("../../../build_config.zig"); const adw_version = @import("../adw_version.zig"); const gresource = @import("../build/gresource.zig"); const Common = @import("../class.zig").Common; /// Debug warning banner. It will be based on adw.Banner if we're using Adwaita /// 1.3 or newer. Otherwise it will use a gtk.Label. pub const DebugWarning = extern struct { const Self = @This(); parent_instance: Parent, pub const Parent = if (adw_version.supportsBanner()) adw.Bin else gtk.Box; pub const getGObjectType = gobject.ext.defineClass(Self, .{ .name = "GhosttyDebugWarning", .instanceInit = &init, .classInit = &Class.init, .parent_class = &Class.parent, }); fn init(self: *Self, _: *Class) callconv(.c) void { gtk.Widget.initTemplate(self.as(gtk.Widget)); } const C = Common(Self, null); pub const as = C.as; pub const ref = C.ref; pub const unref = C.unref; const private = C.private; pub const Class = extern struct { parent_class: Parent.Class, var parent: *Parent.Class = undefined; pub const Instance = Self; fn init(class: *Class) callconv(.c) void { gtk.Widget.Class.setTemplateFromResource( class.as(gtk.Widget.Class), comptime gresource.blueprint(.{ .major = 1, .minor = if (adw_version.supportsBanner()) 3 else 2, .name = "debug-warning", }), ); } pub const as = C.Class.as; }; };