gtk_tree_model_get(model, &cur_iter, 0, &cur_value, -1);
if (strcmp(text, cur_value) == 0) {
+ g_free(cur_value);
if (count <= 0)
return FALSE;
return gtk_tree_model_iter_nth_child(model, iter, NULL, count - 1);
}
+ g_free(cur_value);
valid = gtk_tree_model_iter_next(model, &cur_iter);
count++;
}
return result;
}
#endif
+
+gpointer gtkut_tree_view_get_selected_pointer(GtkTreeView *view,
+ gint column)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreeSelection *sel;
+ gpointer ptr;
+
+ cm_return_val_if_fail(view != NULL, NULL);
+ cm_return_val_if_fail(column >= 0, NULL);
+
+ sel = gtk_tree_view_get_selection(view);
+
+ cm_return_val_if_fail(
+ gtk_tree_selection_count_selected_rows(sel) == 1,
+ NULL);
+
+ if (!gtk_tree_selection_get_selected(sel, &model, &iter))
+ return NULL; /* No row selected */
+
+ cm_return_val_if_fail(
+ gtk_tree_model_get_n_columns(model) > column,
+ NULL);
+ cm_return_val_if_fail(
+ gtk_tree_model_get_column_type(model, column) == G_TYPE_POINTER,
+ NULL);
+
+ gtk_tree_model_get(model, &iter, column, &ptr, -1);
+
+ return ptr;
+}