Alexandre Julliard : user32: Added support for WS_EX_RIGHT in the button control.

Alexandre Julliard julliard at winehq.org
Thu Apr 17 14:43:39 CDT 2008


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Apr 17 19:26:34 2008 +0200

user32: Added support for WS_EX_RIGHT in the button control.

---

 dlls/user32/button.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/user32/button.c b/dlls/user32/button.c
index 27f10b7..d1ba2c1 100644
--- a/dlls/user32/button.c
+++ b/dlls/user32/button.c
@@ -567,9 +567,8 @@ static LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
 
 /**********************************************************************
  * Convert button styles to flags used by DrawText.
- * TODO: handle WS_EX_RIGHT extended style.
  */
-static UINT BUTTON_BStoDT(DWORD style)
+static UINT BUTTON_BStoDT( DWORD style, DWORD ex_style )
 {
    UINT dtStyle = DT_NOCLIP;  /* We use SelectClipRgn to limit output */
 
@@ -593,6 +592,8 @@ static UINT BUTTON_BStoDT(DWORD style)
          /* all other flavours have left aligned text */
    }
 
+   if (ex_style & WS_EX_RIGHT) dtStyle = DT_RIGHT | (dtStyle & ~(DT_LEFT | DT_CENTER));
+
    /* DrawText ignores vertical alignment for multiline text,
     * but we use these flags to align label manually.
     */
@@ -626,10 +627,11 @@ static UINT BUTTON_BStoDT(DWORD style)
 static UINT BUTTON_CalcLabelRect(HWND hwnd, HDC hdc, RECT *rc)
 {
    LONG style = GetWindowLongW( hwnd, GWL_STYLE );
+   LONG ex_style = GetWindowLongW( hwnd, GWL_EXSTYLE );
    WCHAR *text;
    ICONINFO    iconInfo;
    BITMAP      bm;
-   UINT        dtStyle = BUTTON_BStoDT(style);
+   UINT        dtStyle = BUTTON_BStoDT( style, ex_style );
    RECT        r = *rc;
    INT         n;
 




More information about the wine-cvs mailing list