| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/printing/print_dialog_gtk.h" | 5 #include "chrome/browser/printing/print_dialog_gtk.h" |
| 6 | 6 |
| 7 #include <fcntl.h> | 7 #include <fcntl.h> |
| 8 #include <gtk/gtkpagesetupunixdialog.h> | 8 #include <gtk/gtkpagesetupunixdialog.h> |
| 9 #include <gtk/gtkprintjob.h> | 9 #include <gtk/gtkprintjob.h> |
| 10 #include <sys/stat.h> | 10 #include <sys/stat.h> |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 | 136 |
| 137 // |gtk_settings_| is a new object. | 137 // |gtk_settings_| is a new object. |
| 138 gtk_settings_ = gtk_print_settings_new(); | 138 gtk_settings_ = gtk_print_settings_new(); |
| 139 | 139 |
| 140 scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList); | 140 scoped_ptr<GtkPrinterList> printer_list(new GtkPrinterList); |
| 141 printer_ = printer_list->default_printer(); | 141 printer_ = printer_list->default_printer(); |
| 142 if (printer_) { | 142 if (printer_) { |
| 143 g_object_ref(printer_); | 143 g_object_ref(printer_); |
| 144 gtk_print_settings_set_printer(gtk_settings_, | 144 gtk_print_settings_set_printer(gtk_settings_, |
| 145 gtk_printer_get_name(printer_)); | 145 gtk_printer_get_name(printer_)); |
| 146 #if GTK_CHECK_VERSION(2, 14, 0) | |
| 147 page_setup_ = gtk_printer_get_default_page_size(printer_); | 146 page_setup_ = gtk_printer_get_default_page_size(printer_); |
| 148 #endif | |
| 149 } | 147 } |
| 150 | 148 |
| 151 if (!page_setup_) | 149 if (!page_setup_) |
| 152 page_setup_ = gtk_page_setup_new(); | 150 page_setup_ = gtk_page_setup_new(); |
| 153 | 151 |
| 154 // No page range to initialize for default settings. | 152 // No page range to initialize for default settings. |
| 155 PageRanges ranges_vector; | 153 PageRanges ranges_vector; |
| 156 InitPrintSettings(ranges_vector); | 154 InitPrintSettings(ranges_vector); |
| 157 } | 155 } |
| 158 | 156 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 // Since we only generate PDF, only show printers that support PDF. | 227 // Since we only generate PDF, only show printers that support PDF. |
| 230 // TODO(thestig) Add more capabilities to support? | 228 // TODO(thestig) Add more capabilities to support? |
| 231 GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>( | 229 GtkPrintCapabilities cap = static_cast<GtkPrintCapabilities>( |
| 232 GTK_PRINT_CAPABILITY_GENERATE_PDF | | 230 GTK_PRINT_CAPABILITY_GENERATE_PDF | |
| 233 GTK_PRINT_CAPABILITY_PAGE_SET | | 231 GTK_PRINT_CAPABILITY_PAGE_SET | |
| 234 GTK_PRINT_CAPABILITY_COPIES | | 232 GTK_PRINT_CAPABILITY_COPIES | |
| 235 GTK_PRINT_CAPABILITY_COLLATE | | 233 GTK_PRINT_CAPABILITY_COLLATE | |
| 236 GTK_PRINT_CAPABILITY_REVERSE); | 234 GTK_PRINT_CAPABILITY_REVERSE); |
| 237 gtk_print_unix_dialog_set_manual_capabilities(GTK_PRINT_UNIX_DIALOG(dialog_), | 235 gtk_print_unix_dialog_set_manual_capabilities(GTK_PRINT_UNIX_DIALOG(dialog_), |
| 238 cap); | 236 cap); |
| 239 #if GTK_CHECK_VERSION(2, 18, 0) | |
| 240 gtk_print_unix_dialog_set_embed_page_setup(GTK_PRINT_UNIX_DIALOG(dialog_), | 237 gtk_print_unix_dialog_set_embed_page_setup(GTK_PRINT_UNIX_DIALOG(dialog_), |
| 241 TRUE); | 238 TRUE); |
| 242 #endif | |
| 243 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponseThunk), this); | 239 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponseThunk), this); |
| 244 gtk_widget_show(dialog_); | 240 gtk_widget_show(dialog_); |
| 245 } | 241 } |
| 246 | 242 |
| 247 void PrintDialogGtk::PrintDocument(const printing::Metafile* metafile, | 243 void PrintDialogGtk::PrintDocument(const printing::Metafile* metafile, |
| 248 const string16& document_name) { | 244 const string16& document_name) { |
| 249 // This runs on the print worker thread, does not block the UI thread. | 245 // This runs on the print worker thread, does not block the UI thread. |
| 250 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI)); | 246 DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 251 | 247 |
| 252 // The document printing tasks can outlive the PrintingContext that created | 248 // The document printing tasks can outlive the PrintingContext that created |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 // Printing finished. Matches AddRef() in PrintDocument(); | 380 // Printing finished. Matches AddRef() in PrintDocument(); |
| 385 Release(); | 381 Release(); |
| 386 } | 382 } |
| 387 | 383 |
| 388 void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges) { | 384 void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges) { |
| 389 PrintSettings settings; | 385 PrintSettings settings; |
| 390 printing::PrintSettingsInitializerGtk::InitPrintSettings( | 386 printing::PrintSettingsInitializerGtk::InitPrintSettings( |
| 391 gtk_settings_, page_setup_, page_ranges, false, &settings); | 387 gtk_settings_, page_setup_, page_ranges, false, &settings); |
| 392 context_->InitWithSettings(settings); | 388 context_->InitWithSettings(settings); |
| 393 } | 389 } |
| OLD | NEW |