Git init
[external/pango1.0.git] / pango / pango-script.h
1 /* Pango
2  * pango-script.h: Script tag handling
3  *
4  * Copyright (C) 2002 Red Hat Software
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library; if not, write to the
18  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  */
21
22 #ifndef __PANGO_SCRIPT_H__
23 #define __PANGO_SCRIPT_H__
24
25 #include <glib.h>
26
27 G_BEGIN_DECLS
28
29 /**
30  * PangoScriptIter:
31  *
32  * A #PangoScriptIter is used to iterate through a string
33  * and identify ranges in different scripts.
34  **/
35 typedef struct _PangoScriptIter PangoScriptIter;
36
37 typedef enum {                         /* ISO 15924 code */
38       PANGO_SCRIPT_INVALID_CODE = -1,
39       PANGO_SCRIPT_COMMON       = 0,   /* Zyyy */
40       PANGO_SCRIPT_INHERITED,          /* Qaai */
41       PANGO_SCRIPT_ARABIC,             /* Arab */
42       PANGO_SCRIPT_ARMENIAN,           /* Armn */
43       PANGO_SCRIPT_BENGALI,            /* Beng */
44       PANGO_SCRIPT_BOPOMOFO,           /* Bopo */
45       PANGO_SCRIPT_CHEROKEE,           /* Cher */
46       PANGO_SCRIPT_COPTIC,             /* Qaac */
47       PANGO_SCRIPT_CYRILLIC,           /* Cyrl (Cyrs) */
48       PANGO_SCRIPT_DESERET,            /* Dsrt */
49       PANGO_SCRIPT_DEVANAGARI,         /* Deva */
50       PANGO_SCRIPT_ETHIOPIC,           /* Ethi */
51       PANGO_SCRIPT_GEORGIAN,           /* Geor (Geon, Geoa) */
52       PANGO_SCRIPT_GOTHIC,             /* Goth */
53       PANGO_SCRIPT_GREEK,              /* Grek */
54       PANGO_SCRIPT_GUJARATI,           /* Gujr */
55       PANGO_SCRIPT_GURMUKHI,           /* Guru */
56       PANGO_SCRIPT_HAN,                /* Hani */
57       PANGO_SCRIPT_HANGUL,             /* Hang */
58       PANGO_SCRIPT_HEBREW,             /* Hebr */
59       PANGO_SCRIPT_HIRAGANA,           /* Hira */
60       PANGO_SCRIPT_KANNADA,            /* Knda */
61       PANGO_SCRIPT_KATAKANA,           /* Kana */
62       PANGO_SCRIPT_KHMER,              /* Khmr */
63       PANGO_SCRIPT_LAO,                /* Laoo */
64       PANGO_SCRIPT_LATIN,              /* Latn (Latf, Latg) */
65       PANGO_SCRIPT_MALAYALAM,          /* Mlym */
66       PANGO_SCRIPT_MONGOLIAN,          /* Mong */
67       PANGO_SCRIPT_MYANMAR,            /* Mymr */
68       PANGO_SCRIPT_OGHAM,              /* Ogam */
69       PANGO_SCRIPT_OLD_ITALIC,         /* Ital */
70       PANGO_SCRIPT_ORIYA,              /* Orya */
71       PANGO_SCRIPT_RUNIC,              /* Runr */
72       PANGO_SCRIPT_SINHALA,            /* Sinh */
73       PANGO_SCRIPT_SYRIAC,             /* Syrc (Syrj, Syrn, Syre) */
74       PANGO_SCRIPT_TAMIL,              /* Taml */
75       PANGO_SCRIPT_TELUGU,             /* Telu */
76       PANGO_SCRIPT_THAANA,             /* Thaa */
77       PANGO_SCRIPT_THAI,               /* Thai */
78       PANGO_SCRIPT_TIBETAN,            /* Tibt */
79       PANGO_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
80       PANGO_SCRIPT_YI,                 /* Yiii */
81       PANGO_SCRIPT_TAGALOG,            /* Tglg */
82       PANGO_SCRIPT_HANUNOO,            /* Hano */
83       PANGO_SCRIPT_BUHID,              /* Buhd */
84       PANGO_SCRIPT_TAGBANWA,           /* Tagb */
85
86       /* Unicode-4.0 additions */
87       PANGO_SCRIPT_BRAILLE,            /* Brai */
88       PANGO_SCRIPT_CYPRIOT,            /* Cprt */
89       PANGO_SCRIPT_LIMBU,              /* Limb */
90       PANGO_SCRIPT_OSMANYA,            /* Osma */
91       PANGO_SCRIPT_SHAVIAN,            /* Shaw */
92       PANGO_SCRIPT_LINEAR_B,           /* Linb */
93       PANGO_SCRIPT_TAI_LE,             /* Tale */
94       PANGO_SCRIPT_UGARITIC,           /* Ugar */
95
96       /* Unicode-4.1 additions */
97       PANGO_SCRIPT_NEW_TAI_LUE,        /* Talu */
98       PANGO_SCRIPT_BUGINESE,           /* Bugi */
99       PANGO_SCRIPT_GLAGOLITIC,         /* Glag */
100       PANGO_SCRIPT_TIFINAGH,           /* Tfng */
101       PANGO_SCRIPT_SYLOTI_NAGRI,       /* Sylo */
102       PANGO_SCRIPT_OLD_PERSIAN,        /* Xpeo */
103       PANGO_SCRIPT_KHAROSHTHI,         /* Khar */
104
105       /* Unicode-5.0 additions */
106       PANGO_SCRIPT_UNKNOWN,            /* Zzzz */
107       PANGO_SCRIPT_BALINESE,           /* Bali */
108       PANGO_SCRIPT_CUNEIFORM,          /* Xsux */
109       PANGO_SCRIPT_PHOENICIAN,         /* Phnx */
110       PANGO_SCRIPT_PHAGS_PA,           /* Phag */
111       PANGO_SCRIPT_NKO,                /* Nkoo */
112
113       /* Unicode-5.1 additions */
114       PANGO_SCRIPT_KAYAH_LI,           /* Kali */
115       PANGO_SCRIPT_LEPCHA,             /* Lepc */
116       PANGO_SCRIPT_REJANG,             /* Rjng */
117       PANGO_SCRIPT_SUNDANESE,          /* Sund */
118       PANGO_SCRIPT_SAURASHTRA,         /* Saur */
119       PANGO_SCRIPT_CHAM,               /* Cham */
120       PANGO_SCRIPT_OL_CHIKI,           /* Olck */
121       PANGO_SCRIPT_VAI,                /* Vaii */
122       PANGO_SCRIPT_CARIAN,             /* Cari */
123       PANGO_SCRIPT_LYCIAN,             /* Lyci */
124       PANGO_SCRIPT_LYDIAN              /* Lydi */
125 } PangoScript;
126
127 PangoScript pango_script_for_unichar         (gunichar             ch) G_GNUC_CONST;
128
129 PangoScriptIter *pango_script_iter_new       (const char          *text,
130                                               int                  length);
131 void             pango_script_iter_get_range (PangoScriptIter      *iter,
132                                               G_CONST_RETURN char **start,
133                                               G_CONST_RETURN char **end,
134                                               PangoScript          *script);
135 gboolean         pango_script_iter_next      (PangoScriptIter      *iter);
136 void             pango_script_iter_free      (PangoScriptIter      *iter);
137
138 #include <pango/pango-language.h>
139
140 PangoLanguage *pango_script_get_sample_language (PangoScript    script) G_GNUC_PURE;
141
142 G_END_DECLS
143
144 #endif /* __PANGO_SCRIPT_H__ */