wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, combo->GetId() );
event.SetString( combo->GetValue() );
event.SetEventObject( combo );
- combo->GetEventHandler()->ProcessEvent( event );
+ combo->HandleWindowEvent( event );
}
static void
event.SetInt( combo->GetSelection() );
event.SetString( combo->GetStringSelection() );
event.SetEventObject( combo );
- combo->GetEventHandler()->ProcessEvent( event );
+ combo->HandleWindowEvent( event );
}
}
return false;
}
- if(HasFlag(wxCB_SORT))
+ if (HasFlag(wxCB_SORT))
m_strings = new wxSortedArrayString();
m_widget = gtk_combo_box_entry_new_text();
+ if (HasFlag(wxBORDER_NONE))
+ {
+ // Doesn't seem to work
+ // g_object_set (m_widget, "has-frame", FALSE, NULL);
+ }
+
GtkEntry * const entry = GetEntry();
gtk_entry_set_editable( entry, TRUE );
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)
eventEnter.SetInt( GetSelection() );
eventEnter.SetEventObject( this );
- if ( GetEventHandler()->ProcessEvent(eventEnter) )
+ if ( HandleWindowEvent(eventEnter) )
{
// Catch GTK event so that GTK doesn't open the drop
// down list upon RETURN.
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;
}