]> saetta.ns0.it Git - reptool/libreptool/commitdiff
Use pango_font_description_set_absolute_size to have the right font size.
authorAndrea Zagli <a.zagli@comune.scandicci.fi.it>
Tue, 1 Oct 2013 10:32:54 +0000 (12:32 +0200)
committerAndrea Zagli <a.zagli@comune.scandicci.fi.it>
Tue, 1 Oct 2013 10:32:54 +0000 (12:32 +0200)
Some adjustment on RptReport::new_from_gtktreeview.

.cproject
src/rptprint.c
src/rptreport.c
tests/gtktreeview.c

index 192ab0f257e46bfbf67bd35595622dce9c76b820..2c7bc85dc507dfccea006ad229bbe1e87bae4e3d 100644 (file)
--- a/.cproject
+++ b/.cproject
@@ -31,6 +31,8 @@
                                                                        <listOptionValue builtIn="false" value="&quot;C:\mingw\include\libxml2&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;C:\mingw\include\libgda-4.0&quot;"/>
                                                                        <listOptionValue builtIn="false" value="&quot;C:\mingw\include\libgda-4.0\libgda&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\mingw\include\cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;C:\mingw\include\pango-1.0&quot;"/>
                                                                </option>
                                                                <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.348969489" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
                                                        </tool>
index dd5f4294e791f5a158e1c99bcf8f46a340445197..06b7b2baad0c9e184357493d98398ea9eba79be3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2011 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2006-2013 Andrea Zagli <azagli@libero.it>
  *
  * 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);
index abc8920845ae3d5216fffe2eee02a4c98e58fbe9..23bb79f064bde1055db3c15c8a681cc402a864b0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2011 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2007-2013 Andrea Zagli <azagli@libero.it>
  *
  * 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);
index 76dc3b61d353a85abeacc5cdb22a64e01474f986..3670ac4a88777e981ea11c4e8a0c70cf0299afd4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 Andrea Zagli <azagli@libero.it>
+ * Copyright (C) 2011-2013 Andrea Zagli <azagli@libero.it>
  *
  * 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);