From: Ivan Ivlev <iviv@etersoft.ru> Signed-off-by: Ivan Ivlev <iviv@etersoft.ru> --- dlls/comctl32/tests/toolbar.c | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c index eed70df2a64..c81142fb5db 100644 --- a/dlls/comctl32/tests/toolbar.c +++ b/dlls/comctl32/tests/toolbar.c @@ -3102,6 +3102,57 @@ static void test_WM_PAINT(BOOL v6) UnregisterClassW(wc.lpszClassName, 0); } +static void AddButton(HWND tb, const char *text, int id) +{ + TBBUTTON btn = {0}; + btn.iBitmap = I_IMAGENONE; + btn.idCommand = id; + btn.fsState = TBSTATE_ENABLED; + btn.fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE; + btn.iString = (INT_PTR)text; + SendMessageA(tb, TB_ADDBUTTONSA, 1, (LPARAM)&btn); +} + +static void test_wrap(void) +{ + const char *btn1 = "..", *btn2 = "....", *btn3 = "........"; + int result; + int toolbar_width = 0; + + HWND hToolbar = CreateWindowExA(0, TOOLBARCLASSNAMEA, NULL, WS_CHILD | CCS_NORESIZE, + 0, 0, 500, 30, hMainWnd, NULL, GetModuleHandleA(NULL), NULL); + SendMessageA(hToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); + AddButton(hToolbar, btn1, 0); + AddButton(hToolbar, btn2, 1); + AddButton(hToolbar, btn3, 2); + for (int i = 0; i < 3; i++) + { + RECT rect; + SendMessageA(hToolbar, TB_GETITEMRECT, i, (LPARAM)&rect); + toolbar_width += rect.right - rect.left; + } + DestroyWindow(hToolbar); + + hToolbar = CreateWindowExA(0, TOOLBARCLASSNAMEA, NULL, WS_CHILD | CCS_NORESIZE | TBSTYLE_WRAPABLE, + 0, 0, toolbar_width, 30, hMainWnd, NULL, GetModuleHandleA(NULL), NULL); + SendMessageA(hToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0); + + AddButton(hToolbar, btn1, 0); + AddButton(hToolbar, btn2, 1); + AddButton(hToolbar, btn3, 2); + SendMessageA(hToolbar, TB_AUTOSIZE, 0, 0); + result = SendMessageA(hToolbar, TB_GETROWS, 0, 0); + todo_wine ok(result == 1, "Got unexpected nRows: %d.\n", result); + + AddButton(hToolbar, btn3, 3); + SendMessageA(hToolbar, TB_AUTOSIZE, 0, 0); + result = SendMessageA(hToolbar, TB_GETROWS, 0, 0); + ok(result == 2, "Got unexpected nRows: %d.\n", result); + + DestroyWindow(hToolbar); +} + + START_TEST(toolbar) { ULONG_PTR ctx_cookie; @@ -3157,6 +3208,7 @@ START_TEST(toolbar) test_unicode_format(); test_WM_ERASEBKGND(FALSE); test_WM_PAINT(FALSE); + test_wrap(); if (!load_v6_module(&ctx_cookie, &ctx)) return; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10261