m_stringValue = wxEmptyString;
if ( m_stringValue != m_combo->GetValue() )
- m_combo->SetValueWithEvent(m_stringValue);
+ m_combo->SetValueByUser(m_stringValue);
m_value = selection;
return true;
if ( value >= 0 )
- m_combo->SetValue(m_strings[value]);
+ m_combo->ChangeValue(m_strings[value]);
// The m_combo->SetValue() call above sets m_value to the index of this
// string. But if there are more identical string, the index is of the
for ( i=0; i<strings.GetCount(); i++ )
{
- if ( item.CmpNoCase(strings.Item(i)) < 0 )
+ if ( item.CmpNoCase(strings.Item(i)) <= 0 )
{
pos = (int)i;
break;
GetVListBoxComboPopup()->Clear();
+ // NB: This really needs to be SetValue() instead of ChangeValue(),
+ // as wxTextEntry API expects an event to be sent.
SetValue(wxEmptyString);
}
+void wxOwnerDrawnComboBox::Clear()
+{
+ DoClear();
+}
+
void wxOwnerDrawnComboBox::DoDeleteOneItem(unsigned int n)
{
wxCHECK_RET( IsValid(n), wxT("invalid index in wxOwnerDrawnComboBox::Delete") );
if ( GetSelection() == (int) n )
- SetValue(wxEmptyString);
+ ChangeValue(wxEmptyString);
GetVListBoxComboPopup()->Delete(n);
}
// Refresh text portion in control
if ( m_text )
- m_text->SetValue( str );
+ m_text->ChangeValue( str );
else
m_valueString = str;
return GetVListBoxComboPopup()->GetSelection();
}
+void wxOwnerDrawnComboBox::GetSelection(long *from, long *to) const
+{
+ wxComboCtrl::GetSelection(from, to);
+}
+
int wxOwnerDrawnComboBox::DoInsertItems(const wxArrayStringsAdapter& items,
unsigned int pos,
void **clientData,