Implement ShowOwnedPopups and ArrangeIconicWindows. Based on Wine. More work is needed on both.

svn path=/trunk/; revision=16630
This commit is contained in:
James Tabor 2005-07-18 03:13:11 +00:00
parent 35b93a79d6
commit d09f528ad2
3 changed files with 17 additions and 20 deletions

View file

@ -1269,14 +1269,15 @@ User32DefWindowProc(HWND hWnd,
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;
}

View file

@ -48,17 +48,6 @@ AllowSetForegroundWindow(DWORD dwProcessId)
}
/*
* @unimplemented
*/
UINT STDCALL
ArrangeIconicWindows(HWND hWnd)
{
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
@ -1084,15 +1073,15 @@ AnimateWindow(HWND hwnd,
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 @@ SetWindowTextW(HWND hWnd,
/*
* @unimplemented
* @implemented
*/
BOOL STDCALL
ShowOwnedPopups(HWND hWnd,
BOOL fShow)
{
UNIMPLEMENTED;
return FALSE;
return (BOOL)NtUserCallTwoParam((DWORD)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS);
}

View file

@ -55,3 +55,11 @@ SetActiveWindow(HWND hWnd)
return(NtUserSetActiveWindow(hWnd));
}
/*
* @unimplemented
*/
UINT STDCALL
ArrangeIconicWindows(HWND hWnd)
{
return NtUserCallHwndLock( hWnd, HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS);
}