delete m_strings;
}
-void wxComboBox::SetFocus()
-{
- if ( m_hasFocus )
- {
- // don't do anything if we already have focus
- return;
- }
-
- gtk_widget_grab_focus( m_focusWidget );
-}
-
int wxComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
unsigned int pos,
void **clientData, wxClientDataType type)
return;
}
}
+
+ // On enter key press, we must give a signal to default control,
+ // Otherwise, nothing happens when pressing Enter from inside a
+ // combo box in a dialog.
+ wxWindow *top_frame = wxGetTopLevelParent(this);
+ if( top_frame && GTK_IS_WINDOW(top_frame->m_widget) )
+ {
+ GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
+ if ( window->default_widget )
+ gtk_widget_activate( window->default_widget );
+ }
break;
}
void wxComboBox::OnDelete(wxCommandEvent& WXUNUSED(event))
{
- long from, to;
- GetSelection(& from, & to);
- if (from != -1 && to != -1)
- Remove(from, to);
+ RemoveSelection();
}
void wxComboBox::OnSelectAll(wxCommandEvent& WXUNUSED(event))
{
- SetSelection(-1, -1);
+ SelectAll();
}
void wxComboBox::OnUpdateCut(wxUpdateUIEvent& event)
void wxComboBox::OnUpdateSelectAll(wxUpdateUIEvent& event)
{
- event.Enable(GetLastPosition() > 0);
+ event.Enable(!wxTextEntry::IsEmpty());
}
#endif // wxUSE_COMBOBOX