]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/grid.h
added dnd support to generic wxTreeCtrl
[wxWidgets.git] / include / wx / generic / grid.h
index 5de89b4fc552f2e54d0aa7fd448517ab8868bf57..9932513d4d9e80ebec886614af00d5a35db4127a 100644 (file)
@@ -9,7 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-
 #include "wx/defs.h"
 
 #if !defined(wxUSE_NEW_GRID) || !(wxUSE_NEW_GRID)
@@ -28,7 +27,6 @@
 #include "wx/string.h"
 #include "wx/scrolbar.h"
 #include "wx/event.h"
-#include "wx/textctrl.h"
 #include "wx/combobox.h"
 #include "wx/dynarray.h"
 #include "wx/timer.h"
@@ -63,6 +61,9 @@ class WXDLLEXPORT wxGridRowLabelWindow;
 class WXDLLEXPORT wxGridTableBase;
 class WXDLLEXPORT wxGridWindow;
 
+class WXDLLEXPORT wxCheckBox;
+class WXDLLEXPORT wxTextCtrl;
+
 // ----------------------------------------------------------------------------
 // wxGridCellRenderer: this class is responsible for actually drawing the cell
 // in the grid. You may pass it to the wxGridCellAttr (below) to change the
@@ -102,6 +103,19 @@ public:
                       bool isSelected);
 };
 
+// renderer for boolean fields
+class WXDLLEXPORT wxGridCellBoolRenderer : public wxGridCellRenderer
+{
+public:
+
+    // draw a check mark or nothing
+    virtual void Draw(wxGrid& grid,
+                      wxGridCellAttr& attr,
+                      wxDC& dc,
+                      const wxRect& rect,
+                      int row, int col,
+                      bool isSelected);
+};
 
 // ----------------------------------------------------------------------------
 // wxGridCellEditor:  This class is responsible for providing and manipulating
@@ -131,6 +145,10 @@ public:
     // colours/fonts for it
     virtual void Show(bool show, wxGridCellAttr *attr = (wxGridCellAttr *)NULL);
 
+    // Draws the part of the cell not occupied by the control: the base class
+    // version just fills it with background colour from the attribute
+    virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
+
     // Fetch the value from the table and prepare the edit control
     // to begin editing.  Set the focus to the edit control.
     virtual void BeginEdit(int row, int col, wxGrid* grid) = 0;
@@ -149,6 +167,10 @@ public:
     // that first key if desired.
     virtual void StartingKey(wxKeyEvent& event);
 
+    // if the editor is enabled by clicking on the cell, this method will be
+    // called
+    virtual void StartingClick();
+
     // Some types of controls on some platforms may need some help
     // with the Return key.
     virtual void HandleReturn(wxKeyEvent& event);
@@ -168,7 +190,7 @@ protected:
     wxFont m_fontOld;
 };
 
-
+// the editor for string/text data
 class WXDLLEXPORT wxGridCellTextEditor : public wxGridCellEditor
 {
 public:
@@ -178,6 +200,8 @@ public:
                         wxWindowID id,
                         wxEvtHandler* evtHandler);
 
+    virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
+
     virtual void BeginEdit(int row, int col, wxGrid* grid);
     virtual bool EndEdit(int row, int col,  bool saveValue, wxGrid* grid);
 
@@ -192,6 +216,30 @@ private:
     wxString m_startValue;
 };
 
+// the editor for boolean data
+class WXDLLEXPORT wxGridCellBoolEditor : public wxGridCellEditor
+{
+public:
+    virtual void Create(wxWindow* parent,
+                        wxWindowID id,
+                        wxEvtHandler* evtHandler);
+
+    virtual void SetSize(const wxRect& rect);
+    virtual void Show(bool show, wxGridCellAttr *attr = (wxGridCellAttr *)NULL);
+
+    virtual void BeginEdit(int row, int col, wxGrid* grid);
+    virtual bool EndEdit(int row, int col,  bool saveValue, wxGrid* grid);
+
+    virtual void Reset();
+    virtual void StartingClick();
+
+protected:
+    wxCheckBox *CBox() const { return (wxCheckBox *)m_control; }
+
+private:
+    bool m_startValue;
+};
+
 // ----------------------------------------------------------------------------
 // wxGridCellAttr: this class can be used to alter the cells appearance in
 // the grid by changing their colour/font/... from default. An object of this
@@ -541,17 +589,17 @@ public:
         return *this;
     }
 
-    bool operator==( const wxGridCellCoords& other )
+    bool operator==( const wxGridCellCoords& other ) const
     {
         return (m_row == other.m_row  &&  m_col == other.m_col);
     }
 
-    bool operator!=( const wxGridCellCoords& other )
+    bool operator!=( const wxGridCellCoords& other ) const
     {
         return (m_row != other.m_row  ||  m_col != other.m_col);
     }
 
-    bool operator!()
+    bool operator!() const
     {
         return (m_row == -1 && m_col == -1 );
     }
@@ -1071,6 +1119,9 @@ public:
            wxGRID_CHOICE,
            wxGRID_COMBOBOX };
 
+    // for wxGridCellBoolEditor
+    wxWindow *GetGridWindow() const;
+
 protected:
     bool m_created;
     bool m_displayed;