;; -*- scheme -*-
; object definitions ...
(define-object CairoFont
  (in-module "Pango")
  (c-name "PangoCairoFont")
  (gtype-id "PANGO_TYPE_CAIRO_FONT")
)

(define-object CairoFontMap
  (in-module "Pango")
  (c-name "PangoCairoFontMap")
  (gtype-id "PANGO_TYPE_CAIRO_FONT_MAP")
)

(define-object Engine
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoEngine")
  (gtype-id "PANGO_TYPE_ENGINE")
)

(define-object EngineLang
  (in-module "Pango")
  (parent "PangoEngine")
  (c-name "PangoEngineLang")
  (gtype-id "PANGO_TYPE_ENGINE_LANG")
)

(define-object EngineShape
  (in-module "Pango")
  (parent "PangoEngine")
  (c-name "PangoEngineShape")
  (gtype-id "PANGO_TYPE_ENGINE_SHAPE")
)

(define-object FcDecoder
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFcDecoder")
  (gtype-id "PANGO_TYPE_FC_DECODER")
)

(define-object Font
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFont")
  (gtype-id "PANGO_TYPE_FONT")
)

(define-object FcFont
  (in-module "Pango")
  (parent "PangoFont")
  (c-name "PangoFcFont")
  (gtype-id "PANGO_TYPE_FC_FONT")
)

(define-object CoreTextFont
  (in-module "Pango")
  (parent "PangoFont")
  (c-name "PangoCoreTextFont")
  (gtype-id "PANGO_TYPE_CORE_TEXT_FONT")
)

(define-object FontFace
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFontFace")
  (gtype-id "PANGO_TYPE_FONT_FACE")
)

(define-object FontFamily
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFontFamily")
  (gtype-id "PANGO_TYPE_FONT_FAMILY")
)

(define-object FontMap
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFontMap")
  (gtype-id "PANGO_TYPE_FONT_MAP")
)

(define-object FcFontMap
  (in-module "Pango")
  (parent "PangoFontMap")
  (c-name "PangoFcFontMap")
  (gtype-id "PANGO_TYPE_FC_FONT_MAP")
)

(define-object CoreTextFontMap
  (in-module "Pango")
  (parent "PangoFontMap")
  (c-name "PangoCoreTextFontMap")
  (gtype-id "PANGO_TYPE_CORE_TEXT_FONT_MAP")
)

(define-object Fontset
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoFontset")
  (gtype-id "PANGO_TYPE_FONTSET")
)

(define-object OTInfo
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoOTInfo")
  (gtype-id "PANGO_TYPE_OT_INFO")
)

(define-object OTRuleset
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoOTRuleset")
  (gtype-id "PANGO_TYPE_OT_RULESET")
)

(define-object Renderer
  (in-module "Pango")
  (parent "GObject")
  (c-name "PangoRenderer")
  (gtype-id "PANGO_TYPE_RENDERER")
)

(define-object Win32Font
  (in-module "Pango")
  (parent "PangoFont")
  (c-name "PangoWin32Font")
  (gtype-id "PANGO_TYPE_WIN32_FONT")
)

(define-object Win32FontMap
  (in-module "Pango")
  (parent "PangoFontMap")
  (c-name "PangoWin32FontMap")
  (gtype-id "PANGO_TYPE_WIN32_FONT_MAP")
)

(define-object XftRenderer
  (in-module "Pango")
  (parent "PangoRenderer")
  (c-name "PangoXftRenderer")
  (gtype-id "PANGO_TYPE_XFT_RENDERER")
)

;; Enumerations and flags ...

(define-enum AttrType
  (in-module "Pango")
  (c-name "PangoAttrType")
  (gtype-id "PANGO_TYPE_ATTR_TYPE")
  (values
    '("invalid" "PANGO_ATTR_INVALID")
    '("language" "PANGO_ATTR_LANGUAGE")
    '("family" "PANGO_ATTR_FAMILY")
    '("style" "PANGO_ATTR_STYLE")
    '("weight" "PANGO_ATTR_WEIGHT")
    '("variant" "PANGO_ATTR_VARIANT")
    '("stretch" "PANGO_ATTR_STRETCH")
    '("size" "PANGO_ATTR_SIZE")
    '("font-desc" "PANGO_ATTR_FONT_DESC")
    '("foreground" "PANGO_ATTR_FOREGROUND")
    '("background" "PANGO_ATTR_BACKGROUND")
    '("underline" "PANGO_ATTR_UNDERLINE")
    '("strikethrough" "PANGO_ATTR_STRIKETHROUGH")
    '("rise" "PANGO_ATTR_RISE")
    '("shape" "PANGO_ATTR_SHAPE")
    '("scale" "PANGO_ATTR_SCALE")
    '("fallback" "PANGO_ATTR_FALLBACK")
    '("letter-spacing" "PANGO_ATTR_LETTER_SPACING")
    '("underline-color" "PANGO_ATTR_UNDERLINE_COLOR")
    '("strikethrough-color" "PANGO_ATTR_STRIKETHROUGH_COLOR")
    '("absolute-size" "PANGO_ATTR_ABSOLUTE_SIZE")
    '("gravity" "PANGO_ATTR_GRAVITY")
    '("gravity-hint" "PANGO_ATTR_GRAVITY_HINT")
    '("font-features" "PANGO_ATTR_FONT_FEATURES")
    '("foreground-alpha" "PANGO_ATTR_FOREGROUND_ALPHA")
    '("background-alpha" "PANGO_ATTR_BACKGROUND_ALPHA")
  )
)

(define-enum Underline
  (in-module "Pango")
  (c-name "PangoUnderline")
  (gtype-id "PANGO_TYPE_UNDERLINE")
  (values
    '("none" "PANGO_UNDERLINE_NONE")
    '("single" "PANGO_UNDERLINE_SINGLE")
    '("double" "PANGO_UNDERLINE_DOUBLE")
    '("low" "PANGO_UNDERLINE_LOW")
    '("error" "PANGO_UNDERLINE_ERROR")
  )
)

(define-enum BidiType
  (in-module "Pango")
  (c-name "PangoBidiType")
  (gtype-id "PANGO_TYPE_BIDI_TYPE")
  (values
    '("l" "PANGO_BIDI_TYPE_L")
    '("lre" "PANGO_BIDI_TYPE_LRE")
    '("lro" "PANGO_BIDI_TYPE_LRO")
    '("r" "PANGO_BIDI_TYPE_R")
    '("al" "PANGO_BIDI_TYPE_AL")
    '("rle" "PANGO_BIDI_TYPE_RLE")
    '("rlo" "PANGO_BIDI_TYPE_RLO")
    '("pdf" "PANGO_BIDI_TYPE_PDF")
    '("en" "PANGO_BIDI_TYPE_EN")
    '("es" "PANGO_BIDI_TYPE_ES")
    '("et" "PANGO_BIDI_TYPE_ET")
    '("an" "PANGO_BIDI_TYPE_AN")
    '("cs" "PANGO_BIDI_TYPE_CS")
    '("nsm" "PANGO_BIDI_TYPE_NSM")
    '("bn" "PANGO_BIDI_TYPE_BN")
    '("b" "PANGO_BIDI_TYPE_B")
    '("s" "PANGO_BIDI_TYPE_S")
    '("ws" "PANGO_BIDI_TYPE_WS")
    '("on" "PANGO_BIDI_TYPE_ON")
  )
)

(define-enum Direction
  (in-module "Pango")
  (c-name "PangoDirection")
  (gtype-id "PANGO_TYPE_DIRECTION")
  (values
    '("ltr" "PANGO_DIRECTION_LTR")
    '("rtl" "PANGO_DIRECTION_RTL")
    '("ttb-ltr" "PANGO_DIRECTION_TTB_LTR")
    '("ttb-rtl" "PANGO_DIRECTION_TTB_RTL")
    '("weak-ltr" "PANGO_DIRECTION_WEAK_LTR")
    '("weak-rtl" "PANGO_DIRECTION_WEAK_RTL")
    '("neutral" "PANGO_DIRECTION_NEUTRAL")
  )
)

(define-enum CoverageLevel
  (in-module "Pango")
  (c-name "PangoCoverageLevel")
  (gtype-id "PANGO_TYPE_COVERAGE_LEVEL")
  (values
    '("none" "PANGO_COVERAGE_NONE")
    '("fallback" "PANGO_COVERAGE_FALLBACK")
    '("approximate" "PANGO_COVERAGE_APPROXIMATE")
    '("exact" "PANGO_COVERAGE_EXACT")
  )
)

(define-enum Style
  (in-module "Pango")
  (c-name "PangoStyle")
  (gtype-id "PANGO_TYPE_STYLE")
  (values
    '("normal" "PANGO_STYLE_NORMAL")
    '("oblique" "PANGO_STYLE_OBLIQUE")
    '("italic" "PANGO_STYLE_ITALIC")
  )
)

(define-enum Variant
  (in-module "Pango")
  (c-name "PangoVariant")
  (gtype-id "PANGO_TYPE_VARIANT")
  (values
    '("normal" "PANGO_VARIANT_NORMAL")
    '("small-caps" "PANGO_VARIANT_SMALL_CAPS")
  )
)

(define-enum Weight
  (in-module "Pango")
  (c-name "PangoWeight")
  (gtype-id "PANGO_TYPE_WEIGHT")
  (values
    '("thin" "PANGO_WEIGHT_THIN")
    '("ultralight" "PANGO_WEIGHT_ULTRALIGHT")
    '("light" "PANGO_WEIGHT_LIGHT")
    '("semilight" "PANGO_WEIGHT_SEMILIGHT")
    '("book" "PANGO_WEIGHT_BOOK")
    '("normal" "PANGO_WEIGHT_NORMAL")
    '("medium" "PANGO_WEIGHT_MEDIUM")
    '("semibold" "PANGO_WEIGHT_SEMIBOLD")
    '("bold" "PANGO_WEIGHT_BOLD")
    '("ultrabold" "PANGO_WEIGHT_ULTRABOLD")
    '("heavy" "PANGO_WEIGHT_HEAVY")
    '("ultraheavy" "PANGO_WEIGHT_ULTRAHEAVY")
  )
)

(define-enum Stretch
  (in-module "Pango")
  (c-name "PangoStretch")
  (gtype-id "PANGO_TYPE_STRETCH")
  (values
    '("ultra-condensed" "PANGO_STRETCH_ULTRA_CONDENSED")
    '("extra-condensed" "PANGO_STRETCH_EXTRA_CONDENSED")
    '("condensed" "PANGO_STRETCH_CONDENSED")
    '("semi-condensed" "PANGO_STRETCH_SEMI_CONDENSED")
    '("normal" "PANGO_STRETCH_NORMAL")
    '("semi-expanded" "PANGO_STRETCH_SEMI_EXPANDED")
    '("expanded" "PANGO_STRETCH_EXPANDED")
    '("extra-expanded" "PANGO_STRETCH_EXTRA_EXPANDED")
    '("ultra-expanded" "PANGO_STRETCH_ULTRA_EXPANDED")
  )
)

(define-flags FontMask
  (in-module "Pango")
  (c-name "PangoFontMask")
  (gtype-id "PANGO_TYPE_FONT_MASK")
  (values
    '("family" "PANGO_FONT_MASK_FAMILY")
    '("style" "PANGO_FONT_MASK_STYLE")
    '("variant" "PANGO_FONT_MASK_VARIANT")
    '("weight" "PANGO_FONT_MASK_WEIGHT")
    '("stretch" "PANGO_FONT_MASK_STRETCH")
    '("size" "PANGO_FONT_MASK_SIZE")
    '("gravity" "PANGO_FONT_MASK_GRAVITY")
  )
)

(define-enum Gravity
  (in-module "Pango")
  (c-name "PangoGravity")
  (gtype-id "PANGO_TYPE_GRAVITY")
  (values
    '("south" "PANGO_GRAVITY_SOUTH")
    '("east" "PANGO_GRAVITY_EAST")
    '("north" "PANGO_GRAVITY_NORTH")
    '("west" "PANGO_GRAVITY_WEST")
    '("auto" "PANGO_GRAVITY_AUTO")
  )
)

(define-enum GravityHint
  (in-module "Pango")
  (c-name "PangoGravityHint")
  (gtype-id "PANGO_TYPE_GRAVITY_HINT")
  (values
    '("natural" "PANGO_GRAVITY_HINT_NATURAL")
    '("strong" "PANGO_GRAVITY_HINT_STRONG")
    '("line" "PANGO_GRAVITY_HINT_LINE")
  )
)

(define-enum Alignment
  (in-module "Pango")
  (c-name "PangoAlignment")
  (gtype-id "PANGO_TYPE_ALIGNMENT")
  (values
    '("left" "PANGO_ALIGN_LEFT")
    '("center" "PANGO_ALIGN_CENTER")
    '("right" "PANGO_ALIGN_RIGHT")
  )
)

(define-enum WrapMode
  (in-module "Pango")
  (c-name "PangoWrapMode")
  (gtype-id "PANGO_TYPE_WRAP_MODE")
  (values
    '("word" "PANGO_WRAP_WORD")
    '("char" "PANGO_WRAP_CHAR")
    '("word-char" "PANGO_WRAP_WORD_CHAR")
  )
)

(define-enum EllipsizeMode
  (in-module "Pango")
  (c-name "PangoEllipsizeMode")
  (gtype-id "PANGO_TYPE_ELLIPSIZE_MODE")
  (values
    '("none" "PANGO_ELLIPSIZE_NONE")
    '("start" "PANGO_ELLIPSIZE_START")
    '("middle" "PANGO_ELLIPSIZE_MIDDLE")
    '("end" "PANGO_ELLIPSIZE_END")
  )
)

(define-enum OTTableType
  (in-module "Pango")
  (c-name "PangoOTTableType")
  (gtype-id "PANGO_TYPE_OT_TABLE_TYPE")
  (values
    '("gsub" "PANGO_OT_TABLE_GSUB")
    '("gpos" "PANGO_OT_TABLE_GPOS")
  )
)

(define-enum RenderPart
  (in-module "Pango")
  (c-name "PangoRenderPart")
  (gtype-id "PANGO_TYPE_RENDER_PART")
  (values
    '("foreground" "PANGO_RENDER_PART_FOREGROUND")
    '("background" "PANGO_RENDER_PART_BACKGROUND")
    '("underline" "PANGO_RENDER_PART_UNDERLINE")
    '("strikethrough" "PANGO_RENDER_PART_STRIKETHROUGH")
  )
)

