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

Side by Side Diff: printing/printing_context_system_dialog_win.cc

Issue 1216013005: Fixed all overloaded virtual methods on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Finish fixes. Created 5 years, 5 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
« no previous file with comments | « printing/printing_context_system_dialog_win.h ('k') | printing/printing_context_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_system_dialog_win.h" 5 #include "printing/printing_context_system_dialog_win.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "printing/backend/win_helper.h" 9 #include "printing/backend/win_helper.h"
10 #include "printing/print_settings_initializer_win.h" 10 #include "printing/print_settings_initializer_win.h"
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 // get the wrong Z-order which will make the print dialog appear behind the 89 // get the wrong Z-order which will make the print dialog appear behind the
90 // browser frame (but still being modal) so neither the browser frame nor 90 // browser frame (but still being modal) so neither the browser frame nor
91 // the print dialog will get any input. See http://crbug.com/342697 91 // the print dialog will get any input. See http://crbug.com/342697
92 // http://crbug.com/180997 for details. 92 // http://crbug.com/180997 for details.
93 base::MessageLoop::ScopedNestableTaskAllower allow( 93 base::MessageLoop::ScopedNestableTaskAllower allow(
94 base::MessageLoop::current()); 94 base::MessageLoop::current());
95 95
96 return PrintDlgEx(options); 96 return PrintDlgEx(options);
97 } 97 }
98 98
99 bool PrintingContextSytemDialogWin::InitializeSettings( 99 bool PrintingContextSytemDialogWin::InitializeSettingsWithRanges(
100 const DEVMODE& dev_mode, 100 const DEVMODE& dev_mode,
101 const std::wstring& new_device_name, 101 const std::wstring& new_device_name,
102 const PRINTPAGERANGE* ranges, 102 const PRINTPAGERANGE* ranges,
103 int number_ranges, 103 int number_ranges,
104 bool selection_only) { 104 bool selection_only) {
105 DCHECK(GetDeviceCaps(context(), CLIPCAPS)); 105 DCHECK(GetDeviceCaps(context(), CLIPCAPS));
106 DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_STRETCHDIB); 106 DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_STRETCHDIB);
107 DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_BITMAP64); 107 DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_BITMAP64);
108 // Some printers don't advertise these. 108 // Some printers don't advertise these.
109 // DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_SCALING); 109 // DCHECK(GetDeviceCaps(context(), RASTERCAPS) & RC_SCALING);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 PRINTPAGERANGE* page_ranges = NULL; 174 PRINTPAGERANGE* page_ranges = NULL;
175 DWORD num_page_ranges = 0; 175 DWORD num_page_ranges = 0;
176 bool print_selection_only = false; 176 bool print_selection_only = false;
177 if (dialog_options.Flags & PD_PAGENUMS) { 177 if (dialog_options.Flags & PD_PAGENUMS) {
178 page_ranges = dialog_options.lpPageRanges; 178 page_ranges = dialog_options.lpPageRanges;
179 num_page_ranges = dialog_options.nPageRanges; 179 num_page_ranges = dialog_options.nPageRanges;
180 } 180 }
181 if (dialog_options.Flags & PD_SELECTION) { 181 if (dialog_options.Flags & PD_SELECTION) {
182 print_selection_only = true; 182 print_selection_only = true;
183 } 183 }
184 success = InitializeSettings(*dev_mode, 184 success =
185 device_name, 185 InitializeSettingsWithRanges(*dev_mode, device_name, page_ranges,
186 page_ranges, 186 num_page_ranges, print_selection_only);
187 num_page_ranges,
188 print_selection_only);
189 } 187 }
190 188
191 if (!success && dialog_options.hDC) { 189 if (!success && dialog_options.hDC) {
192 DeleteDC(dialog_options.hDC); 190 DeleteDC(dialog_options.hDC);
193 set_context(NULL); 191 set_context(NULL);
194 } 192 }
195 193
196 if (dev_mode) { 194 if (dev_mode) {
197 GlobalUnlock(dialog_options.hDevMode); 195 GlobalUnlock(dialog_options.hDevMode);
198 } 196 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 device_name = reinterpret_cast<const wchar_t*>( 238 device_name = reinterpret_cast<const wchar_t*>(
241 reinterpret_cast<const wchar_t*>(dev_names) + 239 reinterpret_cast<const wchar_t*>(dev_names) +
242 dev_names->wDeviceOffset); 240 dev_names->wDeviceOffset);
243 GlobalUnlock(dialog_options.hDevNames); 241 GlobalUnlock(dialog_options.hDevNames);
244 } 242 }
245 } 243 }
246 244
247 bool success = false; 245 bool success = false;
248 if (dev_mode && !device_name.empty()) { 246 if (dev_mode && !device_name.empty()) {
249 set_context(dialog_options.hDC); 247 set_context(dialog_options.hDC);
250 success = InitializeSettings(*dev_mode, device_name, NULL, 0, false); 248 success =
249 InitializeSettingsWithRanges(*dev_mode, device_name, NULL, 0, false);
251 } 250 }
252 251
253 if (!success && dialog_options.hDC) { 252 if (!success && dialog_options.hDC) {
254 DeleteDC(dialog_options.hDC); 253 DeleteDC(dialog_options.hDC);
255 set_context(NULL); 254 set_context(NULL);
256 } 255 }
257 256
258 if (dev_mode) { 257 if (dev_mode) {
259 GlobalUnlock(dialog_options.hDevMode); 258 GlobalUnlock(dialog_options.hDevMode);
260 } 259 }
261 260
262 if (dialog_options.hDevMode != NULL) 261 if (dialog_options.hDevMode != NULL)
263 GlobalFree(dialog_options.hDevMode); 262 GlobalFree(dialog_options.hDevMode);
264 if (dialog_options.hDevNames != NULL) 263 if (dialog_options.hDevNames != NULL)
265 GlobalFree(dialog_options.hDevNames); 264 GlobalFree(dialog_options.hDevNames);
266 265
267 return context() ? OK : FAILED; 266 return context() ? OK : FAILED;
268 } 267 }
269 268
270 } // namespace printing 269 } // namespace printing
OLDNEW
« no previous file with comments | « printing/printing_context_system_dialog_win.h ('k') | printing/printing_context_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698