Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Unified Diff: printing/pdf_render_settings.h

Issue 2633573002: Add Postscript Printing (Closed)
Patch Set: Fix Linux compile error Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
};

Powered by Google App Engine
This is Rietveld 408576698