Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fdp / include / fde_tto.h
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
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FDE_TEXTOUT\r
8 #define _FDE_TEXTOUT\r
9 class IFDE_TextOut;\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
34 class IFDE_TextOut\r
35 {\r
36 public:\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
68 };\r
69 #endif\r