diff --git a/extra/windows/user32/user32.factor b/extra/windows/user32/user32.factor index 59378c79ed..c8f6a82fb5 100644 --- a/extra/windows/user32/user32.factor +++ b/extra/windows/user32/user32.factor @@ -5,43 +5,43 @@ windows.types shuffle ; IN: windows.user32 ! HKL for ActivateKeyboardLayout -: HKL_PREV 0 ; -: HKL_NEXT 1 ; +: HKL_PREV 0 ; inline +: HKL_NEXT 1 ; inline -: CW_USEDEFAULT HEX: 80000000 ; +: CW_USEDEFAULT HEX: 80000000 ; inline -: WS_OVERLAPPED HEX: 00000000 ; -: WS_POPUP HEX: 80000000 ; -: WS_CHILD HEX: 40000000 ; -: WS_MINIMIZE HEX: 20000000 ; -: WS_VISIBLE HEX: 10000000 ; -: WS_DISABLED HEX: 08000000 ; -: WS_CLIPSIBLINGS HEX: 04000000 ; -: WS_CLIPCHILDREN HEX: 02000000 ; -: WS_MAXIMIZE HEX: 01000000 ; -: WS_CAPTION HEX: 00C00000 ; ! /* WS_BORDER | WS_DLGFRAME */ -: WS_BORDER HEX: 00800000 ; -: WS_DLGFRAME HEX: 00400000 ; -: WS_VSCROLL HEX: 00200000 ; -: WS_HSCROLL HEX: 00100000 ; -: WS_SYSMENU HEX: 00080000 ; -: WS_THICKFRAME HEX: 00040000 ; -: WS_GROUP HEX: 00020000 ; -: WS_TABSTOP HEX: 00010000 ; -: WS_MINIMIZEBOX HEX: 00020000 ; -: WS_MAXIMIZEBOX HEX: 00010000 ; +: WS_OVERLAPPED HEX: 00000000 ; inline +: WS_POPUP HEX: 80000000 ; inline +: WS_CHILD HEX: 40000000 ; inline +: WS_MINIMIZE HEX: 20000000 ; inline +: WS_VISIBLE HEX: 10000000 ; inline +: WS_DISABLED HEX: 08000000 ; inline +: WS_CLIPSIBLINGS HEX: 04000000 ; inline +: WS_CLIPCHILDREN HEX: 02000000 ; inline +: WS_MAXIMIZE HEX: 01000000 ; inline +: WS_CAPTION HEX: 00C00000 ; inline +: WS_BORDER HEX: 00800000 ; inline +: WS_DLGFRAME HEX: 00400000 ; inline +: WS_VSCROLL HEX: 00200000 ; inline +: WS_HSCROLL HEX: 00100000 ; inline +: WS_SYSMENU HEX: 00080000 ; inline +: WS_THICKFRAME HEX: 00040000 ; inline +: WS_GROUP HEX: 00020000 ; inline +: WS_TABSTOP HEX: 00010000 ; inline +: WS_MINIMIZEBOX HEX: 00020000 ; inline +: WS_MAXIMIZEBOX HEX: 00010000 ; inline ! Common window styles -: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ; +: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ; foldable inline -: WS_POPUPWINDOW WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ; +: WS_POPUPWINDOW WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ; foldable inline -: WS_CHILDWINDOW WS_CHILD ; +: WS_CHILDWINDOW WS_CHILD ; inline -: WS_TILED WS_OVERLAPPED ; -: WS_ICONIC WS_MINIMIZE ; -: WS_SIZEBOX WS_THICKFRAME ; -: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; +: WS_TILED WS_OVERLAPPED ; inline +: WS_ICONIC WS_MINIMIZE ; inline +: WS_SIZEBOX WS_THICKFRAME ; inline +: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; inline ! Extended window styles @@ -65,72 +65,74 @@ IN: windows.user32 : WS_EX_CONTROLPARENT HEX: 00010000 ; inline : WS_EX_STATICEDGE HEX: 00020000 ; inline : WS_EX_APPWINDOW HEX: 00040000 ; inline -: WS_EX_OVERLAPPEDWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; inline -: WS_EX_PALETTEWINDOW - WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor WS_EX_TOPMOST bitor ; inline +: WS_EX_OVERLAPPEDWINDOW ( -- n ) + WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable inline +: WS_EX_PALETTEWINDOW ( -- n ) + WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor + WS_EX_TOPMOST bitor ; foldable inline -: CS_VREDRAW HEX: 0001 ; -: CS_HREDRAW HEX: 0002 ; -: CS_DBLCLKS HEX: 0008 ; -: CS_OWNDC HEX: 0020 ; -: CS_CLASSDC HEX: 0040 ; -: CS_PARENTDC HEX: 0080 ; -: CS_NOCLOSE HEX: 0200 ; -: CS_SAVEBITS HEX: 0800 ; -: CS_BYTEALIGNCLIENT HEX: 1000 ; -: CS_BYTEALIGNWINDOW HEX: 2000 ; -: CS_GLOBALCLASS HEX: 4000 ; +: CS_VREDRAW HEX: 0001 ; inline +: CS_HREDRAW HEX: 0002 ; inline +: CS_DBLCLKS HEX: 0008 ; inline +: CS_OWNDC HEX: 0020 ; inline +: CS_CLASSDC HEX: 0040 ; inline +: CS_PARENTDC HEX: 0080 ; inline +: CS_NOCLOSE HEX: 0200 ; inline +: CS_SAVEBITS HEX: 0800 ; inline +: CS_BYTEALIGNCLIENT HEX: 1000 ; inline +: CS_BYTEALIGNWINDOW HEX: 2000 ; inline +: CS_GLOBALCLASS HEX: 4000 ; inline -: COLOR_SCROLLBAR 0 ; -: COLOR_BACKGROUND 1 ; -: COLOR_ACTIVECAPTION 2 ; -: COLOR_INACTIVECAPTION 3 ; -: COLOR_MENU 4 ; -: COLOR_WINDOW 5 ; -: COLOR_WINDOWFRAME 6 ; -: COLOR_MENUTEXT 7 ; -: COLOR_WINDOWTEXT 8 ; -: COLOR_CAPTIONTEXT 9 ; -: COLOR_ACTIVEBORDER 10 ; -: COLOR_INACTIVEBORDER 11 ; -: COLOR_APPWORKSPACE 12 ; -: COLOR_HIGHLIGHT 13 ; -: COLOR_HIGHLIGHTTEXT 14 ; -: COLOR_BTNFACE 15 ; -: COLOR_BTNSHADOW 16 ; -: COLOR_GRAYTEXT 17 ; -: COLOR_BTNTEXT 18 ; -: COLOR_INACTIVECAPTIONTEXT 19 ; -: COLOR_BTNHIGHLIGHT 20 ; +: COLOR_SCROLLBAR 0 ; inline +: COLOR_BACKGROUND 1 ; inline +: COLOR_ACTIVECAPTION 2 ; inline +: COLOR_INACTIVECAPTION 3 ; inline +: COLOR_MENU 4 ; inline +: COLOR_WINDOW 5 ; inline +: COLOR_WINDOWFRAME 6 ; inline +: COLOR_MENUTEXT 7 ; inline +: COLOR_WINDOWTEXT 8 ; inline +: COLOR_CAPTIONTEXT 9 ; inline +: COLOR_ACTIVEBORDER 10 ; inline +: COLOR_INACTIVEBORDER 11 ; inline +: COLOR_APPWORKSPACE 12 ; inline +: COLOR_HIGHLIGHT 13 ; inline +: COLOR_HIGHLIGHTTEXT 14 ; inline +: COLOR_BTNFACE 15 ; inline +: COLOR_BTNSHADOW 16 ; inline +: COLOR_GRAYTEXT 17 ; inline +: COLOR_BTNTEXT 18 ; inline +: COLOR_INACTIVECAPTIONTEXT 19 ; inline +: COLOR_BTNHIGHLIGHT 20 ; inline -: IDI_APPLICATION 32512 ; -: IDI_HAND 32513 ; -: IDI_QUESTION 32514 ; -: IDI_EXCLAMATION 32515 ; -: IDI_ASTERISK 32516 ; -: IDI_WINLOGO 32517 ; +: IDI_APPLICATION 32512 ; inline +: IDI_HAND 32513 ; inline +: IDI_QUESTION 32514 ; inline +: IDI_EXCLAMATION 32515 ; inline +: IDI_ASTERISK 32516 ; inline +: IDI_WINLOGO 32517 ; inline ! ShowWindow() Commands -: SW_HIDE 0 ; -: SW_SHOWNORMAL 1 ; -: SW_NORMAL 1 ; -: SW_SHOWMINIMIZED 2 ; -: SW_SHOWMAXIMIZED 3 ; -: SW_MAXIMIZE 3 ; -: SW_SHOWNOACTIVATE 4 ; -: SW_SHOW 5 ; -: SW_MINIMIZE 6 ; -: SW_SHOWMINNOACTIVE 7 ; -: SW_SHOWNA 8 ; -: SW_RESTORE 9 ; -: SW_SHOWDEFAULT 10 ; -: SW_FORCEMINIMIZE 11 ; -: SW_MAX 11 ; +: SW_HIDE 0 ; inline +: SW_SHOWNORMAL 1 ; inline +: SW_NORMAL 1 ; inline +: SW_SHOWMINIMIZED 2 ; inline +: SW_SHOWMAXIMIZED 3 ; inline +: SW_MAXIMIZE 3 ; inline +: SW_SHOWNOACTIVATE 4 ; inline +: SW_SHOW 5 ; inline +: SW_MINIMIZE 6 ; inline +: SW_SHOWMINNOACTIVE 7 ; inline +: SW_SHOWNA 8 ; inline +: SW_RESTORE 9 ; inline +: SW_SHOWDEFAULT 10 ; inline +: SW_FORCEMINIMIZE 11 ; inline +: SW_MAX 11 ; inline ! PeekMessage -: PM_NOREMOVE 0 ; -: PM_REMOVE 1 ; -: PM_NOYIELD 2 ; +: PM_NOREMOVE 0 ; inline +: PM_REMOVE 1 ; inline +: PM_NOYIELD 2 ; inline ! : PM_QS_INPUT (QS_INPUT << 16) ; ! : PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ; ! : PM_QS_PAINT (QS_PAINT << 16) ; @@ -140,22 +142,22 @@ IN: windows.user32 ! ! Standard Cursor IDs ! -: IDC_ARROW 32512 ; -: IDC_IBEAM 32513 ; -: IDC_WAIT 32514 ; -: IDC_CROSS 32515 ; -: IDC_UPARROW 32516 ; -: IDC_SIZE 32640 ; ! OBSOLETE: use IDC_SIZEALL -: IDC_ICON 32641 ; ! OBSOLETE: use IDC_ARROW -: IDC_SIZENWSE 32642 ; -: IDC_SIZENESW 32643 ; -: IDC_SIZEWE 32644 ; -: IDC_SIZENS 32645 ; -: IDC_SIZEALL 32646 ; -: IDC_NO 32648 ; ! not in win3.1 -: IDC_HAND 32649 ; -: IDC_APPSTARTING 32650 ; ! not in win3.1 -: IDC_HELP 32651 ; +: IDC_ARROW 32512 ; inline +: IDC_IBEAM 32513 ; inline +: IDC_WAIT 32514 ; inline +: IDC_CROSS 32515 ; inline +: IDC_UPARROW 32516 ; inline +: IDC_SIZE 32640 ; inline ! OBSOLETE: use IDC_SIZEALL +: IDC_ICON 32641 ; inline ! OBSOLETE: use IDC_ARROW +: IDC_SIZENWSE 32642 ; inline +: IDC_SIZENESW 32643 ; inline +: IDC_SIZEWE 32644 ; inline +: IDC_SIZENS 32645 ; inline +: IDC_SIZEALL 32646 ; inline +: IDC_NO 32648 ; inline ! not in win3.1 +: IDC_HAND 32649 ; inline +: IDC_APPSTARTING 32650 ; inline ! not in win3.1 +: IDC_HELP 32651 ; inline ! Predefined Clipboard Formats : CF_TEXT 1 ; inline @@ -244,9 +246,43 @@ IN: windows.user32 : VK_DELETE HEX: 2E ; inline : VK_HELP HEX: 2F ; inline -! VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) -! 0x40 : unassigned -! VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) +: VK_0 CHAR: 0 ; inline +: VK_1 CHAR: 1 ; inline +: VK_2 CHAR: 2 ; inline +: VK_3 CHAR: 3 ; inline +: VK_4 CHAR: 4 ; inline +: VK_5 CHAR: 5 ; inline +: VK_6 CHAR: 6 ; inline +: VK_7 CHAR: 7 ; inline +: VK_8 CHAR: 8 ; inline +: VK_9 CHAR: 9 ; inline + +: VK_A CHAR: A ; inline +: VK_B CHAR: B ; inline +: VK_C CHAR: C ; inline +: VK_D CHAR: D ; inline +: VK_E CHAR: E ; inline +: VK_F CHAR: F ; inline +: VK_G CHAR: G ; inline +: VK_H CHAR: H ; inline +: VK_I CHAR: I ; inline +: VK_J CHAR: J ; inline +: VK_K CHAR: K ; inline +: VK_L CHAR: L ; inline +: VK_M CHAR: M ; inline +: VK_N CHAR: N ; inline +: VK_O CHAR: O ; inline +: VK_P CHAR: P ; inline +: VK_Q CHAR: Q ; inline +: VK_R CHAR: R ; inline +: VK_S CHAR: S ; inline +: VK_T CHAR: T ; inline +: VK_U CHAR: U ; inline +: VK_V CHAR: V ; inline +: VK_W CHAR: W ; inline +: VK_X CHAR: X ; inline +: VK_Y CHAR: Y ; inline +: VK_Z CHAR: Z ; inline : VK_LWIN HEX: 5B ; inline : VK_RWIN HEX: 5C ; inline @@ -417,47 +453,59 @@ IN: windows.user32 ! Some fields are not defined for win64 ! Window field offsets for GetWindowLong() -: GWL_WNDPROC -4 ; -: GWL_HINSTANCE -6 ; -: GWL_HWNDPARENT -8 ; -: GWL_USERDATA -21 ; -: GWL_ID -12 ; +: GWL_WNDPROC -4 ; inline +: GWL_HINSTANCE -6 ; inline +: GWL_HWNDPARENT -8 ; inline +: GWL_USERDATA -21 ; inline +: GWL_ID -12 ; inline -: GWL_STYLE -16 ; -: GWL_EXSTYLE -20 ; +: GWL_STYLE -16 ; inline +: GWL_EXSTYLE -20 ; inline -: GWLP_WNDPROC -4 ; -: GWLP_HINSTANCE -6 ; -: GWLP_HWNDPARENT -8 ; -: GWLP_USERDATA -21 ; -: GWLP_ID -12 ; +: GWLP_WNDPROC -4 ; inline +: GWLP_HINSTANCE -6 ; inline +: GWLP_HWNDPARENT -8 ; inline +: GWLP_USERDATA -21 ; inline +: GWLP_ID -12 ; inline ! Class field offsets for GetClassLong() -: GCL_MENUNAME -8 ; -: GCL_HBRBACKGROUND -10 ; -: GCL_HCURSOR -12 ; -: GCL_HICON -14 ; -: GCL_HMODULE -16 ; -: GCL_WNDPROC -24 ; -: GCL_HICONSM -34 ; -: GCL_CBWNDEXTRA -18 ; -: GCL_CBCLSEXTRA -20 ; -: GCL_STYLE -26 ; -: GCW_ATOM -32 ; +: GCL_MENUNAME -8 ; inline +: GCL_HBRBACKGROUND -10 ; inline +: GCL_HCURSOR -12 ; inline +: GCL_HICON -14 ; inline +: GCL_HMODULE -16 ; inline +: GCL_WNDPROC -24 ; inline +: GCL_HICONSM -34 ; inline +: GCL_CBWNDEXTRA -18 ; inline +: GCL_CBCLSEXTRA -20 ; inline +: GCL_STYLE -26 ; inline +: GCW_ATOM -32 ; inline -: GCLP_MENUNAME -8 ; -: GCLP_HBRBACKGROUND -10 ; -: GCLP_HCURSOR -12 ; -: GCLP_HICON -14 ; -: GCLP_HMODULE -16 ; -: GCLP_WNDPROC -24 ; -: GCLP_HICONSM -34 ; +: GCLP_MENUNAME -8 ; inline +: GCLP_HBRBACKGROUND -10 ; inline +: GCLP_HCURSOR -12 ; inline +: GCLP_HICON -14 ; inline +: GCLP_HMODULE -16 ; inline +: GCLP_WNDPROC -24 ; inline +: GCLP_HICONSM -34 ; inline -: MB_ICONASTERISK HEX: 00000040 ; -: MB_ICONEXCLAMATION HEX: 00000030 ; -: MB_ICONHAND HEX: 00000010 ; -: MB_ICONQUESTION HEX: 00000020 ; -: MB_OK HEX: 00000000 ; +: MB_ICONASTERISK HEX: 00000040 ; inline +: MB_ICONEXCLAMATION HEX: 00000030 ; inline +: MB_ICONHAND HEX: 00000010 ; inline +: MB_ICONQUESTION HEX: 00000020 ; inline +: MB_OK HEX: 00000000 ; inline + +: FVIRTKEY TRUE ; inline +: FNOINVERT 2 ; inline +: FSHIFT 4 ; inline +: FCONTROL 8 ; inline +: FALT 16 ; inline + +: MAPVK_VK_TO_VSC 0 ; inline +: MAPVK_VSC_TO_VK 1 ; inline +: MAPVK_VK_TO_CHAR 2 ; inline +: MAPVK_VSC_TO_VK_EX 3 ; inline +: MAPVK_VK_TO_VSC_EX 3 ; inline : TME_HOVER 1 ; inline : TME_LEAVE 2 ; inline @@ -549,13 +597,15 @@ FUNCTION: BOOL CloseClipboard ( ) ; ! FUNCTION: CloseWindow ! FUNCTION: CloseWindowStation ! FUNCTION: CopyAcceleratorTableA -! FUNCTION: CopyAcceleratorTableW +FUNCTION: int CopyAcceleratorTableW ( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries ) ; +: CopyAcceleratorTable CopyAcceleratorTableW ; inline ! FUNCTION: CopyIcon ! FUNCTION: CopyImage ! FUNCTION: CopyRect ! FUNCTION: CountClipboardFormats ! FUNCTION: CreateAcceleratorTableA -! FUNCTION: CreateAcceleratorTableW +FUNCTION: HACCEL CreateAcceleratorTableW ( LPACCEL lpaccl, int cEntries ) ; +: CreateAcceleratorTable CreateAcceleratorTableW ; inline ! FUNCTION: CreateCaret ! FUNCTION: CreateCursor ! FUNCTION: CreateDesktopA @@ -643,7 +693,7 @@ FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lP : DefWindowProc DefWindowProcW ; inline ! FUNCTION: DeleteMenu ! FUNCTION: DeregisterShellHookWindow -! FUNCTION: DestroyAcceleratorTable +FUNCTION: BOOL DestroyAcceleratorTable ( HACCEL hAccel ) ; ! FUNCTION: DestroyCaret ! FUNCTION: DestroyCursor ! FUNCTION: DestroyIcon @@ -953,7 +1003,7 @@ FUNCTION: BOOL IsZoomed ( HWND hWnd ) ; ! FUNCTION: KillSystemTimer ! FUNCTION: KillTimer ! FUNCTION: LoadAcceleratorsA -! FUNCTION: LoadAcceleratorsW +FUNCTION: HACCEL LoadAcceleratorsW ( HINSTANCE hInstance, LPCTSTR lpTableName ) ; ! FUNCTION: LoadBitmapA ! FUNCTION: LoadBitmapW ! FUNCTION: LoadCursorFromFileA @@ -988,10 +1038,13 @@ FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCTSTR lpIconName ) ; ! FUNCTION: LookupIconIdFromDirectory ! FUNCTION: LookupIconIdFromDirectoryEx ! FUNCTION: MapDialogRect -! FUNCTION: MapVirtualKeyA -! FUNCTION: MapVirtualKeyExA -! FUNCTION: MapVirtualKeyExW -! FUNCTION: MapVirtualKeyW + +FUNCTION: UINT MapVirtualKeyW ( UINT uCode, UINT uMapType ) ; +: MapVirtualKey MapVirtualKeyW ; inline + +FUNCTION: UINT MapVirtualKeyExW ( UINT uCode, UINT uMapType, HKL dwhkl ) ; +: MapVirtualKeyEx MapVirtualKeyExW ; inline + ! FUNCTION: MapWindowPoints ! FUNCTION: MB_GetString ! FUNCTION: MBToWCSEx @@ -1050,7 +1103,6 @@ FUNCTION: int MessageBoxExW ( ! FUNCTION: mouse_event - FUNCTION: BOOL MoveWindow ( HWND hWnd, int X, @@ -1059,7 +1111,6 @@ FUNCTION: BOOL MoveWindow ( int nHeight, BOOL bRepaint ) ; - ! FUNCTION: MsgWaitForMultipleObjects ! FUNCTION: MsgWaitForMultipleObjectsEx ! FUNCTION: NotifyWinEvent @@ -1264,7 +1315,9 @@ FUNCTION: BOOL TrackMouseEvent ( LPTRACKMOUSEEVENT lpEventTrack ) ; ! FUNCTION: TrackPopupMenuEx ! FUNCTION: TranslateAccelerator ! FUNCTION: TranslateAcceleratorA -! FUNCTION: TranslateAcceleratorW +FUNCTION: int TranslateAcceleratorW ( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg ) ; +: TranslateAccelerator TranslateAcceleratorW ; inline + ! FUNCTION: TranslateMDISysAccel FUNCTION: BOOL TranslateMessage ( MSG* lpMsg ) ;