diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 14:14:16 -0400 |
---|---|---|
committer | Dan Sinclair <dsinclair@chromium.org> | 2016-03-14 14:14:16 -0400 |
commit | 1770c021cf998ff1b33855b1397f6ea8ff9f7cd7 (patch) | |
tree | 285e39abd4b5872d8cd632b9e331b0667fdc3eae /xfa/fee/fde_txtedtbuf.h | |
parent | f766ad219f66543654520f6a1955836f519e26d1 (diff) | |
download | pdfium-1770c021cf998ff1b33855b1397f6ea8ff9f7cd7.tar.xz |
Move xfa/src up to xfa/.
This CL moves the xfa/src files up to the xfa/ directory and fixes the includes,
include guards, and build files.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1803723002 .
Diffstat (limited to 'xfa/fee/fde_txtedtbuf.h')
-rw-r--r-- | xfa/fee/fde_txtedtbuf.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/xfa/fee/fde_txtedtbuf.h b/xfa/fee/fde_txtedtbuf.h new file mode 100644 index 0000000000..e0598f5244 --- /dev/null +++ b/xfa/fee/fde_txtedtbuf.h @@ -0,0 +1,92 @@ +// 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_FEE_FDE_TXTEDTBUF_H_ +#define XFA_FEE_FDE_TXTEDTBUF_H_ + +#include "xfa/fee/ifde_txtedtbuf.h" +#include "xfa/fee/ifde_txtedtengine.h" +#include "xfa/fgas/crt/fgas_memory.h" + +class IFX_CharIter; +class CFDE_TxtEdtBuf; + +class CFDE_TxtEdtBufIter : public IFX_CharIter { + public: + CFDE_TxtEdtBufIter(CFDE_TxtEdtBuf* pBuf, FX_WCHAR wcAlias = 0); + + virtual void Release(); + virtual FX_BOOL Next(FX_BOOL bPrev = FALSE); + virtual FX_WCHAR GetChar(); + virtual void SetAt(int32_t nIndex); + virtual int32_t GetAt() const; + virtual FX_BOOL IsEOF(FX_BOOL bTail = TRUE) const; + virtual IFX_CharIter* Clone(); + + protected: + ~CFDE_TxtEdtBufIter(); + + private: + CFDE_TxtEdtBuf* m_pBuf; + int32_t m_nCurChunk; + int32_t m_nCurIndex; + int32_t m_nIndex; + FX_WCHAR m_Alias; +}; +class CFDE_TxtEdtBuf : public IFDE_TxtEdtBuf { + friend class CFDE_TxtEdtBufIter; + struct _FDE_CHUNKHEADER { + int32_t nUsed; + FX_WCHAR wChars[1]; + }; + typedef _FDE_CHUNKHEADER FDE_CHUNKHEADER; + typedef _FDE_CHUNKHEADER* FDE_LPCHUNKHEADER; + struct _FDE_CHUNKPLACE { + int32_t nChunkIndex; + int32_t nCharIndex; + }; + typedef _FDE_CHUNKPLACE FDE_CHUNKPLACE; + typedef _FDE_CHUNKPLACE* FDE_LPCHUNKPLACE; + + public: + CFDE_TxtEdtBuf(int32_t nDefChunkSize = FDE_DEFCHUNKLENGTH); + + virtual void Release(); + virtual FX_BOOL SetChunkSize(int32_t nChunkSize); + virtual int32_t GetChunkSize() const; + virtual int32_t GetTextLength() const; + virtual void SetText(const CFX_WideString& wsText); + virtual void GetText(CFX_WideString& wsText) const; + virtual FX_WCHAR GetCharByIndex(int32_t nIndex) const; + virtual void GetRange(CFX_WideString& wsText, + int32_t nBegine, + int32_t nCount = -1) const; + + virtual void Insert(int32_t nPos, + const FX_WCHAR* lpText, + int32_t nLength = 1); + virtual void Delete(int32_t nIndex, int32_t nLength = 1); + virtual void Clear(FX_BOOL bRelease = TRUE); + + virtual FX_BOOL Optimize(IFX_Pause* pPause = NULL); + + protected: + virtual ~CFDE_TxtEdtBuf(); + + private: + void ResetChunkBuffer(int32_t nDefChunkCount, int32_t nChunkSize); + int32_t CP2Index(const FDE_CHUNKPLACE& cp) const; + void Index2CP(int32_t nIndex, FDE_CHUNKPLACE& cp) const; + + int32_t m_nChunkSize; + + int32_t m_nTotal; + FX_BOOL m_bChanged; + CFX_PtrArray m_Chunks; + IFX_MEMAllocator* m_pAllocator; +}; + +#endif // XFA_FEE_FDE_TXTEDTBUF_H_ |