X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/860a4018b93fbc1edaaebfe241e71b3ff0ab4d0d..16ba9ea81557d00c2095194fe4528ccc194ea669:/src/common/dcbase.cpp?ds=inline diff --git a/src/common/dcbase.cpp b/src/common/dcbase.cpp index 52359ee586..9f875dd04d 100644 --- a/src/common/dcbase.cpp +++ b/src/common/dcbase.cpp @@ -471,7 +471,7 @@ void wxDCBase::GetMultiLineTextExtent(const wxString& text, wxCoord *x, wxCoord *y, wxCoord *h, - wxFont *font) + wxFont *font) const { wxCoord widthTextMax = 0, widthLine, heightTextTotal = 0, heightLineDefault = 0, heightLine = 0; @@ -698,13 +698,14 @@ void wxDCBase::DoGradientFillLinear(const wxRect& rect, { // save old pen wxPen oldPen = m_pen; - - wxUint8 nR1 = destColour.Red(); - wxUint8 nG1 = destColour.Green(); - wxUint8 nB1 = destColour.Blue(); - wxUint8 nR2 = initialColour.Red(); - wxUint8 nG2 = initialColour.Green(); - wxUint8 nB2 = initialColour.Blue(); + wxBrush oldBrush = m_brush; + + wxUint8 nR1 = initialColour.Red(); + wxUint8 nG1 = initialColour.Green(); + wxUint8 nB1 = initialColour.Blue(); + wxUint8 nR2 = destColour.Red(); + wxUint8 nG2 = destColour.Green(); + wxUint8 nB2 = destColour.Blue(); wxUint8 nR, nG, nB; if ( nDirection == wxEAST || nDirection == wxWEST ) @@ -733,12 +734,14 @@ void wxDCBase::DoGradientFillLinear(const wxRect& rect, else nB = nB1 + (nB2-nB1)*(w-x)/w; - SetPen(wxPen(wxColour(nR, nG, nB), 1, wxSOLID)); + wxColour colour(nR,nG,nB); + SetPen(wxPen(colour, 1, wxSOLID)); + SetBrush(wxBrush(colour)); if(nDirection == wxEAST) - DrawRectangle(rect.GetLeft()+x, rect.GetTop(), + DrawRectangle(rect.GetRight()-x-xDelta, rect.GetTop(), xDelta, rect.GetHeight()); else //nDirection == wxWEST - DrawRectangle(rect.GetRight()-x-xDelta, rect.GetTop(), + DrawRectangle(rect.GetLeft()+x, rect.GetTop(), xDelta, rect.GetHeight()); } } @@ -768,7 +771,9 @@ void wxDCBase::DoGradientFillLinear(const wxRect& rect, else nB = nB1 + (nB2-nB1)*(w-y)/w; - SetPen(wxPen(wxColour(nR, nG, nB), 1, wxSOLID)); + wxColour colour(nR,nG,nB); + SetPen(wxPen(colour, 1, wxSOLID)); + SetBrush(wxBrush(colour)); if(nDirection == wxNORTH) DrawRectangle(rect.GetLeft(), rect.GetTop()+y, rect.GetWidth(), yDelta); @@ -779,6 +784,7 @@ void wxDCBase::DoGradientFillLinear(const wxRect& rect, } SetPen(oldPen); + SetBrush(oldBrush); } void wxDCBase::DoGradientFillConcentric(const wxRect& rect,