#if wxUSE_LISTBOX
#include "wx/listbox.h"
-#include "wx/dynarray.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/dynarray.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/utils.h"
+ #include "wx/settings.h"
+#endif
+
#include "wx/arrstr.h"
-#include "wx/utils.h"
-#include "wx/intl.h"
#include "wx/checklst.h"
-#include "wx/settings.h"
-#include "wx/log.h"
#include "wx/gtk/private.h"
#include "wx/gtk/treeentry_gtk.h"
#if wxUSE_TOOLTIPS
-#include "wx/tooltip.h"
+ #include "wx/tooltip.h"
#endif
#include <gdk/gdk.h>
(wxClientData*) gtk_tree_entry_get_userdata(entry) );
else if ( listbox->HasClientUntypedData() )
event.SetClientData( gtk_tree_entry_get_userdata(entry) );
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
}
else
{
listbox->GetEventHandler()->ProcessEvent( event );
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
return FALSE; //We handled it/did it manually
}
int ret = strcasecmp(gtk_tree_entry_get_collate_key(entry),
gtk_tree_entry_get_collate_key(entry2));
- g_object_unref(G_OBJECT(entry));
- g_object_unref(G_OBJECT(entry2));
+ g_object_unref (entry);
+ g_object_unref (entry2);
return ret;
}
gtk_tree_entry_get_collate_key(entry));
g_free(keycollatekey);
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
return ret != 0;
}
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
}
+
+ GtkScrolledWindowSetBorder(m_widget, style);
+
m_treeview = GTK_TREE_VIEW( gtk_tree_view_new( ) );
//wxListBox doesn't have a header :)
gtk_tree_view_set_model(m_treeview, GTK_TREE_MODEL(m_liststore));
- g_object_unref(G_OBJECT(m_liststore)); //free on treeview destruction
+ g_object_unref (m_liststore); //free on treeview destruction
// Disable the pop-up textctrl that enables searching - note that
// the docs specify that even if this disabled (which we are doing)
gtk_list_store_set(m_liststore, &itercur,
0, entry, -1);
- g_object_unref(G_OBJECT(entry)); //liststore always refs :)
+ g_object_unref (entry); //liststore always refs :)
}
}
wxCHECK_MSG(entry, NULL, wxT("could not get entry"));
void* userdata = gtk_tree_entry_get_userdata( entry );
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
return userdata;
}
wxCHECK_RET(entry, wxT("could not get entry"));
gtk_tree_entry_set_userdata( entry, clientData );
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
}
void wxListBox::DoSetItemClientObject(unsigned int n, wxClientData* clientData)
// notification function...
void* userdata = gtk_tree_entry_get_userdata(entry);
gtk_tree_entry_set_userdata(entry, NULL); //don't delete on destroy
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
bool bWasSelected = wxListBox::IsSelected(n);
wxListBox::Delete(n);
label.erase(0, 4);
#endif // wxUSE_CHECKLISTBOX
- g_object_unref(G_OBJECT(entry));
+ g_object_unref (entry);
return label;
}
int wxListBox::DoListHitTest(const wxPoint& point) const
{
+ // gtk_tree_view_get_path_at_pos() also gets items that are not visible and
+ // we only want visible items we need to check for it manually here
+ if ( !GetClientRect().Inside(point) )
+ return wxNOT_FOUND;
+
// need to translate from master window since it is in client coords
gint binx, biny;
gdk_window_get_geometry(gtk_tree_view_get_bin_window(m_treeview),