From c08dc39850188d96ad81f5800c7a51d2663eeb44 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 24 Jul 2017 08:57:35 -0400 Subject: Remove fx_edit.h This CL moves GetPDFWordString to be a method on CFX_Edit. The FX_EDIT_ISLATINWORD define is moved into fx_edit.h. CFWL_Edit::FX_EDIT_ISLATINWORD is renamed to FxEditIsLatinWord to make less confusing with the define. Change-Id: I47d12d41447b268894a1d0376ac4b2bdb409e2df Reviewed-on: https://pdfium-review.googlesource.com/8531 Commit-Queue: dsinclair Reviewed-by: Tom Sepez --- fpdfsdk/fxedit/fx_edit.h | 23 ----------------------- fpdfsdk/fxedit/fxet_ap.cpp | 36 ------------------------------------ fpdfsdk/fxedit/fxet_edit.cpp | 36 ++++++++++++++++++++++++++++++------ fpdfsdk/fxedit/fxet_edit.h | 9 ++++++++- fpdfsdk/fxedit/fxet_list.h | 2 +- fpdfsdk/pdfwindow/cpwl_appstream.cpp | 7 +++---- fpdfsdk/pdfwindow/cpwl_font_map.h | 1 - fpdfsdk/pdfwindow/cpwl_list_box.h | 1 - 8 files changed, 42 insertions(+), 73 deletions(-) delete mode 100644 fpdfsdk/fxedit/fx_edit.h delete mode 100644 fpdfsdk/fxedit/fxet_ap.cpp (limited to 'fpdfsdk') diff --git a/fpdfsdk/fxedit/fx_edit.h b/fpdfsdk/fxedit/fx_edit.h deleted file mode 100644 index 6c9166709c..0000000000 --- a/fpdfsdk/fxedit/fx_edit.h +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2014 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 FPDFSDK_FXEDIT_FX_EDIT_H_ -#define FPDFSDK_FXEDIT_FX_EDIT_H_ - -#include "core/fxcrt/fx_basic.h" - -class IPVT_FontMap; - -#define FX_EDIT_ISLATINWORD(u) \ - (u == 0x2D || (u <= 0x005A && u >= 0x0041) || \ - (u <= 0x007A && u >= 0x0061) || (u <= 0x02AF && u >= 0x00C0)) - -CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap, - int32_t nFontIndex, - uint16_t Word, - uint16_t SubWord); - -#endif // FPDFSDK_FXEDIT_FX_EDIT_H_ diff --git a/fpdfsdk/fxedit/fxet_ap.cpp b/fpdfsdk/fxedit/fxet_ap.cpp deleted file mode 100644 index 1576efa89a..0000000000 --- a/fpdfsdk/fxedit/fxet_ap.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2014 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 - -#include "core/fpdfapi/font/cpdf_font.h" -#include "core/fpdfapi/parser/fpdf_parser_decode.h" -#include "core/fpdfdoc/cpvt_word.h" -#include "core/fpdfdoc/ipvt_fontmap.h" -#include "fpdfsdk/fxedit/fx_edit.h" -#include "fpdfsdk/fxedit/fxet_edit.h" - -CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap, - int32_t nFontIndex, - uint16_t Word, - uint16_t SubWord) { - CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex); - if (!pPDFFont) - return CFX_ByteString(); - - CFX_ByteString sWord; - if (SubWord > 0) { - Word = SubWord; - } else { - uint32_t dwCharCode = pPDFFont->IsUnicodeCompatible() - ? pPDFFont->CharCodeFromUnicode(Word) - : pFontMap->CharCodeFromUnicode(nFontIndex, Word); - if (dwCharCode > 0) { - pPDFFont->AppendChar(&sWord, dwCharCode); - return sWord; - } - } - pPDFFont->AppendChar(&sWord, Word); - return sWord; -} diff --git a/fpdfsdk/fxedit/fxet_edit.cpp b/fpdfsdk/fxedit/fxet_edit.cpp index 96868d03c1..6c4595408f 100644 --- a/fpdfsdk/fxedit/fxet_edit.cpp +++ b/fpdfsdk/fxedit/fxet_edit.cpp @@ -27,7 +27,6 @@ #include "core/fxge/cfx_pathdata.h" #include "core/fxge/cfx_renderdevice.h" #include "fpdfsdk/cfx_systemhandler.h" -#include "fpdfsdk/fxedit/fx_edit.h" #include "fpdfsdk/pdfwindow/cpwl_edit.h" #include "fpdfsdk/pdfwindow/cpwl_edit_ctrl.h" #include "fpdfsdk/pdfwindow/cpwl_scroll_bar.h" @@ -586,14 +585,15 @@ void CFX_Edit::DrawEdit(CFX_RenderDevice* pDevice, crOldFill = crCurFill; } - sTextBuf << GetPDFWordString(pFontMap, word.nFontIndex, word.Word, - SubWord); + sTextBuf << pEdit->GetPDFWordString(word.nFontIndex, word.Word, + SubWord); } else { DrawTextString( - pDevice, CFX_PointF(word.ptWord.x + ptOffset.x, - word.ptWord.y + ptOffset.y), + pDevice, + CFX_PointF(word.ptWord.x + ptOffset.x, + word.ptWord.y + ptOffset.y), pFontMap->GetPDFFont(word.nFontIndex), fFontSize, pUser2Device, - GetPDFWordString(pFontMap, word.nFontIndex, word.Word, SubWord), + pEdit->GetPDFWordString(word.nFontIndex, word.Word, SubWord), crCurFill, nHorzScale); } oldplace = place; @@ -1937,6 +1937,30 @@ void CFX_Edit::AddEditUndoItem( m_Undo.AddItem(std::move(pEditUndoItem)); } +CFX_ByteString CFX_Edit::GetPDFWordString(int32_t nFontIndex, + uint16_t Word, + uint16_t SubWord) { + IPVT_FontMap* pFontMap = GetFontMap(); + CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex); + if (!pPDFFont) + return CFX_ByteString(); + + CFX_ByteString sWord; + if (SubWord > 0) { + Word = SubWord; + } else { + uint32_t dwCharCode = pPDFFont->IsUnicodeCompatible() + ? pPDFFont->CharCodeFromUnicode(Word) + : pFontMap->CharCodeFromUnicode(nFontIndex, Word); + if (dwCharCode > 0) { + pPDFFont->AppendChar(&sWord, dwCharCode); + return sWord; + } + } + pPDFFont->AppendChar(&sWord, Word); + return sWord; +} + CFX_Edit_LineRectArray::CFX_Edit_LineRectArray() {} CFX_Edit_LineRectArray::~CFX_Edit_LineRectArray() {} diff --git a/fpdfsdk/fxedit/fxet_edit.h b/fpdfsdk/fxedit/fxet_edit.h index bb5246226d..4aaee69f96 100644 --- a/fpdfsdk/fxedit/fxet_edit.h +++ b/fpdfsdk/fxedit/fxet_edit.h @@ -14,7 +14,10 @@ #include "core/fpdfdoc/cpvt_secprops.h" #include "core/fpdfdoc/cpvt_wordprops.h" #include "core/fxcrt/cfx_unowned_ptr.h" -#include "fpdfsdk/fxedit/fx_edit.h" + +#define FX_EDIT_ISLATINWORD(u) \ + (u == 0x2D || (u <= 0x005A && u >= 0x0041) || \ + (u <= 0x007A && u >= 0x0061) || (u <= 0x02AF && u >= 0x00C0)) class CFFL_FormFiller; class CFX_Edit; @@ -388,6 +391,10 @@ class CFX_Edit { int32_t GetTotalLines() const; + CFX_ByteString GetPDFWordString(int32_t nFontIndex, + uint16_t Word, + uint16_t SubWord); + private: friend class CFX_Edit_Iterator; friend class CFXEU_InsertWord; diff --git a/fpdfsdk/fxedit/fxet_list.h b/fpdfsdk/fxedit/fxet_list.h index 6a37d6125a..83b8d9e865 100644 --- a/fpdfsdk/fxedit/fxet_list.h +++ b/fpdfsdk/fxedit/fxet_list.h @@ -13,11 +13,11 @@ #include "core/fxcrt/cfx_unowned_ptr.h" #include "core/fxcrt/fx_coordinates.h" -#include "fpdfsdk/fxedit/fx_edit.h" class CFX_Edit; class CFX_Edit_Iterator; class CPWL_List_Notify; +class IPVT_FontMap; class CPLST_Select { public: diff --git a/fpdfsdk/pdfwindow/cpwl_appstream.cpp b/fpdfsdk/pdfwindow/cpwl_appstream.cpp index 969c521d68..f7ba4c465c 100644 --- a/fpdfsdk/pdfwindow/cpwl_appstream.cpp +++ b/fpdfsdk/pdfwindow/cpwl_appstream.cpp @@ -577,8 +577,7 @@ CFX_ByteString GetEditAppStream(CFX_Edit* pEdit, nCurFontIndex = word.nFontIndex; } - sWords << GetPDFWordString(pEdit->GetFontMap(), nCurFontIndex, - word.Word, SubWord); + sWords << pEdit->GetPDFWordString(nCurFontIndex, word.Word, SubWord); } oldplace = place; @@ -600,8 +599,8 @@ CFX_ByteString GetEditAppStream(CFX_Edit* pEdit, nCurFontIndex = word.nFontIndex; } - sEditStream << GetWordRenderString(GetPDFWordString( - pEdit->GetFontMap(), nCurFontIndex, word.Word, SubWord)); + sEditStream << GetWordRenderString( + pEdit->GetPDFWordString(nCurFontIndex, word.Word, SubWord)); } } } diff --git a/fpdfsdk/pdfwindow/cpwl_font_map.h b/fpdfsdk/pdfwindow/cpwl_font_map.h index de7a944425..e1a3edeb79 100644 --- a/fpdfsdk/pdfwindow/cpwl_font_map.h +++ b/fpdfsdk/pdfwindow/cpwl_font_map.h @@ -13,7 +13,6 @@ #include "core/fpdfdoc/ipvt_fontmap.h" #include "core/fxcrt/fx_codepage.h" #include "core/fxge/fx_font.h" -#include "fpdfsdk/fxedit/fx_edit.h" #include "public/fpdf_sysfontinfo.h" class CPDF_Document; diff --git a/fpdfsdk/pdfwindow/cpwl_list_box.h b/fpdfsdk/pdfwindow/cpwl_list_box.h index 8bc7651ada..f41a6dd87f 100644 --- a/fpdfsdk/pdfwindow/cpwl_list_box.h +++ b/fpdfsdk/pdfwindow/cpwl_list_box.h @@ -10,7 +10,6 @@ #include #include "core/fxcrt/cfx_unowned_ptr.h" -#include "fpdfsdk/fxedit/fx_edit.h" #include "fpdfsdk/pdfwindow/cpwl_wnd.h" class CFX_ListCtrl; -- cgit v1.2.3