Add wxGridSelection::SelectAll() and use it in wxGrid
The difference between calling SelectAll() and SelectBlock() with a block covering the entire grid is that the former discards any previously selected blocks, which become clearly redundant. As a consequence, clicking on the grid corner 10 times in a row still results in a selection with a single block, not 10 (identical) blocks.
This commit is contained in:
@@ -52,6 +52,10 @@ public:
|
||||
kbd, sendEvent);
|
||||
}
|
||||
|
||||
// This function replaces all the existing selected blocks (which become
|
||||
// redundant) with a single block covering the entire grid.
|
||||
void SelectAll();
|
||||
|
||||
void DeselectBlock(const wxGridBlockCoords& block,
|
||||
const wxKeyboardState& kbd = wxKeyboardState(),
|
||||
bool sendEvent = true );
|
||||
|
@@ -10235,11 +10235,8 @@ void wxGrid::SelectBlock(int topRow, int leftCol, int bottomRow, int rightCol,
|
||||
|
||||
void wxGrid::SelectAll()
|
||||
{
|
||||
if ( m_numRows > 0 && m_numCols > 0 )
|
||||
{
|
||||
if ( m_selection )
|
||||
m_selection->SelectBlock( 0, 0, m_numRows - 1, m_numCols - 1 );
|
||||
}
|
||||
if ( m_selection )
|
||||
m_selection->SelectAll();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -194,6 +194,23 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol,
|
||||
kbd, sendEvent);
|
||||
}
|
||||
|
||||
void
|
||||
wxGridSelection::SelectAll()
|
||||
{
|
||||
// There is no need to refresh anything, as Select() will do it anyhow, and
|
||||
// no need to generate any events, so do not call ClearSelection() here.
|
||||
m_selection.clear();
|
||||
|
||||
const int numRows = m_grid->GetNumberRows();
|
||||
const int numCols = m_grid->GetNumberCols();
|
||||
|
||||
if ( numRows && numCols )
|
||||
{
|
||||
Select(wxGridBlockCoords(0, 0, numRows - 1, numCols - 1),
|
||||
wxKeyboardState(), true /* send event */);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
wxGridSelection::DeselectBlock(const wxGridBlockCoords& block,
|
||||
const wxKeyboardState& kbd,
|
||||
|
Reference in New Issue
Block a user