]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dcbase.cpp
sockets work with wxDFB now
[wxWidgets.git] / src / common / dcbase.cpp
index 4264c85ae1f574bd041e34a52e12fecc735db77b..9f875dd04d6c19e866c1bd6438009576a7e9f053 100644 (file)
@@ -698,6 +698,7 @@ void wxDCBase::DoGradientFillLinear(const wxRect& rect,
 {
     // save old pen
     wxPen oldPen = m_pen;
+    wxBrush oldBrush = m_brush;
 
     wxUint8 nR1 = initialColour.Red();
     wxUint8 nG1 = initialColour.Green();
@@ -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,