diff options
Diffstat (limited to 'xfa/fee/fde_txtedtpage.h')
-rw-r--r-- | xfa/fee/fde_txtedtpage.h | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/xfa/fee/fde_txtedtpage.h b/xfa/fee/fde_txtedtpage.h deleted file mode 100644 index 81f29fed49..0000000000 --- a/xfa/fee/fde_txtedtpage.h +++ /dev/null @@ -1,170 +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_FEE_FDE_TXTEDTPAGE_H_ -#define XFA_FEE_FDE_TXTEDTPAGE_H_ - -#include <memory> - -#include "core/fxcrt/include/fx_coordinates.h" -#include "core/fxcrt/include/fx_string.h" -#include "xfa/fde/fde_visualset.h" -#include "xfa/fee/ifde_txtedtpage.h" -#include "xfa/fgas/crt/fgas_utils.h" - -class IFX_CharIter; -class CFDE_TxtEdtEngine; -class CFDE_TxtEdtPage; -class CFDE_TxtEdtParag; - -enum FDE_TXTEDT_CHARTYPE { - FDE_TXTEDT_CHARTYPE_Unknown = 0, - FDE_TXTEDT_CHARTYPE_Tab, - FDE_TXTEDT_CHARTYPE_Space, - FDE_TXTEDT_CHARTYPE_Punctuation, - FDE_TXTEDT_CHARTYPE_LineBreak, - FDE_TXTEDT_CHARTYPE_Number, - FDE_TXTEDT_CHARTYPE_Char, - FDE_TXTEDT_CHARTYPE_CJK, -}; - -inline FDE_TXTEDT_CHARTYPE FDE_GetEditSelCharType(FX_WCHAR wChar) { - if (wChar == 0x9) { - return FDE_TXTEDT_CHARTYPE_Tab; - } else if (wChar == 0x20 || wChar == 0xA0) { - return FDE_TXTEDT_CHARTYPE_Space; - } else if (wChar == 0x9 || wChar == 0x20 || wChar == 0xA0 || - (wChar >= L'!' && wChar <= L'/') || - (wChar >= L':' && wChar <= L'@') || - (wChar >= L'[' && wChar <= L'^') || - (wChar >= L'{' && wChar <= L'~') || wChar == 0x60) { - return FDE_TXTEDT_CHARTYPE_Punctuation; - } else if (wChar == 0x0a || wChar == 0x0d) { - return FDE_TXTEDT_CHARTYPE_LineBreak; - } else if (wChar >= '0' && wChar <= '9') { - return FDE_TXTEDT_CHARTYPE_Number; - } else if ((wChar >= 0x2e80 && wChar <= 0x2eff) || - (wChar >= 0x3000 && wChar <= 0x303f) || - (wChar >= 0x31c0 && wChar <= 0x31ef) || - (wChar >= 0x3200 && wChar <= 0x32ff) || - (wChar >= 0x3300 && wChar <= 0x33ff) || - (wChar >= 0x3400 && wChar <= 0x4dbf) || - (wChar >= 0x4e00 && wChar <= 0x9fff) || - (wChar >= 0xf900 && wChar <= 0xfaff) || - (wChar >= 0xfe30 && wChar <= 0xfe4f)) { - return FDE_TXTEDT_CHARTYPE_CJK; - } else { - return FDE_TXTEDT_CHARTYPE_Char; - } -} - -struct FDE_TEXTEDITPIECE { - int32_t nStart; - int32_t nCount; - int32_t nBidiLevel; - CFX_RectF rtPiece; - uint32_t dwCharStyles; -}; -typedef CFX_MassArrayTemplate<FDE_TEXTEDITPIECE> CFDE_TXTEDTPieceMassArray; - -class CFDE_TxtEdtTextSet : public IFDE_TextSet { - public: - CFDE_TxtEdtTextSet(CFDE_TxtEdtPage* pPage); - ~CFDE_TxtEdtTextSet(); - - virtual FDE_VISUALOBJTYPE GetType(); - virtual FX_BOOL GetBBox(FDE_HVISUALOBJ hVisualObj, CFX_RectF& bbox); - virtual FX_BOOL GetMatrix(FDE_HVISUALOBJ hVisualObj, CFX_Matrix& matrix); - virtual FX_BOOL GetRect(FDE_HVISUALOBJ hVisualObj, CFX_RectF& rt); - virtual FX_BOOL GetClip(FDE_HVISUALOBJ hVisualObj, CFX_RectF& rt); - virtual int32_t GetString(FDE_HVISUALOBJ hText, CFX_WideString& wsText); - virtual IFX_Font* GetFont(FDE_HVISUALOBJ hText); - virtual FX_FLOAT GetFontSize(FDE_HVISUALOBJ hText); - virtual FX_ARGB GetFontColor(FDE_HVISUALOBJ hText); - virtual int32_t GetDisplayPos(FDE_HVISUALOBJ hText, - FXTEXT_CHARPOS* pCharPos, - FX_BOOL bCharCode = FALSE, - CFX_WideString* pWSForms = NULL); - virtual int32_t GetCharRects(FDE_HVISUALOBJ hText, CFX_RectFArray& rtArray); - virtual int32_t GetCharRects_Impl(FDE_HVISUALOBJ hText, - CFX_RectFArray& rtArray, - FX_BOOL bBBox = FALSE); - - private: - CFDE_TxtEdtPage* m_pPage; -}; - -class CFDE_TxtEdtPage : public IFDE_TxtEdtPage { - public: - CFDE_TxtEdtPage(CFDE_TxtEdtEngine* pEngine, int32_t nLineIndex); - - // IFDE_TxtEditPage: - void Release() override; - CFDE_TxtEdtEngine* GetEngine() const override; - int32_t GetCharRect(int32_t nIndex, - CFX_RectF& rect, - FX_BOOL bBBox = FALSE) const override; - int32_t GetCharIndex(const CFX_PointF& fPoint, FX_BOOL& bBefore) override; - void CalcRangeRectArray(int32_t nStart, - int32_t nCount, - CFX_RectFArray& RectFArr) const override; - int32_t SelectWord(const CFX_PointF& fPoint, int32_t& nCount) override; - int32_t GetCharStart() const override; - int32_t GetCharCount() const override; - int32_t GetDisplayPos(const CFX_RectF& rtClip, - FXTEXT_CHARPOS*& pCharPos, - CFX_RectF* pBBox) const override; - FX_BOOL IsLoaded(const CFX_RectF* pClipBox) override; - int32_t LoadPage(const CFX_RectF* pClipBox, IFX_Pause* pPause) override; - void UnloadPage(const CFX_RectF* pClipBox) override; - const CFX_RectF& GetContentsBox() override; - - // IFDE_VisualSet: - FDE_VISUALOBJTYPE GetType() override; - FX_BOOL GetBBox(FDE_HVISUALOBJ hVisualObj, CFX_RectF& bbox) override; - FX_BOOL GetMatrix(FDE_HVISUALOBJ hVisualObj, CFX_Matrix& matrix) override; - FX_BOOL GetRect(FDE_HVISUALOBJ hVisualObj, CFX_RectF& rt) override; - FX_BOOL GetClip(FDE_HVISUALOBJ hVisualObj, CFX_RectF& rt) override; - - // IFDE_CanvasSet: - FX_POSITION GetFirstPosition(FDE_HVISUALOBJ hCanvas) override; - FDE_HVISUALOBJ GetNext(FDE_HVISUALOBJ hCanvas, - FX_POSITION& pos, - IFDE_VisualSet*& pVisualSet) override; - FDE_HVISUALOBJ GetParentCanvas(FDE_HVISUALOBJ hCanvas, - IFDE_VisualSet*& pVisualSet) override; - - // IFX_TxtAccess: - FX_WCHAR GetChar(void* pIdentity, int32_t index) const override; - int32_t GetWidth(void* pIdentity, int32_t index) const override; - - protected: - virtual ~CFDE_TxtEdtPage(); - - private: - void NormalizePt2Rect(CFX_PointF& ptF, - const CFX_RectF& rtF, - FX_FLOAT fTolerance) const; - - std::unique_ptr<IFX_CharIter> m_pIter; - CFDE_TxtEdtTextSet* m_pTextSet; - CFDE_TxtEdtEngine* m_pEditEngine; - CFDE_TXTEDTPieceMassArray m_PieceMassArr; - CFDE_TxtEdtParag* m_pBgnParag; - CFDE_TxtEdtParag* m_pEndParag; - int32_t m_nRefCount; - int32_t m_nPageStart; - int32_t m_nCharCount; - int32_t m_nPageIndex; - FX_BOOL m_bLoaded; - CFX_RectF m_rtPage; - CFX_RectF m_rtPageMargin; - CFX_RectF m_rtPageContents; - CFX_RectF m_rtPageCanvas; - int32_t* m_pCharWidth; -}; - -#endif // XFA_FEE_FDE_TXTEDTPAGE_H_ |