OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ | 5 #ifndef CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ |
6 #define CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ | 6 #define CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/callback_forward.h" | 12 #include "base/callback_forward.h" |
13 #include "base/gtest_prod_util.h" | 13 #include "base/gtest_prod_util.h" |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
16 #include "base/time/time.h" | 16 #include "base/time/time.h" |
17 #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" | 17 #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" |
18 #include "printing/features/features.h" | 18 #include "printing/features/features.h" |
19 | 19 |
20 class PrintPreviewDataService; | |
21 class PrintPreviewHandler; | 20 class PrintPreviewHandler; |
22 struct PrintHostMsg_DidGetPreviewPageCount_Params; | 21 struct PrintHostMsg_DidGetPreviewPageCount_Params; |
23 struct PrintHostMsg_RequestPrintPreview_Params; | 22 struct PrintHostMsg_RequestPrintPreview_Params; |
24 struct PrintHostMsg_SetOptionsFromDocument_Params; | 23 struct PrintHostMsg_SetOptionsFromDocument_Params; |
25 | 24 |
26 namespace base { | 25 namespace base { |
27 class FilePath; | 26 class FilePath; |
28 class RefCountedBytes; | 27 class RefCountedBytes; |
29 } | 28 } |
30 | 29 |
31 namespace gfx { | 30 namespace gfx { |
32 class Rect; | 31 class Rect; |
33 } | 32 } |
34 | 33 |
35 namespace printing { | 34 namespace printing { |
36 struct PageSizeMargins; | 35 struct PageSizeMargins; |
37 } | 36 } |
38 | 37 |
39 class PrintPreviewUI : public ConstrainedWebDialogUI { | 38 class PrintPreviewUI : public ConstrainedWebDialogUI { |
40 public: | 39 public: |
41 explicit PrintPreviewUI(content::WebUI* web_ui); | 40 explicit PrintPreviewUI(content::WebUI* web_ui); |
42 ~PrintPreviewUI() override; | 41 ~PrintPreviewUI() override; |
43 | 42 |
44 // Gets the print preview |data|. |index| is zero-based, and can be | 43 // Gets the print preview |data|. |index| is zero-based, and can be |
45 // |printing::COMPLETE_PREVIEW_DOCUMENT_INDEX| to get the entire preview | 44 // |printing::COMPLETE_PREVIEW_DOCUMENT_INDEX| to get the entire preview |
46 // document. | 45 // document. |
47 void GetPrintPreviewDataForIndex(int index, | 46 void GetPrintPreviewDataForIndex( |
48 scoped_refptr<base::RefCountedBytes>* data); | 47 int index, |
| 48 scoped_refptr<base::RefCountedBytes>* data) const; |
49 | 49 |
50 // Sets the print preview |data|. |index| is zero-based, and can be | 50 // Sets the print preview |data|. |index| is zero-based, and can be |
51 // |printing::COMPLETE_PREVIEW_DOCUMENT_INDEX| to set the entire preview | 51 // |printing::COMPLETE_PREVIEW_DOCUMENT_INDEX| to set the entire preview |
52 // document. | 52 // document. |
53 void SetPrintPreviewDataForIndex(int index, | 53 void SetPrintPreviewDataForIndex(int index, |
54 scoped_refptr<base::RefCountedBytes> data); | 54 scoped_refptr<base::RefCountedBytes> data); |
55 | 55 |
56 // Clear the existing print preview data. | 56 // Clear the existing print preview data. |
57 void ClearAllPreviewData(); | 57 void ClearAllPreviewData(); |
58 | 58 |
59 // Returns the available draft page count. | 59 // Returns the available draft page count. |
60 int GetAvailableDraftPageCount(); | 60 int GetAvailableDraftPageCount() const; |
61 | 61 |
62 // Setters | 62 // Setters |
63 void SetInitiatorTitle(const base::string16& initiator_title); | 63 void SetInitiatorTitle(const base::string16& initiator_title); |
64 | 64 |
65 base::string16 initiator_title() { return initiator_title_; } | 65 const base::string16& initiator_title() const { return initiator_title_; } |
66 | 66 |
67 bool source_is_modifiable() { return source_is_modifiable_; } | 67 bool source_is_modifiable() const { return source_is_modifiable_; } |
68 | 68 |
69 bool source_has_selection() { return source_has_selection_; } | 69 bool source_has_selection() const { return source_has_selection_; } |
70 | 70 |
71 bool print_selection_only() { return print_selection_only_; } | 71 bool print_selection_only() const { return print_selection_only_; } |
72 | 72 |
73 // Set initial settings for PrintPreviewUI. | 73 // Set initial settings for PrintPreviewUI. |
74 static void SetInitialParams( | 74 static void SetInitialParams( |
75 content::WebContents* print_preview_dialog, | 75 content::WebContents* print_preview_dialog, |
76 const PrintHostMsg_RequestPrintPreview_Params& params); | 76 const PrintHostMsg_RequestPrintPreview_Params& params); |
77 | 77 |
78 // Determines whether to cancel a print preview request based on | 78 // Determines whether to cancel a print preview request based on |
79 // |preview_ui_id| and |request_id|. | 79 // |preview_ui_id| and |request_id|. |
80 // Can be called from any thread. | 80 // Can be called from any thread. |
81 static void GetCurrentPrintPreviewStatus(int32_t preview_ui_id, | 81 static void GetCurrentPrintPreviewStatus(int32_t preview_ui_id, |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 // the printing without having to click a button on the print preview dialog. | 155 // the printing without having to click a button on the print preview dialog. |
156 void SetSelectedFileForTesting(const base::FilePath& path); | 156 void SetSelectedFileForTesting(const base::FilePath& path); |
157 | 157 |
158 // Passes |closure| to PrintPreviewHandler::SetPdfSavedClosureForTesting(). | 158 // Passes |closure| to PrintPreviewHandler::SetPdfSavedClosureForTesting(). |
159 void SetPdfSavedClosureForTesting(const base::Closure& closure); | 159 void SetPdfSavedClosureForTesting(const base::Closure& closure); |
160 | 160 |
161 private: | 161 private: |
162 FRIEND_TEST_ALL_PREFIXES(PrintPreviewDialogControllerUnitTest, | 162 FRIEND_TEST_ALL_PREFIXES(PrintPreviewDialogControllerUnitTest, |
163 TitleAfterReload); | 163 TitleAfterReload); |
164 | 164 |
165 // Returns the Singleton instance of the PrintPreviewDataService. | |
166 PrintPreviewDataService* print_preview_data_service(); | |
167 | |
168 base::TimeTicks initial_preview_start_time_; | 165 base::TimeTicks initial_preview_start_time_; |
169 | 166 |
170 // The unique ID for this class instance. Stored here to avoid calling | 167 // The unique ID for this class instance. Stored here to avoid calling |
171 // GetIDForPrintPreviewUI() everywhere. | 168 // GetIDForPrintPreviewUI() everywhere. |
172 const int32_t id_; | 169 const int32_t id_; |
173 | 170 |
174 // Weak pointer to the WebUI handler. | 171 // Weak pointer to the WebUI handler. |
175 PrintPreviewHandler* handler_; | 172 PrintPreviewHandler* handler_; |
176 | 173 |
177 // Indicates whether the source document can be modified. | 174 // Indicates whether the source document can be modified. |
178 bool source_is_modifiable_; | 175 bool source_is_modifiable_; |
179 | 176 |
180 // Indicates whether the source document has selection. | 177 // Indicates whether the source document has selection. |
181 bool source_has_selection_; | 178 bool source_has_selection_; |
182 | 179 |
183 // Indicates whether only the selection should be printed. | 180 // Indicates whether only the selection should be printed. |
184 bool print_selection_only_; | 181 bool print_selection_only_; |
185 | 182 |
186 // Store the initiator title, used for populating the print preview dialog | 183 // Store the initiator title, used for populating the print preview dialog |
187 // title. | 184 // title. |
188 base::string16 initiator_title_; | 185 base::string16 initiator_title_; |
189 | 186 |
190 // Keeps track of whether OnClosePrintPreviewDialog() has been called or not. | 187 // Keeps track of whether OnClosePrintPreviewDialog() has been called or not. |
191 bool dialog_closed_; | 188 bool dialog_closed_; |
192 | 189 |
193 DISALLOW_COPY_AND_ASSIGN(PrintPreviewUI); | 190 DISALLOW_COPY_AND_ASSIGN(PrintPreviewUI); |
194 }; | 191 }; |
195 | 192 |
196 #endif // CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ | 193 #endif // CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_PRINT_PREVIEW_UI_H_ |
OLD | NEW |