(define-enum Script
  (in-module "Pango")
  (c-name "PangoScript")
  (gtype-id "PANGO_TYPE_SCRIPT")
  (values
    '("invalid-code" "PANGO_SCRIPT_INVALID_CODE")
    '("common" "PANGO_SCRIPT_COMMON")
    '("inherited" "PANGO_SCRIPT_INHERITED")
    '("arabic" "PANGO_SCRIPT_ARABIC")
    '("armenian" "PANGO_SCRIPT_ARMENIAN")
    '("bengali" "PANGO_SCRIPT_BENGALI")
    '("bopomofo" "PANGO_SCRIPT_BOPOMOFO")
    '("cherokee" "PANGO_SCRIPT_CHEROKEE")
    '("coptic" "PANGO_SCRIPT_COPTIC")
    '("cyrillic" "PANGO_SCRIPT_CYRILLIC")
    '("deseret" "PANGO_SCRIPT_DESERET")
    '("devanagari" "PANGO_SCRIPT_DEVANAGARI")
    '("ethiopic" "PANGO_SCRIPT_ETHIOPIC")
    '("georgian" "PANGO_SCRIPT_GEORGIAN")
    '("gothic" "PANGO_SCRIPT_GOTHIC")
    '("greek" "PANGO_SCRIPT_GREEK")
    '("gujarati" "PANGO_SCRIPT_GUJARATI")
    '("gurmukhi" "PANGO_SCRIPT_GURMUKHI")
    '("han" "PANGO_SCRIPT_HAN")
    '("hangul" "PANGO_SCRIPT_HANGUL")
    '("hebrew" "PANGO_SCRIPT_HEBREW")
    '("hiragana" "PANGO_SCRIPT_HIRAGANA")
    '("kannada" "PANGO_SCRIPT_KANNADA")
    '("katakana" "PANGO_SCRIPT_KATAKANA")
    '("khmer" "PANGO_SCRIPT_KHMER")
    '("lao" "PANGO_SCRIPT_LAO")
    '("latin" "PANGO_SCRIPT_LATIN")
    '("malayalam" "PANGO_SCRIPT_MALAYALAM")
    '("mongolian" "PANGO_SCRIPT_MONGOLIAN")
    '("myanmar" "PANGO_SCRIPT_MYANMAR")
    '("ogham" "PANGO_SCRIPT_OGHAM")
    '("old-italic" "PANGO_SCRIPT_OLD_ITALIC")
    '("oriya" "PANGO_SCRIPT_ORIYA")
    '("runic" "PANGO_SCRIPT_RUNIC")
    '("sinhala" "PANGO_SCRIPT_SINHALA")
    '("syriac" "PANGO_SCRIPT_SYRIAC")
    '("tamil" "PANGO_SCRIPT_TAMIL")
    '("telugu" "PANGO_SCRIPT_TELUGU")
    '("thaana" "PANGO_SCRIPT_THAANA")
    '("thai" "PANGO_SCRIPT_THAI")
    '("tibetan" "PANGO_SCRIPT_TIBETAN")
    '("canadian-aboriginal" "PANGO_SCRIPT_CANADIAN_ABORIGINAL")
    '("yi" "PANGO_SCRIPT_YI")
    '("tagalog" "PANGO_SCRIPT_TAGALOG")
    '("hanunoo" "PANGO_SCRIPT_HANUNOO")
    '("buhid" "PANGO_SCRIPT_BUHID")
    '("tagbanwa" "PANGO_SCRIPT_TAGBANWA")
    '("braille" "PANGO_SCRIPT_BRAILLE")
    '("cypriot" "PANGO_SCRIPT_CYPRIOT")
    '("limbu" "PANGO_SCRIPT_LIMBU")
    '("osmanya" "PANGO_SCRIPT_OSMANYA")
    '("shavian" "PANGO_SCRIPT_SHAVIAN")
    '("linear-b" "PANGO_SCRIPT_LINEAR_B")
    '("tai-le" "PANGO_SCRIPT_TAI_LE")
    '("ugaritic" "PANGO_SCRIPT_UGARITIC")
    '("new-tai-lue" "PANGO_SCRIPT_NEW_TAI_LUE")
    '("buginese" "PANGO_SCRIPT_BUGINESE")
    '("glagolitic" "PANGO_SCRIPT_GLAGOLITIC")
    '("tifinagh" "PANGO_SCRIPT_TIFINAGH")
    '("syloti-nagri" "PANGO_SCRIPT_SYLOTI_NAGRI")
    '("old-persian" "PANGO_SCRIPT_OLD_PERSIAN")
    '("kharoshthi" "PANGO_SCRIPT_KHAROSHTHI")
    '("unknown" "PANGO_SCRIPT_UNKNOWN")
    '("balinese" "PANGO_SCRIPT_BALINESE")
    '("cuneiform" "PANGO_SCRIPT_CUNEIFORM")
    '("phoenician" "PANGO_SCRIPT_PHOENICIAN")
    '("phags-pa" "PANGO_SCRIPT_PHAGS_PA")
    '("nko" "PANGO_SCRIPT_NKO")
    '("kayah-li" "PANGO_SCRIPT_KAYAH_LI")
    '("lepcha" "PANGO_SCRIPT_LEPCHA")
    '("rejang" "PANGO_SCRIPT_REJANG")
    '("sundanese" "PANGO_SCRIPT_SUNDANESE")
    '("saurashtra" "PANGO_SCRIPT_SAURASHTRA")
    '("cham" "PANGO_SCRIPT_CHAM")
    '("ol-chiki" "PANGO_SCRIPT_OL_CHIKI")
    '("vai" "PANGO_SCRIPT_VAI")
    '("carian" "PANGO_SCRIPT_CARIAN")
    '("lycian" "PANGO_SCRIPT_LYCIAN")
    '("lydian" "PANGO_SCRIPT_LYDIAN")
    '("batak" "PANGO_SCRIPT_BATAK")
    '("brahmi" "PANGO_SCRIPT_BRAHMI")
    '("mandaic" "PANGO_SCRIPT_MANDAIC")
    '("chakma" "PANGO_SCRIPT_CHAKMA")
    '("meroitic-cursive" "PANGO_SCRIPT_MEROITIC_CURSIVE")
    '("meroitic-hieroglyphs" "PANGO_SCRIPT_MEROITIC_HIEROGLYPHS")
    '("miao" "PANGO_SCRIPT_MIAO")
    '("sharada" "PANGO_SCRIPT_SHARADA")
    '("sora-sompeng" "PANGO_SCRIPT_SORA_SOMPENG")
    '("takri" "PANGO_SCRIPT_TAKRI")
  )
)

(define-enum TabAlign
  (in-module "Pango")
  (c-name "PangoTabAlign")
  (gtype-id "PANGO_TYPE_TAB_ALIGN")
  (values
    '("left" "PANGO_TAB_LEFT")
  )
)


;; From module-defs.h



;; From pango-attributes.h

(define-function pango_color_get_type
  (c-name "pango_color_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "PangoColor")
  (c-name "pango_color_copy")
  (return-type "PangoColor*")
)

(define-method free
  (of-object "PangoColor")
  (c-name "pango_color_free")
  (return-type "none")
)

(define-method parse
  (of-object "PangoColor")
  (c-name "pango_color_parse")
  (return-type "gboolean")
  (parameters
    '("const-char*" "spec")
  )
)

(define-method to_string
  (of-object "PangoColor")
  (c-name "pango_color_to_string")
  (return-type "gchar*")
)

(define-function pango_attr_type_register
  (c-name "pango_attr_type_register")
  (return-type "PangoAttrType")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method get_name
  (of-object "PangoAttrType")
  (c-name "pango_attr_type_get_name")
  (return-type "const-char*")
)

(define-method init
  (of-object "PangoAttribute")
  (c-name "pango_attribute_init")
  (return-type "none")
  (parameters
    '("const-PangoAttrClass*" "klass")
  )
)

(define-method copy
  (of-object "PangoAttribute")
  (c-name "pango_attribute_copy")
  (return-type "PangoAttribute*")
)

(define-method destroy
  (of-object "PangoAttribute")
  (c-name "pango_attribute_destroy")
  (return-type "none")
)

(define-method equal
  (of-object "PangoAttribute")
  (c-name "pango_attribute_equal")
  (return-type "gboolean")
  (parameters
    '("const-PangoAttribute*" "attr2")
  )
)

(define-function pango_attr_language_new
  (c-name "pango_attr_language_new")
  (is-constructor-of "PangoAttrLanguage")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-function pango_attr_family_new
  (c-name "pango_attr_family_new")
  (is-constructor-of "PangoAttrFamily")
  (return-type "PangoAttribute*")
  (parameters
    '("const-char*" "family")
  )
)

(define-function pango_attr_foreground_new
  (c-name "pango_attr_foreground_new")
  (is-constructor-of "PangoAttrForeground")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "red")
    '("guint16" "green")
    '("guint16" "blue")
  )
)

(define-function pango_attr_background_new
  (c-name "pango_attr_background_new")
  (is-constructor-of "PangoAttrBackground")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "red")
    '("guint16" "green")
    '("guint16" "blue")
  )
)

(define-function pango_attr_size_new
  (c-name "pango_attr_size_new")
  (is-constructor-of "PangoAttrSize")
  (return-type "PangoAttribute*")
  (parameters
    '("int" "size")
  )
)

(define-function pango_attr_size_new_absolute
  (c-name "pango_attr_size_new_absolute")
  (return-type "PangoAttribute*")
  (parameters
    '("int" "size")
  )
)

(define-function pango_attr_style_new
  (c-name "pango_attr_style_new")
  (is-constructor-of "PangoAttrStyle")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoStyle" "style")
  )
)

(define-function pango_attr_weight_new
  (c-name "pango_attr_weight_new")
  (is-constructor-of "PangoAttrWeight")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoWeight" "weight")
  )
)

(define-function pango_attr_variant_new
  (c-name "pango_attr_variant_new")
  (is-constructor-of "PangoAttrVariant")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoVariant" "variant")
  )
)

(define-function pango_attr_stretch_new
  (c-name "pango_attr_stretch_new")
  (is-constructor-of "PangoAttrStretch")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoStretch" "stretch")
  )
)

(define-function pango_attr_font_desc_new
  (c-name "pango_attr_font_desc_new")
  (is-constructor-of "PangoAttrFontDesc")
  (return-type "PangoAttribute*")
  (parameters
    '("const-PangoFontDescription*" "desc")
  )
)

(define-function pango_attr_underline_new
  (c-name "pango_attr_underline_new")
  (is-constructor-of "PangoAttrUnderline")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoUnderline" "underline")
  )
)

(define-function pango_attr_underline_color_new
  (c-name "pango_attr_underline_color_new")
  (is-constructor-of "PangoAttrUnderlineColor")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "red")
    '("guint16" "green")
    '("guint16" "blue")
  )
)

(define-function pango_attr_strikethrough_new
  (c-name "pango_attr_strikethrough_new")
  (is-constructor-of "PangoAttrStrikethrough")
  (return-type "PangoAttribute*")
  (parameters
    '("gboolean" "strikethrough")
  )
)

(define-function pango_attr_strikethrough_color_new
  (c-name "pango_attr_strikethrough_color_new")
  (is-constructor-of "PangoAttrStrikethroughColor")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "red")
    '("guint16" "green")
    '("guint16" "blue")
  )
)

(define-function pango_attr_rise_new
  (c-name "pango_attr_rise_new")
  (is-constructor-of "PangoAttrRise")
  (return-type "PangoAttribute*")
  (parameters
    '("int" "rise")
  )
)

(define-function pango_attr_scale_new
  (c-name "pango_attr_scale_new")
  (is-constructor-of "PangoAttrScale")
  (return-type "PangoAttribute*")
  (parameters
    '("double" "scale_factor")
  )
)

(define-function pango_attr_fallback_new
  (c-name "pango_attr_fallback_new")
  (is-constructor-of "PangoAttrFallback")
  (return-type "PangoAttribute*")
  (parameters
    '("gboolean" "enable_fallback")
  )
)

(define-function pango_attr_letter_spacing_new
  (c-name "pango_attr_letter_spacing_new")
  (is-constructor-of "PangoAttrLetterSpacing")
  (return-type "PangoAttribute*")
  (parameters
    '("int" "letter_spacing")
  )
)

(define-function pango_attr_shape_new
  (c-name "pango_attr_shape_new")
  (is-constructor-of "PangoAttrShape")
  (return-type "PangoAttribute*")
  (parameters
    '("const-PangoRectangle*" "ink_rect")
    '("const-PangoRectangle*" "logical_rect")
  )
)

(define-function pango_attr_shape_new_with_data
  (c-name "pango_attr_shape_new_with_data")
  (return-type "PangoAttribute*")
  (parameters
    '("const-PangoRectangle*" "ink_rect")
    '("const-PangoRectangle*" "logical_rect")
    '("gpointer" "data")
    '("PangoAttrDataCopyFunc" "copy_func")
    '("GDestroyNotify" "destroy_func")
  )
)

(define-function pango_attr_gravity_new
  (c-name "pango_attr_gravity_new")
  (is-constructor-of "PangoAttrGravity")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoGravity" "gravity")
  )
)

(define-function pango_attr_gravity_hint_new
  (c-name "pango_attr_gravity_hint_new")
  (is-constructor-of "PangoAttrGravityHint")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoGravityHint" "hint")
  )
)

(define-function pango_attr_font_features_new
  (c-name "pango_attr_font_features_new")
  (is-constructor-of "PangoAttrFontFeatures")
  (return-type "PangoAttribute*")
  (parameters
    '("const-gchar*" "features")
  )
)

(define-function pango_attr_foreground_alpha_new
  (c-name "pango_attr_foreground_alpha_new")
  (is-constructor-of "PangoAttrForegroundAlpha")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "alpha")
  )
)

(define-function pango_attr_background_alpha_new
  (c-name "pango_attr_background_alpha_new")
  (is-constructor-of "PangoAttrBackgroundAlpha")
  (return-type "PangoAttribute*")
  (parameters
    '("guint16" "alpha")
  )
)

(define-function pango_attr_list_get_type
  (c-name "pango_attr_list_get_type")
  (return-type "GType")
)

(define-function pango_attr_list_new
  (c-name "pango_attr_list_new")
  (is-constructor-of "PangoAttrList")
  (return-type "PangoAttrList*")
)

(define-method ref
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_ref")
  (return-type "PangoAttrList*")
)

(define-method unref
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_unref")
  (return-type "none")
)

(define-method copy
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_copy")
  (return-type "PangoAttrList*")
)

(define-method insert
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_insert")
  (return-type "none")
  (parameters
    '("PangoAttribute*" "attr")
  )
)

(define-method insert_before
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_insert_before")
  (return-type "none")
  (parameters
    '("PangoAttribute*" "attr")
  )
)

(define-method change
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_change")
  (return-type "none")
  (parameters
    '("PangoAttribute*" "attr")
  )
)

