X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f1e269209afbcbec4e46ab5df4ba43d902a6bf2f..74ebd40690d3676e74a7cfc239eee6c7e9764f05:/src/generic/gridsel.cpp diff --git a/src/generic/gridsel.cpp b/src/generic/gridsel.cpp index a86edfc4ad..f1d62b07f6 100644 --- a/src/generic/gridsel.cpp +++ b/src/generic/gridsel.cpp @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "gridsel.h" -#endif - // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" @@ -69,7 +65,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 +79,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 @@ -91,11 +87,11 @@ bool wxGridSelection::IsInSelection ( int row, int col ) // (unless we are in column selection mode). if ( m_selectionMode != wxGrid::wxGridSelectColumns ) { - size_t count = m_rowSelection.GetCount(); + count = m_rowSelection.GetCount(); for ( size_t n = 0; n < count; n++ ) { if ( row == m_rowSelection[n] ) - return TRUE; + return true; } } @@ -104,14 +100,14 @@ bool wxGridSelection::IsInSelection ( int row, int col ) // (unless we are in row selection mode). if ( m_selectionMode != wxGrid::wxGridSelectRows ) { - size_t count = m_colSelection.GetCount(); + count = m_colSelection.GetCount(); 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 @@ -165,7 +161,7 @@ void wxGridSelection::SetSelectionMode(wxGrid::wxGridSelectionModes selmode) m_blockSelectionBottomRight.RemoveAt(n); SelectBlock( topRow, 0, bottomRow, m_grid->GetNumberCols() - 1, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } } else // selmode == wxGridSelectColumns) @@ -176,7 +172,7 @@ void wxGridSelection::SetSelectionMode(wxGrid::wxGridSelectionModes selmode) m_blockSelectionBottomRight.RemoveAt(n); SelectBlock( 0, leftCol, m_grid->GetNumberRows() - 1, rightCol, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } } } @@ -210,7 +206,7 @@ void wxGridSelection::SelectRow( int row, // 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]; @@ -233,12 +229,12 @@ void wxGridSelection::SelectRow( int row, 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; } } } @@ -259,10 +255,12 @@ void wxGridSelection::SelectRow( int row, } // Update View: - wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), - wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), + wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } // Send Event wxGridRangeSelectEvent gridEvt( m_grid->GetId(), @@ -270,7 +268,7 @@ void wxGridSelection::SelectRow( int row, m_grid, wxGridCellCoords( row, 0 ), wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ), - TRUE, + true, ControlDown, ShiftDown, AltDown, MetaDown ); @@ -303,7 +301,7 @@ void wxGridSelection::SelectCol( int col, // 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]; @@ -326,12 +324,12 @@ void wxGridSelection::SelectCol( int col, 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; } } } @@ -352,10 +350,12 @@ void wxGridSelection::SelectCol( int col, } // Update View: - wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), - wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), + wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } // Send Event wxGridRangeSelectEvent gridEvt( m_grid->GetId(), @@ -363,7 +363,7 @@ void wxGridSelection::SelectCol( int col, m_grid, wxGridCellCoords( 0, col ), wxGridCellCoords( m_grid->GetNumberRows() - 1, col ), - TRUE, + true, ControlDown, ShiftDown, AltDown, MetaDown ); @@ -439,14 +439,17 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, coords2.GetRow(), coords2.GetCol(), topRow, leftCol, bottomRow, rightCol ) ) { - case 1: - return; - case -1: - m_blockSelectionTopLeft.RemoveAt(n); - m_blockSelectionBottomRight.RemoveAt(n); - n--; count--; - default: - ; + case 1: + return; + + case -1: + m_blockSelectionTopLeft.RemoveAt(n); + m_blockSelectionBottomRight.RemoveAt(n); + n--; count--; + break; + + default: + break; } } @@ -461,13 +464,16 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, m_rowSelection[n], m_grid->GetNumberCols()-1, topRow, leftCol, bottomRow, rightCol ) ) { - case 1: - return; - case -1: - m_rowSelection.RemoveAt(n); - n--; count--; - default: - ; + case 1: + return; + + case -1: + m_rowSelection.RemoveAt(n); + n--; count--; + break; + + default: + break; } } } @@ -480,13 +486,16 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, m_grid->GetNumberRows()-1, m_colSelection[n], topRow, leftCol, bottomRow, rightCol ) ) { - case 1: - return; - case -1: - m_colSelection.RemoveAt(n); - n--; count--; - default: - ; + case 1: + return; + + case -1: + m_colSelection.RemoveAt(n); + n--; count--; + break; + + default: + break; } } } @@ -494,10 +503,12 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, m_blockSelectionBottomRight.Add( wxGridCellCoords( bottomRow, rightCol ) ); // Update View: - wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( topRow, leftCol ), - wxGridCellCoords( bottomRow, rightCol ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( topRow, leftCol ), + wxGridCellCoords( bottomRow, rightCol ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } // Send Event, if not disabled. if ( sendEvent ) @@ -507,7 +518,7 @@ void wxGridSelection::SelectBlock( int topRow, int leftCol, m_grid, wxGridCellCoords( topRow, leftCol ), wxGridCellCoords( bottomRow, rightCol ), - TRUE, + true, ControlDown, ShiftDown, AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -536,10 +547,12 @@ void wxGridSelection::SelectCell( int row, int col, m_cellSelection.Add( wxGridCellCoords( row, col ) ); // Update View: - wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, col ), - wxGridCellCoords( row, col ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + wxRect r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, col ), + wxGridCellCoords( row, col ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } // Send event if (sendEvent) @@ -549,7 +562,7 @@ void wxGridSelection::SelectCell( int row, int col, m_grid, wxGridCellCoords( row, col ), wxGridCellCoords( row, col ), - TRUE, + true, ControlDown, ShiftDown, AltDown, MetaDown); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -582,16 +595,16 @@ void wxGridSelection::ToggleCellSelection( int row, int col, count = m_cellSelection.GetCount(); for ( n = 0; n < count; n++ ) { - wxGridCellCoords& coords = m_cellSelection[n]; - if ( row == coords.GetRow() && col == coords.GetCol() ) + const wxGridCellCoords& sel = m_cellSelection[n]; + if ( row == sel.GetRow() && col == sel.GetCol() ) { - wxRect r; - r = m_grid->BlockToDeviceRect( m_cellSelection[n], - m_cellSelection[n] ); + wxGridCellCoords coords = m_cellSelection[n]; m_cellSelection.RemoveAt(n); - n--; count--; if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + wxRect r = m_grid->BlockToDeviceRect( coords, coords ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } // Send event wxGridRangeSelectEvent gridEvt( m_grid->GetId(), @@ -599,7 +612,7 @@ void wxGridSelection::ToggleCellSelection( int row, int col, m_grid, wxGridCellCoords( row, col ), wxGridCellCoords( row, col ), - FALSE, + false, ControlDown, ShiftDown, AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -648,19 +661,19 @@ void wxGridSelection::ToggleCellSelection( int row, int col, { if ( topRow < row ) SelectBlock( topRow, leftCol, row - 1, rightCol, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); if ( bottomRow > row ) SelectBlock( row + 1, leftCol, bottomRow, rightCol, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } if ( m_selectionMode != wxGrid::wxGridSelectRows ) { if ( leftCol < col ) SelectBlock( row, leftCol, row, col - 1, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); if ( rightCol > col ) SelectBlock( row, col + 1, row, rightCol, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } } } @@ -679,11 +692,11 @@ void wxGridSelection::ToggleCellSelection( int row, int col, { if ( col > 0 ) SelectBlock( row, 0, row, col - 1, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); if ( col < m_grid->GetNumberCols() - 1 ) SelectBlock( row, col + 1, row, m_grid->GetNumberCols() - 1, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } } } @@ -703,11 +716,11 @@ void wxGridSelection::ToggleCellSelection( int row, int col, { if ( row > 0 ) SelectBlock( 0, col, row - 1, col, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); if ( row < m_grid->GetNumberRows() - 1 ) SelectBlock( row + 1, col, m_grid->GetNumberRows() - 1, col, - FALSE, FALSE, FALSE, FALSE, FALSE ); + false, false, false, false, false ); } } } @@ -720,16 +733,19 @@ void wxGridSelection::ToggleCellSelection( int row, int col, { case wxGrid::wxGridSelectCells: { - r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, col ), - wxGridCellCoords( row, col ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, col ), + wxGridCellCoords( row, col ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } + wxGridRangeSelectEvent gridEvt( m_grid->GetId(), wxEVT_GRID_RANGE_SELECT, m_grid, wxGridCellCoords( row, col ), wxGridCellCoords( row, col ), - FALSE, + false, ControlDown, ShiftDown, AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -737,16 +753,19 @@ void wxGridSelection::ToggleCellSelection( int row, int col, } case wxGrid::wxGridSelectRows: { - r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), - wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), + wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } + wxGridRangeSelectEvent gridEvt( m_grid->GetId(), wxEVT_GRID_RANGE_SELECT, m_grid, wxGridCellCoords( row, 0 ), wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ), - FALSE, + false, ControlDown, ShiftDown, AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -754,16 +773,19 @@ void wxGridSelection::ToggleCellSelection( int row, int col, } case wxGrid::wxGridSelectColumns: { - r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), - wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), + wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); + } + wxGridRangeSelectEvent gridEvt( m_grid->GetId(), wxEVT_GRID_RANGE_SELECT, m_grid, wxGridCellCoords( 0, col ), wxGridCellCoords( m_grid->GetNumberRows() - 1, col ), - FALSE, + false, ControlDown, ShiftDown, AltDown, MetaDown ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); @@ -775,34 +797,44 @@ void wxGridSelection::ToggleCellSelection( int row, int col, void wxGridSelection::ClearSelection() { size_t n; + wxRect r; + wxGridCellCoords coords1, coords2; // deselect all invidiual cells and update the screen if ( m_selectionMode == wxGrid::wxGridSelectCells ) { - while( ( n = m_cellSelection.GetCount() ) > 0) { - wxRect r; n--; - r = m_grid->BlockToDeviceRect( m_cellSelection[n], - m_cellSelection[n] ); + coords1 = m_cellSelection[n]; m_cellSelection.RemoveAt(n); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( coords1, coords1 ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); +#ifdef __WXMAC__ + ((wxWindow *)m_grid->m_gridWin)->Update(); +#endif + } } } // deselect all blocks and update the screen while( ( n = m_blockSelectionTopLeft.GetCount() ) > 0) { - wxRect r; n--; - r = m_grid->BlockToDeviceRect( m_blockSelectionTopLeft[n], - m_blockSelectionBottomRight[n] ); + coords1 = m_blockSelectionTopLeft[n]; + coords2 = m_blockSelectionBottomRight[n]; m_blockSelectionTopLeft.RemoveAt(n); m_blockSelectionBottomRight.RemoveAt(n); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( coords1, coords2 ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); +#ifdef __WXMAC__ + ((wxWindow *)m_grid->m_gridWin)->Update(); +#endif + } } // deselect all rows and update the screen @@ -811,13 +843,17 @@ void wxGridSelection::ClearSelection() while( ( n = m_rowSelection.GetCount() ) > 0) { n--; - int & row = m_rowSelection[n]; - wxRect r; - r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), - wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); + int row = m_rowSelection[n]; m_rowSelection.RemoveAt(n); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( wxGridCellCoords( row, 0 ), + wxGridCellCoords( row, m_grid->GetNumberCols() - 1 ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); +#ifdef __WXMAC__ + ((wxWindow *)m_grid->m_gridWin)->Update(); +#endif + } } } @@ -827,13 +863,17 @@ void wxGridSelection::ClearSelection() while( ( n = m_colSelection.GetCount() ) > 0) { n--; - int & col = m_colSelection[n]; - wxRect r; - r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), - wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); + int col = m_colSelection[n]; m_colSelection.RemoveAt(n); if ( !m_grid->GetBatchCount() ) - ((wxWindow *)m_grid->m_gridWin)->Refresh( FALSE, &r ); + { + r = m_grid->BlockToDeviceRect( wxGridCellCoords( 0, col ), + wxGridCellCoords( m_grid->GetNumberRows() - 1, col ) ); + ((wxWindow *)m_grid->m_gridWin)->Refresh( false, &r ); +#ifdef __WXMAC__ + ((wxWindow *)m_grid->m_gridWin)->Update(); +#endif + } } } @@ -846,7 +886,7 @@ void wxGridSelection::ClearSelection() wxGridCellCoords( 0, 0 ), wxGridCellCoords( m_grid->GetNumberRows() - 1, m_grid->GetNumberCols() - 1 ), - FALSE ); + false ); m_grid->GetEventHandler()->ProcessEvent(gridEvt); }