]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/gridctrl.h
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / include / wx / generic / gridctrl.h
index 987d2e9aeda4ba1b0ab44033b60760aac79d9c6d..b9ee0a1a0f027107067f6c207e2172d0f0f3ba54 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////
-// Name:        generic/gridctrl.h
+// Name:        wx/generic/gridctrl.h
 // Purpose:     wxGrid controls
 // Author:      Paul Gammans, Roger Gammans
 // Modified by:
@@ -16,8 +16,8 @@
 
 #if wxUSE_GRID
 
-#define wxGRID_VALUE_CHOICEINT    _T("choiceint")
-#define wxGRID_VALUE_DATETIME     _T("datetime")
+#define wxGRID_VALUE_CHOICEINT    wxT("choiceint")
+#define wxGRID_VALUE_DATETIME     wxT("datetime")
 
 
 // the default renderer for the cells containing string data
@@ -81,13 +81,17 @@ protected:
 class WXDLLIMPEXP_ADV wxGridCellFloatRenderer : public wxGridCellStringRenderer
 {
 public:
-    wxGridCellFloatRenderer(int width = -1, int precision = -1);
+    wxGridCellFloatRenderer(int width = -1,
+                            int precision = -1,
+                            int format = wxGRID_FLOAT_FORMAT_DEFAULT);
 
     // get/change formatting parameters
     int GetWidth() const { return m_width; }
     void SetWidth(int width) { m_width = width; m_format.clear(); }
     int GetPrecision() const { return m_precision; }
     void SetPrecision(int precision) { m_precision = precision; m_format.clear(); }
+    int GetFormat() const { return m_style; }
+    void SetFormat(int format) { m_style = format; m_format.clear(); }
 
     // draw the string right aligned with given width/precision
     virtual void Draw(wxGrid& grid,
@@ -102,7 +106,8 @@ public:
                                wxDC& dc,
                                int row, int col);
 
-    // parameters string format is "width[,precision]"
+    // parameters string format is "width[,precision[,format]]"
+    // with format being one of f|e|g|E|F|G
     virtual void SetParameters(const wxString& params);
 
     virtual wxGridCellRenderer *Clone() const;
@@ -115,6 +120,7 @@ private:
     int m_width,
         m_precision;
 
+    int m_style;
     wxString m_format;
 };
 
@@ -148,7 +154,7 @@ private:
 
 #include "wx/datetime.h"
 
-// the default renderer for the cells containing Time and dates..
+// the default renderer for the cells containing times and dates
 class WXDLLIMPEXP_ADV wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
 {
 public:
@@ -170,7 +176,7 @@ public:
 
     virtual wxGridCellRenderer *Clone() const;
 
-    // parameters string format is "width[,precision]"
+    // output strptime()-like format string
     virtual void SetParameters(const wxString& params);
 
 protected:
@@ -184,7 +190,7 @@ protected:
 
 #endif // wxUSE_DATETIME
 
-// the default renderer for the cells containing Time and dates..
+// renders a number using the corresponding text string
 class WXDLLIMPEXP_ADV wxGridCellEnumRenderer : public wxGridCellStringRenderer
 {
 public:
@@ -205,7 +211,8 @@ public:
 
     virtual wxGridCellRenderer *Clone() const;
 
-    // parameters string format is "item1[,item2[...,itemN]]"
+    // parameters string format is "item1[,item2[...,itemN]]" where itemN will
+    // be used if the cell value is N-1
     virtual void SetParameters(const wxString& params);
 
 protected: