void wxGCDCImpl::DoGradientFillLinear(const wxRect& rect, const wxColour& initialColour, const wxColour& destColour, wxDirection nDirection ) { wxPoint start; wxPoint end; switch( nDirection) { case wxWEST : start = rect.GetRightBottom(); start.x++; end = rect.GetLeftBottom(); break; case wxEAST : start = rect.GetLeftBottom(); end = rect.GetRightBottom(); end.x++; break; case wxNORTH : start = rect.GetLeftBottom(); start.y++; end = rect.GetLeftTop(); break; case wxSOUTH : start = rect.GetLeftTop(); end = rect.GetLeftBottom(); end.y++; break; default : break; } if (rect.width == 0 || rect.height == 0) return; m_graphicContext->SetBrush( m_graphicContext->CreateLinearGradientBrush( start.x,start.y,end.x,end.y, initialColour, destColour)); m_graphicContext->SetPen(*wxTRANSPARENT_PEN); m_graphicContext->DrawRectangle(rect.x,rect.y,rect.width,rect.height); m_graphicContext->SetPen(m_pen); m_graphicContext->SetBrush(m_brush); CalcBoundingBox(rect.x, rect.y); CalcBoundingBox(rect.x + rect.width, rect.y + rect.height); }