more struct changes
parent
ae001ce75c
commit
111c0f6b89
|
@ -6,7 +6,7 @@ math.rectangles namespaces parser sequences shuffle
|
||||||
struct-arrays ui.backend.windows vectors windows.com
|
struct-arrays ui.backend.windows vectors windows.com
|
||||||
windows.dinput windows.dinput.constants windows.errors
|
windows.dinput windows.dinput.constants windows.errors
|
||||||
windows.kernel32 windows.messages windows.ole32
|
windows.kernel32 windows.messages windows.ole32
|
||||||
windows.user32 ;
|
windows.user32 classes.struct ;
|
||||||
IN: game-input.dinput
|
IN: game-input.dinput
|
||||||
CONSTANT: MOUSE-BUFFER-SIZE 16
|
CONSTANT: MOUSE-BUFFER-SIZE 16
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ SYMBOLS: +dinput+ +keyboard-device+ +keyboard-state+
|
||||||
[ remove-controller ] each ;
|
[ remove-controller ] each ;
|
||||||
|
|
||||||
: device-interface? ( dbt-broadcast-hdr -- ? )
|
: device-interface? ( dbt-broadcast-hdr -- ? )
|
||||||
DEV_BROADCAST_HDR-dbch_devicetype DBT_DEVTYP_DEVICEINTERFACE = ;
|
dbch_devicetype>> DBT_DEVTYP_DEVICEINTERFACE = ;
|
||||||
|
|
||||||
: device-arrived ( dbt-broadcast-hdr -- )
|
: device-arrived ( dbt-broadcast-hdr -- )
|
||||||
device-interface? [ find-controllers ] when ;
|
device-interface? [ find-controllers ] when ;
|
||||||
|
@ -185,9 +185,9 @@ TUPLE: window-rect < rect window-loc ;
|
||||||
{ 0 0 } >>dim ;
|
{ 0 0 } >>dim ;
|
||||||
|
|
||||||
: (device-notification-filter) ( -- DEV_BROADCAST_DEVICEW )
|
: (device-notification-filter) ( -- DEV_BROADCAST_DEVICEW )
|
||||||
"DEV_BROADCAST_DEVICEW" <c-object>
|
DEV_BROADCAST_DEVICEW <struct>
|
||||||
"DEV_BROADCAST_DEVICEW" heap-size over set-DEV_BROADCAST_DEVICEW-dbcc_size
|
DEV_BROADCAST_DEVICEW heap-size >>dbcc_size
|
||||||
DBT_DEVTYP_DEVICEINTERFACE over set-DEV_BROADCAST_DEVICEW-dbcc_devicetype ;
|
DBT_DEVTYP_DEVICEINTERFACE >>dbcc_devicetype ;
|
||||||
|
|
||||||
: create-device-change-window ( -- )
|
: create-device-change-window ( -- )
|
||||||
<zero-window-rect> WS_OVERLAPPEDWINDOW 0 create-window
|
<zero-window-rect> WS_OVERLAPPEDWINDOW 0 create-window
|
||||||
|
@ -239,11 +239,13 @@ M: dinput-game-input-backend (close-game-input)
|
||||||
delete-dinput ;
|
delete-dinput ;
|
||||||
|
|
||||||
M: dinput-game-input-backend (reset-game-input)
|
M: dinput-game-input-backend (reset-game-input)
|
||||||
|
global [
|
||||||
{
|
{
|
||||||
+dinput+ +keyboard-device+ +keyboard-state+
|
+dinput+ +keyboard-device+ +keyboard-state+
|
||||||
+controller-devices+ +controller-guids+
|
+controller-devices+ +controller-guids+
|
||||||
+device-change-window+ +device-change-handle+
|
+device-change-window+ +device-change-handle+
|
||||||
} [ f swap set-global ] each ;
|
} [ off ] each
|
||||||
|
] bind ;
|
||||||
|
|
||||||
M: dinput-game-input-backend get-controllers
|
M: dinput-game-input-backend get-controllers
|
||||||
+controller-devices+ get
|
+controller-devices+ get
|
||||||
|
|
|
@ -751,17 +751,18 @@ M: windows-ui-backend beep ( -- )
|
||||||
|
|
||||||
: fullscreen-RECT ( hwnd -- RECT )
|
: fullscreen-RECT ( hwnd -- RECT )
|
||||||
MONITOR_DEFAULTTONEAREST MonitorFromWindow
|
MONITOR_DEFAULTTONEAREST MonitorFromWindow
|
||||||
"MONITORINFOEX" <c-object> dup length over set-MONITORINFOEX-cbSize
|
MONITORINFOEX <struct>
|
||||||
[ GetMonitorInfo win32-error=0/f ] keep MONITORINFOEX-rcMonitor ;
|
MONITORINFOEX heap-size >>cbSize
|
||||||
|
[ GetMonitorInfo win32-error=0/f ] keep rcMonitor>> ;
|
||||||
|
|
||||||
: client-area>RECT ( hwnd -- RECT )
|
: client-area>RECT ( hwnd -- RECT )
|
||||||
"RECT" <c-object>
|
RECT <struct>
|
||||||
[ GetClientRect win32-error=0/f ]
|
[ GetClientRect win32-error=0/f ]
|
||||||
[ "POINT" byte-array>struct-array [ ClientToScreen drop ] with each ]
|
[ "POINT" byte-array>struct-array [ ClientToScreen drop ] with each ]
|
||||||
[ nip ] 2tri ;
|
[ nip ] 2tri ;
|
||||||
|
|
||||||
: hwnd>RECT ( hwnd -- RECT )
|
: hwnd>RECT ( hwnd -- RECT )
|
||||||
"RECT" <c-object> [ GetWindowRect win32-error=0/f ] keep ;
|
RECT <struct> [ GetWindowRect win32-error=0/f ] keep ;
|
||||||
|
|
||||||
M: windows-ui-backend (grab-input) ( handle -- )
|
M: windows-ui-backend (grab-input) ( handle -- )
|
||||||
0 ShowCursor drop
|
0 ShowCursor drop
|
||||||
|
|
|
@ -216,17 +216,17 @@ CONSTANT: TRUE 1
|
||||||
|
|
||||||
! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
|
! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
|
||||||
|
|
||||||
C-STRUCT: WNDCLASS
|
STRUCT: WNDCLASS
|
||||||
{ "UINT" "style" }
|
{ style UINT }
|
||||||
{ "WNDPROC" "lpfnWndProc" }
|
{ lpfnWndProc WNDPROC }
|
||||||
{ "int" "cbClsExtra" }
|
{ cbClsExtra int }
|
||||||
{ "int" "cbWndExtra" }
|
{ cbWndExtra int }
|
||||||
{ "HINSTANCE" "hInstance" }
|
{ hInstance HINSTANCE }
|
||||||
{ "HICON" "hIcon" }
|
{ hIcon HICON }
|
||||||
{ "HCURSOR" "hCursor" }
|
{ hCursor HCURSOR }
|
||||||
{ "HBRUSH" "hbrBackground" }
|
{ hbrBackground HBRUSH }
|
||||||
{ "LPCTSTR" "lpszMenuName" }
|
{ lpszMenuName LPCTSTR }
|
||||||
{ "LPCTSTR" "lpszClassName" } ;
|
{ lpszClassName LPCTSTR } ;
|
||||||
|
|
||||||
STRUCT: WNDCLASSEX
|
STRUCT: WNDCLASSEX
|
||||||
{ cbSize UINT }
|
{ cbSize UINT }
|
||||||
|
@ -329,12 +329,6 @@ STRUCT: PIXELFORMATDESCRIPTOR
|
||||||
{ dwVisibleMask DWORD }
|
{ dwVisibleMask DWORD }
|
||||||
{ dwDamageMask DWORD } ;
|
{ dwDamageMask DWORD } ;
|
||||||
|
|
||||||
C-STRUCT: RECT
|
|
||||||
{ "LONG" "left" }
|
|
||||||
{ "LONG" "top" }
|
|
||||||
{ "LONG" "right" }
|
|
||||||
{ "LONG" "bottom" } ;
|
|
||||||
|
|
||||||
: <RECT> ( loc dim -- RECT )
|
: <RECT> ( loc dim -- RECT )
|
||||||
[ RECT <struct> ] 2dip
|
[ RECT <struct> ] 2dip
|
||||||
[ drop [ first >>left ] [ second >>top ] bi ]
|
[ drop [ first >>left ] [ second >>top ] bi ]
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (C) 2005, 2006 Doug Coleman.
|
! Copyright (C) 2005, 2006 Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien alien.syntax parser namespaces kernel math
|
USING: alien alien.syntax parser namespaces kernel math
|
||||||
windows.types generalizations math.bitwise classes.struct ;
|
windows.types generalizations math.bitwise classes.struct
|
||||||
|
literals ;
|
||||||
IN: windows.user32
|
IN: windows.user32
|
||||||
|
|
||||||
! HKL for ActivateKeyboardLayout
|
! HKL for ActivateKeyboardLayout
|
||||||
|
@ -74,8 +75,10 @@ CONSTANT: WS_EX_RIGHTSCROLLBAR HEX: 00000000
|
||||||
CONSTANT: WS_EX_CONTROLPARENT HEX: 00010000
|
CONSTANT: WS_EX_CONTROLPARENT HEX: 00010000
|
||||||
CONSTANT: WS_EX_STATICEDGE HEX: 00020000
|
CONSTANT: WS_EX_STATICEDGE HEX: 00020000
|
||||||
CONSTANT: WS_EX_APPWINDOW HEX: 00040000
|
CONSTANT: WS_EX_APPWINDOW HEX: 00040000
|
||||||
|
|
||||||
: WS_EX_OVERLAPPEDWINDOW ( -- n )
|
: WS_EX_OVERLAPPEDWINDOW ( -- n )
|
||||||
WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable
|
WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable
|
||||||
|
|
||||||
: WS_EX_PALETTEWINDOW ( -- n )
|
: WS_EX_PALETTEWINDOW ( -- n )
|
||||||
{ WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW WS_EX_TOPMOST } flags ; foldable
|
{ WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW WS_EX_TOPMOST } flags ; foldable
|
||||||
|
|
||||||
|
@ -538,26 +541,26 @@ CONSTANT: DEVICE_NOTIFY_SERVICE_HANDLE 1
|
||||||
|
|
||||||
CONSTANT: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4
|
CONSTANT: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4
|
||||||
|
|
||||||
C-STRUCT: DEV_BROADCAST_HDR
|
STRUCT: DEV_BROADCAST_HDR
|
||||||
{ "DWORD" "dbch_size" }
|
{ dbch_size DWORD }
|
||||||
{ "DWORD" "dbch_devicetype" }
|
{ dbch_devicetype DWORD }
|
||||||
{ "DWORD" "dbch_reserved" } ;
|
{ dbch_reserved DWORD } ;
|
||||||
|
|
||||||
C-STRUCT: DEV_BROADCAST_DEVICEW
|
STRUCT: DEV_BROADCAST_DEVICEW
|
||||||
{ "DWORD" "dbcc_size" }
|
{ dbcc_size DWORD }
|
||||||
{ "DWORD" "dbcc_devicetype" }
|
{ dbcc_devicetype DWORD }
|
||||||
{ "DWORD" "dbcc_reserved" }
|
{ dbcc_reserved DWORD }
|
||||||
{ "GUID" "dbcc_classguid" }
|
{ dbcc_classguid GUID }
|
||||||
{ { "WCHAR" 1 } "dbcc_name" } ;
|
{ dbcc_name WCHAR[1] } ;
|
||||||
|
|
||||||
CONSTANT: CCHDEVICENAME 32
|
CONSTANT: CCHDEVICENAME 32
|
||||||
|
|
||||||
C-STRUCT: MONITORINFOEX
|
STRUCT: MONITORINFOEX
|
||||||
{ "DWORD" "cbSize" }
|
{ cbSize DWORD }
|
||||||
{ "RECT" "rcMonitor" }
|
{ rcMonitor RECT }
|
||||||
{ "RECT" "rcWork" }
|
{ rcWork RECT }
|
||||||
{ "DWORD" "dwFlags" }
|
{ dwFlags DWORD }
|
||||||
{ { "TCHAR" CCHDEVICENAME } "szDevice" } ;
|
{ szDevice { "TCHAR" $ CCHDEVICENAME } } ;
|
||||||
|
|
||||||
TYPEDEF: MONITORINFOEX* LPMONITORINFOEX
|
TYPEDEF: MONITORINFOEX* LPMONITORINFOEX
|
||||||
TYPEDEF: MONITORINFOEX* LPMONITORINFO
|
TYPEDEF: MONITORINFOEX* LPMONITORINFO
|
||||||
|
|
Loading…
Reference in New Issue