extern bool g_blockEventsOnDrag;
extern bool g_blockEventsOnScroll;
-extern wxCursor g_globalCursor;
GdkEventButton *gdk_event,
wxListBox *listbox )
{
- if (g_isIdle) wxapp_install_idle_handler();
+ // don't need to install idle handler, its done from "event" signal
if (g_blockEventsOnDrag) return FALSE;
if (g_blockEventsOnScroll) return FALSE;
GdkEventKey *gdk_event,
wxListBox *listbox )
{
- if (g_isIdle) wxapp_install_idle_handler();
+ // don't need to install idle handler, its done from "event" signal
if (g_blockEventsOnDrag) return FALSE;
listbox->m_spacePressed = true;
}
- if (ret)
- {
- g_signal_stop_emission_by_name (widget, "key_press_event");
- return TRUE;
- }
-
- return FALSE;
+ return ret;
}
}
WXLISTBOX_DATACOLUMN_ARG(listbox),
&entry, -1);
wxCHECK_MSG(entry, 0, wxT("Could not get entry"));
- gchar* keycollatekey = g_utf8_collate_key(key, -1);
+ wxGtkString keycollatekey(g_utf8_collate_key(key, -1));
int ret = strcasecmp(keycollatekey,
gtk_tree_entry_get_collate_key(entry));
- g_free(keycollatekey);
g_object_unref (entry);
return ret != 0;
gtk_container_add (GTK_CONTAINER (m_widget), GTK_WIDGET(m_treeview) );
gtk_widget_show( GTK_WIDGET(m_treeview) );
+ m_focusWidget = GTK_WIDGET(m_treeview);
wxListBox::DoInsertItems(wxArrayString(n, choices), 0); // insert initial items
{
// ... and not generate any events in the process
GtkDeselectAll();
+ return;
}
wxCHECK_RET( IsValid(n), wxT("invalid index in wxListBox::SetSelection") );
{
// 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) )
+ if ( !GetClientRect().Contains(point) )
return wxNOT_FOUND;
// need to translate from master window since it is in client coords
return GTK_WIDGET(m_treeview);
}
-bool wxListBox::IsOwnGtkWindow( GdkWindow *window )
+GdkWindow *wxListBox::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const
{
- return (window == gtk_tree_view_get_bin_window(m_treeview));
+ return gtk_tree_view_get_bin_window(m_treeview);
}
void wxListBox::DoApplyWidgetStyle(GtkRcStyle *style)
gtk_widget_modify_style( GTK_WIDGET(m_treeview), style );
}
-void wxListBox::OnInternalIdle()
-{
- // Check if we have to show window now
- if (GtkShowFromOnIdle()) return;
-
- wxCursor cursor = m_cursor;
- if (g_globalCursor.Ok()) cursor = g_globalCursor;
-
- if (GTK_WIDGET(m_treeview)->window && cursor.Ok())
- {
- /* I now set the cursor the anew in every OnInternalIdle call
- as setting the cursor in a parent window also effects the
- windows above so that checking for the current cursor is
- not possible. */
- GdkWindow *window = gtk_tree_view_get_bin_window(m_treeview);
- gdk_window_set_cursor( window, cursor.GetCursor() );
- }
-
- if (wxUpdateUIEvent::CanUpdate(this))
- UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
-}
-
wxSize wxListBox::DoGetBestSize() const
{
wxCHECK_MSG(m_treeview, wxDefaultSize, wxT("invalid tree view"));