Changeset 6972 for trunk/src/user32/window.cpp
- Timestamp:
- Oct 9, 2001, 7:18:05 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/window.cpp
r6783 r6972 1 /* $Id: window.cpp,v 1.10 7 2001-09-22 18:21:01 sandervlExp $ */1 /* $Id: window.cpp,v 1.108 2001-10-09 05:18:04 phaller Exp $ */ 2 2 /* 3 3 * Win32 window apis for OS/2 … … 21 21 */ 22 22 23 #include <odin.h> 24 #include <odinwrap.h> 25 #include <os2sel.h> 26 23 27 #include <os2win.h> 24 28 #include <misc.h> … … 43 47 #include "dbglocal.h" 44 48 45 //****************************************************************************** 46 //****************************************************************************** 47 HWND WIN32API CreateWindowExA(DWORD exStyle, LPCSTR className, 48 LPCSTR windowName, DWORD style, INT x, 49 INT y, INT width, INT height, 50 HWND parent, HMENU menu, 51 HINSTANCE instance, LPVOID data ) 49 ODINDEBUGCHANNEL(USER32-WINDOW) 50 51 52 //****************************************************************************** 53 //****************************************************************************** 54 ODINFUNCTION12(HWND, CreateWindowExA, 55 DWORD, exStyle, 56 LPCSTR, className, 57 LPCSTR, windowName, 58 DWORD, style, 59 INT, x, 60 INT, y, 61 INT, width, 62 INT, height, 63 HWND, parent, 64 HMENU, menu, 65 HINSTANCE, instance, 66 LPVOID, data ) 52 67 { 53 68 Win32BaseWindow *window; … … 133 148 } 134 149 HWND hwnd = window->getWindowHandle(); 150 151 // set myself as last active popup / window 152 window->setLastActive( hwnd ); 153 135 154 RELEASE_WNDOBJ(window); 136 155 return hwnd; … … 138 157 //****************************************************************************** 139 158 //****************************************************************************** 140 HWND WIN32API CreateWindowExW(DWORD exStyle, LPCWSTR className, 141 LPCWSTR windowName, DWORD style, INT x, 142 INT y, INT width, INT height, 143 HWND parent, HMENU menu, 144 HINSTANCE instance, LPVOID data ) 159 ODINFUNCTION12(HWND, CreateWindowExW, 160 DWORD, exStyle, 161 LPCWSTR, className, 162 LPCWSTR, windowName, 163 DWORD, style, 164 INT, x, 165 INT, y, 166 INT, width, 167 INT, height, 168 HWND, parent, 169 HMENU, menu, 170 HINSTANCE, instance, 171 LPVOID, data ) 145 172 { 146 173 Win32BaseWindow *window; … … 227 254 } 228 255 HWND hwnd = window->getWindowHandle(); 256 257 // set myself as last active popup / window 258 window->setLastActive( hwnd ); 259 229 260 RELEASE_WNDOBJ(window); 230 261 return hwnd; … … 232 263 //****************************************************************************** 233 264 //****************************************************************************** 234 HWND WIN32API CreateFakeWindowEx(HWND hwndOS2) 265 ODINFUNCTION1(HWND, CreateFakeWindowEx, 266 HWND, hwndOS2) 235 267 { 236 268 Win32BaseWindow *window; … … 243 275 } 244 276 HWND hwnd = window->getWindowHandle(); 277 278 // set myself as last active popup / window 279 window->setLastActive( hwnd ); 280 245 281 RELEASE_WNDOBJ(window); 246 282 return hwnd; … … 248 284 //****************************************************************************** 249 285 //****************************************************************************** 250 BOOL WIN32API DestroyWindow(HWND hwnd) 286 ODINFUNCTION1(BOOL, DestroyWindow, 287 HWND, hwnd) 251 288 { 252 289 Win32BaseWindow *window; … … 265 302 //****************************************************************************** 266 303 //****************************************************************************** 267 HWND WIN32API SetActiveWindow( HWND hwnd) 304 ODINFUNCTION1(HWND, SetActiveWindow, 305 HWND, hwnd) 268 306 { 269 307 Win32BaseWindow *window; … … 277 315 } 278 316 hwndActive = window->SetActiveWindow(); 317 318 // check last active popup window 319 if (hwndActive) 320 { 321 // TODO: 322 // set last active popup window to the ancestor window 323 dprintf(("support for last active popup incorrectly implemented")); 324 } 325 279 326 RELEASE_WNDOBJ(window); 280 327 return hwndActive; … … 283 330 //Note: does not set last error if no parent (verified in NT4, SP6) 284 331 //****************************************************************************** 285 HWND WIN32API GetParent( HWND hwnd) 332 ODINFUNCTION1(HWND, GetParent, 333 HWND, hwnd) 286 334 { 287 335 Win32BaseWindow *window; … … 301 349 //****************************************************************************** 302 350 //****************************************************************************** 303 HWND WIN32API SetParent( HWND hwndChild, HWND hwndNewParent) 351 ODINFUNCTION2(HWND, SetParent, 352 HWND, hwndChild, 353 HWND, hwndNewParent) 304 354 { 305 355 Win32BaseWindow *window; … … 330 380 //****************************************************************************** 331 381 //****************************************************************************** 332 BOOL WIN32API IsChild( HWND hwndParent, HWND hwnd) 382 ODINFUNCTION2(BOOL, IsChild, 383 HWND, hwndParent, 384 HWND, hwnd) 333 385 { 334 386 Win32BaseWindow *window; … … 348 400 //****************************************************************************** 349 401 //****************************************************************************** 350 HWND WIN32API GetTopWindow( HWND hwnd) 402 ODINFUNCTION1(HWND, GetTopWindow, 403 HWND, hwnd) 351 404 { 352 405 Win32BaseWindow *window; … … 372 425 //****************************************************************************** 373 426 //****************************************************************************** 374 BOOL WIN32API IsIconic( HWND hwnd) 427 ODINFUNCTION1(BOOL, IsIconic, 428 HWND, hwnd) 375 429 { 376 430 Win32BaseWindow *window; … … 390 444 //****************************************************************************** 391 445 //****************************************************************************** 392 HWND WIN32API GetWindow(HWND hwnd, UINT uCmd) 446 ODINFUNCTION2(HWND, GetWindow, 447 HWND, hwnd, 448 UINT, uCmd) 393 449 { 394 450 Win32BaseWindow *window; … … 407 463 //****************************************************************************** 408 464 //****************************************************************************** 409 BOOL WIN32API EnableWindow( HWND hwnd, BOOL fEnable) 465 ODINFUNCTION2(BOOL, EnableWindow, 466 HWND, hwnd, 467 BOOL, fEnable) 410 468 { 411 469 Win32BaseWindow *window; … … 425 483 //****************************************************************************** 426 484 //****************************************************************************** 427 BOOL WIN32API BringWindowToTop(HWND hwnd) 485 ODINFUNCTION1(BOOL, BringWindowToTop, 486 HWND, hwnd) 428 487 { 429 488 dprintf(("BringWindowToTop %x", hwnd)); … … 433 492 * SetInternalWindowPos (USER32.483) 434 493 */ 435 void WIN32API SetInternalWindowPos(HWND hwnd, 436 UINT showCmd, 437 LPRECT lpRect, 438 LPPOINT lpPoint ) 439 { 440 dprintf(("USER32: SetInternalWindowPos(%08xh,%08xh,%08xh,%08xh)", 441 hwnd, showCmd, lpRect, lpPoint)); 442 494 ODINPROCEDURE4(SetInternalWindowPos, 495 HWND, hwnd, 496 UINT, showCmd, 497 LPRECT, lpRect, 498 LPPOINT, lpPoint ) 499 { 443 500 if( IsWindow(hwnd) ) 444 501 { … … 467 524 * GetInternalWindowPos (USER32.245) 468 525 */ 469 UINT WIN32API GetInternalWindowPos(HWND hwnd, 470 LPRECT rectWnd, 471 LPPOINT ptIcon ) 526 ODINFUNCTION3(UINT, GetInternalWindowPos, 527 HWND, hwnd, 528 LPRECT, rectWnd, 529 LPPOINT, ptIcon ) 472 530 { 473 531 WINDOWPLACEMENT wndpl; 474 475 dprintf(("USER32: GetInternalWindowPos(%08xh,%08xh,%08xh)\n",476 hwnd,477 rectWnd,478 ptIcon));479 532 480 533 if(GetWindowPlacement( hwnd, &wndpl )) … … 488 541 //****************************************************************************** 489 542 //****************************************************************************** 490 HWND WIN32API GetActiveWindow()543 ODINFUNCTION0(HWND, GetActiveWindow) 491 544 { 492 545 return Win32BaseWindow::GetActiveWindow(); … … 494 547 //****************************************************************************** 495 548 //****************************************************************************** 496 BOOL WIN32API ShowWindow(HWND hwnd, int nCmdShow) 549 ODINFUNCTION2(BOOL, ShowWindow, 550 HWND, hwnd, 551 int, nCmdShow) 497 552 { 498 553 Win32BaseWindow *window; … … 523 578 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 524 579 *****************************************************************************/ 525 BOOL WIN32API ShowWindowAsync (HWND hwnd, 526 int nCmdShow) 580 ODINFUNCTION2(BOOL, ShowWindowAsync, 581 HWND, hwnd, 582 int, nCmdShow) 527 583 { 528 584 dprintf(("USER32:ShowWindowAsync (%08xh,%08x) not correctly implemented.\n", … … 534 590 //****************************************************************************** 535 591 //****************************************************************************** 536 BOOL WIN32API SetWindowPos(HWND hwnd, HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT fuFlags) 592 ODINFUNCTION7(BOOL, SetWindowPos, 593 HWND, hwnd, 594 HWND, hwndInsertAfter, 595 int, x, 596 int, y, 597 int, cx, 598 int, cy, 599 UINT, fuFlags) 537 600 { 538 601 Win32BaseWindow *window; … … 557 620 //NOTE: length must equal structure size or else api fails (verified in NT4, SP6) 558 621 //****************************************************************************** 559 BOOL WIN32API SetWindowPlacement(HWND hwnd, const WINDOWPLACEMENT *winpos) 622 ODINFUNCTION2(BOOL, SetWindowPlacement, 623 HWND, hwnd, 624 const WINDOWPLACEMENT *, winpos) 560 625 { 561 626 Win32BaseWindow *window; … … 581 646 // (Verified in NT4, SP6) 582 647 //****************************************************************************** 583 BOOL WIN32API GetWindowPlacement(HWND hwnd, LPWINDOWPLACEMENT winpos) 648 ODINFUNCTION2(BOOL, GetWindowPlacement, 649 HWND, hwnd, 650 LPWINDOWPLACEMENT, winpos) 584 651 { 585 652 Win32BaseWindow *window; … … 603 670 //****************************************************************************** 604 671 //****************************************************************************** 605 BOOL WIN32API IsWindow( HWND hwnd) 672 ODINFUNCTION1(BOOL, IsWindow, 673 HWND, hwnd) 606 674 { 607 675 Win32BaseWindow *window; … … 620 688 //****************************************************************************** 621 689 //****************************************************************************** 622 BOOL WIN32API IsWindowEnabled( HWND hwnd) 690 ODINFUNCTION1(BOOL, IsWindowEnabled, 691 HWND, hwnd) 623 692 { 624 693 DWORD dwStyle; … … 638 707 //****************************************************************************** 639 708 //****************************************************************************** 640 BOOL WIN32API IsWindowVisible(HWND hwnd) 709 ODINFUNCTION1(BOOL, IsWindowVisible, 710 HWND, hwnd) 641 711 { 642 712 BOOL ret; … … 681 751 //****************************************************************************** 682 752 //****************************************************************************** 683 HWND WIN32API SetFocus(HWND hwnd) 753 ODINFUNCTION1(HWND, SetFocus, 754 HWND, hwnd) 684 755 { 685 756 Win32BaseWindow *window; … … 748 819 //****************************************************************************** 749 820 //****************************************************************************** 750 HWND WIN32API GetFocus(void)821 ODINFUNCTION0(HWND, GetFocus) 751 822 { 752 823 TEB *teb; … … 774 845 //****************************************************************************** 775 846 //****************************************************************************** 776 BOOL WIN32API IsZoomed(HWND hwnd) 847 ODINFUNCTION1(BOOL, IsZoomed, 848 HWND, hwnd) 777 849 { 778 850 DWORD style; … … 785 857 //****************************************************************************** 786 858 //****************************************************************************** 787 BOOL WIN32API LockWindowUpdate(HWND hwnd) 788 { 789 dprintf(("USER32: LockWindowUpdate %x", hwnd)); 790 return OSLibWinLockWindowUpdate(Win32ToOS2Handle(hwnd)); 791 } 792 //****************************************************************************** 793 //****************************************************************************** 794 BOOL WIN32API GetWindowRect( HWND hwnd, PRECT pRect) 859 ODINFUNCTION1(BOOL, LockWindowUpdate, 860 HWND, hwnd) 861 { 862 return OSLibWinLockWindowUpdate(Win32ToOS2Handle(hwnd)); 863 } 864 //****************************************************************************** 865 //****************************************************************************** 866 ODINFUNCTION2(BOOL, GetWindowRect, 867 HWND, hwnd, 868 PRECT, pRect) 795 869 { 796 870 Win32BaseWindow *window; … … 825 899 //****************************************************************************** 826 900 //****************************************************************************** 827 int WIN32API GetWindowTextLengthA( HWND hwnd) 901 ODINFUNCTION1(int, GetWindowTextLengthA, 902 HWND, hwnd) 828 903 { 829 904 Win32BaseWindow *window; … … 1732 1807 //TODO: -> needs testing 1733 1808 //****************************************************************************** 1734 BOOL WIN32API ShowOwnedPopups(HWND hwndOwner, BOOL fShow) 1809 ODINFUNCTION2(BOOL, ShowOwnedPopups, 1810 HWND, hwndOwner, 1811 BOOL, fShow) 1735 1812 { 1736 1813 Win32BaseWindow *window, *owner; … … 1786 1863 //****************************************************************************** 1787 1864 //****************************************************************************** 1788 HWND WIN32API GetForegroundWindow(void) 1789 { 1790 HWND hwnd; 1791 1792 hwnd = OS2ToWin32Handle(OSLibWinQueryActiveWindow()); 1793 dprintf(("USER32: GetForegroundWindow returned %x", hwnd)); 1794 return hwnd; 1795 } 1796 //****************************************************************************** 1797 //****************************************************************************** 1798 HWND WIN32API GetLastActivePopup( HWND hWnd) 1799 { 1800 HWND hwnd; 1801 1802 hwnd = Win32ToOS2Handle(hWnd); 1803 //// hwnd = OS2ToWin32Handle(O32_GetLastActivePopup(hwnd)); 1804 1805 dprintf(("GetLastActivePopup %x returned %x NOT CORRECTLY IMPLEMENTED", hWnd, hwnd)); 1865 ODINFUNCTION0(HWND, GetForegroundWindow) 1866 { 1867 HWND hwnd; 1868 1869 hwnd = OS2ToWin32Handle(OSLibWinQueryActiveWindow()); 1870 return hwnd; 1871 } 1872 //****************************************************************************** 1873 1874 /****************************************************************************** 1875 * The return value identifies the most recently active pop-up window. 1876 * The return value is the same as the hWnd parameter, if any of the 1877 * following conditions are met: 1878 * 1879 * - The window identified by hWnd was most recently active. 1880 * - The window identified by hWnd does not own any pop-up windows. 1881 * - The window identified by hWnd is not a top-level window or it is 1882 * owned by another window. 1883 */ 1884 ODINFUNCTION1(HWND, GetLastActivePopup, 1885 HWND, hWnd) 1886 { 1887 Win32BaseWindow *owner; 1888 1889 owner = Win32BaseWindow::GetWindowFromHandle(hWnd); 1890 if(!owner) 1891 { 1892 dprintf(("GetLastActivePopup, window %x not found", hWnd)); 1893 SetLastError(ERROR_INVALID_WINDOW_HANDLE); 1806 1894 return hWnd; 1807 } 1808 //****************************************************************************** 1809 //****************************************************************************** 1810 DWORD WIN32API GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId) 1811 { 1812 dprintf2(("USER32: GetWindowThreadProcessId")); 1813 hWnd = Win32ToOS2Handle(hWnd); 1814 1815 return O32_GetWindowThreadProcessId(hWnd,lpdwProcessId); 1816 } 1817 //****************************************************************************** 1818 //****************************************************************************** 1819 DWORD WIN32API GetWindowContextHelpId(HWND hwnd) 1895 } 1896 1897 HWND hwndRetVal = owner->getLastActive(); 1898 if (!IsWindow( hwndRetVal )) 1899 hwndRetVal = owner->getWindowHandle(); 1900 1901 RELEASE_WNDOBJ(owner); 1902 1903 return hwndRetVal; 1904 } 1905 //****************************************************************************** 1906 //****************************************************************************** 1907 ODINFUNCTION2(DWORD, GetWindowThreadProcessId, 1908 HWND, hWnd, 1909 PDWORD, lpdwProcessId) 1910 { 1911 hWnd = Win32ToOS2Handle(hWnd); 1912 return O32_GetWindowThreadProcessId(hWnd,lpdwProcessId); 1913 } 1914 //****************************************************************************** 1915 //****************************************************************************** 1916 ODINFUNCTION1(DWORD, GetWindowContextHelpId, 1917 HWND, hwnd) 1820 1918 { 1821 1919 Win32BaseWindow *window; … … 1834 1932 //****************************************************************************** 1835 1933 //****************************************************************************** 1836 BOOL WIN32API SetWindowContextHelpId(HWND hwnd, DWORD dwContextHelpId) 1934 ODINFUNCTION2(BOOL, SetWindowContextHelpId, 1935 HWND, hwnd, 1936 DWORD, dwContextHelpId) 1837 1937 { 1838 1938 Win32BaseWindow *window; … … 1851 1951 //****************************************************************************** 1852 1952 //****************************************************************************** 1853 HANDLE WINAPI GetPropA( HWND hwnd, LPCSTR str ) 1953 ODINFUNCTION2(HANDLE, GetPropA, 1954 HWND, hwnd, 1955 LPCSTR, str ) 1854 1956 { 1855 1957 Win32BaseWindow *window; … … 1867 1969 //****************************************************************************** 1868 1970 //****************************************************************************** 1869 HANDLE WINAPI GetPropW( HWND hwnd, LPCWSTR str ) 1971 ODINFUNCTION2(HANDLE, GetPropW, 1972 HWND, hwnd, 1973 LPCWSTR, str ) 1870 1974 { 1871 1975 LPSTR strA; … … 1880 1984 //****************************************************************************** 1881 1985 //****************************************************************************** 1882 BOOL WINAPI SetPropA( HWND hwnd, LPCSTR str, HANDLE handle ) 1986 ODINFUNCTION3(BOOL, SetPropA, 1987 HWND, hwnd, 1988 LPCSTR, str, 1989 HANDLE, handle ) 1883 1990 { 1884 1991 Win32BaseWindow *window; … … 1896 2003 //****************************************************************************** 1897 2004 //****************************************************************************** 1898 BOOL WINAPI SetPropW( HWND hwnd, LPCWSTR str, HANDLE handle ) 2005 ODINFUNCTION3(BOOL, SetPropW, 2006 HWND, hwnd, 2007 LPCWSTR, str, 2008 HANDLE, handle ) 1899 2009 { 1900 2010 BOOL ret; … … 1910 2020 //****************************************************************************** 1911 2021 //****************************************************************************** 1912 HANDLE WINAPI RemovePropA( HWND hwnd, LPCSTR str ) 2022 ODINFUNCTION2(HANDLE, RemovePropA, 2023 HWND, hwnd, 2024 LPCSTR, str ) 1913 2025 { 1914 2026 Win32BaseWindow *window; … … 1926 2038 //****************************************************************************** 1927 2039 //****************************************************************************** 1928 HANDLE WINAPI RemovePropW( HWND hwnd, LPCWSTR str ) 2040 ODINFUNCTION2(HANDLE, RemovePropW, 2041 HWND, hwnd, 2042 LPCWSTR, str ) 1929 2043 { 1930 2044 LPSTR strA; … … 1940 2054 //****************************************************************************** 1941 2055 //****************************************************************************** 1942 INT WINAPI EnumPropsA( HWND hwnd, PROPENUMPROCA func ) 2056 ODINFUNCTION2(INT, EnumPropsA, 2057 HWND, hwnd, 2058 PROPENUMPROCA, func ) 1943 2059 { 1944 2060 return EnumPropsExA( hwnd, (PROPENUMPROCEXA)func, 0 ); … … 1946 2062 //****************************************************************************** 1947 2063 //****************************************************************************** 1948 INT WINAPI EnumPropsW( HWND hwnd, PROPENUMPROCW func ) 2064 ODINFUNCTION2(INT, EnumPropsW, 2065 HWND, hwnd, 2066 PROPENUMPROCW, func ) 1949 2067 { 1950 2068 return EnumPropsExW( hwnd, (PROPENUMPROCEXW)func, 0 ); … … 1952 2070 //****************************************************************************** 1953 2071 //****************************************************************************** 1954 INT WINAPI EnumPropsExA(HWND hwnd, PROPENUMPROCEXA func, LPARAM lParam) 2072 ODINFUNCTION3(INT, EnumPropsExA, 2073 HWND, hwnd, 2074 PROPENUMPROCEXA, func, 2075 LPARAM, lParam) 1955 2076 { 1956 2077 Win32BaseWindow *window; … … 1968 2089 //****************************************************************************** 1969 2090 //****************************************************************************** 1970 INT WINAPI EnumPropsExW(HWND hwnd, PROPENUMPROCEXW func, LPARAM lParam) 2091 ODINFUNCTION3(INT, EnumPropsExW, 2092 HWND, hwnd, 2093 PROPENUMPROCEXW, func, 2094 LPARAM, lParam) 1971 2095 { 1972 2096 Win32BaseWindow *window; … … 1984 2108 //****************************************************************************** 1985 2109 //****************************************************************************** 2110 2111 2112 /***************************************************************************** 2113 * Name : BOOL WIN32API AnyPopup 2114 * Purpose : The AnyPopup function indicates whether an owned, visible, 2115 * top-level pop-up, or overlapped window exists on the screen. The 2116 * function searches the entire Windows screen, not just the calling 2117 * application's client area. 2118 * Parameters: VOID 2119 * Variables : 2120 * Result : If a pop-up window exists, the return value is TRUE even if the 2121 * pop-up window is completely covered by other windows. Otherwise, 2122 * it is FALSE. 2123 * Remark : AnyPopup is a Windows version 1.x function and is retained for 2124 * compatibility purposes. It is generally not useful. 2125 * Status : UNTESTED STUB 2126 * 2127 * Author : Patrick Haller [Thu, 1998/02/26 11:55] 2128 *****************************************************************************/ 2129 ODINFUNCTION0(BOOL, AnyPopup) 2130 { 2131 dprintf(("USER32:AnyPopup() not implemented.\n")); 2132 2133 return (FALSE); 2134 }
Note:
See TracChangeset
for help on using the changeset viewer.