+ gtk_menu_insert( GTK_MENU(menu), menu_item, index );
+
+ if ( index )
+ {
+ m_clientList.Insert( m_clientList.Item(index - 1),
+ (wxObject*) NULL );
+ }
+ else
+ {
+ m_clientList.Insert( (wxObject*) NULL );
+ }
+ }
+ else
+ {
+ // don't call wxChoice::GetCount() from here because it doesn't work
+ // if we're called from ctor (and GtkMenuShell is still NULL)
+
+ // normal control, just append
+ if (pos == m_clientList.GetCount())
+ {
+ gtk_menu_append( GTK_MENU(menu), menu_item );
+ m_clientList.Append( (wxObject*) NULL );
+ index = m_clientList.GetCount() - 1;
+ }
+ else
+ {
+ gtk_menu_insert( GTK_MENU(menu), menu_item, pos );
+ m_clientList.Insert( pos, (wxObject*) NULL );
+ index = pos;
+ }
+ }
+
+ if (GTK_WIDGET_REALIZED(m_widget))
+ {
+ gtk_widget_realize( menu_item );
+ gtk_widget_realize( GTK_BIN(menu_item)->child );
+
+ ApplyWidgetStyle();