diff options
Diffstat (limited to 'core/fpdfdoc')
-rw-r--r-- | core/fpdfdoc/cpdf_variabletext.cpp | 30 | ||||
-rw-r--r-- | core/fpdfdoc/cpdf_variabletext.h | 3 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_section.h | 2 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_sectioninfo.cpp | 4 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_sectioninfo.h | 2 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_word.h | 2 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_wordinfo.cpp | 9 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_wordinfo.h | 7 | ||||
-rw-r--r-- | core/fpdfdoc/cpvt_wordprops.h | 58 | ||||
-rw-r--r-- | core/fpdfdoc/csection.cpp | 1 | ||||
-rw-r--r-- | core/fpdfdoc/csection.h | 2 | ||||
-rw-r--r-- | core/fpdfdoc/ctypeset.cpp | 19 |
12 files changed, 9 insertions, 130 deletions
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp index e22e954f12..8e5a74e171 100644 --- a/core/fpdfdoc/cpdf_variabletext.cpp +++ b/core/fpdfdoc/cpdf_variabletext.cpp @@ -188,27 +188,11 @@ bool CPDF_VariableText::Iterator::GetWord(CPVT_Word& word) const { pWord->fWordY + pSection->m_SecInfo.rcSection.top)); word.fAscent = m_pVT->GetWordAscent(*pWord); word.fDescent = m_pVT->GetWordDescent(*pWord); - if (pWord->pWordProps) - word.WordProps = *pWord->pWordProps; word.nFontIndex = m_pVT->GetWordFontIndex(*pWord); word.fFontSize = m_pVT->GetWordFontSize(); return true; } -bool CPDF_VariableText::Iterator::SetWord(const CPVT_Word& word) { - if (!pdfium::IndexInBounds(m_pVT->m_SectionArray, m_CurPos.nSecIndex)) - return false; - - CSection* pSection = m_pVT->m_SectionArray[m_CurPos.nSecIndex].get(); - if (!pdfium::IndexInBounds(pSection->m_WordArray, m_CurPos.nWordIndex)) - return false; - - CPVT_WordInfo* pWord = pSection->m_WordArray[m_CurPos.nWordIndex].get(); - if (pWord->pWordProps) - *pWord->pWordProps = word.WordProps; - return true; -} - bool CPDF_VariableText::Iterator::GetLine(CPVT_Line& line) const { ASSERT(m_pVT); line.lineplace = CPVT_WordPlace(m_CurPos.nSecIndex, m_CurPos.nLineIndex, -1); @@ -237,18 +221,6 @@ bool CPDF_VariableText::Iterator::GetSection(CPVT_Section& section) const { CSection* pSection = m_pVT->m_SectionArray[m_CurPos.nSecIndex].get(); section.rcSection = m_pVT->InToOut(pSection->m_SecInfo.rcSection); - if (pSection->m_SecInfo.pWordProps) - section.WordProps = *pSection->m_SecInfo.pWordProps; - return true; -} - -bool CPDF_VariableText::Iterator::SetSection(const CPVT_Section& section) { - if (!pdfium::IndexInBounds(m_pVT->m_SectionArray, m_CurPos.nSecIndex)) - return false; - - CSection* pSection = m_pVT->m_SectionArray[m_CurPos.nSecIndex].get(); - if (pSection->m_SecInfo.pWordProps) - *pSection->m_SecInfo.pWordProps = section.WordProps; return true; } @@ -310,7 +282,7 @@ CPVT_WordPlace CPDF_VariableText::InsertWord(const CPVT_WordPlace& place, int32_t nFontIndex = GetSubWord() > 0 ? GetDefaultFontIndex() : GetWordFontIndex(word, charset, GetDefaultFontIndex()); - return AddWord(newplace, CPVT_WordInfo(word, charset, nFontIndex, nullptr)); + return AddWord(newplace, CPVT_WordInfo(word, charset, nFontIndex)); } CPVT_WordPlace CPDF_VariableText::InsertSection(const CPVT_WordPlace& place) { diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h index f714102223..ee68f023fa 100644 --- a/core/fpdfdoc/cpdf_variabletext.h +++ b/core/fpdfdoc/cpdf_variabletext.h @@ -27,7 +27,6 @@ struct CPVT_Section; struct CPVT_SectionInfo; struct CPVT_WordInfo; -struct CPVT_WordProps; #define VARIABLETEXT_HALF 0.5f @@ -46,11 +45,9 @@ class CPDF_VariableText { bool PrevLine(); bool NextSection(); bool PrevSection(); - bool SetWord(const CPVT_Word& word); bool GetWord(CPVT_Word& word) const; bool GetLine(CPVT_Line& line) const; bool GetSection(CPVT_Section& section) const; - bool SetSection(const CPVT_Section& section); void SetAt(int32_t nWordIndex); void SetAt(const CPVT_WordPlace& place); const CPVT_WordPlace& GetAt() const { return m_CurPos; } diff --git a/core/fpdfdoc/cpvt_section.h b/core/fpdfdoc/cpvt_section.h index ce8928cee2..6b2ae075bf 100644 --- a/core/fpdfdoc/cpvt_section.h +++ b/core/fpdfdoc/cpvt_section.h @@ -8,13 +8,11 @@ #define CORE_FPDFDOC_CPVT_SECTION_H_ #include "core/fpdfdoc/cpvt_wordplace.h" -#include "core/fpdfdoc/cpvt_wordprops.h" #include "core/fxcrt/fx_coordinates.h" struct CPVT_Section { CPVT_WordPlace secplace; CFX_FloatRect rcSection; - CPVT_WordProps WordProps; }; #endif // CORE_FPDFDOC_CPVT_SECTION_H_ diff --git a/core/fpdfdoc/cpvt_sectioninfo.cpp b/core/fpdfdoc/cpvt_sectioninfo.cpp index 96ce37da8b..a23d3e45da 100644 --- a/core/fpdfdoc/cpvt_sectioninfo.cpp +++ b/core/fpdfdoc/cpvt_sectioninfo.cpp @@ -21,8 +21,4 @@ void CPVT_SectionInfo::operator=(const CPVT_SectionInfo& other) { rcSection = other.rcSection; nTotalLine = other.nTotalLine; - if (other.pWordProps) - pWordProps = pdfium::MakeUnique<CPVT_WordProps>(*other.pWordProps); - else - pWordProps.reset(); } diff --git a/core/fpdfdoc/cpvt_sectioninfo.h b/core/fpdfdoc/cpvt_sectioninfo.h index 7ebe06cc81..9483a856a1 100644 --- a/core/fpdfdoc/cpvt_sectioninfo.h +++ b/core/fpdfdoc/cpvt_sectioninfo.h @@ -10,7 +10,6 @@ #include <memory> #include "core/fpdfdoc/cpvt_floatrect.h" -#include "core/fpdfdoc/cpvt_wordprops.h" struct CPVT_SectionInfo { CPVT_SectionInfo(); @@ -21,7 +20,6 @@ struct CPVT_SectionInfo { CPVT_FloatRect rcSection; int32_t nTotalLine; - std::unique_ptr<CPVT_WordProps> pWordProps; }; #endif // CORE_FPDFDOC_CPVT_SECTIONINFO_H_ diff --git a/core/fpdfdoc/cpvt_word.h b/core/fpdfdoc/cpvt_word.h index 28e192467b..ad0ba744cc 100644 --- a/core/fpdfdoc/cpvt_word.h +++ b/core/fpdfdoc/cpvt_word.h @@ -8,7 +8,6 @@ #define CORE_FPDFDOC_CPVT_WORD_H_ #include "core/fpdfdoc/cpvt_wordplace.h" -#include "core/fpdfdoc/cpvt_wordprops.h" #include "core/fxcrt/fx_system.h" class CPVT_Word { @@ -24,7 +23,6 @@ class CPVT_Word { float fWidth; int32_t nFontIndex; float fFontSize; - CPVT_WordProps WordProps; }; inline CPVT_Word::CPVT_Word() diff --git a/core/fpdfdoc/cpvt_wordinfo.cpp b/core/fpdfdoc/cpvt_wordinfo.cpp index 36859c2309..24ad4b8965 100644 --- a/core/fpdfdoc/cpvt_wordinfo.cpp +++ b/core/fpdfdoc/cpvt_wordinfo.cpp @@ -16,10 +16,7 @@ CPVT_WordInfo::CPVT_WordInfo() fWordTail(0.0f), nFontIndex(-1) {} -CPVT_WordInfo::CPVT_WordInfo(uint16_t word, - int32_t charset, - int32_t fontIndex, - CPVT_WordProps* pProps) +CPVT_WordInfo::CPVT_WordInfo(uint16_t word, int32_t charset, int32_t fontIndex) : Word(word), nCharset(charset), fWordX(0.0f), @@ -49,8 +46,4 @@ void CPVT_WordInfo::operator=(const CPVT_WordInfo& word) { fWordX = word.fWordX; fWordY = word.fWordY; fWordTail = word.fWordTail; - if (word.pWordProps) - pWordProps = pdfium::MakeUnique<CPVT_WordProps>(*word.pWordProps); - else - pWordProps.reset(); } diff --git a/core/fpdfdoc/cpvt_wordinfo.h b/core/fpdfdoc/cpvt_wordinfo.h index 00f5a45e70..9b2ec8a1e5 100644 --- a/core/fpdfdoc/cpvt_wordinfo.h +++ b/core/fpdfdoc/cpvt_wordinfo.h @@ -9,15 +9,11 @@ #include <memory> -#include "core/fpdfdoc/cpvt_wordprops.h" #include "core/fxcrt/fx_system.h" struct CPVT_WordInfo { CPVT_WordInfo(); - CPVT_WordInfo(uint16_t word, - int32_t charset, - int32_t fontIndex, - CPVT_WordProps* pProps); + CPVT_WordInfo(uint16_t word, int32_t charset, int32_t fontIndex); CPVT_WordInfo(const CPVT_WordInfo& word); ~CPVT_WordInfo(); @@ -29,7 +25,6 @@ struct CPVT_WordInfo { float fWordY; float fWordTail; int32_t nFontIndex; - std::unique_ptr<CPVT_WordProps> pWordProps; }; #endif // CORE_FPDFDOC_CPVT_WORDINFO_H_ diff --git a/core/fpdfdoc/cpvt_wordprops.h b/core/fpdfdoc/cpvt_wordprops.h deleted file mode 100644 index 2d0e5d51b3..0000000000 --- a/core/fpdfdoc/cpvt_wordprops.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2016 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_FPDFDOC_CPVT_WORDPROPS_H_ -#define CORE_FPDFDOC_CPVT_WORDPROPS_H_ - -#include "core/fpdfdoc/cpdf_variabletext.h" -#include "core/fxcrt/fx_system.h" -#include "core/fxge/fx_dib.h" - -struct CPVT_WordProps { - CPVT_WordProps() - : nFontIndex(-1), - fFontSize(0.0f), - dwWordColor(0), - nScriptType(CPDF_VariableText::ScriptType::Normal), - nWordStyle(0), - fCharSpace(0.0f), - nHorzScale(0) {} - - CPVT_WordProps(int32_t fontIndex, - float fontSize, - FX_COLORREF wordColor = 0, - CPDF_VariableText::ScriptType scriptType = - CPDF_VariableText::ScriptType::Normal, - int32_t wordStyle = 0, - float charSpace = 0, - int32_t horzScale = 100) - : nFontIndex(fontIndex), - fFontSize(fontSize), - dwWordColor(wordColor), - nScriptType(scriptType), - nWordStyle(wordStyle), - fCharSpace(charSpace), - nHorzScale(horzScale) {} - - CPVT_WordProps(const CPVT_WordProps& other) - : nFontIndex(other.nFontIndex), - fFontSize(other.fFontSize), - dwWordColor(other.dwWordColor), - nScriptType(other.nScriptType), - nWordStyle(other.nWordStyle), - fCharSpace(other.fCharSpace), - nHorzScale(other.nHorzScale) {} - - int32_t nFontIndex; - float fFontSize; - FX_COLORREF dwWordColor; - CPDF_VariableText::ScriptType nScriptType; - int32_t nWordStyle; - float fCharSpace; - int32_t nHorzScale; -}; - -#endif // CORE_FPDFDOC_CPVT_WORDPROPS_H_ diff --git a/core/fpdfdoc/csection.cpp b/core/fpdfdoc/csection.cpp index 1f2bef43c3..f8b658af8c 100644 --- a/core/fpdfdoc/csection.cpp +++ b/core/fpdfdoc/csection.cpp @@ -9,6 +9,7 @@ #include <algorithm> #include "core/fpdfdoc/cline.h" +#include "core/fpdfdoc/cpdf_variabletext.h" #include "core/fpdfdoc/cpvt_wordinfo.h" #include "third_party/base/ptr_util.h" #include "third_party/base/stl_util.h" diff --git a/core/fpdfdoc/csection.h b/core/fpdfdoc/csection.h index 7c2b70b7dc..d516c45e6f 100644 --- a/core/fpdfdoc/csection.h +++ b/core/fpdfdoc/csection.h @@ -12,6 +12,8 @@ #include "core/fpdfdoc/cline.h" #include "core/fpdfdoc/cpvt_sectioninfo.h" +#include "core/fpdfdoc/cpvt_wordinfo.h" +#include "core/fpdfdoc/cpvt_wordrange.h" #include "core/fpdfdoc/ctypeset.h" #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_system.h" diff --git a/core/fpdfdoc/ctypeset.cpp b/core/fpdfdoc/ctypeset.cpp index 856377e598..090985e436 100644 --- a/core/fpdfdoc/ctypeset.cpp +++ b/core/fpdfdoc/ctypeset.cpp @@ -9,6 +9,7 @@ #include <algorithm> #include "core/fpdfdoc/cline.h" +#include "core/fpdfdoc/cpdf_variabletext.h" #include "core/fpdfdoc/cpvt_wordinfo.h" #include "core/fpdfdoc/csection.h" #include "third_party/base/stl_util.h" @@ -470,22 +471,8 @@ void CTypeset::OutputLines() { if (pdfium::IndexInBounds(m_pSection->m_WordArray, w)) { CPVT_WordInfo* pWord = m_pSection->m_WordArray[w].get(); pWord->fWordX = fPosX - fMinX; - if (pWord->pWordProps) { - switch (pWord->pWordProps->nScriptType) { - default: - case CPDF_VariableText::ScriptType::Normal: - pWord->fWordY = fPosY - fMinY; - break; - case CPDF_VariableText::ScriptType::Super: - pWord->fWordY = fPosY - m_pVT->GetWordAscent(*pWord) - fMinY; - break; - case CPDF_VariableText::ScriptType::Sub: - pWord->fWordY = fPosY - m_pVT->GetWordDescent(*pWord) - fMinY; - break; - } - } else { - pWord->fWordY = fPosY - fMinY; - } + pWord->fWordY = fPosY - fMinY; + fPosX += m_pVT->GetWordWidth(*pWord); } } |