mirror of
https://github.com/odin-lang/Odin.git
synced 2026-05-27 14:15:09 +00:00
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>
41 lines
1.5 KiB
Odin
41 lines
1.5 KiB
Odin
package objc_Foundation
|
|
|
|
@(objc_class="NSScreen")
|
|
Screen :: struct {using _: Object}
|
|
|
|
@(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_is_class_method=true)
|
|
Screen_deepestScreen :: proc "c" () -> ^Screen {
|
|
return msgSend(^Screen, Screen, "deepestScreen")
|
|
}
|
|
@(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")
|
|
}
|
|
@(objc_type=Screen, objc_name="depth")
|
|
Screen_depth :: proc "c" (self: ^Screen) -> Depth {
|
|
return msgSend(Depth, self, "depth")
|
|
}
|
|
@(objc_type=Screen, objc_name="visibleFrame")
|
|
Screen_visibleFrame :: proc "c" (self: ^Screen) -> Rect {
|
|
return msgSend(Rect, self, "visibleFrame")
|
|
}
|
|
@(objc_type=Screen, objc_name="colorSpace")
|
|
Screen_colorSpace :: proc "c" (self: ^Screen) -> ^ColorSpace {
|
|
return msgSend(^ColorSpace, self, "colorSpace")
|
|
}
|
|
@(objc_type=Screen, objc_name="backingScaleFactor")
|
|
Screen_backingScaleFactor :: proc "c" (self: ^Screen) -> Float {
|
|
return msgSend(Float, self, "backingScaleFactor")
|
|
} |