/**
 * e_table_group_container_construct
 * @parent: The %GnomeCanvasGroup to create a child of.
 * @etgc: The %ETableGroupContainer.
 * @full_header: The full header of the %ETable.
 * @header: The current header of the %ETable.
 * @model: The %ETableModel of the %ETable.
 * @sort_info: The %ETableSortInfo of the %ETable.
 * @n: Which grouping level this is (Starts at 0 and sends n + 1 to any child %ETableGroups.
 *
 * This routine constructs the new %ETableGroupContainer.
 */
void
e_table_group_container_construct (GnomeCanvasGroup *parent, ETableGroupContainer *etgc,
				   ETableHeader *full_header,
				   ETableHeader     *header,
				   ETableModel *model, ETableSortInfo *sort_info, int n)
{
	ETableCol *col;
	ETableSortColumn column = e_table_sort_info_grouping_get_nth(sort_info, n);
	GtkStyle *style;

	col = e_table_header_get_column_by_col_idx(full_header, column.column);
	if (col == NULL)
		col = e_table_header_get_column (full_header, e_table_header_count (full_header) - 1);

	e_table_group_construct (parent, E_TABLE_GROUP (etgc), full_header, header, model);
	etgc->ecol = col;
	g_object_ref (etgc->ecol);
	etgc->sort_info = sort_info;
	g_object_ref (etgc->sort_info);
	etgc->n = n;
	etgc->ascending = column.ascending;

	style = GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style;
	etgc->font_desc = pango_font_description_copy (style->font_desc);

	etgc->open = TRUE;
}
Esempio n. 2
0
static void
e_table_group_leaf_construct (GnomeCanvasGroup *parent,
                              ETableGroupLeaf *etgl,
                              ETableHeader *full_header,
                              ETableHeader *header,
                              ETableModel *model,
                              ETableSortInfo *sort_info)
{
	etgl->is_grouped =
		(e_table_sort_info_grouping_get_count (sort_info) > 0);

	if (etgl->is_grouped)
		etgl->ets = e_table_sorted_variable_new (
			model, full_header, sort_info);
	else
		etgl->ets = e_table_sorted_new (
			model, full_header, sort_info);

	e_table_group_construct (
		parent, E_TABLE_GROUP (etgl), full_header, header, model);
}