-#if wxUSE_TEXTCTRL
-
-// the editor for string/text data
-class WXDLLEXPORT wxGridCellTextEditor : public wxGridCellEditor
-{
-public:
- wxGridCellTextEditor();
-
- virtual void Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler);
- virtual void SetSize(const wxRect& rect);
-
- virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
-
- virtual bool IsAcceptedKey(wxKeyEvent& event);
- virtual void BeginEdit(int row, int col, wxGrid* grid);
- virtual bool EndEdit(int row, int col, wxGrid* grid);
-
- virtual void Reset();
- virtual void StartingKey(wxKeyEvent& event);
- virtual void HandleReturn(wxKeyEvent& event);
-
- // parameters string format is "max_width"
- virtual void SetParameters(const wxString& params);
-
- virtual wxGridCellEditor *Clone() const
- { return new wxGridCellTextEditor; }
-
- // DJC MAPTEK
- // added GetValue so we can get the value which is in the control
- virtual wxString GetValue() const;
-protected:
- wxTextCtrl *Text() const { return (wxTextCtrl *)m_control; }
-
- // parts of our virtual functions reused by the derived classes
- void DoBeginEdit(const wxString& startValue);
- void DoReset(const wxString& startValue);
-
-private:
- size_t m_maxChars; // max number of chars allowed
- wxString m_startValue;
-};
-
-// the editor for numeric (long) data
-class WXDLLEXPORT wxGridCellNumberEditor : public wxGridCellTextEditor
-{
-public:
- // allows to specify the range - if min == max == -1, no range checking is
- // done
- wxGridCellNumberEditor(int min = -1, int max = -1);
-
- virtual void Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler);
-
- virtual bool IsAcceptedKey(wxKeyEvent& event);
- virtual void BeginEdit(int row, int col, wxGrid* grid);
- virtual bool EndEdit(int row, int col, wxGrid* grid);
-
- virtual void Reset();
- virtual void StartingKey(wxKeyEvent& event);
-
- // parameters string format is "min,max"
- virtual void SetParameters(const wxString& params);
-
- virtual wxGridCellEditor *Clone() const
- { return new wxGridCellNumberEditor(m_min, m_max); }
- // DJC MAPTEK
- // added GetValue so we can get the value which is in the control
- virtual wxString GetValue() const;
-
-protected:
- wxSpinCtrl *Spin() const { return (wxSpinCtrl *)m_control; }
-
- // if HasRange(), we use wxSpinCtrl - otherwise wxTextCtrl
- bool HasRange() const { return m_min != m_max; }
-
- // string representation of m_valueOld
- wxString GetString() const
- { return wxString::Format(_T("%ld"), m_valueOld); }
-
-private:
- int m_min,
- m_max;
-
- long m_valueOld;
-};
-
-// the editor for floating point numbers (double) data
-class WXDLLEXPORT wxGridCellFloatEditor : public wxGridCellTextEditor
-{
-public:
- wxGridCellFloatEditor(int width = -1, int precision = -1);
-
- virtual void Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler);
-
- virtual bool IsAcceptedKey(wxKeyEvent& event);
- virtual void BeginEdit(int row, int col, wxGrid* grid);
- virtual bool EndEdit(int row, int col, wxGrid* grid);
-
- virtual void Reset();
- virtual void StartingKey(wxKeyEvent& event);
-
- virtual wxGridCellEditor *Clone() const
- { return new wxGridCellFloatEditor(m_width, m_precision); }
-
- // parameters string format is "width,precision"
- virtual void SetParameters(const wxString& params);
-
-protected:
- // string representation of m_valueOld
- wxString GetString() const;
-
-private:
- int m_width,
- m_precision;
- double m_valueOld;
-};
-
-#endif // wxUSE_TEXTCTRL
-
-#if wxUSE_CHECKBOX
-
-// the editor for boolean data
-class WXDLLEXPORT wxGridCellBoolEditor : public wxGridCellEditor
-{
-public:
- virtual void Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler);
-
- virtual void SetSize(const wxRect& rect);
- virtual void Show(bool show, wxGridCellAttr *attr = (wxGridCellAttr *)NULL);
-
- virtual bool IsAcceptedKey(wxKeyEvent& event);
- virtual void BeginEdit(int row, int col, wxGrid* grid);
- virtual bool EndEdit(int row, int col, wxGrid* grid);
-
- virtual void Reset();
- virtual void StartingClick();
-
- virtual wxGridCellEditor *Clone() const
- { return new wxGridCellBoolEditor; }
- // DJC MAPTEK
- // added GetValue so we can get the value which is in the control
- virtual wxString GetValue() const;
-
-protected:
- wxCheckBox *CBox() const { return (wxCheckBox *)m_control; }
-
-private:
- bool m_startValue;
-};
-
-#endif // wxUSE_CHECKBOX
-
-#if wxUSE_COMBOBOX
-
-// the editor for string data allowing to choose from the list of strings
-class WXDLLEXPORT wxGridCellChoiceEditor : public wxGridCellEditor
-{
-public:
- // if !allowOthers, user can't type a string not in choices array
- wxGridCellChoiceEditor(size_t count = 0,
- const wxString choices[] = NULL,
- bool allowOthers = FALSE);
-
- virtual void Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler);
-
- virtual void PaintBackground(const wxRect& rectCell, wxGridCellAttr *attr);
-
- virtual void BeginEdit(int row, int col, wxGrid* grid);
- virtual bool EndEdit(int row, int col, wxGrid* grid);
-
- virtual void Reset();
-
- // parameters string format is "item1[,item2[...,itemN]]"
- virtual void SetParameters(const wxString& params);
-
- virtual wxGridCellEditor *Clone() const;
- // DJC MAPTEK
- // added GetValue so we can get the value which is in the control
- virtual wxString GetValue() const;
-
-protected:
- wxComboBox *Combo() const { return (wxComboBox *)m_control; }
-
-// DJC - (MAPTEK) you at least need access to m_choices if you
-// wish to override this class
-protected:
- wxString m_startValue;
- wxArrayString m_choices;
- bool m_allowOthers;
-};
-
-#endif // wxUSE_COMBOBOX