[email protected] | 437f9d8 | 2012-02-14 03:58:06 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef PRINTING_PRINT_DIALOG_GTK_INTERFACE_H_ | ||||
6 | #define PRINTING_PRINT_DIALOG_GTK_INTERFACE_H_ | ||||
7 | |||||
[email protected] | 896d161f | 2013-06-11 22:52:24 | [diff] [blame] | 8 | #include "base/strings/string16.h" |
[email protected] | d53002f4 | 2014-01-14 16:08:56 | [diff] [blame] | 9 | #include "printing/printing_context_linux.h" |
[email protected] | e368b67 | 2012-05-24 02:30:52 | [diff] [blame] | 10 | #include "ui/gfx/native_widget_types.h" |
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 11 | |
12 | namespace printing { | ||||
13 | |||||
vitalybuka | 5d129058 | 2014-09-12 09:19:59 | [diff] [blame] | 14 | class MetafilePlayer; |
[email protected] | 1c23b4e8 | 2011-10-15 22:30:48 | [diff] [blame] | 15 | class PrintSettings; |
[email protected] | 7d748990 | 2011-04-11 21:54:06 | [diff] [blame] | 16 | |
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 17 | // An interface for GTK printing dialogs. Classes that live outside of |
18 | // printing/ can implement this interface and get threading requirements | ||||
19 | // correct without exposing those requirements to printing/. | ||||
20 | class PrintDialogGtkInterface { | ||||
21 | public: | ||||
[email protected] | 2ed86fdf | 2011-04-19 20:57:03 | [diff] [blame] | 22 | // Tell the dialog to use the default print setting. |
23 | virtual void UseDefaultSettings() = 0; | ||||
24 | |||||
[email protected] | e5324b5 | 2013-10-29 03:16:37 | [diff] [blame] | 25 | // Updates the dialog to use |settings|. Only used when printing without the |
26 | // system print dialog. E.g. for Print Preview. Returns false on error. | ||||
[email protected] | 4c9054b | 2013-11-04 18:34:29 | [diff] [blame] | 27 | virtual bool UpdateSettings(PrintSettings* settings) = 0; |
[email protected] | 2ed86fdf | 2011-04-19 20:57:03 | [diff] [blame] | 28 | |
29 | // Shows the dialog and handles the response with |callback|. Only used when | ||||
30 | // printing with the native print dialog. | ||||
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 31 | virtual void ShowDialog( |
[email protected] | e368b67 | 2012-05-24 02:30:52 | [diff] [blame] | 32 | gfx::NativeView parent_view, |
[email protected] | 437f9d8 | 2012-02-14 03:58:06 | [diff] [blame] | 33 | bool has_selection, |
Vladislav Kuzkokov | 48ceab2 | 2018-02-14 16:29:28 | [diff] [blame^] | 34 | PrintingContextLinux::PrintSettingsCallback callback) = 0; |
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 35 | |
36 | // Prints the document named |document_name| contained in |metafile|. | ||||
37 | // Called from the print worker thread. Once called, the | ||||
38 | // PrintDialogGtkInterface instance should not be reused. | ||||
vitalybuka | 5d129058 | 2014-09-12 09:19:59 | [diff] [blame] | 39 | virtual void PrintDocument(const MetafilePlayer& metafile, |
[email protected] | b5fa4ee | 2013-10-01 07:19:07 | [diff] [blame] | 40 | const base::string16& document_name) = 0; |
[email protected] | eaa389e | 2011-04-11 04:58:20 | [diff] [blame] | 41 | |
42 | // Same as AddRef/Release, but with different names since | ||||
43 | // PrintDialogGtkInterface does not inherit from RefCounted. | ||||
44 | virtual void AddRefToDialog() = 0; | ||||
45 | virtual void ReleaseDialog() = 0; | ||||
46 | |||||
47 | protected: | ||||
48 | virtual ~PrintDialogGtkInterface() {} | ||||
49 | }; | ||||
50 | |||||
51 | } // namespace printing | ||||
52 | |||||
53 | #endif // PRINTING_PRINT_DIALOG_GTK_INTERFACE_H_ |