Split CGdiPrinterDriver into its own file.
Bug: pdfium:1474
Change-Id: I4757c7e4830cb11a65a62866fc0b7b534e9885d1
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/74397
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
diff --git a/core/fxge/BUILD.gn b/core/fxge/BUILD.gn
index ea468dd..c4d262e 100644
--- a/core/fxge/BUILD.gn
+++ b/core/fxge/BUILD.gn
@@ -183,6 +183,8 @@
"win32/cfx_psrenderer.cpp",
"win32/cfx_psrenderer.h",
"win32/cfx_windowsdib.h",
+ "win32/cgdi_printer_driver.cpp",
+ "win32/cgdi_printer_driver.h",
"win32/cps_printer_driver.cpp",
"win32/cps_printer_driver.h",
"win32/cpsoutput.cpp",
@@ -192,7 +194,6 @@
"win32/fx_win32_device.cpp",
"win32/fx_win32_dib.cpp",
"win32/fx_win32_gdipext.cpp",
- "win32/fx_win32_print.cpp",
"win32/win32_int.h",
]
configs -= [ "//build/config/win:lean_and_mean" ]
diff --git a/core/fxge/win32/fx_win32_print.cpp b/core/fxge/win32/cgdi_printer_driver.cpp
similarity index 99%
rename from core/fxge/win32/fx_win32_print.cpp
rename to core/fxge/win32/cgdi_printer_driver.cpp
index 8ed8e2f..3c38698 100644
--- a/core/fxge/win32/fx_win32_print.cpp
+++ b/core/fxge/win32/cgdi_printer_driver.cpp
@@ -4,6 +4,8 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+#include "core/fxge/win32/cgdi_printer_driver.h"
+
#include <windows.h>
#include <algorithm>
@@ -16,7 +18,6 @@
#include "core/fxge/dib/cfx_dibextractor.h"
#include "core/fxge/dib/cfx_dibitmap.h"
#include "core/fxge/text_char_pos.h"
-#include "core/fxge/win32/win32_int.h"
#if defined(PDFIUM_PRINT_TEXT_WITH_GDI)
namespace {
diff --git a/core/fxge/win32/cgdi_printer_driver.h b/core/fxge/win32/cgdi_printer_driver.h
new file mode 100644
index 0000000..d1e2b3a
--- /dev/null
+++ b/core/fxge/win32/cgdi_printer_driver.h
@@ -0,0 +1,58 @@
+// Copyright 2020 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_
+#define CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_
+
+#include <windows.h>
+
+#include <memory>
+
+#include "core/fxge/win32/win32_int.h"
+
+class CGdiPrinterDriver final : public CGdiDeviceDriver {
+ public:
+ explicit CGdiPrinterDriver(HDC hDC);
+ ~CGdiPrinterDriver() override;
+
+ private:
+ // CGdiPrinterDriver:
+ int GetDeviceCaps(int caps_id) const override;
+ bool SetDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
+ uint32_t color,
+ const FX_RECT& src_rect,
+ int left,
+ int top,
+ BlendMode blend_type) override;
+ bool StretchDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
+ uint32_t color,
+ int dest_left,
+ int dest_top,
+ int dest_width,
+ int dest_height,
+ const FX_RECT* pClipRect,
+ const FXDIB_ResampleOptions& options,
+ BlendMode blend_type) override;
+ bool StartDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
+ int bitmap_alpha,
+ uint32_t color,
+ const CFX_Matrix& matrix,
+ const FXDIB_ResampleOptions& options,
+ std::unique_ptr<CFX_ImageRenderer>* handle,
+ BlendMode blend_type) override;
+ bool DrawDeviceText(int nChars,
+ const TextCharPos* pCharPos,
+ CFX_Font* pFont,
+ const CFX_Matrix& mtObject2Device,
+ float font_size,
+ uint32_t color,
+ const CFX_TextRenderOptions& options) override;
+
+ const int m_HorzSize;
+ const int m_VertSize;
+};
+
+#endif // CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_
diff --git a/core/fxge/win32/fx_win32_device.cpp b/core/fxge/win32/fx_win32_device.cpp
index 580a381..8088a4f 100644
--- a/core/fxge/win32/fx_win32_device.cpp
+++ b/core/fxge/win32/fx_win32_device.cpp
@@ -26,6 +26,7 @@
#include "core/fxge/fx_freetype.h"
#include "core/fxge/systemfontinfo_iface.h"
#include "core/fxge/win32/cfx_windowsdib.h"
+#include "core/fxge/win32/cgdi_printer_driver.h"
#include "core/fxge/win32/cps_printer_driver.h"
#include "core/fxge/win32/ctext_only_printer_driver.h"
#include "core/fxge/win32/win32_int.h"
diff --git a/core/fxge/win32/win32_int.h b/core/fxge/win32/win32_int.h
index c2f5b0b..5f32056 100644
--- a/core/fxge/win32/win32_int.h
+++ b/core/fxge/win32/win32_int.h
@@ -177,46 +177,4 @@
const FXDIB_ResampleOptions& options);
};
-class CGdiPrinterDriver final : public CGdiDeviceDriver {
- public:
- explicit CGdiPrinterDriver(HDC hDC);
- ~CGdiPrinterDriver() override;
-
- private:
- // CGdiPrinterDriver:
- int GetDeviceCaps(int caps_id) const override;
- bool SetDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
- uint32_t color,
- const FX_RECT& src_rect,
- int left,
- int top,
- BlendMode blend_type) override;
- bool StretchDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
- uint32_t color,
- int dest_left,
- int dest_top,
- int dest_width,
- int dest_height,
- const FX_RECT* pClipRect,
- const FXDIB_ResampleOptions& options,
- BlendMode blend_type) override;
- bool StartDIBits(const RetainPtr<CFX_DIBBase>& pBitmap,
- int bitmap_alpha,
- uint32_t color,
- const CFX_Matrix& matrix,
- const FXDIB_ResampleOptions& options,
- std::unique_ptr<CFX_ImageRenderer>* handle,
- BlendMode blend_type) override;
- bool DrawDeviceText(int nChars,
- const TextCharPos* pCharPos,
- CFX_Font* pFont,
- const CFX_Matrix& mtObject2Device,
- float font_size,
- uint32_t color,
- const CFX_TextRenderOptions& options) override;
-
- const int m_HorzSize;
- const int m_VertSize;
-};
-
#endif // CORE_FXGE_WIN32_WIN32_INT_H_