mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
Comment to show native access
This commit is contained in:
@ -9,6 +9,14 @@ pub const Property = extern struct {
|
|||||||
pub fn getName(self: Property) [:0]const u8 {
|
pub fn getName(self: Property) [:0]const u8 {
|
||||||
return std.mem.sliceTo(c.property_getName(self.value), 0);
|
return std.mem.sliceTo(c.property_getName(self.value), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the value of a property attribute given the attribute name.
|
||||||
|
pub fn copyAttributeValue(self: Property, attr: [:0]const u8) ?[:0]u8 {
|
||||||
|
return std.mem.sliceTo(
|
||||||
|
c.property_copyAttributeValue(self.value, attr.ptr) orelse return null,
|
||||||
|
0,
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
test {
|
test {
|
||||||
|
@ -24,6 +24,11 @@ const Config = @import("config.zig").Config;
|
|||||||
const input = @import("input.zig");
|
const input = @import("input.zig");
|
||||||
const DevMode = @import("DevMode.zig");
|
const DevMode = @import("DevMode.zig");
|
||||||
|
|
||||||
|
// Get native API access on certain platforms so we can do more customization.
|
||||||
|
const glfwNative = glfw.Native(.{
|
||||||
|
.cocoa = builtin.os.tag == .macos,
|
||||||
|
});
|
||||||
|
|
||||||
const log = std.log.scoped(.window);
|
const log = std.log.scoped(.window);
|
||||||
|
|
||||||
// The preallocation size for the write request pool. This should be big
|
// The preallocation size for the write request pool. This should be big
|
||||||
@ -173,6 +178,48 @@ pub fn create(alloc: Allocator, loop: libuv.Loop, config: *const Config) !*Windo
|
|||||||
errdefer window.destroy();
|
errdefer window.destroy();
|
||||||
try Renderer.windowInit(window);
|
try Renderer.windowInit(window);
|
||||||
|
|
||||||
|
// TEST
|
||||||
|
// if (builtin.os.tag == .macos) {
|
||||||
|
// const id = glfwNative.getCocoaWindow(window) orelse unreachable;
|
||||||
|
// const nswindow = objc.Object.fromId(id);
|
||||||
|
// const NSWindow = nswindow.getClass().?;
|
||||||
|
//
|
||||||
|
// {
|
||||||
|
// const prop = NSWindow.getProperty("titlebarAppearsTransparent").?;
|
||||||
|
// const setter = if (prop.copyAttributeValue("S")) |val| setter: {
|
||||||
|
// defer objc.free(val);
|
||||||
|
// break :setter objc.sel(val);
|
||||||
|
// } else objc.sel("setTitlebarAppearsTransparent:");
|
||||||
|
//
|
||||||
|
// nswindow.msgSend(void, setter, .{true});
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// {
|
||||||
|
// const NSColor = objc.Class.getClass("NSColor").?;
|
||||||
|
// const nscolor = NSColor.msgSend(
|
||||||
|
// objc.Object,
|
||||||
|
// objc.sel("colorWithSRGBRed:green:blue:alpha:"),
|
||||||
|
// .{
|
||||||
|
// 1.0,
|
||||||
|
// 0.0,
|
||||||
|
// 0.0,
|
||||||
|
// // @intToFloat(f32, config.background.r) / 255.0,
|
||||||
|
// // @intToFloat(f32, config.background.g) / 255.0,
|
||||||
|
// // @intToFloat(f32, config.background.b) / 255.0,
|
||||||
|
// 1.0,
|
||||||
|
// },
|
||||||
|
// );
|
||||||
|
//
|
||||||
|
// const prop = NSWindow.getProperty("backgroundColor").?;
|
||||||
|
// const setter = if (prop.copyAttributeValue("S")) |val| setter: {
|
||||||
|
// defer objc.free(val);
|
||||||
|
// break :setter objc.sel(val);
|
||||||
|
// } else objc.sel("setBackgroundColor:");
|
||||||
|
//
|
||||||
|
// nswindow.msgSend(void, setter, .{nscolor});
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// Determine our DPI configurations so we can properly configure
|
// Determine our DPI configurations so we can properly configure
|
||||||
// font points to pixels and handle other high-DPI scaling factors.
|
// font points to pixels and handle other high-DPI scaling factors.
|
||||||
const content_scale = try window.getContentScale();
|
const content_scale = try window.getContentScale();
|
||||||
|
Reference in New Issue
Block a user