2 * pango-script.h: Script tag handling
4 * Copyright (C) 2002 Red Hat Software
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.
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.
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.
22 #ifndef __PANGO_SCRIPT_H__
23 #define __PANGO_SCRIPT_H__
32 * A #PangoScriptIter is used to iterate through a string
33 * and identify ranges in different scripts.
35 typedef struct _PangoScriptIter PangoScriptIter;
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 */
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 */
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 */
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 */
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 */
127 PangoScript pango_script_for_unichar (gunichar ch) G_GNUC_CONST;
129 PangoScriptIter *pango_script_iter_new (const char *text,
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);
138 #include <pango/pango-language.h>
140 PangoLanguage *pango_script_get_sample_language (PangoScript script) G_GNUC_PURE;
144 #endif /* __PANGO_SCRIPT_H__ */