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_
13 #include "printing/printing_context_win.h"
14 #include "ui/gfx/native_widget_types.h"
18 class PRINTING_EXPORT PrintingContextSytemDialogWin
19 : public PrintingContextWin
{
21 explicit PrintingContextSytemDialogWin(Delegate
* delegate
);
22 virtual ~PrintingContextSytemDialogWin();
24 // PrintingContext implementation.
25 virtual void AskUserForSettings(
28 const PrintSettingsCallback
& callback
) override
;
29 virtual void Cancel() override
;
32 friend class MockPrintingContextWin
;
34 virtual HRESULT
ShowPrintDialog(PRINTDLGEX
* options
);
36 // Reads the settings from the selected device context. Updates settings_ and
38 bool InitializeSettings(const DEVMODE
& dev_mode
,
39 const std::wstring
& new_device_name
,
40 const PRINTPAGERANGE
* ranges
,
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_