| Index: xfa/src/fee/src/fee/fde_txtedtengine.h
|
| diff --git a/xfa/src/fee/src/fee/fde_txtedtengine.h b/xfa/src/fee/src/fee/fde_txtedtengine.h
|
| index 086168d7ae51481fe6219c82c860cd183d656e11..70ecd23e06d346be328cb0f9247247a6f74f32d8 100644
|
| --- a/xfa/src/fee/src/fee/fde_txtedtengine.h
|
| +++ b/xfa/src/fee/src/fee/fde_txtedtengine.h
|
| @@ -1,372 +1,372 @@
|
| -// 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 _FDE_TXTEDTENGINE_H
|
| -#define _FDE_TXTEDTENGINE_H
|
| -class CFDE_TxtEdtBuf;
|
| -class CFDE_TxtEdtPage;
|
| -class IFX_TxtBreak;
|
| -class CFDE_TxtEdtParag;
|
| -class CFDE_TxtEdtKMPMatch;
|
| -class IFDE_TxtEdtFormator;
|
| -class CFDE_TxtEdtField;
|
| -class CFDE_TxtEdtBlock;
|
| -class IFX_CharIter;
|
| -class CFDE_TxtEdtEngine;
|
| -class CFDE_TxtEdtDoRecord_Insert;
|
| -class CFDE_TxtEdtDoRecord_DeleteRange;
|
| -#ifdef FDE_USEFORMATBLOCK
|
| -class CFDE_TxtEdtDoRecord_FormatInsert;
|
| -class CFDE_TxtEdtDoRecord_FormatDelete;
|
| -class CFDE_TxtEdtDoRecord_FormatReplace;
|
| -class CFDE_TxtEdtDoRecord_FieldInsert;
|
| -class CFDE_TxtEdtDoRecord_FieldDelete;
|
| -class CFDE_TxtEdtDoRecord_FieldReplace;
|
| -#endif
|
| -class IFDE_TxtEdtDoRecord {
|
| - public:
|
| - static IFDE_TxtEdtDoRecord* Create(const CFX_ByteStringC& bsDoRecord);
|
| - virtual ~IFDE_TxtEdtDoRecord() {}
|
| - virtual void Release() = 0;
|
| - virtual FX_BOOL Redo() = 0;
|
| - virtual FX_BOOL Undo() = 0;
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const = 0;
|
| -};
|
| -class CFDE_TxtEdtEngine : public IFDE_TxtEdtEngine {
|
| - friend class CFDE_TxtEdtDoRecord_Insert;
|
| - friend class CFDE_TxtEdtDoRecord_DeleteRange;
|
| - friend class CFDE_TxtEdtPage;
|
| -#ifdef FDE_USEFORMATBLOCK
|
| - friend class CFDE_TxtEdtDoRecord_FormatInsert;
|
| - friend class CFDE_TxtEdtDoRecord_FormatDelete;
|
| - friend class CFDE_TxtEdtDoRecord_FormatReplace;
|
| - friend class CFDE_TxtEdtBlock;
|
| -#endif
|
| - struct _FDE_TXTEDTSELRANGE {
|
| - int32_t nStart;
|
| - int32_t nCount;
|
| - };
|
| - typedef _FDE_TXTEDTSELRANGE FDE_TXTEDTSELRANGE;
|
| - typedef _FDE_TXTEDTSELRANGE* FDE_LPTXTEDTSELRANGE;
|
| - struct _FDE_TXTEDTPARAGPOS {
|
| - int32_t nParagIndex;
|
| - int32_t nCharIndex;
|
| - };
|
| - typedef _FDE_TXTEDTPARAGPOS FDE_TXTEDTPARAGPOS;
|
| - typedef _FDE_TXTEDTPARAGPOS* FDE_LPTXTEDTPARAGPOS;
|
| -
|
| - public:
|
| - CFDE_TxtEdtEngine();
|
| - virtual void Release();
|
| -
|
| - virtual void SetEditParams(const FDE_TXTEDTPARAMS& params);
|
| - virtual const FDE_TXTEDTPARAMS* GetEditParams() const;
|
| -
|
| - virtual int32_t CountPages() const;
|
| - virtual IFDE_TxtEdtPage* GetPage(int32_t nIndex);
|
| -
|
| - virtual FX_BOOL SetBufChunkSize(int32_t nChunkSize);
|
| - virtual void SetTextByStream(IFX_Stream* pStream);
|
| - virtual void SetText(const CFX_WideString& wsText);
|
| - virtual int32_t GetTextLength() const;
|
| - virtual void GetText(CFX_WideString& wsText,
|
| - int32_t nStart,
|
| - int32_t nCount = -1);
|
| - virtual void ClearText();
|
| -
|
| - virtual int32_t GetCaretRect(CFX_RectF& rtCaret) const;
|
| - virtual int32_t GetCaretPos() const;
|
| - virtual int32_t SetCaretPos(int32_t nIndex, FX_BOOL bBefore);
|
| - virtual int32_t MoveCaretPos(FDE_TXTEDTMOVECARET eMoveCaret,
|
| - FX_BOOL bShift = FALSE,
|
| - FX_BOOL bCtrl = FALSE);
|
| - virtual void Lock();
|
| - virtual void Unlock();
|
| - virtual FX_BOOL IsLocked() const;
|
| -
|
| - virtual int32_t Insert(int32_t nStart,
|
| - const FX_WCHAR* lpText,
|
| - int32_t nLength);
|
| - virtual int32_t Delete(int32_t nStart, FX_BOOL bBackspace = FALSE);
|
| - virtual int32_t DeleteRange(int32_t nStart, int32_t nCount = -1);
|
| - virtual int32_t Replace(int32_t nStart,
|
| - int32_t nLength,
|
| - const CFX_WideString& wsReplace);
|
| -
|
| - virtual void SetLimit(int32_t nLimit);
|
| - virtual void SetAliasChar(FX_WCHAR wcAlias);
|
| - virtual void SetFormatBlock(int32_t nIndex,
|
| - const CFX_WideString& wsBlockFormat);
|
| - virtual int32_t CountEditBlocks() const;
|
| - virtual void GetEditBlockText(int32_t nIndex,
|
| - CFX_WideString& wsBlockText) const;
|
| - virtual int32_t CountEditFields(int32_t nBlockIndex) const;
|
| - virtual void GetEditFieldText(int32_t nBlockIndex,
|
| - int32_t nFieldIndex,
|
| - CFX_WideString& wsFieldText) const;
|
| - virtual void StartEdit();
|
| - virtual void EndEdit();
|
| -
|
| - void RemoveSelRange(int32_t nStart, int32_t nCount = -1);
|
| -
|
| - virtual void AddSelRange(int32_t nStart, int32_t nCount = -1);
|
| - virtual int32_t CountSelRanges();
|
| - virtual int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
|
| - virtual void ClearSelection();
|
| -
|
| - virtual FX_BOOL Redo(const CFX_ByteStringC& bsRedo);
|
| - virtual FX_BOOL Undo(const CFX_ByteStringC& bsUndo);
|
| -
|
| - virtual int32_t StartLayout();
|
| - virtual int32_t DoLayout(IFX_Pause* pPause);
|
| - virtual void EndLayout();
|
| -
|
| - virtual FX_BOOL Optimize(IFX_Pause* pPause = NULL);
|
| - virtual int32_t CountParags() const;
|
| - virtual IFDE_TxtEdtParag* GetParag(int32_t nParagIndex) const;
|
| - virtual IFX_CharIter* CreateCharIter();
|
| - IFDE_TxtEdtBuf* GetTextBuf() const;
|
| - int32_t GetTextBufLength() const;
|
| - IFX_TxtBreak* GetTextBreak() const;
|
| - int32_t GetLineCount() const;
|
| - int32_t GetPageLineCount() const;
|
| -
|
| - int32_t Line2Parag(int32_t nStartParag,
|
| - int32_t nStartLineofParag,
|
| - int32_t nLineIndex,
|
| - int32_t& nStartLine) const;
|
| - FX_WCHAR GetAliasChar() const { return m_wcAliasChar; }
|
| -
|
| - protected:
|
| - virtual ~CFDE_TxtEdtEngine();
|
| -
|
| - private:
|
| - void Inner_Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
|
| -#ifdef FDE_USEFORMATBLOCK
|
| - void RawInsert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
|
| -#endif
|
| - void GetPreDeleteText(CFX_WideString& wsText,
|
| - int32_t nIndex,
|
| - int32_t nLength);
|
| - void GetPreInsertText(CFX_WideString& wsText,
|
| - int32_t nIndex,
|
| - const FX_WCHAR* lpText,
|
| - int32_t nLength);
|
| - void GetPreReplaceText(CFX_WideString& wsText,
|
| - int32_t nIndex,
|
| - int32_t nOriginLength,
|
| - const FX_WCHAR* lpText,
|
| - int32_t nLength);
|
| -
|
| - void Inner_DeleteRange(int32_t nStart, int32_t nCount = -1);
|
| - void DeleteRange_DoRecord(int32_t nStart,
|
| - int32_t nCount,
|
| - FX_BOOL bSel = FALSE);
|
| - void ResetEngine();
|
| - void RebuildParagraphs();
|
| - void RemoveAllParags();
|
| - void RemoveAllPages();
|
| - void UpdateParags();
|
| - void UpdatePages();
|
| - void UpdateTxtBreak();
|
| -
|
| - FX_BOOL ReplaceParagEnd(FX_WCHAR*& lpText,
|
| - int32_t& nLength,
|
| - FX_BOOL bPreIsCR = FALSE);
|
| - void RecoverParagEnd(CFX_WideString& wsText);
|
| - int32_t MovePage2Char(int32_t nIndex);
|
| - void TextPos2ParagPos(int32_t nIndex, FDE_TXTEDTPARAGPOS& ParagPos) const;
|
| - int32_t MoveForward(FX_BOOL& bBefore);
|
| - int32_t MoveBackward(FX_BOOL& bBefore);
|
| - FX_BOOL MoveUp(CFX_PointF& ptCaret);
|
| - FX_BOOL MoveDown(CFX_PointF& ptCaret);
|
| - FX_BOOL MoveLineStart();
|
| - FX_BOOL MoveLineEnd();
|
| - FX_BOOL MoveParagStart();
|
| - FX_BOOL MoveParagEnd();
|
| - FX_BOOL MoveHome();
|
| - FX_BOOL MoveEnd();
|
| - FX_BOOL IsFitArea(CFX_WideString& wsText);
|
| - void UpdateCaretRect(int32_t nIndex, FX_BOOL bBefore = TRUE);
|
| - void GetCaretRect(CFX_RectF& rtCaret,
|
| - int32_t nPageIndex,
|
| - int32_t nCaret,
|
| - FX_BOOL bBefore = TRUE);
|
| - void UpdateCaretIndex(const CFX_PointF& ptCaret);
|
| -
|
| - FX_BOOL IsSelect();
|
| - void DeleteSelect();
|
| -
|
| - IFDE_TxtEdtBuf* m_pTxtBuf;
|
| - IFX_TxtBreak* m_pTextBreak;
|
| - FDE_TXTEDTPARAMS m_Param;
|
| - CFX_ArrayTemplate<IFDE_TxtEdtPage*> m_PagePtrArray;
|
| - CFX_ArrayTemplate<CFDE_TxtEdtParag*> m_ParagPtrArray;
|
| - CFX_ArrayTemplate<FDE_LPTXTEDTSELRANGE> m_SelRangePtrArr;
|
| - int32_t m_nPageLineCount;
|
| - int32_t m_nLineCount;
|
| - int32_t m_nAnchorPos;
|
| - int32_t m_nLayoutPos;
|
| - FX_FLOAT m_fCaretPosReserve;
|
| - int32_t m_nCaret;
|
| - FX_BOOL m_bBefore;
|
| - int32_t m_nCaretPage;
|
| - CFX_RectF m_rtCaret;
|
| - FX_DWORD m_dwFindFlags;
|
| - FX_BOOL m_bLock;
|
| - int32_t m_nLimit;
|
| - FX_WCHAR m_wcAliasChar;
|
| - int32_t m_nFirstLineEnd;
|
| - FX_BOOL m_bAutoLineEnd;
|
| - FX_WCHAR m_wLineEnd;
|
| - FDE_TXTEDT_TEXTCHANGE_INFO m_ChangeInfo;
|
| -};
|
| -class CFDE_TxtEdtDoRecord_Insert : public IFDE_TxtEdtDoRecord {
|
| - public:
|
| - CFDE_TxtEdtDoRecord_Insert(const CFX_ByteStringC& bsDoRecord);
|
| - CFDE_TxtEdtDoRecord_Insert(CFDE_TxtEdtEngine* pEngine,
|
| - int32_t nCaret,
|
| - const FX_WCHAR* lpText,
|
| - int32_t nLength);
|
| - virtual void Release();
|
| - virtual FX_BOOL Undo();
|
| - virtual FX_BOOL Redo();
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| -
|
| - protected:
|
| - ~CFDE_TxtEdtDoRecord_Insert();
|
| - void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| -
|
| - private:
|
| - CFDE_TxtEdtEngine* m_pEngine;
|
| - int32_t m_nCaret;
|
| - CFX_WideString m_wsInsert;
|
| -};
|
| -class CFDE_TxtEdtDoRecord_DeleteRange : public IFDE_TxtEdtDoRecord {
|
| - public:
|
| - CFDE_TxtEdtDoRecord_DeleteRange(const CFX_ByteStringC& bsDoRecord);
|
| - CFDE_TxtEdtDoRecord_DeleteRange(CFDE_TxtEdtEngine* pEngine,
|
| - int32_t nIndex,
|
| - int32_t nCaret,
|
| - const CFX_WideString& wsRange,
|
| - FX_BOOL bSel = FALSE);
|
| - virtual void Release();
|
| - virtual FX_BOOL Undo();
|
| - virtual FX_BOOL Redo();
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| -
|
| - protected:
|
| - ~CFDE_TxtEdtDoRecord_DeleteRange();
|
| - void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| -
|
| - private:
|
| - CFDE_TxtEdtEngine* m_pEngine;
|
| - FX_BOOL m_bSel;
|
| - int32_t m_nIndex;
|
| - int32_t m_nCaret;
|
| - CFX_WideString m_wsRange;
|
| -};
|
| -#ifdef FDE_USEFORMATBLOCK
|
| -class CFDE_TxtEdtDoRecord_FieldInsert : public IFDE_TxtEdtDoRecord {
|
| - public:
|
| - CFDE_TxtEdtDoRecord_FieldInsert(const CFX_ByteStringC& bsDoRecord);
|
| - CFDE_TxtEdtDoRecord_FieldInsert(CFDE_TxtEdtEngine* pEngine,
|
| - int32_t nCaret,
|
| - CFDE_TxtEdtField* pField,
|
| - int32_t nIndexInField,
|
| - int32_t nFieldBgn,
|
| - int32_t nOldFieldLength,
|
| - int32_t nNewFieldLength,
|
| - const CFX_WideString& wsIns,
|
| - FX_BOOL bSel = FALSE);
|
| - virtual void Release();
|
| - virtual FX_BOOL Undo();
|
| - virtual FX_BOOL Redo();
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| -
|
| - protected:
|
| - ~CFDE_TxtEdtDoRecord_FieldInsert();
|
| - void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| -
|
| - private:
|
| - CFDE_TxtEdtEngine* m_pEngine;
|
| - int32_t m_nCaret;
|
| - CFDE_TxtEdtField* m_pField;
|
| - int32_t m_nIndexInField;
|
| - int32_t m_nFieldBgn;
|
| - int32_t m_nOldFieldLength;
|
| - int32_t m_nNewFieldLength;
|
| - CFX_WideString m_wsIns;
|
| - FX_BOOL m_bSel;
|
| -};
|
| -class CFDE_TxtEdtDoRecord_FieldDelete : public IFDE_TxtEdtDoRecord {
|
| - public:
|
| - CFDE_TxtEdtDoRecord_FieldDelete(const CFX_ByteStringC& bsDoRecord);
|
| - CFDE_TxtEdtDoRecord_FieldDelete(CFDE_TxtEdtEngine* pEngine,
|
| - int32_t nCaret,
|
| - CFDE_TxtEdtField* pField,
|
| - int32_t nIndexInField,
|
| - int32_t nFieldBgn,
|
| - int32_t nOldLength,
|
| - int32_t nNewLength,
|
| - const CFX_WideString& wsDel,
|
| - FX_BOOL bSel = FALSE);
|
| - virtual void Release();
|
| - virtual FX_BOOL Undo();
|
| - virtual FX_BOOL Redo();
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| -
|
| - protected:
|
| - ~CFDE_TxtEdtDoRecord_FieldDelete();
|
| - void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| -
|
| - private:
|
| - CFDE_TxtEdtEngine* m_pEngine;
|
| - int32_t m_nCaret;
|
| - CFDE_TxtEdtField* m_pField;
|
| - int32_t m_nIndexInField;
|
| - int32_t m_nFieldBgn;
|
| - int32_t m_nOldFieldLength;
|
| - int32_t m_nNewFieldLength;
|
| - CFX_WideString m_wsDel;
|
| - FX_BOOL m_bSel;
|
| -};
|
| -class CFDE_TxtEdtDoRecord_FieldReplace : public IFDE_TxtEdtDoRecord {
|
| - public:
|
| - CFDE_TxtEdtDoRecord_FieldReplace(const CFX_ByteStringC& bsDoRecord);
|
| - CFDE_TxtEdtDoRecord_FieldReplace(CFDE_TxtEdtEngine* pEngine,
|
| - int32_t nCaret,
|
| - int32_t nNewCaret,
|
| - CFDE_TxtEdtField* pField,
|
| - int32_t nIndexInField,
|
| - int32_t nFieldBgn,
|
| - int32_t nFieldNewLength,
|
| - const CFX_WideString& wsDel,
|
| - const CFX_WideString& wsIns,
|
| - FX_BOOL bSel);
|
| - virtual void Release();
|
| - virtual FX_BOOL Undo();
|
| - virtual FX_BOOL Redo();
|
| - virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| -
|
| - protected:
|
| - ~CFDE_TxtEdtDoRecord_FieldReplace();
|
| - void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| -
|
| - private:
|
| - CFDE_TxtEdtEngine* m_pEngine;
|
| - int32_t m_nCaret;
|
| - int32_t m_nNewCaret;
|
| - CFDE_TxtEdtField* m_pField;
|
| - int32_t m_nIndexInField;
|
| - int32_t m_nFieldBgn;
|
| - int32_t m_nFieldNewLength;
|
| - CFX_WideString m_wsDel;
|
| - CFX_WideString m_wsIns;
|
| - FX_BOOL m_bSel;
|
| -};
|
| -#endif
|
| -#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 _FDE_TXTEDTENGINE_H
|
| +#define _FDE_TXTEDTENGINE_H
|
| +class CFDE_TxtEdtBuf;
|
| +class CFDE_TxtEdtPage;
|
| +class IFX_TxtBreak;
|
| +class CFDE_TxtEdtParag;
|
| +class CFDE_TxtEdtKMPMatch;
|
| +class IFDE_TxtEdtFormator;
|
| +class CFDE_TxtEdtField;
|
| +class CFDE_TxtEdtBlock;
|
| +class IFX_CharIter;
|
| +class CFDE_TxtEdtEngine;
|
| +class CFDE_TxtEdtDoRecord_Insert;
|
| +class CFDE_TxtEdtDoRecord_DeleteRange;
|
| +#ifdef FDE_USEFORMATBLOCK
|
| +class CFDE_TxtEdtDoRecord_FormatInsert;
|
| +class CFDE_TxtEdtDoRecord_FormatDelete;
|
| +class CFDE_TxtEdtDoRecord_FormatReplace;
|
| +class CFDE_TxtEdtDoRecord_FieldInsert;
|
| +class CFDE_TxtEdtDoRecord_FieldDelete;
|
| +class CFDE_TxtEdtDoRecord_FieldReplace;
|
| +#endif
|
| +class IFDE_TxtEdtDoRecord {
|
| + public:
|
| + static IFDE_TxtEdtDoRecord* Create(const CFX_ByteStringC& bsDoRecord);
|
| + virtual ~IFDE_TxtEdtDoRecord() {}
|
| + virtual void Release() = 0;
|
| + virtual FX_BOOL Redo() = 0;
|
| + virtual FX_BOOL Undo() = 0;
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const = 0;
|
| +};
|
| +class CFDE_TxtEdtEngine : public IFDE_TxtEdtEngine {
|
| + friend class CFDE_TxtEdtDoRecord_Insert;
|
| + friend class CFDE_TxtEdtDoRecord_DeleteRange;
|
| + friend class CFDE_TxtEdtPage;
|
| +#ifdef FDE_USEFORMATBLOCK
|
| + friend class CFDE_TxtEdtDoRecord_FormatInsert;
|
| + friend class CFDE_TxtEdtDoRecord_FormatDelete;
|
| + friend class CFDE_TxtEdtDoRecord_FormatReplace;
|
| + friend class CFDE_TxtEdtBlock;
|
| +#endif
|
| + struct _FDE_TXTEDTSELRANGE {
|
| + int32_t nStart;
|
| + int32_t nCount;
|
| + };
|
| + typedef _FDE_TXTEDTSELRANGE FDE_TXTEDTSELRANGE;
|
| + typedef _FDE_TXTEDTSELRANGE* FDE_LPTXTEDTSELRANGE;
|
| + struct _FDE_TXTEDTPARAGPOS {
|
| + int32_t nParagIndex;
|
| + int32_t nCharIndex;
|
| + };
|
| + typedef _FDE_TXTEDTPARAGPOS FDE_TXTEDTPARAGPOS;
|
| + typedef _FDE_TXTEDTPARAGPOS* FDE_LPTXTEDTPARAGPOS;
|
| +
|
| + public:
|
| + CFDE_TxtEdtEngine();
|
| + virtual void Release();
|
| +
|
| + virtual void SetEditParams(const FDE_TXTEDTPARAMS& params);
|
| + virtual const FDE_TXTEDTPARAMS* GetEditParams() const;
|
| +
|
| + virtual int32_t CountPages() const;
|
| + virtual IFDE_TxtEdtPage* GetPage(int32_t nIndex);
|
| +
|
| + virtual FX_BOOL SetBufChunkSize(int32_t nChunkSize);
|
| + virtual void SetTextByStream(IFX_Stream* pStream);
|
| + virtual void SetText(const CFX_WideString& wsText);
|
| + virtual int32_t GetTextLength() const;
|
| + virtual void GetText(CFX_WideString& wsText,
|
| + int32_t nStart,
|
| + int32_t nCount = -1);
|
| + virtual void ClearText();
|
| +
|
| + virtual int32_t GetCaretRect(CFX_RectF& rtCaret) const;
|
| + virtual int32_t GetCaretPos() const;
|
| + virtual int32_t SetCaretPos(int32_t nIndex, FX_BOOL bBefore);
|
| + virtual int32_t MoveCaretPos(FDE_TXTEDTMOVECARET eMoveCaret,
|
| + FX_BOOL bShift = FALSE,
|
| + FX_BOOL bCtrl = FALSE);
|
| + virtual void Lock();
|
| + virtual void Unlock();
|
| + virtual FX_BOOL IsLocked() const;
|
| +
|
| + virtual int32_t Insert(int32_t nStart,
|
| + const FX_WCHAR* lpText,
|
| + int32_t nLength);
|
| + virtual int32_t Delete(int32_t nStart, FX_BOOL bBackspace = FALSE);
|
| + virtual int32_t DeleteRange(int32_t nStart, int32_t nCount = -1);
|
| + virtual int32_t Replace(int32_t nStart,
|
| + int32_t nLength,
|
| + const CFX_WideString& wsReplace);
|
| +
|
| + virtual void SetLimit(int32_t nLimit);
|
| + virtual void SetAliasChar(FX_WCHAR wcAlias);
|
| + virtual void SetFormatBlock(int32_t nIndex,
|
| + const CFX_WideString& wsBlockFormat);
|
| + virtual int32_t CountEditBlocks() const;
|
| + virtual void GetEditBlockText(int32_t nIndex,
|
| + CFX_WideString& wsBlockText) const;
|
| + virtual int32_t CountEditFields(int32_t nBlockIndex) const;
|
| + virtual void GetEditFieldText(int32_t nBlockIndex,
|
| + int32_t nFieldIndex,
|
| + CFX_WideString& wsFieldText) const;
|
| + virtual void StartEdit();
|
| + virtual void EndEdit();
|
| +
|
| + void RemoveSelRange(int32_t nStart, int32_t nCount = -1);
|
| +
|
| + virtual void AddSelRange(int32_t nStart, int32_t nCount = -1);
|
| + virtual int32_t CountSelRanges();
|
| + virtual int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
|
| + virtual void ClearSelection();
|
| +
|
| + virtual FX_BOOL Redo(const CFX_ByteStringC& bsRedo);
|
| + virtual FX_BOOL Undo(const CFX_ByteStringC& bsUndo);
|
| +
|
| + virtual int32_t StartLayout();
|
| + virtual int32_t DoLayout(IFX_Pause* pPause);
|
| + virtual void EndLayout();
|
| +
|
| + virtual FX_BOOL Optimize(IFX_Pause* pPause = NULL);
|
| + virtual int32_t CountParags() const;
|
| + virtual IFDE_TxtEdtParag* GetParag(int32_t nParagIndex) const;
|
| + virtual IFX_CharIter* CreateCharIter();
|
| + IFDE_TxtEdtBuf* GetTextBuf() const;
|
| + int32_t GetTextBufLength() const;
|
| + IFX_TxtBreak* GetTextBreak() const;
|
| + int32_t GetLineCount() const;
|
| + int32_t GetPageLineCount() const;
|
| +
|
| + int32_t Line2Parag(int32_t nStartParag,
|
| + int32_t nStartLineofParag,
|
| + int32_t nLineIndex,
|
| + int32_t& nStartLine) const;
|
| + FX_WCHAR GetAliasChar() const { return m_wcAliasChar; }
|
| +
|
| + protected:
|
| + virtual ~CFDE_TxtEdtEngine();
|
| +
|
| + private:
|
| + void Inner_Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
|
| +#ifdef FDE_USEFORMATBLOCK
|
| + void RawInsert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
|
| +#endif
|
| + void GetPreDeleteText(CFX_WideString& wsText,
|
| + int32_t nIndex,
|
| + int32_t nLength);
|
| + void GetPreInsertText(CFX_WideString& wsText,
|
| + int32_t nIndex,
|
| + const FX_WCHAR* lpText,
|
| + int32_t nLength);
|
| + void GetPreReplaceText(CFX_WideString& wsText,
|
| + int32_t nIndex,
|
| + int32_t nOriginLength,
|
| + const FX_WCHAR* lpText,
|
| + int32_t nLength);
|
| +
|
| + void Inner_DeleteRange(int32_t nStart, int32_t nCount = -1);
|
| + void DeleteRange_DoRecord(int32_t nStart,
|
| + int32_t nCount,
|
| + FX_BOOL bSel = FALSE);
|
| + void ResetEngine();
|
| + void RebuildParagraphs();
|
| + void RemoveAllParags();
|
| + void RemoveAllPages();
|
| + void UpdateParags();
|
| + void UpdatePages();
|
| + void UpdateTxtBreak();
|
| +
|
| + FX_BOOL ReplaceParagEnd(FX_WCHAR*& lpText,
|
| + int32_t& nLength,
|
| + FX_BOOL bPreIsCR = FALSE);
|
| + void RecoverParagEnd(CFX_WideString& wsText);
|
| + int32_t MovePage2Char(int32_t nIndex);
|
| + void TextPos2ParagPos(int32_t nIndex, FDE_TXTEDTPARAGPOS& ParagPos) const;
|
| + int32_t MoveForward(FX_BOOL& bBefore);
|
| + int32_t MoveBackward(FX_BOOL& bBefore);
|
| + FX_BOOL MoveUp(CFX_PointF& ptCaret);
|
| + FX_BOOL MoveDown(CFX_PointF& ptCaret);
|
| + FX_BOOL MoveLineStart();
|
| + FX_BOOL MoveLineEnd();
|
| + FX_BOOL MoveParagStart();
|
| + FX_BOOL MoveParagEnd();
|
| + FX_BOOL MoveHome();
|
| + FX_BOOL MoveEnd();
|
| + FX_BOOL IsFitArea(CFX_WideString& wsText);
|
| + void UpdateCaretRect(int32_t nIndex, FX_BOOL bBefore = TRUE);
|
| + void GetCaretRect(CFX_RectF& rtCaret,
|
| + int32_t nPageIndex,
|
| + int32_t nCaret,
|
| + FX_BOOL bBefore = TRUE);
|
| + void UpdateCaretIndex(const CFX_PointF& ptCaret);
|
| +
|
| + FX_BOOL IsSelect();
|
| + void DeleteSelect();
|
| +
|
| + IFDE_TxtEdtBuf* m_pTxtBuf;
|
| + IFX_TxtBreak* m_pTextBreak;
|
| + FDE_TXTEDTPARAMS m_Param;
|
| + CFX_ArrayTemplate<IFDE_TxtEdtPage*> m_PagePtrArray;
|
| + CFX_ArrayTemplate<CFDE_TxtEdtParag*> m_ParagPtrArray;
|
| + CFX_ArrayTemplate<FDE_LPTXTEDTSELRANGE> m_SelRangePtrArr;
|
| + int32_t m_nPageLineCount;
|
| + int32_t m_nLineCount;
|
| + int32_t m_nAnchorPos;
|
| + int32_t m_nLayoutPos;
|
| + FX_FLOAT m_fCaretPosReserve;
|
| + int32_t m_nCaret;
|
| + FX_BOOL m_bBefore;
|
| + int32_t m_nCaretPage;
|
| + CFX_RectF m_rtCaret;
|
| + FX_DWORD m_dwFindFlags;
|
| + FX_BOOL m_bLock;
|
| + int32_t m_nLimit;
|
| + FX_WCHAR m_wcAliasChar;
|
| + int32_t m_nFirstLineEnd;
|
| + FX_BOOL m_bAutoLineEnd;
|
| + FX_WCHAR m_wLineEnd;
|
| + FDE_TXTEDT_TEXTCHANGE_INFO m_ChangeInfo;
|
| +};
|
| +class CFDE_TxtEdtDoRecord_Insert : public IFDE_TxtEdtDoRecord {
|
| + public:
|
| + CFDE_TxtEdtDoRecord_Insert(const CFX_ByteStringC& bsDoRecord);
|
| + CFDE_TxtEdtDoRecord_Insert(CFDE_TxtEdtEngine* pEngine,
|
| + int32_t nCaret,
|
| + const FX_WCHAR* lpText,
|
| + int32_t nLength);
|
| + virtual void Release();
|
| + virtual FX_BOOL Undo();
|
| + virtual FX_BOOL Redo();
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| +
|
| + protected:
|
| + ~CFDE_TxtEdtDoRecord_Insert();
|
| + void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| +
|
| + private:
|
| + CFDE_TxtEdtEngine* m_pEngine;
|
| + int32_t m_nCaret;
|
| + CFX_WideString m_wsInsert;
|
| +};
|
| +class CFDE_TxtEdtDoRecord_DeleteRange : public IFDE_TxtEdtDoRecord {
|
| + public:
|
| + CFDE_TxtEdtDoRecord_DeleteRange(const CFX_ByteStringC& bsDoRecord);
|
| + CFDE_TxtEdtDoRecord_DeleteRange(CFDE_TxtEdtEngine* pEngine,
|
| + int32_t nIndex,
|
| + int32_t nCaret,
|
| + const CFX_WideString& wsRange,
|
| + FX_BOOL bSel = FALSE);
|
| + virtual void Release();
|
| + virtual FX_BOOL Undo();
|
| + virtual FX_BOOL Redo();
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| +
|
| + protected:
|
| + ~CFDE_TxtEdtDoRecord_DeleteRange();
|
| + void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| +
|
| + private:
|
| + CFDE_TxtEdtEngine* m_pEngine;
|
| + FX_BOOL m_bSel;
|
| + int32_t m_nIndex;
|
| + int32_t m_nCaret;
|
| + CFX_WideString m_wsRange;
|
| +};
|
| +#ifdef FDE_USEFORMATBLOCK
|
| +class CFDE_TxtEdtDoRecord_FieldInsert : public IFDE_TxtEdtDoRecord {
|
| + public:
|
| + CFDE_TxtEdtDoRecord_FieldInsert(const CFX_ByteStringC& bsDoRecord);
|
| + CFDE_TxtEdtDoRecord_FieldInsert(CFDE_TxtEdtEngine* pEngine,
|
| + int32_t nCaret,
|
| + CFDE_TxtEdtField* pField,
|
| + int32_t nIndexInField,
|
| + int32_t nFieldBgn,
|
| + int32_t nOldFieldLength,
|
| + int32_t nNewFieldLength,
|
| + const CFX_WideString& wsIns,
|
| + FX_BOOL bSel = FALSE);
|
| + virtual void Release();
|
| + virtual FX_BOOL Undo();
|
| + virtual FX_BOOL Redo();
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| +
|
| + protected:
|
| + ~CFDE_TxtEdtDoRecord_FieldInsert();
|
| + void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| +
|
| + private:
|
| + CFDE_TxtEdtEngine* m_pEngine;
|
| + int32_t m_nCaret;
|
| + CFDE_TxtEdtField* m_pField;
|
| + int32_t m_nIndexInField;
|
| + int32_t m_nFieldBgn;
|
| + int32_t m_nOldFieldLength;
|
| + int32_t m_nNewFieldLength;
|
| + CFX_WideString m_wsIns;
|
| + FX_BOOL m_bSel;
|
| +};
|
| +class CFDE_TxtEdtDoRecord_FieldDelete : public IFDE_TxtEdtDoRecord {
|
| + public:
|
| + CFDE_TxtEdtDoRecord_FieldDelete(const CFX_ByteStringC& bsDoRecord);
|
| + CFDE_TxtEdtDoRecord_FieldDelete(CFDE_TxtEdtEngine* pEngine,
|
| + int32_t nCaret,
|
| + CFDE_TxtEdtField* pField,
|
| + int32_t nIndexInField,
|
| + int32_t nFieldBgn,
|
| + int32_t nOldLength,
|
| + int32_t nNewLength,
|
| + const CFX_WideString& wsDel,
|
| + FX_BOOL bSel = FALSE);
|
| + virtual void Release();
|
| + virtual FX_BOOL Undo();
|
| + virtual FX_BOOL Redo();
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| +
|
| + protected:
|
| + ~CFDE_TxtEdtDoRecord_FieldDelete();
|
| + void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| +
|
| + private:
|
| + CFDE_TxtEdtEngine* m_pEngine;
|
| + int32_t m_nCaret;
|
| + CFDE_TxtEdtField* m_pField;
|
| + int32_t m_nIndexInField;
|
| + int32_t m_nFieldBgn;
|
| + int32_t m_nOldFieldLength;
|
| + int32_t m_nNewFieldLength;
|
| + CFX_WideString m_wsDel;
|
| + FX_BOOL m_bSel;
|
| +};
|
| +class CFDE_TxtEdtDoRecord_FieldReplace : public IFDE_TxtEdtDoRecord {
|
| + public:
|
| + CFDE_TxtEdtDoRecord_FieldReplace(const CFX_ByteStringC& bsDoRecord);
|
| + CFDE_TxtEdtDoRecord_FieldReplace(CFDE_TxtEdtEngine* pEngine,
|
| + int32_t nCaret,
|
| + int32_t nNewCaret,
|
| + CFDE_TxtEdtField* pField,
|
| + int32_t nIndexInField,
|
| + int32_t nFieldBgn,
|
| + int32_t nFieldNewLength,
|
| + const CFX_WideString& wsDel,
|
| + const CFX_WideString& wsIns,
|
| + FX_BOOL bSel);
|
| + virtual void Release();
|
| + virtual FX_BOOL Undo();
|
| + virtual FX_BOOL Redo();
|
| + virtual void Serialize(CFX_ByteString& bsDoRecord) const;
|
| +
|
| + protected:
|
| + ~CFDE_TxtEdtDoRecord_FieldReplace();
|
| + void Deserialize(const CFX_ByteStringC& bsDoRecord);
|
| +
|
| + private:
|
| + CFDE_TxtEdtEngine* m_pEngine;
|
| + int32_t m_nCaret;
|
| + int32_t m_nNewCaret;
|
| + CFDE_TxtEdtField* m_pField;
|
| + int32_t m_nIndexInField;
|
| + int32_t m_nFieldBgn;
|
| + int32_t m_nFieldNewLength;
|
| + CFX_WideString m_wsDel;
|
| + CFX_WideString m_wsIns;
|
| + FX_BOOL m_bSel;
|
| +};
|
| +#endif
|
| +#endif
|
|
|