mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
macos: test listing fonts
This commit is contained in:
@ -20,8 +20,11 @@ pub const Array = opaque {
|
||||
return CFArrayGetCount(self);
|
||||
}
|
||||
|
||||
pub fn getValueAtIndex(self: *Array, comptime T: type, idx: usize) *const T {
|
||||
return @ptrCast(*const T, CFArrayGetValueAtIndex(self, idx));
|
||||
/// Note the return type is actually a `*const T` but we strip the
|
||||
/// constness so that further API calls work correctly. The Foundation
|
||||
/// API doesn't properly mark things const/non-const.
|
||||
pub fn getValueAtIndex(self: *Array, comptime T: type, idx: usize) *T {
|
||||
return @ptrCast(*T, CFArrayGetValueAtIndex(self, idx));
|
||||
}
|
||||
|
||||
pub extern "c" fn CFArrayCreate(
|
||||
@ -31,7 +34,7 @@ pub const Array = opaque {
|
||||
callbacks: ?*const anyopaque,
|
||||
) ?*Array;
|
||||
pub extern "c" fn CFArrayGetCount(*Array) usize;
|
||||
pub extern "c" fn CFArrayGetValueAtIndex(*Array, usize) *const anyopaque;
|
||||
pub extern "c" fn CFArrayGetValueAtIndex(*Array, usize) *anyopaque;
|
||||
extern "c" var kCFTypeArrayCallBacks: anyopaque;
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
const std = @import("std");
|
||||
const Allocator = std.mem.Allocator;
|
||||
const foundation = @import("../foundation.zig");
|
||||
const text = @import("../text.zig");
|
||||
|
||||
pub const FontCollection = opaque {
|
||||
pub fn createFromAvailableFonts() Allocator.Error!*FontCollection {
|
||||
@ -33,4 +34,16 @@ test "collection" {
|
||||
defer list.release();
|
||||
|
||||
try testing.expect(list.getCount() > 0);
|
||||
|
||||
// var i: usize = 0;
|
||||
// while (i < list.getCount()) : (i += 1) {
|
||||
// const desc = list.getValueAtIndex(text.FontDescriptor, i);
|
||||
// {
|
||||
// var buf: [128]u8 = undefined;
|
||||
// const name = desc.copyAttribute(.name);
|
||||
// defer name.release();
|
||||
// const cstr = name.cstring(&buf, .utf8).?;
|
||||
// std.log.warn("i={d} v={s}", .{ i, cstr });
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
Reference in New Issue
Block a user