Module: wine Branch: master Commit: 7e874aed75765f3c017673178cfd64301b7ba3ed URL: http://source.winehq.org/git/wine.git/?a=commit;h=7e874aed75765f3c017673178c...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Apr 15 19:50:53 2014 +0200
user32: Load the message box font through the dialog template.
---
dlls/user32/msgbox.c | 28 +++++----------------------- dlls/user32/user32.rc | 2 +- 2 files changed, 6 insertions(+), 24 deletions(-)
diff --git a/dlls/user32/msgbox.c b/dlls/user32/msgbox.c index 8b3cb4d..7fb17bd 100644 --- a/dlls/user32/msgbox.c +++ b/dlls/user32/msgbox.c @@ -61,9 +61,9 @@ static BOOL CALLBACK MSGBOX_EnumProc(HWND hwnd, LPARAM lParam) return TRUE; }
-static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) +static void MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) { - HFONT hFont = 0, hPrevFont = 0; + HFONT hPrevFont; RECT rect; HWND hItem; HDC hdc; @@ -84,15 +84,6 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb)
nclm.cbSize = sizeof(nclm); SystemParametersInfoW (SPI_GETNONCLIENTMETRICS, 0, &nclm, 0); - hFont = CreateFontIndirectW (&nclm.lfMessageFont); - /* set button font */ - for (i = IDOK; i <= IDCONTINUE; i++) - /* no close button */ - if (i != IDCLOSE) - SendDlgItemMessageW (hwnd, i, WM_SETFONT, (WPARAM)hFont, 0); - - /* set text font */ - SendDlgItemMessageW (hwnd, MSGBOX_IDTEXT, WM_SETFONT, (WPARAM)hFont, 0);
if (!IS_INTRESOURCE(lpmb->lpszCaption)) { SetWindowTextW(hwnd, lpmb->lpszCaption); @@ -229,8 +220,7 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) iwidth = rect.right - ileft;
hdc = GetDC(hwnd); - if (hFont) - hPrevFont = SelectObject(hdc, hFont); + hPrevFont = SelectObject( hdc, (HFONT)SendMessageW( hwnd, WM_GETFONT, 0, 0 ));
/* Get the number of visible buttons and their size */ bh = bw = 1; /* Minimum button sizes */ @@ -270,8 +260,7 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) twidth = max((bw + bspace) * buttons + bspace - tleft, rect.right); theight = rect.bottom;
- if (hFont) - SelectObject(hdc, hPrevFont); + SelectObject(hdc, hPrevFont); ReleaseDC(hwnd, hdc);
tiheight = 16 + max(iheight, theight); @@ -319,7 +308,6 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
HeapFree( GetProcessHeap(), 0, buffer ); - return hFont; }
@@ -331,15 +319,12 @@ static HFONT MSGBOX_OnInit(HWND hwnd, LPMSGBOXPARAMSW lpmb) static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { - HFONT hFont; - switch(message) { case WM_INITDIALOG: { LPMSGBOXPARAMSW mbp = (LPMSGBOXPARAMSW)lParam; SetWindowContextHelpId(hwnd, mbp->dwContextHelpId); - hFont = MSGBOX_OnInit(hwnd, mbp); - SetPropA(hwnd, "WINE_MSGBOX_HFONT", hFont); + MSGBOX_OnInit(hwnd, mbp); SetPropA(hwnd, "WINE_MSGBOX_HELPCALLBACK", mbp->lpfnMsgBoxCallback); break; } @@ -356,10 +341,7 @@ static INT_PTR CALLBACK MSGBOX_DlgProc( HWND hwnd, UINT message, case IDNO: case IDTRYAGAIN: case IDCONTINUE: - hFont = GetPropA(hwnd, "WINE_MSGBOX_HFONT"); EndDialog(hwnd, wParam); - if (hFont) - DeleteObject(hFont); break; case IDHELP: FIXME("Help button not supported yet\n"); diff --git a/dlls/user32/user32.rc b/dlls/user32/user32.rc index a031bfc..d281d53 100644 --- a/dlls/user32/user32.rc +++ b/dlls/user32/user32.rc @@ -72,7 +72,7 @@ STRINGTABLE }
MSGBOX DIALOG 100, 80, 216, 168 -STYLE DS_MODALFRAME | DS_NOIDLEMSG | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_MODALFRAME | DS_NOIDLEMSG | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU BEGIN ICON "", MSGBOX_IDICON, 8, 20, 16, 16, WS_CHILD | WS_VISIBLE LTEXT "", MSGBOX_IDTEXT, 32, 4, 176, 48, WS_CHILD | WS_VISIBLE | WS_GROUP | SS_NOPREFIX