OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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.h" | 5 #include "printing/printing_context.h" |
6 | 6 |
7 #include <winspool.h> | 7 #include <winspool.h> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/i18n/file_util_icu.h" | 10 #include "base/i18n/file_util_icu.h" |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 private: | 115 private: |
116 PrintingContext& owner_; | 116 PrintingContext& owner_; |
117 HWND owner_hwnd_; | 117 HWND owner_hwnd_; |
118 IPrintDialogServices* services_; | 118 IPrintDialogServices* services_; |
119 | 119 |
120 DISALLOW_COPY_AND_ASSIGN(CallbackHandler); | 120 DISALLOW_COPY_AND_ASSIGN(CallbackHandler); |
121 }; | 121 }; |
122 | 122 |
123 PrintingContext::PrintingContext() | 123 PrintingContext::PrintingContext() |
124 : context_(NULL), | 124 : context_(NULL), |
125 #ifndef NDEBUG | |
126 page_number_(-1), | |
127 #endif | |
128 dialog_box_(NULL), | 125 dialog_box_(NULL), |
129 dialog_box_dismissed_(false), | 126 dialog_box_dismissed_(false), |
130 in_print_job_(false), | 127 in_print_job_(false), |
131 abort_printing_(false), | 128 abort_printing_(false), |
132 print_dialog_func_(&PrintDlgEx) { | 129 print_dialog_func_(&PrintDlgEx) { |
133 } | 130 } |
134 | 131 |
135 PrintingContext::~PrintingContext() { | 132 PrintingContext::~PrintingContext() { |
136 ResetSettings(); | 133 ResetSettings(); |
137 } | 134 } |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 return status; | 230 return status; |
234 } | 231 } |
235 | 232 |
236 void PrintingContext::ResetSettings() { | 233 void PrintingContext::ResetSettings() { |
237 if (context_ != NULL) { | 234 if (context_ != NULL) { |
238 DeleteDC(context_); | 235 DeleteDC(context_); |
239 context_ = NULL; | 236 context_ = NULL; |
240 } | 237 } |
241 settings_.Clear(); | 238 settings_.Clear(); |
242 in_print_job_ = false; | 239 in_print_job_ = false; |
243 | |
244 #ifndef NDEBUG | |
245 page_number_ = -1; | |
246 #endif | |
247 } | 240 } |
248 | 241 |
249 PrintingContext::Result PrintingContext::NewDocument( | 242 PrintingContext::Result PrintingContext::NewDocument( |
250 const string16& document_name) { | 243 const string16& document_name) { |
251 DCHECK(!in_print_job_); | 244 DCHECK(!in_print_job_); |
252 if (!context_) | 245 if (!context_) |
253 return OnError(); | 246 return OnError(); |
254 | 247 |
255 // Set the flag used by the AbortPrintJob dialog procedure. | 248 // Set the flag used by the AbortPrintJob dialog procedure. |
256 abort_printing_ = false; | 249 abort_printing_ = false; |
(...skipping 28 matching lines...) Expand all Loading... |
285 // No message loop running in unit tests. | 278 // No message loop running in unit tests. |
286 DCHECK(!MessageLoop::current() ? true : | 279 DCHECK(!MessageLoop::current() ? true : |
287 !MessageLoop::current()->NestableTasksAllowed()); | 280 !MessageLoop::current()->NestableTasksAllowed()); |
288 | 281 |
289 // Begin a print job by calling the StartDoc function. | 282 // Begin a print job by calling the StartDoc function. |
290 // NOTE: StartDoc() starts a message loop. That causes a lot of problems with | 283 // NOTE: StartDoc() starts a message loop. That causes a lot of problems with |
291 // IPC. Make sure recursive task processing is disabled. | 284 // IPC. Make sure recursive task processing is disabled. |
292 if (StartDoc(context_, &di) <= 0) | 285 if (StartDoc(context_, &di) <= 0) |
293 return OnError(); | 286 return OnError(); |
294 | 287 |
295 #ifndef NDEBUG | |
296 page_number_ = 0; | |
297 #endif | |
298 return OK; | 288 return OK; |
299 } | 289 } |
300 | 290 |
301 PrintingContext::Result PrintingContext::NewPage() { | 291 PrintingContext::Result PrintingContext::NewPage() { |
302 if (abort_printing_) | 292 if (abort_printing_) |
303 return CANCEL; | 293 return CANCEL; |
304 | 294 |
305 DCHECK(context_); | 295 DCHECK(context_); |
306 DCHECK(in_print_job_); | 296 DCHECK(in_print_job_); |
307 | 297 |
308 // Inform the driver that the application is about to begin sending data. | 298 // Inform the driver that the application is about to begin sending data. |
309 if (StartPage(context_) <= 0) | 299 if (StartPage(context_) <= 0) |
310 return OnError(); | 300 return OnError(); |
311 | 301 |
312 #ifndef NDEBUG | |
313 ++page_number_; | |
314 #endif | |
315 | |
316 return OK; | 302 return OK; |
317 } | 303 } |
318 | 304 |
319 PrintingContext::Result PrintingContext::PageDone() { | 305 PrintingContext::Result PrintingContext::PageDone() { |
320 if (abort_printing_) | 306 if (abort_printing_) |
321 return CANCEL; | 307 return CANCEL; |
322 DCHECK(in_print_job_); | 308 DCHECK(in_print_job_); |
323 | 309 |
324 if (EndPage(context_) <= 0) | 310 if (EndPage(context_) <= 0) |
325 return OnError(); | 311 return OnError(); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 if (buf_size) { | 599 if (buf_size) { |
614 buffer->reset(new uint8[buf_size]); | 600 buffer->reset(new uint8[buf_size]); |
615 memset(buffer->get(), 0, buf_size); | 601 memset(buffer->get(), 0, buf_size); |
616 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) { | 602 if (!GetPrinter(printer, level, buffer->get(), buf_size, &buf_size)) { |
617 buffer->reset(); | 603 buffer->reset(); |
618 } | 604 } |
619 } | 605 } |
620 } | 606 } |
621 | 607 |
622 } // namespace printing | 608 } // namespace printing |
OLD | NEW |