OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/backend/print_backend.h" | 5 #include "printing/backend/print_backend.h" |
6 | 6 |
7 #include <objidl.h> | 7 #include <objidl.h> |
8 #include <winspool.h> | 8 #include <winspool.h> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 names.clear(); | 86 names.clear(); |
87 | 87 |
88 for (size_t i = 0; i < sizes.size(); ++i) { | 88 for (size_t i = 0; i < sizes.size(); ++i) { |
89 PrinterSemanticCapsAndDefaults::Paper paper; | 89 PrinterSemanticCapsAndDefaults::Paper paper; |
90 paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); | 90 paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); |
91 if (!names.empty()) { | 91 if (!names.empty()) { |
92 const wchar_t* name_start = names[i].chars; | 92 const wchar_t* name_start = names[i].chars; |
93 base::string16 tmp_name(name_start, kMaxPaperName); | 93 base::string16 tmp_name(name_start, kMaxPaperName); |
94 // Trim trailing zeros. | 94 // Trim trailing zeros. |
95 tmp_name = tmp_name.c_str(); | 95 tmp_name = tmp_name.c_str(); |
96 paper.name = base::WideToUTF8(tmp_name); | 96 paper.display_name = base::WideToUTF8(tmp_name); |
97 } | 97 } |
98 caps->papers.push_back(paper); | 98 caps->papers.push_back(paper); |
99 } | 99 } |
100 | 100 |
101 if (devmode) { | 101 if (devmode) { |
102 short default_id = 0; | 102 short default_id = 0; |
103 gfx::Size default_size; | 103 gfx::Size default_size; |
104 | 104 |
105 if (devmode->dmFields & DM_PAPERSIZE) | 105 if (devmode->dmFields & DM_PAPERSIZE) |
106 default_id = devmode->dmPaperSize; | 106 default_id = devmode->dmPaperSize; |
107 if (devmode->dmFields & DM_PAPERWIDTH) | 107 if (devmode->dmFields & DM_PAPERWIDTH) |
108 default_size.set_width(devmode->dmPaperWidth * kToUm); | 108 default_size.set_width(devmode->dmPaperWidth * kToUm); |
109 if (devmode->dmFields & DM_PAPERLENGTH) | 109 if (devmode->dmFields & DM_PAPERLENGTH) |
110 default_size.set_height(devmode->dmPaperLength * kToUm); | 110 default_size.set_height(devmode->dmPaperLength * kToUm); |
111 | 111 |
112 if (default_size.IsEmpty()) { | 112 if (default_size.IsEmpty()) { |
113 for (size_t i = 0; i < ids.size(); ++i) { | 113 for (size_t i = 0; i < ids.size(); ++i) { |
114 if (ids[i] == default_id) { | 114 if (ids[i] == default_id) { |
115 PrinterSemanticCapsAndDefaults::Paper paper; | 115 PrinterSemanticCapsAndDefaults::Paper paper; |
116 paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); | 116 paper.size_um.SetSize(sizes[i].x * kToUm, sizes[i].y * kToUm); |
117 if (!names.empty()) { | 117 if (!names.empty()) { |
118 const wchar_t* name_start = names[i].chars; | 118 const wchar_t* name_start = names[i].chars; |
119 base::string16 tmp_name(name_start, kMaxPaperName); | 119 base::string16 tmp_name(name_start, kMaxPaperName); |
120 // Trim trailing zeros. | 120 // Trim trailing zeros. |
121 tmp_name = tmp_name.c_str(); | 121 tmp_name = tmp_name.c_str(); |
122 paper.name = base::WideToUTF8(tmp_name); | 122 paper.display_name = base::WideToUTF8(tmp_name); |
123 } | 123 } |
124 caps->default_paper = paper; | 124 caps->default_paper = paper; |
125 break; | 125 break; |
126 } | 126 } |
127 } | 127 } |
128 } else { | 128 } else { |
129 caps->default_paper.size_um = default_size; | 129 caps->default_paper.size_um = default_size; |
130 } | 130 } |
131 } | 131 } |
132 } | 132 } |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 ScopedPrinterHandle printer_handle; | 363 ScopedPrinterHandle printer_handle; |
364 return printer_handle.OpenPrinter(base::UTF8ToWide(printer_name).c_str()); | 364 return printer_handle.OpenPrinter(base::UTF8ToWide(printer_name).c_str()); |
365 } | 365 } |
366 | 366 |
367 scoped_refptr<PrintBackend> PrintBackend::CreateInstance( | 367 scoped_refptr<PrintBackend> PrintBackend::CreateInstance( |
368 const base::DictionaryValue* print_backend_settings) { | 368 const base::DictionaryValue* print_backend_settings) { |
369 return new PrintBackendWin; | 369 return new PrintBackendWin; |
370 } | 370 } |
371 | 371 |
372 } // namespace printing | 372 } // namespace printing |
OLD | NEW |