summaryrefslogtreecommitdiff
path: root/core/include/fpdfdoc/fpdf_vt.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/include/fpdfdoc/fpdf_vt.h')
-rw-r--r--core/include/fpdfdoc/fpdf_vt.h888
1 files changed, 444 insertions, 444 deletions
diff --git a/core/include/fpdfdoc/fpdf_vt.h b/core/include/fpdfdoc/fpdf_vt.h
index e2825c123d..41025cbe2e 100644
--- a/core/include/fpdfdoc/fpdf_vt.h
+++ b/core/include/fpdfdoc/fpdf_vt.h
@@ -1,444 +1,444 @@
-// 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 _FPDF_VT_H_
-#define _FPDF_VT_H_
-#include "../fxcrt/fx_basic.h"
-#include "../fpdfapi/fpdf_parser.h"
-struct CPVT_WordPlace;
-struct CPVT_WordRange;
-struct CPVT_Word;
-struct CPVT_Line;
-struct CPVT_Section;
-class IPDF_VariableText_Provider;
-class IPDF_VariableText_Iterator;
-class IPDF_VariableText;
-struct CPVT_WordPlace {
-
- CPVT_WordPlace() : nSecIndex(-1), nLineIndex(-1), nWordIndex(-1)
- {
- }
-
- CPVT_WordPlace(FX_INT32 nSecIndex, FX_INT32 nLineIndex, FX_INT32 nWordIndex)
- {
- this->nSecIndex = nSecIndex;
- this->nLineIndex = nLineIndex;
- this->nWordIndex = nWordIndex;
- }
-
- void Default()
- {
- nSecIndex = nLineIndex = nWordIndex = -1;
- }
-
- FX_BOOL operator == (const CPVT_WordPlace & wp) const
- {
- return wp.nSecIndex == this->nSecIndex && wp.nLineIndex == this->nLineIndex && wp.nWordIndex == this->nWordIndex;
- }
-
- FX_BOOL operator != (const CPVT_WordPlace & wp) const
- {
- return wp.nSecIndex != this->nSecIndex || wp.nLineIndex != this->nLineIndex || wp.nWordIndex != this->nWordIndex;
- }
-
- inline FX_INT32 WordCmp(const CPVT_WordPlace & wp) const
- {
- if (this->nSecIndex > wp.nSecIndex) {
- return 1;
- }
- if (this->nSecIndex < wp.nSecIndex) {
- return -1;
- }
- if (this->nLineIndex > wp.nLineIndex) {
- return 1;
- }
- if (this->nLineIndex < wp.nLineIndex) {
- return -1;
- }
- if (this->nWordIndex > wp.nWordIndex) {
- return 1;
- }
- if (this->nWordIndex < wp.nWordIndex) {
- return -1;
- }
- return 0;
- }
-
- inline FX_INT32 LineCmp(const CPVT_WordPlace & wp) const
- {
- if (this->nSecIndex > wp.nSecIndex) {
- return 1;
- }
- if (this->nSecIndex < wp.nSecIndex) {
- return -1;
- }
- if (this->nLineIndex > wp.nLineIndex) {
- return 1;
- }
- if (this->nLineIndex < wp.nLineIndex) {
- return -1;
- }
- return 0;
- }
-
- inline FX_INT32 SecCmp(const CPVT_WordPlace & wp) const
- {
- if (this->nSecIndex > wp.nSecIndex) {
- return 1;
- }
- if (this->nSecIndex < wp.nSecIndex) {
- return -1;
- }
- return 0;
- }
-
- FX_INT32 nSecIndex;
-
- FX_INT32 nLineIndex;
-
- FX_INT32 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)
- {
- this->BeginPos = begin;
- this->EndPos = end;
- SwapWordPlace();
- }
-
- void SetBeginPos(const CPVT_WordPlace & begin)
- {
- this->BeginPos = begin;
- SwapWordPlace();
- }
-
- void SetEndPos(const CPVT_WordPlace & end)
- {
- this->EndPos = end;
- SwapWordPlace();
- }
-
- FX_BOOL IsExist() const
- {
- return this->BeginPos != this->EndPos;
- }
-
- FX_BOOL operator != (const CPVT_WordRange & wr) const
- {
- return wr.BeginPos != this->BeginPos || wr.EndPos != this->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 : public CFX_Object {
-
- CPVT_SecProps() : fLineLeading(0.0f), fLineIndent(0.0f), nAlignment(0)
- {
- }
-
- CPVT_SecProps(FX_FLOAT lineLeading, FX_FLOAT lineIndent, FX_INT32 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;
-
- FX_INT32 nAlignment;
-};
-struct CPVT_WordProps : public CFX_Object {
-
- CPVT_WordProps() : nFontIndex(-1), fFontSize(0.0f), dwWordColor(0), nScriptType(0), nWordStyle(0),
- fCharSpace(0.0f), nHorzScale(0)
- {
- }
-
- CPVT_WordProps(FX_INT32 fontIndex, FX_FLOAT fontSize, FX_COLORREF wordColor = 0, FX_INT32 scriptType = 0, FX_INT32 wordStyle = 0,
- FX_FLOAT charSpace = 0, FX_INT32 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)
- {
- }
-
- FX_INT32 nFontIndex;
-
- FX_FLOAT fFontSize;
-
- FX_COLORREF dwWordColor;
-
- FX_INT32 nScriptType;
-
- FX_INT32 nWordStyle;
-
- FX_FLOAT fCharSpace;
-
- FX_INT32 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()
- {
- }
-
- FX_WORD Word;
-
- FX_INT32 nCharset;
-
- CPVT_WordPlace WordPlace;
-
- CPDF_Point ptWord;
-
- FX_FLOAT fAscent;
-
- FX_FLOAT fDescent;
-
- FX_FLOAT fWidth;
-
- FX_INT32 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;
-
- CPDF_Point ptLine;
-
- FX_FLOAT fLineWidth;
-
- FX_FLOAT fLineAscent;
-
- FX_FLOAT fLineDescent;
-};
-struct CPVT_Section {
-
- CPVT_WordPlace secplace;
-
- CPDF_Rect rcSection;
-
- CPVT_SecProps SecProps;
-
- CPVT_WordProps WordProps;
-};
-class IPDF_VariableText_Provider
-{
-public:
-
- virtual FX_INT32 GetCharWidth(FX_INT32 nFontIndex, FX_WORD word, FX_INT32 nWordStyle) = 0;
-
- virtual FX_INT32 GetTypeAscent(FX_INT32 nFontIndex) = 0;
-
- virtual FX_INT32 GetTypeDescent(FX_INT32 nFontIndex) = 0;
-
- virtual FX_INT32 GetWordFontIndex(FX_WORD word, FX_INT32 charset, FX_INT32 nFontIndex) = 0;
-
- virtual FX_BOOL IsLatinWord(FX_WORD word) = 0;
-
- virtual FX_INT32 GetDefaultFontIndex() = 0;
-};
-class IPDF_VariableText_Iterator
-{
-public:
-
- 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(FX_INT32 nWordIndex) = 0;
-
- virtual void SetAt(const CPVT_WordPlace & place) = 0;
-
- virtual const CPVT_WordPlace & GetAt() const = 0;
-};
-class IPDF_VariableText
-{
-public:
-
- static IPDF_VariableText* NewVariableText();
-
- static void DelVariableText(IPDF_VariableText* pVT);
-public:
-
- virtual IPDF_VariableText_Provider* SetProvider(IPDF_VariableText_Provider * pProvider) = 0;
-
- virtual IPDF_VariableText_Iterator* GetIterator() = 0;
-
- virtual void SetPlateRect(const CPDF_Rect & rect) = 0;
-
- virtual void SetAlignment(FX_INT32 nFormat = 0) = 0;
-
- virtual void SetPasswordChar(FX_WORD wSubWord = '*') = 0;
-
- virtual void SetLimitChar(FX_INT32 nLimitChar = 0) = 0;
-
- virtual void SetCharArray(FX_INT32 nCharArray = 0) = 0;
-
- virtual void SetCharSpace(FX_FLOAT fCharSpace = 0.0f) = 0;
-
- virtual void SetHorzScale(FX_INT32 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 void Initialize() = 0;
-
- virtual FX_BOOL IsValid() const = 0;
-
- virtual FX_BOOL IsRichText() const = 0;
-
- virtual void RearrangeAll() = 0;
-
- virtual void RearrangePart(const CPVT_WordRange & PlaceRange) = 0;
-
- virtual void ResetAll() = 0;
-
- virtual void SetText(FX_LPCWSTR text, FX_INT32 charset = 1, const CPVT_SecProps * pSecProps = NULL,
- const CPVT_WordProps * pWordProps = NULL) = 0;
-
- virtual CPVT_WordPlace InsertWord(const CPVT_WordPlace & place, FX_WORD word, FX_INT32 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, FX_LPCWSTR text, FX_INT32 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 CPDF_Rect & GetPlateRect() const = 0;
-
- virtual CPDF_Rect GetContentRect() const = 0;
-
- virtual FX_INT32 GetTotalWords() const = 0;
-
- virtual FX_FLOAT GetFontSize() const = 0;
-
- virtual FX_INT32 GetAlignment() const = 0;
-
- virtual FX_WORD GetPasswordChar() const = 0;
-
- virtual FX_INT32 GetCharArray() const = 0;
-
- virtual FX_INT32 GetLimitChar() const = 0;
-
- virtual FX_BOOL IsMultiLine() const = 0;
-
- virtual FX_INT32 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 CPDF_Point & point) const = 0;
-
- virtual CPVT_WordPlace GetUpWordPlace(const CPVT_WordPlace & place, const CPDF_Point & point) const = 0;
-
- virtual CPVT_WordPlace GetDownWordPlace(const CPVT_WordPlace & place, const CPDF_Point & 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 AjustLineHeader(const CPVT_WordPlace & place, FX_BOOL bPrevOrNext) const = 0;
-
- virtual FX_INT32 WordPlaceToWordIndex(const CPVT_WordPlace & place) const = 0;
-
- virtual CPVT_WordPlace WordIndexToWordPlace(FX_INT32 index) const = 0;
-};
-#endif
+// 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 _FPDF_VT_H_
+#define _FPDF_VT_H_
+#include "../fxcrt/fx_basic.h"
+#include "../fpdfapi/fpdf_parser.h"
+struct CPVT_WordPlace;
+struct CPVT_WordRange;
+struct CPVT_Word;
+struct CPVT_Line;
+struct CPVT_Section;
+class IPDF_VariableText_Provider;
+class IPDF_VariableText_Iterator;
+class IPDF_VariableText;
+struct CPVT_WordPlace {
+
+ CPVT_WordPlace() : nSecIndex(-1), nLineIndex(-1), nWordIndex(-1)
+ {
+ }
+
+ CPVT_WordPlace(FX_INT32 nSecIndex, FX_INT32 nLineIndex, FX_INT32 nWordIndex)
+ {
+ this->nSecIndex = nSecIndex;
+ this->nLineIndex = nLineIndex;
+ this->nWordIndex = nWordIndex;
+ }
+
+ void Default()
+ {
+ nSecIndex = nLineIndex = nWordIndex = -1;
+ }
+
+ FX_BOOL operator == (const CPVT_WordPlace & wp) const
+ {
+ return wp.nSecIndex == this->nSecIndex && wp.nLineIndex == this->nLineIndex && wp.nWordIndex == this->nWordIndex;
+ }
+
+ FX_BOOL operator != (const CPVT_WordPlace & wp) const
+ {
+ return wp.nSecIndex != this->nSecIndex || wp.nLineIndex != this->nLineIndex || wp.nWordIndex != this->nWordIndex;
+ }
+
+ inline FX_INT32 WordCmp(const CPVT_WordPlace & wp) const
+ {
+ if (this->nSecIndex > wp.nSecIndex) {
+ return 1;
+ }
+ if (this->nSecIndex < wp.nSecIndex) {
+ return -1;
+ }
+ if (this->nLineIndex > wp.nLineIndex) {
+ return 1;
+ }
+ if (this->nLineIndex < wp.nLineIndex) {
+ return -1;
+ }
+ if (this->nWordIndex > wp.nWordIndex) {
+ return 1;
+ }
+ if (this->nWordIndex < wp.nWordIndex) {
+ return -1;
+ }
+ return 0;
+ }
+
+ inline FX_INT32 LineCmp(const CPVT_WordPlace & wp) const
+ {
+ if (this->nSecIndex > wp.nSecIndex) {
+ return 1;
+ }
+ if (this->nSecIndex < wp.nSecIndex) {
+ return -1;
+ }
+ if (this->nLineIndex > wp.nLineIndex) {
+ return 1;
+ }
+ if (this->nLineIndex < wp.nLineIndex) {
+ return -1;
+ }
+ return 0;
+ }
+
+ inline FX_INT32 SecCmp(const CPVT_WordPlace & wp) const
+ {
+ if (this->nSecIndex > wp.nSecIndex) {
+ return 1;
+ }
+ if (this->nSecIndex < wp.nSecIndex) {
+ return -1;
+ }
+ return 0;
+ }
+
+ FX_INT32 nSecIndex;
+
+ FX_INT32 nLineIndex;
+
+ FX_INT32 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)
+ {
+ this->BeginPos = begin;
+ this->EndPos = end;
+ SwapWordPlace();
+ }
+
+ void SetBeginPos(const CPVT_WordPlace & begin)
+ {
+ this->BeginPos = begin;
+ SwapWordPlace();
+ }
+
+ void SetEndPos(const CPVT_WordPlace & end)
+ {
+ this->EndPos = end;
+ SwapWordPlace();
+ }
+
+ FX_BOOL IsExist() const
+ {
+ return this->BeginPos != this->EndPos;
+ }
+
+ FX_BOOL operator != (const CPVT_WordRange & wr) const
+ {
+ return wr.BeginPos != this->BeginPos || wr.EndPos != this->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 : public CFX_Object {
+
+ CPVT_SecProps() : fLineLeading(0.0f), fLineIndent(0.0f), nAlignment(0)
+ {
+ }
+
+ CPVT_SecProps(FX_FLOAT lineLeading, FX_FLOAT lineIndent, FX_INT32 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;
+
+ FX_INT32 nAlignment;
+};
+struct CPVT_WordProps : public CFX_Object {
+
+ CPVT_WordProps() : nFontIndex(-1), fFontSize(0.0f), dwWordColor(0), nScriptType(0), nWordStyle(0),
+ fCharSpace(0.0f), nHorzScale(0)
+ {
+ }
+
+ CPVT_WordProps(FX_INT32 fontIndex, FX_FLOAT fontSize, FX_COLORREF wordColor = 0, FX_INT32 scriptType = 0, FX_INT32 wordStyle = 0,
+ FX_FLOAT charSpace = 0, FX_INT32 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)
+ {
+ }
+
+ FX_INT32 nFontIndex;
+
+ FX_FLOAT fFontSize;
+
+ FX_COLORREF dwWordColor;
+
+ FX_INT32 nScriptType;
+
+ FX_INT32 nWordStyle;
+
+ FX_FLOAT fCharSpace;
+
+ FX_INT32 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()
+ {
+ }
+
+ FX_WORD Word;
+
+ FX_INT32 nCharset;
+
+ CPVT_WordPlace WordPlace;
+
+ CPDF_Point ptWord;
+
+ FX_FLOAT fAscent;
+
+ FX_FLOAT fDescent;
+
+ FX_FLOAT fWidth;
+
+ FX_INT32 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;
+
+ CPDF_Point ptLine;
+
+ FX_FLOAT fLineWidth;
+
+ FX_FLOAT fLineAscent;
+
+ FX_FLOAT fLineDescent;
+};
+struct CPVT_Section {
+
+ CPVT_WordPlace secplace;
+
+ CPDF_Rect rcSection;
+
+ CPVT_SecProps SecProps;
+
+ CPVT_WordProps WordProps;
+};
+class IPDF_VariableText_Provider
+{
+public:
+
+ virtual FX_INT32 GetCharWidth(FX_INT32 nFontIndex, FX_WORD word, FX_INT32 nWordStyle) = 0;
+
+ virtual FX_INT32 GetTypeAscent(FX_INT32 nFontIndex) = 0;
+
+ virtual FX_INT32 GetTypeDescent(FX_INT32 nFontIndex) = 0;
+
+ virtual FX_INT32 GetWordFontIndex(FX_WORD word, FX_INT32 charset, FX_INT32 nFontIndex) = 0;
+
+ virtual FX_BOOL IsLatinWord(FX_WORD word) = 0;
+
+ virtual FX_INT32 GetDefaultFontIndex() = 0;
+};
+class IPDF_VariableText_Iterator
+{
+public:
+
+ 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(FX_INT32 nWordIndex) = 0;
+
+ virtual void SetAt(const CPVT_WordPlace & place) = 0;
+
+ virtual const CPVT_WordPlace & GetAt() const = 0;
+};
+class IPDF_VariableText
+{
+public:
+
+ static IPDF_VariableText* NewVariableText();
+
+ static void DelVariableText(IPDF_VariableText* pVT);
+public:
+
+ virtual IPDF_VariableText_Provider* SetProvider(IPDF_VariableText_Provider * pProvider) = 0;
+
+ virtual IPDF_VariableText_Iterator* GetIterator() = 0;
+
+ virtual void SetPlateRect(const CPDF_Rect & rect) = 0;
+
+ virtual void SetAlignment(FX_INT32 nFormat = 0) = 0;
+
+ virtual void SetPasswordChar(FX_WORD wSubWord = '*') = 0;
+
+ virtual void SetLimitChar(FX_INT32 nLimitChar = 0) = 0;
+
+ virtual void SetCharArray(FX_INT32 nCharArray = 0) = 0;
+
+ virtual void SetCharSpace(FX_FLOAT fCharSpace = 0.0f) = 0;
+
+ virtual void SetHorzScale(FX_INT32 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 void Initialize() = 0;
+
+ virtual FX_BOOL IsValid() const = 0;
+
+ virtual FX_BOOL IsRichText() const = 0;
+
+ virtual void RearrangeAll() = 0;
+
+ virtual void RearrangePart(const CPVT_WordRange & PlaceRange) = 0;
+
+ virtual void ResetAll() = 0;
+
+ virtual void SetText(FX_LPCWSTR text, FX_INT32 charset = 1, const CPVT_SecProps * pSecProps = NULL,
+ const CPVT_WordProps * pWordProps = NULL) = 0;
+
+ virtual CPVT_WordPlace InsertWord(const CPVT_WordPlace & place, FX_WORD word, FX_INT32 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, FX_LPCWSTR text, FX_INT32 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 CPDF_Rect & GetPlateRect() const = 0;
+
+ virtual CPDF_Rect GetContentRect() const = 0;
+
+ virtual FX_INT32 GetTotalWords() const = 0;
+
+ virtual FX_FLOAT GetFontSize() const = 0;
+
+ virtual FX_INT32 GetAlignment() const = 0;
+
+ virtual FX_WORD GetPasswordChar() const = 0;
+
+ virtual FX_INT32 GetCharArray() const = 0;
+
+ virtual FX_INT32 GetLimitChar() const = 0;
+
+ virtual FX_BOOL IsMultiLine() const = 0;
+
+ virtual FX_INT32 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 CPDF_Point & point) const = 0;
+
+ virtual CPVT_WordPlace GetUpWordPlace(const CPVT_WordPlace & place, const CPDF_Point & point) const = 0;
+
+ virtual CPVT_WordPlace GetDownWordPlace(const CPVT_WordPlace & place, const CPDF_Point & 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 AjustLineHeader(const CPVT_WordPlace & place, FX_BOOL bPrevOrNext) const = 0;
+
+ virtual FX_INT32 WordPlaceToWordIndex(const CPVT_WordPlace & place) const = 0;
+
+ virtual CPVT_WordPlace WordIndexToWordPlace(FX_INT32 index) const = 0;
+};
+#endif