]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridsel.h
simpler implementation
[wxWidgets.git] / include / wx / generic / gridsel.h
index e30cbbac6b121716e579b7da674e3bbec3307013..5fc30ab2597c249e8fa851564230508496e02f1a 100644 (file)
@@ -9,33 +9,43 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/defs.h"
-
-#if defined(wxUSE_NEW_GRID) && (wxUSE_NEW_GRID)
+#ifndef _WX_GENERIC_GRIDSEL_H_
+#define _WX_GENERIC_GRIDSEL_H_
 
-#ifndef __WXGRIDSEL_H__
-#define __WXGRIDSEL_H__
+#include "wx/defs.h"
 
-#ifdef __GNUG__
-#pragma interface "gridsel.h"
-#endif
+#if wxUSE_GRID
 
 #include "wx/grid.h"
 
-class WXDLLEXPORT wxGridSelection{
+class WXDLLIMPEXP_ADV wxGridSelection
+{
 public:
-    enum wxGridSelectionModes {wxGridSelectCells,
-                              wxGridSelectRows,
-                              wxGridSelectColumns};
-    wxGridSelection( wxGrid * grid, wxGridSelection::wxGridSelectionModes sel =
-                    wxGridSelection::wxGridSelectCells );
+    wxGridSelection( wxGrid * grid, wxGrid::wxGridSelectionModes sel =
+                     wxGrid::wxGridSelectCells );
     bool IsSelection();
     bool IsInSelection ( int row, int col );
-    void SelectRow( int row, bool addToSelected = FALSE );
-    void SelectCol( int col, bool addToSelected = FALSE );
-    void SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol );
-    void SelectCell( int row, int col);
-    void ToggleCellSelection( int row, int col);
+    void SetSelectionMode(wxGrid::wxGridSelectionModes selmode);
+    wxGrid::wxGridSelectionModes GetSelectionMode() { return m_selectionMode; }
+    void SelectRow( int row,
+                    bool ControlDown = false,  bool ShiftDown = false,
+                    bool AltDown = false, bool MetaDown = false );
+    void SelectCol( int col,
+                    bool ControlDown = false,  bool ShiftDown = false,
+                    bool AltDown = false, bool MetaDown = false );
+    void SelectBlock( int topRow, int leftCol,
+                      int bottomRow, int rightCol,
+                      bool ControlDown = false,  bool ShiftDown = false,
+                      bool AltDown = false, bool MetaDown = false,
+                      bool sendEvent = true );
+    void SelectCell( int row, int col,
+                     bool ControlDown = false,  bool ShiftDown = false,
+                     bool AltDown = false, bool MetaDown = false,
+                     bool sendEvent = true );
+    void ToggleCellSelection( int row, int col,
+                              bool ControlDown = false,
+                              bool ShiftDown = false,
+                              bool AltDown = false, bool MetaDown = false );
     void ClearSelection();
 
     void UpdateRows( size_t pos, int numRows );
@@ -43,32 +53,36 @@ public:
 
 private:
     int BlockContain( int topRow1, int leftCol1,
-                      int bottomRow1, int rightCol1,
-                      int topRow2, int leftCol2,
-                      int bottomRow2, int rightCol2 );
+                       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 )
+                           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 );
+                 leftCol <= col && col <= rightCol );
     }
 
-    wxGridCellCoordsArray      m_cellSelection;
-    wxGridCellCoordsArray      m_blockSelectionTopLeft;
-    wxGridCellCoordsArray      m_blockSelectionBottomRight;
-    wxArrayInt                 m_rowSelection;
-    wxArrayInt                         m_colSelection;
+    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_ADV wxGrid;
 
-    wxGrid                     *m_grid;
-    wxGridSelectionModes       m_selectionMode;
+    DECLARE_NO_COPY_CLASS(wxGridSelection)
 };
 
-#endif // #ifdef __WXGRIDSEL_H__
-#endif // #ifndef wxUSE_NEW_GRID
+#endif  // wxUSE_GRID
+#endif  // _WX_GENERIC_GRIDSEL_H_