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