summaryrefslogtreecommitdiff
path: root/modules/arabic/arabic-ot.h
blob: 0be0ccf73e1b2798e0caac3332f3f2de58b44eaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* This file is taken from the FreeType (1) tree. It's been reindented
 * to roughly match Pango guidelines (in anticipation of future changes),
 * but not otherwise much altered.
 */

/****************************************************************************/
/*                                                                          */
/*  The FreeType project -- a free and portable quality TrueType renderer.  */
/*                                                                          */
/*  Copyright 1996-2000 by                                                  */
/*  D. Turner, R.Wilhelm, and W. Lemberg                                    */
/*                                                                          */
/*  arabic -- An implementation of the contextual algorithm given in the    */
/*  Unicode 2.0 book to assign the `isolated', `initial', `medial', and     */
/*  `final' properties to an input string of character codes for the Arabic */
/*  script.                                                                 */
/*                                                                          */
/****************************************************************************/


#include <pango/pango-ot.h>


enum  joining_type_
{
  isolated = 1,       /* nominal        */
  final    = 2,       /* right_joining  */
  initial  = 4,       /* left_joining   */
  medial   = 8        /* double_joining */
};

typedef enum joining_type_  joining_type;


  /* A glyph's property value as needed by e.g. TT_GSUB_Apply_String()
     specifies which features should *not* be applied                  */

enum  arabic_glyph_property_
{
  isolated_p = final    | initial | medial,
  final_p    = isolated | initial | medial,
  initial_p  = isolated | final   | medial,
  medial_p   = isolated | final   | initial
};

typedef enum arabic_glyph_property_  arabic_glyph_property;


enum  joining_class_
{
  right,
  left,               /* not used */
  dual,
  causing,
  none,
  transparent
};

typedef enum joining_class_  joining_class;


FT_Error  Arabic_Assign_Properties (gunichar   *string,
				    gulong     *properties,
				    int         length);
#if 0
TT_Error  Build_Arabic_Glyph_Properties (TT_CharMap        char_map,
					 TT_UShort         max_glyphs,
					 TTO_GDEFHeader**  gdef );
#endif


/* End */