Commit 9caa6baf authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

Move internal implementation into the exported function

DrawMenuBarTemp.
parent bda22de5
...@@ -177,6 +177,7 @@ static BOOL fEndMenu = FALSE; ...@@ -177,6 +177,7 @@ static BOOL fEndMenu = FALSE;
static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); static LRESULT WINAPI PopupMenuWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT hFont);
/********************************************************************* /*********************************************************************
* menu class descriptor * menu class descriptor
...@@ -1515,19 +1516,17 @@ UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect, HWND hwnd, ...@@ -1515,19 +1516,17 @@ UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect, HWND hwnd,
BOOL suppress_draw) BOOL suppress_draw)
{ {
LPPOPUPMENU lppop; LPPOPUPMENU lppop;
UINT i,retvalue;
HFONT hfontOld = 0; HFONT hfontOld = 0;
HMENU hMenu = GetMenu(hwnd); HMENU hMenu = GetMenu(hwnd);
lppop = MENU_GetMenu( hMenu ); lppop = MENU_GetMenu( hMenu );
if (lppop == NULL || lprect == NULL) if (lppop == NULL || lprect == NULL)
{ {
retvalue = GetSystemMetrics(SM_CYMENU); return GetSystemMetrics(SM_CYMENU);
goto END;
} }
TRACE("(%p, %p, %p)\n", hDC, lprect, lppop); if (suppress_draw)
{
hfontOld = SelectObject( hDC, hMenuFont); hfontOld = SelectObject( hDC, hMenuFont);
if (lppop->Height == 0) if (lppop->Height == 0)
...@@ -1535,43 +1534,11 @@ UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect, HWND hwnd, ...@@ -1535,43 +1534,11 @@ UINT MENU_DrawMenuBar( HDC hDC, LPRECT lprect, HWND hwnd,
lprect->bottom = lprect->top + lppop->Height; lprect->bottom = lprect->top + lppop->Height;
if (suppress_draw) if (hfontOld) SelectObject( hDC, hfontOld);
{ return lppop->Height;
retvalue = lppop->Height;
goto END;
}
FillRect(hDC, lprect, GetSysColorBrush(COLOR_MENU) );
if (TWEAK_WineLook == WIN31_LOOK)
{
SelectObject( hDC, SYSCOLOR_GetPen(COLOR_WINDOWFRAME) );
MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
LineTo( hDC, lprect->right, lprect->bottom );
} }
else else
{ return DrawMenuBarTemp(hwnd, hDC, lprect, hMenu, NULL);
SelectObject( hDC, SYSCOLOR_GetPen(COLOR_3DFACE));
MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
LineTo( hDC, lprect->right, lprect->bottom );
}
if (lppop->nItems == 0)
{
retvalue = GetSystemMetrics(SM_CYMENU);
goto END;
}
for (i = 0; i < lppop->nItems; i++)
{
MENU_DrawMenuItem( hwnd, hMenu, hwnd,
hDC, &lppop->items[i], lppop->Height, TRUE, ODA_DRAWENTIRE );
}
retvalue = lppop->Height;
END:
if (hfontOld) SelectObject (hDC, hfontOld);
return retvalue;
} }
...@@ -3861,10 +3828,65 @@ BOOL WINAPI DrawMenuBar( HWND hWnd ) ...@@ -3861,10 +3828,65 @@ BOOL WINAPI DrawMenuBar( HWND hWnd )
* *
* Not 100% sure about the param names, but close. * Not 100% sure about the param names, but close.
*/ */
DWORD WINAPI DrawMenuBarTemp(HWND someHWND, HDC someHDC, LPRECT someRECT, HMENU someHMENU, HFONT someFONT) DWORD WINAPI DrawMenuBarTemp(HWND hwnd, HDC hDC, LPRECT lprect, HMENU hMenu, HFONT hFont)
{ {
FIXME("(%p, %p, %p, %p, %p): stub\n", someHWND, someHDC, someRECT, someHMENU, someFONT); LPPOPUPMENU lppop;
return 0; UINT i,retvalue;
HFONT hfontOld = 0;
if (!hMenu)
hMenu = GetMenu(hwnd);
if (!hFont)
hFont = hMenuFont;
lppop = MENU_GetMenu( hMenu );
if (lppop == NULL || lprect == NULL)
{
retvalue = GetSystemMetrics(SM_CYMENU);
goto END;
}
TRACE("(%p, %p, %p, %p, %p)\n", hwnd, hDC, lprect, hMenu, hFont);
hfontOld = SelectObject( hDC, hFont);
if (lppop->Height == 0)
MENU_MenuBarCalcSize(hDC, lprect, lppop, hwnd);
lprect->bottom = lprect->top + lppop->Height;
FillRect(hDC, lprect, GetSysColorBrush(COLOR_MENU) );
if (TWEAK_WineLook == WIN31_LOOK)
{
SelectObject( hDC, SYSCOLOR_GetPen(COLOR_WINDOWFRAME) );
MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
LineTo( hDC, lprect->right, lprect->bottom );
}
else
{
SelectObject( hDC, SYSCOLOR_GetPen(COLOR_3DFACE));
MoveToEx( hDC, lprect->left, lprect->bottom, NULL );
LineTo( hDC, lprect->right, lprect->bottom );
}
if (lppop->nItems == 0)
{
retvalue = GetSystemMetrics(SM_CYMENU);
goto END;
}
for (i = 0; i < lppop->nItems; i++)
{
MENU_DrawMenuItem( hwnd, hMenu, hwnd,
hDC, &lppop->items[i], lppop->Height, TRUE, ODA_DRAWENTIRE );
}
retvalue = lppop->Height;
END:
if (hfontOld) SelectObject (hDC, hfontOld);
return retvalue;
} }
/*********************************************************************** /***********************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment