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

Unified Diff: printing/printing_context_win.cc

Issue 46623002: Move settings setup for PDF and cloud print into single location in PrintingContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: printing/printing_context_win.cc
diff --git a/printing/printing_context_win.cc b/printing/printing_context_win.cc
index 7a4a5267f572d8bd73168252516030a98759e19b..9819cd7fc96dace9e595bc345671742d735e6794 100644
--- a/printing/printing_context_win.cc
+++ b/printing/printing_context_win.cc
@@ -36,21 +36,6 @@ using base::Time;
namespace {
-// Constants for setting default PDF settings.
-const int kPDFDpi = 300; // 300 dpi
-// LETTER: 8.5 x 11 inches
-const int kPDFLetterWidth = 8.5 * kPDFDpi;
-const int kPDFLetterHeight = 11 * kPDFDpi;
-// LEGAL: 8.5 x 14 inches
-const int kPDFLegalWidth = 8.5 * kPDFDpi;
-const int kPDFLegalHeight = 14 * kPDFDpi;
-// A4: 8.27 x 11.69 inches
-const int kPDFA4Width = 8.27 * kPDFDpi;
-const int kPDFA4Height = 11.69 * kPDFDpi;
-// A3: 11.69 x 16.54 inches
-const int kPDFA3Width = 11.69 * kPDFDpi;
-const int kPDFA3Height = 16.54 * kPDFDpi;
-
HWND GetRootWindow(gfx::NativeView view) {
HWND window = NULL;
#if defined(USE_AURA)
@@ -307,45 +292,42 @@ PrintingContext::Result PrintingContextWin::UseDefaultSettings() {
return FAILED;
}
+gfx::Size PrintingContextWin::GetPdfPaperSizeDeviceUnits() {
+ // Default fallback to Letter size.
+ gfx::SizeF paper_size;
+ paper_size.SetSize(kLetterWidthInch, kLetterHeightInch);
Lei Zhang 2013/11/01 18:27:13 nit: can't you just do this in the SizeF ctor?
Vitaly Buka (NO REVIEWS) 2013/11/01 19:46:29 Done.
+
+ // Get settings from locale. Paper type buffer length is at most 4.
+ const int paper_type_buffer_len = 4;
+ wchar_t paper_type_buffer[paper_type_buffer_len] = {0};
+ GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IPAPERSIZE, paper_type_buffer,
+ paper_type_buffer_len);
+ if (wcslen(paper_type_buffer)) { // The call succeeded.
+ int paper_code = _wtoi(paper_type_buffer);
+ switch (paper_code) {
+ case DMPAPER_LEGAL:
+ paper_size.SetSize(kLegalWidthInch, kLegalHeightInch);
+ break;
+ case DMPAPER_A4:
+ paper_size.SetSize(kA4WidthInch, kA4HeightInch);
+ break;
+ case DMPAPER_A3:
+ paper_size.SetSize(kA3WidthInch, kA3HeightInch);
+ break;
+ default: // DMPAPER_LETTER is used for default fallback.
+ break;
+ }
+ }
+ return gfx::Size(
+ paper_size.width() * settings_.device_units_per_inch(),
+ paper_size.height() * settings_.device_units_per_inch());
+}
+
PrintingContext::Result PrintingContextWin::UpdatePrinterSettings(
- bool target_is_pdf,
bool external_preview) {
DCHECK(!in_print_job_);
DCHECK(!external_preview) << "Not implemented";
- if (target_is_pdf) {
- // Default fallback to Letter size.
- gfx::Size paper_size;
- gfx::Rect paper_rect;
- paper_size.SetSize(kPDFLetterWidth, kPDFLetterHeight);
-
- // Get settings from locale. Paper type buffer length is at most 4.
- const int paper_type_buffer_len = 4;
- wchar_t paper_type_buffer[paper_type_buffer_len] = {0};
- GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IPAPERSIZE, paper_type_buffer,
- paper_type_buffer_len);
- if (wcslen(paper_type_buffer)) { // The call succeeded.
- int paper_code = _wtoi(paper_type_buffer);
- switch (paper_code) {
- case DMPAPER_LEGAL:
- paper_size.SetSize(kPDFLegalWidth, kPDFLegalHeight);
- break;
- case DMPAPER_A4:
- paper_size.SetSize(kPDFA4Width, kPDFA4Height);
- break;
- case DMPAPER_A3:
- paper_size.SetSize(kPDFA3Width, kPDFA3Height);
- break;
- default: // DMPAPER_LETTER is used for default fallback.
- break;
- }
- }
- paper_rect.SetRect(0, 0, paper_size.width(), paper_size.height());
- settings_.SetPrinterPrintableArea(paper_size, paper_rect, kPDFDpi, true);
- settings_.set_dpi(kPDFDpi);
- return OK;
- }
-
ScopedPrinterHandle printer;
LPWSTR device_name_wide =
const_cast<wchar_t*>(settings_.device_name().c_str());

Powered by Google App Engine
This is Rietveld 408576698