Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:23:54

0001 /* Pango
0002  * pango-script.h: Script tag handling
0003  *
0004  * Copyright (C) 2002 Red Hat Software
0005  *
0006  * This library is free software; you can redistribute it and/or
0007  * modify it under the terms of the GNU Library General Public
0008  * License as published by the Free Software Foundation; either
0009  * version 2 of the License, or (at your option) any later version.
0010  *
0011  * This library is distributed in the hope that it will be useful,
0012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014  * Library General Public License for more details.
0015  *
0016  * You should have received a copy of the GNU Library General Public
0017  * License along with this library; if not, write to the
0018  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
0019  * Boston, MA 02111-1307, USA.
0020  */
0021 
0022 #ifndef __PANGO_SCRIPT_H__
0023 #define __PANGO_SCRIPT_H__
0024 
0025 #include <glib-object.h>
0026 
0027 G_BEGIN_DECLS
0028 
0029 /**
0030  * PangoScriptIter:
0031  *
0032  * A `PangoScriptIter` is used to iterate through a string
0033  * and identify ranges in different scripts.
0034  **/
0035 typedef struct _PangoScriptIter PangoScriptIter;
0036 
0037 /**
0038  * PangoScript:
0039  * @PANGO_SCRIPT_INVALID_CODE: a value never returned from pango_script_for_unichar()
0040  * @PANGO_SCRIPT_COMMON: a character used by multiple different scripts
0041  * @PANGO_SCRIPT_INHERITED: a mark glyph that takes its script from the
0042  * base glyph to which it is attached
0043  * @PANGO_SCRIPT_ARABIC:        Arabic
0044  * @PANGO_SCRIPT_ARMENIAN: Armenian
0045  * @PANGO_SCRIPT_BENGALI:       Bengali
0046  * @PANGO_SCRIPT_BOPOMOFO: Bopomofo
0047  * @PANGO_SCRIPT_CHEROKEE:      Cherokee
0048  * @PANGO_SCRIPT_COPTIC:        Coptic
0049  * @PANGO_SCRIPT_CYRILLIC:      Cyrillic
0050  * @PANGO_SCRIPT_DESERET:       Deseret
0051  * @PANGO_SCRIPT_DEVANAGARI:    Devanagari
0052  * @PANGO_SCRIPT_ETHIOPIC:      Ethiopic
0053  * @PANGO_SCRIPT_GEORGIAN:      Georgian
0054  * @PANGO_SCRIPT_GOTHIC:        Gothic
0055  * @PANGO_SCRIPT_GREEK:         Greek
0056  * @PANGO_SCRIPT_GUJARATI:      Gujarati
0057  * @PANGO_SCRIPT_GURMUKHI:      Gurmukhi
0058  * @PANGO_SCRIPT_HAN:   Han
0059  * @PANGO_SCRIPT_HANGUL:        Hangul
0060  * @PANGO_SCRIPT_HEBREW:        Hebrew
0061  * @PANGO_SCRIPT_HIRAGANA:      Hiragana
0062  * @PANGO_SCRIPT_KANNADA:       Kannada
0063  * @PANGO_SCRIPT_KATAKANA:      Katakana
0064  * @PANGO_SCRIPT_KHMER:         Khmer
0065  * @PANGO_SCRIPT_LAO:   Lao
0066  * @PANGO_SCRIPT_LATIN:         Latin
0067  * @PANGO_SCRIPT_MALAYALAM:     Malayalam
0068  * @PANGO_SCRIPT_MONGOLIAN:     Mongolian
0069  * @PANGO_SCRIPT_MYANMAR:       Myanmar
0070  * @PANGO_SCRIPT_OGHAM:         Ogham
0071  * @PANGO_SCRIPT_OLD_ITALIC:    Old Italic
0072  * @PANGO_SCRIPT_ORIYA:         Oriya
0073  * @PANGO_SCRIPT_RUNIC:         Runic
0074  * @PANGO_SCRIPT_SINHALA:       Sinhala
0075  * @PANGO_SCRIPT_SYRIAC:        Syriac
0076  * @PANGO_SCRIPT_TAMIL:         Tamil
0077  * @PANGO_SCRIPT_TELUGU:        Telugu
0078  * @PANGO_SCRIPT_THAANA:        Thaana
0079  * @PANGO_SCRIPT_THAI:  Thai
0080  * @PANGO_SCRIPT_TIBETAN:       Tibetan
0081  * @PANGO_SCRIPT_CANADIAN_ABORIGINAL:   Canadian Aboriginal
0082  * @PANGO_SCRIPT_YI:    Yi
0083  * @PANGO_SCRIPT_TAGALOG:       Tagalog
0084  * @PANGO_SCRIPT_HANUNOO:       Hanunoo
0085  * @PANGO_SCRIPT_BUHID:         Buhid
0086  * @PANGO_SCRIPT_TAGBANWA:      Tagbanwa
0087  * @PANGO_SCRIPT_BRAILLE:       Braille
0088  * @PANGO_SCRIPT_CYPRIOT:       Cypriot
0089  * @PANGO_SCRIPT_LIMBU:         Limbu
0090  * @PANGO_SCRIPT_OSMANYA:       Osmanya
0091  * @PANGO_SCRIPT_SHAVIAN:       Shavian
0092  * @PANGO_SCRIPT_LINEAR_B:      Linear B
0093  * @PANGO_SCRIPT_TAI_LE:        Tai Le
0094  * @PANGO_SCRIPT_UGARITIC:      Ugaritic
0095  * @PANGO_SCRIPT_NEW_TAI_LUE:   New Tai Lue. Since 1.10
0096  * @PANGO_SCRIPT_BUGINESE:      Buginese. Since 1.10
0097  * @PANGO_SCRIPT_GLAGOLITIC:    Glagolitic. Since 1.10
0098  * @PANGO_SCRIPT_TIFINAGH:      Tifinagh. Since 1.10
0099  * @PANGO_SCRIPT_SYLOTI_NAGRI:  Syloti Nagri. Since 1.10
0100  * @PANGO_SCRIPT_OLD_PERSIAN:   Old Persian. Since 1.10
0101  * @PANGO_SCRIPT_KHAROSHTHI:    Kharoshthi. Since 1.10
0102  * @PANGO_SCRIPT_UNKNOWN:               an unassigned code point. Since 1.14
0103  * @PANGO_SCRIPT_BALINESE:              Balinese. Since 1.14
0104  * @PANGO_SCRIPT_CUNEIFORM:     Cuneiform. Since 1.14
0105  * @PANGO_SCRIPT_PHOENICIAN:    Phoenician. Since 1.14
0106  * @PANGO_SCRIPT_PHAGS_PA:              Phags-pa. Since 1.14
0107  * @PANGO_SCRIPT_NKO:           N'Ko. Since 1.14
0108  * @PANGO_SCRIPT_KAYAH_LI:   Kayah Li. Since 1.20.1
0109  * @PANGO_SCRIPT_LEPCHA:     Lepcha. Since 1.20.1
0110  * @PANGO_SCRIPT_REJANG:     Rejang. Since 1.20.1
0111  * @PANGO_SCRIPT_SUNDANESE:  Sundanese. Since 1.20.1
0112  * @PANGO_SCRIPT_SAURASHTRA: Saurashtra. Since 1.20.1
0113  * @PANGO_SCRIPT_CHAM:       Cham. Since 1.20.1
0114  * @PANGO_SCRIPT_OL_CHIKI:   Ol Chiki. Since 1.20.1
0115  * @PANGO_SCRIPT_VAI:        Vai. Since 1.20.1
0116  * @PANGO_SCRIPT_CARIAN:     Carian. Since 1.20.1
0117  * @PANGO_SCRIPT_LYCIAN:     Lycian. Since 1.20.1
0118  * @PANGO_SCRIPT_LYDIAN:     Lydian. Since 1.20.1
0119  * @PANGO_SCRIPT_BATAK:      Batak. Since 1.32
0120  * @PANGO_SCRIPT_BRAHMI:     Brahmi. Since 1.32
0121  * @PANGO_SCRIPT_MANDAIC:    Mandaic. Since 1.32
0122  * @PANGO_SCRIPT_CHAKMA:               Chakma. Since: 1.32
0123  * @PANGO_SCRIPT_MEROITIC_CURSIVE:     Meroitic Cursive. Since: 1.32
0124  * @PANGO_SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs. Since: 1.32
0125  * @PANGO_SCRIPT_MIAO:                 Miao. Since: 1.32
0126  * @PANGO_SCRIPT_SHARADA:              Sharada. Since: 1.32
0127  * @PANGO_SCRIPT_SORA_SOMPENG:         Sora Sompeng. Since: 1.32
0128  * @PANGO_SCRIPT_TAKRI:                Takri. Since: 1.32
0129  * @PANGO_SCRIPT_BASSA_VAH:            Bassa. Since: 1.40
0130  * @PANGO_SCRIPT_CAUCASIAN_ALBANIAN:   Caucasian Albanian. Since: 1.40
0131  * @PANGO_SCRIPT_DUPLOYAN:             Duployan. Since: 1.40
0132  * @PANGO_SCRIPT_ELBASAN:              Elbasan. Since: 1.40
0133  * @PANGO_SCRIPT_GRANTHA:              Grantha. Since: 1.40
0134  * @PANGO_SCRIPT_KHOJKI:               Kjohki. Since: 1.40
0135  * @PANGO_SCRIPT_KHUDAWADI:            Khudawadi, Sindhi. Since: 1.40
0136  * @PANGO_SCRIPT_LINEAR_A:             Linear A. Since: 1.40
0137  * @PANGO_SCRIPT_MAHAJANI:             Mahajani. Since: 1.40
0138  * @PANGO_SCRIPT_MANICHAEAN:           Manichaean. Since: 1.40
0139  * @PANGO_SCRIPT_MENDE_KIKAKUI:        Mende Kikakui. Since: 1.40
0140  * @PANGO_SCRIPT_MODI:                 Modi. Since: 1.40
0141  * @PANGO_SCRIPT_MRO:                  Mro. Since: 1.40
0142  * @PANGO_SCRIPT_NABATAEAN:            Nabataean. Since: 1.40
0143  * @PANGO_SCRIPT_OLD_NORTH_ARABIAN:    Old North Arabian. Since: 1.40
0144  * @PANGO_SCRIPT_OLD_PERMIC:           Old Permic. Since: 1.40
0145  * @PANGO_SCRIPT_PAHAWH_HMONG:         Pahawh Hmong. Since: 1.40
0146  * @PANGO_SCRIPT_PALMYRENE:            Palmyrene. Since: 1.40
0147  * @PANGO_SCRIPT_PAU_CIN_HAU:          Pau Cin Hau. Since: 1.40
0148  * @PANGO_SCRIPT_PSALTER_PAHLAVI:      Psalter Pahlavi. Since: 1.40
0149  * @PANGO_SCRIPT_SIDDHAM:              Siddham. Since: 1.40
0150  * @PANGO_SCRIPT_TIRHUTA:              Tirhuta. Since: 1.40
0151  * @PANGO_SCRIPT_WARANG_CITI:          Warang Citi. Since: 1.40
0152  * @PANGO_SCRIPT_AHOM:                 Ahom. Since: 1.40
0153  * @PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs. Since: 1.40
0154  * @PANGO_SCRIPT_HATRAN:               Hatran. Since: 1.40
0155  * @PANGO_SCRIPT_MULTANI:              Multani. Since: 1.40
0156  * @PANGO_SCRIPT_OLD_HUNGARIAN:        Old Hungarian. Since: 1.40
0157  * @PANGO_SCRIPT_SIGNWRITING:          Signwriting. Since: 1.40
0158  *
0159  * The `PangoScript` enumeration identifies different writing
0160  * systems.
0161  *
0162  * The values correspond to the names as defined in the Unicode standard. See
0163  * [Unicode Standard Annex 24: Script names](http://www.unicode.org/reports/tr24/)
0164  *
0165  * Note that this enumeration is deprecated and will not be updated to include values
0166  * in newer versions of the Unicode standard. Applications should use the
0167  * [enum@GLib.UnicodeScript] enumeration instead,
0168  * whose values are interchangeable with `PangoScript`.
0169  */
0170 typedef enum {                         /* ISO 15924 code */
0171       PANGO_SCRIPT_INVALID_CODE = -1,
0172       PANGO_SCRIPT_COMMON       = 0,   /* Zyyy */
0173       PANGO_SCRIPT_INHERITED,          /* Qaai */
0174       PANGO_SCRIPT_ARABIC,             /* Arab */
0175       PANGO_SCRIPT_ARMENIAN,           /* Armn */
0176       PANGO_SCRIPT_BENGALI,            /* Beng */
0177       PANGO_SCRIPT_BOPOMOFO,           /* Bopo */
0178       PANGO_SCRIPT_CHEROKEE,           /* Cher */
0179       PANGO_SCRIPT_COPTIC,             /* Qaac */
0180       PANGO_SCRIPT_CYRILLIC,           /* Cyrl (Cyrs) */
0181       PANGO_SCRIPT_DESERET,            /* Dsrt */
0182       PANGO_SCRIPT_DEVANAGARI,         /* Deva */
0183       PANGO_SCRIPT_ETHIOPIC,           /* Ethi */
0184       PANGO_SCRIPT_GEORGIAN,           /* Geor (Geon, Geoa) */
0185       PANGO_SCRIPT_GOTHIC,             /* Goth */
0186       PANGO_SCRIPT_GREEK,              /* Grek */
0187       PANGO_SCRIPT_GUJARATI,           /* Gujr */
0188       PANGO_SCRIPT_GURMUKHI,           /* Guru */
0189       PANGO_SCRIPT_HAN,                /* Hani */
0190       PANGO_SCRIPT_HANGUL,             /* Hang */
0191       PANGO_SCRIPT_HEBREW,             /* Hebr */
0192       PANGO_SCRIPT_HIRAGANA,           /* Hira */
0193       PANGO_SCRIPT_KANNADA,            /* Knda */
0194       PANGO_SCRIPT_KATAKANA,           /* Kana */
0195       PANGO_SCRIPT_KHMER,              /* Khmr */
0196       PANGO_SCRIPT_LAO,                /* Laoo */
0197       PANGO_SCRIPT_LATIN,              /* Latn (Latf, Latg) */
0198       PANGO_SCRIPT_MALAYALAM,          /* Mlym */
0199       PANGO_SCRIPT_MONGOLIAN,          /* Mong */
0200       PANGO_SCRIPT_MYANMAR,            /* Mymr */
0201       PANGO_SCRIPT_OGHAM,              /* Ogam */
0202       PANGO_SCRIPT_OLD_ITALIC,         /* Ital */
0203       PANGO_SCRIPT_ORIYA,              /* Orya */
0204       PANGO_SCRIPT_RUNIC,              /* Runr */
0205       PANGO_SCRIPT_SINHALA,            /* Sinh */
0206       PANGO_SCRIPT_SYRIAC,             /* Syrc (Syrj, Syrn, Syre) */
0207       PANGO_SCRIPT_TAMIL,              /* Taml */
0208       PANGO_SCRIPT_TELUGU,             /* Telu */
0209       PANGO_SCRIPT_THAANA,             /* Thaa */
0210       PANGO_SCRIPT_THAI,               /* Thai */
0211       PANGO_SCRIPT_TIBETAN,            /* Tibt */
0212       PANGO_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
0213       PANGO_SCRIPT_YI,                 /* Yiii */
0214       PANGO_SCRIPT_TAGALOG,            /* Tglg */
0215       PANGO_SCRIPT_HANUNOO,            /* Hano */
0216       PANGO_SCRIPT_BUHID,              /* Buhd */
0217       PANGO_SCRIPT_TAGBANWA,           /* Tagb */
0218 
0219       /* Unicode-4.0 additions */
0220       PANGO_SCRIPT_BRAILLE,            /* Brai */
0221       PANGO_SCRIPT_CYPRIOT,            /* Cprt */
0222       PANGO_SCRIPT_LIMBU,              /* Limb */
0223       PANGO_SCRIPT_OSMANYA,            /* Osma */
0224       PANGO_SCRIPT_SHAVIAN,            /* Shaw */
0225       PANGO_SCRIPT_LINEAR_B,           /* Linb */
0226       PANGO_SCRIPT_TAI_LE,             /* Tale */
0227       PANGO_SCRIPT_UGARITIC,           /* Ugar */
0228 
0229       /* Unicode-4.1 additions */
0230       PANGO_SCRIPT_NEW_TAI_LUE,        /* Talu */
0231       PANGO_SCRIPT_BUGINESE,           /* Bugi */
0232       PANGO_SCRIPT_GLAGOLITIC,         /* Glag */
0233       PANGO_SCRIPT_TIFINAGH,           /* Tfng */
0234       PANGO_SCRIPT_SYLOTI_NAGRI,       /* Sylo */
0235       PANGO_SCRIPT_OLD_PERSIAN,        /* Xpeo */
0236       PANGO_SCRIPT_KHAROSHTHI,         /* Khar */
0237 
0238       /* Unicode-5.0 additions */
0239       PANGO_SCRIPT_UNKNOWN,            /* Zzzz */
0240       PANGO_SCRIPT_BALINESE,           /* Bali */
0241       PANGO_SCRIPT_CUNEIFORM,          /* Xsux */
0242       PANGO_SCRIPT_PHOENICIAN,         /* Phnx */
0243       PANGO_SCRIPT_PHAGS_PA,           /* Phag */
0244       PANGO_SCRIPT_NKO,                /* Nkoo */
0245 
0246       /* Unicode-5.1 additions */
0247       PANGO_SCRIPT_KAYAH_LI,           /* Kali */
0248       PANGO_SCRIPT_LEPCHA,             /* Lepc */
0249       PANGO_SCRIPT_REJANG,             /* Rjng */
0250       PANGO_SCRIPT_SUNDANESE,          /* Sund */
0251       PANGO_SCRIPT_SAURASHTRA,         /* Saur */
0252       PANGO_SCRIPT_CHAM,               /* Cham */
0253       PANGO_SCRIPT_OL_CHIKI,           /* Olck */
0254       PANGO_SCRIPT_VAI,                /* Vaii */
0255       PANGO_SCRIPT_CARIAN,             /* Cari */
0256       PANGO_SCRIPT_LYCIAN,             /* Lyci */
0257       PANGO_SCRIPT_LYDIAN,             /* Lydi */
0258 
0259       /* Unicode-6.0 additions */
0260       PANGO_SCRIPT_BATAK,              /* Batk */
0261       PANGO_SCRIPT_BRAHMI,             /* Brah */
0262       PANGO_SCRIPT_MANDAIC,            /* Mand */
0263 
0264       /* Unicode-6.1 additions */
0265       PANGO_SCRIPT_CHAKMA,             /* Cakm */
0266       PANGO_SCRIPT_MEROITIC_CURSIVE,   /* Merc */
0267       PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,/* Mero */
0268       PANGO_SCRIPT_MIAO,               /* Plrd */
0269       PANGO_SCRIPT_SHARADA,            /* Shrd */
0270       PANGO_SCRIPT_SORA_SOMPENG,       /* Sora */
0271       PANGO_SCRIPT_TAKRI,              /* Takr */
0272 
0273       /* Unicode 7.0 additions */
0274       PANGO_SCRIPT_BASSA_VAH,              /* Bass */
0275       PANGO_SCRIPT_CAUCASIAN_ALBANIAN,     /* Aghb */
0276       PANGO_SCRIPT_DUPLOYAN,               /* Dupl */
0277       PANGO_SCRIPT_ELBASAN,                /* Elba */
0278       PANGO_SCRIPT_GRANTHA,                /* Gran */
0279       PANGO_SCRIPT_KHOJKI,                 /* Khoj */
0280       PANGO_SCRIPT_KHUDAWADI,              /* Sind */
0281       PANGO_SCRIPT_LINEAR_A,               /* Lina */
0282       PANGO_SCRIPT_MAHAJANI,               /* Mahj */
0283       PANGO_SCRIPT_MANICHAEAN,             /* Manu */
0284       PANGO_SCRIPT_MENDE_KIKAKUI,          /* Mend */
0285       PANGO_SCRIPT_MODI,                   /* Modi */
0286       PANGO_SCRIPT_MRO,                    /* Mroo */
0287       PANGO_SCRIPT_NABATAEAN,              /* Nbat */
0288       PANGO_SCRIPT_OLD_NORTH_ARABIAN,      /* Narb */
0289       PANGO_SCRIPT_OLD_PERMIC,             /* Perm */
0290       PANGO_SCRIPT_PAHAWH_HMONG,           /* Hmng */
0291       PANGO_SCRIPT_PALMYRENE,              /* Palm */
0292       PANGO_SCRIPT_PAU_CIN_HAU,            /* Pauc */
0293       PANGO_SCRIPT_PSALTER_PAHLAVI,        /* Phlp */
0294       PANGO_SCRIPT_SIDDHAM,                /* Sidd */
0295       PANGO_SCRIPT_TIRHUTA,                /* Tirh */
0296       PANGO_SCRIPT_WARANG_CITI,            /* Wara */
0297 
0298       /* Unicode 8.0 additions */
0299       PANGO_SCRIPT_AHOM,                   /* Ahom */
0300       PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,  /* Hluw */
0301       PANGO_SCRIPT_HATRAN,                 /* Hatr */
0302       PANGO_SCRIPT_MULTANI,                /* Mult */
0303       PANGO_SCRIPT_OLD_HUNGARIAN,          /* Hung */
0304       PANGO_SCRIPT_SIGNWRITING             /* Sgnw */
0305 } PangoScript;
0306 
0307 #include <pango/pango-version-macros.h>
0308 
0309 PANGO_DEPRECATED_IN_1_44_FOR(g_unichar_get_script)
0310 PangoScript pango_script_for_unichar         (gunichar             ch) G_GNUC_CONST;
0311 
0312 PANGO_AVAILABLE_IN_1_44
0313 GType            pango_script_iter_get_type  (void) G_GNUC_CONST;
0314 
0315 PANGO_AVAILABLE_IN_1_4
0316 PangoScriptIter *pango_script_iter_new       (const char          *text,
0317                           int                  length);
0318 PANGO_AVAILABLE_IN_1_4
0319 void             pango_script_iter_get_range (PangoScriptIter     *iter,
0320                                               const char         **start,
0321                                               const char         **end,
0322                                               PangoScript         *script);
0323 PANGO_AVAILABLE_IN_1_4
0324 gboolean         pango_script_iter_next      (PangoScriptIter     *iter);
0325 PANGO_AVAILABLE_IN_1_4
0326 void             pango_script_iter_free      (PangoScriptIter     *iter);
0327 
0328 #include <pango/pango-language.h>
0329 
0330 PANGO_AVAILABLE_IN_1_4
0331 PangoLanguage *pango_script_get_sample_language (PangoScript    script) G_GNUC_PURE;
0332 
0333 G_END_DECLS
0334 
0335 #endif /* __PANGO_SCRIPT_H__ */