X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c8fc7c1debd3d2a58c015132f2a3d9e3e26cd38..c6e7d14fa96da41236095a18ee8c1e3ad13d3dd0:/src/generic/gridsel.cpp diff --git a/src/generic/gridsel.cpp b/src/generic/gridsel.cpp index 99d9082014..d3d2222a0d 100644 --- a/src/generic/gridsel.cpp +++ b/src/generic/gridsel.cpp @@ -69,7 +69,7 @@ bool wxGridSelection::IsInSelection ( int row, int col ) { wxGridCellCoords& coords = m_cellSelection[n]; if ( row == coords.GetRow() && col == coords.GetCol() ) - return true; + return TRUE; } } @@ -83,7 +83,7 @@ bool wxGridSelection::IsInSelection ( int row, int col ) if ( BlockContainsCell(coords1.GetRow(), coords1.GetCol(), coords2.GetRow(), coords2.GetCol(), row, col ) ) - return true; + return TRUE; } // Now check whether the given cell is @@ -95,7 +95,7 @@ bool wxGridSelection::IsInSelection ( int row, int col ) for ( size_t n = 0; n < count; n++ ) { if ( row == m_rowSelection[n] ) - return true; + return TRUE; } } @@ -108,10 +108,10 @@ bool wxGridSelection::IsInSelection ( int row, int col ) for ( size_t n = 0; n < count; n++ ) { if ( col == m_colSelection[n] ) - return true; + return TRUE; } } - return false; + return FALSE; } // Change the selection mode @@ -184,7 +184,9 @@ void wxGridSelection::SetSelectionMode(wxGrid::wxGridSelectionModes selmode) } } -void wxGridSelection::SelectRow( int row, bool addToSelected ) +void wxGridSelection::SelectRow( int row, + bool ControlDown, bool ShiftDown, + bool AltDown, bool MetaDown ) { if ( m_selectionMode == wxGrid::wxGridSelectColumns ) return; @@ -208,7 +210,7 @@ void wxGridSelection::SelectRow( int row, bool addToSelected ) // Simplify list of selected blocks (if possible) count = m_blockSelectionTopLeft.GetCount(); - bool done = false; + bool done = FALSE; for ( n = 0; n < count; n++ ) { wxGridCellCoords& coords1 = m_blockSelectionTopLeft[n]; @@ -231,12 +233,12 @@ void wxGridSelection::SelectRow( int row, bool addToSelected ) else if ( coords1.GetRow() == row + 1) { coords1.SetRow(row); - done = true; + done = TRUE; } else if ( coords2.GetRow() == row - 1) { coords2.SetRow(row); - done = true; + done = TRUE; } } } @@ -267,12 +269,17 @@ void wxGridSelection::SelectRow( int row, bool addToSelected ) wxEVT_GRID_RANGE_SELECT, m_grid, wxGridCellCoords( row, 0 ), - wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); + wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ), + TRUE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); } -void wxGridSelection::SelectCol( int col, bool addToSelected ) +void wxGridSelection::SelectCol( int col, + bool ControlDown, bool ShiftDown, + bool AltDown, bool MetaDown ) { if ( m_selectionMode == wxGrid::wxGridSelectRows ) return; @@ -296,7 +303,7 @@ void wxGridSelection::SelectCol( int col, bool addToSelected ) // Simplify list of selected blocks (if possible) count = m_blockSelectionTopLeft.GetCount(); - bool done = false; + bool done = FALSE; for ( n = 0; n < count; n++ ) { wxGridCellCoords& coords1 = m_blockSelectionTopLeft[n]; @@ -319,12 +326,12 @@ void wxGridSelection::SelectCol( int col, bool addToSelected ) else if ( coords1.GetCol() == col + 1) { coords1.SetCol(col); - done = true; + done = TRUE; } else if ( coords2.GetCol() == col - 1) { coords2.SetCol(col); - done = true; + done = TRUE; } } } @@ -355,14 +362,19 @@ void wxGridSelection::SelectCol( int col, bool addToSelected ) wxEVT_GRID_RANGE_SELECT, m_grid, wxGridCellCoords( 0, col ), - wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); + wxGridCellCoords( m_grid->GetNumberRows() - 1, col ), + TRUE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); } void wxGridSelection::SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol, - wxMouseEvent* mouseEv, bool sendEvent ) + bool ControlDown, bool ShiftDown, + bool AltDown, bool MetaDown, + bool sendEvent ) { // Fix the coordinates of the block if needed. if ( m_selectionMode == wxGrid::wxGridSelectRows ) @@ -391,7 +403,8 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, // Handle single cell selection in SelectCell. if ( topRow == bottomRow && leftCol == rightCol ) - SelectCell( topRow, leftCol, sendEvent ); + SelectCell( topRow, leftCol, ControlDown, ShiftDown, + AltDown, MetaDown, sendEvent ); size_t count, n; // Remove single cells contained in newly selected block. @@ -485,33 +498,22 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, // Send Event, if not disabled. if ( sendEvent ) { - if ( mouseEv == 0) - { - wxGridRangeSelectEvent gridEvt( m_grid->GetId(), - wxEVT_GRID_RANGE_SELECT, - m_grid, - wxGridCellCoords( topRow, leftCol ), - wxGridCellCoords( bottomRow, rightCol ) ); - m_grid->GetEventHandler()->ProcessEvent(gridEvt); - } - else - { - wxGridRangeSelectEvent gridEvt( m_grid->GetId(), - wxEVT_GRID_RANGE_SELECT, - m_grid, - wxGridCellCoords( topRow, leftCol ), - wxGridCellCoords( bottomRow, rightCol ), - TRUE, - mouseEv->ControlDown(), - mouseEv->ShiftDown(), - mouseEv->AltDown(), - mouseEv->MetaDown() ); - m_grid->GetEventHandler()->ProcessEvent(gridEvt); - } + wxGridRangeSelectEvent gridEvt( m_grid->GetId(), + wxEVT_GRID_RANGE_SELECT, + m_grid, + wxGridCellCoords( topRow, leftCol ), + wxGridCellCoords( bottomRow, rightCol ), + TRUE, + ControlDown, ShiftDown, + AltDown, MetaDown ); + m_grid->GetEventHandler()->ProcessEvent(gridEvt); } } -void wxGridSelection::SelectCell( int row, int col, bool sendEvent ) +void wxGridSelection::SelectCell( int row, int col, + bool ControlDown, bool ShiftDown, + bool AltDown, bool MetaDown, + bool sendEvent ) { if ( m_selectionMode == wxGrid::wxGridSelectRows ) { @@ -534,19 +536,29 @@ void wxGridSelection::SelectCell( int row, int col, bool sendEvent ) ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); // Send event - wxGridEvent gridEvt( m_grid->GetId(), - wxEVT_GRID_SELECT_CELL, - m_grid, - row, col ); - m_grid->GetEventHandler()->ProcessEvent(gridEvt); + if (sendEvent) + { + wxGridEvent gridEvt( m_grid->GetId(), + wxEVT_GRID_SELECT_CELL, + m_grid, + row, col, + -1, -1, + TRUE, + ControlDown, ShiftDown, + AltDown, MetaDown); + m_grid->GetEventHandler()->ProcessEvent(gridEvt); + } } -void wxGridSelection::ToggleCellSelection( int row, int col) +void wxGridSelection::ToggleCellSelection( int row, int col, + bool ControlDown, bool ShiftDown, + bool AltDown, bool MetaDown ) { // if the cell is not selected, select it if ( !IsInSelection ( row, col ) ) { - SelectCell( row, col ); + SelectCell( row, col, ControlDown, ShiftDown, + AltDown, MetaDown ); return; } @@ -574,14 +586,16 @@ void wxGridSelection::ToggleCellSelection( int row, int col) n--; count--; if ( !m_grid->GetBatchCount() ) ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); - return; // Send event wxGridEvent gridEvt( m_grid->GetId(), wxEVT_GRID_SELECT_CELL, m_grid, - row, col, -1, -1, FALSE ); + row, col, -1, -1, FALSE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); + return; } } } @@ -701,7 +715,9 @@ void wxGridSelection::ToggleCellSelection( int row, int col) wxGridEvent gridEvt( m_grid->GetId(), wxEVT_GRID_SELECT_CELL, m_grid, - row, col, -1, -1, FALSE ); + row, col, -1, -1, FALSE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); break; } @@ -716,7 +732,9 @@ void wxGridSelection::ToggleCellSelection( int row, int col) m_grid, wxGridCellCoords( row, 0 ), wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ), - FALSE ); + FALSE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); break; } @@ -731,7 +749,9 @@ void wxGridSelection::ToggleCellSelection( int row, int col) m_grid, wxGridCellCoords( 0, col ), wxGridCellCoords( m_grid->GetNumberRows() - 1, col ), - FALSE ); + FALSE, + ControlDown, ShiftDown, + AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); break; }