X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a83f860948059b0273b5cc6d9e43fadad3ebfca..d642db66a5efc82d374b813022c72ba88bc50839:/include/wx/generic/grideditors.h?ds=sidebyside diff --git a/include/wx/generic/grideditors.h b/include/wx/generic/grideditors.h index a81b17c9d9..1167589012 100644 --- a/include/wx/generic/grideditors.h +++ b/include/wx/generic/grideditors.h @@ -52,14 +52,16 @@ 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); @@ -73,9 +75,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; @@ -90,8 +92,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 m_validator; + wxString m_value; wxDECLARE_NO_COPY_CLASS(wxGridCellTextEditor); }; @@ -154,11 +157,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, @@ -176,18 +206,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); }; @@ -264,7 +298,11 @@ 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(int row, int col, const wxGrid* grid,