From 395fa7fdb8f28ff944b32acfc2f1a97b138d23b5 Mon Sep 17 00:00:00 2001 From: Sebastian Pahnke Date: Wed, 13 Nov 2024 14:42:31 +0100 Subject: [PATCH 1/3] Add NSApplication bindings for `mainWindow` and `keyWindow` --- core/sys/darwin/Foundation/NSApplication.odin | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/sys/darwin/Foundation/NSApplication.odin b/core/sys/darwin/Foundation/NSApplication.odin index 7191f6d07..254da75ad 100644 --- a/core/sys/darwin/Foundation/NSApplication.odin +++ b/core/sys/darwin/Foundation/NSApplication.odin @@ -108,6 +108,16 @@ Application_setMainMenu :: proc "c" (self: ^Application, menu: ^Menu) { msgSend(nil, self, "setMainMenu:", menu) } +@(objc_type=Application, objc_name="mainWindow") +Application_mainWindow :: proc "c" (self: ^Application) -> ^Window { + return msgSend(^Window, self, "mainWindow") +} + +@(objc_type=Application, objc_name="keyWindow") +Application_keyWindow :: proc "c" (self: ^Application) -> ^Window { + return msgSend(^Window, self, "keyWindow") +} + @(objc_type=Application, objc_name="windows") Application_windows :: proc "c" (self: ^Application) -> ^Array { return msgSend(^Array, self, "windows") From 0af183485b06db081953b8e6126015a725369cb4 Mon Sep 17 00:00:00 2001 From: Alex Overstreet <47640630+alexover1@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:41:16 -0600 Subject: [PATCH 2/3] Add STICKYKEYS, TOGGLEKEYS, and FILTERKEYS --- core/sys/windows/user32.odin | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/core/sys/windows/user32.odin b/core/sys/windows/user32.odin index 514592e7b..bcb6b14fd 100644 --- a/core/sys/windows/user32.odin +++ b/core/sys/windows/user32.odin @@ -781,3 +781,64 @@ CF_GDIOBJLAST :: 0x03FF CF_OWNERDISPLAY :: 0x0080 CF_PRIVATEFIRST :: 0x0200 CF_PRIVATELAST :: 0x02FF + +STICKYKEYS :: struct { + cbSize: UINT, + dwFlags: DWORD, +} +LPSTICKYKEYS :: ^STICKYKEYS + +SKF_STICKYKEYSON :: 0x1 +SKF_AVAILABLE :: 0x2 +SKF_HOTKEYACTIVE :: 0x4 +SKF_CONFIRMHOTKEY :: 0x8 +SKF_HOTKEYSOUND :: 0x10 +SKF_INDICATOR :: 0x20 +SKF_AUDIBLEFEEDBACK :: 0x40 +SKF_TRISTATE :: 0x80 +SKF_TWOKEYSOFF :: 0x100 +SKF_LSHIFTLOCKED :: 0x10000 +SKF_RSHIFTLOCKED :: 0x20000 +SKF_LCTLLOCKED :: 0x40000 +SKF_RCTLLOCKED :: 0x80000 +SKF_LALTLOCKED :: 0x100000 +SKF_RALTLOCKED :: 0x200000 +SKF_LWINLOCKED :: 0x400000 +SKF_RWINLOCKED :: 0x800000 +SKF_LSHIFTLATCHED :: 0x1000000 +SKF_RSHIFTLATCHED :: 0x2000000 +SKF_LCTLLATCHED :: 0x4000000 +SKF_RCTLLATCHED :: 0x8000000 +SKF_LALTLATCHED :: 0x10000000 +SKF_RALTLATCHED :: 0x20000000 + +TOGGLEKEYS :: struct { + cbSize: UINT, + dwFlags: DWORD, +} +LPTOGGLEKEYS :: ^TOGGLEKEYS + +TKF_TOGGLEKEYSON :: 0x1 +TKF_AVAILABLE :: 0x2 +TKF_HOTKEYACTIVE :: 0x4 +TKF_CONFIRMHOTKEY :: 0x8 +TKF_HOTKEYSOUND :: 0x10 +TKF_INDICATOR :: 0x20 + +FILTERKEYS :: struct { + cbSize: UINT, + dwFlags: DWORD, + iWaitMSec: DWORD, + iDelayMSec: DWORD, + iRepeatMSec: DWORD, + iBounceMSec: DWORD, +} +LPFILTERKEYS :: ^FILTERKEYS + +FKF_FILTERKEYSON :: 0x1 +FKF_AVAILABLE :: 0x2 +FKF_HOTKEYACTIVE :: 0x4 +FKF_CONFIRMHOTKEY :: 0x8 +FKF_HOTKEYSOUND :: 0x10 +FKF_INDICATOR :: 0x20 +FKF_CLICKON :: 0x40 From 5ea7fe14dd3ca2265fa0d50d48df6bdb5d420633 Mon Sep 17 00:00:00 2001 From: Alex Overstreet <47640630+alexover1@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:46:56 -0600 Subject: [PATCH 3/3] Use tabs instead of spaces --- core/sys/windows/user32.odin | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/sys/windows/user32.odin b/core/sys/windows/user32.odin index bcb6b14fd..4ae33cd32 100644 --- a/core/sys/windows/user32.odin +++ b/core/sys/windows/user32.odin @@ -783,8 +783,8 @@ CF_PRIVATEFIRST :: 0x0200 CF_PRIVATELAST :: 0x02FF STICKYKEYS :: struct { - cbSize: UINT, - dwFlags: DWORD, + cbSize: UINT, + dwFlags: DWORD, } LPSTICKYKEYS :: ^STICKYKEYS @@ -813,8 +813,8 @@ SKF_LALTLATCHED :: 0x10000000 SKF_RALTLATCHED :: 0x20000000 TOGGLEKEYS :: struct { - cbSize: UINT, - dwFlags: DWORD, + cbSize: UINT, + dwFlags: DWORD, } LPTOGGLEKEYS :: ^TOGGLEKEYS @@ -826,12 +826,12 @@ TKF_HOTKEYSOUND :: 0x10 TKF_INDICATOR :: 0x20 FILTERKEYS :: struct { - cbSize: UINT, - dwFlags: DWORD, - iWaitMSec: DWORD, - iDelayMSec: DWORD, - iRepeatMSec: DWORD, - iBounceMSec: DWORD, + cbSize: UINT, + dwFlags: DWORD, + iWaitMSec: DWORD, + iDelayMSec: DWORD, + iRepeatMSec: DWORD, + iBounceMSec: DWORD, } LPFILTERKEYS :: ^FILTERKEYS