1 // Copyright 2014 PDFium Authors. All rights reserved.
\r
2 // Use of this source code is governed by a BSD-style license that can be
\r
3 // found in the LICENSE file.
\r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
\r
10 #define FDE_TTOSTYLE_Underline 0x0001
\r
11 #define FDE_TTOSTYLE_Strikeout 0x0002
\r
12 #define FDE_TTOSTYLE_VerticalLayout 0x0004
\r
13 #define FDE_TTOSTYLE_SingleLine 0x0010
\r
14 #define FDE_TTOSTYLE_ExpandTab 0x0020
\r
15 #define FDE_TTOSTYLE_HotKey 0x0040
\r
16 #define FDE_TTOSTYLE_Ellipsis 0x0080
\r
17 #define FDE_TTOSTYLE_LineWrap 0x0100
\r
18 #define FDE_TTOSTYLE_ArabicShapes 0x0200
\r
19 #define FDE_TTOSTYLE_RTL 0x0400
\r
20 #define FDE_TTOSTYLE_ArabicContext 0x0800
\r
21 #define FDE_TTOSTYLE_LastLineHeight 0x1000
\r
22 #define FDE_TTOALIGNMENT_TopLeft 0
\r
23 #define FDE_TTOALIGNMENT_TopCenter 1
\r
24 #define FDE_TTOALIGNMENT_TopRight 2
\r
25 #define FDE_TTOALIGNMENT_TopAuto 3
\r
26 #define FDE_TTOALIGNMENT_CenterLeft 4
\r
27 #define FDE_TTOALIGNMENT_Center 5
\r
28 #define FDE_TTOALIGNMENT_CenterRight 6
\r
29 #define FDE_TTOALIGNMENT_CenterAuto 7
\r
30 #define FDE_TTOALIGNMENT_BottomLeft 8
\r
31 #define FDE_TTOALIGNMENT_BottomCenter 9
\r
32 #define FDE_TTOALIGNMENT_BottomRight 10
\r
33 #define FDE_TTOALIGNMENT_BottomAuto 11
\r
37 static IFDE_TextOut* Create();
\r
38 virtual void Release() = 0;
\r
39 virtual void SetFont(IFX_Font *pFont) = 0;
\r
40 virtual void SetFontSize(FX_FLOAT fFontSize) = 0;
\r
41 virtual void SetTextColor(FX_ARGB color) = 0;
\r
42 virtual void SetStyles(FX_DWORD dwStyles) = 0;
\r
43 virtual void SetTabWidth(FX_FLOAT fTabWidth) = 0;
\r
44 virtual void SetEllipsisString(const CFX_WideString &wsEllipsis) = 0;
\r
45 virtual void SetParagraphBreakChar(FX_WCHAR wch) = 0;
\r
46 virtual void SetAlignment(FX_INT32 iAlignment) = 0;
\r
47 virtual void SetLineSpace(FX_FLOAT fLineSpace) = 0;
\r
48 virtual void SetDIBitmap(CFX_DIBitmap *pDIB) = 0;
\r
49 virtual void SetRenderDevice(CFX_RenderDevice *pDevice) = 0;
\r
50 virtual void SetClipRect(const CFX_Rect &rtClip) = 0;
\r
51 virtual void SetClipRect(const CFX_RectF &rtClip) = 0;
\r
52 virtual void SetMatrix(const CFX_Matrix &matrix) = 0;
\r
53 virtual void SetLineBreakTolerance(FX_FLOAT fTolerance) = 0;
\r
54 virtual void CalcSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_Size &size) = 0;
\r
55 virtual void CalcSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_SizeF &size) = 0;
\r
56 virtual void CalcSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_Rect &rect) = 0;
\r
57 virtual void CalcSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_RectF &rect) = 0;
\r
58 virtual void DrawText(FX_LPCWSTR pwsStr, FX_INT32 iLength, FX_INT32 x, FX_INT32 y) = 0;
\r
59 virtual void DrawText(FX_LPCWSTR pwsStr, FX_INT32 iLength, FX_FLOAT x, FX_FLOAT y) = 0;
\r
60 virtual void DrawText(FX_LPCWSTR pwsStr, FX_INT32 iLength, const CFX_Rect &rect) = 0;
\r
61 virtual void DrawText(FX_LPCWSTR pwsStr, FX_INT32 iLength, const CFX_RectF &rect) = 0;
\r
62 virtual void SetLogicClipRect(const CFX_RectF &rtClip) = 0;
\r
63 virtual void CalcLogicSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_SizeF &size) = 0;
\r
64 virtual void CalcLogicSize(FX_LPCWSTR pwsStr, FX_INT32 iLength, CFX_RectF &rect) = 0;
\r
65 virtual void DrawLogicText(FX_LPCWSTR pwsStr, FX_INT32 iLength, FX_FLOAT x, FX_FLOAT y) = 0;
\r
66 virtual void DrawLogicText(FX_LPCWSTR pwsStr, FX_INT32 iLength, const CFX_RectF &rect) = 0;
\r
67 virtual FX_INT32 GetTotalLines() = 0;
\r