X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/559c42a5b23f07b4303333631018b8b4df661d00..35a11fc70c68280f391adb816326acc441aa47b2:/src/common/datavcmn.cpp diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index dca9eaab7d..f7e5749ed1 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -1391,14 +1391,9 @@ wxDataViewChoiceRenderer::wxDataViewChoiceRenderer( const wxArrayString& choices wxControl* wxDataViewChoiceRenderer::CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ) { - wxString s = value; - wxSize size = labelRect.GetSize(); -#ifdef __WXMAC__ - size = wxSize( wxMax(70,labelRect.width ), -1 ); -#endif - wxChoice *c = new wxChoice( parent, wxID_ANY, labelRect.GetTopLeft(), size, m_choices ); + wxChoice* c = new wxChoice(parent, wxID_ANY, labelRect.GetTopLeft(), wxDefaultSize, m_choices ); + c->Move(labelRect.GetRight() - c->GetRect().width, wxDefaultCoord); c->SetStringSelection( value.GetString() ); - return c; } @@ -1433,6 +1428,49 @@ bool wxDataViewChoiceRenderer::GetValue( wxVariant &value ) const return true; } +// ---------------------------------------------------------------------------- +// wxDataViewChoiceByIndexRenderer +// ---------------------------------------------------------------------------- + +wxDataViewChoiceByIndexRenderer::wxDataViewChoiceByIndexRenderer( const wxArrayString &choices, + wxDataViewCellMode mode, int alignment ) : + wxDataViewChoiceRenderer( choices, mode, alignment ) +{ +} + +wxControl* wxDataViewChoiceByIndexRenderer::CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ) +{ + wxVariant string_value = GetChoice( value.GetLong() ); + + return wxDataViewChoiceRenderer::CreateEditorCtrl( parent, labelRect, string_value ); +} + +bool wxDataViewChoiceByIndexRenderer::GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ) +{ + wxVariant string_value; + if (!wxDataViewChoiceRenderer::GetValueFromEditorCtrl( editor, string_value )) + return false; + + value = (long) GetChoices().Index( string_value.GetString() ); + return true; +} + +bool wxDataViewChoiceByIndexRenderer::SetValue( const wxVariant &value ) +{ + wxVariant string_value = GetChoice( value.GetLong() ); + return wxDataViewChoiceRenderer::SetValue( string_value ); +} + +bool wxDataViewChoiceByIndexRenderer::GetValue( wxVariant &value ) const +{ + wxVariant string_value; + if (!wxDataViewChoiceRenderer::GetValue( string_value )) + return false; + + value = (long) GetChoices().Index( string_value.GetString() ); + return true; +} + #endif //-----------------------------------------------------------------------------