blob: 22784b79ed520b47a30f0c04ff5081207ae64651 [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"
11#include "ui/gfx/rect.h"
12
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
19typedef Tuple3<gfx::Rect, int, bool> PdfRenderSettingsBase;
20
21struct 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
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