Commit 9c50a0c5 authored by Jay Civelli's avatar Jay Civelli Committed by Commit Bot

Moving PdfRenderSettings to its own mojom.

Moving PdfRenderSettings from pdf_to_pwg_raster_converter.mojom
to its own mojom/typemap/traits files as it will soon be used by other
interfaces.

Bug: 766451
Change-Id: Ib50ceeefa62a56c91048d6a346323b4cad601359
Reviewed-on: https://chromium-review.googlesource.com/811448Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522181}
parent 47a0fc2e
...@@ -6,6 +6,7 @@ import("//mojo/public/tools/bindings/mojom.gni") ...@@ -6,6 +6,7 @@ import("//mojo/public/tools/bindings/mojom.gni")
mojom("interfaces") { mojom("interfaces") {
sources = [ sources = [
"pdf_render_settings.mojom",
"pdf_to_pwg_raster_converter.mojom", "pdf_to_pwg_raster_converter.mojom",
] ]
......
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module printing.mojom;
import "ui/gfx/geometry/mojo/geometry.mojom";
struct PDFRenderSettings {
enum Mode {
NORMAL = 0,
// Modes below are Windows only.
TEXTONLY,
GDI_TEXT,
POSTSCRIPT_LEVEL2,
POSTSCRIPT_LEVEL3
};
gfx.mojom.Rect area;
gfx.mojom.Point offsets;
int32 dpi;
bool autorotate;
Mode mode;
};
mojom = "//chrome/common/printing/pdf_render_settings.mojom"
public_headers = [
"//printing/pdf_render_settings.h",
"//ui/gfx/geometry/rect.h",
]
traits_headers =
[ "//chrome/common/printing/pdf_render_settings_struct_traits.h" ]
sources = [
"//chrome/common/printing/pdf_render_settings_struct_traits.cc",
]
public_deps = [
"//ui/gfx/geometry",
]
type_mappings = [
"printing.mojom.PDFRenderSettings=printing::PdfRenderSettings",
"printing.mojom.PDFRenderSettings::Mode=printing::PdfRenderSettings::Mode",
]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/common/printing/pdf_render_settings_struct_traits.h"
#include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
namespace mojo {
// static
bool StructTraits<printing::mojom::PDFRenderSettingsDataView,
printing::PdfRenderSettings>::
Read(printing::mojom::PDFRenderSettingsDataView data,
printing::PdfRenderSettings* out) {
out->dpi = data.dpi();
out->autorotate = data.autorotate();
return data.ReadArea(&out->area) && data.ReadOffsets(&out->offsets) &&
data.ReadMode(&out->mode);
}
} // namespace mojo
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_COMMON_PRINTING_PDF_RENDER_SETTINGS_STRUCT_TRAITS_H_
#define CHROME_COMMON_PRINTING_PDF_RENDER_SETTINGS_STRUCT_TRAITS_H_
#include "build/build_config.h"
#include "chrome/common/printing/pdf_render_settings.mojom.h"
#include "printing/pdf_render_settings.h"
namespace mojo {
template <>
struct EnumTraits<printing::mojom::PDFRenderSettings::Mode,
printing::PdfRenderSettings::Mode> {
static printing::mojom::PDFRenderSettings::Mode ToMojom(
printing::PdfRenderSettings::Mode mode) {
switch (mode) {
case printing::PdfRenderSettings::Mode::NORMAL:
return printing::mojom::PDFRenderSettings::Mode::NORMAL;
#if defined(OS_WIN)
case printing::PdfRenderSettings::Mode::TEXTONLY:
return printing::mojom::PDFRenderSettings::Mode::TEXTONLY;
case printing::PdfRenderSettings::Mode::GDI_TEXT:
return printing::mojom::PDFRenderSettings::Mode::GDI_TEXT;
case printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2:
return printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2;
case printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3:
return printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3;
#endif
}
NOTREACHED() << "Unknown mode " << static_cast<int>(mode);
return printing::mojom::PDFRenderSettings::Mode::NORMAL;
}
static bool FromMojom(printing::mojom::PDFRenderSettings::Mode input,
printing::PdfRenderSettings::Mode* output) {
switch (input) {
case printing::mojom::PDFRenderSettings::Mode::NORMAL:
*output = printing::PdfRenderSettings::Mode::NORMAL;
return true;
#if defined(OS_WIN)
case printing::mojom::PDFRenderSettings::Mode::TEXTONLY:
*output = printing::PdfRenderSettings::Mode::TEXTONLY;
return true;
case printing::mojom::PDFRenderSettings::Mode::GDI_TEXT:
*output = printing::PdfRenderSettings::Mode::GDI_TEXT;
return true;
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2:
*output = printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2;
return true;
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3:
*output = printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3;
return true;
#else
case printing::mojom::PDFRenderSettings::Mode::TEXTONLY:
case printing::mojom::PDFRenderSettings::Mode::GDI_TEXT:
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2:
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3:
NOTREACHED() << "Unsupported mode " << static_cast<int>(input)
<< " on non Windows platform ";
return false;
#endif
}
NOTREACHED() << "Unknown mode " << static_cast<int>(input);
return false;
}
};
template <>
class StructTraits<printing::mojom::PDFRenderSettingsDataView,
printing::PdfRenderSettings> {
public:
static gfx::Rect area(const printing::PdfRenderSettings& settings) {
return settings.area;
}
static gfx::Point offsets(const printing::PdfRenderSettings& settings) {
return settings.offsets;
}
static int32_t dpi(const printing::PdfRenderSettings& settings) {
return settings.dpi;
}
static bool autorotate(const printing::PdfRenderSettings& settings) {
return settings.autorotate;
}
static printing::PdfRenderSettings::Mode mode(
const printing::PdfRenderSettings& settings) {
return settings.mode;
}
static bool Read(printing::mojom::PDFRenderSettingsDataView data,
printing::PdfRenderSettings* out_settings);
};
} // namespace mojo
#endif // CHROME_COMMON_PRINTING_PDF_RENDER_SETTINGS_STRUCT_TRAITS_H_
...@@ -4,28 +4,11 @@ ...@@ -4,28 +4,11 @@
module printing.mojom; module printing.mojom;
import "ui/gfx/geometry/mojo/geometry.mojom"; import "chrome/common/printing/pdf_render_settings.mojom";
const string kPdfToPwgRasterConverterServiceName = const string kPdfToPwgRasterConverterServiceName =
"pdf_to_pwg_raster_converter"; "pdf_to_pwg_raster_converter";
struct PDFRenderSettings {
enum Mode {
NORMAL = 0,
// Modes below are Windows only.
TEXTONLY,
GDI_TEXT,
POSTSCRIPT_LEVEL2,
POSTSCRIPT_LEVEL3
};
gfx.mojom.Rect area;
gfx.mojom.Point offsets;
int32 dpi;
bool autorotate;
Mode mode;
};
struct PWGRasterSettings { struct PWGRasterSettings {
enum TransformType { enum TransformType {
TRANSFORM_NORMAL, TRANSFORM_NORMAL,
......
mojom = "//chrome/common/printing/pdf_to_pwg_raster_converter.mojom" mojom = "//chrome/common/printing/pdf_to_pwg_raster_converter.mojom"
public_headers = [ public_headers = [ "//printing/pwg_raster_settings.h" ]
"//printing/pdf_render_settings.h",
"//printing/pwg_raster_settings.h",
"//ui/gfx/geometry/rect.h",
]
traits_headers = traits_headers =
[ "//chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.h" ] [ "//chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.h" ]
sources = [ sources = [
"//chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.cc", "//chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.cc",
] ]
public_deps = [ public_deps = []
"//ui/gfx/geometry",
]
type_mappings = [ type_mappings = [
"printing.mojom.PDFRenderSettings=printing::PdfRenderSettings",
"printing.mojom.PDFRenderSettings::Mode=printing::PdfRenderSettings::Mode",
"printing.mojom.PWGRasterTransformType=printing::PwgRasterTransformType", "printing.mojom.PWGRasterTransformType=printing::PwgRasterTransformType",
"printing.mojom.PWGRasterSettings=printing::PwgRasterSettings", "printing.mojom.PWGRasterSettings=printing::PwgRasterSettings",
] ]
...@@ -4,22 +4,9 @@ ...@@ -4,22 +4,9 @@
#include "chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.h" #include "chrome/common/printing/pdf_to_pwg_raster_converter_struct_traits.h"
#include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
namespace mojo { namespace mojo {
// static // static
bool StructTraits<printing::mojom::PDFRenderSettingsDataView,
printing::PdfRenderSettings>::
Read(printing::mojom::PDFRenderSettingsDataView data,
printing::PdfRenderSettings* out) {
out->dpi = data.dpi();
out->autorotate = data.autorotate();
return data.ReadArea(&out->area) && data.ReadOffsets(&out->offsets) &&
data.ReadMode(&out->mode);
}
bool StructTraits<printing::mojom::PWGRasterSettingsDataView, bool StructTraits<printing::mojom::PWGRasterSettingsDataView,
printing::PwgRasterSettings>:: printing::PwgRasterSettings>::
Read(printing::mojom::PWGRasterSettingsDataView data, Read(printing::mojom::PWGRasterSettingsDataView data,
......
...@@ -7,93 +7,10 @@ ...@@ -7,93 +7,10 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/common/printing/pdf_to_pwg_raster_converter.mojom.h" #include "chrome/common/printing/pdf_to_pwg_raster_converter.mojom.h"
#include "printing/pdf_render_settings.h"
#include "printing/pwg_raster_settings.h" #include "printing/pwg_raster_settings.h"
namespace mojo { namespace mojo {
template <>
struct EnumTraits<printing::mojom::PDFRenderSettings::Mode,
printing::PdfRenderSettings::Mode> {
static printing::mojom::PDFRenderSettings::Mode ToMojom(
printing::PdfRenderSettings::Mode mode) {
switch (mode) {
case printing::PdfRenderSettings::Mode::NORMAL:
return printing::mojom::PDFRenderSettings::Mode::NORMAL;
#if defined(OS_WIN)
case printing::PdfRenderSettings::Mode::TEXTONLY:
return printing::mojom::PDFRenderSettings::Mode::TEXTONLY;
case printing::PdfRenderSettings::Mode::GDI_TEXT:
return printing::mojom::PDFRenderSettings::Mode::GDI_TEXT;
case printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2:
return printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2;
case printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3:
return printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3;
#endif
}
NOTREACHED() << "Unknown mode " << static_cast<int>(mode);
return printing::mojom::PDFRenderSettings::Mode::NORMAL;
}
static bool FromMojom(printing::mojom::PDFRenderSettings::Mode input,
printing::PdfRenderSettings::Mode* output) {
switch (input) {
case printing::mojom::PDFRenderSettings::Mode::NORMAL:
*output = printing::PdfRenderSettings::Mode::NORMAL;
return true;
#if defined(OS_WIN)
case printing::mojom::PDFRenderSettings::Mode::TEXTONLY:
*output = printing::PdfRenderSettings::Mode::TEXTONLY;
return true;
case printing::mojom::PDFRenderSettings::Mode::GDI_TEXT:
*output = printing::PdfRenderSettings::Mode::GDI_TEXT;
return true;
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2:
*output = printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL2;
return true;
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3:
*output = printing::PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3;
return true;
#else
case printing::mojom::PDFRenderSettings::Mode::TEXTONLY:
case printing::mojom::PDFRenderSettings::Mode::GDI_TEXT:
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL2:
case printing::mojom::PDFRenderSettings::Mode::POSTSCRIPT_LEVEL3:
NOTREACHED() << "Unsupported mode " << static_cast<int>(input)
<< " on non Windows platform ";
return false;
#endif
}
NOTREACHED() << "Unknown mode " << static_cast<int>(input);
return false;
}
};
template <>
class StructTraits<printing::mojom::PDFRenderSettingsDataView,
printing::PdfRenderSettings> {
public:
static gfx::Rect area(const printing::PdfRenderSettings& settings) {
return settings.area;
}
static gfx::Point offsets(const printing::PdfRenderSettings& settings) {
return settings.offsets;
}
static int32_t dpi(const printing::PdfRenderSettings& settings) {
return settings.dpi;
}
static bool autorotate(const printing::PdfRenderSettings& settings) {
return settings.autorotate;
}
static printing::PdfRenderSettings::Mode mode(
const printing::PdfRenderSettings& settings) {
return settings.mode;
}
static bool Read(printing::mojom::PDFRenderSettingsDataView data,
printing::PdfRenderSettings* out_settings);
};
template <> template <>
struct EnumTraits<printing::mojom::PWGRasterSettings::TransformType, struct EnumTraits<printing::mojom::PWGRasterSettings::TransformType,
printing::PwgRasterTransformType> { printing::PwgRasterTransformType> {
......
...@@ -2,4 +2,7 @@ ...@@ -2,4 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
typemaps = [ "//chrome/common/printing/pdf_to_pwg_raster_converter.typemap" ] typemaps = [
"//chrome/common/printing/pdf_render_settings.typemap",
"//chrome/common/printing/pdf_to_pwg_raster_converter.typemap",
]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment