diff options
author | Noel Power <noel.power@novell.com> | 2012-08-01 17:01:44 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2012-09-28 17:27:23 +0100 |
commit | e74c879c6f9a2d80941c11a4fb57eb9874795349 (patch) | |
tree | 2eccd3645ffc340581f338b7df5b2f1a0dd81221 /vcl | |
parent | ee6a1c0797ca839e50d7b5ab522088d8d2f6501e (diff) |
simpler fix fo fdo#51336, bnc#757602 - change vcl checkbox no-label behaviour
Change-Id: I1563dc2afc49c7b1115192db00fbd08a7524154e
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/vcl/button.hxx | 14 | ||||
-rw-r--r-- | vcl/source/control/button.cxx | 16 |
2 files changed, 20 insertions, 10 deletions
diff --git a/vcl/inc/vcl/button.hxx b/vcl/inc/vcl/button.hxx index 89d4d8e3fff0..a65202a6495e 100644 --- a/vcl/inc/vcl/button.hxx +++ b/vcl/inc/vcl/button.hxx @@ -291,7 +291,11 @@ private: sal_Bool mbRadioCheck; sal_Bool mbStateChanged; Link maToggleHdl; - + // when mbLegacyNoTextAlign is set then the old behaviour where + // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement + // occurs, otherwise the image ( radiobutton circle ) is placed + // to the left or right ( depending on RTL or LTR settings ) + bool mbLegacyNoTextAlign; SAL_DLLPRIVATE void ImplInitRadioButtonData(); SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); @@ -408,7 +412,11 @@ private: TriState meSaveValue; sal_Bool mbTriState; Link maToggleHdl; - + // when mbLegacyNoTextAlign is set then the old behaviour where + // the WB_LEFT, WB_RIGHT & WB_CENTER affect the image placement + // occurs, otherwise the image ( checkbox box ) is placed + // to the left or right ( depending on RTL or LTR settings ) + bool mbLegacyNoTextAlign; SAL_DLLPRIVATE void ImplInitCheckBoxData(); SAL_DLLPRIVATE WinBits ImplInitStyle( const Window* pPrevWindow, WinBits nStyle ); SAL_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground ); @@ -480,6 +488,8 @@ public: void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; } const Link& GetToggleHdl() const { return maToggleHdl; } + bool IsLegacyNoTextAlign() { return mbLegacyNoTextAlign; } + void SetLegacyNoTextAlign( bool bVal ) { mbLegacyNoTextAlign = bVal; } }; inline void CheckBox::Check( sal_Bool bCheck ) diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index 3e09946ed16f..96507fde1621 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -2188,9 +2188,9 @@ void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, } else { - if ( nWinStyle & WB_CENTER ) + if ( mbLegacyNoTextAlign && ( nWinStyle & WB_CENTER ) ) rStateRect.Left() = rPos.X()+((rSize.Width()-rImageSize.Width())/2); - else if ( nWinStyle & WB_RIGHT ) + else if ( mbLegacyNoTextAlign && ( nWinStyle & WB_RIGHT ) ) rStateRect.Left() = rPos.X()+rSize.Width()-rImageSize.Width(); //-1; else rStateRect.Left() = rPos.X(); //+1; @@ -2417,7 +2417,7 @@ void RadioButton::ImplCallClick( sal_Bool bGrabFocus, sal_uInt16 nFocusFlags ) // ----------------------------------------------------------------------- RadioButton::RadioButton( Window* pParent, WinBits nStyle ) : - Button( WINDOW_RADIOBUTTON ) + Button( WINDOW_RADIOBUTTON ), mbLegacyNoTextAlign( false ) { ImplInitRadioButtonData(); ImplInit( pParent, nStyle ); @@ -2426,7 +2426,7 @@ RadioButton::RadioButton( Window* pParent, WinBits nStyle ) : // ----------------------------------------------------------------------- RadioButton::RadioButton( Window* pParent, const ResId& rResId ) : - Button( WINDOW_RADIOBUTTON ) + Button( WINDOW_RADIOBUTTON ), mbLegacyNoTextAlign( false ) { ImplInitRadioButtonData(); rResId.SetRT( RSC_RADIOBUTTON ); @@ -3252,9 +3252,9 @@ void CheckBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags, } else { - if ( nWinStyle & WB_CENTER ) + if ( mbLegacyNoTextAlign && ( nWinStyle & WB_CENTER ) ) rStateRect.Left() = rPos.X()+((rSize.Width()-rImageSize.Width())/2); - else if ( nWinStyle & WB_RIGHT ) + else if ( mbLegacyNoTextAlign && ( nWinStyle & WB_RIGHT ) ) rStateRect.Left() = rPos.X()+rSize.Width()-rImageSize.Width(); else rStateRect.Left() = rPos.X(); @@ -3350,7 +3350,7 @@ void CheckBox::ImplCheck() // ----------------------------------------------------------------------- CheckBox::CheckBox( Window* pParent, WinBits nStyle ) : - Button( WINDOW_CHECKBOX ) + Button( WINDOW_CHECKBOX ), mbLegacyNoTextAlign( false ) { ImplInitCheckBoxData(); ImplInit( pParent, nStyle ); @@ -3359,7 +3359,7 @@ CheckBox::CheckBox( Window* pParent, WinBits nStyle ) : // ----------------------------------------------------------------------- CheckBox::CheckBox( Window* pParent, const ResId& rResId ) : - Button( WINDOW_CHECKBOX ) + Button( WINDOW_CHECKBOX ), mbLegacyNoTextAlign( false ) { ImplInitCheckBoxData(); rResId.SetRT( RSC_CHECKBOX ); |