summaryrefslogtreecommitdiff
path: root/xfa/fde/tto/fde_textout.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fde/tto/fde_textout.h')
-rw-r--r--xfa/fde/tto/fde_textout.h175
1 files changed, 0 insertions, 175 deletions
diff --git a/xfa/fde/tto/fde_textout.h b/xfa/fde/tto/fde_textout.h
deleted file mode 100644
index 2ca77217a6..0000000000
--- a/xfa/fde/tto/fde_textout.h
+++ /dev/null
@@ -1,175 +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_FDE_TTO_FDE_TEXTOUT_H_
-#define XFA_FDE_TTO_FDE_TEXTOUT_H_
-
-#include <deque>
-#include <memory>
-#include <vector>
-
-#include "core/fxcrt/cfx_char.h"
-#include "core/fxge/cfx_fxgedevice.h"
-#include "core/fxge/cfx_renderdevice.h"
-#include "core/fxge/fx_dib.h"
-#include "xfa/fgas/font/cfgas_fontmgr.h"
-
-#define FDE_TTOSTYLE_Underline 0x0001
-#define FDE_TTOSTYLE_Strikeout 0x0002
-#define FDE_TTOSTYLE_SingleLine 0x0010
-#define FDE_TTOSTYLE_HotKey 0x0040
-#define FDE_TTOSTYLE_Ellipsis 0x0080
-#define FDE_TTOSTYLE_LineWrap 0x0100
-#define FDE_TTOSTYLE_LastLineHeight 0x1000
-#define FDE_TTOALIGNMENT_TopLeft 0
-#define FDE_TTOALIGNMENT_TopCenter 1
-#define FDE_TTOALIGNMENT_TopRight 2
-#define FDE_TTOALIGNMENT_TopAuto 3
-#define FDE_TTOALIGNMENT_CenterLeft 4
-#define FDE_TTOALIGNMENT_Center 5
-#define FDE_TTOALIGNMENT_CenterRight 6
-#define FDE_TTOALIGNMENT_CenterAuto 7
-#define FDE_TTOALIGNMENT_BottomLeft 8
-#define FDE_TTOALIGNMENT_BottomCenter 9
-#define FDE_TTOALIGNMENT_BottomRight 10
-#define FDE_TTOALIGNMENT_BottomAuto 11
-
-class CFDE_Pen;
-class CFDE_RenderDevice;
-class CFX_RenderDevice;
-class CFX_TxtBreak;
-struct FX_TXTRUN;
-
-struct FDE_TTOPIECE {
- FDE_TTOPIECE();
- FDE_TTOPIECE(const FDE_TTOPIECE& that);
- ~FDE_TTOPIECE();
-
- int32_t iStartChar;
- int32_t iChars;
- uint32_t dwCharStyles;
- CFX_RectF rtPiece;
-};
-
-class CFDE_TTOLine {
- public:
- CFDE_TTOLine();
- CFDE_TTOLine(const CFDE_TTOLine& ttoLine);
- ~CFDE_TTOLine();
-
- bool GetNewReload() const { return m_bNewReload; }
- void SetNewReload(bool reload) { m_bNewReload = reload; }
- int32_t AddPiece(int32_t index, const FDE_TTOPIECE& ttoPiece);
- int32_t GetSize() const;
- FDE_TTOPIECE* GetPtrAt(int32_t index);
- void RemoveLast(int32_t iCount);
- void RemoveAll();
-
- private:
- bool m_bNewReload;
- std::deque<FDE_TTOPIECE> m_pieces;
-};
-
-class CFDE_TextOut {
- public:
- CFDE_TextOut();
- ~CFDE_TextOut();
-
- void SetFont(const CFX_RetainPtr<CFGAS_GEFont>& pFont);
- void SetFontSize(float fFontSize);
- void SetTextColor(FX_ARGB color);
- void SetStyles(uint32_t dwStyles);
- void SetTabWidth(float fTabWidth);
- void SetEllipsisString(const CFX_WideString& wsEllipsis);
- void SetParagraphBreakChar(wchar_t wch);
- void SetAlignment(int32_t iAlignment);
- void SetLineSpace(float fLineSpace);
- void SetDIBitmap(const CFX_RetainPtr<CFX_DIBitmap>& pDIB);
- void SetRenderDevice(CFX_RenderDevice* pDevice);
- void SetClipRect(const CFX_Rect& rtClip);
- void SetClipRect(const CFX_RectF& rtClip);
- void SetMatrix(const CFX_Matrix& matrix);
- void SetLineBreakTolerance(float fTolerance);
-
- void DrawText(const wchar_t* pwsStr, int32_t iLength, int32_t x, int32_t y);
- void DrawText(const wchar_t* pwsStr, int32_t iLength, float x, float y);
- void DrawText(const wchar_t* pwsStr, int32_t iLength, const CFX_Rect& rect);
- void DrawText(const wchar_t* pwsStr, int32_t iLength, const CFX_RectF& rect);
-
- void SetLogicClipRect(const CFX_RectF& rtClip);
- void CalcLogicSize(const wchar_t* pwsStr, int32_t iLength, CFX_SizeF& size);
- void CalcLogicSize(const wchar_t* pwsStr, int32_t iLength, CFX_RectF& rect);
- void DrawLogicText(const wchar_t* pwsStr, int32_t iLength, float x, float y);
- void DrawLogicText(const wchar_t* pwsStr,
- int32_t iLength,
- const CFX_RectF& rect);
- int32_t GetTotalLines();
-
- protected:
- void CalcTextSize(const wchar_t* pwsStr, int32_t iLength, CFX_RectF& rect);
- bool RetrieveLineWidth(CFX_BreakType dwBreakStatus,
- float& fStartPos,
- float& fWidth,
- float& fHeight);
- void SetLineWidth(CFX_RectF& rect);
- void DrawText(const wchar_t* pwsStr,
- int32_t iLength,
- const CFX_RectF& rect,
- const CFX_RectF& rtClip);
- void LoadText(const wchar_t* pwsStr, int32_t iLength, const CFX_RectF& rect);
- void LoadEllipsis();
- void ExpandBuffer(int32_t iSize, int32_t iType);
- void RetrieveEllPieces(std::vector<int32_t>* pCharWidths);
-
- void Reload(const CFX_RectF& rect);
- void ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect);
- bool RetrievePieces(CFX_BreakType dwBreakStatus,
- int32_t& iStartChar,
- int32_t& iPieceWidths,
- bool bReload,
- const CFX_RectF& rect);
- void AppendPiece(const FDE_TTOPIECE& ttoPiece, bool bNeedReload, bool bEnd);
- void ReplaceWidthEllipsis();
- void DoAlignment(const CFX_RectF& rect);
- void OnDraw(const CFX_RectF& rtClip);
- int32_t GetDisplayPos(FDE_TTOPIECE* pPiece);
- int32_t GetCharRects(const FDE_TTOPIECE* pPiece);
-
- FX_TXTRUN ToTextRun(const FDE_TTOPIECE* pPiece);
- void DrawLine(const FDE_TTOPIECE* pPiece, CFDE_Pen* pPen);
-
- std::unique_ptr<CFX_TxtBreak> m_pTxtBreak;
- CFX_RetainPtr<CFGAS_GEFont> m_pFont;
- float m_fFontSize;
- float m_fLineSpace;
- float m_fLinePos;
- float m_fTolerance;
- int32_t m_iAlignment;
- int32_t m_iTxtBkAlignment;
- std::vector<int32_t> m_CharWidths;
- std::vector<int32_t> m_EllCharWidths;
- wchar_t m_wParagraphBkChar;
- FX_ARGB m_TxtColor;
- uint32_t m_dwStyles;
- uint32_t m_dwTxtBkStyles;
- CFX_WideString m_wsEllipsis;
- bool m_bElliChanged;
- int32_t m_iEllipsisWidth;
- CFX_WideString m_wsText;
- CFX_RectF m_rtClip;
- CFX_RectF m_rtLogicClip;
- CFX_Matrix m_Matrix;
- std::deque<CFDE_TTOLine> m_ttoLines;
- int32_t m_iCurLine;
- int32_t m_iCurPiece;
- int32_t m_iTotalLines;
- std::vector<FXTEXT_CHARPOS> m_CharPos;
- std::unique_ptr<CFDE_RenderDevice> m_pRenderDevice;
- std::vector<int32_t> m_HotKeys;
- std::vector<CFX_RectF> m_rectArray;
-};
-
-#endif // XFA_FDE_TTO_FDE_TEXTOUT_H_