protected:
void OnChar( wxKeyEvent& event )
{
- if ( event.KeyCode() == WXK_RETURN )
+ if ( event.GetKeyCode() == WXK_RETURN )
{
wxString value = GetValue();
}
else
{
- wxCoord wText = width - POPUPWIDTH;
+ wxCoord wText = width - POPUPWIDTH - MARGIN;
m_text->SetSize(0, 0, wText, height);
m_choice->SetSize(0 + wText + MARGIN, 0, POPUPWIDTH, -1);
}
void wxComboBox::SetValue(const wxString& value)
{
- SetStringSelection( value ) ;
+ int s = FindString (value);
+ if (s == wxNOT_FOUND && !HasFlag(wxCB_READONLY) )
+ {
+ m_choice->Append(value) ;
+ }
+ SetStringSelection( value ) ;
}
// Clipboard operations
void wxComboBox::Delete(int n)
{
+ if ( HasClientObjectData() )
+ {
+ SetClientObject(n, NULL);
+ }
m_choice->Delete( n );
}
return FALSE;
}
-void wxComboBox::MacHandleControlClick( WXWidget control , wxInt16 controlpart )
+void wxComboBox::MacHandleControlClick( WXWidget WXUNUSED(control) , wxInt16 WXUNUSED(controlpart) )
{
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId );
event.SetInt(GetSelection());