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

Side by Side Diff: printing/printing_context_win.cc

Issue 8549031: base::Bind: Convert PrintingContext::PrintSettingsCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Win fix. Created 9 years, 1 month 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
« no previous file with comments | « printing/printing_context_win.h ('k') | printing/printing_context_win_unittest.cc » ('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 (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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 : PrintingContext(app_locale), 206 : PrintingContext(app_locale),
207 context_(NULL), 207 context_(NULL),
208 dialog_box_(NULL), 208 dialog_box_(NULL),
209 print_dialog_func_(&PrintDlgEx) { 209 print_dialog_func_(&PrintDlgEx) {
210 } 210 }
211 211
212 PrintingContextWin::~PrintingContextWin() { 212 PrintingContextWin::~PrintingContextWin() {
213 ReleaseContext(); 213 ReleaseContext();
214 } 214 }
215 215
216 void PrintingContextWin::AskUserForSettings(gfx::NativeView view, 216 void PrintingContextWin::AskUserForSettings(
217 int max_pages, 217 gfx::NativeView view, int max_pages, bool has_selection,
218 bool has_selection, 218 const PrintSettingsCallback& callback) {
219 PrintSettingsCallback* callback) {
220 #if !defined(USE_AURA) 219 #if !defined(USE_AURA)
221 DCHECK(!in_print_job_); 220 DCHECK(!in_print_job_);
222 dialog_box_dismissed_ = false; 221 dialog_box_dismissed_ = false;
223 222
224 HWND window; 223 HWND window;
225 if (!view || !IsWindow(view)) { 224 if (!view || !IsWindow(view)) {
226 // TODO(maruel): bug 1214347 Get the right browser window instead. 225 // TODO(maruel): bug 1214347 Get the right browser window instead.
227 window = GetDesktopWindow(); 226 window = GetDesktopWindow();
228 } else { 227 } else {
229 window = GetAncestor(view, GA_ROOTOWNER); 228 window = GetAncestor(view, GA_ROOTOWNER);
(...skipping 30 matching lines...) Expand all
260 dialog_options.nMinPage = 1; 259 dialog_options.nMinPage = 1;
261 dialog_options.nMaxPage = max_pages; 260 dialog_options.nMaxPage = max_pages;
262 dialog_options.lpPageRanges = ranges; 261 dialog_options.lpPageRanges = ranges;
263 } else { 262 } else {
264 // No need to bother, we don't know how many pages are available. 263 // No need to bother, we don't know how many pages are available.
265 dialog_options.Flags |= PD_NOPAGENUMS; 264 dialog_options.Flags |= PD_NOPAGENUMS;
266 } 265 }
267 266
268 if ((*print_dialog_func_)(&dialog_options) != S_OK) { 267 if ((*print_dialog_func_)(&dialog_options) != S_OK) {
269 ResetSettings(); 268 ResetSettings();
270 callback->Run(FAILED); 269 callback.Run(FAILED);
271 } 270 }
272 271
273 // TODO(maruel): Support PD_PRINTTOFILE. 272 // TODO(maruel): Support PD_PRINTTOFILE.
274 callback->Run(ParseDialogResultEx(dialog_options)); 273 callback.Run(ParseDialogResultEx(dialog_options));
275 delete callback;
276 #endif 274 #endif
277 } 275 }
278 276
279 PrintingContext::Result PrintingContextWin::UseDefaultSettings() { 277 PrintingContext::Result PrintingContextWin::UseDefaultSettings() {
280 DCHECK(!in_print_job_); 278 DCHECK(!in_print_job_);
281 279
282 PRINTDLG dialog_options = { sizeof(PRINTDLG) }; 280 PRINTDLG dialog_options = { sizeof(PRINTDLG) };
283 dialog_options.Flags = PD_RETURNDC | PD_RETURNDEFAULT; 281 dialog_options.Flags = PD_RETURNDC | PD_RETURNDEFAULT;
284 if (PrintDlg(&dialog_options)) 282 if (PrintDlg(&dialog_options))
285 return ParseDialogResult(dialog_options); 283 return ParseDialogResult(dialog_options);
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 if (buf_size) { 804 if (buf_size) {
807 buffer->reset(new uint8[buf_size]); 805 buffer->reset(new uint8[buf_size]);
808 memset(buffer->get(), 0, buf_size); 806 memset(buffer->get(), 0, buf_size);
809 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) { 807 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) {
810 buffer->reset(); 808 buffer->reset();
811 } 809 }
812 } 810 }
813 } 811 }
814 812
815 } // namespace printing 813 } // namespace printing
OLDNEW
« no previous file with comments | « printing/printing_context_win.h ('k') | printing/printing_context_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698