]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/layout/ArabicShaping.h
ICU-59180.0.1.tar.gz
[apple/icu.git] / icuSources / layout / ArabicShaping.h
index 9a1ad899a34d3ba9574370dd7d4146afbc92c41f..1910810a98de558db0e08fcf5efe14ad6be4007e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
  *
  */
 
@@ -21,6 +21,18 @@ class LEGlyphStorage;
 
 class ArabicShaping /* not : public UObject because all methods are static */ {
 public:
+    // Joining types
+    enum JoiningTypes
+    {
+        JT_NON_JOINING   = 0,
+        JT_JOIN_CAUSING  = 1,
+        JT_DUAL_JOINING  = 2,
+        JT_LEFT_JOINING  = 3,
+        JT_RIGHT_JOINING = 4,
+        JT_TRANSPARENT   = 5,
+        JT_COUNT         = 6
+    };
+
     // shaping bit masks
     enum ShapingBitMasks
     {
@@ -47,19 +59,20 @@ public:
     static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
                       le_bool rightToLeft, LEGlyphStorage &glyphStorage);
 
-    static const LETag *getFeatureOrder();
+    static const FeatureMap *getFeatureMap(le_int32 &count);
 
 private:
     // forbid instantiation
     ArabicShaping();
 
-    static const LETag tagArray[];
-
     static ShapeType getShapeType(LEUnicode c);
 
+    static const le_uint8 shapingTypeTable[];
+    static const size_t   shapingTypeTableLen;
+
     static const ShapeType shapeTypes[];
 
-    static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage); 
+    static void adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage);
 };
 
 U_NAMESPACE_END