]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/grideditors.h
Use wxGetTranslation() instead of _() in the public headers.
[wxWidgets.git] / include / wx / generic / grideditors.h
index a3a8d60c32aece122fdcb21365d8bbe5077a3a5e..a81ab84c473c3dff2bc1feaf1fd614ad20224f8f 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Michael Bedward (based on code by Julian Smart, Robin Dunn)
 // Modified by: Santiago Palacios
 // Created:     1/08/1999
-// RCS-ID:      $Id$
 // Copyright:   (c) Michael Bedward
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -52,18 +51,21 @@ private:
 class WXDLLIMPEXP_ADV wxGridCellTextEditor : public wxGridCellEditor
 {
 public:
-    wxGridCellTextEditor();
+    wxEXPLICIT wxGridCellTextEditor(size_t maxChars = 0);
 
     virtual void Create(wxWindow* parent,
                         wxWindowID id,
                         wxEvtHandler* evtHandler);
     virtual void SetSize(const wxRect& rect);
 
-    virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
+    virtual void PaintBackground(wxDC& dc,
+                                 const wxRect& rectCell,
+                                 const wxGridCellAttr& attr);
 
     virtual bool IsAcceptedKey(wxKeyEvent& event);
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
     virtual void Reset();
@@ -72,9 +74,9 @@ public:
 
     // parameters string format is "max_width"
     virtual void SetParameters(const wxString& params);
+    virtual void SetValidator(const wxValidator& validator);
 
-    virtual wxGridCellEditor *Clone() const
-        { return new wxGridCellTextEditor; }
+    virtual wxGridCellEditor *Clone() const;
 
     // added GetValue so we can get the value which is in the control
     virtual wxString GetValue() const;
@@ -89,8 +91,9 @@ protected:
     void DoReset(const wxString& startValue);
 
 private:
-    size_t   m_maxChars;        // max number of chars allowed
-    wxString m_value;
+    size_t                   m_maxChars;        // max number of chars allowed
+    wxScopedPtr<wxValidator> m_validator;
+    wxString                 m_value;
 
     wxDECLARE_NO_COPY_CLASS(wxGridCellTextEditor);
 };
@@ -109,7 +112,8 @@ public:
 
     virtual bool IsAcceptedKey(wxKeyEvent& event);
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
     virtual void Reset();
@@ -141,7 +145,7 @@ protected:
 
     // string representation of our value
     wxString GetString() const
-        { return wxString::Format(_T("%ld"), m_value); }
+        { return wxString::Format(wxT("%ld"), m_value); }
 
 private:
     int m_min,
@@ -152,11 +156,38 @@ private:
     wxDECLARE_NO_COPY_CLASS(wxGridCellNumberEditor);
 };
 
+
+enum wxGridCellFloatFormat
+{
+    // Decimal floating point (%f)
+    wxGRID_FLOAT_FORMAT_FIXED      = 0x0010,
+
+    // Scientific notation (mantise/exponent) using e character (%e)
+    wxGRID_FLOAT_FORMAT_SCIENTIFIC = 0x0020,
+
+    // Use the shorter of %e or %f (%g)
+    wxGRID_FLOAT_FORMAT_COMPACT    = 0x0040,
+
+    // To use in combination with one of the above formats (%F/%E/%G)
+    wxGRID_FLOAT_FORMAT_UPPER      = 0x0080,
+
+    // Format used by default.
+    wxGRID_FLOAT_FORMAT_DEFAULT    = wxGRID_FLOAT_FORMAT_FIXED,
+
+    // A mask to extract format from the combination of flags.
+    wxGRID_FLOAT_FORMAT_MASK       = wxGRID_FLOAT_FORMAT_FIXED |
+                                     wxGRID_FLOAT_FORMAT_SCIENTIFIC |
+                                     wxGRID_FLOAT_FORMAT_COMPACT |
+                                     wxGRID_FLOAT_FORMAT_UPPER
+};
+
 // the editor for floating point numbers (double) data
 class WXDLLIMPEXP_ADV wxGridCellFloatEditor : public wxGridCellTextEditor
 {
 public:
-    wxGridCellFloatEditor(int width = -1, int precision = -1);
+    wxGridCellFloatEditor(int width = -1,
+                          int precision = -1,
+                          int format = wxGRID_FLOAT_FORMAT_DEFAULT);
 
     virtual void Create(wxWindow* parent,
                         wxWindowID id,
@@ -164,7 +195,8 @@ public:
 
     virtual bool IsAcceptedKey(wxKeyEvent& event);
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
     virtual void Reset();
@@ -173,18 +205,22 @@ public:
     virtual wxGridCellEditor *Clone() const
         { return new wxGridCellFloatEditor(m_width, m_precision); }
 
-    // parameters string format is "width,precision"
+    // parameters string format is "width[,precision[,format]]"
+    // format to choose beween f|e|g|E|G (f is used by default)
     virtual void SetParameters(const wxString& params);
 
 protected:
     // string representation of our value
-    wxString GetString() const;
+    wxString GetString();
 
 private:
     int m_width,
         m_precision;
     double m_value;
 
+    int m_style;
+    wxString m_format;
+
     wxDECLARE_NO_COPY_CLASS(wxGridCellFloatEditor);
 };
 
@@ -207,7 +243,8 @@ public:
 
     virtual bool IsAcceptedKey(wxKeyEvent& event);
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
     virtual void Reset();
@@ -223,7 +260,7 @@ public:
 
     // set the string values returned by GetValue() for the true and false
     // states, respectively
-    static void UseStringValues(const wxString& valueTrue = _T("1"),
+    static void UseStringValues(const wxString& valueTrue = wxT("1"),
                                 const wxString& valueFalse = wxEmptyString);
 
     // return true if the given string is equal to the string representation of
@@ -260,10 +297,15 @@ public:
                         wxWindowID id,
                         wxEvtHandler* evtHandler);
 
-    virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
+    virtual void SetSize(const wxRect& rect);
+
+    virtual void PaintBackground(wxDC& dc,
+                                 const wxRect& rectCell,
+                                 const wxGridCellAttr& attr);
 
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
     virtual void Reset();
@@ -299,7 +341,8 @@ public:
     virtual wxGridCellEditor*  Clone() const;
 
     virtual void BeginEdit(int row, int col, wxGrid* grid);
-    virtual bool EndEdit(const wxString& oldval, wxString *newval);
+    virtual bool EndEdit(int row, int col, const wxGrid* grid,
+                         const wxString& oldval, wxString *newval);
     virtual void ApplyEdit(int row, int col, wxGrid* grid);
 
 private:
@@ -325,4 +368,5 @@ public:
 };
 
 #endif // wxUSE_GRID
+
 #endif // _WX_GENERIC_GRID_EDITORS_H_