aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Evelyn <jacobevelyn@gmail.com>2026-01-13 15:13:18 -0500
committerGitHub <noreply@github.com>2026-01-13 21:13:18 +0100
commita4f958b738b2cfd9d50d07b1357645d6c4d7902f (patch)
treeabc67b78253fe57968600ee4191b0c01613baa01
parentedb70a8d7560e003482af5277feb014a1e65251d (diff)
Fix darwin/Foundation/NSScreen type property bindings (#6038)
This commit updates the `darwin/Foundation` package's `NSScreen` bindings to treat Objective-C "type properties" as class methods rather than instance methods. As a result, we can now access these properties like this: ```odin import NS "core:sys/darwin/Foundation" main :: proc() { NS.Screen.mainScreen() } ``` instead of this: ```odin import NS "core:sys/darwin/Foundation" main :: proc() { (^NS.Screen)(nil).mainScreen() } ``` This commit also adds a binding for `NSScreen`'s `screensHaveSeparateSpaces` type property, which was previously missing from the `darwin/Foundation` package. Co-authored-by: Jacob Evelyn <j@cob.land>
-rw-r--r--core/sys/darwin/Foundation/NSScreen.odin10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/sys/darwin/Foundation/NSScreen.odin b/core/sys/darwin/Foundation/NSScreen.odin
index 79ab00fbe..8d52b9e1c 100644
--- a/core/sys/darwin/Foundation/NSScreen.odin
+++ b/core/sys/darwin/Foundation/NSScreen.odin
@@ -3,18 +3,22 @@ package objc_Foundation
@(objc_class="NSScreen")
Screen :: struct {using _: Object}
-@(objc_type=Screen, objc_name="mainScreen")
+@(objc_type=Screen, objc_name="mainScreen", objc_is_class_method=true)
Screen_mainScreen :: proc "c" () -> ^Screen {
return msgSend(^Screen, Screen, "mainScreen")
}
-@(objc_type=Screen, objc_name="deepestScreen")
+@(objc_type=Screen, objc_name="deepestScreen", objc_is_class_method=true)
Screen_deepestScreen :: proc "c" () -> ^Screen {
return msgSend(^Screen, Screen, "deepestScreen")
}
-@(objc_type=Screen, objc_name="screens")
+@(objc_type=Screen, objc_name="screens", objc_is_class_method=true)
Screen_screens :: proc "c" () -> ^Array {
return msgSend(^Array, Screen, "screens")
}
+@(objc_type=Screen, objc_name="screensHaveSeparateSpaces", objc_is_class_method=true)
+Screen_screensHaveSeparateSpaces :: proc "c" () -> BOOL {
+ return msgSend(BOOL, Screen, "screensHaveSeparateSpaces")
+}
@(objc_type=Screen, objc_name="frame")
Screen_frame :: proc "c" (self: ^Screen) -> Rect {
return msgSend(Rect, self, "frame")