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_