summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2007-04-28 14:06:25 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-04-28 14:06:25 +0000
commitd69030de81d1a136cccbbeaaf76601f7ecfe1414 (patch)
treed52d66c9edb0b056f028e9dedc02d7dcc5561b37 /demos
parenta5c702e545f010ee3f96eea9b43ea6615f3a35c4 (diff)
downloadgtk+-d69030de81d1a136cccbbeaaf76601f7ecfe1414.tar.gz
Fix headers in gtk-demo printing demo
svn path=/trunk/; revision=17669
Diffstat (limited to 'demos')
-rw-r--r--demos/gtk-demo/printing.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/demos/gtk-demo/printing.c b/demos/gtk-demo/printing.c
index d34c479cce..33b4b445f8 100644
--- a/demos/gtk-demo/printing.c
+++ b/demos/gtk-demo/printing.c
@@ -61,8 +61,9 @@ draw_page (GtkPrintOperation *operation,
PrintData *data = (PrintData *)user_data;
cairo_t *cr;
PangoLayout *layout;
- gdouble width, text_height;
- gint line, i, layout_height;
+ gint text_width, text_height;
+ gdouble width;
+ gint line, i;
PangoFontDescription *desc;
gchar *page_str;
@@ -85,21 +86,25 @@ draw_page (GtkPrintOperation *operation,
pango_font_description_free (desc);
pango_layout_set_text (layout, data->filename, -1);
- pango_layout_set_width (layout, width);
- pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER);
-
- pango_layout_get_size (layout, NULL, &layout_height);
- text_height = (gdouble)layout_height / PANGO_SCALE;
+ pango_layout_get_pixel_size (layout, &text_width, &text_height);
- cairo_move_to (cr, width / 2, (HEADER_HEIGHT - text_height) / 2);
+ if (text_width > width)
+ {
+ pango_layout_set_width (layout, width);
+ pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_START);
+ pango_layout_get_pixel_size (layout, &text_width, &text_height);
+ }
+
+ cairo_move_to (cr, (width - text_width) / 2, (HEADER_HEIGHT - text_height) / 2);
pango_cairo_show_layout (cr, layout);
page_str = g_strdup_printf ("%d/%d", page_nr + 1, data->num_pages);
pango_layout_set_text (layout, page_str, -1);
g_free (page_str);
- pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT);
-
- cairo_move_to (cr, width - 2, (HEADER_HEIGHT - text_height) / 2);
+
+ pango_layout_set_width (layout, -1);
+ pango_layout_get_pixel_size (layout, &text_width, &text_height);
+ cairo_move_to (cr, width - text_width - 4, (HEADER_HEIGHT - text_height) / 2);
pango_cairo_show_layout (cr, layout);
g_object_unref (layout);