Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / core / include / fxcrt / fx_arb.h
index 4950f81..ed0370f 100644 (file)
@@ -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: