Override wxGrid::ScrollWindow() to scroll row/column labels too

Instead of doing it in overridden wxGridWindow::ScrollWindow(), do it
from wxGrid::ScrollWindow() itself, this makes more sense and will make
it easier to generalize it to scroll more windows.

No real changes yet.
This commit is contained in:
Vadim Zeitlin 2019-07-15 15:51:00 +02:00
parent a871229f8b
commit f61b58bba3
2 changed files with 13 additions and 3 deletions

View File

@ -1068,6 +1068,8 @@ public:
void DrawAllGridLines( wxDC& dc, const wxRegion & reg );
void DrawCell( wxDC& dc, const wxGridCellCoords& );
void DrawHighlight(wxDC& dc, const wxGridCellCoordsArray& cells);
void ScrollWindow( int dx, int dy, const wxRect *rect ) wxOVERRIDE;
void UpdateGridWindows() const;
// this function is called when the current cell highlight must be redrawn

View File

@ -2111,9 +2111,17 @@ void wxGrid::DoRenderBox( wxDC& dc, const int& style,
void wxGridWindow::ScrollWindow( int dx, int dy, const wxRect *rect )
{
wxWindow::ScrollWindow( dx, dy, rect );
m_owner->GetGridRowLabelWindow()->ScrollWindow( 0, dy, rect );
m_owner->GetGridColLabelWindow()->ScrollWindow( dx, 0, rect );
m_owner->ScrollWindow(dx, dy, rect);
}
void wxGrid::ScrollWindow( int dx, int dy, const wxRect *rect )
{
// We must explicitly call wxWindow version to avoid infinite recursion as
// wxGridWindow::ScrollWindow() calls this method back.
m_gridWin->wxWindow::ScrollWindow( dx, dy, rect );
m_rowLabelWin->ScrollWindow( 0, dy, rect );
m_colLabelWin->ScrollWindow( dx, 0, rect );
}
void wxGridWindow::OnMouseEvent( wxMouseEvent& event )