Aric Stewart : comctl32/tests: LISTVIEW_ApproximateViewRect tests for LV_VIEW_ICON.
Alexandre Julliard
julliard at winehq.org
Wed Oct 7 09:46:04 CDT 2009
Module: wine
Branch: master
Commit: c885bd16c7be1d40007f68cae259dba6dc293872
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c885bd16c7be1d40007f68cae259dba6dc293872
Author: Aric Stewart <aric at codeweavers.com>
Date: Mon Oct 5 20:42:08 2009 -0500
comctl32/tests: LISTVIEW_ApproximateViewRect tests for LV_VIEW_ICON.
---
dlls/comctl32/tests/listview.c | 75 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index 31b09a3..c9551a1 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -4021,6 +4021,80 @@ static void test_LVS_EX_TRANSPARENTBKGND(void)
DestroyWindow(hwnd);
}
+void test_ApproximateViewRect(void)
+{
+ HWND hwnd;
+ DWORD ret;
+ INT cx, cy;
+ HIMAGELIST himl;
+ HBITMAP hbmp;
+ LVITEMA itema;
+ static CHAR test[] = "abracadabra, a very long item label";
+
+ cx = GetSystemMetrics(SM_CXICONSPACING) - GetSystemMetrics(SM_CXICON);
+ cy = GetSystemMetrics(SM_CYICONSPACING) - GetSystemMetrics(SM_CYICON);
+
+ hwnd = create_custom_listview_control(LVS_ICON);
+ himl = ImageList_Create(40, 40, 0, 4, 4);
+ ok(himl != NULL, "failed to create imagelist\n");
+ hbmp = CreateBitmap(40, 40, 1, 1, NULL);
+ ok(hbmp != NULL, "failed to create bitmap\n");
+ ret = ImageList_Add(himl, hbmp, 0);
+ expect(0, ret);
+ ret = SendMessage(hwnd, LVM_SETIMAGELIST, 0, (LPARAM)himl);
+ expect(0, ret);
+
+ itema.mask = LVIF_IMAGE;
+ itema.iImage = 0;
+ itema.iItem = 0;
+ itema.iSubItem = 0;
+ ret = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM)&itema);
+ expect(0, ret);
+
+ ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELPARAM(75, 75));
+ if (ret == 0)
+ {
+ /* version 4.0 */
+ win_skip("LVM_SETICONSPACING unimplemented. Skipping.\n");
+ return;
+ }
+
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 11, MAKELPARAM(100,100));
+ ok(MAKELONG(77,827)==ret,"Incorrect Approximate rect\n");
+
+ ret = SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELPARAM(50, 50));
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 11, MAKELPARAM(100,100));
+ ok(MAKELONG(102,302)==ret,"Incorrect Approximate rect\n");
+
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, -1, MAKELPARAM(100,100));
+ ok(MAKELONG(52,52)==ret,"Incorrect Approximate rect\n");
+
+ itema.pszText = test;
+ ret = SendMessage(hwnd, LVM_SETITEMTEXT, 0, (LPARAM)&itema);
+ expect(TRUE, ret);
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, -1, MAKELPARAM(100,100));
+ ok(MAKELONG(52,52)==ret,"Incorrect Approximate rect\n");
+
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 0, MAKELPARAM(100,100));
+ ok(MAKELONG(52,2)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 1, MAKELPARAM(100,100));
+ ok(MAKELONG(52,52)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 2, MAKELPARAM(100,100));
+ ok(MAKELONG(102,52)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 3, MAKELPARAM(100,100));
+ ok(MAKELONG(102,102)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 4, MAKELPARAM(100,100));
+ ok(MAKELONG(102,102)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 5, MAKELPARAM(100,100));
+ ok(MAKELONG(102,152)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 6, MAKELPARAM(100,100));
+ ok(MAKELONG(102,152)==ret,"Incorrect Approximate rect\n");
+ ret = SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, 7, MAKELPARAM(160,100));
+ ok(MAKELONG(152,152)==ret,"Incorrect Approximate rect\n");
+
+ DestroyWindow(hwnd);
+}
+
START_TEST(listview)
{
HMODULE hComctl32;
@@ -4077,6 +4151,7 @@ START_TEST(listview)
test_indentation();
test_getitemspacing();
test_getcolumnwidth();
+ test_ApproximateViewRect();
if (!load_v6_module(&ctx_cookie))
{
More information about the wine-cvs
mailing list