]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/combobox.cpp
Fix broken and missing DataView interface items for Phoenix
[wxWidgets.git] / src / univ / combobox.cpp
index 2a23793d7ed04b163ab0c7e4d4237b5f25c9d1fe..e41adaa761e10f5d999827268cf571f0e0996805 100644 (file)
@@ -105,8 +105,6 @@ BEGIN_EVENT_TABLE(wxComboListBox, wxListBox)
     EVT_LEFT_UP(wxComboListBox::OnLeftUp)
 END_EVENT_TABLE()
 
-IMPLEMENT_DYNAMIC_CLASS2(wxComboBox, wxControl, wxComboCtrl)
-
 // ============================================================================
 // implementation
 // ============================================================================
@@ -275,12 +273,15 @@ wxComboBox::~wxComboBox()
 
 wxString wxComboBox::DoGetValue() const
 {
-    return wxComboCtrl::GetValue();
+    return GetTextCtrl() ? GetTextCtrl()->GetValue() : m_valueString;
 }
 
 void wxComboBox::SetValue(const wxString& value)
 {
-    wxComboCtrl::SetValue(value);
+    if ( GetTextCtrl() )
+        GetTextCtrl()->SetValue(value);
+    else
+        m_valueString = value;
 }
 
 void wxComboBox::WriteText(const wxString& value)
@@ -359,7 +360,7 @@ void wxComboBox::SetEditable(bool editable)
 void wxComboBox::DoClear()
 {
     GetLBox()->Clear();
-    if ( GetTextCtrl() ) GetTextCtrl()->SetValue(wxEmptyString);
+    SetValue(wxEmptyString);
 }
 
 void wxComboBox::DoDeleteOneItem(unsigned int n)
@@ -367,7 +368,7 @@ void wxComboBox::DoDeleteOneItem(unsigned int n)
     wxCHECK_RET( IsValid(n), wxT("invalid index in wxComboBox::Delete") );
 
     if (GetSelection() == (int)n)
-        if ( GetTextCtrl() ) GetTextCtrl()->SetValue(wxEmptyString);
+        SetValue(wxEmptyString);
 
     GetLBox()->Delete(n);
 }
@@ -411,7 +412,7 @@ void wxComboBox::SetSelection(int n)
 
 int wxComboBox::GetSelection() const
 {
-#if 1 // FIXME:: What is the correct behavior?
+#if 1 // FIXME:: What is the correct behaviour?
     // if the current value isn't one of the listbox strings, return -1
     return GetLBox()->GetSelection();
 #else