wxControl *GetEditorCtrl() { return m_editorCtrl; }
protected:
+ // Called from {Cancel,Finish}Editing() to cleanup m_editorCtrl
+ void DestroyEditControl();
+
wxString m_variantType;
wxDataViewColumn *m_owner;
wxWeakRef<wxControl> m_editorCtrl;
virtual bool SetValue( const wxVariant &value );
virtual bool GetValue( wxVariant &value ) const;
+ wxString GetChoice(size_t index) const { return m_choices[index]; }
+ const wxArrayString& GetChoices() const { return m_choices; }
+
private:
wxArrayString m_choices;
wxString m_data;
#endif // generic or Carbon versions
+// ----------------------------------------------------------------------------
+// wxDataViewChoiceRendererByIndex
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxDataViewChoiceRendererByIndex: public wxDataViewChoiceRenderer
+{
+public:
+ wxDataViewChoiceRendererByIndex( const wxArrayString &choices,
+ wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE,
+ int alignment = wxDVR_DEFAULT_ALIGNMENT ) :
+ wxDataViewChoiceRenderer( choices, mode, alignment )
+ {
+ }
+
+ virtual bool SetValue( const wxVariant &value )
+ {
+ wxVariant string_value = GetChoice( value.GetLong() );
+ return wxDataViewChoiceRenderer::SetValue( string_value );
+ }
+
+ virtual bool GetValue( wxVariant &value ) const
+ {
+ wxVariant string_value;
+ if (!wxDataViewChoiceRenderer::GetValue( string_value ))
+ return false;
+
+ value = (long) GetChoices().Index( string_value.GetString() );
+ return true;
+ }
+};
+
+
// this class is obsolete, its functionality was merged in
// wxDataViewTextRenderer itself now, don't use it any more
#define wxDataViewTextRendererAttr wxDataViewTextRenderer