;; From pango-attributes.h

;; Original typedef:
;; typedef enum
;; {
;;   PANGO_ATTR_INVALID,           /* 0 is an invalid attribute type */
;;   PANGO_ATTR_LANGUAGE,		/* PangoAttrLanguage */
;;   PANGO_ATTR_FAMILY,		/* PangoAttrString */
;;   PANGO_ATTR_STYLE,		/* PangoAttrInt */
;;   PANGO_ATTR_WEIGHT,		/* PangoAttrInt */
;;   PANGO_ATTR_VARIANT,		/* PangoAttrInt */
;;   PANGO_ATTR_STRETCH,		/* PangoAttrInt */
;;   PANGO_ATTR_SIZE,		/* PangoAttrSize */
;;   PANGO_ATTR_FONT_DESC,		/* PangoAttrFontDesc */
;;   PANGO_ATTR_FOREGROUND,	/* PangoAttrColor */
;;   PANGO_ATTR_BACKGROUND,	/* PangoAttrColor */
;;   PANGO_ATTR_UNDERLINE,		/* PangoAttrInt */
;;   PANGO_ATTR_STRIKETHROUGH,	/* PangoAttrInt */
;;   PANGO_ATTR_RISE,		/* PangoAttrInt */
;;   PANGO_ATTR_SHAPE,		/* PangoAttrShape */
;;   PANGO_ATTR_SCALE,             /* PangoAttrFloat */
;;   PANGO_ATTR_FALLBACK,          /* PangoAttrInt */
;;   PANGO_ATTR_LETTER_SPACING,    /* PangoAttrInt */
;;   PANGO_ATTR_UNDERLINE_COLOR,	/* PangoAttrColor */
;;   PANGO_ATTR_STRIKETHROUGH_COLOR,/* PangoAttrColor */
;;   PANGO_ATTR_ABSOLUTE_SIZE,	/* PangoAttrSize */
;;   PANGO_ATTR_GRAVITY,		/* PangoAttrInt */
;;   PANGO_ATTR_GRAVITY_HINT,	/* PangoAttrInt */
;;   PANGO_ATTR_FONT_FEATURES,	/* PangoAttrString */
;;   PANGO_ATTR_FOREGROUND_ALPHA,	/* PangoAttrInt */
;;   PANGO_ATTR_BACKGROUND_ALPHA,	/* PangoAttrInt */
;;   PANGO_ATTR_ALLOW_BREAKS,	/* PangoAttrInt */
;;   PANGO_ATTR_SHOW,		/* PangoAttrInt */
;;   PANGO_ATTR_INSERT_HYPHENS,	/* PangoAttrInt */
;;   PANGO_ATTR_OVERLINE,		/* PangoAttrInt */
;;   PANGO_ATTR_OVERLINE_COLOR,	/* PangoAttrColor */
;; } PangoAttrType;