(define-method splice
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_splice")
  (return-type "none")
  (parameters
    '("PangoAttrList*" "other")
    '("gint" "pos")
    '("gint" "len")
  )
)

(define-method filter
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_filter")
  (return-type "PangoAttrList*")
  (parameters
    '("PangoAttrFilterFunc" "func")
    '("gpointer" "data")
  )
)

(define-method get_iterator
  (of-object "PangoAttrList")
  (c-name "pango_attr_list_get_iterator")
  (return-type "PangoAttrIterator*")
)

(define-method range
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_range")
  (return-type "none")
  (parameters
    '("gint*" "start")
    '("gint*" "end")
  )
)

(define-method next
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_next")
  (return-type "gboolean")
)

(define-method copy
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_copy")
  (return-type "PangoAttrIterator*")
)

(define-method destroy
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_destroy")
  (return-type "none")
)

(define-method get
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_get")
  (return-type "PangoAttribute*")
  (parameters
    '("PangoAttrType" "type")
  )
)

(define-method get_font
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_get_font")
  (return-type "none")
  (parameters
    '("PangoFontDescription*" "desc")
    '("PangoLanguage**" "language")
    '("GSList**" "extra_attrs")
  )
)

(define-method get_attrs
  (of-object "PangoAttrIterator")
  (c-name "pango_attr_iterator_get_attrs")
  (return-type "GSList*")
)

(define-function pango_parse_markup
  (c-name "pango_parse_markup")
  (return-type "gboolean")
  (parameters
    '("const-char*" "markup_text")
    '("int" "length")
    '("gunichar" "accel_marker")
    '("PangoAttrList**" "attr_list")
    '("char**" "text")
    '("gunichar*" "accel_char")
    '("GError**" "error")
  )
)

(define-function pango_markup_parser_new
  (c-name "pango_markup_parser_new")
  (is-constructor-of "PangoMarkupParser")
  (return-type "GMarkupParseContext*")
  (parameters
    '("gunichar" "accel_marker")
  )
)

(define-function pango_markup_parser_finish
  (c-name "pango_markup_parser_finish")
  (return-type "gboolean")
  (parameters
    '("GMarkupParseContext*" "context")
    '("PangoAttrList**" "attr_list")
    '("char**" "text")
    '("gunichar*" "accel_char")
    '("GError**" "error")
  )
)



;; From pango-bidi-type.h

(define-function pango_bidi_type_for_unichar
  (c-name "pango_bidi_type_for_unichar")
  (return-type "PangoBidiType")
  (parameters
    '("gunichar" "ch")
  )
)

(define-function pango_unichar_direction
  (c-name "pango_unichar_direction")
  (return-type "PangoDirection")
  (parameters
    '("gunichar" "ch")
  )
)

(define-function pango_find_base_dir
  (c-name "pango_find_base_dir")
  (return-type "PangoDirection")
  (parameters
    '("const-gchar*" "text")
    '("gint" "length")
  )
)

(define-function pango_get_mirror_char
  (c-name "pango_get_mirror_char")
  (return-type "gboolean")
  (parameters
    '("gunichar" "ch")
    '("gunichar*" "mirrored_ch")
  )
)



;; From pango-break.h

(define-function pango_break
  (c-name "pango_break")
  (return-type "none")
  (parameters
    '("const-gchar*" "text")
    '("int" "length")
    '("PangoAnalysis*" "analysis")
    '("PangoLogAttr*" "attrs")
    '("int" "attrs_len")
  )
)

(define-function pango_find_paragraph_boundary
  (c-name "pango_find_paragraph_boundary")
  (return-type "none")
  (parameters
    '("const-gchar*" "text")
    '("gint" "length")
    '("gint*" "paragraph_delimiter_index")
    '("gint*" "next_paragraph_start")
  )
)

(define-function pango_get_log_attrs
  (c-name "pango_get_log_attrs")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("int" "length")
    '("int" "level")
    '("PangoLanguage*" "language")
    '("PangoLogAttr*" "log_attrs")
    '("int" "attrs_len")
  )
)

(define-function pango_default_break
  (c-name "pango_default_break")
  (return-type "none")
  (parameters
    '("const-gchar*" "text")
    '("int" "length")
    '("PangoAnalysis*" "analysis")
    '("PangoLogAttr*" "attrs")
    '("int" "attrs_len")
  )
)



;; From pangocairo-coretextfont.h

(define-function pango_cairo_core_text_font_get_type
  (c-name "pango_cairo_core_text_font_get_type")
  (return-type "GType")
)



;; From pangocairo-coretext.h

(define-function pango_cairo_core_text_font_map_get_type
  (c-name "pango_cairo_core_text_font_map_get_type")
  (return-type "GType")
)



;; From pangocairo-fc.h

(define-function pango_cairo_fc_font_map_get_type
  (c-name "pango_cairo_fc_font_map_get_type")
  (return-type "GType")
)



;; From pangocairo.h

(define-function pango_cairo_font_map_get_type
  (c-name "pango_cairo_font_map_get_type")
  (return-type "GType")
)

(define-function pango_cairo_font_map_new
  (c-name "pango_cairo_font_map_new")
  (is-constructor-of "PangoCairoFontMap")
  (return-type "PangoFontMap*")
)

(define-function pango_cairo_font_map_new_for_font_type
  (c-name "pango_cairo_font_map_new_for_font_type")
  (return-type "PangoFontMap*")
  (parameters
    '("cairo_font_type_t" "fonttype")
  )
)

(define-function pango_cairo_font_map_get_default
  (c-name "pango_cairo_font_map_get_default")
  (return-type "PangoFontMap*")
)

(define-method set_default
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_set_default")
  (return-type "none")
)

(define-method get_font_type
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_get_font_type")
  (return-type "cairo_font_type_t")
)

(define-method set_resolution
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_set_resolution")
  (return-type "none")
  (parameters
    '("double" "dpi")
  )
)

(define-method get_resolution
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_get_resolution")
  (return-type "double")
)

(define-method create_context
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_create_context")
  (return-type "PangoContext*")
)

(define-function pango_cairo_font_get_type
  (c-name "pango_cairo_font_get_type")
  (return-type "GType")
)

(define-method get_scaled_font
  (of-object "PangoCairoFont")
  (c-name "pango_cairo_font_get_scaled_font")
  (return-type "cairo_scaled_font_t*")
)

(define-function pango_cairo_update_context
  (c-name "pango_cairo_update_context")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoContext*" "context")
  )
)

(define-function pango_cairo_context_set_font_options
  (c-name "pango_cairo_context_set_font_options")
  (return-type "none")
  (parameters
    '("PangoContext*" "context")
    '("const-cairo_font_options_t*" "options")
  )
)

(define-function pango_cairo_context_get_font_options
  (c-name "pango_cairo_context_get_font_options")
  (return-type "const-cairo_font_options_t*")
  (parameters
    '("PangoContext*" "context")
  )
)

(define-function pango_cairo_context_set_resolution
  (c-name "pango_cairo_context_set_resolution")
  (return-type "none")
  (parameters
    '("PangoContext*" "context")
    '("double" "dpi")
  )
)

(define-function pango_cairo_context_get_resolution
  (c-name "pango_cairo_context_get_resolution")
  (return-type "double")
  (parameters
    '("PangoContext*" "context")
  )
)

(define-function pango_cairo_context_set_shape_renderer
  (c-name "pango_cairo_context_set_shape_renderer")
  (return-type "none")
  (parameters
    '("PangoContext*" "context")
    '("PangoCairoShapeRendererFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "dnotify")
  )
)

(define-function pango_cairo_context_get_shape_renderer
  (c-name "pango_cairo_context_get_shape_renderer")
  (return-type "PangoCairoShapeRendererFunc")
  (parameters
    '("PangoContext*" "context")
    '("gpointer*" "data")
  )
)

(define-function pango_cairo_create_context
  (c-name "pango_cairo_create_context")
  (return-type "PangoContext*")
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-function pango_cairo_create_layout
  (c-name "pango_cairo_create_layout")
  (return-type "PangoLayout*")
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-function pango_cairo_update_layout
  (c-name "pango_cairo_update_layout")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function pango_cairo_show_glyph_string
  (c-name "pango_cairo_show_glyph_string")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function pango_cairo_show_glyph_item
  (c-name "pango_cairo_show_glyph_item")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("const-char*" "text")
    '("PangoGlyphItem*" "glyph_item")
  )
)

(define-function pango_cairo_show_layout_line
  (c-name "pango_cairo_show_layout_line")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayoutLine*" "line")
  )
)

(define-function pango_cairo_show_layout
  (c-name "pango_cairo_show_layout")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function pango_cairo_show_error_underline
  (c-name "pango_cairo_show_error_underline")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("double" "x")
    '("double" "y")
    '("double" "width")
    '("double" "height")
  )
)

(define-function pango_cairo_glyph_string_path
  (c-name "pango_cairo_glyph_string_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function pango_cairo_layout_line_path
  (c-name "pango_cairo_layout_line_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayoutLine*" "line")
  )
)

