diff options
| author | Jacob Evelyn <jacobevelyn@gmail.com> | 2026-01-13 15:13:18 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-13 21:13:18 +0100 |
| commit | a4f958b738b2cfd9d50d07b1357645d6c4d7902f (patch) | |
| tree | abc67b78253fe57968600ee4191b0c01613baa01 /core/sys/darwin | |
| parent | edb70a8d7560e003482af5277feb014a1e65251d (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>
Diffstat (limited to 'core/sys/darwin')
| -rw-r--r-- | core/sys/darwin/Foundation/NSScreen.odin | 10 |
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") |