use a single wxKeyboardEvent parameter instead of 4 bools in tons of places

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-09-20 00:09:28 +00:00
parent ba4d737a9e
commit 8b5f6d9d47
4 changed files with 233 additions and 284 deletions

View File

@@ -160,9 +160,8 @@ void wxGridSelection::SetSelectionMode( wxGrid::wxGridSelectionModes selmode )
{
m_blockSelectionTopLeft.RemoveAt(n);
m_blockSelectionBottomRight.RemoveAt(n);
SelectBlock( topRow, 0,
bottomRow, m_grid->GetNumberCols() - 1,
false, false, false, false, false );
SelectBlockNoEvent( topRow, 0,
bottomRow, m_grid->GetNumberCols() - 1);
}
}
else // selmode == wxGridSelectColumns)
@@ -171,9 +170,8 @@ void wxGridSelection::SetSelectionMode( wxGrid::wxGridSelectionModes selmode )
{
m_blockSelectionTopLeft.RemoveAt(n);
m_blockSelectionBottomRight.RemoveAt(n);
SelectBlock( 0, leftCol,
m_grid->GetNumberRows() - 1, rightCol,
false, false, false, false, false );
SelectBlockNoEvent(0, leftCol,
m_grid->GetNumberRows() - 1, rightCol);
}
}
}
@@ -182,9 +180,7 @@ void wxGridSelection::SetSelectionMode( wxGrid::wxGridSelectionModes selmode )
}
}
void wxGridSelection::SelectRow( int row,
bool ControlDown, bool ShiftDown,
bool AltDown, bool MetaDown )
void wxGridSelection::SelectRow(int row, const wxKeyboardState& kbd)
{
if ( m_selectionMode == wxGrid::wxGridSelectColumns )
return;
@@ -275,15 +271,12 @@ void wxGridSelection::SelectRow( int row,
wxGridCellCoords( row, 0 ),
wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ),
true,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd);
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
void wxGridSelection::SelectCol( int col,
bool ControlDown, bool ShiftDown,
bool AltDown, bool MetaDown )
void wxGridSelection::SelectCol(int col, const wxKeyboardState& kbd)
{
if ( m_selectionMode == wxGrid::wxGridSelectRows )
return;
@@ -372,16 +365,14 @@ void wxGridSelection::SelectCol( int col,
wxGridCellCoords( 0, col ),
wxGridCellCoords( m_grid->GetNumberRows() - 1, col ),
true,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd );
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
void wxGridSelection::SelectBlock( int topRow, int leftCol,
int bottomRow, int rightCol,
bool ControlDown, bool ShiftDown,
bool AltDown, bool MetaDown,
const wxKeyboardState& kbd,
bool sendEvent )
{
// Fix the coordinates of the block if needed.
@@ -432,8 +423,7 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol,
if ( m_selectionMode == wxGrid::wxGridSelectCells &&
topRow == bottomRow && leftCol == rightCol )
{
SelectCell( topRow, leftCol, ControlDown, ShiftDown,
AltDown, MetaDown, sendEvent );
SelectCell( topRow, leftCol, kbd, sendEvent );
}
size_t count, n;
@@ -553,28 +543,24 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol,
wxGridCellCoords( topRow, leftCol ),
wxGridCellCoords( bottomRow, rightCol ),
true,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd);
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
}
void wxGridSelection::SelectCell( int row, int col,
bool ControlDown, bool ShiftDown,
bool AltDown, bool MetaDown,
const wxKeyboardState& kbd,
bool sendEvent )
{
if ( m_selectionMode == wxGrid::wxGridSelectRows )
{
SelectBlock(row, 0, row, m_grid->GetNumberCols() - 1,
ControlDown, ShiftDown, AltDown, MetaDown, sendEvent);
SelectBlock(row, 0, row, m_grid->GetNumberCols() - 1, kbd, sendEvent);
return;
}
else if ( m_selectionMode == wxGrid::wxGridSelectColumns )
{
SelectBlock(0, col, m_grid->GetNumberRows() - 1, col,
ControlDown, ShiftDown, AltDown, MetaDown, sendEvent);
SelectBlock(0, col, m_grid->GetNumberRows() - 1, col, kbd, sendEvent);
return;
}
@@ -601,20 +587,19 @@ void wxGridSelection::SelectCell( int row, int col,
wxGridCellCoords( row, col ),
wxGridCellCoords( row, col ),
true,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd);
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
}
void wxGridSelection::ToggleCellSelection( int row, int col,
bool ControlDown, bool ShiftDown,
bool AltDown, bool MetaDown )
void
wxGridSelection::ToggleCellSelection(int row, int col,
const wxKeyboardState& kbd)
{
// if the cell is not selected, select it
if ( !IsInSelection ( row, col ) )
{
SelectCell( row, col, ControlDown, ShiftDown, AltDown, MetaDown );
SelectCell(row, col, kbd);
return;
}
@@ -651,8 +636,7 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
wxGridCellCoords( row, col ),
wxGridCellCoords( row, col ),
false,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd );
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
return;
@@ -701,21 +685,17 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
if ( m_selectionMode != wxGrid::wxGridSelectColumns )
{
if ( topRow < row )
SelectBlock( topRow, leftCol, row - 1, rightCol,
false, false, false, false, false );
SelectBlockNoEvent(topRow, leftCol, row - 1, rightCol);
if ( bottomRow > row )
SelectBlock( row + 1, leftCol, bottomRow, rightCol,
false, false, false, false, false );
SelectBlockNoEvent(row + 1, leftCol, bottomRow, rightCol);
}
if ( m_selectionMode != wxGrid::wxGridSelectRows )
{
if ( leftCol < col )
SelectBlock( row, leftCol, row, col - 1,
false, false, false, false, false );
SelectBlockNoEvent(row, leftCol, row, col - 1);
if ( rightCol > col )
SelectBlock( row, col + 1, row, rightCol,
false, false, false, false, false );
SelectBlockNoEvent(row, col + 1, row, rightCol);
}
}
}
@@ -735,12 +715,10 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
if (m_selectionMode == wxGrid::wxGridSelectCells)
{
if ( col > 0 )
SelectBlock( row, 0, row, col - 1,
false, false, false, false, false );
SelectBlockNoEvent(row, 0, row, col - 1);
if ( col < m_grid->GetNumberCols() - 1 )
SelectBlock( row, col + 1,
row, m_grid->GetNumberCols() - 1,
false, false, false, false, false );
SelectBlockNoEvent( row, col + 1,
row, m_grid->GetNumberCols() - 1);
}
}
}
@@ -761,12 +739,10 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
if (m_selectionMode == wxGrid::wxGridSelectCells)
{
if ( row > 0 )
SelectBlock( 0, col, row - 1, col,
false, false, false, false, false );
SelectBlockNoEvent(0, col, row - 1, col);
if ( row < m_grid->GetNumberRows() - 1 )
SelectBlock( row + 1, col,
m_grid->GetNumberRows() - 1, col,
false, false, false, false, false );
SelectBlockNoEvent(row + 1, col,
m_grid->GetNumberRows() - 1, col);
}
}
}
@@ -793,8 +769,7 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
wxGridCellCoords( row, col ),
wxGridCellCoords( row, col ),
false,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd );
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
break;
@@ -815,8 +790,7 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
wxGridCellCoords( row, 0 ),
wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ),
false,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd );
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
break;
@@ -837,8 +811,7 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
wxGridCellCoords( 0, col ),
wxGridCellCoords( m_grid->GetNumberRows() - 1, col ),
false,
ControlDown, ShiftDown,
AltDown, MetaDown );
kbd );
m_grid->GetEventHandler()->ProcessEvent( gridEvt );
}
break;