]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/grid.h
Change GetC to return an int so that it can return wxEOF on error.
[wxWidgets.git] / include / wx / generic / grid.h
index a262d1b9538387a899c2bfa6fed39a533d70238d..a9acd59db1565551b2968bb535544c42161aee92 100644 (file)
@@ -9,30 +9,26 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __WXGRID_H__
-#define __WXGRID_H__
+#ifndef _WX_GENERIC_GRID_H_
+#define _WX_GENERIC_GRID_H_
+
+#include "wx/defs.h"
+
+#if wxUSE_GRID
 
-#include "wx/hashmap.h"
-#include "wx/panel.h"
 #include "wx/scrolwin.h"
-#include "wx/string.h"
-#include "wx/arrstr.h"
-#include "wx/scrolbar.h"
-#include "wx/event.h"
-#include "wx/combobox.h"
-#include "wx/dynarray.h"
-#include "wx/timer.h"
-#include "wx/clntdata.h"
 
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
+extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxGridNameStr[];
+
 // Default parameters for wxGrid
 //
 #define WXGRID_DEFAULT_NUMBER_ROWS            10
 #define WXGRID_DEFAULT_NUMBER_COLS            10
-#ifdef __WXMSW__
+#if defined(__WXMSW__) || defined(__WXGTK20__)
 #define WXGRID_DEFAULT_ROW_HEIGHT             25
 #else
 #define WXGRID_DEFAULT_ROW_HEIGHT             30
@@ -65,7 +61,6 @@ class WXDLLIMPEXP_ADV wxGridCellAttrProviderData;
 class WXDLLIMPEXP_ADV wxGridColLabelWindow;
 class WXDLLIMPEXP_ADV wxGridCornerLabelWindow;
 class WXDLLIMPEXP_ADV wxGridRowLabelWindow;
-class WXDLLIMPEXP_ADV wxGridTableBase;
 class WXDLLIMPEXP_ADV wxGridWindow;
 class WXDLLIMPEXP_ADV wxGridTypeRegistry;
 class WXDLLIMPEXP_ADV wxGridSelection;
@@ -353,7 +348,6 @@ public:
     // create a new object which is the copy of this one
     virtual wxGridCellEditor *Clone() const = 0;
 
-    // DJC MAPTEK
     // added GetValue so we can get the value which is in the control
     virtual wxString GetValue() const = 0;
 
@@ -410,9 +404,9 @@ public:
     virtual wxGridCellEditor *Clone() const
         { return new wxGridCellTextEditor; }
 
-    // DJC MAPTEK
     // added GetValue so we can get the value which is in the control
     virtual wxString GetValue() const;
+
 protected:
     wxTextCtrl *Text() const { return (wxTextCtrl *)m_control; }
 
@@ -451,7 +445,7 @@ public:
 
     virtual wxGridCellEditor *Clone() const
         { return new wxGridCellNumberEditor(m_min, m_max); }
-    // DJC MAPTEK
+
     // added GetValue so we can get the value which is in the control
     virtual wxString GetValue() const;
 
@@ -533,7 +527,7 @@ public:
                         wxEvtHandler* evtHandler);
 
     virtual void SetSize(const wxRect& rect);
-    virtual void Show(bool show, wxGridCellAttr *attr = (wxGridCellAttr *)NULL);
+    virtual void Show(bool show, wxGridCellAttr *attr = NULL);
 
     virtual bool IsAcceptedKey(wxKeyEvent& event);
     virtual void BeginEdit(int row, int col, wxGrid* grid);
@@ -545,16 +539,28 @@ public:
 
     virtual wxGridCellEditor *Clone() const
         { return new wxGridCellBoolEditor; }
-    // DJC MAPTEK
-    // added GetValue so we can get the value which is in the control
+
+    // added GetValue so we can get the value which is in the control, see
+    // also UseStringValues()
     virtual wxString GetValue() const;
 
+    // set the string values returned by GetValue() for the true and false
+    // states, respectively
+    static void UseStringValues(const wxString& valueTrue = _T("1"),
+                                const wxString& valueFalse = wxEmptyString);
+
+    // return true if the given string is equal to the string representation of
+    // true value which we currently use
+    static bool IsTrueValue(const wxString& value);
+
 protected:
     wxCheckBox *CBox() const { return (wxCheckBox *)m_control; }
 
 private:
     bool m_startValue;
 
