Detlef Riekenberg : comctl32/tests: Fix tests to not depend on 96 dpi, make it pass in Wine.

Alexandre Julliard julliard at winehq.org
Tue Oct 14 08:30:20 CDT 2008


Module: wine
Branch: master
Commit: 2910b90c70c573e8ae197a7c16ffcf47b9a9c684
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2910b90c70c573e8ae197a7c16ffcf47b9a9c684

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Tue Oct 14 01:17:43 2008 +0200

comctl32/tests: Fix tests to not depend on 96 dpi, make it pass in Wine.

---

 dlls/comctl32/tab.c       |    3 +--
 dlls/comctl32/tests/tab.c |   24 ++++++++++++++++++------
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 725cc10..35af81c 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -142,7 +142,6 @@ typedef struct
 #define BUTTON_SPACINGY         3
 #define FLAT_BTN_SPACINGX       8
 #define DEFAULT_MIN_TAB_WIDTH   54
-#define DEFAULT_TAB_WIDTH_FIXED 96
 #define DEFAULT_PADDING_X       6
 #define EXTRA_ICON_PADDING      3
 
@@ -3019,7 +3018,7 @@ static LRESULT TAB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
 
   /* Initialize the width of a tab. */
   if (dwStyle & TCS_FIXEDWIDTH)
-    infoPtr->tabWidth = DEFAULT_TAB_WIDTH_FIXED;
+    infoPtr->tabWidth = GetDeviceCaps(hdc, LOGPIXELSX);
 
   infoPtr->tabMinWidth = -1;
 
diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c
index d311d50..eba3f61 100644
--- a/dlls/comctl32/tests/tab.c
+++ b/dlls/comctl32/tests/tab.c
@@ -27,7 +27,6 @@
 #include "msg.h"
 
 #define DEFAULT_MIN_TAB_WIDTH 54
-#define TAB_DEFAULT_WIDTH 96
 #define TAB_PADDING_X 6
 #define EXTRA_ICON_PADDING 3
 #define MAX_TABLEN 32
@@ -506,12 +505,13 @@ static void test_tab(INT nMinTabWidth)
     SIZE size;
     HDC hdc;
     HFONT hOldFont;
-    INT i;
+    INT i, dpi;
 
     hwTab = create_tabcontrol(TCS_FIXEDWIDTH, TCIF_TEXT|TCIF_IMAGE);
     SendMessage(hwTab, TCM_SETMINTABWIDTH, 0, nMinTabWidth);
 
     hdc = GetDC(hwTab);
+    dpi = GetDeviceCaps(hdc, LOGPIXELSX);
     hOldFont = SelectObject(hdc, (HFONT)SendMessage(hwTab, WM_GETFONT, 0, 0));
     GetTextExtentPoint32A(hdc, "Tab 1", strlen("Tab 1"), &size);
     trace("Tab1 text size: size.cx=%d size.cy=%d\n", size.cx, size.cy);
@@ -519,7 +519,7 @@ static void test_tab(INT nMinTabWidth)
     ReleaseDC(hwTab, hdc);
 
     trace ("  TCS_FIXEDWIDTH tabs no icon...\n");
-    CheckSize(hwTab, TAB_DEFAULT_WIDTH, -1, "default width");
+    CheckSize(hwTab, dpi, -1, "default width");
     TabCheckSetSize(hwTab, 50, 20, 50, 20, "set size");
     TabCheckSetSize(hwTab, 0, 1, 0, 1, "min size");
 
@@ -535,8 +535,11 @@ static void test_tab(INT nMinTabWidth)
     hwTab = create_tabcontrol(TCS_FIXEDWIDTH | TCS_BUTTONS, TCIF_TEXT|TCIF_IMAGE);
     SendMessage(hwTab, TCM_SETMINTABWIDTH, 0, nMinTabWidth);
 
+    hdc = GetDC(hwTab);
+    dpi = GetDeviceCaps(hdc, LOGPIXELSX);
+    ReleaseDC(hwTab, hdc);
     trace ("  TCS_FIXEDWIDTH buttons no icon...\n");
-    CheckSize(hwTab, TAB_DEFAULT_WIDTH, -1, "default width");
+    CheckSize(hwTab, dpi, -1, "default width");
     TabCheckSetSize(hwTab, 20, 20, 20, 20, "set size 1");
     TabCheckSetSize(hwTab, 10, 50, 10, 50, "set size 2");
     TabCheckSetSize(hwTab, 0, 1, 0, 1, "min size");
@@ -555,8 +558,11 @@ static void test_tab(INT nMinTabWidth)
     hwTab = create_tabcontrol(TCS_FIXEDWIDTH | TCS_BOTTOM, TCIF_TEXT|TCIF_IMAGE);
     SendMessage(hwTab, TCM_SETMINTABWIDTH, 0, nMinTabWidth);
 
+    hdc = GetDC(hwTab);
+    dpi = GetDeviceCaps(hdc, LOGPIXELSX);
+    ReleaseDC(hwTab, hdc);
     trace ("  TCS_FIXEDWIDTH | TCS_BOTTOM tabs...\n");
-    CheckSize(hwTab, TAB_DEFAULT_WIDTH, -1, "no icon, default width");
+    CheckSize(hwTab, dpi, -1, "no icon, default width");
 
     TabCheckSetSize(hwTab, 20, 20, 20, 20, "no icon, set size 1");
     TabCheckSetSize(hwTab, 10, 50, 10, 50, "no icon, set size 2");
@@ -633,6 +639,8 @@ static void test_getters_setters(HWND parent_wnd, INT nTabs)
     RECT rTab;
     INT nTabsRetrieved;
     INT rowCount;
+    INT dpi;
+    HDC hdc;
 
     ok(parent_wnd != NULL, "no parent window!\n");
     flush_sequences(sequences, NUM_MSG_SEQUENCES);
@@ -678,7 +686,11 @@ static void test_getters_setters(HWND parent_wnd, INT nTabs)
     /* Testing GetItemRect */
     flush_sequences(sequences, NUM_MSG_SEQUENCES);
     ok(SendMessage(hTab, TCM_GETITEMRECT, 0, (LPARAM) &rTab), "GetItemRect failed.\n");
-    CheckSize(hTab, TAB_DEFAULT_WIDTH, -1 , "Default Width");
+
+    hdc = GetDC(hTab);
+    dpi = GetDeviceCaps(hdc, LOGPIXELSX);
+    ReleaseDC(hTab, hdc);
+    CheckSize(hTab, dpi, -1 , "Default Width");
     ok_sequence(sequences, TAB_SEQ_INDEX, get_item_rect_seq, "Get itemRect test sequence", FALSE);
     ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Get itemRect test parent sequence", FALSE);
 




More information about the wine-cvs mailing list