Added SetSelectionMode
[wxWidgets.git] / include / wx / generic / gridsel.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/generic/gridsel.h
3 // Purpose: wxGridSelection
4 // Author: Stefan Neis
5 // Modified by:
6 // Created: 20/02/2000
7 // RCS-ID: $$
8 // Copyright: (c) Stefan Neis
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/defs.h"
13
14 #if defined(wxUSE_NEW_GRID) && (wxUSE_NEW_GRID)
15
16 #ifndef __WXGRIDSEL_H__
17 #define __WXGRIDSEL_H__
18
19 #ifdef __GNUG__
20 #pragma interface "gridsel.h"
21 #endif
22
23 #include "wx/grid.h"
24
25 class WXDLLEXPORT wxGridSelection{
26 public:
27 wxGridSelection( wxGrid * grid, wxGrid::wxGridSelectionModes sel =
28 wxGrid::wxGridSelectCells );
29 bool IsSelection();
30 bool IsInSelection ( int row, int col );
31 void SetSelectionMode(wxGrid::wxGridSelectionModes selmode);
32 void SelectRow( int row, bool addToSelected = FALSE );
33 void SelectCol( int col, bool addToSelected = FALSE );
34 void SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol );
35 void SelectCell( int row, int col);
36 void ToggleCellSelection( int row, int col);
37 void ClearSelection();
38
39 void UpdateRows( size_t pos, int numRows );
40 void UpdateCols( size_t pos, int numCols );
41
42 private:
43 int BlockContain( int topRow1, int leftCol1,
44 int bottomRow1, int rightCol1,
45 int topRow2, int leftCol2,
46 int bottomRow2, int rightCol2 );
47 // returns 1, if Block1 contains Block2,
48 // -1, if Block2 contains Block1,
49 // 0, otherwise
50
51 int BlockContainsCell( int topRow, int leftCol,
52 int bottomRow, int rightCol,
53 int row, int col )
54 // returns 1, if Block contains Cell,
55 // 0, otherwise
56 {
57 return ( topRow <= row && row <= bottomRow &&
58 leftCol <= col && col <= rightCol );
59 }
60
61 wxGridCellCoordsArray m_cellSelection;
62 wxGridCellCoordsArray m_blockSelectionTopLeft;
63 wxGridCellCoordsArray m_blockSelectionBottomRight;
64 wxArrayInt m_rowSelection;
65 wxArrayInt m_colSelection;
66
67 wxGrid *m_grid;
68 wxGrid::wxGridSelectionModes m_selectionMode;
69 };
70
71 #endif // #ifdef __WXGRIDSEL_H__
72 #endif // #ifndef wxUSE_NEW_GRID