+GtkPrintSettings *printing_get_settings(void)
+{
+ if (settings == NULL) {
+ settings = gtk_print_settings_new();
+ gtk_print_settings_set_use_color(settings, prefs_common.print_use_color);
+ gtk_print_settings_set_collate(settings, prefs_common.print_use_collate);
+ gtk_print_settings_set_reverse(settings, prefs_common.print_use_reverse);
+ gtk_print_settings_set_duplex(settings, prefs_common.print_use_duplex);
+ }
+ return settings;
+}
+
+void printing_store_settings(GtkPrintSettings *new_settings)
+{
+ if(settings != NULL)
+ g_object_unref(settings);
+ settings = g_object_ref(new_settings);
+ prefs_common.print_use_color = gtk_print_settings_get_use_color(settings);
+ prefs_common.print_use_collate = gtk_print_settings_get_collate(settings);
+ prefs_common.print_use_reverse = gtk_print_settings_get_reverse(settings);
+ prefs_common.print_use_duplex = gtk_print_settings_get_duplex(settings);
+
+}
+GtkPageSetup *printing_get_page_setup(void)
+{
+ if (page_setup == NULL) {
+ page_setup = gtk_page_setup_new();
+ if (prefs_common.print_paper_type && *prefs_common.print_paper_type) {
+ GtkPaperSize *paper = gtk_paper_size_new(prefs_common.print_paper_type);
+ gtk_page_setup_set_paper_size(page_setup, paper);
+ gtk_paper_size_free(paper);
+ }
+ gtk_page_setup_set_orientation(page_setup, prefs_common.print_paper_orientation);
+ }
+ return page_setup;
+}
+