Default constructor.
+\membersection{wxGridCellBoolEditor::IsTrueValue}\label{wxgridcellbooleditoristruevalue}
+
+\func{static bool}{IsTrueValue}{\param{const wxString\& }{value}}
+
+Returns \true if the given \arg{value} is equal to the string representation of
+the truth value we currently use (see
+\helpref{UseStringValues}{wxgridcellbooleditorusestringvalues}).
+
+
+\membersection{wxGridCellBoolEditor::UseStringValues}\label{wxgridcellbooleditorusestringvalues}
+
+\func{static void}{UseStringValues}{\param{const wxString\& }{valueTrue = \_T("1")}, \param{const wxString\& }{valueFalse = \_T("")}}
+
+This method allows to customize the values returned by GetValue() method for
+the cell using this editor. By default, the default values of the arguments are
+used, i.e. \texttt{"1"} is returned if the cell is checked and an empty string
+otherwise, using this method allows to change this.
+
+
\section{\class{wxGridCellChoiceEditor}}\label{wxgridcellchoiceeditor}
The editor for string data allowing to choose from a list of strings.
// create a new object which is the copy of this one
virtual wxGridCellEditor *Clone() const = 0;
- // DJC MAPTEK
// added GetValue so we can get the value which is in the control
virtual wxString GetValue() const = 0;
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; }
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;
wxEvtHandler* evtHandler);
virtual void SetSize(const wxRect& rect);
- virtual void Show(bool show, wxGridCellAttr *attr = (wxGridCellAttr *)NULL);
+ virtual void Show(bool show, wxGridCellAttr *attr = NULL);
virtual bool IsAcceptedKey(wxKeyEvent& event);
virtual void BeginEdit(int row, int col, wxGrid* grid);
virtual wxGridCellEditor *Clone() const
{ return new wxGridCellBoolEditor; }
- // DJC MAPTEK
- // added GetValue so we can get the value which is in the control
+
+ // added GetValue so we can get the value which is in the control, see
+ // also UseStringValues()
virtual wxString GetValue() const;
+ // set the string values returned by GetValue() for the true and false
+ // states, respectively
+ static void UseStringValues(const wxString& valueTrue = _T("1"),
+ const wxString& valueFalse = wxEmptyString);
+
+ // return true if the given string is equal to the string representation of
+ // true value which we currently use
+ static bool IsTrueValue(const wxString& value);
+
protected:
wxCheckBox *CBox() const { return (wxCheckBox *)m_control; }
private:
bool m_startValue;
+ static wxString ms_stringValues[2];
+
DECLARE_NO_COPY_CLASS(wxGridCellBoolEditor)
};
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;
// wxGridCellBoolEditor
// ----------------------------------------------------------------------------
+// the default values for GetValue()
+wxString wxGridCellBoolEditor::ms_stringValues[2] = { _T("1"), _T("") };
+
void wxGridCellBoolEditor::Create(wxWindow* parent,
wxWindowID id,
wxEvtHandler* evtHandler)
if ( changed )
{
- if (grid->GetTable()->CanGetValueAs(row, col, wxGRID_VALUE_BOOL))
- grid->GetTable()->SetValueAsBool(row, col, value);
+ wxGridTableBase * const table = grid->GetTable();
+ if ( table->CanGetValueAs(row, col, wxGRID_VALUE_BOOL) )
+ table->SetValueAsBool(row, col, value);
else
- grid->GetTable()->SetValue(row, col, value ? _T("1") : wxEmptyString);
+ table->SetValue(row, col, GetValue());
}
return changed;
}
}
-
-// return the value as "1" for true and the empty string for false
wxString wxGridCellBoolEditor::GetValue() const
{
- bool bSet = CBox()->GetValue();
- return bSet ? _T("1") : wxEmptyString;
+ return ms_stringValues[CBox()->GetValue()];
+}
+
+/* static */ void
+wxGridCellBoolEditor::UseStringValues(const wxString& valueTrue,
+ const wxString& valueFalse)
+{
+ ms_stringValues[false] = valueFalse;
+ ms_stringValues[true] = valueTrue;
+}
+
+/* static */ bool
+wxGridCellBoolEditor::IsTrueValue(const wxString& value)
+{
+ return value == ms_stringValues[true];
}
#endif // wxUSE_CHECKBOX
else
{
wxString cellval( grid.GetTable()->GetValue(row, col) );
- value = !( !cellval || (cellval == wxT("0")) );
+ value = wxGridCellBoolEditor::IsTrueValue(cellval);
}
if ( value )