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 PRINTING_PRINT_SETTINGS_H_ | 5 #ifndef PRINTING_PRINT_SETTINGS_H_ |
6 #define PRINTING_PRINT_SETTINGS_H_ | 6 #define PRINTING_PRINT_SETTINGS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #if defined(USE_CUPS) | 22 #if defined(USE_CUPS) |
23 // Get the color model setting name and value for the |color_mode|. | 23 // Get the color model setting name and value for the |color_mode|. |
24 PRINTING_EXPORT void GetColorModelForMode(int color_mode, | 24 PRINTING_EXPORT void GetColorModelForMode(int color_mode, |
25 std::string* color_setting_name, | 25 std::string* color_setting_name, |
26 std::string* color_value); | 26 std::string* color_value); |
27 #endif | 27 #endif |
28 | 28 |
29 // OS-independent print settings. | 29 // OS-independent print settings. |
30 class PRINTING_EXPORT PrintSettings { | 30 class PRINTING_EXPORT PrintSettings { |
31 public: | 31 public: |
| 32 // Media properties requested by the user. Default instance represents |
| 33 // default media selection. |
| 34 struct RequestedMedia { |
| 35 // Size of the media, in microns. |
| 36 gfx::Size size_microns; |
| 37 // Platform specific id to map it back to the particular media. |
| 38 std::string vendor_id; |
| 39 |
| 40 bool IsDefault() const { |
| 41 return size_microns.IsEmpty() && vendor_id.empty(); |
| 42 } |
| 43 }; |
| 44 |
32 PrintSettings(); | 45 PrintSettings(); |
33 ~PrintSettings(); | 46 ~PrintSettings(); |
34 | 47 |
35 // Reinitialize the settings to the default values. | 48 // Reinitialize the settings to the default values. |
36 void Clear(); | 49 void Clear(); |
37 | 50 |
38 void SetCustomMargins(const PageMargins& requested_margins_in_points); | 51 void SetCustomMargins(const PageMargins& requested_margins_in_points); |
39 void set_margin_type(MarginType margin_type) { margin_type_ = margin_type; } | 52 void set_margin_type(MarginType margin_type) { margin_type_ = margin_type; } |
40 MarginType margin_type() const { return margin_type_; } | 53 MarginType margin_type() const { return margin_type_; } |
41 | 54 |
42 // Updates the orientation and flip the page if needed. | 55 // Updates the orientation and flip the page if needed. |
43 void SetOrientation(bool landscape); | 56 void SetOrientation(bool landscape); |
44 bool landscape() const { return landscape_; } | 57 bool landscape() const { return landscape_; } |
45 | 58 |
| 59 // Updates user requested media. |
| 60 void set_requested_media(const RequestedMedia& media) { |
| 61 requested_media_ = media; |
| 62 } |
| 63 // Media properties requested by the user. Translated into device media by the |
| 64 // platform specific layers. |
| 65 const RequestedMedia& requested_media() const { |
| 66 return requested_media_; |
| 67 } |
| 68 |
46 // Set printer printable area in in device units. | 69 // Set printer printable area in in device units. |
47 // Some platforms already provide flipped area. Set |landscape_needs_flip| | 70 // Some platforms already provide flipped area. Set |landscape_needs_flip| |
48 // to false on those platforms to avoid double flipping. | 71 // to false on those platforms to avoid double flipping. |
49 void SetPrinterPrintableArea(const gfx::Size& physical_size_device_units, | 72 void SetPrinterPrintableArea(const gfx::Size& physical_size_device_units, |
50 const gfx::Rect& printable_area_device_units, | 73 const gfx::Rect& printable_area_device_units, |
51 bool landscape_needs_flip); | 74 bool landscape_needs_flip); |
52 const PageSetup& page_setup_device_units() const { | 75 const PageSetup& page_setup_device_units() const { |
53 return page_setup_device_units_; | 76 return page_setup_device_units_; |
54 } | 77 } |
55 | 78 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 190 |
168 // Number of copies user wants to print. | 191 // Number of copies user wants to print. |
169 int copies_; | 192 int copies_; |
170 | 193 |
171 // Duplex type user wants to use. | 194 // Duplex type user wants to use. |
172 DuplexMode duplex_mode_; | 195 DuplexMode duplex_mode_; |
173 | 196 |
174 // Printer device name as opened by the OS. | 197 // Printer device name as opened by the OS. |
175 base::string16 device_name_; | 198 base::string16 device_name_; |
176 | 199 |
| 200 // Media requested by the user. |
| 201 RequestedMedia requested_media_; |
| 202 |
177 // Page setup in device units. | 203 // Page setup in device units. |
178 PageSetup page_setup_device_units_; | 204 PageSetup page_setup_device_units_; |
179 | 205 |
180 // Printer's device effective dots per inch in both axis. | 206 // Printer's device effective dots per inch in both axis. |
181 int dpi_; | 207 int dpi_; |
182 | 208 |
183 // Is the orientation landscape or portrait. | 209 // Is the orientation landscape or portrait. |
184 bool landscape_; | 210 bool landscape_; |
185 | 211 |
186 // True if this printer supports AlphaBlend. | 212 // True if this printer supports AlphaBlend. |
187 bool supports_alpha_blend_; | 213 bool supports_alpha_blend_; |
188 | 214 |
189 // If margin type is custom, this is what was requested. | 215 // If margin type is custom, this is what was requested. |
190 PageMargins requested_custom_margins_in_points_; | 216 PageMargins requested_custom_margins_in_points_; |
191 }; | 217 }; |
192 | 218 |
193 } // namespace printing | 219 } // namespace printing |
194 | 220 |
195 #endif // PRINTING_PRINT_SETTINGS_H_ | 221 #endif // PRINTING_PRINT_SETTINGS_H_ |
OLD | NEW |