// the sorting indicator to effectively show
void UpdateColumnSortingIndicator(int col);
- // update column right positions after their order changed (does nothing if
- // we only use the default widths as in this case m_colRights is not used
- // neither)
- void UpdateColumnRights();
+ // update the grid after changing the columns order (common part of
+ // SetColPos() and ResetColPos())
+ void RefreshAfterColPosChange();
// return the position (not index) of the column at the given logical pixel
m_dragRowOrCol = -1;
}
-void wxGrid::UpdateColumnRights()
+void wxGrid::RefreshAfterColPosChange()
{
- if ( m_colWidths.empty() )
- return;
-
- int colRight = 0;
- for ( int colPos = 0; colPos < m_numCols; colPos++ )
+ // recalculate the column rights as the column positions have changed,
+ // unless we calculate them dynamically because all columns widths are the
+ // same and it's easy to do
+ if ( !m_colWidths.empty() )
{
- int colID = GetColAt( colPos );
+ int colRight = 0;
+ for ( int colPos = 0; colPos < m_numCols; colPos++ )
+ {
+ int colID = GetColAt( colPos );
+
+ colRight += m_colWidths[colID];
+ m_colRights[colID] = colRight;
+ }
+ }
- colRight += m_colWidths[colID];
- m_colRights[colID] = colRight;
+ // and make the changes visible
+ if ( m_useNativeHeader )
+ {
+ if ( m_colAt.empty() )
+ GetColHeader()->ResetColumnsOrder();
+ else
+ GetColHeader()->SetColumnsOrder(m_colAt);
+ }
+ else
+ {
+ m_colWindow->Refresh();
}
+ m_gridWin->Refresh();
}
void wxGrid::SetColPos(int idx, int pos)
wxHeaderCtrl::MoveColumnInOrderArray(m_colAt, idx, pos);
- // also recalculate the column rights as the column positions have changed
- UpdateColumnRights();
-
- // and make the changes visible
- if ( m_useNativeHeader )
- GetColHeader()->SetColumnsOrder(m_colAt);
- else
- m_colWindow->Refresh();
- m_gridWin->Refresh();
+ RefreshAfterColPosChange();
}
void wxGrid::ResetColPos()
{
m_colAt.clear();
- if ( m_useNativeHeader )
- GetColHeader()->ResetColumnsOrder();
- else
- m_colWindow->Refresh();
+ RefreshAfterColPosChange();
}
void wxGrid::EnableDragColMove( bool enable )