additional fix for fdo#51336 for radiobuttons

Change-Id: Ib35d27962b2c63221e1967886236547b3b1047d6
This commit is contained in:
Noel Power
2012-07-06 14:38:51 +01:00
parent a1345cd93a
commit 2bc2d09bba
2 changed files with 15 additions and 6 deletions
+4
View File
@@ -313,6 +313,10 @@ private:
protected:
using Control::ImplInitSettings;
using Window::ImplInit;
// allows the behaviour of horizontal placement of the checbox image to be
// overridden.
virtual void ImplHandleHoriAlign( const Point& rPos, const Size& rSize,
const Size& rImageSize, Rectangle& rStateRect );
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nStyle );
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
+11 -6
View File
@@ -2124,6 +2124,14 @@ if ( bNativeOK == sal_False )
// -----------------------------------------------------------------------
void RadioButton:: ImplHandleHoriAlign( const Point& rPos, const Size& /*rSize*/,
const Size& /*rImageSize*/, Rectangle& rStateRect )
{
// align Checkbox image left ( always )
rStateRect.Left() = rPos.X();
}
// -----------------------------------------------------------------------
void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
const Point& rPos, const Size& rSize,
const Size& rImageSize, Rectangle& rStateRect,
@@ -2188,12 +2196,9 @@ void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
}
else
{
if ( nWinStyle & WB_CENTER )
rStateRect.Left() = rPos.X()+((rSize.Width()-rImageSize.Width())/2);
else if ( nWinStyle & WB_RIGHT )
rStateRect.Left() = rPos.X()+rSize.Width()-rImageSize.Width(); //-1;
else
rStateRect.Left() = rPos.X(); //+1;
// allow specific handling of WB_CENTER, WB_LEFT & WB_RIGHT by
// by subclasses
ImplHandleHoriAlign( rPos, rSize, rImageSize, rStateRect );
if ( nWinStyle & WB_VCENTER )
rStateRect.Top() = rPos.Y()+((rSize.Height()-rImageSize.Height())/2);
else if ( nWinStyle & WB_BOTTOM )