static void update_tooltip(GtkTreeView *tv, GtkTreePath *path) { GtkTreeModel *model; GtkTreeIter iter; property_t prop; guint u; g_assert(tv != NULL); if (!path) { GtkWidget *w; gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(tv), _("Move the cursor over a row to see details."), NULL); w = settings_gui_tooltips()->tip_window; if (w) gtk_widget_hide(w); return; } model = gtk_tree_view_get_model(tv); if (!gtk_tree_model_get_iter(model, &iter, path)) { g_warning("gtk_tree_model_get_iter() failed"); return; } u = 0; gtk_tree_model_get(model, &iter, dbg_col_property, &u, (-1)); g_assert(0 != u); prop = (property_t) u; gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(tv), gnet_prop_description(prop), NULL); }
static void dbg_property_update_selection(void) { const gchar *tip, *label_text, *def_text, *value_text; GtkCList *clist; GtkLabel *label; GtkEntry *value, *def; gpointer data; gint row; clist = GTK_CLIST(gui_dlg_prefs_lookup("clist_dbg_property")); label = GTK_LABEL(gui_dlg_prefs_lookup("label_dbg_property_name")); value = GTK_ENTRY(gui_dlg_prefs_lookup("entry_dbg_property_value")); def = GTK_ENTRY(gui_dlg_prefs_lookup("entry_dbg_property_default")); if ( clist->selection && -1 != (row = GPOINTER_TO_INT(clist->selection->data)) && NULL != (data = gtk_clist_get_row_data(clist, row)) ) { property_t prop = GPOINTER_TO_UINT(data); label_text = gnet_prop_name(prop); value_text = gnet_prop_to_string(prop); def_text = gnet_prop_default_to_string(prop); tip = gnet_prop_description(prop); } else { const gchar *none = _("<no property selected>"); label_text = none; def_text = none; value_text = none; tip = _("Select a property to see its description."); } gtk_label_set_text(label, label_text); gtk_entry_set_text(def, def_text); gtk_entry_set_text(value, value_text); gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(value), tip, NULL); }
static void update_tooltip(GtkTreeView *tv, GtkTreePath *path) { const struct node_data *data = NULL; GtkTreeModel *model; GtkTreeIter iter; g_assert(tv != NULL); if (path) { GtkTreeIter parent; model = gtk_tree_view_get_model(tv); if (!gtk_tree_model_get_iter(model, &iter, path)) { g_warning("gtk_tree_model_get_iter() failed"); return; } if (gtk_tree_model_iter_parent(model, &parent, &iter)) iter = parent; gtk_tree_model_get(model, &iter, 0, &data, (-1)); } if (data && find_node(data->node_id)) { gnet_node_info_t info; gnet_node_flags_t flags; gchar text[1024]; guc_node_fill_flags(data->node_id, &flags); guc_node_fill_info(data->node_id, &info); g_assert(info.node_id == data->node_id); str_bprintf(text, sizeof text, "%s %s\n" "%s %s (%s)\n" "%s %s (%s)\n" "%s %.64s", _("Peer:"), host_addr_port_to_string(info.gnet_addr, info.gnet_port), _("Peermode:"), guc_node_peermode_to_string(flags.peermode), flags.incoming ? _("incoming") : _("outgoing"), _("Country:"), iso3166_country_name(info.country), iso3166_country_cc(info.country), _("Vendor:"), info.vendor ? info.vendor : _("Unknown")); guc_node_clear_info(&info); gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(tv), text, NULL); } else { GtkWidget *w; gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(tv), _("Move the cursor over a row to see details."), NULL); w = settings_gui_tooltips()->tip_window; if (w) gtk_widget_hide(w); } }