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 "printing/printing_context_win.h" | 5 #include "printing/printing_context_win.h" |
6 | 6 |
7 #include <winspool.h> | 7 #include <winspool.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
387 DM_IN_BUFFER | DM_OUT_BUFFER) != IDOK) { | 387 DM_IN_BUFFER | DM_OUT_BUFFER) != IDOK) { |
388 ClosePrinter(printer); | 388 ClosePrinter(printer); |
389 return OnError(); | 389 return OnError(); |
390 } | 390 } |
391 | 391 |
392 // Set printer then refresh printer settings. | 392 // Set printer then refresh printer settings. |
393 if (!AllocateContext(device_name, dev_mode, &context_)) { | 393 if (!AllocateContext(device_name, dev_mode, &context_)) { |
394 ClosePrinter(printer); | 394 ClosePrinter(printer); |
395 return OnError(); | 395 return OnError(); |
396 } | 396 } |
397 | |
398 bool display_header_footer; | |
kmadhusu
2011/08/12 17:07:00
Move this common code to a helper function in prin
Aayush Kumar
2011/08/12 18:53:42
Done.
| |
399 // Getting Header and Footer settings. | |
400 if (!job_settings.GetBoolean(printing::kSettingHeaderFooterEnabled, | |
401 &display_header_footer)) { | |
402 NOTREACHED(); | |
403 } | |
404 DictionaryValue header_footer_info; | |
405 header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, | |
406 display_header_footer); | |
407 if (display_header_footer) { | |
408 string16 title; | |
409 std::string url; | |
410 if (!job_settings.GetString(printing::kSettingHeaderFooterTitle, &title) || | |
411 !job_settings.GetString(printing::kSettingHeaderFooterURL, &url)) { | |
412 NOTREACHED(); | |
413 } | |
414 header_footer_info.SetString(printing::kSettingHeaderFooterURL, url); | |
415 header_footer_info.SetString(printing::kSettingHeaderFooterTitle, title); | |
416 } | |
417 | |
397 PrintSettingsInitializerWin::InitPrintSettings(context_, *dev_mode, | 418 PrintSettingsInitializerWin::InitPrintSettings(context_, *dev_mode, |
398 ranges, device_name, | 419 ranges, device_name, |
399 false, &settings_); | 420 false, header_footer_info, |
421 &settings_); | |
400 ClosePrinter(printer); | 422 ClosePrinter(printer); |
401 return OK; | 423 return OK; |
402 } | 424 } |
403 | 425 |
404 PrintingContext::Result PrintingContextWin::InitWithSettings( | 426 PrintingContext::Result PrintingContextWin::InitWithSettings( |
405 const PrintSettings& settings) { | 427 const PrintSettings& settings) { |
406 DCHECK(!in_print_job_); | 428 DCHECK(!in_print_job_); |
407 | 429 |
408 settings_ = settings; | 430 settings_ = settings; |
409 | 431 |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
576 ranges_vector.reserve(number_ranges); | 598 ranges_vector.reserve(number_ranges); |
577 for (int i = 0; i < number_ranges; ++i) { | 599 for (int i = 0; i < number_ranges; ++i) { |
578 PageRange range; | 600 PageRange range; |
579 // Transfer from 1-based to 0-based. | 601 // Transfer from 1-based to 0-based. |
580 range.from = ranges[i].nFromPage - 1; | 602 range.from = ranges[i].nFromPage - 1; |
581 range.to = ranges[i].nToPage - 1; | 603 range.to = ranges[i].nToPage - 1; |
582 ranges_vector.push_back(range); | 604 ranges_vector.push_back(range); |
583 } | 605 } |
584 } | 606 } |
585 | 607 |
608 DictionaryValue header_footer_info; | |
609 header_footer_info.SetBoolean(printing::kSettingHeaderFooterEnabled, | |
610 false); | |
586 PrintSettingsInitializerWin::InitPrintSettings(context_, | 611 PrintSettingsInitializerWin::InitPrintSettings(context_, |
587 dev_mode, | 612 dev_mode, |
588 ranges_vector, | 613 ranges_vector, |
589 new_device_name, | 614 new_device_name, |
590 selection_only, | 615 selection_only, |
616 header_footer_info, | |
591 &settings_); | 617 &settings_); |
592 | 618 |
593 return true; | 619 return true; |
594 } | 620 } |
595 | 621 |
596 bool PrintingContextWin::GetPrinterSettings(HANDLE printer, | 622 bool PrintingContextWin::GetPrinterSettings(HANDLE printer, |
597 const std::wstring& device_name) { | 623 const std::wstring& device_name) { |
598 DCHECK(!in_print_job_); | 624 DCHECK(!in_print_job_); |
599 scoped_array<uint8> buffer; | 625 scoped_array<uint8> buffer; |
600 int level = 0; | 626 int level = 0; |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
756 if (buf_size) { | 782 if (buf_size) { |
757 buffer->reset(new uint8[buf_size]); | 783 buffer->reset(new uint8[buf_size]); |
758 memset(buffer->get(), 0, buf_size); | 784 memset(buffer->get(), 0, buf_size); |
759 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) { | 785 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) { |
760 buffer->reset(); | 786 buffer->reset(); |
761 } | 787 } |
762 } | 788 } |
763 } | 789 } |
764 | 790 |
765 } // namespace printing | 791 } // namespace printing |
OLD | NEW |