(define-function pango_cairo_layout_path
  (c-name "pango_cairo_layout_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function pango_cairo_error_underline_path
  (c-name "pango_cairo_error_underline_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("double" "x")
    '("double" "y")
    '("double" "width")
    '("double" "height")
  )
)



;; From pangocairo-private.h

(define-function pango_cairo_renderer_get_type
  (c-name "pango_cairo_renderer_get_type")
  (return-type "GType")
)



;; From pangocairo-win32.h

(define-function pango_cairo_win32_font_map_get_type
  (c-name "pango_cairo_win32_font_map_get_type")
  (return-type "GType")
)



;; From pango-color-table.h



;; From pango-context.h

(define-function pango_context_get_type
  (c-name "pango_context_get_type")
  (return-type "GType")
)

(define-function pango_context_new
  (c-name "pango_context_new")
  (is-constructor-of "PangoContext")
  (return-type "PangoContext*")
)

(define-method changed
  (of-object "PangoContext")
  (c-name "pango_context_changed")
  (return-type "none")
)

(define-method set_font_map
  (of-object "PangoContext")
  (c-name "pango_context_set_font_map")
  (return-type "none")
  (parameters
    '("PangoFontMap*" "font_map")
  )
)

(define-method get_font_map
  (of-object "PangoContext")
  (c-name "pango_context_get_font_map")
  (return-type "PangoFontMap*")
)

(define-method get_serial
  (of-object "PangoContext")
  (c-name "pango_context_get_serial")
  (return-type "guint")
)

(define-method list_families
  (of-object "PangoContext")
  (c-name "pango_context_list_families")
  (return-type "none")
  (parameters
    '("PangoFontFamily***" "families")
    '("int*" "n_families")
  )
)

(define-method load_font
  (of-object "PangoContext")
  (c-name "pango_context_load_font")
  (return-type "PangoFont*")
  (parameters
    '("const-PangoFontDescription*" "desc")
  )
)

(define-method load_fontset
  (of-object "PangoContext")
  (c-name "pango_context_load_fontset")
  (return-type "PangoFontset*")
  (parameters
    '("const-PangoFontDescription*" "desc")
    '("PangoLanguage*" "language")
  )
)

(define-method get_metrics
  (of-object "PangoContext")
  (c-name "pango_context_get_metrics")
  (return-type "PangoFontMetrics*")
  (parameters
    '("const-PangoFontDescription*" "desc")
    '("PangoLanguage*" "language")
  )
)

(define-method set_font_description
  (of-object "PangoContext")
  (c-name "pango_context_set_font_description")
  (return-type "none")
  (parameters
    '("const-PangoFontDescription*" "desc")
  )
)

(define-method get_font_description
  (of-object "PangoContext")
  (c-name "pango_context_get_font_description")
  (return-type "PangoFontDescription*")
)

(define-method get_language
  (of-object "PangoContext")
  (c-name "pango_context_get_language")
  (return-type "PangoLanguage*")
)

(define-method set_language
  (of-object "PangoContext")
  (c-name "pango_context_set_language")
  (return-type "none")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-method set_base_dir
  (of-object "PangoContext")
  (c-name "pango_context_set_base_dir")
  (return-type "none")
  (parameters
    '("PangoDirection" "direction")
  )
)

(define-method get_base_dir
  (of-object "PangoContext")
  (c-name "pango_context_get_base_dir")
  (return-type "PangoDirection")
)

(define-method set_base_gravity
  (of-object "PangoContext")
  (c-name "pango_context_set_base_gravity")
  (return-type "none")
  (parameters
    '("PangoGravity" "gravity")
  )
)

(define-method get_base_gravity
  (of-object "PangoContext")
  (c-name "pango_context_get_base_gravity")
  (return-type "PangoGravity")
)

(define-method get_gravity
  (of-object "PangoContext")
  (c-name "pango_context_get_gravity")
  (return-type "PangoGravity")
)

(define-method set_gravity_hint
  (of-object "PangoContext")
  (c-name "pango_context_set_gravity_hint")
  (return-type "none")
  (parameters
    '("PangoGravityHint" "hint")
  )
)

(define-method get_gravity_hint
  (of-object "PangoContext")
  (c-name "pango_context_get_gravity_hint")
  (return-type "PangoGravityHint")
)

(define-method set_matrix
  (of-object "PangoContext")
  (c-name "pango_context_set_matrix")
  (return-type "none")
  (parameters
    '("const-PangoMatrix*" "matrix")
  )
)

(define-method get_matrix
  (of-object "PangoContext")
  (c-name "pango_context_get_matrix")
  (return-type "const-PangoMatrix*")
)

(define-function pango_itemize
  (c-name "pango_itemize")
  (return-type "GList*")
  (parameters
    '("PangoContext*" "context")
    '("const-char*" "text")
    '("int" "start_index")
    '("int" "length")
    '("PangoAttrList*" "attrs")
    '("PangoAttrIterator*" "cached_iter")
  )
)

(define-function pango_itemize_with_base_dir
  (c-name "pango_itemize_with_base_dir")
  (return-type "GList*")
  (parameters
    '("PangoContext*" "context")
    '("PangoDirection" "base_dir")
    '("const-char*" "text")
    '("int" "start_index")
    '("int" "length")
    '("PangoAttrList*" "attrs")
    '("PangoAttrIterator*" "cached_iter")
  )
)



;; From pangocoretext.h

(define-method get_ctfont
  (of-object "PangoCoreTextFont")
  (c-name "pango_core_text_font_get_ctfont")
  (return-type "CTFontRef")
)

(define-function pango_core_text_font_get_type
  (c-name "pango_core_text_font_get_type")
  (return-type "GType")
)



;; From pangocoretext-private.h

(define-function pango_core_text_font_map_get_type
  (c-name "pango_core_text_font_map_get_type")
  (return-type "GType")
)

(define-method get_absolute_size
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_absolute_size")
  (return-type "int")
)

(define-method get_resolution
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_resolution")
  (return-type "double")
)

(define-method get_synthetic_italic
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_synthetic_italic")
  (return-type "gboolean")
)

(define-method get_context_key
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_context_key")
  (return-type "gpointer")
)

(define-method get_matrix
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_matrix")
  (return-type "const-PangoMatrix*")
)

(define-method get_gravity
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_gravity")
  (return-type "PangoGravity")
)

(define-method get_ctfontdescriptor
  (of-object "PangoCoreTextFontKey")
  (c-name "pango_core_text_font_key_get_ctfontdescriptor")
  (return-type "CTFontDescriptorRef")
)



;; From pango-coverage.h

(define-function pango_coverage_new
  (c-name "pango_coverage_new")
  (is-constructor-of "PangoCoverage")
  (return-type "PangoCoverage*")
)

(define-method ref
  (of-object "PangoCoverage")
  (c-name "pango_coverage_ref")
  (return-type "PangoCoverage*")
)

(define-method unref
  (of-object "PangoCoverage")
  (c-name "pango_coverage_unref")
  (return-type "none")
)

(define-method copy
  (of-object "PangoCoverage")
  (c-name "pango_coverage_copy")
  (return-type "PangoCoverage*")
)

(define-method get
  (of-object "PangoCoverage")
  (c-name "pango_coverage_get")
  (return-type "PangoCoverageLevel")
  (parameters
    '("int" "index_")
  )
)

(define-method set
  (of-object "PangoCoverage")
  (c-name "pango_coverage_set")
  (return-type "none")
  (parameters
    '("int" "index_")
    '("PangoCoverageLevel" "level")
  )
)

(define-method max
  (of-object "PangoCoverage")
  (c-name "pango_coverage_max")
  (return-type "none")
  (parameters
    '("PangoCoverage*" "other")
  )
)

(define-method to_bytes
  (of-object "PangoCoverage")
  (c-name "pango_coverage_to_bytes")
  (return-type "none")
  (parameters
    '("guchar**" "bytes")
    '("int*" "n_bytes")
  )
)

(define-function pango_coverage_from_bytes
  (c-name "pango_coverage_from_bytes")
  (return-type "PangoCoverage*")
  (parameters
    '("guchar*" "bytes")
    '("int" "n_bytes")
  )
)



;; From pango-engine.h

(define-function pango_engine_get_type
  (c-name "pango_engine_get_type")
  (return-type "GType")
)

(define-function pango_engine_lang_get_type
  (c-name "pango_engine_lang_get_type")
  (return-type "GType")
)

(define-function pango_engine_shape_get_type
  (c-name "pango_engine_shape_get_type")
  (return-type "GType")
)

(define-function script_engine_list
  (c-name "script_engine_list")
  (return-type "none")
  (parameters
    '("PangoEngineInfo**" "engines")
    '("int*" "n_engines")
  )
)

(define-function script_engine_init
  (c-name "script_engine_init")
  (return-type "none")
  (parameters
    '("GTypeModule*" "module")
  )
)

(define-function script_engine_exit
  (c-name "script_engine_exit")
  (return-type "none")
)

(define-function script_engine_create
  (c-name "script_engine_create")
  (return-type "PangoEngine*")
  (parameters
    '("const-char*" "id")
  )
)



;; From pango-engine-private.h



;; From pango-enum-types.h

(define-function pango_attr_type_get_type
  (c-name "pango_attr_type_get_type")
  (return-type "GType")
)

(define-function pango_underline_get_type
  (c-name "pango_underline_get_type")
  (return-type "GType")
)

(define-function pango_bidi_type_get_type
  (c-name "pango_bidi_type_get_type")
  (return-type "GType")
)

(define-function pango_direction_get_type
  (c-name "pango_direction_get_type")
  (return-type "GType")
)

(define-function pango_coverage_level_get_type
  (c-name "pango_coverage_level_get_type")
  (return-type "GType")
)

(define-function pango_style_get_type
  (c-name "pango_style_get_type")
  (return-type "GType")
)

(define-function pango_variant_get_type
  (c-name "pango_variant_get_type")
  (return-type "GType")
)

(define-function pango_weight_get_type
  (c-name "pango_weight_get_type")
  (return-type "GType")
)

(define-function pango_stretch_get_type
  (c-name "pango_stretch_get_type")
  (return-type "GType")
)

(define-function pango_font_mask_get_type
  (c-name "pango_font_mask_get_type")
  (return-type "GType")
)

(define-function pango_gravity_get_type
  (c-name "pango_gravity_get_type")
  (return-type "GType")
)

(define-function pango_gravity_hint_get_type
  (c-name "pango_gravity_hint_get_type")
  (return-type "GType")
)

(define-function pango_alignment_get_type
  (c-name "pango_alignment_get_type")
  (return-type "GType")
)

(define-function pango_wrap_mode_get_type
  (c-name "pango_wrap_mode_get_type")
  (return-type "GType")
)

(define-function pango_ellipsize_mode_get_type
  (c-name "pango_ellipsize_mode_get_type")
  (return-type "GType")
)

(define-function pango_render_part_get_type
  (c-name "pango_render_part_get_type")
  (return-type "GType")
)

(define-function pango_script_get_type
  (c-name "pango_script_get_type")
  (return-type "GType")
)

(define-function pango_tab_align_get_type
  (c-name "pango_tab_align_get_type")
  (return-type "GType")
)



;; From pangofc-decoder.h

(define-function pango_fc_decoder_get_type
  (c-name "pango_fc_decoder_get_type")
  (return-type "GType")
)

(define-method get_charset
  (of-object "PangoFcDecoder")
  (c-name "pango_fc_decoder_get_charset")
  (return-type "FcCharSet*")
  (parameters
    '("PangoFcFont*" "fcfont")
  )
)

(define-method get_glyph
  (of-object "PangoFcDecoder")
  (c-name "pango_fc_decoder_get_glyph")
  (return-type "PangoGlyph")
  (parameters
    '("PangoFcFont*" "fcfont")
    '("guint32" "wc")
  )
)



;; From pangofc-font.h

(define-method has_char
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_has_char")
  (return-type "gboolean")
  (parameters
    '("gunichar" "wc")
  )
)

(define-method get_glyph
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_get_glyph")
  (return-type "guint")
  (parameters
    '("gunichar" "wc")
  )
)

(define-method get_unknown_glyph
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_get_unknown_glyph")
  (return-type "PangoGlyph")
  (parameters
    '("gunichar" "wc")
  )
)

(define-method kern_glyphs
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_kern_glyphs")
  (return-type "none")
  (parameters
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function pango_fc_font_get_type
  (c-name "pango_fc_font_get_type")
  (return-type "GType")
)

(define-method lock_face
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_lock_face")
  (return-type "FT_Face")
)

(define-method unlock_face
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_unlock_face")
  (return-type "none")
)



;; From pangofc-fontmap.h

(define-method get_language
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_language")
  (return-type "PangoLanguage*")
)

(define-method get_description
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_description")
  (return-type "const-PangoFontDescription*")
)

(define-method get_matrix
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_matrix")
  (return-type "const-PangoMatrix*")
)

(define-method get_absolute_size
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_absolute_size")
  (return-type "double")
)

(define-method get_resolution
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_resolution")
  (return-type "double")
)

(define-method get_context_key
  (of-object "PangoFcFontsetKey")
  (c-name "pango_fc_fontset_key_get_context_key")
  (return-type "gpointer")
)

(define-method get_pattern
  (of-object "PangoFcFontKey")
  (c-name "pango_fc_font_key_get_pattern")
  (return-type "const-FcPattern*")
)

(define-method get_matrix
  (of-object "PangoFcFontKey")
  (c-name "pango_fc_font_key_get_matrix")
  (return-type "const-PangoMatrix*")
)

(define-method get_context_key
  (of-object "PangoFcFontKey")
  (c-name "pango_fc_font_key_get_context_key")
  (return-type "gpointer")
)

(define-method create_context
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_create_context")
  (return-type "PangoContext*")
)

(define-method shutdown
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_shutdown")
  (return-type "none")
)

(define-function pango_fc_font_map_get_type
  (c-name "pango_fc_font_map_get_type")
  (return-type "GType")
)

(define-method cache_clear
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_cache_clear")
  (return-type "none")
)

(define-method config_changed
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_config_changed")
  (return-type "none")
)

(define-method set_config
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_set_config")
  (return-type "none")
  (parameters
    '("FcConfig*" "fcconfig")
  )
)

(define-method get_config
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_get_config")
  (return-type "FcConfig*")
)

(define-method add_decoder_find_func
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_add_decoder_find_func")
  (return-type "none")
  (parameters
    '("PangoFcDecoderFindFunc" "findfunc")
    '("gpointer" "user_data")
    '("GDestroyNotify" "dnotify")
  )
)

(define-method find_decoder
  (of-object "PangoFcFontMap")
  (c-name "pango_fc_font_map_find_decoder")
  (return-type "PangoFcDecoder*")
  (parameters
    '("FcPattern*" "pattern")
  )
)

(define-function pango_fc_font_description_from_pattern
  (c-name "pango_fc_font_description_from_pattern")
  (return-type "PangoFontDescription*")
  (parameters
    '("FcPattern*" "pattern")
    '("gboolean" "include_size")
  )
)



;; From pangofc-private.h

(define-method get_raw_extents
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_get_raw_extents")
  (return-type "none")
  (parameters
    '("FT_Int32" "load_flags")
    '("PangoGlyph" "glyph")
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method create_base_metrics_for_context
  (of-object "PangoFcFont")
  (c-name "pango_fc_font_create_base_metrics_for_context")
  (return-type "PangoFontMetrics*")
  (parameters
    '("PangoContext*" "context")
  )
)



;; From pango-features.h



;; From pango-font.h

(define-function pango_font_description_get_type
  (c-name "pango_font_description_get_type")
  (return-type "GType")
)

(define-function pango_font_description_new
  (c-name "pango_font_description_new")
  (is-constructor-of "PangoFontDescription")
  (return-type "PangoFontDescription*")
)

(define-method copy
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_copy")
  (return-type "PangoFontDescription*")
)

(define-method copy_static
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_copy_static")
  (return-type "PangoFontDescription*")
)

(define-method hash
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_hash")
  (return-type "guint")
)

(define-method equal
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_equal")
  (return-type "gboolean")
  (parameters
    '("const-PangoFontDescription*" "desc2")
  )
)

(define-method free
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_free")
  (return-type "none")
)

(define-function pango_font_descriptions_free
  (c-name "pango_font_descriptions_free")
  (return-type "none")
  (parameters
    '("PangoFontDescription**" "descs")
    '("int" "n_descs")
  )
)

(define-method set_family
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_family")
  (return-type "none")
  (parameters
    '("const-char*" "family")
  )
)

(define-method set_family_static
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_family_static")
  (return-type "none")
  (parameters
    '("const-char*" "family")
  )
)

(define-method get_family
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_family")
  (return-type "const-char*")
)

(define-method set_style
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_style")
  (return-type "none")
  (parameters
    '("PangoStyle" "style")
  )
)

(define-method get_style
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_style")
  (return-type "PangoStyle")
)

(define-method set_variant
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_variant")
  (return-type "none")
  (parameters
    '("PangoVariant" "variant")
  )
)

(define-method get_variant
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_variant")
  (return-type "PangoVariant")
)

(define-method set_weight
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_weight")
  (return-type "none")
  (parameters
    '("PangoWeight" "weight")
  )
)

(define-method get_weight
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_weight")
  (return-type "PangoWeight")
)

(define-method set_stretch
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_stretch")
  (return-type "none")
  (parameters
    '("PangoStretch" "stretch")
  )
)

(define-method get_stretch
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_stretch")
  (return-type "PangoStretch")
)

(define-method set_size
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_size")
  (return-type "none")
  (parameters
    '("gint" "size")
  )
)

(define-method get_size
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_size")
  (return-type "gint")
)

(define-method set_absolute_size
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_absolute_size")
  (return-type "none")
  (parameters
    '("double" "size")
  )
)

(define-method get_size_is_absolute
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_size_is_absolute")
  (return-type "gboolean")
)

(define-method set_gravity
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_set_gravity")
  (return-type "none")
  (parameters
    '("PangoGravity" "gravity")
  )
)

(define-method get_gravity
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_gravity")
  (return-type "PangoGravity")
)

(define-method get_set_fields
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_get_set_fields")
  (return-type "PangoFontMask")
)

(define-method unset_fields
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_unset_fields")
  (return-type "none")
  (parameters
    '("PangoFontMask" "to_unset")
  )
)

(define-method merge
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_merge")
  (return-type "none")
  (parameters
    '("const-PangoFontDescription*" "desc_to_merge")
    '("gboolean" "replace_existing")
  )
)

(define-method merge_static
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_merge_static")
  (return-type "none")
  (parameters
    '("const-PangoFontDescription*" "desc_to_merge")
    '("gboolean" "replace_existing")
  )
)

(define-method better_match
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_better_match")
  (return-type "gboolean")
  (parameters
    '("const-PangoFontDescription*" "old_match")
    '("const-PangoFontDescription*" "new_match")
  )
)

(define-function pango_font_description_from_string
  (c-name "pango_font_description_from_string")
  (return-type "PangoFontDescription*")
  (parameters
    '("const-char*" "str")
  )
)

(define-method to_string
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_to_string")
  (return-type "char*")
)

(define-method to_filename
  (of-object "PangoFontDescription")
  (c-name "pango_font_description_to_filename")
  (return-type "char*")
)

(define-function pango_font_metrics_get_type
  (c-name "pango_font_metrics_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_ref")
  (return-type "PangoFontMetrics*")
)

(define-method unref
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_unref")
  (return-type "none")
)

(define-method get_ascent
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_ascent")
  (return-type "int")
)

(define-method get_descent
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_descent")
  (return-type "int")
)

(define-method get_approximate_char_width
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_approximate_char_width")
  (return-type "int")
)

(define-method get_approximate_digit_width
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_approximate_digit_width")
  (return-type "int")
)

(define-method get_underline_position
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_underline_position")
  (return-type "int")
)

(define-method get_underline_thickness
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_underline_thickness")
  (return-type "int")
)

(define-method get_strikethrough_position
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_strikethrough_position")
  (return-type "int")
)

(define-method get_strikethrough_thickness
  (of-object "PangoFontMetrics")
  (c-name "pango_font_metrics_get_strikethrough_thickness")
  (return-type "int")
)

(define-function pango_font_metrics_new
  (c-name "pango_font_metrics_new")
  (is-constructor-of "PangoFontMetrics")
  (return-type "PangoFontMetrics*")
)

(define-function pango_font_family_get_type
  (c-name "pango_font_family_get_type")
  (return-type "GType")
)

(define-method list_faces
  (of-object "PangoFontFamily")
  (c-name "pango_font_family_list_faces")
  (return-type "none")
  (parameters
    '("PangoFontFace***" "faces")
    '("int*" "n_faces")
  )
)

(define-method get_name
  (of-object "PangoFontFamily")
  (c-name "pango_font_family_get_name")
  (return-type "const-char*")
)

(define-method is_monospace
  (of-object "PangoFontFamily")
  (c-name "pango_font_family_is_monospace")
  (return-type "gboolean")
)

(define-function pango_font_face_get_type
  (c-name "pango_font_face_get_type")
  (return-type "GType")
)

(define-method describe
  (of-object "PangoFontFace")
  (c-name "pango_font_face_describe")
  (return-type "PangoFontDescription*")
)

(define-method get_face_name
  (of-object "PangoFontFace")
  (c-name "pango_font_face_get_face_name")
  (return-type "const-char*")
)

(define-method list_sizes
  (of-object "PangoFontFace")
  (c-name "pango_font_face_list_sizes")
  (return-type "none")
  (parameters
    '("int**" "sizes")
    '("int*" "n_sizes")
  )
)

(define-method is_synthesized
  (of-object "PangoFontFace")
  (c-name "pango_font_face_is_synthesized")
  (return-type "gboolean")
)

(define-function pango_font_get_type
  (c-name "pango_font_get_type")
  (return-type "GType")
)

(define-method describe
  (of-object "PangoFont")
  (c-name "pango_font_describe")
  (return-type "PangoFontDescription*")
)

(define-method describe_with_absolute_size
  (of-object "PangoFont")
  (c-name "pango_font_describe_with_absolute_size")
  (return-type "PangoFontDescription*")
)

(define-method get_coverage
  (of-object "PangoFont")
  (c-name "pango_font_get_coverage")
  (return-type "PangoCoverage*")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-method find_shaper
  (of-object "PangoFont")
  (c-name "pango_font_find_shaper")
  (return-type "PangoEngineShape*")
  (parameters
    '("PangoLanguage*" "language")
    '("guint32" "ch")
  )
)

(define-method get_metrics
  (of-object "PangoFont")
  (c-name "pango_font_get_metrics")
  (return-type "PangoFontMetrics*")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-method get_glyph_extents
  (of-object "PangoFont")
  (c-name "pango_font_get_glyph_extents")
  (return-type "none")
  (parameters
    '("PangoGlyph" "glyph")
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_font_map
  (of-object "PangoFont")
  (c-name "pango_font_get_font_map")
  (return-type "PangoFontMap*")
)



;; From pango-fontmap.h

(define-function pango_font_map_get_type
  (c-name "pango_font_map_get_type")
  (return-type "GType")
)

(define-method create_context
  (of-object "PangoFontMap")
  (c-name "pango_font_map_create_context")
  (return-type "PangoContext*")
)

(define-method load_font
  (of-object "PangoFontMap")
  (c-name "pango_font_map_load_font")
  (return-type "PangoFont*")
  (parameters
    '("PangoContext*" "context")
    '("const-PangoFontDescription*" "desc")
  )
)

(define-method load_fontset
  (of-object "PangoFontMap")
  (c-name "pango_font_map_load_fontset")
  (return-type "PangoFontset*")
  (parameters
    '("PangoContext*" "context")
    '("const-PangoFontDescription*" "desc")
    '("PangoLanguage*" "language")
  )
)

(define-method list_families
  (of-object "PangoFontMap")
  (c-name "pango_font_map_list_families")
  (return-type "none")
  (parameters
    '("PangoFontFamily***" "families")
    '("int*" "n_families")
  )
)

(define-method get_serial
  (of-object "PangoFontMap")
  (c-name "pango_font_map_get_serial")
  (return-type "guint")
)

(define-method changed
  (of-object "PangoFontMap")
  (c-name "pango_font_map_changed")
  (return-type "none")
)

(define-method get_shape_engine_type
  (of-object "PangoFontMap")
  (c-name "pango_font_map_get_shape_engine_type")
  (return-type "const-char*")
)



;; From pango-fontset.h

(define-function pango_fontset_get_type
  (c-name "pango_fontset_get_type")
  (return-type "GType")
)

(define-method get_font
  (of-object "PangoFontset")
  (c-name "pango_fontset_get_font")
  (return-type "PangoFont*")
  (parameters
    '("guint" "wc")
  )
)

(define-method get_metrics
  (of-object "PangoFontset")
  (c-name "pango_fontset_get_metrics")
  (return-type "PangoFontMetrics*")
)

(define-method foreach
  (of-object "PangoFontset")
  (c-name "pango_fontset_foreach")
  (return-type "none")
  (parameters
    '("PangoFontsetForeachFunc" "func")
    '("gpointer" "data")
  )
)

(define-function pango_fontset_simple_get_type
  (c-name "pango_fontset_simple_get_type")
  (return-type "GType")
)

(define-function pango_fontset_simple_new
  (c-name "pango_fontset_simple_new")
  (is-constructor-of "PangoFontsetSimple")
  (return-type "PangoFontsetSimple*")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-method append
  (of-object "PangoFontsetSimple")
  (c-name "pango_fontset_simple_append")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-method size
  (of-object "PangoFontsetSimple")
  (c-name "pango_fontset_simple_size")
  (return-type "int")
)



;; From pangoft2.h

(define-function pango_ft2_render
  (c-name "pango_ft2_render")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("gint" "x")
    '("gint" "y")
  )
)

(define-function pango_ft2_render_transformed
  (c-name "pango_ft2_render_transformed")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("const-PangoMatrix*" "matrix")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_ft2_render_layout_line
  (c-name "pango_ft2_render_layout_line")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("PangoLayoutLine*" "line")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_ft2_render_layout_line_subpixel
  (c-name "pango_ft2_render_layout_line_subpixel")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("PangoLayoutLine*" "line")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_ft2_render_layout
  (c-name "pango_ft2_render_layout")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("PangoLayout*" "layout")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_ft2_render_layout_subpixel
  (c-name "pango_ft2_render_layout_subpixel")
  (return-type "none")
  (parameters
    '("FT_Bitmap*" "bitmap")
    '("PangoLayout*" "layout")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_ft2_font_map_get_type
  (c-name "pango_ft2_font_map_get_type")
  (return-type "GType")
)

(define-function pango_ft2_font_map_new
  (c-name "pango_ft2_font_map_new")
  (is-constructor-of "PangoFt2FontMap")
  (return-type "PangoFontMap*")
)

(define-method set_resolution
  (of-object "PangoFT2FontMap")
  (c-name "pango_ft2_font_map_set_resolution")
  (return-type "none")
  (parameters
    '("double" "dpi_x")
    '("double" "dpi_y")
  )
)

(define-method set_default_substitute
  (of-object "PangoFT2FontMap")
  (c-name "pango_ft2_font_map_set_default_substitute")
  (return-type "none")
  (parameters
    '("PangoFT2SubstituteFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
  )
)

(define-method substitute_changed
  (of-object "PangoFT2FontMap")
  (c-name "pango_ft2_font_map_substitute_changed")
  (return-type "none")
)

(define-method create_context
  (of-object "PangoFT2FontMap")
  (c-name "pango_ft2_font_map_create_context")
  (return-type "PangoContext*")
)

(define-function pango_ft2_get_context
  (c-name "pango_ft2_get_context")
  (return-type "PangoContext*")
  (parameters
    '("double" "dpi_x")
    '("double" "dpi_y")
  )
)

(define-function pango_ft2_font_map_for_display
  (c-name "pango_ft2_font_map_for_display")
  (return-type "PangoFontMap*")
)

(define-function pango_ft2_shutdown_display
  (c-name "pango_ft2_shutdown_display")
  (return-type "none")
)

(define-function pango_ft2_get_unknown_glyph
  (c-name "pango_ft2_get_unknown_glyph")
  (return-type "PangoGlyph")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_ft2_font_get_kerning
  (c-name "pango_ft2_font_get_kerning")
  (return-type "int")
  (parameters
    '("PangoFont*" "font")
    '("PangoGlyph" "left")
    '("PangoGlyph" "right")
  )
)

(define-function pango_ft2_font_get_face
  (c-name "pango_ft2_font_get_face")
  (return-type "FT_Face")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_ft2_font_get_coverage
  (c-name "pango_ft2_font_get_coverage")
  (return-type "PangoCoverage*")
  (parameters
    '("PangoFont*" "font")
    '("PangoLanguage*" "language")
  )
)



;; From pangoft2-private.h

(define-function pango_ft2_font_get_type
  (c-name "pango_ft2_font_get_type")
  (return-type "GType")
)

(define-function pango_ft2_renderer_get_type
  (c-name "pango_ft2_renderer_get_type")
  (return-type "GType")
)



;; From pango-glyph.h

(define-function pango_glyph_string_new
  (c-name "pango_glyph_string_new")
  (is-constructor-of "PangoGlyphString")
  (return-type "PangoGlyphString*")
)

(define-method set_size
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_set_size")
  (return-type "none")
  (parameters
    '("gint" "new_len")
  )
)

(define-function pango_glyph_string_get_type
  (c-name "pango_glyph_string_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_copy")
  (return-type "PangoGlyphString*")
)

(define-method free
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_free")
  (return-type "none")
)

(define-method extents
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_extents")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_width
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_get_width")
  (return-type "int")
)

(define-method extents_range
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_extents_range")
  (return-type "none")
  (parameters
    '("int" "start")
    '("int" "end")
    '("PangoFont*" "font")
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_logical_widths
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_get_logical_widths")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("int" "length")
    '("int" "embedding_level")
    '("int*" "logical_widths")
  )
)

(define-method index_to_x
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_index_to_x")
  (return-type "none")
  (parameters
    '("char*" "text")
    '("int" "length")
    '("PangoAnalysis*" "analysis")
    '("int" "index_")
    '("gboolean" "trailing")
    '("int*" "x_pos")
  )
)

(define-method x_to_index
  (of-object "PangoGlyphString")
  (c-name "pango_glyph_string_x_to_index")
  (return-type "none")
  (parameters
    '("char*" "text")
    '("int" "length")
    '("PangoAnalysis*" "analysis")
    '("int" "x_pos")
    '("int*" "index_")
    '("int*" "trailing")
  )
)

(define-function pango_shape
  (c-name "pango_shape")
  (return-type "none")
  (parameters
    '("const-gchar*" "text")
    '("gint" "length")
    '("const-PangoAnalysis*" "analysis")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function pango_shape_full
  (c-name "pango_shape_full")
  (return-type "none")
  (parameters
    '("const-gchar*" "item_text")
    '("gint" "item_length")
    '("const-gchar*" "paragraph_text")
    '("gint" "paragraph_length")
    '("const-PangoAnalysis*" "analysis")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function pango_reorder_items
  (c-name "pango_reorder_items")
  (return-type "GList*")
  (parameters
    '("GList*" "logical_items")
  )
)



;; From pango-glyph-item.h

(define-function pango_glyph_item_get_type
  (c-name "pango_glyph_item_get_type")
  (return-type "GType")
)

(define-method split
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_split")
  (return-type "PangoGlyphItem*")
  (parameters
    '("const-char*" "text")
    '("int" "split_index")
  )
)

(define-method copy
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_copy")
  (return-type "PangoGlyphItem*")
)

(define-method free
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_free")
  (return-type "none")
)

(define-method apply_attrs
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_apply_attrs")
  (return-type "GSList*")
  (parameters
    '("const-char*" "text")
    '("PangoAttrList*" "list")
  )
)

(define-method letter_space
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_letter_space")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("PangoLogAttr*" "log_attrs")
    '("int" "letter_spacing")
  )
)

(define-method get_logical_widths
  (of-object "PangoGlyphItem")
  (c-name "pango_glyph_item_get_logical_widths")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("int*" "logical_widths")
  )
)

(define-function pango_glyph_item_iter_get_type
  (c-name "pango_glyph_item_iter_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_copy")
  (return-type "PangoGlyphItemIter*")
)

(define-method free
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_free")
  (return-type "none")
)

(define-method init_start
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_init_start")
  (return-type "gboolean")
  (parameters
    '("PangoGlyphItem*" "glyph_item")
    '("const-char*" "text")
  )
)

(define-method init_end
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_init_end")
  (return-type "gboolean")
  (parameters
    '("PangoGlyphItem*" "glyph_item")
    '("const-char*" "text")
  )
)

(define-method next_cluster
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_next_cluster")
  (return-type "gboolean")
)

(define-method prev_cluster
  (of-object "PangoGlyphItemIter")
  (c-name "pango_glyph_item_iter_prev_cluster")
  (return-type "gboolean")
)



;; From pango-gravity.h

(define-method to_rotation
  (of-object "PangoGravity")
  (c-name "pango_gravity_to_rotation")
  (return-type "double")
)

(define-function pango_gravity_get_for_matrix
  (c-name "pango_gravity_get_for_matrix")
  (return-type "PangoGravity")
  (parameters
    '("const-PangoMatrix*" "matrix")
  )
)

(define-function pango_gravity_get_for_script
  (c-name "pango_gravity_get_for_script")
  (return-type "PangoGravity")
  (parameters
    '("PangoScript" "script")
    '("PangoGravity" "base_gravity")
    '("PangoGravityHint" "hint")
  )
)

(define-function pango_gravity_get_for_script_and_width
  (c-name "pango_gravity_get_for_script_and_width")
  (return-type "PangoGravity")
  (parameters
    '("PangoScript" "script")
    '("gboolean" "wide")
    '("PangoGravity" "base_gravity")
    '("PangoGravityHint" "hint")
  )
)



;; From pango.h



;; From pango-impl-utils.h



;; From pango-item.h

(define-function pango_item_get_type
  (c-name "pango_item_get_type")
  (return-type "GType")
)

(define-function pango_item_new
  (c-name "pango_item_new")
  (is-constructor-of "PangoItem")
  (return-type "PangoItem*")
)

(define-method copy
  (of-object "PangoItem")
  (c-name "pango_item_copy")
  (return-type "PangoItem*")
)

(define-method free
  (of-object "PangoItem")
  (c-name "pango_item_free")
  (return-type "none")
)

(define-method split
  (of-object "PangoItem")
  (c-name "pango_item_split")
  (return-type "PangoItem*")
  (parameters
    '("int" "split_index")
    '("int" "split_offset")
  )
)



;; From pango-language.h

(define-function pango_language_get_type
  (c-name "pango_language_get_type")
  (return-type "GType")
)

(define-function pango_language_from_string
  (c-name "pango_language_from_string")
  (return-type "PangoLanguage*")
  (parameters
    '("const-char*" "language")
  )
)

(define-method to_string
  (of-object "PangoLanguage")
  (c-name "pango_language_to_string")
  (return-type "const-char*")
)

(define-method get_sample_string
  (of-object "PangoLanguage")
  (c-name "pango_language_get_sample_string")
  (return-type "const-char*")
)

(define-function pango_language_get_default
  (c-name "pango_language_get_default")
  (return-type "PangoLanguage*")
)

(define-method matches
  (of-object "PangoLanguage")
  (c-name "pango_language_matches")
  (return-type "gboolean")
  (parameters
    '("const-char*" "range_list")
  )
)

(define-method includes_script
  (of-object "PangoLanguage")
  (c-name "pango_language_includes_script")
  (return-type "gboolean")
  (parameters
    '("PangoScript" "script")
  )
)

(define-method get_scripts
  (of-object "PangoLanguage")
  (c-name "pango_language_get_scripts")
  (return-type "const-PangoScript*")
  (parameters
    '("int*" "num_scripts")
  )
)



;; From pango-language-sample-table.h



;; From pango-layout.h

(define-function pango_layout_get_type
  (c-name "pango_layout_get_type")
  (return-type "GType")
)

(define-function pango_layout_new
  (c-name "pango_layout_new")
  (is-constructor-of "PangoLayout")
  (return-type "PangoLayout*")
  (parameters
    '("PangoContext*" "context")
  )
)

(define-method copy
  (of-object "PangoLayout")
  (c-name "pango_layout_copy")
  (return-type "PangoLayout*")
)

(define-method get_context
  (of-object "PangoLayout")
  (c-name "pango_layout_get_context")
  (return-type "PangoContext*")
)

(define-method set_attributes
  (of-object "PangoLayout")
  (c-name "pango_layout_set_attributes")
  (return-type "none")
  (parameters
    '("PangoAttrList*" "attrs")
  )
)

(define-method get_attributes
  (of-object "PangoLayout")
  (c-name "pango_layout_get_attributes")
  (return-type "PangoAttrList*")
)

(define-method set_text
  (of-object "PangoLayout")
  (c-name "pango_layout_set_text")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("int" "length")
  )
)

(define-method get_text
  (of-object "PangoLayout")
  (c-name "pango_layout_get_text")
  (return-type "const-char*")
)

(define-method get_character_count
  (of-object "PangoLayout")
  (c-name "pango_layout_get_character_count")
  (return-type "gint")
)

(define-method set_markup
  (of-object "PangoLayout")
  (c-name "pango_layout_set_markup")
  (return-type "none")
  (parameters
    '("const-char*" "markup")
    '("int" "length")
  )
)

(define-method set_markup_with_accel
  (of-object "PangoLayout")
  (c-name "pango_layout_set_markup_with_accel")
  (return-type "none")
  (parameters
    '("const-char*" "markup")
    '("int" "length")
    '("gunichar" "accel_marker")
    '("gunichar*" "accel_char")
  )
)

(define-method set_font_description
  (of-object "PangoLayout")
  (c-name "pango_layout_set_font_description")
  (return-type "none")
  (parameters
    '("const-PangoFontDescription*" "desc")
  )
)

(define-method get_font_description
  (of-object "PangoLayout")
  (c-name "pango_layout_get_font_description")
  (return-type "const-PangoFontDescription*")
)

(define-method set_width
  (of-object "PangoLayout")
  (c-name "pango_layout_set_width")
  (return-type "none")
  (parameters
    '("int" "width")
  )
)

(define-method get_width
  (of-object "PangoLayout")
  (c-name "pango_layout_get_width")
  (return-type "int")
)

(define-method set_height
  (of-object "PangoLayout")
  (c-name "pango_layout_set_height")
  (return-type "none")
  (parameters
    '("int" "height")
  )
)

(define-method get_height
  (of-object "PangoLayout")
  (c-name "pango_layout_get_height")
  (return-type "int")
)

(define-method set_wrap
  (of-object "PangoLayout")
  (c-name "pango_layout_set_wrap")
  (return-type "none")
  (parameters
    '("PangoWrapMode" "wrap")
  )
)

(define-method get_wrap
  (of-object "PangoLayout")
  (c-name "pango_layout_get_wrap")
  (return-type "PangoWrapMode")
)

(define-method is_wrapped
  (of-object "PangoLayout")
  (c-name "pango_layout_is_wrapped")
  (return-type "gboolean")
)

(define-method set_indent
  (of-object "PangoLayout")
  (c-name "pango_layout_set_indent")
  (return-type "none")
  (parameters
    '("int" "indent")
  )
)

(define-method get_indent
  (of-object "PangoLayout")
  (c-name "pango_layout_get_indent")
  (return-type "int")
)

(define-method set_spacing
  (of-object "PangoLayout")
  (c-name "pango_layout_set_spacing")
  (return-type "none")
  (parameters
    '("int" "spacing")
  )
)

(define-method get_spacing
  (of-object "PangoLayout")
  (c-name "pango_layout_get_spacing")
  (return-type "int")
)

(define-method set_justify
  (of-object "PangoLayout")
  (c-name "pango_layout_set_justify")
  (return-type "none")
  (parameters
    '("gboolean" "justify")
  )
)

(define-method get_justify
  (of-object "PangoLayout")
  (c-name "pango_layout_get_justify")
  (return-type "gboolean")
)

(define-method set_auto_dir
  (of-object "PangoLayout")
  (c-name "pango_layout_set_auto_dir")
  (return-type "none")
  (parameters
    '("gboolean" "auto_dir")
  )
)

(define-method get_auto_dir
  (of-object "PangoLayout")
  (c-name "pango_layout_get_auto_dir")
  (return-type "gboolean")
)

(define-method set_alignment
  (of-object "PangoLayout")
  (c-name "pango_layout_set_alignment")
  (return-type "none")
  (parameters
    '("PangoAlignment" "alignment")
  )
)

(define-method get_alignment
  (of-object "PangoLayout")
  (c-name "pango_layout_get_alignment")
  (return-type "PangoAlignment")
)

(define-method set_tabs
  (of-object "PangoLayout")
  (c-name "pango_layout_set_tabs")
  (return-type "none")
  (parameters
    '("PangoTabArray*" "tabs")
  )
)

(define-method get_tabs
  (of-object "PangoLayout")
  (c-name "pango_layout_get_tabs")
  (return-type "PangoTabArray*")
)

(define-method set_single_paragraph_mode
  (of-object "PangoLayout")
  (c-name "pango_layout_set_single_paragraph_mode")
  (return-type "none")
  (parameters
    '("gboolean" "setting")
  )
)

(define-method get_single_paragraph_mode
  (of-object "PangoLayout")
  (c-name "pango_layout_get_single_paragraph_mode")
  (return-type "gboolean")
)

(define-method set_ellipsize
  (of-object "PangoLayout")
  (c-name "pango_layout_set_ellipsize")
  (return-type "none")
  (parameters
    '("PangoEllipsizeMode" "ellipsize")
  )
)

(define-method get_ellipsize
  (of-object "PangoLayout")
  (c-name "pango_layout_get_ellipsize")
  (return-type "PangoEllipsizeMode")
)

(define-method is_ellipsized
  (of-object "PangoLayout")
  (c-name "pango_layout_is_ellipsized")
  (return-type "gboolean")
)

(define-method get_unknown_glyphs_count
  (of-object "PangoLayout")
  (c-name "pango_layout_get_unknown_glyphs_count")
  (return-type "int")
)

(define-method context_changed
  (of-object "PangoLayout")
  (c-name "pango_layout_context_changed")
  (return-type "none")
)

(define-method get_serial
  (of-object "PangoLayout")
  (c-name "pango_layout_get_serial")
  (return-type "guint")
)

(define-method get_log_attrs
  (of-object "PangoLayout")
  (c-name "pango_layout_get_log_attrs")
  (return-type "none")
  (parameters
    '("PangoLogAttr**" "attrs")
    '("gint*" "n_attrs")
  )
)

(define-method get_log_attrs_readonly
  (of-object "PangoLayout")
  (c-name "pango_layout_get_log_attrs_readonly")
  (return-type "const-PangoLogAttr*")
  (parameters
    '("gint*" "n_attrs")
  )
)

(define-method index_to_pos
  (of-object "PangoLayout")
  (c-name "pango_layout_index_to_pos")
  (return-type "none")
  (parameters
    '("int" "index_")
    '("PangoRectangle*" "pos")
  )
)

(define-method index_to_line_x
  (of-object "PangoLayout")
  (c-name "pango_layout_index_to_line_x")
  (return-type "none")
  (parameters
    '("int" "index_")
    '("gboolean" "trailing")
    '("int*" "line")
    '("int*" "x_pos")
  )
)

(define-method get_cursor_pos
  (of-object "PangoLayout")
  (c-name "pango_layout_get_cursor_pos")
  (return-type "none")
  (parameters
    '("int" "index_")
    '("PangoRectangle*" "strong_pos")
    '("PangoRectangle*" "weak_pos")
  )
)

(define-method move_cursor_visually
  (of-object "PangoLayout")
  (c-name "pango_layout_move_cursor_visually")
  (return-type "none")
  (parameters
    '("gboolean" "strong")
    '("int" "old_index")
    '("int" "old_trailing")
    '("int" "direction")
    '("int*" "new_index")
    '("int*" "new_trailing")
  )
)

(define-method xy_to_index
  (of-object "PangoLayout")
  (c-name "pango_layout_xy_to_index")
  (return-type "gboolean")
  (parameters
    '("int" "x")
    '("int" "y")
    '("int*" "index_")
    '("int*" "trailing")
  )
)

(define-method get_extents
  (of-object "PangoLayout")
  (c-name "pango_layout_get_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_pixel_extents
  (of-object "PangoLayout")
  (c-name "pango_layout_get_pixel_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_size
  (of-object "PangoLayout")
  (c-name "pango_layout_get_size")
  (return-type "none")
  (parameters
    '("int*" "width")
    '("int*" "height")
  )
)

(define-method get_pixel_size
  (of-object "PangoLayout")
  (c-name "pango_layout_get_pixel_size")
  (return-type "none")
  (parameters
    '("int*" "width")
    '("int*" "height")
  )
)

(define-method get_baseline
  (of-object "PangoLayout")
  (c-name "pango_layout_get_baseline")
  (return-type "int")
)

(define-method get_line_count
  (of-object "PangoLayout")
  (c-name "pango_layout_get_line_count")
  (return-type "int")
)

(define-method get_line
  (of-object "PangoLayout")
  (c-name "pango_layout_get_line")
  (return-type "PangoLayoutLine*")
  (parameters
    '("int" "line")
  )
)

(define-method get_line_readonly
  (of-object "PangoLayout")
  (c-name "pango_layout_get_line_readonly")
  (return-type "PangoLayoutLine*")
  (parameters
    '("int" "line")
  )
)

(define-method get_lines
  (of-object "PangoLayout")
  (c-name "pango_layout_get_lines")
  (return-type "GSList*")
)

(define-method get_lines_readonly
  (of-object "PangoLayout")
  (c-name "pango_layout_get_lines_readonly")
  (return-type "GSList*")
)

(define-function pango_layout_line_get_type
  (c-name "pango_layout_line_get_type")
  (return-type "GType")
)

(define-method ref
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_ref")
  (return-type "PangoLayoutLine*")
)

(define-method unref
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_unref")
  (return-type "none")
)

(define-method x_to_index
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_x_to_index")
  (return-type "gboolean")
  (parameters
    '("int" "x_pos")
    '("int*" "index_")
    '("int*" "trailing")
  )
)

(define-method index_to_x
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_index_to_x")
  (return-type "none")
  (parameters
    '("int" "index_")
    '("gboolean" "trailing")
    '("int*" "x_pos")
  )
)

(define-method get_x_ranges
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_get_x_ranges")
  (return-type "none")
  (parameters
    '("int" "start_index")
    '("int" "end_index")
    '("int**" "ranges")
    '("int*" "n_ranges")
  )
)

(define-method get_extents
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_get_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_pixel_extents
  (of-object "PangoLayoutLine")
  (c-name "pango_layout_line_get_pixel_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-function pango_layout_iter_get_type
  (c-name "pango_layout_iter_get_type")
  (return-type "GType")
)

(define-method get_iter
  (of-object "PangoLayout")
  (c-name "pango_layout_get_iter")
  (return-type "PangoLayoutIter*")
)

(define-method copy
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_copy")
  (return-type "PangoLayoutIter*")
)

(define-method free
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_free")
  (return-type "none")
)

(define-method get_index
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_index")
  (return-type "int")
)

(define-method get_run
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_run")
  (return-type "PangoLayoutRun*")
)

(define-method get_run_readonly
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_run_readonly")
  (return-type "PangoLayoutRun*")
)

(define-method get_line
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_line")
  (return-type "PangoLayoutLine*")
)

(define-method get_line_readonly
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_line_readonly")
  (return-type "PangoLayoutLine*")
)

(define-method at_last_line
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_at_last_line")
  (return-type "gboolean")
)

(define-method get_layout
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_layout")
  (return-type "PangoLayout*")
)

(define-method next_char
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_next_char")
  (return-type "gboolean")
)

(define-method next_cluster
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_next_cluster")
  (return-type "gboolean")
)

(define-method next_run
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_next_run")
  (return-type "gboolean")
)

(define-method next_line
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_next_line")
  (return-type "gboolean")
)

(define-method get_char_extents
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_char_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_cluster_extents
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_cluster_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_run_extents
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_run_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_line_extents
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_line_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_line_yrange
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_line_yrange")
  (return-type "none")
  (parameters
    '("int*" "y0_")
    '("int*" "y1_")
  )
)

(define-method get_layout_extents
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_layout_extents")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "ink_rect")
    '("PangoRectangle*" "logical_rect")
  )
)

(define-method get_baseline
  (of-object "PangoLayoutIter")
  (c-name "pango_layout_iter_get_baseline")
  (return-type "int")
)



;; From pango-layout-private.h



;; From pango-matrix.h

(define-function pango_matrix_get_type
  (c-name "pango_matrix_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "PangoMatrix")
  (c-name "pango_matrix_copy")
  (return-type "PangoMatrix*")
)

(define-method free
  (of-object "PangoMatrix")
  (c-name "pango_matrix_free")
  (return-type "none")
)

(define-method translate
  (of-object "PangoMatrix")
  (c-name "pango_matrix_translate")
  (return-type "none")
  (parameters
    '("double" "tx")
    '("double" "ty")
  )
)

(define-method scale
  (of-object "PangoMatrix")
  (c-name "pango_matrix_scale")
  (return-type "none")
  (parameters
    '("double" "scale_x")
    '("double" "scale_y")
  )
)

(define-method rotate
  (of-object "PangoMatrix")
  (c-name "pango_matrix_rotate")
  (return-type "none")
  (parameters
    '("double" "degrees")
  )
)

(define-method concat
  (of-object "PangoMatrix")
  (c-name "pango_matrix_concat")
  (return-type "none")
  (parameters
    '("const-PangoMatrix*" "new_matrix")
  )
)

(define-method transform_point
  (of-object "PangoMatrix")
  (c-name "pango_matrix_transform_point")
  (return-type "none")
  (parameters
    '("double*" "x")
    '("double*" "y")
  )
)

(define-method transform_distance
  (of-object "PangoMatrix")
  (c-name "pango_matrix_transform_distance")
  (return-type "none")
  (parameters
    '("double*" "dx")
    '("double*" "dy")
  )
)

(define-method transform_rectangle
  (of-object "PangoMatrix")
  (c-name "pango_matrix_transform_rectangle")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "rect")
  )
)

(define-method transform_pixel_rectangle
  (of-object "PangoMatrix")
  (c-name "pango_matrix_transform_pixel_rectangle")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "rect")
  )
)

(define-method get_font_scale_factor
  (of-object "PangoMatrix")
  (c-name "pango_matrix_get_font_scale_factor")
  (return-type "double")
)

(define-method get_font_scale_factors
  (of-object "PangoMatrix")
  (c-name "pango_matrix_get_font_scale_factors")
  (return-type "none")
  (parameters
    '("double*" "xscale")
    '("double*" "yscale")
  )
)



;; From pango-modules.h

(define-function pango_find_map
  (c-name "pango_find_map")
  (return-type "PangoMap*")
  (parameters
    '("PangoLanguage*" "language")
    '("guint" "engine_type_id")
    '("guint" "render_type_id")
  )
)

(define-method get_engine
  (of-object "PangoMap")
  (c-name "pango_map_get_engine")
  (return-type "PangoEngine*")
  (parameters
    '("PangoScript" "script")
  )
)

(define-method get_engines
  (of-object "PangoMap")
  (c-name "pango_map_get_engines")
  (return-type "none")
  (parameters
    '("PangoScript" "script")
    '("GSList**" "exact_engines")
    '("GSList**" "fallback_engines")
  )
)

(define-function pango_module_register
  (c-name "pango_module_register")
  (return-type "none")
  (parameters
    '("PangoIncludedModule*" "module")
  )
)



;; From pango-ot.h

(define-function pango_ot_info_get_type
  (c-name "pango_ot_info_get_type")
  (return-type "GType")
)

(define-function pango_ot_ruleset_get_type
  (c-name "pango_ot_ruleset_get_type")
  (return-type "GType")
)

(define-function pango_ot_info_get
  (c-name "pango_ot_info_get")
  (return-type "PangoOTInfo*")
  (parameters
    '("FT_Face" "face")
  )
)

(define-method find_script
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_find_script")
  (return-type "gboolean")
  (parameters
    '("PangoOTTableType" "table_type")
    '("PangoOTTag" "script_tag")
    '("guint*" "script_index")
  )
)

(define-method find_language
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_find_language")
  (return-type "gboolean")
  (parameters
    '("PangoOTTableType" "table_type")
    '("guint" "script_index")
    '("PangoOTTag" "language_tag")
    '("guint*" "language_index")
    '("guint*" "required_feature_index")
  )
)

(define-method find_feature
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_find_feature")
  (return-type "gboolean")
  (parameters
    '("PangoOTTableType" "table_type")
    '("PangoOTTag" "feature_tag")
    '("guint" "script_index")
    '("guint" "language_index")
    '("guint*" "feature_index")
  )
)

(define-method list_scripts
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_list_scripts")
  (return-type "PangoOTTag*")
  (parameters
    '("PangoOTTableType" "table_type")
  )
)

(define-method list_languages
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_list_languages")
  (return-type "PangoOTTag*")
  (parameters
    '("PangoOTTableType" "table_type")
    '("guint" "script_index")
    '("PangoOTTag" "language_tag")
  )
)

(define-method list_features
  (of-object "PangoOTInfo")
  (c-name "pango_ot_info_list_features")
  (return-type "PangoOTTag*")
  (parameters
    '("PangoOTTableType" "table_type")
    '("PangoOTTag" "tag")
    '("guint" "script_index")
    '("guint" "language_index")
  )
)

(define-function pango_ot_buffer_new
  (c-name "pango_ot_buffer_new")
  (is-constructor-of "PangoOtBuffer")
  (return-type "PangoOTBuffer*")
  (parameters
    '("PangoFcFont*" "font")
  )
)

(define-method destroy
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_destroy")
  (return-type "none")
)

(define-method clear
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_clear")
  (return-type "none")
)

(define-method set_rtl
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_set_rtl")
  (return-type "none")
  (parameters
    '("gboolean" "rtl")
  )
)

(define-method add_glyph
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_add_glyph")
  (return-type "none")
  (parameters
    '("guint" "glyph")
    '("guint" "properties")
    '("guint" "cluster")
  )
)

(define-method get_glyphs
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_get_glyphs")
  (return-type "none")
  (parameters
    '("PangoOTGlyph**" "glyphs")
    '("int*" "n_glyphs")
  )
)

(define-method output
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_output")
  (return-type "none")
  (parameters
    '("PangoGlyphString*" "glyphs")
  )
)

(define-method set_zero_width_marks
  (of-object "PangoOTBuffer")
  (c-name "pango_ot_buffer_set_zero_width_marks")
  (return-type "none")
  (parameters
    '("gboolean" "zero_width_marks")
  )
)

(define-function pango_ot_ruleset_get_for_description
  (c-name "pango_ot_ruleset_get_for_description")
  (return-type "const-PangoOTRuleset*")
  (parameters
    '("PangoOTInfo*" "info")
    '("const-PangoOTRulesetDescription*" "desc")
  )
)

(define-function pango_ot_ruleset_new
  (c-name "pango_ot_ruleset_new")
  (is-constructor-of "PangoOtRuleset")
  (return-type "PangoOTRuleset*")
  (parameters
    '("PangoOTInfo*" "info")
  )
)

(define-function pango_ot_ruleset_new_for
  (c-name "pango_ot_ruleset_new_for")
  (return-type "PangoOTRuleset*")
  (parameters
    '("PangoOTInfo*" "info")
    '("PangoScript" "script")
    '("PangoLanguage*" "language")
  )
)

(define-function pango_ot_ruleset_new_from_description
  (c-name "pango_ot_ruleset_new_from_description")
  (return-type "PangoOTRuleset*")
  (parameters
    '("PangoOTInfo*" "info")
    '("const-PangoOTRulesetDescription*" "desc")
  )
)

(define-method add_feature
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_add_feature")
  (return-type "none")
  (parameters
    '("PangoOTTableType" "table_type")
    '("guint" "feature_index")
    '("gulong" "property_bit")
  )
)

(define-method maybe_add_feature
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_maybe_add_feature")
  (return-type "gboolean")
  (parameters
    '("PangoOTTableType" "table_type")
    '("PangoOTTag" "feature_tag")
    '("gulong" "property_bit")
  )
)

(define-method maybe_add_features
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_maybe_add_features")
  (return-type "guint")
  (parameters
    '("PangoOTTableType" "table_type")
    '("const-PangoOTFeatureMap*" "features")
    '("guint" "n_features")
  )
)

(define-method get_feature_count
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_get_feature_count")
  (return-type "guint")
  (parameters
    '("guint*" "n_gsub_features")
    '("guint*" "n_gpos_features")
  )
)

(define-method substitute
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_substitute")
  (return-type "none")
  (parameters
    '("PangoOTBuffer*" "buffer")
  )
)

(define-method position
  (of-object "PangoOTRuleset")
  (c-name "pango_ot_ruleset_position")
  (return-type "none")
  (parameters
    '("PangoOTBuffer*" "buffer")
  )
)

(define-method to_script
  (of-object "PangoOTTag")
  (c-name "pango_ot_tag_to_script")
  (return-type "PangoScript")
)

(define-function pango_ot_tag_from_script
  (c-name "pango_ot_tag_from_script")
  (return-type "PangoOTTag")
  (parameters
    '("PangoScript" "script")
  )
)

(define-method to_language
  (of-object "PangoOTTag")
  (c-name "pango_ot_tag_to_language")
  (return-type "PangoLanguage*")
)

(define-function pango_ot_tag_from_language
  (c-name "pango_ot_tag_from_language")
  (return-type "PangoOTTag")
  (parameters
    '("PangoLanguage*" "language")
  )
)

(define-method hash
  (of-object "PangoOTRulesetDescription")
  (c-name "pango_ot_ruleset_description_hash")
  (return-type "guint")
)

(define-method equal
  (of-object "PangoOTRulesetDescription")
  (c-name "pango_ot_ruleset_description_equal")
  (return-type "gboolean")
  (parameters
    '("const-PangoOTRulesetDescription*" "desc2")
  )
)

(define-method copy
  (of-object "PangoOTRulesetDescription")
  (c-name "pango_ot_ruleset_description_copy")
  (return-type "PangoOTRulesetDescription*")
)

(define-method free
  (of-object "PangoOTRulesetDescription")
  (c-name "pango_ot_ruleset_description_free")
  (return-type "none")
)



;; From pango-ot-private.h



;; From pango-renderer.h

(define-function pango_renderer_get_type
  (c-name "pango_renderer_get_type")
  (return-type "GType")
)

(define-method draw_layout
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_layout")
  (return-type "none")
  (parameters
    '("PangoLayout*" "layout")
    '("int" "x")
    '("int" "y")
  )
)

(define-method draw_layout_line
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_layout_line")
  (return-type "none")
  (parameters
    '("PangoLayoutLine*" "line")
    '("int" "x")
    '("int" "y")
  )
)

(define-method draw_glyphs
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_glyphs")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("int" "x")
    '("int" "y")
  )
)

(define-method draw_glyph_item
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_glyph_item")
  (return-type "none")
  (parameters
    '("const-char*" "text")
    '("PangoGlyphItem*" "glyph_item")
    '("int" "x")
    '("int" "y")
  )
)

(define-method draw_rectangle
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_rectangle")
  (return-type "none")
  (parameters
    '("PangoRenderPart" "part")
    '("int" "x")
    '("int" "y")
    '("int" "width")
    '("int" "height")
  )
)

(define-method draw_error_underline
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_error_underline")
  (return-type "none")
  (parameters
    '("int" "x")
    '("int" "y")
    '("int" "width")
    '("int" "height")
  )
)

(define-method draw_trapezoid
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_trapezoid")
  (return-type "none")
  (parameters
    '("PangoRenderPart" "part")
    '("double" "y1_")
    '("double" "x11")
    '("double" "x21")
    '("double" "y2")
    '("double" "x12")
    '("double" "x22")
  )
)

(define-method draw_glyph
  (of-object "PangoRenderer")
  (c-name "pango_renderer_draw_glyph")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
    '("PangoGlyph" "glyph")
    '("double" "x")
    '("double" "y")
  )
)

