mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-28 17:04:34 +00:00
Merge pull request #5998 from slowhei/master
Added more NSApplication and NSWindow bindings
This commit is contained in:
@@ -92,6 +92,11 @@ Application_activate :: proc "c" (self: ^Application) {
|
||||
msgSend(nil, self, "activate")
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="active")
|
||||
Application_active :: proc "c" (self: ^Application) -> BOOL {
|
||||
return msgSend(BOOL, self, "isActive")
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="setTitle")
|
||||
Application_setTitle :: proc "c" (self: ^Application, title: ^String) {
|
||||
msgSend(nil, self, "setTitle", title)
|
||||
@@ -107,6 +112,35 @@ Application_setMainMenu :: proc "c" (self: ^Application, menu: ^Menu) {
|
||||
msgSend(nil, self, "setMainMenu:", menu)
|
||||
}
|
||||
|
||||
// This property is actually not exposed in AppKit's public API.
|
||||
// But there is basically no other way to configure the apple menu without using NIB files.
|
||||
// Therefore, an Odin binding for this non-public API was created.
|
||||
// Note: SDL also calls this non-public method.
|
||||
@(objc_type=Application, objc_name="setAppleMenu")
|
||||
Application_setAppleMenu :: proc "c" (self: ^Application, menu: ^Menu) {
|
||||
msgSend(nil, self, "setAppleMenu:", menu)
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="servicesMenu")
|
||||
Application_servicesMenu :: proc "c" (self: ^Application) -> ^Menu {
|
||||
return msgSend(^Menu, self, "servicesMenu")
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="setServicesMenu")
|
||||
Application_setServicesMenu :: proc "c" (self: ^Application, menu: ^Menu) {
|
||||
msgSend(nil, self, "setServicesMenu:", menu)
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="windowsMenu")
|
||||
Application_windowsMenu :: proc "c" (self: ^Application) -> ^Menu {
|
||||
return msgSend(^Menu, self, "windowsMenu")
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="setWindowsMenu")
|
||||
Application_setWindowsMenu :: proc "c" (self: ^Application, menu: ^Menu) {
|
||||
msgSend(nil, self, "setWindowsMenu:", menu)
|
||||
}
|
||||
|
||||
@(objc_type=Application, objc_name="mainWindow")
|
||||
Application_mainWindow :: proc "c" (self: ^Application) -> ^Window {
|
||||
return msgSend(^Window, self, "mainWindow")
|
||||
|
||||
@@ -643,6 +643,14 @@ Layer_setContentsScale :: proc "c" (self: ^Layer, scale: Float) {
|
||||
Layer_frame :: proc "c" (self: ^Layer) -> Rect {
|
||||
return msgSend(Rect, self, "frame")
|
||||
}
|
||||
@(objc_type=Layer, objc_name="position")
|
||||
Layer_position :: proc "c" (self: ^Layer) -> Point {
|
||||
return msgSend(Point, self, "position")
|
||||
}
|
||||
@(objc_type=Layer, objc_name="setPosition")
|
||||
Layer_setPosition :: proc "c" (self: ^Layer, position: Point) {
|
||||
msgSend(nil, self, "setPosition:", position)
|
||||
}
|
||||
@(objc_type=Layer, objc_name="addSublayer")
|
||||
Layer_addSublayer :: proc "c" (self: ^Layer, layer: ^Layer) {
|
||||
msgSend(nil, self, "addSublayer:", layer)
|
||||
@@ -784,6 +792,10 @@ Window_setAcceptsMouseMovedEvents :: proc "c" (self: ^Window, ok: BOOL) {
|
||||
Window_setStyleMask :: proc "c" (self: ^Window, style_mask: WindowStyleMask) {
|
||||
msgSend(nil, self, "setStyleMask:", style_mask)
|
||||
}
|
||||
@(objc_type=Window, objc_name="performClose")
|
||||
Window_performClose :: proc "c" (self: ^Window, sender: id) {
|
||||
msgSend(nil, self, "performClose:", sender)
|
||||
}
|
||||
@(objc_type=Window, objc_name="close")
|
||||
Window_close :: proc "c" (self: ^Window) {
|
||||
msgSend(nil, self, "close")
|
||||
@@ -916,6 +928,18 @@ Window_collectionBehavior :: proc "c" (self: ^Window) -> WindowCollectionBehavio
|
||||
Window_setLevel :: proc "c" (self: ^Window, level: WindowLevel) {
|
||||
msgSend(nil, self, "setLevel:", level)
|
||||
}
|
||||
@(objc_type = Window, objc_name = "keyWindow")
|
||||
Window_keyWindow :: proc "c" (self: ^Window) -> BOOL {
|
||||
return msgSend(BOOL, self, "isKeyWindow")
|
||||
}
|
||||
@(objc_type = Window, objc_name = "mainWindow")
|
||||
Window_mainWindow :: proc "c" (self: ^Window) -> BOOL {
|
||||
return msgSend(BOOL, self, "isMainWindow")
|
||||
}
|
||||
@(objc_type = Window, objc_name = "parentWindow")
|
||||
Window_parentWindow :: proc "c" (self: ^Window) -> ^Window {
|
||||
return msgSend(^Window, self, "parentWindow")
|
||||
}
|
||||
@(objc_type = Window, objc_name = "setReleasedWhenClosed")
|
||||
Window_setReleasedWhenClosed :: proc "c" (self: ^Window, flag: BOOL) {
|
||||
msgSend(nil, self, "setReleasedWhenClosed:", flag)
|
||||
|
||||
Reference in New Issue
Block a user