47 column=gtk_tree_view_column_new();
48 gtk_tree_view_column_set_title (column, title);
49 setTitleAlignment(0.5);
56 pair<string *, GType> *deleteMe=
remove();
57 delete deleteMe->first;
66 gtk_tree_view_column_set_alignment(column, align);
75 GList*renderers=gtk_tree_view_column_get_cell_renderers(column);
76 for (uint i=0;i<g_list_length(renderers);i++)
78 gtk_cell_renderer_set_alignment(GTK_CELL_RENDERER(g_list_nth_data(renderers,i)), xAlign, yAlign);
116 SelectionColumn &
add(
string *name, GType whichType, GtkCellRenderer *renderer,
int source, gboolean expand=
true) {
117 gtk_cell_renderer_set_alignment(renderer, 0.5,0.5);
119 gtk_tree_view_column_pack_start (column, renderer, expand);
120 gtk_tree_view_column_add_attribute (column, renderer, name->c_str(), source);
145 return add(detail.first,G_TYPE_STRING,(GtkCellRenderer *)detail.second, number);
153 return add(detail.first,GDK_TYPE_PIXBUF,(GtkCellRenderer *)detail.second, number);
181 gtk_tree_view_column_set_sizing(column,sz);
189 return gtk_tree_view_column_get_sizing(column);
238 tree = gtk_tree_view_new();
263 store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree)));
264 GtkTreeIter* iter =
new GtkTreeIter;
265 if (gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), iter, NULL,gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL)-1))
278 store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree)));
279 GtkTreeIter* iter=NULL;
281 iter=
new GtkTreeIter;
283 gtk_tree_store_append(store, iter, NULL);
293 GtkTreeIter*
appendNewIter(GtkTreeStore *store, gboolean sameRow, gboolean sameColumn) {
294 GtkTreeIter* iter=NULL;
298 iter=getLastIter(store);
302 iter=appendRow(store);
318 while (next()!=currentCol)
339 *sc<<pair<string*, GtkCellRendererText*>(
new string(
"text"), GTK_CELL_RENDERER_TEXT(gtk_cell_renderer_text_new()));
351 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
352 setSelectionCallback(
"changed", callback,
this);
361 g_signal_connect(selection, event, callback, data);
374 g_signal_connect(tree, event, G_CALLBACK(callback), data);
382 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), current()->getColumn());
399 GType types[getCount()];
402 for (
int i=0; i<getCount(); i++) {
403 types[i]=next()->current()->second;
406 while (next()!=newCol) ;
408 GtkTreeStore *store = gtk_tree_store_newv(getCount(), types);
409 gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));
410 g_object_unref(store);
418 g_signal_connect_after(selection,
"changed", G_CALLBACK(callback), data);
430 gtk_widget_show_all(tree);
436 gtk_widget_hide(tree);
447 int colNum=currentColumnNumber();
448 if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(selection), &model, &iter)) {
449 gtk_tree_model_get(model, &iter, colNum, &val, -1);
466 void add(
const char *text, gboolean sameRow=
false, gboolean sameColumn=
true) {
467 GtkTreeStore *store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree)));
468 GtkTreeIter* iter=appendNewIter(store, sameRow, sameColumn);
470 int whichColumn=currentColumnNumber();
472 gtk_tree_store_set(store, iter, whichColumn, text, -1);
485 void add(GdkPixbuf *pixbuf, gboolean sameRow=
false, gboolean sameColumn=
true) {
486 GtkTreeStore *store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree)));
487 GtkTreeIter* iter=appendNewIter(store, sameRow, sameColumn);
489 int whichColumn=currentColumnNumber();
491 gtk_tree_store_set(store, iter, whichColumn, pixbuf, -1);
500 GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree));
503 if (gtk_tree_model_get_iter_first(model, &iter) == FALSE)
505 gtk_tree_store_clear(GTK_TREE_STORE(model));
597 GtkTreePath *pathLocal = gtk_tree_path_new_from_string (path);
599 gtk_tree_selection_select_path(selection, pathLocal);
602 #endif //SELECTION_H_