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:
@@ -1068,6 +1068,8 @@ public:
|
|||||||
void DrawAllGridLines( wxDC& dc, const wxRegion & reg );
|
void DrawAllGridLines( wxDC& dc, const wxRegion & reg );
|
||||||
void DrawCell( wxDC& dc, const wxGridCellCoords& );
|
void DrawCell( wxDC& dc, const wxGridCellCoords& );
|
||||||
void DrawHighlight(wxDC& dc, const wxGridCellCoordsArray& cells);
|
void DrawHighlight(wxDC& dc, const wxGridCellCoordsArray& cells);
|
||||||
|
void ScrollWindow( int dx, int dy, const wxRect *rect ) wxOVERRIDE;
|
||||||
|
|
||||||
void UpdateGridWindows() const;
|
void UpdateGridWindows() const;
|
||||||
|
|
||||||
// this function is called when the current cell highlight must be redrawn
|
// this function is called when the current cell highlight must be redrawn
|
||||||
|
@@ -2111,9 +2111,17 @@ void wxGrid::DoRenderBox( wxDC& dc, const int& style,
|
|||||||
|
|
||||||
void wxGridWindow::ScrollWindow( int dx, int dy, const wxRect *rect )
|
void wxGridWindow::ScrollWindow( int dx, int dy, const wxRect *rect )
|
||||||
{
|
{
|
||||||
wxWindow::ScrollWindow( dx, dy, rect );
|
m_owner->ScrollWindow(dx, dy, rect);
|
||||||
m_owner->GetGridRowLabelWindow()->ScrollWindow( 0, dy, rect );
|
}
|
||||||
m_owner->GetGridColLabelWindow()->ScrollWindow( dx, 0, 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 )
|
void wxGridWindow::OnMouseEvent( wxMouseEvent& event )
|
||||||
|
Reference in New Issue
Block a user