]> git.saurik.com Git - wxWidgets.git/blame - include/wx/generic/gridsel.h
Added WinHelp sample doc to samples/help, and made it possible to show
[wxWidgets.git] / include / wx / generic / gridsel.h
CommitLineData
294f6bcb
SN
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
25class WXDLLEXPORT wxGridSelection{
26public:
b5808881
SN
27 wxGridSelection( wxGrid * grid, wxGrid::wxGridSelectionModes sel =
28 wxGrid::wxGridSelectCells );
294f6bcb
SN
29 bool IsSelection();
30 bool IsInSelection ( int row, int col );
f1567cdd 31 void SetSelectionMode(wxGrid::wxGridSelectionModes selmode);
294f6bcb
SN
32 void SelectRow( int row, bool addToSelected = FALSE );
33 void SelectCol( int col, bool addToSelected = FALSE );
5c8fc7c1
SN
34 void SelectBlock( int topRow, int leftCol,
35 int bottomRow, int rightCol,
36 wxMouseEvent* event = 0, bool sendEvent = TRUE );
37 void SelectCell( int row, int col, bool sendEvent = TRUE );
294f6bcb
SN
38 void ToggleCellSelection( int row, int col);
39 void ClearSelection();
40
41 void UpdateRows( size_t pos, int numRows );
42 void UpdateCols( size_t pos, int numCols );
43
44private:
45 int BlockContain( int topRow1, int leftCol1,
b5808881
SN
46 int bottomRow1, int rightCol1,
47 int topRow2, int leftCol2,
48 int bottomRow2, int rightCol2 );
294f6bcb
SN
49 // returns 1, if Block1 contains Block2,
50 // -1, if Block2 contains Block1,
51 // 0, otherwise
52
53 int BlockContainsCell( int topRow, int leftCol,
b5808881
SN
54 int bottomRow, int rightCol,
55 int row, int col )
294f6bcb
SN
56 // returns 1, if Block contains Cell,
57 // 0, otherwise
58 {
59 return ( topRow <= row && row <= bottomRow &&
b5808881 60 leftCol <= col && col <= rightCol );
294f6bcb
SN
61 }
62
b5808881
SN
63 wxGridCellCoordsArray m_cellSelection;
64 wxGridCellCoordsArray m_blockSelectionTopLeft;
65 wxGridCellCoordsArray m_blockSelectionBottomRight;
66 wxArrayInt m_rowSelection;
67 wxArrayInt m_colSelection;
294f6bcb 68
b5808881
SN
69 wxGrid *m_grid;
70 wxGrid::wxGridSelectionModes m_selectionMode;
294f6bcb
SN
71};
72
b5808881
SN
73#endif // #ifdef __WXGRIDSEL_H__
74#endif // #ifndef wxUSE_NEW_GRID