| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/generic/gridsel.h
- // Purpose: wxGridSelection
- // Author: Stefan Neis
- // Modified by:
- // Created: 20/02/2000
- // Copyright: (c) Stefan Neis
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_GENERIC_GRIDSEL_H_
- #define _WX_GENERIC_GRIDSEL_H_
- #include "wx/defs.h"
- #if wxUSE_GRID
- #include "wx/grid.h"
- class WXDLLIMPEXP_ADV wxGridSelection
- {
- public:
- wxGridSelection(wxGrid *grid,
- wxGrid::wxGridSelectionModes sel = wxGrid::wxGridSelectCells);
- bool IsSelection();
- bool IsInSelection(int row, int col);
- bool IsInSelection(const wxGridCellCoords& coords)
- {
- return IsInSelection(coords.GetRow(), coords.GetCol());
- }
- void SetSelectionMode(wxGrid::wxGridSelectionModes selmode);
- wxGrid::wxGridSelectionModes GetSelectionMode() { return m_selectionMode; }
- void SelectRow(int row, const wxKeyboardState& kbd = wxKeyboardState());
- void SelectCol(int col, const wxKeyboardState& kbd = wxKeyboardState());
- void SelectBlock(int topRow, int leftCol,
- int bottomRow, int rightCol,
- const wxKeyboardState& kbd = wxKeyboardState(),
- bool sendEvent = true );
- void SelectBlock(const wxGridCellCoords& topLeft,
- const wxGridCellCoords& bottomRight,
- const wxKeyboardState& kbd = wxKeyboardState(),
- bool sendEvent = true )
- {
- SelectBlock(topLeft.GetRow(), topLeft.GetCol(),
- bottomRight.GetRow(), bottomRight.GetCol(),
- kbd, sendEvent);
- }
- void SelectCell(int row, int col,
- const wxKeyboardState& kbd = wxKeyboardState(),
- bool sendEvent = true);
- void SelectCell(const wxGridCellCoords& coords,
- const wxKeyboardState& kbd = wxKeyboardState(),
- bool sendEvent = true)
- {
- SelectCell(coords.GetRow(), coords.GetCol(), kbd, sendEvent);
- }
- void ToggleCellSelection(int row, int col,
- const wxKeyboardState& kbd = wxKeyboardState());
- void ToggleCellSelection(const wxGridCellCoords& coords,
- const wxKeyboardState& kbd = wxKeyboardState())
- {
- ToggleCellSelection(coords.GetRow(), coords.GetCol(), kbd);
- }
- void ClearSelection();
- void UpdateRows( size_t pos, int numRows );
- void UpdateCols( size_t pos, int numCols );
- private:
- int BlockContain( int topRow1, int leftCol1,
- int bottomRow1, int rightCol1,
- int topRow2, int leftCol2,
- int bottomRow2, int rightCol2 );
- // returns 1, if Block1 contains Block2,
- // -1, if Block2 contains Block1,
- // 0, otherwise
- int BlockContainsCell( int topRow, int leftCol,
- int bottomRow, int rightCol,
- int row, int col )
- // returns 1, if Block contains Cell,
- // 0, otherwise
- {
- return ( topRow <= row && row <= bottomRow &&
- leftCol <= col && col <= rightCol );
- }
- void SelectBlockNoEvent(int topRow, int leftCol,
- int bottomRow, int rightCol)
- {
- SelectBlock(topRow, leftCol, bottomRow, rightCol,
- wxKeyboardState(), false);
- }
- wxGridCellCoordsArray m_cellSelection;
- wxGridCellCoordsArray m_blockSelectionTopLeft;
- wxGridCellCoordsArray m_blockSelectionBottomRight;
- wxArrayInt m_rowSelection;
- wxArrayInt m_colSelection;
- wxGrid *m_grid;
- wxGrid::wxGridSelectionModes m_selectionMode;
- friend class WXDLLIMPEXP_FWD_ADV wxGrid;
- wxDECLARE_NO_COPY_CLASS(wxGridSelection);
- };
- #endif // wxUSE_GRID
- #endif // _WX_GENERIC_GRIDSEL_H_
|