mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
pkg/objc: more methods
This commit is contained in:
@ -7,6 +7,22 @@ pub const Object = struct {
|
|||||||
value: c.id,
|
value: c.id,
|
||||||
|
|
||||||
pub usingnamespace MsgSend(Object);
|
pub usingnamespace MsgSend(Object);
|
||||||
|
|
||||||
|
pub fn fromId(id: anytype) Object {
|
||||||
|
return .{ .value = @ptrCast(c.id, @alignCast(@alignOf(c.id), id)) };
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the class of an object.
|
||||||
|
pub fn getClass(self: Object) ?objc.Class {
|
||||||
|
return objc.Class{
|
||||||
|
.value = c.object_getClass(self.value) orelse return null,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the class name of a given object.
|
||||||
|
pub fn getClassName(self: Object) [:0]const u8 {
|
||||||
|
return std.mem.sliceTo(c.object_getClassName(self.value), 0);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
test {
|
test {
|
||||||
@ -16,5 +32,6 @@ test {
|
|||||||
// Should work with our wrappers
|
// Should work with our wrappers
|
||||||
const obj = NSObject.msgSend(objc.Object, objc.Sel.registerName("alloc"), .{});
|
const obj = NSObject.msgSend(objc.Object, objc.Sel.registerName("alloc"), .{});
|
||||||
try testing.expect(obj.value != null);
|
try testing.expect(obj.value != null);
|
||||||
|
try testing.expectEqualStrings("NSObject", obj.getClassName());
|
||||||
obj.msgSend(void, objc.sel("dealloc"), .{});
|
obj.msgSend(void, objc.sel("dealloc"), .{});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user