diff options
Diffstat (limited to 'xfa/fgas/layout/fgas_textbreak.h')
-rw-r--r-- | xfa/fgas/layout/fgas_textbreak.h | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/xfa/fgas/layout/fgas_textbreak.h b/xfa/fgas/layout/fgas_textbreak.h deleted file mode 100644 index 81aaf58219..0000000000 --- a/xfa/fgas/layout/fgas_textbreak.h +++ /dev/null @@ -1,102 +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_FGAS_LAYOUT_FGAS_TEXTBREAK_H_ -#define XFA_FGAS_LAYOUT_FGAS_TEXTBREAK_H_ - -#include <deque> -#include <memory> -#include <vector> - -#include "core/fxcrt/cfx_char.h" -#include "core/fxge/cfx_renderdevice.h" -#include "third_party/base/stl_util.h" -#include "xfa/fde/cfde_txtedtpage.h" -#include "xfa/fgas/layout/cfx_break.h" - -class CFGAS_GEFont; -struct FDE_TEXTEDITPIECE; - -#define FX_TXTCHARSTYLE_ArabicShadda 0x0020 -#define FX_TXTCHARSTYLE_OddBidiLevel 0x0040 - -enum CFX_TxtLineAlignment { - CFX_TxtLineAlignment_Left = 0, - CFX_TxtLineAlignment_Center = 1 << 0, - CFX_TxtLineAlignment_Right = 1 << 1, - CFX_TxtLineAlignment_Justified = 1 << 2 -}; - -inline bool CFX_BreakTypeNoneOrPiece(CFX_BreakType type) { - return type == CFX_BreakType::None || type == CFX_BreakType::Piece; -} - -struct FX_TXTRUN { - FX_TXTRUN(); - FX_TXTRUN(const FX_TXTRUN& other); - ~FX_TXTRUN(); - - CFDE_TxtEdtPage* pAccess; - const FDE_TEXTEDITPIECE* pIdentity; - CFX_WideString wsStr; - int32_t* pWidths; - int32_t iLength; - CFX_RetainPtr<CFGAS_GEFont> pFont; - float fFontSize; - uint32_t dwStyles; - int32_t iHorizontalScale; - int32_t iVerticalScale; - uint32_t dwCharStyles; - const CFX_RectF* pRect; - wchar_t wLineBreakChar; - bool bSkipSpace; -}; - -class CFX_TxtBreak : public CFX_Break { - public: - CFX_TxtBreak(); - ~CFX_TxtBreak() override; - - void SetLineWidth(float fLineWidth); - void SetAlignment(int32_t iAlignment); - void SetCombWidth(float fCombWidth); - CFX_BreakType EndBreak(CFX_BreakType dwStatus); - - int32_t GetDisplayPos(const FX_TXTRUN* pTxtRun, - FXTEXT_CHARPOS* pCharPos, - bool bCharCode = false, - CFX_WideString* pWSForms = nullptr) const; - std::vector<CFX_RectF> GetCharRects(const FX_TXTRUN* pTxtRun, - bool bCharBBox = false) const; - CFX_BreakType AppendChar(wchar_t wch); - - private: - void AppendChar_Combination(CFX_Char* pCurChar); - void AppendChar_Tab(CFX_Char* pCurChar); - void AppendChar_PageLoad(CFX_Char* pCurChar, uint32_t dwProps); - CFX_BreakType AppendChar_Control(CFX_Char* pCurChar); - CFX_BreakType AppendChar_Arabic(CFX_Char* pCurChar); - CFX_BreakType AppendChar_Others(CFX_Char* pCurChar); - - void ResetContextCharStyles(); - bool EndBreak_SplitLine(CFX_BreakLine* pNextLine, bool bAllChars); - void EndBreak_BidiLine(std::deque<FX_TPO>* tpos, CFX_BreakType dwStatus); - void EndBreak_Alignment(const std::deque<FX_TPO>& tpos, - bool bAllChars, - CFX_BreakType dwStatus); - int32_t GetBreakPos(std::vector<CFX_Char>& ca, - int32_t& iEndPos, - bool bAllChars = false, - bool bOnlyBrk = false); - void SplitTextLine(CFX_BreakLine* pCurLine, - CFX_BreakLine* pNextLine, - bool bAllChars = false); - - int32_t m_iAlignment; - int32_t m_iCombWidth; -}; - -#endif // XFA_FGAS_LAYOUT_FGAS_TEXTBREAK_H_ |