diff options
Diffstat (limited to 'xfa/src/fee/fde_txtedtengine.h')
-rw-r--r-- | xfa/src/fee/fde_txtedtengine.h | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/xfa/src/fee/fde_txtedtengine.h b/xfa/src/fee/fde_txtedtengine.h deleted file mode 100644 index ef1270f3d5..0000000000 --- a/xfa/src/fee/fde_txtedtengine.h +++ /dev/null @@ -1,247 +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 XFA_SRC_FEE_FDE_TXTEDTENGINE_H_ -#define XFA_SRC_FEE_FDE_TXTEDTENGINE_H_ - -#include "core/include/fxcrt/fx_string.h" -#include "xfa/src/fee/ifde_txtedtbuf.h" -#include "xfa/src/fee/ifde_txtedtengine.h" - -class IFX_TxtBreak; -class IFX_CharIter; -class CFDE_TxtEdtParag; -class CFDE_TxtEdtDoRecord_Insert; -class CFDE_TxtEdtDoRecord_DeleteRange; - -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; - 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); - - 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); - 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; -}; - -#endif // XFA_SRC_FEE_FDE_TXTEDTENGINE_H_ |