blob: f8b1a656f8bda224bb8abb85fbc3a247aa1c6938 [file] [log] [blame]
[email protected]da00dc12011-10-06 21:39:261// 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
tzik904f19452015-11-18 20:34:558#include "ipc/ipc_message_utils.h"
[email protected]da00dc12011-10-06 21:39:269#include "ipc/ipc_param_traits.h"
10#include "printing/printing_export.h"
tfarina3b0452d2014-12-31 15:20:0911#include "ui/gfx/geometry/rect.h"
tzik904f19452015-11-18 20:34:5512#include "ui/gfx/ipc/gfx_param_traits.h"
markdittmer99d77bf2016-03-31 19:03:2413#include "ui/gfx/ipc/skia/gfx_skia_param_traits.h"
[email protected]da00dc12011-10-06 21:39:2614
15namespace printing {
16
tzik904f19452015-11-18 20:34:5517// Defining PDF rendering settings.
18class PdfRenderSettings {
[email protected]da00dc12011-10-06 21:39:2619 public:
tzik904f19452015-11-18 20:34:5520 PdfRenderSettings() {}
[email protected]da00dc12011-10-06 21:39:2621 PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate)
tzik904f19452015-11-18 20:34:5522 : area_(area), dpi_(dpi), autorotate_(autorotate) {}
[email protected]da00dc12011-10-06 21:39:2623 ~PdfRenderSettings() {}
24
tzik904f19452015-11-18 20:34:5525 const gfx::Rect& area() const { return area_; }
26 int dpi() const { return dpi_; }
27 bool autorotate() const { return autorotate_; }
28
29 gfx::Rect area_;
30 int dpi_;
31 bool autorotate_;
[email protected]da00dc12011-10-06 21:39:2632};
33
34} // namespace printing
35
36namespace IPC {
37template <>
tzik904f19452015-11-18 20:34:5538struct ParamTraits<printing::PdfRenderSettings> {
39 typedef printing::PdfRenderSettings param_type;
rockot502c94f2016-02-03 20:20:1640 static void Write(base::Pickle* m, const param_type& p) {
tzik904f19452015-11-18 20:34:5541 WriteParam(m, p.area_);
42 WriteParam(m, p.dpi_);
43 WriteParam(m, p.autorotate_);
44 }
45
rockot502c94f2016-02-03 20:20:1646 static bool Read(const base::Pickle* m,
47 base::PickleIterator* iter,
tzik904f19452015-11-18 20:34:5548 param_type* r) {
49 return ReadParam(m, iter, &r->area_) &&
50 ReadParam(m, iter, &r->dpi_) &&
51 ReadParam(m, iter, &r->autorotate_);
52 }
53
54 static void Log(const param_type& p, std::string* l) {
55 LogParam(p.area_, l);
56 l->append(", ");
57 LogParam(p.dpi_, l);
58 l->append(", ");
59 LogParam(p.autorotate_, l);
60 }
[email protected]da00dc12011-10-06 21:39:2661};
62
63} // namespace IPC
64
65#endif // PRINTING_PDF_RENDER_SETTINGS_H_