void search_gui_show_search(struct search *search) { GtkTreeView *tv; g_return_if_fail(search); tv = GTK_TREE_VIEW(search->tree); tree_view_restore_visibility(tv, PROP_SEARCH_RESULTS_COL_VISIBLE); tree_view_restore_widths(tv, PROP_SEARCH_RESULTS_COL_WIDTHS); tvm_search = tree_view_motion_set_callback(tv, search_update_tooltip, 400); if (!search->sort) { int i; /* * The signal handler for "clicked" must only be installed once, * not each time the treeview is made visible. */ search->sort = TRUE; for (i = 0; i < c_sr_num; i++) { GtkTreeViewColumn *column; column = gtk_tree_view_get_column(tv, i); gtk_tree_view_column_set_sort_column_id(column, i); gtk_tree_sortable_set_sort_func( GTK_TREE_SORTABLE(gtk_tree_view_get_model(tv)), i, search_gui_cmp, uint_to_pointer(i), NULL); column_sort_tristate_register(column, on_tree_view_search_results_click_column, search); } } }
/** * Initialize the nodes controller. Register callbacks in the backend. */ void nodes_gui_init(void) { GtkTreeView *tv; tv = GTK_TREE_VIEW(gui_main_window_lookup( "treeview_nodes")); treeview_nodes = tv; tree_view_restore_widths(tv, PROP_NODES_COL_WIDTHS); tree_view_restore_visibility(tv, PROP_NODES_COL_VISIBLE); tree_view_set_fixed_height_mode(tv, TRUE); nodes_handles = htable_create_any(nid_hash, nid_hash2, nid_equal); ht_node_info_changed = hset_create_any(nid_hash, nid_hash2, nid_equal); ht_node_flags_changed = hset_create_any(nid_hash, nid_hash2, nid_equal); ht_pending_lookups = hset_create_any(nid_hash, nid_hash2, nid_equal); guc_node_add_node_added_listener(nodes_gui_node_added); guc_node_add_node_removed_listener(nodes_gui_node_removed); guc_node_add_node_info_changed_listener(nodes_gui_node_info_changed); guc_node_add_node_flags_changed_listener(nodes_gui_node_flags_changed); widget_add_popup_menu(GTK_WIDGET(tv), nodes_gui_get_popup_menu); gui_signal_connect(tv, "cursor-changed", on_cursor_changed, tv); gui_signal_connect(tv, "leave-notify-event", on_leave_notify, tv); tvm_nodes = tree_view_motion_set_callback(tv, update_tooltip, 400); main_gui_add_timer(nodes_gui_timer); }
static gboolean on_enter_notify(GtkWidget *widget, GdkEventCrossing *unused_event, gpointer data) { GtkTreeView *tv; (void) unused_event; tv = GTK_TREE_VIEW(data); update_tooltip(GTK_TREE_VIEW(widget), NULL); tvm_dbg_property = tree_view_motion_set_callback(tv, update_tooltip, 400); return FALSE; }