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

Side by Side Diff: trunk/src/printing/printing_context_win.h

Issue 164013002: Revert 230235 "Use BaseShellDialog for print dialog on Windows" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « trunk/src/printing/printing.gyp ('k') | trunk/src/printing/printing_context_win.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 #ifndef PRINTING_PRINTING_CONTEXT_WIN_H_ 5 #ifndef PRINTING_PRINTING_CONTEXT_WIN_H_
6 #define PRINTING_PRINTING_CONTEXT_WIN_H_ 6 #define PRINTING_PRINTING_CONTEXT_WIN_H_
7 7
8 #include <ocidl.h> 8 #include <ocidl.h>
9 #include <commdlg.h> 9 #include <commdlg.h>
10 10
11 #include <string> 11 #include <string>
12 12
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "build/build_config.h" 14 #include "build/build_config.h"
15 #include "printing/printing_context.h" 15 #include "printing/printing_context.h"
16 #include "ui/gfx/native_widget_types.h" 16 #include "ui/gfx/native_widget_types.h"
17 #include "ui/shell_dialogs/print_settings_dialog_win.h"
18 17
19 namespace printing { 18 namespace printing {
20 19
21 class PRINTING_EXPORT PrintingContextWin 20 class PRINTING_EXPORT PrintingContextWin : public PrintingContext {
22 : public PrintingContext,
23 public ui::PrintSettingsDialogWin::Observer {
24 public: 21 public:
25 explicit PrintingContextWin(const std::string& app_locale); 22 explicit PrintingContextWin(const std::string& app_locale);
26 ~PrintingContextWin(); 23 ~PrintingContextWin();
27 24
28 // PrintingContext implementation. 25 // PrintingContext implementation.
29 virtual void AskUserForSettings( 26 virtual void AskUserForSettings(
30 gfx::NativeView parent_view, 27 gfx::NativeView parent_view,
31 int max_pages, 28 int max_pages,
32 bool has_selection, 29 bool has_selection,
33 const PrintSettingsCallback& callback) OVERRIDE; 30 const PrintSettingsCallback& callback) OVERRIDE;
34 virtual Result UseDefaultSettings() OVERRIDE; 31 virtual Result UseDefaultSettings() OVERRIDE;
35 virtual gfx::Size GetPdfPaperSizeDeviceUnits() OVERRIDE; 32 virtual gfx::Size GetPdfPaperSizeDeviceUnits() OVERRIDE;
36 virtual Result UpdatePrinterSettings(bool external_preview) OVERRIDE; 33 virtual Result UpdatePrinterSettings(bool external_preview) OVERRIDE;
37 virtual Result InitWithSettings(const PrintSettings& settings) OVERRIDE; 34 virtual Result InitWithSettings(const PrintSettings& settings) OVERRIDE;
38 virtual Result NewDocument(const base::string16& document_name) OVERRIDE; 35 virtual Result NewDocument(const base::string16& document_name) OVERRIDE;
39 virtual Result NewPage() OVERRIDE; 36 virtual Result NewPage() OVERRIDE;
40 virtual Result PageDone() OVERRIDE; 37 virtual Result PageDone() OVERRIDE;
41 virtual Result DocumentDone() OVERRIDE; 38 virtual Result DocumentDone() OVERRIDE;
42 virtual void Cancel() OVERRIDE; 39 virtual void Cancel() OVERRIDE;
43 virtual void ReleaseContext() OVERRIDE; 40 virtual void ReleaseContext() OVERRIDE;
44 virtual gfx::NativeDrawingContext context() const OVERRIDE; 41 virtual gfx::NativeDrawingContext context() const OVERRIDE;
45 42
46 // PrintSettingsDialogWin::Observer implementation:
47 virtual void PrintSettingsConfirmed(PRINTDLGEX* dialog_options) OVERRIDE;
48 virtual void PrintSettingsCancelled(PRINTDLGEX* dialog_options) OVERRIDE;
49
50 #if defined(UNIT_TEST) || defined(PRINTING_IMPLEMENTATION) 43 #if defined(UNIT_TEST) || defined(PRINTING_IMPLEMENTATION)
51 // Sets a fake PrintDlgEx function pointer in tests. 44 // Sets a fake PrintDlgEx function pointer in tests.
52 void SetPrintDialog(HRESULT (__stdcall *print_dialog_func)(LPPRINTDLGEX)) { 45 void SetPrintDialog(HRESULT (__stdcall *print_dialog_func)(LPPRINTDLGEX)) {
53 print_dialog_func_ = print_dialog_func; 46 print_dialog_func_ = print_dialog_func;
54 } 47 }
55 #endif // defined(UNIT_TEST) 48 #endif // defined(UNIT_TEST)
56 49
57 // Allocates the HDC for a specific DEVMODE. 50 // Allocates the HDC for a specific DEVMODE.
58 static bool AllocateContext(const std::wstring& printer_name, 51 static bool AllocateContext(const std::wstring& printer_name,
59 const DEVMODE* dev_mode, 52 const DEVMODE* dev_mode,
(...skipping 27 matching lines...) Expand all
87 // The selected printer context. 80 // The selected printer context.
88 HDC context_; 81 HDC context_;
89 82
90 // The dialog box for the time it is shown. 83 // The dialog box for the time it is shown.
91 volatile HWND dialog_box_; 84 volatile HWND dialog_box_;
92 85
93 // Function pointer that defaults to PrintDlgEx. It can be changed using 86 // Function pointer that defaults to PrintDlgEx. It can be changed using
94 // SetPrintDialog() in tests. 87 // SetPrintDialog() in tests.
95 HRESULT (__stdcall *print_dialog_func_)(LPPRINTDLGEX); 88 HRESULT (__stdcall *print_dialog_func_)(LPPRINTDLGEX);
96 89
97 // Where to notify when the dialog is closed.
98 PrintSettingsCallback callback_;
99
100 // Wrapper around native print dialog that runs it on a background thread.
101 scoped_refptr<ui::PrintSettingsDialogWin> print_settings_dialog_;
102
103 DISALLOW_COPY_AND_ASSIGN(PrintingContextWin); 90 DISALLOW_COPY_AND_ASSIGN(PrintingContextWin);
104 }; 91 };
105 92
106 } // namespace printing 93 } // namespace printing
107 94
108 #endif // PRINTING_PRINTING_CONTEXT_WIN_H_ 95 #endif // PRINTING_PRINTING_CONTEXT_WIN_H_
OLDNEW
« no previous file with comments | « trunk/src/printing/printing.gyp ('k') | trunk/src/printing/printing_context_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698