X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b4ff336e1d719b82ed5e583e470c5d045c21b374..0bd2681966523df88ad5cf8e505b532843e58d74:/src/generic/odcombo.cpp?ds=sidebyside diff --git a/src/generic/odcombo.cpp b/src/generic/odcombo.cpp index 3e62b8349d..cecfb1ff2d 100644 --- a/src/generic/odcombo.cpp +++ b/src/generic/odcombo.cpp @@ -471,6 +471,8 @@ void wxVListBoxComboPopup::Insert( const wxString& item, int pos ) } m_strings.Insert(item,pos); + m_clientDatas.Insert(NULL, pos); + m_widths.Insert(-1,pos); m_widthsDirty = true; @@ -541,7 +543,6 @@ void wxVListBoxComboPopup::SetItemClientData( unsigned int n, // It should be sufficient to update this variable only here m_clientDataItemsType = clientDataItemsType; - m_clientDatas.SetCount(n+1,NULL); m_clientDatas[n] = clientData; ItemWidthChanged(n); @@ -923,7 +924,7 @@ void wxOwnerDrawnComboBox::DoSetPopupControl(wxComboPopup* popup) // wxOwnerDrawnComboBox item manipulation methods // ---------------------------------------------------------------------------- -void wxOwnerDrawnComboBox::Clear() +void wxOwnerDrawnComboBox::DoClear() { EnsurePopupControl(); @@ -932,7 +933,7 @@ void wxOwnerDrawnComboBox::Clear() SetValue(wxEmptyString); } -void wxOwnerDrawnComboBox::Delete(unsigned int n) +void wxOwnerDrawnComboBox::DoDeleteOneItem(unsigned int n) { wxCHECK_RET( IsValid(n), _T("invalid index in wxOwnerDrawnComboBox::Delete") ); @@ -1006,24 +1007,21 @@ int wxOwnerDrawnComboBox::GetSelection() const return GetVListBoxComboPopup()->GetSelection(); } -int wxOwnerDrawnComboBox::DoAppend(const wxString& item) -{ - EnsurePopupControl(); - wxASSERT(m_popupInterface); - - return GetVListBoxComboPopup()->Append(item); -} - -int wxOwnerDrawnComboBox::DoInsert(const wxString& item, unsigned int pos) +int wxOwnerDrawnComboBox::DoInsertItems(const wxArrayStringsAdapter& items, + unsigned int pos, + void **clientData, + wxClientDataType type) { EnsurePopupControl(); - wxCHECK_MSG(!(GetWindowStyle() & wxCB_SORT), -1, wxT("can't insert into sorted list")); - wxCHECK_MSG(IsValidInsert(pos), -1, wxT("invalid index")); - - GetVListBoxComboPopup()->Insert(item,pos); + const unsigned int count = items.GetCount(); + for( unsigned int i = 0; i < count; ++i, ++pos ) + { + GetVListBoxComboPopup()->Insert(items[i], pos); + AssignNewItemClientData(pos, clientData, i, type); + } - return pos; + return pos - 1; } void wxOwnerDrawnComboBox::DoSetItemClientData(unsigned int n, void* clientData) @@ -1041,16 +1039,6 @@ void* wxOwnerDrawnComboBox::DoGetItemClientData(unsigned int n) const return GetVListBoxComboPopup()->GetItemClientData(n); } -void wxOwnerDrawnComboBox::DoSetItemClientObject(unsigned int n, wxClientData* clientData) -{ - DoSetItemClientData(n, (void*) clientData); -} - -wxClientData* wxOwnerDrawnComboBox::DoGetItemClientObject(unsigned int n) const -{ - return (wxClientData*) DoGetItemClientData(n); -} - // ---------------------------------------------------------------------------- // wxOwnerDrawnComboBox item drawing and measuring default implementations // ----------------------------------------------------------------------------