Reland 189a2ed4d209231d517b0e64a722722dead3f17a Fixes HasEventListener check in Exten...
[chromium-blink-merge.git] / printing / printing_context_system_dialog_win.h
blob9f07b0e00916ba65dc3f190add50847c095f2270
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
3 // found in the LICENSE file.
5 #ifndef PRINTING_PRINTING_CONTEXT_SYSTEM_DIALOG_WIN_H_
6 #define PRINTING_PRINTING_CONTEXT_SYSTEM_DIALOG_WIN_H_
8 #include <ocidl.h>
9 #include <commdlg.h>
11 #include <string>
13 #include "printing/printing_context_win.h"
14 #include "ui/gfx/native_widget_types.h"
16 namespace printing {
18 class PRINTING_EXPORT PrintingContextSytemDialogWin
19 : public PrintingContextWin {
20 public:
21 explicit PrintingContextSytemDialogWin(Delegate* delegate);
22 virtual ~PrintingContextSytemDialogWin();
24 // PrintingContext implementation.
25 virtual void AskUserForSettings(
26 int max_pages,
27 bool has_selection,
28 const PrintSettingsCallback& callback) OVERRIDE;
29 virtual void Cancel() OVERRIDE;
31 private:
32 friend class MockPrintingContextWin;
34 virtual HRESULT ShowPrintDialog(PRINTDLGEX* options);
36 // Reads the settings from the selected device context. Updates settings_ and
37 // its margins.
38 bool InitializeSettings(const DEVMODE& dev_mode,
39 const std::wstring& new_device_name,
40 const PRINTPAGERANGE* ranges,
41 int number_ranges,
42 bool selection_only);
44 // Parses the result of a PRINTDLGEX result.
45 Result ParseDialogResultEx(const PRINTDLGEX& dialog_options);
46 Result ParseDialogResult(const PRINTDLG& dialog_options);
48 // The dialog box for the time it is shown.
49 volatile HWND dialog_box_;
51 DISALLOW_COPY_AND_ASSIGN(PrintingContextSytemDialogWin);
54 } // namespace printing
56 #endif // PRINTING_PRINTING_CONTEXT_SYSTEM_DIALOG_WIN_H_