X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0c133e13b36a923c65f94499554e432bc3a0daa..9bd5c5fcda3fe2222bf37f1615961516d6b40e7f:/include/wx/generic/grideditors.h diff --git a/include/wx/generic/grideditors.h b/include/wx/generic/grideditors.h index a3a8d60c32..4a7b9270dd 100644 --- a/include/wx/generic/grideditors.h +++ b/include/wx/generic/grideditors.h @@ -63,7 +63,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(); @@ -109,7 +110,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 +143,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 +154,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 +193,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 +203,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 +241,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 +258,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 +295,13 @@ public: wxWindowID id, wxEvtHandler* evtHandler); + virtual void SetSize(const wxRect& rect); + virtual void PaintBackground(const wxRect& rectCell, 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 +337,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 +364,5 @@ public: }; #endif // wxUSE_GRID + #endif // _WX_GENERIC_GRID_EDITORS_H_