#include "wx/dynarray.h"
#include "wx/listbox.h"
+//-----------------------------------------------------------------------------
+// data
+//-----------------------------------------------------------------------------
+
+extern bool g_blockEventsOnDrag;
+
//-----------------------------------------------------------------------------
// wxListBox
//-----------------------------------------------------------------------------
-void gtk_listitem_select_callback( GtkWidget *widget, gpointer data )
+static void gtk_listitem_select_callback( GtkWidget *widget, wxListBox *listbox )
{
- wxListBox *listbox = (wxListBox*)data;
-
+ if (!listbox->HasVMT()) return;
+ if (g_blockEventsOnDrag) return;
+
wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() );
event.SetInt( listbox->GetIndex( widget ) );
GtkLabel *label = GTK_LABEL( bin->child );
wxString tmp( label->label );
event.SetString( WXSTRINGCAST(tmp) );
-
event.SetEventObject( listbox );
- listbox->ProcessEvent( event );
+ listbox->GetEventHandler()->ProcessEvent( event );
};
//-----------------------------------------------------------------------------
GtkWidget *list_item;
list_item = gtk_list_item_new_with_label( choices[i] );
+ gtk_container_add( GTK_CONTAINER(m_list), list_item );
+
gtk_signal_connect( GTK_OBJECT(list_item), "select",
GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this );
- gtk_container_add( GTK_CONTAINER(m_list), list_item );
-
m_clientData.Append( (wxObject*)NULL );
gtk_widget_show( list_item );