diff options
author | Bo Xu <bo_xu@foxitsoftware.com> | 2014-10-28 23:03:33 -0700 |
---|---|---|
committer | Bo Xu <bo_xu@foxitsoftware.com> | 2014-11-03 11:10:11 -0800 |
commit | fdc00a7042d912aafaabddae4d9c84199921ef23 (patch) | |
tree | 32ab8ac91cc68d2cd15b9168782a71b3f3f5e7b9 /core/include/fxcrt/fx_arb.h | |
parent | e9b38fa38de2c95d8260be31c57d9272c4d127ed (diff) | |
download | pdfium-fdc00a7042d912aafaabddae4d9c84199921ef23.tar.xz |
Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
Diffstat (limited to 'core/include/fxcrt/fx_arb.h')
-rw-r--r-- | core/include/fxcrt/fx_arb.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/core/include/fxcrt/fx_arb.h b/core/include/fxcrt/fx_arb.h index 4950f81716..ed0370ff74 100644 --- a/core/include/fxcrt/fx_arb.h +++ b/core/include/fxcrt/fx_arb.h @@ -6,6 +6,54 @@ #ifndef _FX_ARABIC_ #define _FX_ARABIC_ +class IFX_ArabicChar; +class IFX_BidiChar; +#ifdef __cplusplus +extern "C" +{ +#endif +typedef struct _FX_ARBFORMTABLE { + FX_WCHAR wIsolated; + FX_WCHAR wFinal; + FX_WCHAR wInitial; + FX_WCHAR wMedial; +} FX_ARBFORMTABLE, * FX_LPARBFORMTABLE; +typedef FX_ARBFORMTABLE const * FX_LPCARBFORMTABLE; +typedef struct _FX_ARAALEF { + FX_WCHAR wAlef; + FX_WCHAR wIsolated; +} FX_ARAALEF, * FX_LPARAALEF; +typedef FX_ARAALEF const * FX_LPCARAALEF; +typedef struct _FX_ARASHADDA { + FX_WCHAR wShadda; + FX_WCHAR wIsolated; +} FX_ARASHADDA, * FX_LPARASHADDA; +typedef FX_ARASHADDA const * FX_LPCARASHADDA; +FX_LPCARBFORMTABLE FX_GetArabicFormTable(FX_WCHAR unicode); +FX_WCHAR FX_GetArabicFromAlefTable(FX_WCHAR alef); +FX_WCHAR FX_GetArabicFromShaddaTable(FX_WCHAR shadda); +#ifdef __cplusplus +}; +#endif +enum FX_ARBPOSITION { + FX_ARBPOSITION_Isolated = 0, + FX_ARBPOSITION_Final, + FX_ARBPOSITION_Initial, + FX_ARBPOSITION_Medial, +}; +class IFX_ArabicChar +{ +public: + static IFX_ArabicChar* Create(); + virtual void Release() = 0; + virtual FX_BOOL IsArabicChar(FX_WCHAR wch) const = 0; + virtual FX_BOOL IsArabicFormChar(FX_WCHAR wch) const = 0; + virtual FX_WCHAR GetFormChar(FX_WCHAR wch, FX_WCHAR prev = 0, FX_WCHAR next = 0) const = 0; + virtual FX_WCHAR GetFormChar(const CFX_Char *cur, const CFX_Char *prev, const CFX_Char *next) const = 0; +}; +void FX_BidiLine(CFX_WideString &wsText, FX_INT32 iBaseLevel = 0); +void FX_BidiLine(CFX_TxtCharArray &chars, FX_INT32 iCount, FX_INT32 iBaseLevel = 0); +void FX_BidiLine(CFX_RTFCharArray &chars, FX_INT32 iCount, FX_INT32 iBaseLevel = 0); class IFX_BidiChar { public: |