Index: printing/pdf_render_settings.h |
diff --git a/printing/pdf_render_settings.h b/printing/pdf_render_settings.h |
index d9e8f9e7801fe134fa689712a33a3eb4f4c9a9aa..445711113820416444c2af612591e0f1ace423d9 100644 |
--- a/printing/pdf_render_settings.h |
+++ b/printing/pdf_render_settings.h |
@@ -8,6 +8,7 @@ |
#include "ipc/ipc_message_utils.h" |
#include "ipc/ipc_param_traits.h" |
#include "printing/printing_export.h" |
+#include "ui/gfx/geometry/point.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" |
@@ -16,14 +17,33 @@ namespace printing { |
// Defining PDF rendering settings. |
struct PdfRenderSettings { |
- PdfRenderSettings() : dpi(0), autorotate(false) {} |
- PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate) |
- : area(area), dpi(dpi), autorotate(autorotate) {} |
+ enum class Mode : uint8_t { |
+ NORMAL = 0, |
+#if defined(OS_WIN) |
+ GDI_TEXT, |
+ POSTSCRIPT_LEVEL2, |
+ POSTSCRIPT_LEVEL3, |
+#endif |
+ }; |
+ |
+ PdfRenderSettings() : dpi(0), autorotate(false), mode(Mode::NORMAL) {} |
+ PdfRenderSettings(gfx::Rect area, |
+ gfx::Point offsets, |
+ int dpi, |
+ bool autorotate, |
+ Mode mode) |
+ : area(area), |
+ offsets(offsets), |
+ dpi(dpi), |
+ autorotate(autorotate), |
+ mode(mode) {} |
~PdfRenderSettings() {} |
gfx::Rect area; |
+ gfx::Point offsets; |
int dpi; |
bool autorotate; |
+ Mode mode; |
}; |
} // namespace printing |
@@ -31,27 +51,37 @@ struct PdfRenderSettings { |
namespace IPC { |
template <> |
struct ParamTraits<printing::PdfRenderSettings> { |
- typedef printing::PdfRenderSettings param_type; |
+ using param_type = printing::PdfRenderSettings; |
static void Write(base::Pickle* m, const param_type& p) { |
WriteParam(m, p.area); |
+ WriteParam(m, p.offsets); |
WriteParam(m, p.dpi); |
WriteParam(m, p.autorotate); |
+ WriteParam(m, static_cast<uint8_t>(p.mode)); |
} |
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); |
+ uint8_t mode = 0; |
+ bool ret = ReadParam(m, iter, &r->area) && |
+ ReadParam(m, iter, &r->offsets) && ReadParam(m, iter, &r->dpi) && |
+ ReadParam(m, iter, &r->autorotate) && ReadParam(m, iter, &mode); |
+ if (ret) |
+ r->mode = static_cast<printing::PdfRenderSettings::Mode>(mode); |
+ return ret; |
} |
static void Log(const param_type& p, std::string* l) { |
LogParam(p.area, l); |
l->append(", "); |
+ LogParam(p.offsets, l); |
+ l->append(", "); |
LogParam(p.dpi, l); |
l->append(", "); |
LogParam(p.autorotate, l); |
+ l->append(", "); |
+ LogParam(static_cast<uint8_t>(p.mode), l); |
} |
}; |