From: Andrea Zagli Date: Tue, 1 Oct 2013 10:32:54 +0000 (+0200) Subject: Use pango_font_description_set_absolute_size to have the right font size. X-Git-Tag: v0.2.2~5 X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=9dd90c9ecb53951a56c485dcf97f8ed256b9c7d2;p=reptool%2Flibreptool Use pango_font_description_set_absolute_size to have the right font size. Some adjustment on RptReport::new_from_gtktreeview. --- diff --git a/.cproject b/.cproject index 192ab0f..2c7bc85 100644 --- a/.cproject +++ b/.cproject @@ -31,6 +31,8 @@ + + diff --git a/src/rptprint.c b/src/rptprint.c index dd5f429..06b7b2b 100644 --- a/src/rptprint.c +++ b/src/rptprint.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2011 Andrea Zagli + * Copyright (C) 2006-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -969,11 +969,11 @@ rpt_print_text_xml (RptPrint *rpt_print, xmlNode *xnode) } if (font->size > 0.0f) { - pango_font_description_set_size (pfdesc, (int)font->size * PANGO_SCALE); + pango_font_description_set_absolute_size (pfdesc, (int)font->size * PANGO_SCALE); } else { - pango_font_description_set_size (pfdesc, 12 * PANGO_SCALE); + pango_font_description_set_absolute_size (pfdesc, 12 * PANGO_SCALE); } pango_layout_set_font_description (playout, pfdesc); diff --git a/src/rptreport.c b/src/rptreport.c index abc8920..23bb79f 100644 --- a/src/rptreport.c +++ b/src/rptreport.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2011 Andrea Zagli + * Copyright (C) 2007-2013 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -598,8 +598,12 @@ RptReport guint idx; + 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) @@ -608,7 +612,7 @@ RptReport pango_font = pango_font_description_new (); pango_font_description_set_family (pango_font, "Arial"); - pango_font_description_set_size (pango_font, 10 * PANGO_SCALE); + pango_font_description_set_absolute_size (pango_font, 10 * PANGO_SCALE); } ret = rpt_report_new (); @@ -627,14 +631,14 @@ RptReport rpt_report_set_section_height (ret, RPTREPORT_SECTION_PAGE_HEADER, 27); rpt_report_set_page_header_first_last_page (ret, TRUE, TRUE); - rpt_report_set_section_height (ret, RPTREPORT_SECTION_BODY, 15); + rpt_report_set_section_height (ret, RPTREPORT_SECTION_BODY, height); if (title != NULL) { point = rpt_common_rptpoint_new_with_values (0, 0); obj = rpt_obj_text_new ("title", *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); font = rpt_common_rptfont_from_pango_description (pango_font); font->size += 2; font->bold = TRUE; @@ -660,17 +664,17 @@ RptReport col = (GtkTreeViewColumn *)columns->data; 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) / 96.0 * 72.0); + 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); if (columns->next == NULL && x < page_size->width) { /* the last column is always large until the end of the page */ - size = rpt_common_rptsize_new_with_values ((page_size->width - page_margin->left - page_margin->right) - x, 10); + size = rpt_common_rptsize_new_with_values ((page_size->width - page_margin->left - page_margin->right) - x, height); } else { - size = rpt_common_rptsize_new_with_values (col_width, 10); + size = rpt_common_rptsize_new_with_values (col_width, height); } font = rpt_common_rptfont_from_pango_description (pango_font); font->bold = TRUE; @@ -707,7 +711,7 @@ RptReport g_hash_table_insert (columns_names, field_name, g_strdup_printf ("%d", idx)); - x += col_width + 5; + x += col_width + 1; idx++; columns = g_list_next (columns); diff --git a/tests/gtktreeview.c b/tests/gtktreeview.c index 76dc3b6..3670ac4 100644 --- a/tests/gtktreeview.c +++ b/tests/gtktreeview.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Andrea Zagli + * Copyright (C) 2011-2013 Andrea Zagli * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -78,7 +78,6 @@ main (int argc, char **argv) GtkTreeIter iter; gtk_list_store_append (store, &iter); /* Acquire an iterator */ - gtk_list_store_set (store, &iter, TITLE_COLUMN, "The Principle of Reason", AUTHOR_COLUMN, "Martin Heidegger", @@ -89,10 +88,25 @@ main (int argc, char **argv) gtk_list_store_set (store, &iter, TITLE_COLUMN, "The Art of Computer Programming", AUTHOR_COLUMN, "Donald E. Knuth", + CHECKED_COLUMN, TRUE, + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TITLE_COLUMN, "Pinocchio", + AUTHOR_COLUMN, "Collodi", CHECKED_COLUMN, FALSE, -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TITLE_COLUMN, "Hyperion", + AUTHOR_COLUMN, "Dan Simmons", + 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); GtkCellRenderer *renderer; GtkTreeViewColumn *column; @@ -103,6 +117,8 @@ main (int argc, char **argv) "text", TITLE_COLUMN, NULL); 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_append_column (GTK_TREE_VIEW (tree), column); renderer = gtk_cell_renderer_text_new (); @@ -111,6 +127,18 @@ main (int argc, char **argv) "text", AUTHOR_COLUMN, NULL); 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_append_column (GTK_TREE_VIEW (tree), column); + + renderer = gtk_cell_renderer_toggle_new (); + column = gtk_tree_view_column_new_with_attributes ("Checked", + renderer, + "active", CHECKED_COLUMN, + NULL); + 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_append_column (GTK_TREE_VIEW (tree), column); w = gtk_window_new (GTK_WINDOW_TOPLEVEL);