Fixed geometry errors according to patch #1523304.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Neis
2006-07-16 20:35:29 +00:00
parent d0b6344dda
commit 2ef6ae9de2

View File

@@ -127,16 +127,15 @@ bool wxBitmapButton::OS2OnDraw( WXDRAWITEMSTRUCT* pItem)
// //
// Centre the bitmap in the control area // Centre the bitmap in the control area
// //
int nX = 0;
int nX1 = 0; int nX1 = 0;
int nY1 = 0; int nY1 = 0;
int nWidth = vDc.m_vRclPaint.xRight - vDc.m_vRclPaint.xLeft; int nWidth = vDc.m_vRclPaint.xRight - vDc.m_vRclPaint.xLeft;
int nHeight = vDc.m_vRclPaint.xRight - vDc.m_vRclPaint.xLeft; int nHeight = vDc.m_vRclPaint.yTop - vDc.m_vRclPaint.yBottom;
int nBmpWidth = pBitmap->GetWidth(); int nBmpWidth = pBitmap->GetWidth();
int nBmpHeight = pBitmap->GetHeight(); int nBmpHeight = pBitmap->GetHeight();
nX1 = nX + (nWidth - nBmpWidth) / 2; nX1 = (nWidth - nBmpWidth) / 2;
nY1 = nX + (nHeight - nBmpHeight) / 2; nY1 = (nHeight - nBmpHeight) / 2;
if (bIsSelected && bAutoDraw) if (bIsSelected && bAutoDraw)
{ {
@@ -147,11 +146,7 @@ bool wxBitmapButton::OS2OnDraw( WXDRAWITEMSTRUCT* pItem)
// //
// Draw the button face // Draw the button face
// //
{ DrawFace( vDc, bIsSelected );
DrawFace( vDc
,bIsSelected
);
}
// //
// Draw the bitmap // Draw the bitmap
@@ -163,9 +158,7 @@ bool wxBitmapButton::OS2OnDraw( WXDRAWITEMSTRUCT* pItem)
// //
if ((pUser->fsState == BDS_DISABLED) && bAutoDraw) if ((pUser->fsState == BDS_DISABLED) && bAutoDraw)
{ {
DrawButtonDisable( vDc DrawButtonDisable( vDc, *pBitmap );
,*pBitmap
);
} }
else if ((pUser->fsState == BDS_DEFAULT) && bAutoDraw) else if ((pUser->fsState == BDS_DEFAULT) && bAutoDraw)
{ {
@@ -187,33 +180,40 @@ void wxBitmapButton::DrawFace (wxClientDC& rDC, bool bSel)
// //
// Draw the main button face // Draw the main button face
// //
::WinFillRect(rDC.GetHPS(), &rDC.m_vRclPaint, vFaceColor.GetPixel()); // This triggers a redraw and destroys the bottom & left focus border and
// doesn't seem to do anything useful.
// ::WinFillRect(rDC.GetHPS(), &rDC.m_vRclPaint, vFaceColor.GetPixel());
// //
// Draw the border // Draw the border
// Note: DrawLine expects wxWidgets coordinate system so swap
// //
rDC.SetPen(bSel ? vDarkShadowPen : vHiLitePen); rDC.SetPen(bSel ? vDarkShadowPen : vHiLitePen);
// top
rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1 rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yTop - 1
,rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yTop - 1
);
rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yTop - 1
,rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yBottom + 1 ,rDC.m_vRclPaint.yBottom + 1
,rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yBottom + 1
);
// left
rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yBottom + 1
,rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yTop - 1
); );
rDC.SetPen(bSel ? vHiLitePen : vDarkShadowPen); rDC.SetPen(bSel ? vHiLitePen : vDarkShadowPen);
// bottom
rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1 rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
,rDC.m_vRclPaint.yBottom + 1
,rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yBottom + 1
);
rDC.DrawLine( rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yTop - 1 ,rDC.m_vRclPaint.yTop - 1
,rDC.m_vRclPaint.xRight - 1 ,rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yTop - 1
);
// right
rDC.DrawLine( rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yBottom + 1 ,rDC.m_vRclPaint.yBottom + 1
,rDC.m_vRclPaint.xRight - 1
,rDC.m_vRclPaint.yTop - 1
); );
} // end of wxBitmapButton::DrawFace } // end of wxBitmapButton::DrawFace
@@ -226,28 +226,33 @@ void wxBitmapButton::DrawButtonFocus (
// //
// Draw a thick black line around the outside of the button // Draw a thick black line around the outside of the button
// Note: DrawLine expects wxWidgets coordinate system so swap
// //
rDC.SetPen(vBlackPen); rDC.SetPen(vBlackPen);
// top
rDC.DrawLine( rDC.m_vRclPaint.xLeft rDC.DrawLine( rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop ,rDC.m_vRclPaint.yBottom
,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
);
rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xRight ,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yBottom
); );
// right
rDC.DrawLine( rDC.m_vRclPaint.xRight rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yBottom
,rDC.m_vRclPaint.xLeft ,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yTop
); );
rDC.DrawLine( rDC.m_vRclPaint.xLeft // bottom
,rDC.m_vRclPaint.yBottom rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xLeft ,rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop ,rDC.m_vRclPaint.yTop
); );
// left
rDC.DrawLine( rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yBottom
);
} // end of wxBitmapButton::DrawButtonFocus } // end of wxBitmapButton::DrawButtonFocus
void wxBitmapButton::DrawButtonDisable( wxClientDC& rDC, void wxBitmapButton::DrawButtonDisable( wxClientDC& rDC,
@@ -257,28 +262,33 @@ void wxBitmapButton::DrawButtonDisable( wxClientDC& rDC,
// //
// Draw a thick black line around the outside of the button // Draw a thick black line around the outside of the button
// Note: DrawLine expects wxWidgets coordinate system so swap
// //
rDC.SetPen(vGreyPen); rDC.SetPen(vGreyPen);
// top
rDC.DrawLine( rDC.m_vRclPaint.xLeft rDC.DrawLine( rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop ,rDC.m_vRclPaint.yBottom
,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
);
rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xRight ,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yBottom
); );
// right
rDC.DrawLine( rDC.m_vRclPaint.xRight rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yBottom
,rDC.m_vRclPaint.xLeft ,rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yBottom ,rDC.m_vRclPaint.yTop
); );
rDC.DrawLine( rDC.m_vRclPaint.xLeft // bottom
,rDC.m_vRclPaint.yBottom rDC.DrawLine( rDC.m_vRclPaint.xRight
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xLeft ,rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop ,rDC.m_vRclPaint.yTop
); );
// left
rDC.DrawLine( rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yTop
,rDC.m_vRclPaint.xLeft
,rDC.m_vRclPaint.yBottom
);
wxDisableBitmap(rBmp, vGreyPen.GetColour().GetPixel()); wxDisableBitmap(rBmp, vGreyPen.GetColour().GetPixel());
} // end of wxBitmapButton::DrawButtonDisable } // end of wxBitmapButton::DrawButtonDisable