diff options
Diffstat (limited to 'xfa/fde/cfde_txtedtpage.h')
-rw-r--r-- | xfa/fde/cfde_txtedtpage.h | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/xfa/fde/cfde_txtedtpage.h b/xfa/fde/cfde_txtedtpage.h index aa88801ba7..c118fe2fee 100644 --- a/xfa/fde/cfde_txtedtpage.h +++ b/xfa/fde/cfde_txtedtpage.h @@ -11,22 +11,37 @@ #include <memory> #include <vector> +#include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/ifx_chariter.h" -#include "xfa/fde/ifde_visualset.h" +#include "core/fxge/cfx_renderdevice.h" class CFDE_TxtEdtEngine; class CFDE_TxtEdtParag; class CFDE_TxtEdtTextSet; -class CFDE_TxtEdtPage : public IFDE_VisualSet { +struct FDE_TEXTEDITPIECE { + FDE_TEXTEDITPIECE(); + FDE_TEXTEDITPIECE(const FDE_TEXTEDITPIECE& that); + ~FDE_TEXTEDITPIECE(); + + int32_t nStart; + int32_t nCount; + int32_t nBidiLevel; + CFX_RectF rtPiece; + uint32_t dwCharStyles; +}; + +inline FDE_TEXTEDITPIECE::FDE_TEXTEDITPIECE() = default; +inline FDE_TEXTEDITPIECE::FDE_TEXTEDITPIECE(const FDE_TEXTEDITPIECE& that) = + default; +inline FDE_TEXTEDITPIECE::~FDE_TEXTEDITPIECE() = default; + +class CFDE_TxtEdtPage { public: CFDE_TxtEdtPage(CFDE_TxtEdtEngine* pEngine, int32_t nLineIndex); - ~CFDE_TxtEdtPage() override; - - // IFDE_VisualSet: - FDE_VISUALOBJTYPE GetType() override; - CFX_RectF GetRect(const FDE_TEXTEDITPIECE& pPiece) override; + ~CFDE_TxtEdtPage(); + CFX_RectF GetRect(const FDE_TEXTEDITPIECE& pPiece); CFDE_TxtEdtEngine* GetEngine() const; int32_t GetCharRect(int32_t nIndex, CFX_RectF& rect, @@ -46,12 +61,14 @@ class CFDE_TxtEdtPage : public IFDE_VisualSet { void UnloadPage(const CFX_RectF* pClipBox); const CFX_RectF& GetContentsBox(); - size_t GetFirstPosition(); - FDE_TEXTEDITPIECE* GetNext(size_t* pos, IFDE_VisualSet*& pVisualSet); + size_t GetTextPieceCount() const; + const FDE_TEXTEDITPIECE& GetTextPiece(size_t pos) const; wchar_t GetChar(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const; int32_t GetWidth(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const; + CFDE_TxtEdtTextSet* GetTextSet() const { return m_pTextSet.get(); } + private: void NormalizePt2Rect(CFX_PointF& ptF, const CFX_RectF& rtF, |