X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3ef8eb50346e04c080ed1711578390080baff8b..51623cc53f350935337e57930eaaf1afe9a48c3b:/include/wx/generic/grideditors.h diff --git a/include/wx/generic/grideditors.h b/include/wx/generic/grideditors.h index cc3ff67757..aa0fd7af43 100644 --- a/include/wx/generic/grideditors.h +++ b/include/wx/generic/grideditors.h @@ -59,7 +59,9 @@ public: 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); @@ -143,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, @@ -154,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, @@ -176,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); }; @@ -227,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 @@ -264,7 +297,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,