(define-method activate
  (of-object "PangoRenderer")
  (c-name "pango_renderer_activate")
  (return-type "none")
)

(define-method deactivate
  (of-object "PangoRenderer")
  (c-name "pango_renderer_deactivate")
  (return-type "none")
)

(define-method part_changed
  (of-object "PangoRenderer")
  (c-name "pango_renderer_part_changed")
  (return-type "none")
  (parameters
    '("PangoRenderPart" "part")
  )
)

(define-method set_color
  (of-object "PangoRenderer")
  (c-name "pango_renderer_set_color")
  (return-type "none")
  (parameters
    '("PangoRenderPart" "part")
    '("const-PangoColor*" "color")
  )
)

(define-method get_color
  (of-object "PangoRenderer")
  (c-name "pango_renderer_get_color")
  (return-type "PangoColor*")
  (parameters
    '("PangoRenderPart" "part")
  )
)

(define-method set_alpha
  (of-object "PangoRenderer")
  (c-name "pango_renderer_set_alpha")
  (return-type "none")
  (parameters
    '("PangoRenderPart" "part")
    '("guint16" "alpha")
  )
)

(define-method get_alpha
  (of-object "PangoRenderer")
  (c-name "pango_renderer_get_alpha")
  (return-type "guint16")
  (parameters
    '("PangoRenderPart" "part")
  )
)

