No changes, just refactor wxGrid::DrawAllGridLines().

Extract the actual drawing of the lines into a new DoDrawGridLines() method.

This will be used by the upcoming commits for drawing grid lines for a part of
the grid only, see #14294.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2012-05-27 13:00:09 +00:00
parent cf1a582ab9
commit f31d3faf7a
2 changed files with 25 additions and 4 deletions

View File

@ -2133,6 +2133,16 @@ private:
// redraw the grid lines, should be called after changing their attributes // redraw the grid lines, should be called after changing their attributes
void RedrawGridLines(); void RedrawGridLines();
// draw all lines from top to bottom row and left to right column in the
// rectangle determined by (top, left)-(bottom, right) -- but notice that
// the caller must have set up the clipping correctly, this rectangle is
// only used here for optimization
void DoDrawGridLines(wxDC& dc,
int top, int left,
int bottom, int right,
int topRow, int leftCol,
int bottomRight, int rightCol);
// common part of Clip{Horz,Vert}GridLines // common part of Clip{Horz,Vert}GridLines
void DoClipGridLines(bool& var, bool clip); void DoClipGridLines(bool& var, bool clip);

View File

@ -5417,9 +5417,22 @@ void wxGrid::DrawAllGridLines( wxDC& dc, const wxRegion & WXUNUSED(reg) )
dc.SetDeviceClippingRegion( clippedcells ); dc.SetDeviceClippingRegion( clippedcells );
DoDrawGridLines(dc,
top, left, bottom, right,
topRow, leftCol, m_numRows, m_numCols);
dc.DestroyClippingRegion();
}
void
wxGrid::DoDrawGridLines(wxDC& dc,
int top, int left,
int bottom, int right,
int topRow, int leftCol,
int bottomRow, int rightCol)
{
// horizontal grid lines // horizontal grid lines
for ( int i = internalYToRow(top); i < m_numRows; i++ ) for ( int i = topRow; i < bottomRow; i++ )
{ {
int bot = GetRowBottom(i) - 1; int bot = GetRowBottom(i) - 1;
@ -5434,7 +5447,7 @@ void wxGrid::DrawAllGridLines( wxDC& dc, const wxRegion & WXUNUSED(reg) )
} }
// vertical grid lines // vertical grid lines
for ( int colPos = leftCol; colPos < m_numCols; colPos++ ) for ( int colPos = leftCol; colPos < rightCol; colPos++ )
{ {
int i = GetColAt( colPos ); int i = GetColAt( colPos );
@ -5453,8 +5466,6 @@ void wxGrid::DrawAllGridLines( wxDC& dc, const wxRegion & WXUNUSED(reg) )
dc.DrawLine( colRight, top, colRight, bottom ); dc.DrawLine( colRight, top, colRight, bottom );
} }
} }
dc.DestroyClippingRegion();
} }
void wxGrid::DrawRowLabels( wxDC& dc, const wxArrayInt& rows) void wxGrid::DrawRowLabels( wxDC& dc, const wxArrayInt& rows)