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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 } | 86 } |
87 | 87 |
88 std::vector<GtkPrinter*> printers_; | 88 std::vector<GtkPrinter*> printers_; |
89 GtkPrinter* default_printer_; | 89 GtkPrinter* default_printer_; |
90 }; | 90 }; |
91 | 91 |
92 } // namespace | 92 } // namespace |
93 | 93 |
94 // static | 94 // static |
95 printing::PrintDialogGtkInterface* PrintDialogGtk::CreatePrintDialog( | 95 printing::PrintDialogGtkInterface* PrintDialogGtk::CreatePrintDialog( |
96 PrintingContextCairo* context) { | 96 PrintingContextGtk* context) { |
97 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 97 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
98 return new PrintDialogGtk(context); | 98 return new PrintDialogGtk(context); |
99 } | 99 } |
100 | 100 |
101 PrintDialogGtk::PrintDialogGtk(PrintingContextCairo* context) | 101 PrintDialogGtk::PrintDialogGtk(PrintingContextGtk* context) |
102 : callback_(NULL), | 102 : callback_(NULL), |
103 context_(context), | 103 context_(context), |
104 dialog_(NULL), | 104 dialog_(NULL), |
105 gtk_settings_(NULL), | 105 gtk_settings_(NULL), |
106 page_setup_(NULL), | 106 page_setup_(NULL), |
107 printer_(NULL) { | 107 printer_(NULL) { |
108 } | 108 } |
109 | 109 |
110 PrintDialogGtk::~PrintDialogGtk() { | 110 PrintDialogGtk::~PrintDialogGtk() { |
111 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 111 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 gtk_print_settings_set_orientation( | 222 gtk_print_settings_set_orientation( |
223 gtk_settings_, | 223 gtk_settings_, |
224 landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE : | 224 landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE : |
225 GTK_PAGE_ORIENTATION_PORTRAIT); | 225 GTK_PAGE_ORIENTATION_PORTRAIT); |
226 | 226 |
227 InitPrintSettings(ranges, settings); | 227 InitPrintSettings(ranges, settings); |
228 return true; | 228 return true; |
229 } | 229 } |
230 | 230 |
231 void PrintDialogGtk::ShowDialog( | 231 void PrintDialogGtk::ShowDialog( |
232 PrintingContextCairo::PrintSettingsCallback* callback) { | 232 PrintingContextGtk::PrintSettingsCallback* callback) { |
233 callback_ = callback; | 233 callback_ = callback; |
234 | 234 |
235 GtkWindow* parent = BrowserList::GetLastActive()->window()->GetNativeHandle(); | 235 GtkWindow* parent = BrowserList::GetLastActive()->window()->GetNativeHandle(); |
236 // TODO(estade): We need a window title here. | 236 // TODO(estade): We need a window title here. |
237 dialog_ = gtk_print_unix_dialog_new(NULL, parent); | 237 dialog_ = gtk_print_unix_dialog_new(NULL, parent); |
238 g_signal_connect(dialog_, "delete-event", | 238 g_signal_connect(dialog_, "delete-event", |
239 G_CALLBACK(gtk_widget_hide_on_delete), NULL); | 239 G_CALLBACK(gtk_widget_hide_on_delete), NULL); |
240 | 240 |
241 | 241 |
242 // Set modal so user cannot focus the same tab and press print again. | 242 // Set modal so user cannot focus the same tab and press print again. |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 range.to = gtk_range[i].end; | 334 range.to = gtk_range[i].end; |
335 ranges_vector.push_back(range); | 335 ranges_vector.push_back(range); |
336 } | 336 } |
337 g_free(gtk_range); | 337 g_free(gtk_range); |
338 } | 338 } |
339 | 339 |
340 PrintSettings settings; | 340 PrintSettings settings; |
341 printing::PrintSettingsInitializerGtk::InitPrintSettings( | 341 printing::PrintSettingsInitializerGtk::InitPrintSettings( |
342 gtk_settings_, page_setup_, ranges_vector, false, &settings); | 342 gtk_settings_, page_setup_, ranges_vector, false, &settings); |
343 context_->InitWithSettings(settings); | 343 context_->InitWithSettings(settings); |
344 callback_->Run(PrintingContextCairo::OK); | 344 callback_->Run(PrintingContextGtk::OK); |
345 callback_ = NULL; | 345 callback_ = NULL; |
346 return; | 346 return; |
347 } | 347 } |
348 case GTK_RESPONSE_DELETE_EVENT: // Fall through. | 348 case GTK_RESPONSE_DELETE_EVENT: // Fall through. |
349 case GTK_RESPONSE_CANCEL: { | 349 case GTK_RESPONSE_CANCEL: { |
350 callback_->Run(PrintingContextCairo::CANCEL); | 350 callback_->Run(PrintingContextGtk::CANCEL); |
351 callback_ = NULL; | 351 callback_ = NULL; |
352 return; | 352 return; |
353 } | 353 } |
354 case GTK_RESPONSE_APPLY: | 354 case GTK_RESPONSE_APPLY: |
355 default: { | 355 default: { |
356 NOTREACHED(); | 356 NOTREACHED(); |
357 } | 357 } |
358 } | 358 } |
359 } | 359 } |
360 | 360 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 // Printing finished. Matches AddRef() in PrintDocument(); | 396 // Printing finished. Matches AddRef() in PrintDocument(); |
397 Release(); | 397 Release(); |
398 } | 398 } |
399 | 399 |
400 void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges, | 400 void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges, |
401 PrintSettings* settings) { | 401 PrintSettings* settings) { |
402 printing::PrintSettingsInitializerGtk::InitPrintSettings( | 402 printing::PrintSettingsInitializerGtk::InitPrintSettings( |
403 gtk_settings_, page_setup_, page_ranges, false, settings); | 403 gtk_settings_, page_setup_, page_ranges, false, settings); |
404 context_->InitWithSettings(*settings); | 404 context_->InitWithSettings(*settings); |
405 } | 405 } |
OLD | NEW |