git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			117 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/generic/gridsel.h
 | |
| // Purpose:     wxGridSelection
 | |
| // Author:      Stefan Neis
 | |
| // Modified by:
 | |
| // Created:     20/02/2000
 | |
| // RCS-ID:      $$
 | |
| // 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;
 | |
| 
 | |
|     DECLARE_NO_COPY_CLASS(wxGridSelection)
 | |
| };
 | |
| 
 | |
| #endif  // wxUSE_GRID
 | |
| #endif  // _WX_GENERIC_GRIDSEL_H_
 |