(define-method set_matrix
  (of-object "PangoRenderer")
  (c-name "pango_renderer_set_matrix")
  (return-type "none")
  (parameters
    '("const-PangoMatrix*" "matrix")
  )
)

(define-method get_matrix
  (of-object "PangoRenderer")
  (c-name "pango_renderer_get_matrix")
  (return-type "const-PangoMatrix*")
)

(define-method get_layout
  (of-object "PangoRenderer")
  (c-name "pango_renderer_get_layout")
  (return-type "PangoLayout*")
)

(define-method get_layout_line
  (of-object "PangoRenderer")
  (c-name "pango_renderer_get_layout_line")
  (return-type "PangoLayoutLine*")
)



;; From pango-script.h

(define-function pango_script_for_unichar
  (c-name "pango_script_for_unichar")
  (return-type "PangoScript")
  (parameters
    '("gunichar" "ch")
  )
)

(define-function pango_script_iter_new
  (c-name "pango_script_iter_new")
  (is-constructor-of "PangoScriptIter")
  (return-type "PangoScriptIter*")
  (parameters
    '("const-char*" "text")
    '("int" "length")
  )
)

(define-method get_range
  (of-object "PangoScriptIter")
  (c-name "pango_script_iter_get_range")
  (return-type "none")
  (parameters
    '("const-char**" "start")
    '("const-char**" "end")
    '("PangoScript*" "script")
  )
)

