]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/grid.h
implement column resizing events in wxHeaderCtrl
[wxWidgets.git] / include / wx / generic / grid.h
index 789ffbfc527700bf4edda7a62363e6564821f592..5e1c924ca2f23147503df33b731b290f6eabd02f 100644 (file)
@@ -22,7 +22,7 @@
 // constants
 // ----------------------------------------------------------------------------
 
-extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxGridNameStr[];
+extern WXDLLIMPEXP_DATA_ADV(const char) wxGridNameStr[];
 
 // Default parameters for wxGrid
 //
@@ -913,12 +913,15 @@ public:
     // would break the existing code overriding them, so instead we provide
     // these const synonyms which can be used from const-correct code
     int GetRowsCount() const
-        { return wx_const_cast(wxGridTableBase *, this)->GetNumberRows(); }
+        { return const_cast<wxGridTableBase *>(this)->GetNumberRows(); }
     int GetColsCount() const
-        { return wx_const_cast(wxGridTableBase *, this)->GetNumberCols(); }
+        { return const_cast<wxGridTableBase *>(this)->GetNumberCols(); }
 
 
-    virtual bool IsEmptyCell( int row, int col ) = 0;
+    virtual bool IsEmptyCell( int row, int col )
+    {
+        return GetValue(row, col).empty();
+    }
 
     bool IsEmpty(const wxGridCellCoords& coord)
     {
@@ -1071,7 +1074,6 @@ public:
     int GetNumberCols();
     wxString GetValue( int row, int col );
     void SetValue( int row, int col, const wxString& s );
-    bool IsEmptyCell( int row, int col );
 
     // overridden functions from wxGridTableBase
     //
@@ -1372,13 +1374,7 @@ public:
     int      GetColLabelTextOrientation() const;
     wxString GetRowLabelValue( int row ) const;
     wxString GetColLabelValue( int col ) const;
-    wxColour GetGridLineColour() const { 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() const { return m_cellHighlightColour; }
     int      GetCellHighlightPenWidth() const { return m_cellHighlightPenWidth; }
     int      GetCellHighlightROPenWidth() const { return m_cellHighlightROPenWidth; }
@@ -1396,7 +1392,6 @@ public:
     void     SetColLabelTextOrientation( int textOrientation );
     void     SetRowLabelValue( int row, const wxString& );
     void     SetColLabelValue( int col, const wxString& );
-    void     SetGridLineColour( const wxColour& );
     void     SetCellHighlightColour( const wxColour& );
     void     SetCellHighlightPenWidth(int width);
     void     SetCellHighlightROPenWidth(int width);
@@ -1418,6 +1413,36 @@ public:
     void     DisableDragCell() { EnableDragCell( false ); }
     bool     CanDragCell() const { return m_canDragCell; }
 
+
+    // grid lines
+    // ----------
+
+    // enable or disable drawing of the lines
+    void EnableGridLines(bool enable = true);
+    bool GridLinesEnabled() const { return m_gridLinesEnabled; }
+
+    // by default grid lines stop at last column/row, but this may be changed
+    void ClipHorzGridLines(bool clip)
+        { DoClipGridLines(m_gridLinesClipHorz, clip); }
+    void ClipVertGridLines(bool clip)
+        { DoClipGridLines(m_gridLinesClipVert, clip); }
+    bool AreHorzGridLinesClipped() const { return m_gridLinesClipHorz; }
+    bool AreVertGridLinesClipped() const { return m_gridLinesClipVert; }
+
+    // this can be used to change the global grid lines colour
+    void SetGridLineColour(const wxColour& col);
+    wxColour GetGridLineColour() const { 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);
+
+
+    // attributes
+    // ----------
+
     // this sets the specified attribute for this cell or in this row/col
     void     SetAttr(int row, int col, wxGridCellAttr *attr);
     void     SetRowAttr(int row, wxGridCellAttr *attr);
@@ -1438,9 +1463,6 @@ public:
     void     SetColFormatFloat(int col, int width = -1, int precision = -1);
     void     SetColFormatCustom(int col, const wxString& typeName);
 
-    void     EnableGridLines( bool enable = true );
-    bool     GridLinesEnabled() const { return m_gridLinesEnabled; }
-
     // ------ row and col formatting
     //
     int      GetDefaultRowSize() const;
@@ -1961,6 +1983,8 @@ protected:
 
     wxColour   m_gridLineColour;
     bool       m_gridLinesEnabled;
+    bool       m_gridLinesClipHorz,
+               m_gridLinesClipVert;
     wxColour   m_cellHighlightColour;
     int        m_cellHighlightPenWidth;
     int        m_cellHighlightROPenWidth;
@@ -2160,6 +2184,13 @@ private:
     // implement wxScrolledWindow method to return m_gridWin size
     virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size);
 
+    // redraw the grid lines, should be called after changing their attributes
+    void RedrawGridLines();
+
+    // common part of Clip{Horz,Vert}GridLines
+    void DoClipGridLines(bool& var, bool clip);
+
+
     // event handlers and their helpers
     // --------------------------------
 
@@ -2297,7 +2328,9 @@ public:
         SetEventObject(obj);
     }
 
-    wxDEPRECATED(
+    // explicitly specifying inline allows gcc < 3.4 to
+    // handle the deprecation attribute even in the constructor.
+    wxDEPRECATED( inline
     wxGridEvent(int id,
                 wxEventType type,
                 wxObject* obj,
@@ -2358,7 +2391,7 @@ public:
         SetEventObject(obj);
     }
 
-    wxDEPRECATED(
+    wxDEPRECATED( inline
     wxGridSizeEvent(int id,
                     wxEventType type,
                     wxObject* obj,
@@ -2416,7 +2449,7 @@ public:
         SetEventObject(obj);
     }
 
-    wxDEPRECATED(
+    wxDEPRECATED( inline
     wxGridRangeSelectEvent(int id,
                            wxEventType type,
                            wxObject* obj,