1 // Copyright (c) 2011 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. 4 5 #ifndef PRINTING_PDF_RENDER_SETTINGS_H_ 6 #define PRINTING_PDF_RENDER_SETTINGS_H_ 7 8 #include "base/tuple.h" 9 #include "ipc/ipc_param_traits.h" 10 #include "printing/printing_export.h" 11 #include "ui/gfx/rect.h" 12 13 namespace printing { 14 15 // Defining PDF rendering settings here as a Tuple as following: 16 // gfx::Rect - render area 17 // int - render dpi 18 // bool - autorotate pages to fit paper 19 typedef Tuple3<gfx::Rect, int, bool> PdfRenderSettingsBase; 20 21 class PdfRenderSettings : public PdfRenderSettingsBase { 22 public: 23 PdfRenderSettings() : PdfRenderSettingsBase() {} 24 PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate) 25 : PdfRenderSettingsBase(area, dpi, autorotate) {} 26 ~PdfRenderSettings() {} 27 28 const gfx::Rect& area() const { return a; } 29 int dpi() const { return b; } 30 bool autorotate() const { return c; } 31 }; 32 33 } // namespace printing 34 35 namespace IPC { 36 template <> 37 struct SimilarTypeTraits<printing::PdfRenderSettings> { 38 typedef printing::PdfRenderSettingsBase Type; 39 }; 40 41 } // namespace IPC 42 43 #endif // PRINTING_PDF_RENDER_SETTINGS_H_ 44 45