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;
return m_strings.Index(s, bCase);
}
+bool wxVListBoxComboPopup::FindItem(const wxString& item, wxString* trueItem)
+{
+ int idx = m_strings.Index(item, false);
+ if ( idx == wxNOT_FOUND )
+ return false;
+ if ( trueItem != NULL )
+ *trueItem = m_strings[idx];
+ return true;
+}
+
unsigned int wxVListBoxComboPopup::GetCount() const
{
return m_strings.GetCount();
// Find initial selection
wxString strValue = m_combo->GetValue();
- if ( strValue.length() )
+ if ( !strValue.empty() )
m_value = m_strings.Index(strValue);
}
BEGIN_EVENT_TABLE(wxOwnerDrawnComboBox, wxComboCtrl)
END_EVENT_TABLE()
-
-#if wxUSE_EXTENDED_RTTI
-IMPLEMENT_DYNAMIC_CLASS2_XTI(wxOwnerDrawnComboBox, wxComboCtrl, wxControlWithItems, "wx/odcombo.h")
-
-wxBEGIN_PROPERTIES_TABLE(wxOwnerDrawnComboBox)
-wxEND_PROPERTIES_TABLE()
-
-wxBEGIN_HANDLERS_TABLE(wxOwnerDrawnComboBox)
-wxEND_HANDLERS_TABLE()
-
-wxCONSTRUCTOR_5( wxOwnerDrawnComboBox , wxWindow* , Parent , wxWindowID , Id , wxString , Value , wxPoint , Position , wxSize , Size )
-#else
-IMPLEMENT_DYNAMIC_CLASS2(wxOwnerDrawnComboBox, wxComboCtrl, wxControlWithItems)
-#endif
-
void wxOwnerDrawnComboBox::Init()
{
}
long style,
const wxValidator& validator,
const wxString& name)
- : wxComboCtrl()
{
Init();
GetVListBoxComboPopup()->Clear();
+ // NB: This really needs to be SetValue() instead of ChangeValue(),
+ // as wxTextEntry API expects an event to be sent.
SetValue(wxEmptyString);
}
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;