From: Ben Pfaff Date: Thu, 13 May 2010 04:58:40 +0000 (-0700) Subject: gui: Configure page setup when printing in the GUI. X-Git-Tag: v0.7.5~26 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a3d7e00f93cd13ef478a8456eb25afa34dcb427;p=pspp-builds.git gui: Configure page setup when printing in the GUI. The page setup has to be passed down to the Cairo output driver or it doesn't know how to paginate the output properly. --- diff --git a/src/ui/gui/psppire-output-window.c b/src/ui/gui/psppire-output-window.c index b78ef8d3..2e02b4e5 100644 --- a/src/ui/gui/psppire-output-window.c +++ b/src/ui/gui/psppire-output-window.c @@ -621,8 +621,33 @@ static void create_xr_print_driver (GtkPrintContext *context, PsppireOutputWindow *window) { struct string_map options; + GtkPageSetup *page_setup; + double width, height; + double left_margin; + double right_margin; + double top_margin; + double bottom_margin; + + page_setup = gtk_print_context_get_page_setup (context); + width = gtk_page_setup_get_paper_width (page_setup, GTK_UNIT_MM); + height = gtk_page_setup_get_paper_height (page_setup, GTK_UNIT_MM); + left_margin = gtk_page_setup_get_left_margin (page_setup, GTK_UNIT_MM); + right_margin = gtk_page_setup_get_right_margin (page_setup, GTK_UNIT_MM); + top_margin = gtk_page_setup_get_top_margin (page_setup, GTK_UNIT_MM); + bottom_margin = gtk_page_setup_get_bottom_margin (page_setup, GTK_UNIT_MM); string_map_init (&options); + string_map_insert_nocopy (&options, xstrdup ("paper-size"), + xasprintf("%.2fx%.2fmm", width, height)); + string_map_insert_nocopy (&options, xstrdup ("left-margin"), + xasprintf ("%.2fmm", left_margin)); + string_map_insert_nocopy (&options, xstrdup ("right-margin"), + xasprintf ("%.2fmm", right_margin)); + string_map_insert_nocopy (&options, xstrdup ("top-margin"), + xasprintf ("%.2fmm", top_margin)); + string_map_insert_nocopy (&options, xstrdup ("bottom-margin"), + xasprintf ("%.2fmm", bottom_margin)); + window->print_xrd = xr_driver_create (gtk_print_context_get_cairo_context (context), &options);