(define-method next
  (of-object "PangoScriptIter")
  (c-name "pango_script_iter_next")
  (return-type "gboolean")
)

(define-method free
  (of-object "PangoScriptIter")
  (c-name "pango_script_iter_free")
  (return-type "none")
)

(define-method get_sample_language
  (of-object "PangoScript")
  (c-name "pango_script_get_sample_language")
  (return-type "PangoLanguage*")
)



;; From pango-script-lang-table.h



;; From pango-script-private.h



;; From pango-tabs.h

(define-function pango_tab_array_new
  (c-name "pango_tab_array_new")
  (is-constructor-of "PangoTabArray")
  (return-type "PangoTabArray*")
  (parameters
    '("gint" "initial_size")
    '("gboolean" "positions_in_pixels")
  )
)

(define-function pango_tab_array_new_with_positions
  (c-name "pango_tab_array_new_with_positions")
  (return-type "PangoTabArray*")
  (parameters
    '("gint" "size")
    '("gboolean" "positions_in_pixels")
    '("PangoTabAlign" "first_alignment")
    '("gint" "first_position")
  )
  (varargs #t)
)

(define-function pango_tab_array_get_type
  (c-name "pango_tab_array_get_type")
  (return-type "GType")
)

(define-method copy
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_copy")
  (return-type "PangoTabArray*")
)

(define-method free
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_free")
  (return-type "none")
)

(define-method get_size
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_get_size")
  (return-type "gint")
)

(define-method resize
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_resize")
  (return-type "none")
  (parameters
    '("gint" "new_size")
  )
)

(define-method set_tab
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_set_tab")
  (return-type "none")
  (parameters
    '("gint" "tab_index")
    '("PangoTabAlign" "alignment")
    '("gint" "location")
  )
)

(define-method get_tab
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_get_tab")
  (return-type "none")
  (parameters
    '("gint" "tab_index")
    '("PangoTabAlign*" "alignment")
    '("gint*" "location")
  )
)

(define-method get_tabs
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_get_tabs")
  (return-type "none")
  (parameters
    '("PangoTabAlign**" "alignments")
    '("gint**" "locations")
  )
)

(define-method get_positions_in_pixels
  (of-object "PangoTabArray")
  (c-name "pango_tab_array_get_positions_in_pixels")
  (return-type "gboolean")
)



;; From pango-types.h

(define-function pango_units_from_double
  (c-name "pango_units_from_double")
  (return-type "int")
  (parameters
    '("double" "d")
  )
)

(define-function pango_units_to_double
  (c-name "pango_units_to_double")
  (return-type "double")
  (parameters
    '("int" "i")
  )
)

(define-function pango_extents_to_pixels
  (c-name "pango_extents_to_pixels")
  (return-type "none")
  (parameters
    '("PangoRectangle*" "inclusive")
    '("PangoRectangle*" "nearest")
  )
)



;; From pango-utils.h

(define-function pango_split_file_list
  (c-name "pango_split_file_list")
  (return-type "char**")
  (parameters
    '("const-char*" "str")
  )
)

(define-function pango_trim_string
  (c-name "pango_trim_string")
  (return-type "char*")
  (parameters
    '("const-char*" "str")
  )
)

(define-function pango_read_line
  (c-name "pango_read_line")
  (return-type "gint")
  (parameters
    '("FILE*" "stream")
    '("GString*" "str")
  )
)

(define-function pango_skip_space
  (c-name "pango_skip_space")
  (return-type "gboolean")
  (parameters
    '("const-char**" "pos")
  )
)

(define-function pango_scan_word
  (c-name "pango_scan_word")
  (return-type "gboolean")
  (parameters
    '("const-char**" "pos")
    '("GString*" "out")
  )
)

(define-function pango_scan_string
  (c-name "pango_scan_string")
  (return-type "gboolean")
  (parameters
    '("const-char**" "pos")
    '("GString*" "out")
  )
)

(define-function pango_scan_int
  (c-name "pango_scan_int")
  (return-type "gboolean")
  (parameters
    '("const-char**" "pos")
    '("int*" "out")
  )
)

(define-function pango_config_key_get_system
  (c-name "pango_config_key_get_system")
  (return-type "char*")
  (parameters
    '("const-char*" "key")
  )
)

(define-function pango_config_key_get
  (c-name "pango_config_key_get")
  (return-type "char*")
  (parameters
    '("const-char*" "key")
  )
)

(define-function pango_lookup_aliases
  (c-name "pango_lookup_aliases")
  (return-type "none")
  (parameters
    '("const-char*" "fontname")
    '("char***" "families")
    '("int*" "n_families")
  )
)

(define-function pango_parse_enum
  (c-name "pango_parse_enum")
  (return-type "gboolean")
  (parameters
    '("GType" "type")
    '("const-char*" "str")
    '("int*" "value")
    '("gboolean" "warn")
    '("char**" "possible_values")
  )
)

(define-function pango_parse_style
  (c-name "pango_parse_style")
  (return-type "gboolean")
  (parameters
    '("const-char*" "str")
    '("PangoStyle*" "style")
    '("gboolean" "warn")
  )
)

(define-function pango_parse_variant
  (c-name "pango_parse_variant")
  (return-type "gboolean")
  (parameters
    '("const-char*" "str")
    '("PangoVariant*" "variant")
    '("gboolean" "warn")
  )
)

(define-function pango_parse_weight
  (c-name "pango_parse_weight")
  (return-type "gboolean")
  (parameters
    '("const-char*" "str")
    '("PangoWeight*" "weight")
    '("gboolean" "warn")
  )
)

(define-function pango_parse_stretch
  (c-name "pango_parse_stretch")
  (return-type "gboolean")
  (parameters
    '("const-char*" "str")
    '("PangoStretch*" "stretch")
    '("gboolean" "warn")
  )
)

(define-function pango_get_sysconf_subdirectory
  (c-name "pango_get_sysconf_subdirectory")
  (return-type "const-char*")
)

(define-function pango_get_lib_subdirectory
  (c-name "pango_get_lib_subdirectory")
  (return-type "const-char*")
)

(define-function pango_quantize_line_geometry
  (c-name "pango_quantize_line_geometry")
  (return-type "none")
  (parameters
    '("int*" "thickness")
    '("int*" "position")
  )
)

(define-function pango_log2vis_get_embedding_levels
  (c-name "pango_log2vis_get_embedding_levels")
  (return-type "guint8*")
  (parameters
    '("const-gchar*" "text")
    '("int" "length")
    '("PangoDirection*" "pbase_dir")
  )
)

(define-function pango_is_zero_width
  (c-name "pango_is_zero_width")
  (return-type "gboolean")
  (parameters
    '("gunichar" "ch")
  )
)

(define-function pango_version
  (c-name "pango_version")
  (return-type "int")
)

(define-function pango_version_string
  (c-name "pango_version_string")
  (return-type "const-char*")
)

(define-function pango_version_check
  (c-name "pango_version_check")
  (return-type "const-char*")
  (parameters
    '("int" "required_major")
    '("int" "required_minor")
    '("int" "required_micro")
  )
)



;; From pangowin32.h

(define-function pango_win32_get_context
  (c-name "pango_win32_get_context")
  (return-type "PangoContext*")
)

(define-function pango_win32_render
  (c-name "pango_win32_render")
  (return-type "none")
  (parameters
    '("HDC" "hdc")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("gint" "x")
    '("gint" "y")
  )
)

(define-function pango_win32_render_layout_line
  (c-name "pango_win32_render_layout_line")
  (return-type "none")
  (parameters
    '("HDC" "hdc")
    '("PangoLayoutLine*" "line")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_win32_render_layout
  (c-name "pango_win32_render_layout")
  (return-type "none")
  (parameters
    '("HDC" "hdc")
    '("PangoLayout*" "layout")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_win32_render_transformed
  (c-name "pango_win32_render_transformed")
  (return-type "none")
  (parameters
    '("HDC" "hdc")
    '("const-PangoMatrix*" "matrix")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_win32_get_unknown_glyph
  (c-name "pango_win32_get_unknown_glyph")
  (return-type "PangoGlyph")
  (parameters
    '("PangoFont*" "font")
    '("gunichar" "wc")
  )
)

(define-function pango_win32_font_get_glyph_index
  (c-name "pango_win32_font_get_glyph_index")
  (return-type "gint")
  (parameters
    '("PangoFont*" "font")
    '("gunichar" "wc")
  )
)

(define-function pango_win32_get_dc
  (c-name "pango_win32_get_dc")
  (return-type "HDC")
)

(define-function pango_win32_get_debug_flag
  (c-name "pango_win32_get_debug_flag")
  (return-type "gboolean")
)

(define-function pango_win32_font_select_font
  (c-name "pango_win32_font_select_font")
  (return-type "gboolean")
  (parameters
    '("PangoFont*" "font")
    '("HDC" "hdc")
  )
)

(define-function pango_win32_font_done_font
  (c-name "pango_win32_font_done_font")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_win32_font_get_metrics_factor
  (c-name "pango_win32_font_get_metrics_factor")
  (return-type "double")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_win32_font_cache_new
  (c-name "pango_win32_font_cache_new")
  (is-constructor-of "PangoWin32FontCache")
  (return-type "PangoWin32FontCache*")
)

(define-method free
  (of-object "PangoWin32FontCache")
  (c-name "pango_win32_font_cache_free")
  (return-type "none")
)

(define-method load
  (of-object "PangoWin32FontCache")
  (c-name "pango_win32_font_cache_load")
  (return-type "HFONT")
  (parameters
    '("const-LOGFONTA*" "logfont")
  )
)

(define-method loadw
  (of-object "PangoWin32FontCache")
  (c-name "pango_win32_font_cache_loadw")
  (return-type "HFONT")
  (parameters
    '("const-LOGFONTW*" "logfont")
  )
)

(define-method unload
  (of-object "PangoWin32FontCache")
  (c-name "pango_win32_font_cache_unload")
  (return-type "none")
  (parameters
    '("HFONT" "hfont")
  )
)

(define-function pango_win32_font_map_for_display
  (c-name "pango_win32_font_map_for_display")
  (return-type "PangoFontMap*")
)

(define-function pango_win32_shutdown_display
  (c-name "pango_win32_shutdown_display")
  (return-type "none")
)

(define-function pango_win32_font_map_get_font_cache
  (c-name "pango_win32_font_map_get_font_cache")
  (return-type "PangoWin32FontCache*")
  (parameters
    '("PangoFontMap*" "font_map")
  )
)

(define-function pango_win32_font_logfont
  (c-name "pango_win32_font_logfont")
  (return-type "LOGFONTA*")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_win32_font_logfontw
  (c-name "pango_win32_font_logfontw")
  (return-type "LOGFONTW*")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_win32_font_description_from_logfont
  (c-name "pango_win32_font_description_from_logfont")
  (return-type "PangoFontDescription*")
  (parameters
    '("const-LOGFONTA*" "lfp")
  )
)

(define-function pango_win32_font_description_from_logfontw
  (c-name "pango_win32_font_description_from_logfontw")
  (return-type "PangoFontDescription*")
  (parameters
    '("const-LOGFONTW*" "lfp")
  )
)



;; From pangowin32-private.h



;; From pangoxft.h

(define-function pango_xft_get_font_map
  (c-name "pango_xft_get_font_map")
  (return-type "PangoFontMap*")
  (parameters
    '("Display*" "display")
    '("int" "screen")
  )
)

(define-function pango_xft_get_context
  (c-name "pango_xft_get_context")
  (return-type "PangoContext*")
  (parameters
    '("Display*" "display")
    '("int" "screen")
  )
)

(define-function pango_xft_shutdown_display
  (c-name "pango_xft_shutdown_display")
  (return-type "none")
  (parameters
    '("Display*" "display")
    '("int" "screen")
  )
)

(define-function pango_xft_set_default_substitute
  (c-name "pango_xft_set_default_substitute")
  (return-type "none")
  (parameters
    '("Display*" "display")
    '("int" "screen")
    '("PangoXftSubstituteFunc" "func")
    '("gpointer" "data")
    '("GDestroyNotify" "notify")
  )
)

(define-function pango_xft_substitute_changed
  (c-name "pango_xft_substitute_changed")
  (return-type "none")
  (parameters
    '("Display*" "display")
    '("int" "screen")
  )
)

(define-function pango_xft_font_map_get_type
  (c-name "pango_xft_font_map_get_type")
  (return-type "GType")
)

(define-function pango_xft_font_get_type
  (c-name "pango_xft_font_get_type")
  (return-type "GType")
)

(define-function pango_xft_font_get_font
  (c-name "pango_xft_font_get_font")
  (return-type "XftFont*")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_xft_font_get_display
  (c-name "pango_xft_font_get_display")
  (return-type "Display*")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_xft_font_lock_face
  (c-name "pango_xft_font_lock_face")
  (return-type "FT_Face")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_xft_font_unlock_face
  (c-name "pango_xft_font_unlock_face")
  (return-type "none")
  (parameters
    '("PangoFont*" "font")
  )
)

(define-function pango_xft_font_get_glyph
  (c-name "pango_xft_font_get_glyph")
  (return-type "guint")
  (parameters
    '("PangoFont*" "font")
    '("gunichar" "wc")
  )
)

(define-function pango_xft_font_has_char
  (c-name "pango_xft_font_has_char")
  (return-type "gboolean")
  (parameters
    '("PangoFont*" "font")
    '("gunichar" "wc")
  )
)

(define-function pango_xft_font_get_unknown_glyph
  (c-name "pango_xft_font_get_unknown_glyph")
  (return-type "PangoGlyph")
  (parameters
    '("PangoFont*" "font")
    '("gunichar" "wc")
  )
)



;; From pangoxft-private.h



;; From pangoxft-render.h

(define-function pango_xft_renderer_get_type
  (c-name "pango_xft_renderer_get_type")
  (return-type "GType")
)

(define-function pango_xft_renderer_new
  (c-name "pango_xft_renderer_new")
  (is-constructor-of "PangoXftRenderer")
  (return-type "PangoRenderer*")
  (parameters
    '("Display*" "display")
    '("int" "screen")
  )
)

(define-method set_draw
  (of-object "PangoXftRenderer")
  (c-name "pango_xft_renderer_set_draw")
  (return-type "none")
  (parameters
    '("XftDraw*" "draw")
  )
)

(define-method set_default_color
  (of-object "PangoXftRenderer")
  (c-name "pango_xft_renderer_set_default_color")
  (return-type "none")
  (parameters
    '("PangoColor*" "default_color")
  )
)

(define-function pango_xft_render
  (c-name "pango_xft_render")
  (return-type "none")
  (parameters
    '("XftDraw*" "draw")
    '("XftColor*" "color")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("gint" "x")
    '("gint" "y")
  )
)

(define-function pango_xft_picture_render
  (c-name "pango_xft_picture_render")
  (return-type "none")
  (parameters
    '("Display*" "display")
    '("Picture" "src_picture")
    '("Picture" "dest_picture")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("gint" "x")
    '("gint" "y")
  )
)

(define-function pango_xft_render_transformed
  (c-name "pango_xft_render_transformed")
  (return-type "none")
  (parameters
    '("XftDraw*" "draw")
    '("XftColor*" "color")
    '("PangoMatrix*" "matrix")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_xft_render_layout_line
  (c-name "pango_xft_render_layout_line")
  (return-type "none")
  (parameters
    '("XftDraw*" "draw")
    '("XftColor*" "color")
    '("PangoLayoutLine*" "line")
    '("int" "x")
    '("int" "y")
  )
)

(define-function pango_xft_render_layout
  (c-name "pango_xft_render_layout")
  (return-type "none")
  (parameters
    '("XftDraw*" "draw")
    '("XftColor*" "color")
    '("PangoLayout*" "layout")
    '("int" "x")
    '("int" "y")
  )
)


