Пример #1
0
static void
draw_stats_tree(void *psp)
{
	stats_tree *st = (stats_tree *)psp;
	GString *s;

	s= stats_tree_format_as_str(st, ST_FORMAT_PLAIN, stats_tree_get_default_sort_col(st),
				    stats_tree_is_default_sort_DESC(st));

	printf("%s", s->str);
	g_string_free(s, TRUE);
}
Пример #2
0
static void
draw_gtk_tree(void *psp)
{
	stats_tree  *st		 = (stats_tree *)psp;
	stat_node   *child;
	int	     count;
	gint	     sort_column = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
	GtkSortType  order	 = GTK_SORT_DESCENDING;

	for (count = 0; count<st->num_columns; count++) {
		gtk_tree_view_column_set_title(gtk_tree_view_get_column(GTK_TREE_VIEW(st->pr->tree),count),
										stats_tree_get_column_name(count));
	}

	gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (st->pr->store), &sort_column, &order);
	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (st->pr->store),
				GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_DESCENDING);

	for (child = st->root.children; child; child = child->next ) {
		draw_gtk_node(child);

		if ( (!(child->st_flags&ST_FLG_DEF_NOEXPAND)) && child->pr->iter && st->pr->store ) {
			gtk_tree_view_expand_row(GTK_TREE_VIEW(st->pr->tree),
				 gtk_tree_model_get_path(GTK_TREE_MODEL(st->pr->store),child->pr->iter),
						 FALSE);
		}
	}

	if	((sort_column==GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID)||
		 (sort_column==GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)) {
		sort_column= stats_tree_get_default_sort_col(st)+N_RESERVED_COL;
		order= stats_tree_is_default_sort_DESC(st)?GTK_SORT_DESCENDING:GTK_SORT_ASCENDING;
	}

	/* Only call this once the entire list is drawn - else Gtk seems */
	/* to get sorting order wrong (sorting broken when new nodes are */
	/* added after setting sort column.) Also for performance.	   */
	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (st->pr->store), sort_column, order);
}