Home | History | Annotate | Download | only in include
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef _FDE_TEXTOUT
      8 #define _FDE_TEXTOUT
      9 class IFDE_TextOut;
     10 #define FDE_TTOSTYLE_Underline 0x0001
     11 #define FDE_TTOSTYLE_Strikeout 0x0002
     12 #define FDE_TTOSTYLE_VerticalLayout 0x0004
     13 #define FDE_TTOSTYLE_SingleLine 0x0010
     14 #define FDE_TTOSTYLE_ExpandTab 0x0020
     15 #define FDE_TTOSTYLE_HotKey 0x0040
     16 #define FDE_TTOSTYLE_Ellipsis 0x0080
     17 #define FDE_TTOSTYLE_LineWrap 0x0100
     18 #define FDE_TTOSTYLE_ArabicShapes 0x0200
     19 #define FDE_TTOSTYLE_RTL 0x0400
     20 #define FDE_TTOSTYLE_ArabicContext 0x0800
     21 #define FDE_TTOSTYLE_LastLineHeight 0x1000
     22 #define FDE_TTOALIGNMENT_TopLeft 0
     23 #define FDE_TTOALIGNMENT_TopCenter 1
     24 #define FDE_TTOALIGNMENT_TopRight 2
     25 #define FDE_TTOALIGNMENT_TopAuto 3
     26 #define FDE_TTOALIGNMENT_CenterLeft 4
     27 #define FDE_TTOALIGNMENT_Center 5
     28 #define FDE_TTOALIGNMENT_CenterRight 6
     29 #define FDE_TTOALIGNMENT_CenterAuto 7
     30 #define FDE_TTOALIGNMENT_BottomLeft 8
     31 #define FDE_TTOALIGNMENT_BottomCenter 9
     32 #define FDE_TTOALIGNMENT_BottomRight 10
     33 #define FDE_TTOALIGNMENT_BottomAuto 11
     34 
     35 class IFDE_TextOut {
     36  public:
     37   static IFDE_TextOut* Create();
     38   virtual ~IFDE_TextOut() {}
     39   virtual void Release() = 0;
     40   virtual void SetFont(IFX_Font* pFont) = 0;
     41   virtual void SetFontSize(FX_FLOAT fFontSize) = 0;
     42   virtual void SetTextColor(FX_ARGB color) = 0;
     43   virtual void SetStyles(FX_DWORD dwStyles) = 0;
     44   virtual void SetTabWidth(FX_FLOAT fTabWidth) = 0;
     45   virtual void SetEllipsisString(const CFX_WideString& wsEllipsis) = 0;
     46   virtual void SetParagraphBreakChar(FX_WCHAR wch) = 0;
     47   virtual void SetAlignment(int32_t iAlignment) = 0;
     48   virtual void SetLineSpace(FX_FLOAT fLineSpace) = 0;
     49   virtual void SetDIBitmap(CFX_DIBitmap* pDIB) = 0;
     50   virtual void SetRenderDevice(CFX_RenderDevice* pDevice) = 0;
     51   virtual void SetClipRect(const CFX_Rect& rtClip) = 0;
     52   virtual void SetClipRect(const CFX_RectF& rtClip) = 0;
     53   virtual void SetMatrix(const CFX_Matrix& matrix) = 0;
     54   virtual void SetLineBreakTolerance(FX_FLOAT fTolerance) = 0;
     55   virtual void CalcSize(const FX_WCHAR* pwsStr,
     56                         int32_t iLength,
     57                         CFX_Size& size) = 0;
     58   virtual void CalcSize(const FX_WCHAR* pwsStr,
     59                         int32_t iLength,
     60                         CFX_SizeF& size) = 0;
     61   virtual void CalcSize(const FX_WCHAR* pwsStr,
     62                         int32_t iLength,
     63                         CFX_Rect& rect) = 0;
     64   virtual void CalcSize(const FX_WCHAR* pwsStr,
     65                         int32_t iLength,
     66                         CFX_RectF& rect) = 0;
     67   virtual void DrawText(const FX_WCHAR* pwsStr,
     68                         int32_t iLength,
     69                         int32_t x,
     70                         int32_t y) = 0;
     71   virtual void DrawText(const FX_WCHAR* pwsStr,
     72                         int32_t iLength,
     73                         FX_FLOAT x,
     74                         FX_FLOAT y) = 0;
     75   virtual void DrawText(const FX_WCHAR* pwsStr,
     76                         int32_t iLength,
     77                         const CFX_Rect& rect) = 0;
     78   virtual void DrawText(const FX_WCHAR* pwsStr,
     79                         int32_t iLength,
     80                         const CFX_RectF& rect) = 0;
     81   virtual void SetLogicClipRect(const CFX_RectF& rtClip) = 0;
     82   virtual void CalcLogicSize(const FX_WCHAR* pwsStr,
     83                              int32_t iLength,
     84                              CFX_SizeF& size) = 0;
     85   virtual void CalcLogicSize(const FX_WCHAR* pwsStr,
     86                              int32_t iLength,
     87                              CFX_RectF& rect) = 0;
     88   virtual void DrawLogicText(const FX_WCHAR* pwsStr,
     89                              int32_t iLength,
     90                              FX_FLOAT x,
     91                              FX_FLOAT y) = 0;
     92   virtual void DrawLogicText(const FX_WCHAR* pwsStr,
     93                              int32_t iLength,
     94                              const CFX_RectF& rect) = 0;
     95   virtual int32_t GetTotalLines() = 0;
     96 };
     97 #endif
     98