GList *columns;
GHashTable *columns_names;
+ GList *lst_cells;
+
RptSize *page_size;
RptMargin *page_margin;
guint idx;
+ gint iheight;
gdouble height;
g_return_val_if_fail (GTK_IS_TREE_VIEW (view), NULL);
- height = 8;
-
style = gtk_widget_get_style (GTK_WIDGET (view));
pango_font = pango_font_description_copy (style->font_desc);
if (pango_font == NULL)
columns = gtk_tree_view_get_columns (view);
if (columns == NULL) return NULL;
+ /* find the height to use as defaul height from gtkcellrenderer */
+ lst_cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (columns->data));
+ gtk_cell_renderer_get_size ((GtkCellRenderer *)lst_cells->data, GTK_WIDGET (view),
+ NULL, NULL, NULL, NULL, &iheight);
+ height = rpt_common_points_to_value (RPT_UNIT_MILLIMETRE, (iheight * 72.0) / 96.0);
+
g_object_set (G_OBJECT (ret), "unit-length", RPT_UNIT_MILLIMETRE, NULL);
page_size = rpt_common_rptsize_new_with_values (297, 210);
page_margin = rpt_common_rptmargin_new_with_values (10, 10, 10, 10);
rpt_report_set_page_margins_struct (ret, *page_margin);
- rpt_report_set_section_height (ret, RPTREPORT_SECTION_PAGE_HEADER, 27);
+ rpt_report_set_section_height (ret, RPTREPORT_SECTION_PAGE_HEADER, (height * 3) + 2);
rpt_report_set_page_header_first_last_page (ret, TRUE, TRUE);
rpt_report_set_section_height (ret, RPTREPORT_SECTION_BODY, height);
col_title = g_strdup_printf ("\"%s\"", gtk_tree_view_column_get_title (col));
col_width = rpt_common_points_to_value (RPT_UNIT_MILLIMETRE, (gtk_tree_view_column_get_width (col) * 72.0) / 96.0);
- point = rpt_common_rptpoint_new_with_values (x, 15);
+ point = rpt_common_rptpoint_new_with_values (x, height * 2);
if (columns->next == NULL && x < page_size->width)
{
/* the last column is always large until the end of the page */
g_hash_table_insert (columns_names, field_name, g_strdup_printf ("%d", idx));
- x += col_width + 1;
+ x += col_width;
idx++;
columns = g_list_next (columns);
}
- point = rpt_common_rptpoint_new_with_values (0, 25);
+ point = rpt_common_rptpoint_new_with_values (0, (height * 3) + 1);
obj = rpt_obj_line_new ("line1", *point);
size = rpt_common_rptsize_new_with_values (page_size->width - page_margin->left - page_margin->right, 0);
rpt_report_add_object_to_section (ret, obj, RPTREPORT_SECTION_PAGE_HEADER);
- rpt_report_set_section_height (ret, RPTREPORT_SECTION_PAGE_FOOTER, 12);
+ rpt_report_set_section_height (ret, RPTREPORT_SECTION_PAGE_FOOTER, height + 2);
point = rpt_common_rptpoint_new_with_values (0, 0);
obj = rpt_obj_line_new ("line2", *point);
point = rpt_common_rptpoint_new_with_values (0, 2);
obj = rpt_obj_text_new ("pages", *point);
- size = rpt_common_rptsize_new_with_values (page_size->width - page_margin->left - page_margin->right, 10);
+ size = rpt_common_rptsize_new_with_values (page_size->width - page_margin->left - page_margin->right, height);
align = rpt_common_rptalign_new ();
align->h_align = RPT_HALIGN_RIGHT;
font = rpt_common_rptfont_from_pango_description (pango_font);
RptReport *rptr;
RptPrint *rptp;
+ GtkCellRenderer *renderer;
+ GList *lst;
+ GtkTreeViewColumn *column;
+ gint wi;
+ gint he;
+
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW (tree), 0);
+ lst = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column));
+ renderer = (GtkCellRenderer *)lst->data;
+
+ gtk_cell_renderer_get_size (renderer, tree, NULL, NULL, NULL, &wi, &he);
+ g_message ("w %d h %d", wi, he);
+
rptr = rpt_report_new_from_gtktreeview (GTK_TREE_VIEW (tree), "\"Report's Title\"");
if (rptr != NULL)
AUTHOR_COLUMN, "Dan Simmons",
CHECKED_COLUMN, TRUE,
-1);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ TITLE_COLUMN, "A very very long title to see what it does (a galaxy far far away)",
+ AUTHOR_COLUMN, "I",
+ CHECKED_COLUMN, TRUE,
+ -1);
tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (tree), TRUE);
GtkTreeViewColumn *column;
renderer = gtk_cell_renderer_text_new ();
+
column = gtk_tree_view_column_new_with_attributes ("Book's title",
renderer,
"text", TITLE_COLUMN,
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_column_set_clickable (column, TRUE);
gtk_tree_view_column_set_sort_column_id (column, TITLE_COLUMN);
+ gtk_tree_view_column_set_reorderable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_column_set_clickable (column, TRUE);
gtk_tree_view_column_set_sort_column_id (column, AUTHOR_COLUMN);
+ gtk_tree_view_column_set_reorderable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
renderer = gtk_cell_renderer_toggle_new ();
gtk_tree_view_column_set_resizable (column, TRUE);
gtk_tree_view_column_set_clickable (column, TRUE);
gtk_tree_view_column_set_sort_column_id (column, CHECKED_COLUMN);
+ gtk_tree_view_column_set_reorderable (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
w = gtk_window_new (GTK_WINDOW_TOPLEVEL);