# HG changeset patch # User Jason Rumney # Date 1094593717 0 # Node ID a35b92556545f45302a6d389ae75985aed33abad # Parent b71fc0f47c9a20b92d664f9cb21764d0d137633a (w32_wnd_proc) [WM_MEASUREITEM, WM_DRAWITEM]: Handle Unicode menu titles. diff -r b71fc0f47c9a -r a35b92556545 src/w32fns.c --- a/src/w32fns.c Tue Sep 07 21:16:48 2004 +0000 +++ b/src/w32fns.c Tue Sep 07 21:48:37 2004 +0000 @@ -260,6 +260,7 @@ TrackMouseEvent_Proc track_mouse_event_fn = NULL; ClipboardSequence_Proc clipboard_sequence_fn = NULL; +extern AppendMenuW_Proc unicode_append_menu; /* W95 mousewheel handler */ unsigned int msh_mousewheel = 0; @@ -3457,7 +3458,13 @@ pMis->itemHeight = GetSystemMetrics (SM_CYMENUSIZE); if (title) { - GetTextExtentPoint32 (hdc, title, strlen (title), &size); + if (unicode_append_menu) + GetTextExtentPoint32W (hdc, (WCHAR *) title, + wcslen ((WCHAR *) title), + &size); + else + GetTextExtentPoint32 (hdc, title, strlen (title), &size); + pMis->itemWidth = size.cx; if (pMis->itemHeight < size.cy) pMis->itemHeight = size.cy; @@ -3495,13 +3502,22 @@ menu_font = CreateFontIndirect (&menu_logfont); old_font = SelectObject (hdc, menu_font); - /* Always draw title as if not selected. */ - ExtTextOut (hdc, - pDis->rcItem.left - + GetSystemMetrics (SM_CXMENUCHECK), - pDis->rcItem.top, - ETO_OPAQUE, &pDis->rcItem, - title, strlen (title), NULL); + /* Always draw title as if not selected. */ + if (unicode_append_menu) + ExtTextOutW (hdc, + pDis->rcItem.left + + GetSystemMetrics (SM_CXMENUCHECK), + pDis->rcItem.top, + ETO_OPAQUE, &pDis->rcItem, + (WCHAR *) title, + wcslen ((WCHAR *) title), NULL); + else + ExtTextOut (hdc, + pDis->rcItem.left + + GetSystemMetrics (SM_CXMENUCHECK), + pDis->rcItem.top, + ETO_OPAQUE, &pDis->rcItem, + title, strlen (title), NULL); SelectObject (hdc, old_font); DeleteObject (menu_font);