Git init
[external/pango1.0.git] / modules / syriac / syriac-ot.h
1 /* Pango
2  * syriac-ot.h: Determine what OpenType features to apply to characters based
3  *              on the rules for Syriac from the OpenType standard.
4  *
5  * Copyright (C) 2004 Emil Soleyman-Zomalan
6  * Author: Emil Soleyman-Zomalan <emil@soleyman.com>
7  *
8  * This file is based on the Arabic shaping code from FreeType 1 tree; original
9  * copyright notice:
10  *
11  *  The FreeType project -- a free and portable quality TrueType renderer.
12  *
13  *  Copyright 1996-2000 by
14  *  D. Turner, R.Wilhelm, and W. Lemberg
15  *
16  * The code, like the FreeType code it is derived from is dual-licensed
17  * under the  GNU Public License and the FreeType license. See see
18  * pango/opentype/FT-license.txt for full details of the FreeType
19  * license.
20  */
21
22 #ifndef __SYRIAC_OT_H__
23 #define __SYRIAC_OT_H__
24
25 #include <pango/pango-ot.h>
26
27 G_BEGIN_DECLS
28
29 typedef enum
30 {
31   isolated = 1 << 0,    /* nominal        */
32   final    = 1 << 1,    /* right_joining */
33   initial  = 1 << 2,    /* left_joining   */
34   medial   = 1 << 3,    /* double_joining */
35   medial2  = 1 << 4,    /* double_joining, applies to Alaph only */
36   final2   = 1 << 5,    /* right_joining, applies to Alaph only */
37   final3   = 1 << 6     /* right_joining, applies to Alaph only */
38 } JoiningType;
39
40 /* A glyph's property value as needed by e.g. TT_GSUB_Apply_String()
41    specifies which features should *not* be applied  */
42 typedef enum
43 {
44   isolated_p = final    | initial | medial  | medial2 | final2  | final3,
45   final_p    = isolated | initial | medial  | medial2 | final2  | final3,
46   initial_p  = isolated | final   | medial  | medial2 | final2  | final3,
47   medial_p   = isolated | final   | initial | medial2 | final2  | final3,
48   medial2_p  = isolated | final   | initial | medial  | final2  | final3,
49   final2_p   = isolated | final   | initial | medial  | medial2 | final3,
50   final3_p   = isolated | final   | initial | medial  | medial2 | final2
51 } SyriacGlyphForm;
52
53 typedef enum
54 {
55   right,
56   left,                 /* not used */
57   dual,
58   causing,
59   none,
60   transparent
61 } JoiningClass;
62
63 FT_Error syriac_assign_properties (gunichar *string,
64                                    gulong   *properties,
65                                    int       length);
66
67 G_END_DECLS
68
69 #endif /* __SYRIAC_OT_H__ */