Implement ShowOwnedPopups and ArrangeIconicWindows. Based on Wine. More work is needed on both. Modified: trunk/reactos/lib/user32/windows/defwnd.c Modified: trunk/reactos/lib/user32/windows/window.c Modified: trunk/reactos/lib/user32/windows/winpos.c _____
Modified: trunk/reactos/lib/user32/windows/defwnd.c --- trunk/reactos/lib/user32/windows/defwnd.c 2005-07-18 03:12:01 UTC (rev 16629) +++ trunk/reactos/lib/user32/windows/defwnd.c 2005-07-18 03:13:11 UTC (rev 16630) @@ -1269,14 +1269,15 @@
if (!lParam) return 0; Style = GetWindowLongW(hWnd, GWL_STYLE); - if (!(Style & WS_POPUP)) - return 0; +// if (!(Style & WS_POPUP)) +// return 0; if ((Style & WS_VISIBLE) && wParam) return 0; if (!(Style & WS_VISIBLE) && !wParam) return 0; if (!GetWindow(hWnd, GW_OWNER)) return 0; + NtUserCallTwoParam((DWORD) hWnd, (DWORD) wParam, TWOPARAM_ROUTINE_ROS_SHOWWINDOW); ShowWindow(hWnd, wParam ? SW_SHOWNA : SW_HIDE); break; } _____
Modified: trunk/reactos/lib/user32/windows/window.c --- trunk/reactos/lib/user32/windows/window.c 2005-07-18 03:12:01 UTC (rev 16629) +++ trunk/reactos/lib/user32/windows/window.c 2005-07-18 03:13:11 UTC (rev 16630) @@ -51,17 +51,6 @@
/* * @unimplemented */ -UINT STDCALL -ArrangeIconicWindows(HWND hWnd) -{ - UNIMPLEMENTED; - return 0; -} - - -/* - * @unimplemented - */ HDWP STDCALL BeginDeferWindowPos(int nNumWindows) { @@ -1084,15 +1073,15 @@
BOOL visible; visible = IsWindowVisible(hwnd); -// if(!IsWindow(hwnd) || -// (visible && !(dwFlags & AW_HIDE)) || -// (!visible && (dwFlags & AW_HIDE))) + if(!IsWindow(hwnd) || + (visible && !(dwFlags & AW_HIDE)) || + (!visible && (dwFlags & AW_HIDE))) { SetLastError(ERROR_INVALID_PARAMETER); return FALSE; }
-// ShowWindow(hwnd, (dwFlags & AW_HIDE) ? SW_HIDE : ((dwFlags & AW_ACTIVATE) ? SW_SHOW : SW_SHOWNA)); + ShowWindow(hwnd, (dwFlags & AW_HIDE) ? SW_HIDE : ((dwFlags & AW_ACTIVATE) ? SW_SHOW : SW_SHOWNA));
return TRUE; } @@ -1273,14 +1262,13 @@
/* - * @unimplemented + * @implemented */ BOOL STDCALL ShowOwnedPopups(HWND hWnd, BOOL fShow) { - UNIMPLEMENTED; - return FALSE; + return (BOOL)NtUserCallTwoParam((DWORD)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS); }
_____
Modified: trunk/reactos/lib/user32/windows/winpos.c --- trunk/reactos/lib/user32/windows/winpos.c 2005-07-18 03:12:01 UTC (rev 16629) +++ trunk/reactos/lib/user32/windows/winpos.c 2005-07-18 03:13:11 UTC (rev 16630) @@ -55,3 +55,11 @@
return(NtUserSetActiveWindow(hWnd)); }
+/* + * @unimplemented + */ +UINT STDCALL +ArrangeIconicWindows(HWND hWnd) +{ + return NtUserCallHwndLock( hWnd, HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS); +}