Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(674)

Side by Side Diff: chrome/browser/printing/print_dialog_gtk.cc

Issue 7348010: Added Header and Footer support using Skia (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Moved elide text to print_settings_initializer Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 #if GTK_CHECK_VERSION(2, 14, 0) 148 #if GTK_CHECK_VERSION(2, 14, 0)
149 page_setup_ = gtk_printer_get_default_page_size(printer_); 149 page_setup_ = gtk_printer_get_default_page_size(printer_);
150 #endif 150 #endif
151 } 151 }
152 152
153 if (!page_setup_) 153 if (!page_setup_)
154 page_setup_ = gtk_page_setup_new(); 154 page_setup_ = gtk_page_setup_new();
155 155
156 // No page range to initialize for default settings. 156 // No page range to initialize for default settings.
157 PageRanges ranges_vector; 157 PageRanges ranges_vector;
158 InitPrintSettings(ranges_vector); 158 DictionaryValue header_footer_info;
159 header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, false);
160 InitPrintSettings(ranges_vector, header_footer_info);
159 } 161 }
160 162
161 bool PrintDialogGtk::UpdateSettings(const DictionaryValue& settings, 163 bool PrintDialogGtk::UpdateSettings(const DictionaryValue& settings,
162 const printing::PageRanges& ranges) { 164 const printing::PageRanges& ranges) {
163 bool collate; 165 bool collate;
164 bool color; 166 bool color;
165 bool landscape; 167 bool landscape;
166 bool print_to_pdf; 168 bool print_to_pdf;
167 int copies; 169 int copies;
168 int duplex_mode; 170 int duplex_mode;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 break; 205 break;
204 } 206 }
205 gtk_print_settings_set(gtk_settings_, kCUPSDuplex, cups_duplex_mode); 207 gtk_print_settings_set(gtk_settings_, kCUPSDuplex, cups_duplex_mode);
206 } 208 }
207 209
208 gtk_print_settings_set_orientation( 210 gtk_print_settings_set_orientation(
209 gtk_settings_, 211 gtk_settings_,
210 landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE : 212 landscape ? GTK_PAGE_ORIENTATION_LANDSCAPE :
211 GTK_PAGE_ORIENTATION_PORTRAIT); 213 GTK_PAGE_ORIENTATION_PORTRAIT);
212 214
213 InitPrintSettings(ranges); 215 bool display_header_footer;
216 // Getting Header and Footer settings.
217 if (!settings.GetBoolean(printing::kSettingHeaderFooterEnabled,
218 &display_header_footer)) {
219 NOTREACHED();
220 }
221 DictionaryValue header_footer_info;
222 header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled,
223 display_header_footer);
224 if (display_header_footer) {
225 string16 title;
226 std::string url;
227 if (!settings.GetString(printing::kSettingHeaderFooterTitle, &title) ||
228 !settings.GetString(printing::kSettingHeaderFooterURL, &url)) {
229 NOTREACHED();
230 }
231 header_footer_info.SetString(printing::kSettingHeaderFooterURL, url);
232 header_footer_info.SetString(printing::kSettingHeaderFooterTitle, title);
233 }
234
235 InitPrintSettings(ranges, header_footer_info);
214 return true; 236 return true;
215 } 237 }
216 238
217 void PrintDialogGtk::ShowDialog( 239 void PrintDialogGtk::ShowDialog(
218 PrintingContextCairo::PrintSettingsCallback* callback) { 240 PrintingContextCairo::PrintSettingsCallback* callback) {
219 DCHECK(!save_document_event_.get()); 241 DCHECK(!save_document_event_.get());
220 242
221 callback_ = callback; 243 callback_ = callback;
222 244
223 GtkWindow* parent = BrowserList::GetLastActive()->window()->GetNativeHandle(); 245 GtkWindow* parent = BrowserList::GetLastActive()->window()->GetNativeHandle();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 for (int i = 0; i < num_ranges; ++i) { 330 for (int i = 0; i < num_ranges; ++i) {
309 printing::PageRange range; 331 printing::PageRange range;
310 range.from = gtk_range[i].start; 332 range.from = gtk_range[i].start;
311 range.to = gtk_range[i].end; 333 range.to = gtk_range[i].end;
312 ranges_vector.push_back(range); 334 ranges_vector.push_back(range);
313 } 335 }
314 g_free(gtk_range); 336 g_free(gtk_range);
315 } 337 }
316 338
317 PrintSettings settings; 339 PrintSettings settings;
340 DictionaryValue header_footer_info;
341 header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled,
342 false);
318 printing::PrintSettingsInitializerGtk::InitPrintSettings( 343 printing::PrintSettingsInitializerGtk::InitPrintSettings(
319 gtk_settings_, page_setup_, ranges_vector, false, &settings); 344 gtk_settings_, page_setup_, ranges_vector, false, header_footer_info,
345 &settings);
320 context_->InitWithSettings(settings); 346 context_->InitWithSettings(settings);
321 callback_->Run(PrintingContextCairo::OK); 347 callback_->Run(PrintingContextCairo::OK);
322 callback_ = NULL; 348 callback_ = NULL;
323 return; 349 return;
324 } 350 }
325 case GTK_RESPONSE_DELETE_EVENT: // Fall through. 351 case GTK_RESPONSE_DELETE_EVENT: // Fall through.
326 case GTK_RESPONSE_CANCEL: { 352 case GTK_RESPONSE_CANCEL: {
327 callback_->Run(PrintingContextCairo::CANCEL); 353 callback_->Run(PrintingContextCairo::CANCEL);
328 callback_ = NULL; 354 callback_ = NULL;
329 return; 355 return;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 g_object_unref(print_job); 427 g_object_unref(print_job);
402 base::FileUtilProxy::Delete( 428 base::FileUtilProxy::Delete(
403 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE), 429 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
404 path_to_pdf_, 430 path_to_pdf_,
405 false, 431 false,
406 NULL); 432 NULL);
407 // Printing finished. Matches AddRef() in PrintDocument(); 433 // Printing finished. Matches AddRef() in PrintDocument();
408 Release(); 434 Release();
409 } 435 }
410 436
411 void PrintDialogGtk::InitPrintSettings(const PageRanges& page_ranges) { 437 void PrintDialogGtk::InitPrintSettings(
438 const PageRanges& page_ranges,
439 const DictionaryValue& header_footer_info) {
412 PrintSettings settings; 440 PrintSettings settings;
413 printing::PrintSettingsInitializerGtk::InitPrintSettings( 441 printing::PrintSettingsInitializerGtk::InitPrintSettings(
414 gtk_settings_, page_setup_, page_ranges, false, &settings); 442 gtk_settings_, page_setup_, page_ranges, false, header_footer_info,
443 &settings);
415 context_->InitWithSettings(settings); 444 context_->InitWithSettings(settings);
416 } 445 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698