(define-enum-extended AttrType
  (in-module "Pango")
  (c-name "PangoAttrType")
  (values
    '("invalid" "PANGO_ATTR_INVALID" "0")
    '("language" "PANGO_ATTR_LANGUAGE" "1")
    '("family" "PANGO_ATTR_FAMILY" "2")
    '("style" "PANGO_ATTR_STYLE" "3")
    '("weight" "PANGO_ATTR_WEIGHT" "4")
    '("variant" "PANGO_ATTR_VARIANT" "5")
    '("stretch" "PANGO_ATTR_STRETCH" "6")
    '("size" "PANGO_ATTR_SIZE" "7")
    '("font-desc" "PANGO_ATTR_FONT_DESC" "8")
    '("foreground" "PANGO_ATTR_FOREGROUND" "9")
    '("background" "PANGO_ATTR_BACKGROUND" "10")
    '("underline" "PANGO_ATTR_UNDERLINE" "11")
    '("strikethrough" "PANGO_ATTR_STRIKETHROUGH" "12")
    '("rise" "PANGO_ATTR_RISE" "13")
    '("shape" "PANGO_ATTR_SHAPE" "14")
    '("scale" "PANGO_ATTR_SCALE" "15")
    '("fallback" "PANGO_ATTR_FALLBACK" "16")
    '("letter-spacing" "PANGO_ATTR_LETTER_SPACING" "17")
    '("underline-color" "PANGO_ATTR_UNDERLINE_COLOR" "18")
    '("strikethrough-color" "PANGO_ATTR_STRIKETHROUGH_COLOR" "19")
    '("absolute-size" "PANGO_ATTR_ABSOLUTE_SIZE" "20")
    '("gravity" "PANGO_ATTR_GRAVITY" "21")
    '("gravity-hint" "PANGO_ATTR_GRAVITY_HINT" "22")
    '("font-features" "PANGO_ATTR_FONT_FEATURES" "23")
    '("foreground-alpha" "PANGO_ATTR_FOREGROUND_ALPHA" "24")
    '("background-alpha" "PANGO_ATTR_BACKGROUND_ALPHA" "25")
    '("allow-breaks" "PANGO_ATTR_ALLOW_BREAKS" "26")
    '("show" "PANGO_ATTR_SHOW" "27")
    '("insert-hyphens" "PANGO_ATTR_INSERT_HYPHENS" "28")
    '("overline" "PANGO_ATTR_OVERLINE" "29")
    '("overline-color" "PANGO_ATTR_OVERLINE_COLOR" "30")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_UNDERLINE_NONE,
;;   PANGO_UNDERLINE_SINGLE,
;;   PANGO_UNDERLINE_DOUBLE,
;;   PANGO_UNDERLINE_LOW,
;;   PANGO_UNDERLINE_ERROR,
;;   PANGO_UNDERLINE_SINGLE_LINE,
;;   PANGO_UNDERLINE_DOUBLE_LINE,
;;   PANGO_UNDERLINE_ERROR_LINE
;; } PangoUnderline;

(define-enum-extended Underline
  (in-module "Pango")
  (c-name "PangoUnderline")
  (values
    '("none" "PANGO_UNDERLINE_NONE" "0")
    '("single" "PANGO_UNDERLINE_SINGLE" "1")
    '("double" "PANGO_UNDERLINE_DOUBLE" "2")
    '("low" "PANGO_UNDERLINE_LOW" "3")
    '("error" "PANGO_UNDERLINE_ERROR" "4")
    '("single-line" "PANGO_UNDERLINE_SINGLE_LINE" "5")
    '("double-line" "PANGO_UNDERLINE_DOUBLE_LINE" "6")
    '("error-line" "PANGO_UNDERLINE_ERROR_LINE" "7")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_OVERLINE_NONE,
;;   PANGO_OVERLINE_SINGLE
;; } PangoOverline;

(define-enum-extended Overline
  (in-module "Pango")
  (c-name "PangoOverline")
  (values
    '("none" "PANGO_OVERLINE_NONE" "0")
    '("single" "PANGO_OVERLINE_SINGLE" "1")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_SHOW_NONE        = 0,
;;   PANGO_SHOW_SPACES      = 1 << 0,
;;   PANGO_SHOW_LINE_BREAKS = 1 << 1,
;;   PANGO_SHOW_IGNORABLES  = 1 << 2
;; } PangoShowFlags;

(define-flags-extended ShowFlags
  (in-module "Pango")
  (c-name "PangoShowFlags")
  (values
    '("none" "PANGO_SHOW_NONE" "0x0")
    '("spaces" "PANGO_SHOW_SPACES" "1 << 0")
    '("line-breaks" "PANGO_SHOW_LINE_BREAKS" "1 << 1")
    '("ignorables" "PANGO_SHOW_IGNORABLES" "1 << 2")
  )
)

;; From pango-bidi-type.h

;; Original typedef:
;; typedef enum {
;;   /* Strong types */
;;   PANGO_BIDI_TYPE_L,
;;   PANGO_BIDI_TYPE_LRE,
;;   PANGO_BIDI_TYPE_LRO,
;;   PANGO_BIDI_TYPE_R,
;;   PANGO_BIDI_TYPE_AL,
;;   PANGO_BIDI_TYPE_RLE,
;;   PANGO_BIDI_TYPE_RLO,
;; 
;;   /* Weak types */
;;   PANGO_BIDI_TYPE_PDF,
;;   PANGO_BIDI_TYPE_EN,
;;   PANGO_BIDI_TYPE_ES,
;;   PANGO_BIDI_TYPE_ET,
;;   PANGO_BIDI_TYPE_AN,
;;   PANGO_BIDI_TYPE_CS,
;;   PANGO_BIDI_TYPE_NSM,
;;   PANGO_BIDI_TYPE_BN,
;; 
;;   /* Neutral types */
;;   PANGO_BIDI_TYPE_B,
;;   PANGO_BIDI_TYPE_S,
;;   PANGO_BIDI_TYPE_WS,
;;   PANGO_BIDI_TYPE_ON
;; } PangoBidiType;

(define-enum-extended BidiType
  (in-module "Pango")
  (c-name "PangoBidiType")
  (values
    '("l" "PANGO_BIDI_TYPE_L" "0")
    '("lre" "PANGO_BIDI_TYPE_LRE" "1")
    '("lro" "PANGO_BIDI_TYPE_LRO" "2")
    '("r" "PANGO_BIDI_TYPE_R" "3")
    '("al" "PANGO_BIDI_TYPE_AL" "4")
    '("rle" "PANGO_BIDI_TYPE_RLE" "5")
    '("rlo" "PANGO_BIDI_TYPE_RLO" "6")
    '("pdf" "PANGO_BIDI_TYPE_PDF" "7")
    '("en" "PANGO_BIDI_TYPE_EN" "8")
    '("es" "PANGO_BIDI_TYPE_ES" "9")
    '("et" "PANGO_BIDI_TYPE_ET" "10")
    '("an" "PANGO_BIDI_TYPE_AN" "11")
    '("cs" "PANGO_BIDI_TYPE_CS" "12")
    '("nsm" "PANGO_BIDI_TYPE_NSM" "13")
    '("bn" "PANGO_BIDI_TYPE_BN" "14")
    '("b" "PANGO_BIDI_TYPE_B" "15")
    '("s" "PANGO_BIDI_TYPE_S" "16")
    '("ws" "PANGO_BIDI_TYPE_WS" "17")
    '("on" "PANGO_BIDI_TYPE_ON" "18")
  )
)

;; From pango-coverage.h

;; Original typedef:
;; typedef enum {
;;   PANGO_COVERAGE_NONE,
;;   PANGO_COVERAGE_FALLBACK,
;;   PANGO_COVERAGE_APPROXIMATE,
;;   PANGO_COVERAGE_EXACT
;; } PangoCoverageLevel;

(define-enum-extended CoverageLevel
  (in-module "Pango")
  (c-name "PangoCoverageLevel")
  (values
    '("none" "PANGO_COVERAGE_NONE" "0")
    '("fallback" "PANGO_COVERAGE_FALLBACK" "1")
    '("approximate" "PANGO_COVERAGE_APPROXIMATE" "2")
    '("exact" "PANGO_COVERAGE_EXACT" "3")
  )
)

;; From pango-direction.h

;; Original typedef:
;; typedef enum {
;;   PANGO_DIRECTION_LTR,
;;   PANGO_DIRECTION_RTL,
;;   PANGO_DIRECTION_TTB_LTR,
;;   PANGO_DIRECTION_TTB_RTL,
;;   PANGO_DIRECTION_WEAK_LTR,
;;   PANGO_DIRECTION_WEAK_RTL,
;;   PANGO_DIRECTION_NEUTRAL
;; } PangoDirection;

(define-enum-extended Direction
  (in-module "Pango")
  (c-name "PangoDirection")
  (values
    '("ltr" "PANGO_DIRECTION_LTR" "0")
    '("rtl" "PANGO_DIRECTION_RTL" "1")
    '("ttb-ltr" "PANGO_DIRECTION_TTB_LTR" "2")
    '("ttb-rtl" "PANGO_DIRECTION_TTB_RTL" "3")
    '("weak-ltr" "PANGO_DIRECTION_WEAK_LTR" "4")
    '("weak-rtl" "PANGO_DIRECTION_WEAK_RTL" "5")
    '("neutral" "PANGO_DIRECTION_NEUTRAL" "6")
  )
)

;; From pango-font.h

;; Original typedef:
;; typedef enum {
;;   PANGO_STYLE_NORMAL,
;;   PANGO_STYLE_OBLIQUE,
;;   PANGO_STYLE_ITALIC
;; } PangoStyle;

(define-enum-extended Style
  (in-module "Pango")
  (c-name "PangoStyle")
  (values
    '("normal" "PANGO_STYLE_NORMAL" "0")
    '("oblique" "PANGO_STYLE_OBLIQUE" "1")
    '("italic" "PANGO_STYLE_ITALIC" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_VARIANT_NORMAL,
;;   PANGO_VARIANT_SMALL_CAPS
;; } PangoVariant;

(define-enum-extended Variant
  (in-module "Pango")
  (c-name "PangoVariant")
  (values
    '("normal" "PANGO_VARIANT_NORMAL" "0")
    '("small-caps" "PANGO_VARIANT_SMALL_CAPS" "1")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_WEIGHT_THIN = 100,
;;   PANGO_WEIGHT_ULTRALIGHT = 200,
;;   PANGO_WEIGHT_LIGHT = 300,
;;   PANGO_WEIGHT_SEMILIGHT = 350,
;;   PANGO_WEIGHT_BOOK = 380,
;;   PANGO_WEIGHT_NORMAL = 400,
;;   PANGO_WEIGHT_MEDIUM = 500,
;;   PANGO_WEIGHT_SEMIBOLD = 600,
;;   PANGO_WEIGHT_BOLD = 700,
;;   PANGO_WEIGHT_ULTRABOLD = 800,
;;   PANGO_WEIGHT_HEAVY = 900,
;;   PANGO_WEIGHT_ULTRAHEAVY = 1000
;; } PangoWeight;

(define-enum-extended Weight
  (in-module "Pango")
  (c-name "PangoWeight")
  (values
    '("thin" "PANGO_WEIGHT_THIN" "100")
    '("ultralight" "PANGO_WEIGHT_ULTRALIGHT" "200")
    '("light" "PANGO_WEIGHT_LIGHT" "300")
    '("semilight" "PANGO_WEIGHT_SEMILIGHT" "350")
    '("book" "PANGO_WEIGHT_BOOK" "380")
    '("normal" "PANGO_WEIGHT_NORMAL" "400")
    '("medium" "PANGO_WEIGHT_MEDIUM" "500")
    '("semibold" "PANGO_WEIGHT_SEMIBOLD" "600")
    '("bold" "PANGO_WEIGHT_BOLD" "700")
    '("ultrabold" "PANGO_WEIGHT_ULTRABOLD" "800")
    '("heavy" "PANGO_WEIGHT_HEAVY" "900")
    '("ultraheavy" "PANGO_WEIGHT_ULTRAHEAVY" "1000")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_STRETCH_ULTRA_CONDENSED,
;;   PANGO_STRETCH_EXTRA_CONDENSED,
;;   PANGO_STRETCH_CONDENSED,
;;   PANGO_STRETCH_SEMI_CONDENSED,
;;   PANGO_STRETCH_NORMAL,
;;   PANGO_STRETCH_SEMI_EXPANDED,
;;   PANGO_STRETCH_EXPANDED,
;;   PANGO_STRETCH_EXTRA_EXPANDED,
;;   PANGO_STRETCH_ULTRA_EXPANDED
;; } PangoStretch;

(define-enum-extended Stretch
  (in-module "Pango")
  (c-name "PangoStretch")
  (values
    '("ultra-condensed" "PANGO_STRETCH_ULTRA_CONDENSED" "0")
    '("extra-condensed" "PANGO_STRETCH_EXTRA_CONDENSED" "1")
    '("condensed" "PANGO_STRETCH_CONDENSED" "2")
    '("semi-condensed" "PANGO_STRETCH_SEMI_CONDENSED" "3")
    '("normal" "PANGO_STRETCH_NORMAL" "4")
    '("semi-expanded" "PANGO_STRETCH_SEMI_EXPANDED" "5")
    '("expanded" "PANGO_STRETCH_EXPANDED" "6")
    '("extra-expanded" "PANGO_STRETCH_EXTRA_EXPANDED" "7")
    '("ultra-expanded" "PANGO_STRETCH_ULTRA_EXPANDED" "8")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_FONT_MASK_FAMILY  = 1 << 0,
;;   PANGO_FONT_MASK_STYLE   = 1 << 1,
;;   PANGO_FONT_MASK_VARIANT = 1 << 2,
;;   PANGO_FONT_MASK_WEIGHT  = 1 << 3,
;;   PANGO_FONT_MASK_STRETCH = 1 << 4,
;;   PANGO_FONT_MASK_SIZE    = 1 << 5,
;;   PANGO_FONT_MASK_GRAVITY = 1 << 6,
;;   PANGO_FONT_MASK_VARIATIONS = 1 << 7,
;; } PangoFontMask;

(define-flags-extended FontMask
  (in-module "Pango")
  (c-name "PangoFontMask")
  (values
    '("family" "PANGO_FONT_MASK_FAMILY" "1 << 0")
    '("style" "PANGO_FONT_MASK_STYLE" "1 << 1")
    '("variant" "PANGO_FONT_MASK_VARIANT" "1 << 2")
    '("weight" "PANGO_FONT_MASK_WEIGHT" "1 << 3")
    '("stretch" "PANGO_FONT_MASK_STRETCH" "1 << 4")
    '("size" "PANGO_FONT_MASK_SIZE" "1 << 5")
    '("gravity" "PANGO_FONT_MASK_GRAVITY" "1 << 6")
    '("variations" "PANGO_FONT_MASK_VARIATIONS" "1 << 7")
  )
)

;; From pango-glyph.h

;; Original typedef:
;; typedef enum {
;;   PANGO_SHAPE_NONE            = 0,
;;   PANGO_SHAPE_ROUND_POSITIONS = 1 << 0,
;; } PangoShapeFlags;

(define-flags-extended ShapeFlags
  (in-module "Pango")
  (c-name "PangoShapeFlags")
  (values
    '("none" "PANGO_SHAPE_NONE" "0x0")
    '("round-positions" "PANGO_SHAPE_ROUND_POSITIONS" "1 << 0")
  )
)

;; From pango-gravity.h

;; Original typedef:
;; typedef enum {
;;   PANGO_GRAVITY_SOUTH,
;;   PANGO_GRAVITY_EAST,
;;   PANGO_GRAVITY_NORTH,
;;   PANGO_GRAVITY_WEST,
;;   PANGO_GRAVITY_AUTO
;; } PangoGravity;

(define-enum-extended Gravity
  (in-module "Pango")
  (c-name "PangoGravity")
  (values
    '("south" "PANGO_GRAVITY_SOUTH" "0")
    '("east" "PANGO_GRAVITY_EAST" "1")
    '("north" "PANGO_GRAVITY_NORTH" "2")
    '("west" "PANGO_GRAVITY_WEST" "3")
    '("auto" "PANGO_GRAVITY_AUTO" "4")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_GRAVITY_HINT_NATURAL,
;;   PANGO_GRAVITY_HINT_STRONG,
;;   PANGO_GRAVITY_HINT_LINE
;; } PangoGravityHint;

(define-enum-extended GravityHint
  (in-module "Pango")
  (c-name "PangoGravityHint")
  (values
    '("natural" "PANGO_GRAVITY_HINT_NATURAL" "0")
    '("strong" "PANGO_GRAVITY_HINT_STRONG" "1")
    '("line" "PANGO_GRAVITY_HINT_LINE" "2")
  )
)

;; From pango-layout.h

;; Original typedef:
;; typedef enum {
;;   PANGO_ALIGN_LEFT,
;;   PANGO_ALIGN_CENTER,
;;   PANGO_ALIGN_RIGHT
;; } PangoAlignment;

(define-enum-extended Alignment
  (in-module "Pango")
  (c-name "PangoAlignment")
  (values
    '("left" "PANGO_ALIGN_LEFT" "0")
    '("center" "PANGO_ALIGN_CENTER" "1")
    '("right" "PANGO_ALIGN_RIGHT" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_WRAP_WORD,
;;   PANGO_WRAP_CHAR,
;;   PANGO_WRAP_WORD_CHAR
;; } PangoWrapMode;

(define-enum-extended WrapMode
  (in-module "Pango")
  (c-name "PangoWrapMode")
  (values
    '("word" "PANGO_WRAP_WORD" "0")
    '("char" "PANGO_WRAP_CHAR" "1")
    '("word-char" "PANGO_WRAP_WORD_CHAR" "2")
  )
)

;; Original typedef:
;; typedef enum {
;;   PANGO_ELLIPSIZE_NONE,
;;   PANGO_ELLIPSIZE_START,
;;   PANGO_ELLIPSIZE_MIDDLE,
;;   PANGO_ELLIPSIZE_END
;; } PangoEllipsizeMode;

(define-enum-extended EllipsizeMode
  (in-module "Pango")
  (c-name "PangoEllipsizeMode")
  (values
    '("none" "PANGO_ELLIPSIZE_NONE" "0")
    '("start" "PANGO_ELLIPSIZE_START" "1")
    '("middle" "PANGO_ELLIPSIZE_MIDDLE" "2")
    '("end" "PANGO_ELLIPSIZE_END" "3")
  )
)

;; From pango-ot.h

;; Original typedef:
;; typedef enum
;; {
;;   PANGO_OT_TABLE_GSUB,
;;   PANGO_OT_TABLE_GPOS
;; } PangoOTTableType;

(define-enum-extended OTTableType
  (in-module "Pango")
  (c-name "PangoOTTableType")
  (values
    '("gsub" "PANGO_OT_TABLE_GSUB" "0")
    '("gpos" "PANGO_OT_TABLE_GPOS" "1")
  )
)

;; From pango-renderer.h

;; Original typedef:
;; typedef enum
;; {
;;   PANGO_RENDER_PART_FOREGROUND,
;;   PANGO_RENDER_PART_BACKGROUND,
;;   PANGO_RENDER_PART_UNDERLINE,
;;   PANGO_RENDER_PART_STRIKETHROUGH,
;;   PANGO_RENDER_PART_OVERLINE
;; } PangoRenderPart;

(define-enum-extended RenderPart
  (in-module "Pango")
  (c-name "PangoRenderPart")
  (values
    '("foreground" "PANGO_RENDER_PART_FOREGROUND" "0")
    '("background" "PANGO_RENDER_PART_BACKGROUND" "1")
    '("underline" "PANGO_RENDER_PART_UNDERLINE" "2")
    '("strikethrough" "PANGO_RENDER_PART_STRIKETHROUGH" "3")
    '("overline" "PANGO_RENDER_PART_OVERLINE" "4")
  )
)

;; From pango-script.h

;; Original typedef:
;; typedef enum {                         /* ISO 15924 code */
;;       PANGO_SCRIPT_INVALID_CODE = -1,
;;       PANGO_SCRIPT_COMMON       = 0,   /* Zyyy */
;;       PANGO_SCRIPT_INHERITED,          /* Qaai */
;;       PANGO_SCRIPT_ARABIC,             /* Arab */
;;       PANGO_SCRIPT_ARMENIAN,           /* Armn */
;;       PANGO_SCRIPT_BENGALI,            /* Beng */
;;       PANGO_SCRIPT_BOPOMOFO,           /* Bopo */
;;       PANGO_SCRIPT_CHEROKEE,           /* Cher */
;;       PANGO_SCRIPT_COPTIC,             /* Qaac */
;;       PANGO_SCRIPT_CYRILLIC,           /* Cyrl (Cyrs) */
;;       PANGO_SCRIPT_DESERET,            /* Dsrt */
;;       PANGO_SCRIPT_DEVANAGARI,         /* Deva */
;;       PANGO_SCRIPT_ETHIOPIC,           /* Ethi */
;;       PANGO_SCRIPT_GEORGIAN,           /* Geor (Geon, Geoa) */
;;       PANGO_SCRIPT_GOTHIC,             /* Goth */
;;       PANGO_SCRIPT_GREEK,              /* Grek */
;;       PANGO_SCRIPT_GUJARATI,           /* Gujr */
;;       PANGO_SCRIPT_GURMUKHI,           /* Guru */
;;       PANGO_SCRIPT_HAN,                /* Hani */
;;       PANGO_SCRIPT_HANGUL,             /* Hang */
;;       PANGO_SCRIPT_HEBREW,             /* Hebr */
;;       PANGO_SCRIPT_HIRAGANA,           /* Hira */
;;       PANGO_SCRIPT_KANNADA,            /* Knda */
;;       PANGO_SCRIPT_KATAKANA,           /* Kana */
;;       PANGO_SCRIPT_KHMER,              /* Khmr */
;;       PANGO_SCRIPT_LAO,                /* Laoo */
;;       PANGO_SCRIPT_LATIN,              /* Latn (Latf, Latg) */
;;       PANGO_SCRIPT_MALAYALAM,          /* Mlym */
;;       PANGO_SCRIPT_MONGOLIAN,          /* Mong */
;;       PANGO_SCRIPT_MYANMAR,            /* Mymr */
;;       PANGO_SCRIPT_OGHAM,              /* Ogam */
;;       PANGO_SCRIPT_OLD_ITALIC,         /* Ital */
;;       PANGO_SCRIPT_ORIYA,              /* Orya */
;;       PANGO_SCRIPT_RUNIC,              /* Runr */
;;       PANGO_SCRIPT_SINHALA,            /* Sinh */
;;       PANGO_SCRIPT_SYRIAC,             /* Syrc (Syrj, Syrn, Syre) */
;;       PANGO_SCRIPT_TAMIL,              /* Taml */
;;       PANGO_SCRIPT_TELUGU,             /* Telu */
;;       PANGO_SCRIPT_THAANA,             /* Thaa */
;;       PANGO_SCRIPT_THAI,               /* Thai */
;;       PANGO_SCRIPT_TIBETAN,            /* Tibt */
;;       PANGO_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
;;       PANGO_SCRIPT_YI,                 /* Yiii */
;;       PANGO_SCRIPT_TAGALOG,            /* Tglg */
;;       PANGO_SCRIPT_HANUNOO,            /* Hano */
;;       PANGO_SCRIPT_BUHID,              /* Buhd */
;;       PANGO_SCRIPT_TAGBANWA,           /* Tagb */
;; 
;;       /* Unicode-4.0 additions */
;;       PANGO_SCRIPT_BRAILLE,            /* Brai */
;;       PANGO_SCRIPT_CYPRIOT,            /* Cprt */
;;       PANGO_SCRIPT_LIMBU,              /* Limb */
;;       PANGO_SCRIPT_OSMANYA,            /* Osma */
;;       PANGO_SCRIPT_SHAVIAN,            /* Shaw */
;;       PANGO_SCRIPT_LINEAR_B,           /* Linb */
;;       PANGO_SCRIPT_TAI_LE,             /* Tale */
;;       PANGO_SCRIPT_UGARITIC,           /* Ugar */
;; 
;;       /* Unicode-4.1 additions */
;;       PANGO_SCRIPT_NEW_TAI_LUE,        /* Talu */
;;       PANGO_SCRIPT_BUGINESE,           /* Bugi */
;;       PANGO_SCRIPT_GLAGOLITIC,         /* Glag */
;;       PANGO_SCRIPT_TIFINAGH,           /* Tfng */
;;       PANGO_SCRIPT_SYLOTI_NAGRI,       /* Sylo */
;;       PANGO_SCRIPT_OLD_PERSIAN,        /* Xpeo */
;;       PANGO_SCRIPT_KHAROSHTHI,         /* Khar */
;; 
;;       /* Unicode-5.0 additions */
;;       PANGO_SCRIPT_UNKNOWN,            /* Zzzz */
;;       PANGO_SCRIPT_BALINESE,           /* Bali */
;;       PANGO_SCRIPT_CUNEIFORM,          /* Xsux */
;;       PANGO_SCRIPT_PHOENICIAN,         /* Phnx */
;;       PANGO_SCRIPT_PHAGS_PA,           /* Phag */
;;       PANGO_SCRIPT_NKO,                /* Nkoo */
;; 
;;       /* Unicode-5.1 additions */
;;       PANGO_SCRIPT_KAYAH_LI,           /* Kali */
;;       PANGO_SCRIPT_LEPCHA,             /* Lepc */
;;       PANGO_SCRIPT_REJANG,             /* Rjng */
;;       PANGO_SCRIPT_SUNDANESE,          /* Sund */
;;       PANGO_SCRIPT_SAURASHTRA,         /* Saur */
;;       PANGO_SCRIPT_CHAM,               /* Cham */
;;       PANGO_SCRIPT_OL_CHIKI,           /* Olck */
;;       PANGO_SCRIPT_VAI,                /* Vaii */
;;       PANGO_SCRIPT_CARIAN,             /* Cari */
;;       PANGO_SCRIPT_LYCIAN,             /* Lyci */
;;       PANGO_SCRIPT_LYDIAN,             /* Lydi */
;; 
;;       /* Unicode-6.0 additions */
;;       PANGO_SCRIPT_BATAK,              /* Batk */
;;       PANGO_SCRIPT_BRAHMI,             /* Brah */
;;       PANGO_SCRIPT_MANDAIC,            /* Mand */
;; 
;;       /* Unicode-6.1 additions */
;;       PANGO_SCRIPT_CHAKMA,             /* Cakm */
;;       PANGO_SCRIPT_MEROITIC_CURSIVE,   /* Merc */
;;       PANGO_SCRIPT_MEROITIC_HIEROGLYPHS,/* Mero */
;;       PANGO_SCRIPT_MIAO,               /* Plrd */
;;       PANGO_SCRIPT_SHARADA,            /* Shrd */
;;       PANGO_SCRIPT_SORA_SOMPENG,       /* Sora */
;;       PANGO_SCRIPT_TAKRI,              /* Takr */
;; 
;;       /* Unicode 7.0 additions */
;;       PANGO_SCRIPT_BASSA_VAH,              /* Bass */
;;       PANGO_SCRIPT_CAUCASIAN_ALBANIAN,     /* Aghb */
;;       PANGO_SCRIPT_DUPLOYAN,               /* Dupl */
;;       PANGO_SCRIPT_ELBASAN,                /* Elba */
;;       PANGO_SCRIPT_GRANTHA,                /* Gran */
;;       PANGO_SCRIPT_KHOJKI,                 /* Khoj */
;;       PANGO_SCRIPT_KHUDAWADI,              /* Sind */
;;       PANGO_SCRIPT_LINEAR_A,               /* Lina */
;;       PANGO_SCRIPT_MAHAJANI,               /* Mahj */
;;       PANGO_SCRIPT_MANICHAEAN,             /* Manu */
;;       PANGO_SCRIPT_MENDE_KIKAKUI,          /* Mend */
;;       PANGO_SCRIPT_MODI,                   /* Modi */
;;       PANGO_SCRIPT_MRO,                    /* Mroo */
;;       PANGO_SCRIPT_NABATAEAN,              /* Nbat */
;;       PANGO_SCRIPT_OLD_NORTH_ARABIAN,      /* Narb */
;;       PANGO_SCRIPT_OLD_PERMIC,             /* Perm */
;;       PANGO_SCRIPT_PAHAWH_HMONG,           /* Hmng */
;;       PANGO_SCRIPT_PALMYRENE,              /* Palm */
;;       PANGO_SCRIPT_PAU_CIN_HAU,            /* Pauc */
;;       PANGO_SCRIPT_PSALTER_PAHLAVI,        /* Phlp */
;;       PANGO_SCRIPT_SIDDHAM,                /* Sidd */
;;       PANGO_SCRIPT_TIRHUTA,                /* Tirh */
;;       PANGO_SCRIPT_WARANG_CITI,            /* Wara */
;; 
;;       /* Unicode 8.0 additions */
;;       PANGO_SCRIPT_AHOM,                   /* Ahom */
;;       PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS,  /* Hluw */
;;       PANGO_SCRIPT_HATRAN,                 /* Hatr */
;;       PANGO_SCRIPT_MULTANI,                /* Mult */
;;       PANGO_SCRIPT_OLD_HUNGARIAN,          /* Hung */
;;       PANGO_SCRIPT_SIGNWRITING             /* Sgnw */
;; } PangoScript;

(define-enum-extended Script
  (in-module "Pango")
  (c-name "PangoScript")
  (values
    '("invalid-code" "PANGO_SCRIPT_INVALID_CODE" "-1")
    '("common" "PANGO_SCRIPT_COMMON" "0")
    '("inherited" "PANGO_SCRIPT_INHERITED" "1")
    '("arabic" "PANGO_SCRIPT_ARABIC" "2")
    '("armenian" "PANGO_SCRIPT_ARMENIAN" "3")
    '("bengali" "PANGO_SCRIPT_BENGALI" "4")
    '("bopomofo" "PANGO_SCRIPT_BOPOMOFO" "5")
    '("cherokee" "PANGO_SCRIPT_CHEROKEE" "6")
    '("coptic" "PANGO_SCRIPT_COPTIC" "7")
    '("cyrillic" "PANGO_SCRIPT_CYRILLIC" "8")
    '("deseret" "PANGO_SCRIPT_DESERET" "9")
    '("devanagari" "PANGO_SCRIPT_DEVANAGARI" "10")
    '("ethiopic" "PANGO_SCRIPT_ETHIOPIC" "11")
    '("georgian" "PANGO_SCRIPT_GEORGIAN" "12")
    '("gothic" "PANGO_SCRIPT_GOTHIC" "13")
    '("greek" "PANGO_SCRIPT_GREEK" "14")
    '("gujarati" "PANGO_SCRIPT_GUJARATI" "15")
    '("gurmukhi" "PANGO_SCRIPT_GURMUKHI" "16")
    '("han" "PANGO_SCRIPT_HAN" "17")
    '("hangul" "PANGO_SCRIPT_HANGUL" "18")
    '("hebrew" "PANGO_SCRIPT_HEBREW" "19")
    '("hiragana" "PANGO_SCRIPT_HIRAGANA" "20")
    '("kannada" "PANGO_SCRIPT_KANNADA" "21")
    '("katakana" "PANGO_SCRIPT_KATAKANA" "22")
    '("khmer" "PANGO_SCRIPT_KHMER" "23")
    '("lao" "PANGO_SCRIPT_LAO" "24")
    '("latin" "PANGO_SCRIPT_LATIN" "25")
    '("malayalam" "PANGO_SCRIPT_MALAYALAM" "26")
    '("mongolian" "PANGO_SCRIPT_MONGOLIAN" "27")
    '("myanmar" "PANGO_SCRIPT_MYANMAR" "28")
    '("ogham" "PANGO_SCRIPT_OGHAM" "29")
    '("old-italic" "PANGO_SCRIPT_OLD_ITALIC" "30")
    '("oriya" "PANGO_SCRIPT_ORIYA" "31")
    '("runic" "PANGO_SCRIPT_RUNIC" "32")
    '("sinhala" "PANGO_SCRIPT_SINHALA" "33")
    '("syriac" "PANGO_SCRIPT_SYRIAC" "34")
    '("tamil" "PANGO_SCRIPT_TAMIL" "35")
    '("telugu" "PANGO_SCRIPT_TELUGU" "36")
    '("thaana" "PANGO_SCRIPT_THAANA" "37")
    '("thai" "PANGO_SCRIPT_THAI" "38")
    '("tibetan" "PANGO_SCRIPT_TIBETAN" "39")
    '("canadian-aboriginal" "PANGO_SCRIPT_CANADIAN_ABORIGINAL" "40")
    '("yi" "PANGO_SCRIPT_YI" "41")
    '("tagalog" "PANGO_SCRIPT_TAGALOG" "42")
    '("hanunoo" "PANGO_SCRIPT_HANUNOO" "43")
    '("buhid" "PANGO_SCRIPT_BUHID" "44")
    '("tagbanwa" "PANGO_SCRIPT_TAGBANWA" "45")
    '("braille" "PANGO_SCRIPT_BRAILLE" "46")
    '("cypriot" "PANGO_SCRIPT_CYPRIOT" "47")
    '("limbu" "PANGO_SCRIPT_LIMBU" "48")
    '("osmanya" "PANGO_SCRIPT_OSMANYA" "49")
    '("shavian" "PANGO_SCRIPT_SHAVIAN" "50")
    '("linear-b" "PANGO_SCRIPT_LINEAR_B" "51")
    '("tai-le" "PANGO_SCRIPT_TAI_LE" "52")
    '("ugaritic" "PANGO_SCRIPT_UGARITIC" "53")
    '("new-tai-lue" "PANGO_SCRIPT_NEW_TAI_LUE" "54")
    '("buginese" "PANGO_SCRIPT_BUGINESE" "55")
    '("glagolitic" "PANGO_SCRIPT_GLAGOLITIC" "56")
    '("tifinagh" "PANGO_SCRIPT_TIFINAGH" "57")
    '("syloti-nagri" "PANGO_SCRIPT_SYLOTI_NAGRI" "58")
    '("old-persian" "PANGO_SCRIPT_OLD_PERSIAN" "59")
    '("kharoshthi" "PANGO_SCRIPT_KHAROSHTHI" "60")
    '("unknown" "PANGO_SCRIPT_UNKNOWN" "61")
    '("balinese" "PANGO_SCRIPT_BALINESE" "62")
    '("cuneiform" "PANGO_SCRIPT_CUNEIFORM" "63")
    '("phoenician" "PANGO_SCRIPT_PHOENICIAN" "64")
    '("phags-pa" "PANGO_SCRIPT_PHAGS_PA" "65")
    '("nko" "PANGO_SCRIPT_NKO" "66")
    '("kayah-li" "PANGO_SCRIPT_KAYAH_LI" "67")
    '("lepcha" "PANGO_SCRIPT_LEPCHA" "68")
    '("rejang" "PANGO_SCRIPT_REJANG" "69")
    '("sundanese" "PANGO_SCRIPT_SUNDANESE" "70")
    '("saurashtra" "PANGO_SCRIPT_SAURASHTRA" "71")
    '("cham" "PANGO_SCRIPT_CHAM" "72")
    '("ol-chiki" "PANGO_SCRIPT_OL_CHIKI" "73")
    '("vai" "PANGO_SCRIPT_VAI" "74")
    '("carian" "PANGO_SCRIPT_CARIAN" "75")
    '("lycian" "PANGO_SCRIPT_LYCIAN" "76")
    '("lydian" "PANGO_SCRIPT_LYDIAN" "77")
    '("batak" "PANGO_SCRIPT_BATAK" "78")
    '("brahmi" "PANGO_SCRIPT_BRAHMI" "79")
    '("mandaic" "PANGO_SCRIPT_MANDAIC" "80")
    '("chakma" "PANGO_SCRIPT_CHAKMA" "81")
    '("meroitic-cursive" "PANGO_SCRIPT_MEROITIC_CURSIVE" "82")
    '("meroitic-hieroglyphs" "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS" "83")
    '("miao" "PANGO_SCRIPT_MIAO" "84")
    '("sharada" "PANGO_SCRIPT_SHARADA" "85")
    '("sora-sompeng" "PANGO_SCRIPT_SORA_SOMPENG" "86")
    '("takri" "PANGO_SCRIPT_TAKRI" "87")
    '("bassa-vah" "PANGO_SCRIPT_BASSA_VAH" "88")
    '("caucasian-albanian" "PANGO_SCRIPT_CAUCASIAN_ALBANIAN" "89")
    '("duployan" "PANGO_SCRIPT_DUPLOYAN" "90")
    '("elbasan" "PANGO_SCRIPT_ELBASAN" "91")
    '("grantha" "PANGO_SCRIPT_GRANTHA" "92")
    '("khojki" "PANGO_SCRIPT_KHOJKI" "93")
    '("khudawadi" "PANGO_SCRIPT_KHUDAWADI" "94")
    '("linear-a" "PANGO_SCRIPT_LINEAR_A" "95")
    '("mahajani" "PANGO_SCRIPT_MAHAJANI" "96")
    '("manichaean" "PANGO_SCRIPT_MANICHAEAN" "97")
    '("mende-kikakui" "PANGO_SCRIPT_MENDE_KIKAKUI" "98")
    '("modi" "PANGO_SCRIPT_MODI" "99")
    '("mro" "PANGO_SCRIPT_MRO" "100")
    '("nabataean" "PANGO_SCRIPT_NABATAEAN" "101")
    '("old-north-arabian" "PANGO_SCRIPT_OLD_NORTH_ARABIAN" "102")
    '("old-permic" "PANGO_SCRIPT_OLD_PERMIC" "103")
    '("pahawh-hmong" "PANGO_SCRIPT_PAHAWH_HMONG" "104")
    '("palmyrene" "PANGO_SCRIPT_PALMYRENE" "105")
    '("pau-cin-hau" "PANGO_SCRIPT_PAU_CIN_HAU" "106")
    '("psalter-pahlavi" "PANGO_SCRIPT_PSALTER_PAHLAVI" "107")
    '("siddham" "PANGO_SCRIPT_SIDDHAM" "108")
    '("tirhuta" "PANGO_SCRIPT_TIRHUTA" "109")
    '("warang-citi" "PANGO_SCRIPT_WARANG_CITI" "110")
    '("ahom" "PANGO_SCRIPT_AHOM" "111")
    '("anatolian-hieroglyphs" "PANGO_SCRIPT_ANATOLIAN_HIEROGLYPHS" "112")
    '("hatran" "PANGO_SCRIPT_HATRAN" "113")
    '("multani" "PANGO_SCRIPT_MULTANI" "114")
    '("old-hungarian" "PANGO_SCRIPT_OLD_HUNGARIAN" "115")
    '("signwriting" "PANGO_SCRIPT_SIGNWRITING" "116")
  )
)

;; From pango-tabs.h

;; Original typedef:
;; typedef enum
;; {
;;   PANGO_TAB_LEFT
;; 
;;   /* These are not supported now, but may be in the
;;    * future.
;;    *
;;    *  PANGO_TAB_RIGHT,
;;    *  PANGO_TAB_CENTER,
;;    *  PANGO_TAB_NUMERIC
;;    */
;; } PangoTabAlign;

(define-enum-extended TabAlign
  (in-module "Pango")
  (c-name "PangoTabAlign")
  (values
    '("left" "PANGO_TAB_LEFT" "0")
  )
)

