| // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef PRINTING_PDF_RENDER_SETTINGS_H_ | 
 | #define PRINTING_PDF_RENDER_SETTINGS_H_ | 
 |  | 
 | #include "ipc/ipc_message_utils.h" | 
 | #include "ipc/ipc_param_traits.h" | 
 | #include "printing/printing_export.h" | 
 | #include "ui/gfx/geometry/rect.h" | 
 | #include "ui/gfx/ipc/geometry/gfx_param_traits.h" | 
 | #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" | 
 |  | 
 | namespace printing { | 
 |  | 
 | // Defining PDF rendering settings. | 
 | class PdfRenderSettings { | 
 |  public: | 
 |   PdfRenderSettings() {} | 
 |   PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate) | 
 |       : area_(area), dpi_(dpi), autorotate_(autorotate) {} | 
 |   ~PdfRenderSettings() {} | 
 |  | 
 |   const gfx::Rect& area() const { return area_; } | 
 |   int dpi() const { return dpi_; } | 
 |   bool autorotate() const { return autorotate_; } | 
 |  | 
 |   gfx::Rect area_; | 
 |   int dpi_; | 
 |   bool autorotate_; | 
 | }; | 
 |  | 
 | }  // namespace printing | 
 |  | 
 | namespace IPC { | 
 | template <> | 
 | struct ParamTraits<printing::PdfRenderSettings> { | 
 |   typedef printing::PdfRenderSettings param_type; | 
 |   static void Write(base::Pickle* m, const param_type& p) { | 
 |     WriteParam(m, p.area_); | 
 |     WriteParam(m, p.dpi_); | 
 |     WriteParam(m, p.autorotate_); | 
 |   } | 
 |  | 
 |   static bool Read(const base::Pickle* m, | 
 |                    base::PickleIterator* iter, | 
 |                    param_type* r) { | 
 |     return ReadParam(m, iter, &r->area_) && | 
 |         ReadParam(m, iter, &r->dpi_) && | 
 |         ReadParam(m, iter, &r->autorotate_); | 
 |   } | 
 |  | 
 |   static void Log(const param_type& p, std::string* l) { | 
 |     LogParam(p.area_, l); | 
 |     l->append(", "); | 
 |     LogParam(p.dpi_, l); | 
 |     l->append(", "); | 
 |     LogParam(p.autorotate_, l); | 
 |   } | 
 | }; | 
 |  | 
 | }  // namespace IPC | 
 |  | 
 | #endif  // PRINTING_PDF_RENDER_SETTINGS_H_ |