summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svtools/source/brwbox/ebbcontrols.cxx1
-rw-r--r--vcl/inc/vcl/button.hxx14
-rw-r--r--vcl/source/control/button.cxx16
3 files changed, 21 insertions, 10 deletions
diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx
index 1d7b0253fa29..fd607f2a9c17 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -268,6 +268,7 @@ namespace svt
EnableChildTransparentMode();
pBox = new TriStateBox(this,WB_CENTER|WB_VCENTER);
+ pBox->SetLegacyNoTextAlign( true );
pBox->EnableChildTransparentMode();
pBox->SetPaintTransparent( sal_True );
pBox->SetClickHdl( LINK( this, CheckBoxControl, OnClick ) );
diff --git a/vcl/inc/vcl/button.hxx b/vcl/inc/vcl/button.hxx
index 9c5d6a323cf8..9daf41aa2f65 100644
--- a/vcl/inc/vcl/button.hxx
+++ b/vcl/inc/vcl/button.hxx
@@ -292,7 +292,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 );
@@ -409,7 +413,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 );
@@ -481,6 +489,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 1770bf8c0e12..37752bbcc50e 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -2193,9 +2193,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;
@@ -2421,7 +2421,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 );
@@ -2430,7 +2430,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 );
@@ -3256,9 +3256,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();
@@ -3354,7 +3354,7 @@ void CheckBox::ImplCheck()
// -----------------------------------------------------------------------
CheckBox::CheckBox( Window* pParent, WinBits nStyle ) :
- Button( WINDOW_CHECKBOX )
+ Button( WINDOW_CHECKBOX ), mbLegacyNoTextAlign( false )
{
ImplInitCheckBoxData();
ImplInit( pParent, nStyle );
@@ -3363,7 +3363,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 );