+    static wxString ms_stringValues[2];
+
     DECLARE_NO_COPY_CLASS(wxGridCellBoolEditor)
 };
 
@@ -588,7 +594,7 @@ public:
     virtual void SetParameters(const wxString& params);
 
     virtual wxGridCellEditor *Clone() const;
-    // DJC MAPTEK
+
     // added GetValue so we can get the value which is in the control
     virtual wxString GetValue() const;
 
@@ -1077,14 +1083,14 @@ public:
             const wxPoint& pos = wxDefaultPosition,
             const wxSize& size = wxDefaultSize,
             long style = wxWANTS_CHARS,
-            const wxString& name = wxPanelNameStr );
+            const wxString& name = wxGridNameStr );
 
     bool Create( wxWindow *parent,
             wxWindowID id,
             const wxPoint& pos = wxDefaultPosition,
             const wxSize& size = wxDefaultSize,
             long style = wxWANTS_CHARS,
-            const wxString& name = wxPanelNameStr );
+            const wxString& name = wxGridNameStr );
 
     virtual ~wxGrid();
 
@@ -1282,6 +1288,12 @@ public:
     wxString GetRowLabelValue( int row );
     wxString GetColLabelValue( int col );
     wxColour GetGridLineColour() { return m_gridLineColour; }
+
+    // these methods may be overridden to customize individual grid lines
+    // appearance
+    virtual wxPen GetDefaultGridLinePen();
+    virtual wxPen GetRowGridLinePen(int row);
+    virtual wxPen GetColGridLinePen(int col);
     wxColour GetCellHighlightColour() { return m_cellHighlightColour; }
     int      GetCellHighlightPenWidth() { return m_cellHighlightPenWidth; }
     int      GetCellHighlightROPenWidth() { return m_cellHighlightROPenWidth; }
@@ -2026,6 +2038,8 @@ public:
 #endif
     }
 
+    virtual wxEvent *Clone() const { return new wxGridEvent(*this); }
+
 protected:
     int         m_row;
     int         m_col;
@@ -2037,7 +2051,7 @@ protected:
     bool        m_shift;
     bool        m_alt;
 
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxGridEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEvent)
 };
 
 class WXDLLIMPEXP_ADV wxGridSizeEvent : public wxNotifyEvent
@@ -2067,6 +2081,8 @@ public:
         return ControlDown();
 #endif
     }
+    
+    virtual wxEvent *Clone() const { return new wxGridSizeEvent(*this); }
 
 protected:
     int         m_rowOrCol;
@@ -2077,7 +2093,7 @@ protected:
     bool        m_shift;
     bool        m_alt;
 
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxGridSizeEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridSizeEvent)
 };
 
 
@@ -2122,6 +2138,8 @@ public:
         return ControlDown();
 #endif
     }
+    
+    virtual wxEvent *Clone() const { return new wxGridRangeSelectEvent(*this); }
 
 protected:
     wxGridCellCoords  m_topLeft;
@@ -2132,7 +2150,7 @@ protected:
     bool              m_shift;
     bool              m_alt;
 
-    DECLARE_DYNAMIC_CLASS_NO_COPY(wxGridRangeSelectEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridRangeSelectEvent)
 };
 
 
@@ -2155,14 +2173,15 @@ public:
     void SetRow(int row)                { m_row = row; }
     void SetCol(int col)                { m_col = col; }
     void SetControl(wxControl* ctrl)    { m_ctrl = ctrl; }
+    
+    virtual wxEvent *Clone() const { return new wxGridEditorCreatedEvent(*this); }
 
 private:
     int m_row;
     int m_col;
     wxControl* m_ctrl;
 
-    DECLARE_DYNAMIC_CLASS(wxGridEditorCreatedEvent)
-    DECLARE_NO_COPY_CLASS(wxGridEditorCreatedEvent)
+    DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEditorCreatedEvent)
 };
 
 
@@ -2266,5 +2285,5 @@ extern const int wxEVT_GRID_CHANGE_SEL_LABEL;
 
 #endif
 
-#endif  // ifndef wxUSE_GRID
-
+#endif // wxUSE_GRID
+#endif // _WX_GENERIC_GRID_H_