Am 16.01.2011 18:17, schrieb James McKenzie:
> On 1/16/11 9:55 AM, Nikolay Sivov wrote:
>> On 1/16/2011 19:39, James McKenzie wrote:
>>> All:
>>>
>>> I would like comments on this patch.
>> Ok.
OK

>>
>>>  static HWND new_window(LPCTSTR lpClassName, DWORD dwStyle, HWND parent) {
>>>    HWND hwnd;
>>> -  hwnd = CreateWindow(lpClassName, NULL, 
>>> dwStyle|WS_POPUP|WS_HSCROLL|WS_VSCROLL
>>> +/*  hwnd = CreateWindow(lpClassName, NULL, 
>>> dwStyle|WS_POPUP|WS_HSCROLL|WS_VSCROLL
>>>                        |WS_VISIBLE, 0, 0, 200, 60, parent, NULL,
>>> -                      hmoduleRichEdit, NULL);
>>> +                      hmoduleRichEdit, NULL); */
>>> +  /* Set screen to VGA proportions for testing purposes, will be removed 
>>> from final patch release */
>>> +    hwnd = CreateWindow(lpClassName, NULL, 
>>> dwStyle|WS_POPUP|WS_HSCROLL|WS_VSCROLL
>>> +                        |WS_VISIBLE, 0, 0, 640, 480, parent, NULL,
>>> +                        hmoduleRichEdit, NULL);
>>>    ok(hwnd != NULL, "class: %s, error: %d\n", lpClassName, (int) 
>>> GetLastError());
>>>    return hwnd;
>> Commented code?
>>
>>> +static inline int is_win9xA()
>>> +{
>>> +    static WCHAR arialW[]={'A','r','i','a','l',0};
>>> +    SetLastError(0xdeadbeef);
>>> +    lstrcmpW(arialW, arialW);
>>> +    return (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED);
>>> +}
>> I think we don't care much about 9x now.
> We still do tests on Windows95 to prevent regressions, or am I incorrect?  
> This code could be removed then.

see http://test.winehq.org/data/

>>> +    hDC = GetDC(hwndRichEdit);
>>> +    ok (hDC, "Creation of hdc failed \n");
>>> +    if (!hDC)
>>> +    {
>>> +        DeleteObject(testFont1A);
>>> +        DeleteObject(testFont2A);
>>> +        DeleteObject(testFont1W);
>>> +        DeleteObject(testFont2W);
>>> +        DeleteObject(testFont3W);
>>> +        DeleteObject(testFont4W);
>>> +        DeleteDC(hDC);
>>> +        DestroyWindow(hwndRichEdit);
>>> +        return;
>>> +    }
>> DeleteObject() with uninitialized handles?
> Should I go ahead and just 'return' then?
>>> +    /* Calculate the twips per pixel */
>>> +    ry = GetDeviceCaps(hDC, LOGPIXELSY);
>>> +
>>> +    static const WCHAR arialW[] = {'A','r','i','a','l',0};
>>> +    static const WCHAR courier[] = {'C','o','u','r','i','e','r',0};
>>> +    static const WCHAR msSansSerif [] = {'M','S',' ','S','a','n','s',' 
>>> ','S','e','r','i','f',0};
>>> +
>> Variable declaration in code?
> I can fix this.
>>
>>> +    todo_wine {
>>> +    SendMessageA(hwndRichEdit, EM_SETMARGINS, EC_LEFTMARGIN, MAKELONG 
>>> (5,0));
>>> +    SendMessageA(hwndRichEdit, EM_GETRECT, 0, (LPARAM)&new_rect);
>>> +    ok(new_rect.left == old_rect.left + 5, "The left border of the 
>>> rectangle is wrong.  The value of it is %d.\n", \
>>> +    new_rect.left);
>>> +    }
>> todo_wine usually contains only test calls.
> Ok.  I missed this one.
>>
>>> +    /*Set test font to be Courier font */
>>> +    SendMessageW(hwndRichEdit, WM_SETFONT, (WPARAM)testFont1W, 
>>> MAKELPARAM(TRUE, 0));
>>> +    /*Verify font is set */
>>> +    SendMessageW(hwndRichEdit, EM_GETCHARFORMAT, SCF_DEFAULT, (LPARAM) 
>>> &CharFont1Unicode);
>>> +    GetObjectW(testFont1W, sizeof(LOGFONTW), &sentLogFont);
>> Do you really need to verify that?
> No.  I will remove this code.
>>> +    /* Per http://msdn.microsoft.com/en-us/library/bb761649%(VS.85).asp if 
>>> the lparam is
>>> +       EC_USEFONTINFO the Left and Right Margins should be set to a narrow 
>>> width if the
>>> +       font has been set */
>> They don't use permanent links I believe.
> Can I modify this to state the page name?

remove the url, maybe better something like "msdn's documentation for 
functionxyz..."

>>
>>> +    ret = GetTextMetricsW (hDC, &tmw);
>>> +    ok (ret, "GetTextMetricsW failed\n");
>>> +    ok (7 == tmw.tmAveCharWidth, "Average Character Width for MS Sans 
>>> Serif is %d\n", tmw.tmAveCharWidth);
>>> +    ok (14 == tmw.tmMaxCharWidth, "Maximum Character Width for MS Sans 
>>> Serif is %d\n", tmw.tmMaxCharWidth);
>>> +    ok (150== CharFont1Unicode.yHeight /*Windows*/ || -195 == 
>>> CharFont1Unicode.yHeight /*Wine*/, \
>>> +       "Character height for MS Sans Serif is not 195 but is %d\n", 
>>> abs(CharFont1Unicode.yHeight));
>>> +    ok (10 == (abs(CharFont1Unicode.yHeight) * ry) / 1440 /*Windows*/ || 
>>> 13 == (abs(CharFont1Unicode.yHeight) * ry) / 1440 /*Wine*/, \
>>> +       "Character Height of MS San Serif character set is not 12 but 
>>> %d\n", abs(CharFont1Unicode.yHeight) * ry / 1440);
>>> +    ok (0 == CharFont1Unicode.wWeight /*Windows*/ || FW_NORMAL == 
>>> CharFont1Unicode.wWeight /*Wine*/, "Average Character Weight for MS"\
>>> +        " Sans Serif is %d\n", CharFont1Unicode.wWeight);
>> I don't like that. Looks like it's necessary to figure out why values differ 
>> comparing to native.
>>
> Ok.  I questioned this as well.
>>> +    todo_wine {
>>> +        SendMessageW(hwndRichEdit, EM_SETMARGINS, EC_USEFONTINFO, 
>>> MAKELONG(EC_USEFONTINFO, EC_USEFONTINFO));
>>> +    }
>> Hm.
> This is one of the test cases that was recommended and it appears to be the 
> only one that 'works'.

i bet Nikolay sighed about the curly brackets

>>
>>> +  if (winetest_debug > 1) {
>>>    test_WM_CHAR();
>>>    test_EM_FINDTEXT();
>>>    test_EM_GETLINE();
>>> @@ -7126,6 +7643,8 @@ START_TEST( editor )
>>>    test_WM_GETDLGCODE();
>>>    test_zoom();
>>>    test_dialogmode();
>>> +  }
>>> +  test_em_setmargins();
>> Why?
>>
>> Another question is how screen resolution affects that test.
> I will look at this as well.  I'll have to figure out how to change the 
> resolution on the test bot and or my local copy of WindowsXP SP2 (not 
> upgradable, no Internet connection to that system.

to be clear: i guess it's about the dpi and not the resolution like 1024x768.

-- 

Best Regards, André Hentschel


Reply via email to