Index: printing/pdf_render_settings.h |
diff --git a/printing/pdf_render_settings.h b/printing/pdf_render_settings.h |
index d9e8f9e7801fe134fa689712a33a3eb4f4c9a9aa..a0c0da93d0cc41bb6edee58932d39fe4469611a6 100644 |
--- a/printing/pdf_render_settings.h |
+++ b/printing/pdf_render_settings.h |
@@ -16,14 +16,22 @@ 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, |
+#endif |
+ }; |
+ |
+ PdfRenderSettings() : dpi(0), autorotate(false), mode(Mode::NORMAL) {} |
+ PdfRenderSettings(gfx::Rect area, int dpi, bool autorotate, Mode mode) |
+ : area(area), dpi(dpi), autorotate(autorotate), mode(mode) {} |
~PdfRenderSettings() {} |
gfx::Rect area; |
int dpi; |
bool autorotate; |
+ Mode mode; |
}; |
} // namespace printing |
@@ -31,19 +39,25 @@ 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.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->dpi) && |
+ ReadParam(m, iter, &r->autorotate) && |
+ ReadParam(m, iter, &mode); |
+ if (ret) |
+ r->mode = static_cast<printing::PdfRenderSettings::Mode>(mode); |
Tom Sepez
2017/01/23 21:14:08
Need to validate that mode is in range here or use
Vitaly Buka (NO REVIEWS)
2017/01/23 22:03:30
Better to use IPC macros
rbpotter
2017/01/24 02:22:01
Done.
I switched the entire structure to use the
|
+ return ret; |
} |
static void Log(const param_type& p, std::string* l) { |
@@ -52,6 +66,8 @@ struct ParamTraits<printing::PdfRenderSettings> { |
LogParam(p.dpi, l); |
l->append(", "); |
LogParam(p.autorotate, l); |
+ l->append(", "); |
+ LogParam(static_cast<uint8_t>(p.mode), l); |
} |
}; |