diff options
Diffstat (limited to 'core/include/fpdfdoc/fpdf_vt.h')
-rw-r--r-- | core/include/fpdfdoc/fpdf_vt.h | 358 |
1 files changed, 0 insertions, 358 deletions
diff --git a/core/include/fpdfdoc/fpdf_vt.h b/core/include/fpdfdoc/fpdf_vt.h deleted file mode 100644 index d8a904c632..0000000000 --- a/core/include/fpdfdoc/fpdf_vt.h +++ /dev/null @@ -1,358 +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 CORE_INCLUDE_FPDFDOC_FPDF_VT_H_ -#define CORE_INCLUDE_FPDFDOC_FPDF_VT_H_ - -#include "core/include/fxge/fx_dib.h" - -class IPDF_VariableText; -struct CPVT_Line; -struct CPVT_Section; -struct CPVT_Word; -struct CPVT_WordPlace; -struct CPVT_WordRange; - -struct CPVT_WordPlace { - CPVT_WordPlace() : nSecIndex(-1), nLineIndex(-1), nWordIndex(-1) {} - - CPVT_WordPlace(int32_t other_nSecIndex, - int32_t other_nLineIndex, - int32_t other_nWordIndex) { - nSecIndex = other_nSecIndex; - nLineIndex = other_nLineIndex; - nWordIndex = other_nWordIndex; - } - - void Default() { nSecIndex = nLineIndex = nWordIndex = -1; } - - bool operator==(const CPVT_WordPlace& wp) const { - return wp.nSecIndex == nSecIndex && wp.nLineIndex == nLineIndex && - wp.nWordIndex == nWordIndex; - } - - FX_BOOL operator!=(const CPVT_WordPlace& wp) const { return !(*this == wp); } - - inline int32_t WordCmp(const CPVT_WordPlace& wp) const { - if (nSecIndex > wp.nSecIndex) - return 1; - if (nSecIndex < wp.nSecIndex) - return -1; - if (nLineIndex > wp.nLineIndex) - return 1; - if (nLineIndex < wp.nLineIndex) - return -1; - if (nWordIndex > wp.nWordIndex) - return 1; - if (nWordIndex < wp.nWordIndex) - return -1; - return 0; - } - - inline int32_t LineCmp(const CPVT_WordPlace& wp) const { - if (nSecIndex > wp.nSecIndex) - return 1; - if (nSecIndex < wp.nSecIndex) - return -1; - if (nLineIndex > wp.nLineIndex) - return 1; - if (nLineIndex < wp.nLineIndex) - return -1; - return 0; - } - - inline int32_t SecCmp(const CPVT_WordPlace& wp) const { - if (nSecIndex > wp.nSecIndex) - return 1; - if (nSecIndex < wp.nSecIndex) - return -1; - return 0; - } - - int32_t nSecIndex; - int32_t nLineIndex; - int32_t nWordIndex; -}; -struct CPVT_WordRange { - CPVT_WordRange() {} - - CPVT_WordRange(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { - Set(begin, end); - } - - void Default() { - BeginPos.Default(); - EndPos.Default(); - } - - void Set(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { - BeginPos = begin; - EndPos = end; - SwapWordPlace(); - } - - void SetBeginPos(const CPVT_WordPlace& begin) { - BeginPos = begin; - SwapWordPlace(); - } - - void SetEndPos(const CPVT_WordPlace& end) { - EndPos = end; - SwapWordPlace(); - } - - FX_BOOL IsExist() const { return BeginPos != EndPos; } - - FX_BOOL operator!=(const CPVT_WordRange& wr) const { - return wr.BeginPos != BeginPos || wr.EndPos != EndPos; - } - - void SwapWordPlace() { - if (BeginPos.WordCmp(EndPos) > 0) { - CPVT_WordPlace place = EndPos; - EndPos = BeginPos; - BeginPos = place; - } - } - - CPVT_WordPlace BeginPos; - CPVT_WordPlace EndPos; -}; -struct CPVT_SecProps { - CPVT_SecProps() : fLineLeading(0.0f), fLineIndent(0.0f), nAlignment(0) {} - - CPVT_SecProps(FX_FLOAT lineLeading, FX_FLOAT lineIndent, int32_t alignment) - : fLineLeading(lineLeading), - fLineIndent(lineIndent), - nAlignment(alignment) {} - - CPVT_SecProps(const CPVT_SecProps& other) - : fLineLeading(other.fLineLeading), - fLineIndent(other.fLineIndent), - nAlignment(other.nAlignment) {} - - FX_FLOAT fLineLeading; - FX_FLOAT fLineIndent; - int32_t nAlignment; -}; -struct CPVT_WordProps { - CPVT_WordProps() - : nFontIndex(-1), - fFontSize(0.0f), - dwWordColor(0), - nScriptType(0), - nWordStyle(0), - fCharSpace(0.0f), - nHorzScale(0) {} - - CPVT_WordProps(int32_t fontIndex, - FX_FLOAT fontSize, - FX_COLORREF wordColor = 0, - int32_t scriptType = 0, - int32_t wordStyle = 0, - FX_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; - FX_FLOAT fFontSize; - FX_COLORREF dwWordColor; - int32_t nScriptType; - int32_t nWordStyle; - FX_FLOAT fCharSpace; - int32_t nHorzScale; -}; -struct CPVT_Word { - CPVT_Word() - : Word(0), - nCharset(0), - ptWord(0, 0), - fAscent(0.0f), - fDescent(0.0f), - fWidth(0.0f), - fFontSize(0), - WordProps() {} - - uint16_t Word; - int32_t nCharset; - CPVT_WordPlace WordPlace; - CFX_FloatPoint ptWord; - FX_FLOAT fAscent; - FX_FLOAT fDescent; - FX_FLOAT fWidth; - int32_t nFontIndex; - FX_FLOAT fFontSize; - CPVT_WordProps WordProps; -}; -struct CPVT_Line { - CPVT_Line() - : ptLine(0, 0), fLineWidth(0.0f), fLineAscent(0.0f), fLineDescent(0.0f) {} - - CPVT_WordPlace lineplace; - CPVT_WordPlace lineEnd; - CFX_FloatPoint ptLine; - FX_FLOAT fLineWidth; - FX_FLOAT fLineAscent; - FX_FLOAT fLineDescent; -}; -struct CPVT_Section { - CPVT_WordPlace secplace; - CFX_FloatRect rcSection; - CPVT_SecProps SecProps; - CPVT_WordProps WordProps; -}; - -class IPDF_VariableText { - public: - class Provider { - public: - virtual ~Provider() {} - - virtual int32_t GetCharWidth(int32_t nFontIndex, - uint16_t word, - int32_t nWordStyle) = 0; - virtual int32_t GetTypeAscent(int32_t nFontIndex) = 0; - virtual int32_t GetTypeDescent(int32_t nFontIndex) = 0; - virtual int32_t GetWordFontIndex(uint16_t word, - int32_t charset, - int32_t nFontIndex) = 0; - virtual int32_t GetDefaultFontIndex() = 0; - virtual FX_BOOL IsLatinWord(uint16_t word) = 0; - }; - - class Iterator { - public: - virtual ~Iterator() {} - - virtual FX_BOOL NextWord() = 0; - virtual FX_BOOL PrevWord() = 0; - virtual FX_BOOL NextLine() = 0; - virtual FX_BOOL PrevLine() = 0; - virtual FX_BOOL NextSection() = 0; - virtual FX_BOOL PrevSection() = 0; - virtual FX_BOOL GetWord(CPVT_Word& word) const = 0; - virtual FX_BOOL SetWord(const CPVT_Word& word) = 0; - virtual FX_BOOL GetLine(CPVT_Line& line) const = 0; - virtual FX_BOOL GetSection(CPVT_Section& section) const = 0; - virtual FX_BOOL SetSection(const CPVT_Section& section) = 0; - virtual void SetAt(int32_t nWordIndex) = 0; - virtual void SetAt(const CPVT_WordPlace& place) = 0; - virtual const CPVT_WordPlace& GetAt() const = 0; - }; - - static IPDF_VariableText* NewVariableText(); - static void DelVariableText(IPDF_VariableText* pVT); - - virtual void Initialize() = 0; - - virtual Provider* SetProvider(Provider* pProvider) = 0; - virtual Iterator* GetIterator() = 0; - - virtual void SetPlateRect(const CFX_FloatRect& rect) = 0; - virtual void SetAlignment(int32_t nFormat = 0) = 0; - virtual void SetPasswordChar(uint16_t wSubWord = '*') = 0; - virtual void SetLimitChar(int32_t nLimitChar = 0) = 0; - virtual void SetCharArray(int32_t nCharArray = 0) = 0; - virtual void SetCharSpace(FX_FLOAT fCharSpace = 0.0f) = 0; - virtual void SetHorzScale(int32_t nHorzScale = 100) = 0; - virtual void SetMultiLine(FX_BOOL bMultiLine = TRUE) = 0; - virtual void SetAutoReturn(FX_BOOL bAuto = TRUE) = 0; - virtual void SetAutoFontSize(FX_BOOL bAuto = TRUE) = 0; - virtual void SetFontSize(FX_FLOAT fFontSize) = 0; - virtual void SetLineLeading(FX_FLOAT fLineLeading) = 0; - virtual void SetRichText(FX_BOOL bRichText) = 0; - - virtual FX_BOOL IsValid() const = 0; - virtual FX_BOOL IsRichText() const = 0; - virtual FX_BOOL IsMultiLine() const = 0; - - virtual void RearrangeAll() = 0; - virtual void RearrangePart(const CPVT_WordRange& PlaceRange) = 0; - - virtual void ResetAll() = 0; - - virtual void SetText(const FX_WCHAR* text, - int32_t charset = 1, - const CPVT_SecProps* pSecProps = NULL, - const CPVT_WordProps* pWordProps = NULL) = 0; - virtual CPVT_WordPlace InsertWord( - const CPVT_WordPlace& place, - uint16_t word, - int32_t charset = 1, - const CPVT_WordProps* pWordProps = NULL) = 0; - virtual CPVT_WordPlace InsertSection( - const CPVT_WordPlace& place, - const CPVT_SecProps* pSecProps = NULL, - const CPVT_WordProps* pWordProps = NULL) = 0; - virtual CPVT_WordPlace InsertText( - const CPVT_WordPlace& place, - const FX_WCHAR* text, - int32_t charset = 1, - const CPVT_SecProps* pSecProps = NULL, - const CPVT_WordProps* pWordProps = NULL) = 0; - - virtual CPVT_WordPlace DeleteWords(const CPVT_WordRange& PlaceRange) = 0; - virtual CPVT_WordPlace DeleteWord(const CPVT_WordPlace& place) = 0; - virtual CPVT_WordPlace BackSpaceWord(const CPVT_WordPlace& place) = 0; - - virtual const CFX_FloatRect& GetPlateRect() const = 0; - virtual CFX_FloatRect GetContentRect() const = 0; - virtual int32_t GetTotalWords() const = 0; - virtual FX_FLOAT GetFontSize() const = 0; - virtual int32_t GetAlignment() const = 0; - virtual uint16_t GetPasswordChar() const = 0; - virtual int32_t GetCharArray() const = 0; - virtual int32_t GetLimitChar() const = 0; - virtual int32_t GetHorzScale() const = 0; - virtual FX_FLOAT GetCharSpace() const = 0; - virtual CPVT_WordPlace GetBeginWordPlace() const = 0; - virtual CPVT_WordPlace GetEndWordPlace() const = 0; - virtual CPVT_WordPlace GetPrevWordPlace( - const CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace GetNextWordPlace( - const CPVT_WordPlace& place) const = 0; - - virtual CPVT_WordPlace SearchWordPlace(const CFX_FloatPoint& point) const = 0; - virtual CPVT_WordPlace GetUpWordPlace(const CPVT_WordPlace& place, - const CFX_FloatPoint& point) const = 0; - virtual CPVT_WordPlace GetDownWordPlace( - const CPVT_WordPlace& place, - const CFX_FloatPoint& point) const = 0; - virtual CPVT_WordPlace GetLineBeginPlace( - const CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace GetLineEndPlace(const CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace GetSectionBeginPlace( - const CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace GetSectionEndPlace( - const CPVT_WordPlace& place) const = 0; - - virtual void UpdateWordPlace(CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace AdjustLineHeader(const CPVT_WordPlace& place, - FX_BOOL bPrevOrNext) const = 0; - - virtual int32_t WordPlaceToWordIndex(const CPVT_WordPlace& place) const = 0; - virtual CPVT_WordPlace WordIndexToWordPlace(int32_t index) const = 0; - - protected: - ~IPDF_VariableText() {} -}; - -#endif // CORE_INCLUDE_FPDFDOC_FPDF_VT_H_ |