blob: 85bf00e5705e4534341c6ef9294340db9127223d [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
8#include "base/tuple.h"
9#include "ipc/ipc_param_traits.h"
10#include "printing/printing_export.h"
tfarina3b0452d2014-12-31 15:20:0911#include "ui/gfx/geometry/rect.h"
[email protected]da00dc12011-10-06 21:39:2612
13namespace 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
Avi Drissman95c2a1b72014-12-22 18:01:3219typedef Tuple<gfx::Rect, int, bool> PdfRenderSettingsBase;
[email protected]da00dc12011-10-06 21:39:2620
[email protected]76f59582013-11-20 09:07:2221class PdfRenderSettings : public PdfRenderSettingsBase {
[email protected]da00dc12011-10-06 21:39:2622 public:
23 PdfRenderSettings() : PdfRenderSettingsBase() {}
24 PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate)
25 : PdfRenderSettingsBase(area, dpi, autorotate) {}
26 ~PdfRenderSettings() {}
27
Avi Drissman95c2a1b72014-12-22 18:01:3228 const gfx::Rect& area() const { return ::get<0>(*this); }
29 int dpi() const { return ::get<1>(*this); }
30 bool autorotate() const { return ::get<2>(*this); }
[email protected]da00dc12011-10-06 21:39:2631};
32
33} // namespace printing
34
35namespace IPC {
36template <>
37struct SimilarTypeTraits<printing::PdfRenderSettings> {
[email protected]e32b7f5f2011-10-06 21:48:4238 typedef printing::PdfRenderSettingsBase Type;
[email protected]da00dc12011-10-06 21:39:2639};
40
41} // namespace IPC
42
43#endif // PRINTING_PDF_RENDER_SETTINGS_H_
44