-#ifdef __WXGTK__
- // This can be removed after 2.2.2 I think
-void wxSTCListBox::DoSetFirstItem( int n )
-{
- wxCHECK_RET( m_list, wxT("invalid listbox") );
-
- if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (m_list))
- return;
-
- // terribly efficient
- const gchar *vadjustment_key = "gtk-vadjustment";
- guint vadjustment_key_id = g_quark_from_static_string (vadjustment_key);
-
- GtkAdjustment *adjustment =
- (GtkAdjustment*) gtk_object_get_data_by_id (GTK_OBJECT (m_list), vadjustment_key_id);
- wxCHECK_RET( adjustment, wxT("invalid listbox code") );
-
- GList *target = g_list_nth( m_list->children, n );
- wxCHECK_RET( target, wxT("invalid listbox index") );
-
- GtkWidget *item = GTK_WIDGET(target->data);
- wxCHECK_RET( item, wxT("invalid listbox code") );
-
- // find the last item before this one which is already realized
- size_t nItemsBefore;
- for ( nItemsBefore = 0; item && (item->allocation.y == -1); nItemsBefore++ )
- {
- target = target->prev;
- if ( !target )
- {
- // nothing we can do if there are no allocated items yet
- return;
- }
+#if wxUSE_POPUPWIN
+#include <wx/popupwin.h>
+#define wxSTCListBoxWinBase wxPopupWindow
+#define param2 wxBORDER_NONE // popup's 2nd param is flags
+#else
+#define wxSTCListBoxWinBase wxWindow
+#define param2 -1 // wxWindows 2nd param is ID
+#endif