summary refs log tree commit diff stats
path: root/lib/oldwrappers/gtk/pango.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oldwrappers/gtk/pango.nim')
-rw-r--r--lib/oldwrappers/gtk/pango.nim1208
1 files changed, 1208 insertions, 0 deletions
diff --git a/lib/oldwrappers/gtk/pango.nim b/lib/oldwrappers/gtk/pango.nim
new file mode 100644
index 000000000..ade2da989
--- /dev/null
+++ b/lib/oldwrappers/gtk/pango.nim
@@ -0,0 +1,1208 @@
+{.deadCodeElim: on.}
+
+import
+  glib2
+
+when defined(win32):
+  const
+    pangolib* = "libpango-1.0-0.dll"
+else:
+  const
+    pangolib* = "libpango-1.0.so.0"
+type
+  PPangoFont* = pointer
+  PPangoFontFamily* = pointer
+  PPangoFontset* = pointer
+  PPangoFontMetrics* = pointer
+  PPangoFontFace* = pointer
+  PPangoFontMap* = pointer
+  PPangoFontsetClass* = pointer
+  PPangoFontFamilyClass* = pointer
+  PPangoFontFaceClass* = pointer
+  PPangoFontClass* = pointer
+  PPangoFontMapClass* = pointer
+  PPangoFontDescription* = ptr TPangoFontDescription
+  TPangoFontDescription* = pointer
+  PPangoAttrList* = ptr TPangoAttrList
+  TPangoAttrList* = pointer
+  PPangoAttrIterator* = ptr TPangoAttrIterator
+  TPangoAttrIterator* = pointer
+  PPangoLayout* = ptr TPangoLayout
+  TPangoLayout* = pointer
+  PPangoLayoutClass* = ptr TPangoLayoutClass
+  TPangoLayoutClass* = pointer
+  PPangoLayoutIter* = ptr TPangoLayoutIter
+  TPangoLayoutIter* = pointer
+  PPangoContext* = ptr TPangoContext
+  TPangoContext* = pointer
+  PPangoContextClass* = ptr TPangoContextClass
+  TPangoContextClass* = pointer
+  PPangoFontsetSimple* = ptr TPangoFontsetSimple
+  TPangoFontsetSimple* = pointer
+  PPangoTabArray* = ptr TPangoTabArray
+  TPangoTabArray* = pointer
+  PPangoGlyphString* = ptr TPangoGlyphString
+  PPangoAnalysis* = ptr TPangoAnalysis
+  PPangoItem* = ptr TPangoItem
+  PPangoLanguage* = ptr TPangoLanguage
+  TPangoLanguage* = pointer
+  PPangoGlyph* = ptr TPangoGlyph
+  TPangoGlyph* = guint32
+  PPangoRectangle* = ptr TPangoRectangle
+  TPangoRectangle* {.final, pure.} = object
+    x*: int32
+    y*: int32
+    width*: int32
+    height*: int32
+
+  PPangoDirection* = ptr TPangoDirection
+  TPangoDirection* = enum
+    PANGO_DIRECTION_LTR, PANGO_DIRECTION_RTL, PANGO_DIRECTION_TTB_LTR,
+    PANGO_DIRECTION_TTB_RTL
+  PPangoColor* = ptr TPangoColor
+  TPangoColor* {.final, pure.} = object
+    red*: guint16
+    green*: guint16
+    blue*: guint16
+
+  PPangoAttrType* = ptr TPangoAttrType
+  TPangoAttrType* = int32
+  PPangoUnderline* = ptr TPangoUnderline
+  TPangoUnderline* = int32
+  PPangoAttribute* = ptr TPangoAttribute
+  PPangoAttrClass* = ptr TPangoAttrClass
+  TPangoAttribute* {.final, pure.} = object
+    klass*: PPangoAttrClass
+    start_index*: int
+    end_index*: int
+
+  TPangoAttrClass* {.final, pure.} = object
+    `type`*: TPangoAttrType
+    copy*: proc (attr: PPangoAttribute): PPangoAttribute{.cdecl.}
+    destroy*: proc (attr: PPangoAttribute){.cdecl.}
+    equal*: proc (attr1: PPangoAttribute, attr2: PPangoAttribute): gboolean{.
+        cdecl.}
+
+  PPangoAttrString* = ptr TPangoAttrString
+  TPangoAttrString* {.final, pure.} = object
+    attr*: TPangoAttribute
+    value*: cstring
+
+  PPangoAttrLanguage* = ptr TPangoAttrLanguage
+  TPangoAttrLanguage* {.final, pure.} = object
+    attr*: TPangoAttribute
+    value*: PPangoLanguage
+
+  PPangoAttrInt* = ptr TPangoAttrInt
+  TPangoAttrInt* {.final, pure.} = object
+    attr*: TPangoAttribute
+    value*: int32
+
+  PPangoAttrFloat* = ptr TPangoAttrFloat
+  TPangoAttrFloat* {.final, pure.} = object
+    attr*: TPangoAttribute
+    value*: gdouble
+
+  PPangoAttrColor* = ptr TPangoAttrColor
+  TPangoAttrColor* {.final, pure.} = object
+    attr*: TPangoAttribute
+    color*: TPangoColor
+
+  PPangoAttrShape* = ptr TPangoAttrShape
+  TPangoAttrShape* {.final, pure.} = object
+    attr*: TPangoAttribute
+    ink_rect*: TPangoRectangle
+    logical_rect*: TPangoRectangle
+
+  PPangoAttrFontDesc* = ptr TPangoAttrFontDesc
+  TPangoAttrFontDesc* {.final, pure.} = object
+    attr*: TPangoAttribute
+    desc*: PPangoFontDescription
+
+  PPangoLogAttr* = ptr TPangoLogAttr
+  TPangoLogAttr* {.final, pure.} = object
+    flag0*: guint16
+
+  PPangoCoverageLevel* = ptr TPangoCoverageLevel
+  TPangoCoverageLevel* = enum
+    PANGO_COVERAGE_NONE, PANGO_COVERAGE_FALLBACK, PANGO_COVERAGE_APPROXIMATE,
+    PANGO_COVERAGE_EXACT
+  PPangoBlockInfo* = ptr TPangoBlockInfo
+  TPangoBlockInfo* {.final, pure.} = object
+    data*: Pguchar
+    level*: TPangoCoverageLevel
+
+  PPangoCoverage* = ptr TPangoCoverage
+  TPangoCoverage* {.final, pure.} = object
+    ref_count*: int
+    n_blocks*: int32
+    data_size*: int32
+    blocks*: PPangoBlockInfo
+
+  PPangoEngineRange* = ptr TPangoEngineRange
+  TPangoEngineRange* {.final, pure.} = object
+    start*: int32
+    theEnd*: int32
+    langs*: cstring
+
+  PPangoEngineInfo* = ptr TPangoEngineInfo
+  TPangoEngineInfo* {.final, pure.} = object
+    id*: cstring
+    engine_type*: cstring
+    render_type*: cstring
+    ranges*: PPangoEngineRange
+    n_ranges*: gint
+
+  PPangoEngine* = ptr TPangoEngine
+  TPangoEngine* {.final, pure.} = object
+    id*: cstring
+    `type`*: cstring
+    length*: gint
+
+  TPangoEngineLangScriptBreak* = proc (text: cstring, len: int32,
+                                       analysis: PPangoAnalysis,
+                                       attrs: PPangoLogAttr, attrs_len: int32){.
+      cdecl.}
+  PPangoEngineLang* = ptr TPangoEngineLang
+  TPangoEngineLang* {.final, pure.} = object
+    engine*: TPangoEngine
+    script_break*: TPangoEngineLangScriptBreak
+
+  TPangoEngineShapeScript* = proc (font: PPangoFont, text: cstring,
+                                   length: int32, analysis: PPangoAnalysis,
+                                   glyphs: PPangoGlyphString){.cdecl.}
+  TPangoEngineShapeGetCoverage* = proc (font: PPangoFont,
+                                        language: PPangoLanguage): PPangoCoverage{.
+      cdecl.}
+  PPangoEngineShape* = ptr TPangoEngineShape
+  TPangoEngineShape* {.final, pure.} = object
+    engine*: TPangoEngine
+    script_shape*: TPangoEngineShapeScript
+    get_coverage*: TPangoEngineShapeGetCoverage
+
+  PPangoStyle* = ptr TPangoStyle
+  TPangoStyle* = gint
+  PPangoVariant* = ptr TPangoVariant
+  TPangoVariant* = gint
+  PPangoWeight* = ptr TPangoWeight
+  TPangoWeight* = gint
+  PPangoStretch* = ptr TPangoStretch
+  TPangoStretch* = gint
+  PPangoFontMask* = ptr TPangoFontMask
+  TPangoFontMask* = int32
+  PPangoGlyphUnit* = ptr TPangoGlyphUnit
+  TPangoGlyphUnit* = gint32
+  PPangoGlyphGeometry* = ptr TPangoGlyphGeometry
+  TPangoGlyphGeometry* {.final, pure.} = object
+    width*: TPangoGlyphUnit
+    x_offset*: TPangoGlyphUnit
+    y_offset*: TPangoGlyphUnit
+
+  PPangoGlyphVisAttr* = ptr TPangoGlyphVisAttr
+  TPangoGlyphVisAttr* {.final, pure.} = object
+    flag0*: int16
+
+  PPangoGlyphInfo* = ptr TPangoGlyphInfo
+  TPangoGlyphInfo* {.final, pure.} = object
+    glyph*: TPangoGlyph
+    geometry*: TPangoGlyphGeometry
+    attr*: TPangoGlyphVisAttr
+
+  TPangoGlyphString* {.final, pure.} = object
+    num_glyphs*: gint
+    glyphs*: PPangoGlyphInfo
+    log_clusters*: Pgint
+    space*: gint
+
+  TPangoAnalysis* {.final, pure.} = object
+    shape_engine*: PPangoEngineShape
+    lang_engine*: PPangoEngineLang
+    font*: PPangoFont
+    level*: guint8
+    language*: PPangoLanguage
+    extra_attrs*: PGSList
+
+  TPangoItem* {.final, pure.} = object
+    offset*: gint
+    length*: gint
+    num_chars*: gint
+    analysis*: TPangoAnalysis
+
+  PPangoAlignment* = ptr TPangoAlignment
+  TPangoAlignment* = enum
+    PANGO_ALIGN_LEFT, PANGO_ALIGN_CENTER, PANGO_ALIGN_RIGHT
+  PPangoWrapMode* = ptr TPangoWrapMode
+  TPangoWrapMode* = enum
+    PANGO_WRAP_WORD, PANGO_WRAP_CHAR
+  PPangoLayoutLine* = ptr TPangoLayoutLine
+  TPangoLayoutLine* {.final, pure.} = object
+    layout*: PPangoLayout
+    start_index*: gint
+    length*: gint
+    runs*: PGSList
+
+  PPangoLayoutRun* = ptr TPangoLayoutRun
+  TPangoLayoutRun* {.final, pure.} = object
+    item*: PPangoItem
+    glyphs*: PPangoGlyphString
+
+  PPangoTabAlign* = ptr TPangoTabAlign
+  TPangoTabAlign* = enum
+    PANGO_TAB_LEFT
+
+const
+  PANGO_SCALE* = 1024
+
+proc PANGO_PIXELS*(d: int): int
+proc PANGO_ASCENT*(rect: TPangoRectangle): int32
+proc PANGO_DESCENT*(rect: TPangoRectangle): int32
+proc PANGO_LBEARING*(rect: TPangoRectangle): int32
+proc PANGO_RBEARING*(rect: TPangoRectangle): int32
+proc PANGO_TYPE_LANGUAGE*(): GType
+proc pango_language_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                        importc: "pango_language_get_type".}
+proc pango_language_from_string*(language: cstring): PPangoLanguage{.cdecl,
+    dynlib: pangolib, importc: "pango_language_from_string".}
+proc pango_language_to_string*(language: PPangoLanguage): cstring
+proc pango_language_matches*(language: PPangoLanguage, range_list: cstring): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_language_matches".}
+const
+  PANGO_ATTR_INVALID* = 0
+  PANGO_ATTR_LANGUAGE* = 1
+  PANGO_ATTR_FAMILY* = 2
+  PANGO_ATTR_STYLE* = 3
+  PANGO_ATTR_WEIGHT* = 4
+  PANGO_ATTR_VARIANT* = 5
+  PANGO_ATTR_STRETCH* = 6
+  PANGO_ATTR_SIZE* = 7
+  PANGO_ATTR_FONT_DESC* = 8
+  PANGO_ATTR_FOREGROUND* = 9
+  PANGO_ATTR_BACKGROUND* = 10
+  PANGO_ATTR_UNDERLINE* = 11
+  PANGO_ATTR_STRIKETHROUGH* = 12
+  PANGO_ATTR_RISE* = 13
+  PANGO_ATTR_SHAPE* = 14
+  PANGO_ATTR_SCALE* = 15
+  PANGO_UNDERLINE_NONE* = 0
+  PANGO_UNDERLINE_SINGLE* = 1
+  PANGO_UNDERLINE_DOUBLE* = 2
+  PANGO_UNDERLINE_LOW* = 3
+
+proc PANGO_TYPE_COLOR*(): GType
+proc pango_color_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                     importc: "pango_color_get_type".}
+proc pango_color_copy*(src: PPangoColor): PPangoColor{.cdecl, dynlib: pangolib,
+    importc: "pango_color_copy".}
+proc pango_color_free*(color: PPangoColor){.cdecl, dynlib: pangolib,
+    importc: "pango_color_free".}
+proc pango_color_parse*(color: PPangoColor, spec: cstring): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_color_parse".}
+proc PANGO_TYPE_ATTR_LIST*(): GType
+proc pango_attr_type_register*(name: cstring): TPangoAttrType{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_type_register".}
+proc pango_attribute_copy*(attr: PPangoAttribute): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attribute_copy".}
+proc pango_attribute_destroy*(attr: PPangoAttribute){.cdecl, dynlib: pangolib,
+    importc: "pango_attribute_destroy".}
+proc pango_attribute_equal*(attr1: PPangoAttribute, attr2: PPangoAttribute): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_attribute_equal".}
+proc pango_attr_language_new*(language: PPangoLanguage): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_language_new".}
+proc pango_attr_family_new*(family: cstring): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_family_new".}
+proc pango_attr_foreground_new*(red: guint16, green: guint16, blue: guint16): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_foreground_new".}
+proc pango_attr_background_new*(red: guint16, green: guint16, blue: guint16): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_background_new".}
+proc pango_attr_size_new*(size: int32): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_size_new".}
+proc pango_attr_style_new*(style: TPangoStyle): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_style_new".}
+proc pango_attr_weight_new*(weight: TPangoWeight): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_weight_new".}
+proc pango_attr_variant_new*(variant: TPangoVariant): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_variant_new".}
+proc pango_attr_stretch_new*(stretch: TPangoStretch): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_stretch_new".}
+proc pango_attr_font_desc_new*(desc: PPangoFontDescription): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_font_desc_new".}
+proc pango_attr_underline_new*(underline: TPangoUnderline): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_underline_new".}
+proc pango_attr_strikethrough_new*(strikethrough: gboolean): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_strikethrough_new".}
+proc pango_attr_rise_new*(rise: int32): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_rise_new".}
+proc pango_attr_shape_new*(ink_rect: PPangoRectangle,
+                           logical_rect: PPangoRectangle): PPangoAttribute{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_shape_new".}
+proc pango_attr_scale_new*(scale_factor: gdouble): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_scale_new".}
+proc pango_attr_list_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_attr_list_get_type".}
+proc pango_attr_list_new*(): PPangoAttrList{.cdecl, dynlib: pangolib,
+    importc: "pango_attr_list_new".}
+proc pango_attr_list_ref*(list: PPangoAttrList){.cdecl, dynlib: pangolib,
+    importc: "pango_attr_list_ref".}
+proc pango_attr_list_unref*(list: PPangoAttrList){.cdecl, dynlib: pangolib,
+    importc: "pango_attr_list_unref".}
+proc pango_attr_list_copy*(list: PPangoAttrList): PPangoAttrList{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_list_copy".}
+proc pango_attr_list_insert*(list: PPangoAttrList, attr: PPangoAttribute){.
+    cdecl, dynlib: pangolib, importc: "pango_attr_list_insert".}
+proc pango_attr_list_insert_before*(list: PPangoAttrList, attr: PPangoAttribute){.
+    cdecl, dynlib: pangolib, importc: "pango_attr_list_insert_before".}
+proc pango_attr_list_change*(list: PPangoAttrList, attr: PPangoAttribute){.
+    cdecl, dynlib: pangolib, importc: "pango_attr_list_change".}
+proc pango_attr_list_splice*(list: PPangoAttrList, other: PPangoAttrList,
+                             pos: gint, len: gint){.cdecl, dynlib: pangolib,
+    importc: "pango_attr_list_splice".}
+proc pango_attr_list_get_iterator*(list: PPangoAttrList): PPangoAttrIterator{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_list_get_iterator".}
+proc pango_attr_iterator_range*(`iterator`: PPangoAttrIterator, start: Pgint,
+                                theEnd: Pgint){.cdecl, dynlib: pangolib,
+    importc: "pango_attr_iterator_range".}
+proc pango_attr_iterator_next*(`iterator`: PPangoAttrIterator): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_iterator_next".}
+proc pango_attr_iterator_copy*(`iterator`: PPangoAttrIterator): PPangoAttrIterator{.
+    cdecl, dynlib: pangolib, importc: "pango_attr_iterator_copy".}
+proc pango_attr_iterator_destroy*(`iterator`: PPangoAttrIterator){.cdecl,
+    dynlib: pangolib, importc: "pango_attr_iterator_destroy".}
+proc pango_attr_iterator_get*(`iterator`: PPangoAttrIterator,
+                              `type`: TPangoAttrType): PPangoAttribute{.cdecl,
+    dynlib: pangolib, importc: "pango_attr_iterator_get".}
+proc pango_attr_iterator_get_font*(`iterator`: PPangoAttrIterator,
+                                   desc: PPangoFontDescription,
+                                   language: var PPangoLanguage,
+                                   extra_attrs: PPGSList){.cdecl,
+    dynlib: pangolib, importc: "pango_attr_iterator_get_font".}
+proc pango_parse_markup*(markup_text: cstring, length: int32,
+                         accel_marker: gunichar, attr_list: var PPangoAttrList,
+                         text: PPchar, accel_char: Pgunichar, error: pointer): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_parse_markup".}
+const
+  bm_TPangoLogAttr_is_line_break* = 0x00000001'i16
+  bp_TPangoLogAttr_is_line_break* = 0'i16
+  bm_TPangoLogAttr_is_mandatory_break* = 0x00000002'i16
+  bp_TPangoLogAttr_is_mandatory_break* = 1'i16
+  bm_TPangoLogAttr_is_char_break* = 0x00000004'i16
+  bp_TPangoLogAttr_is_char_break* = 2'i16
+  bm_TPangoLogAttr_is_white* = 0x00000008'i16
+  bp_TPangoLogAttr_is_white* = 3'i16
+  bm_TPangoLogAttr_is_cursor_position* = 0x00000010'i16
+  bp_TPangoLogAttr_is_cursor_position* = 4'i16
+  bm_TPangoLogAttr_is_word_start* = 0x00000020'i16
+  bp_TPangoLogAttr_is_word_start* = 5'i16
+  bm_TPangoLogAttr_is_word_end* = 0x00000040'i16
+  bp_TPangoLogAttr_is_word_end* = 6'i16
+  bm_TPangoLogAttr_is_sentence_boundary* = 0x00000080'i16
+  bp_TPangoLogAttr_is_sentence_boundary* = 7'i16
+  bm_TPangoLogAttr_is_sentence_start* = 0x00000100'i16
+  bp_TPangoLogAttr_is_sentence_start* = 8'i16
+  bm_TPangoLogAttr_is_sentence_end* = 0x00000200'i16
+  bp_TPangoLogAttr_is_sentence_end* = 9'i16
+
+proc is_line_break*(a: var TPangoLogAttr): guint
+proc set_is_line_break*(a: var TPangoLogAttr, `is_line_break`: guint)
+proc is_mandatory_break*(a: var TPangoLogAttr): guint
+proc set_is_mandatory_break*(a: var TPangoLogAttr, `is_mandatory_break`: guint)
+proc is_char_break*(a: var TPangoLogAttr): guint
+proc set_is_char_break*(a: var TPangoLogAttr, `is_char_break`: guint)
+proc is_white*(a: var TPangoLogAttr): guint
+proc set_is_white*(a: var TPangoLogAttr, `is_white`: guint)
+proc is_cursor_position*(a: var TPangoLogAttr): guint
+proc set_is_cursor_position*(a: var TPangoLogAttr, `is_cursor_position`: guint)
+proc is_word_start*(a: var TPangoLogAttr): guint
+proc set_is_word_start*(a: var TPangoLogAttr, `is_word_start`: guint)
+proc is_word_end*(a: var TPangoLogAttr): guint
+proc set_is_word_end*(a: var TPangoLogAttr, `is_word_end`: guint)
+proc is_sentence_boundary*(a: var TPangoLogAttr): guint
+proc set_is_sentence_boundary*(a: var TPangoLogAttr,
+                               `is_sentence_boundary`: guint)
+proc is_sentence_start*(a: var TPangoLogAttr): guint
+proc set_is_sentence_start*(a: var TPangoLogAttr, `is_sentence_start`: guint)
+proc is_sentence_end*(a: var TPangoLogAttr): guint
+proc set_is_sentence_end*(a: var TPangoLogAttr, `is_sentence_end`: guint)
+proc pango_break*(text: cstring, length: int32, analysis: PPangoAnalysis,
+                  attrs: PPangoLogAttr, attrs_len: int32){.cdecl,
+    dynlib: pangolib, importc: "pango_break".}
+proc pango_find_paragraph_boundary*(text: cstring, length: gint,
+                                    paragraph_delimiter_index: Pgint,
+                                    next_paragraph_start: Pgint){.cdecl,
+    dynlib: pangolib, importc: "pango_find_paragraph_boundary".}
+proc pango_get_log_attrs*(text: cstring, length: int32, level: int32,
+                          language: PPangoLanguage, log_attrs: PPangoLogAttr,
+                          attrs_len: int32){.cdecl, dynlib: pangolib,
+    importc: "pango_get_log_attrs".}
+proc PANGO_TYPE_CONTEXT*(): GType
+proc PANGO_CONTEXT*(anObject: pointer): PPangoContext
+proc PANGO_CONTEXT_CLASS*(klass: pointer): PPangoContextClass
+proc PANGO_IS_CONTEXT*(anObject: pointer): bool
+proc PANGO_IS_CONTEXT_CLASS*(klass: pointer): bool
+proc PANGO_CONTEXT_GET_CLASS*(obj: PPangoContext): PPangoContextClass
+proc pango_context_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                       importc: "pango_context_get_type".}
+proc pango_context_list_families*(context: PPangoContext,
+                                  families: openarray[ptr PPangoFontFamily]){.cdecl,
+    dynlib: pangolib, importc: "pango_context_list_families".}
+proc pango_context_load_font*(context: PPangoContext,
+                              desc: PPangoFontDescription): PPangoFont{.cdecl,
+    dynlib: pangolib, importc: "pango_context_load_font".}
+proc pango_context_load_fontset*(context: PPangoContext,
+                                 desc: PPangoFontDescription,
+                                 language: PPangoLanguage): PPangoFontset{.
+    cdecl, dynlib: pangolib, importc: "pango_context_load_fontset".}
+proc pango_context_get_metrics*(context: PPangoContext,
+                                desc: PPangoFontDescription,
+                                language: PPangoLanguage): PPangoFontMetrics{.
+    cdecl, dynlib: pangolib, importc: "pango_context_get_metrics".}
+proc pango_context_set_font_description*(context: PPangoContext,
+    desc: PPangoFontDescription){.cdecl, dynlib: pangolib,
+                                  importc: "pango_context_set_font_description".}
+proc pango_context_get_font_description*(context: PPangoContext): PPangoFontDescription{.
+    cdecl, dynlib: pangolib, importc: "pango_context_get_font_description".}
+proc pango_context_get_language*(context: PPangoContext): PPangoLanguage{.cdecl,
+    dynlib: pangolib, importc: "pango_context_get_language".}
+proc pango_context_set_language*(context: PPangoContext,
+                                 language: PPangoLanguage){.cdecl,
+    dynlib: pangolib, importc: "pango_context_set_language".}
+proc pango_context_set_base_dir*(context: PPangoContext,
+                                 direction: TPangoDirection){.cdecl,
+    dynlib: pangolib, importc: "pango_context_set_base_dir".}
+proc pango_context_get_base_dir*(context: PPangoContext): TPangoDirection{.
+    cdecl, dynlib: pangolib, importc: "pango_context_get_base_dir".}
+proc pango_itemize*(context: PPangoContext, text: cstring, start_index: int32,
+                    length: int32, attrs: PPangoAttrList,
+                    cached_iter: PPangoAttrIterator): PGList{.cdecl,
+    dynlib: pangolib, importc: "pango_itemize".}
+proc pango_coverage_new*(): PPangoCoverage{.cdecl, dynlib: pangolib,
+    importc: "pango_coverage_new".}
+proc pango_coverage_ref*(coverage: PPangoCoverage): PPangoCoverage{.cdecl,
+    dynlib: pangolib, importc: "pango_coverage_ref".}
+proc pango_coverage_unref*(coverage: PPangoCoverage){.cdecl, dynlib: pangolib,
+    importc: "pango_coverage_unref".}
+proc pango_coverage_copy*(coverage: PPangoCoverage): PPangoCoverage{.cdecl,
+    dynlib: pangolib, importc: "pango_coverage_copy".}
+proc pango_coverage_get*(coverage: PPangoCoverage, index: int32): TPangoCoverageLevel{.
+    cdecl, dynlib: pangolib, importc: "pango_coverage_get".}
+proc pango_coverage_set*(coverage: PPangoCoverage, index: int32,
+                         level: TPangoCoverageLevel){.cdecl, dynlib: pangolib,
+    importc: "pango_coverage_set".}
+proc pango_coverage_max*(coverage: PPangoCoverage, other: PPangoCoverage){.
+    cdecl, dynlib: pangolib, importc: "pango_coverage_max".}
+proc pango_coverage_to_bytes*(coverage: PPangoCoverage, bytes: PPguchar,
+                              n_bytes: var int32){.cdecl, dynlib: pangolib,
+    importc: "pango_coverage_to_bytes".}
+proc pango_coverage_from_bytes*(bytes: Pguchar, n_bytes: int32): PPangoCoverage{.
+    cdecl, dynlib: pangolib, importc: "pango_coverage_from_bytes".}
+proc PANGO_TYPE_FONTSET*(): GType
+proc PANGO_FONTSET*(anObject: pointer): PPangoFontset
+proc PANGO_IS_FONTSET*(anObject: pointer): bool
+proc pango_fontset_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                       importc: "pango_fontset_get_type".}
+proc pango_fontset_get_font*(fontset: PPangoFontset, wc: guint): PPangoFont{.
+    cdecl, dynlib: pangolib, importc: "pango_fontset_get_font".}
+proc pango_fontset_get_metrics*(fontset: PPangoFontset): PPangoFontMetrics{.
+    cdecl, dynlib: pangolib, importc: "pango_fontset_get_metrics".}
+const
+  PANGO_STYLE_NORMAL* = 0
+  PANGO_STYLE_OBLIQUE* = 1
+  PANGO_STYLE_ITALIC* = 2
+  PANGO_VARIANT_NORMAL* = 0
+  PANGO_VARIANT_SMALL_CAPS* = 1
+  PANGO_WEIGHT_ULTRALIGHT* = 200
+  PANGO_WEIGHT_LIGHT* = 300
+  PANGO_WEIGHT_NORMAL* = 400
+  PANGO_WEIGHT_BOLD* = 700
+  PANGO_WEIGHT_ULTRABOLD* = 800
+  PANGO_WEIGHT_HEAVY* = 900
+  PANGO_STRETCH_ULTRA_CONDENSED* = 0
+  PANGO_STRETCH_EXTRA_CONDENSED* = 1
+  PANGO_STRETCH_CONDENSED* = 2
+  PANGO_STRETCH_SEMI_CONDENSED* = 3
+  PANGO_STRETCH_NORMAL* = 4
+  PANGO_STRETCH_SEMI_EXPANDED* = 5
+  PANGO_STRETCH_EXPANDED* = 6
+  PANGO_STRETCH_EXTRA_EXPANDED* = 7
+  PANGO_STRETCH_ULTRA_EXPANDED* = 8
+  PANGO_FONT_MASK_FAMILY* = 1 shl 0
+  PANGO_FONT_MASK_STYLE* = 1 shl 1
+  PANGO_FONT_MASK_VARIANT* = 1 shl 2
+  PANGO_FONT_MASK_WEIGHT* = 1 shl 3
+  PANGO_FONT_MASK_STRETCH* = 1 shl 4
+  PANGO_FONT_MASK_SIZE* = 1 shl 5
+  PANGO_SCALE_XX_SMALL* = 0.5787037037036999
+  PANGO_SCALE_X_SMALL* = 0.6444444444443999
+  PANGO_SCALE_SMALL* = 0.8333333333332999
+  PANGO_SCALE_MEDIUM* = 1.0
+  PANGO_SCALE_LARGE* = 1.2
+  PANGO_SCALE_X_LARGE* = 1.4399999999999
+  PANGO_SCALE_XX_LARGE* = 1.728
+
+proc PANGO_TYPE_FONT_DESCRIPTION*(): GType
+proc pango_font_description_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_font_description_get_type".}
+proc pango_font_description_new*(): PPangoFontDescription{.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_new".}
+proc pango_font_description_copy*(desc: PPangoFontDescription): PPangoFontDescription{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_copy".}
+proc pango_font_description_copy_static*(desc: PPangoFontDescription): PPangoFontDescription{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_copy_static".}
+proc pango_font_description_hash*(desc: PPangoFontDescription): guint{.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_hash".}
+proc pango_font_description_equal*(desc1: PPangoFontDescription,
+                                   desc2: PPangoFontDescription): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_equal".}
+proc pango_font_description_free*(desc: PPangoFontDescription){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_free".}
+proc pango_font_descriptions_free*(descs: var PPangoFontDescription,
+                                   n_descs: int32){.cdecl, dynlib: pangolib,
+    importc: "pango_font_descriptions_free".}
+proc pango_font_description_set_family*(desc: PPangoFontDescription,
+                                        family: cstring){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_set_family".}
+proc pango_font_description_set_family_static*(desc: PPangoFontDescription,
+    family: cstring){.cdecl, dynlib: pangolib,
+                      importc: "pango_font_description_set_family_static".}
+proc pango_font_description_get_family*(desc: PPangoFontDescription): cstring{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_family".}
+proc pango_font_description_set_style*(desc: PPangoFontDescription,
+                                       style: TPangoStyle){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_set_style".}
+proc pango_font_description_get_style*(desc: PPangoFontDescription): TPangoStyle{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_style".}
+proc pango_font_description_set_variant*(desc: PPangoFontDescription,
+    variant: TPangoVariant){.cdecl, dynlib: pangolib,
+                             importc: "pango_font_description_set_variant".}
+proc pango_font_description_get_variant*(desc: PPangoFontDescription): TPangoVariant{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_variant".}
+proc pango_font_description_set_weight*(desc: PPangoFontDescription,
+                                        weight: TPangoWeight){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_set_weight".}
+proc pango_font_description_get_weight*(desc: PPangoFontDescription): TPangoWeight{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_weight".}
+proc pango_font_description_set_stretch*(desc: PPangoFontDescription,
+    stretch: TPangoStretch){.cdecl, dynlib: pangolib,
+                             importc: "pango_font_description_set_stretch".}
+proc pango_font_description_get_stretch*(desc: PPangoFontDescription): TPangoStretch{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_stretch".}
+proc pango_font_description_set_size*(desc: PPangoFontDescription, size: gint){.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_set_size".}
+proc pango_font_description_get_size*(desc: PPangoFontDescription): gint{.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_get_size".}
+proc pango_font_description_set_absolute_size*(desc: PPangoFontDescription,
+    size: float64){.cdecl, dynlib: pangolib,
+                    importc: "pango_font_description_set_absolute_size".}
+proc pango_font_description_get_size_is_absolute*(desc: PPangoFontDescription,
+    size: float64): gboolean{.cdecl, dynlib: pangolib, importc: "pango_font_description_get_size_is_absolute".}
+proc pango_font_description_get_set_fields*(desc: PPangoFontDescription): TPangoFontMask{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_get_set_fields".}
+proc pango_font_description_unset_fields*(desc: PPangoFontDescription,
+    to_unset: TPangoFontMask){.cdecl, dynlib: pangolib,
+                               importc: "pango_font_description_unset_fields".}
+proc pango_font_description_merge*(desc: PPangoFontDescription,
+                                   desc_to_merge: PPangoFontDescription,
+                                   replace_existing: gboolean){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_merge".}
+proc pango_font_description_merge_static*(desc: PPangoFontDescription,
+    desc_to_merge: PPangoFontDescription, replace_existing: gboolean){.cdecl,
+    dynlib: pangolib, importc: "pango_font_description_merge_static".}
+proc pango_font_description_better_match*(desc: PPangoFontDescription,
+    old_match: PPangoFontDescription, new_match: PPangoFontDescription): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_better_match".}
+proc pango_font_description_from_string*(str: cstring): PPangoFontDescription{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_from_string".}
+proc pango_font_description_to_string*(desc: PPangoFontDescription): cstring{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_to_string".}
+proc pango_font_description_to_filename*(desc: PPangoFontDescription): cstring{.
+    cdecl, dynlib: pangolib, importc: "pango_font_description_to_filename".}
+proc PANGO_TYPE_FONT_METRICS*(): GType
+proc pango_font_metrics_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_font_metrics_get_type".}
+proc pango_font_metrics_ref*(metrics: PPangoFontMetrics): PPangoFontMetrics{.
+    cdecl, dynlib: pangolib, importc: "pango_font_metrics_ref".}
+proc pango_font_metrics_unref*(metrics: PPangoFontMetrics){.cdecl,
+    dynlib: pangolib, importc: "pango_font_metrics_unref".}
+proc pango_font_metrics_get_ascent*(metrics: PPangoFontMetrics): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_font_metrics_get_ascent".}
+proc pango_font_metrics_get_descent*(metrics: PPangoFontMetrics): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_font_metrics_get_descent".}
+proc pango_font_metrics_get_approximate_char_width*(metrics: PPangoFontMetrics): int32{.
+    cdecl, dynlib: pangolib,
+    importc: "pango_font_metrics_get_approximate_char_width".}
+proc pango_font_metrics_get_approximate_digit_width*(metrics: PPangoFontMetrics): int32{.
+    cdecl, dynlib: pangolib,
+    importc: "pango_font_metrics_get_approximate_digit_width".}
+proc PANGO_TYPE_FONT_FAMILY*(): GType
+proc PANGO_FONT_FAMILY*(anObject: Pointer): PPangoFontFamily
+proc PANGO_IS_FONT_FAMILY*(anObject: Pointer): bool
+proc pango_font_family_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_font_family_get_type".}
+proc pango_font_family_list_faces*(family: PPangoFontFamily,
+                                   faces: var openarray[ptr PPangoFontFace]){.
+    cdecl, dynlib: pangolib, importc: "pango_font_family_list_faces".}
+proc pango_font_family_get_name*(family: PPangoFontFamily): cstring{.cdecl,
+    dynlib: pangolib, importc: "pango_font_family_get_name".}
+proc PANGO_TYPE_FONT_FACE*(): GType
+proc PANGO_FONT_FACE*(anObject: pointer): PPangoFontFace
+proc PANGO_IS_FONT_FACE*(anObject: pointer): bool
+proc pango_font_face_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_font_face_get_type".}
+proc pango_font_face_describe*(face: PPangoFontFace): PPangoFontDescription{.
+    cdecl, dynlib: pangolib, importc: "pango_font_face_describe".}
+proc pango_font_face_get_face_name*(face: PPangoFontFace): cstring{.cdecl,
+    dynlib: pangolib, importc: "pango_font_face_get_face_name".}
+proc PANGO_TYPE_FONT*(): GType
+proc PANGO_FONT*(anObject: pointer): PPangoFont
+proc PANGO_IS_FONT*(anObject: pointer): bool
+proc pango_font_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                    importc: "pango_font_get_type".}
+proc pango_font_describe*(font: PPangoFont): PPangoFontDescription{.cdecl,
+    dynlib: pangolib, importc: "pango_font_describe".}
+proc pango_font_get_coverage*(font: PPangoFont, language: PPangoLanguage): PPangoCoverage{.
+    cdecl, dynlib: pangolib, importc: "pango_font_get_coverage".}
+proc pango_font_find_shaper*(font: PPangoFont, language: PPangoLanguage,
+                             ch: guint32): PPangoEngineShape{.cdecl,
+    dynlib: pangolib, importc: "pango_font_find_shaper".}
+proc pango_font_get_metrics*(font: PPangoFont, language: PPangoLanguage): PPangoFontMetrics{.
+    cdecl, dynlib: pangolib, importc: "pango_font_get_metrics".}
+proc pango_font_get_glyph_extents*(font: PPangoFont, glyph: TPangoGlyph,
+                                   ink_rect: PPangoRectangle,
+                                   logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_font_get_glyph_extents".}
+proc PANGO_TYPE_FONT_MAP*(): GType
+proc PANGO_FONT_MAP*(anObject: pointer): PPangoFontMap
+proc PANGO_IS_FONT_MAP*(anObject: pointer): bool
+proc pango_font_map_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                        importc: "pango_font_map_get_type".}
+proc pango_font_map_load_font*(fontmap: PPangoFontMap, context: PPangoContext,
+                               desc: PPangoFontDescription): PPangoFont{.cdecl,
+    dynlib: pangolib, importc: "pango_font_map_load_font".}
+proc pango_font_map_load_fontset*(fontmap: PPangoFontMap,
+                                  context: PPangoContext,
+                                  desc: PPangoFontDescription,
+                                  language: PPangoLanguage): PPangoFontset{.
+    cdecl, dynlib: pangolib, importc: "pango_font_map_load_fontset".}
+proc pango_font_map_list_families*(fontmap: PPangoFontMap,
+                                   families: var openarray[ptr PPangoFontFamily]){.cdecl,
+    dynlib: pangolib, importc: "pango_font_map_list_families".}
+const
+  bm_TPangoGlyphVisAttr_is_cluster_start* = 0x00000001'i16
+  bp_TPangoGlyphVisAttr_is_cluster_start* = 0'i16
+
+proc is_cluster_start*(a: var TPangoGlyphVisAttr): guint
+proc set_is_cluster_start*(a: var TPangoGlyphVisAttr, `is_cluster_start`: guint)
+proc PANGO_TYPE_GLYPH_STRING*(): GType
+proc pango_glyph_string_new*(): PPangoGlyphString{.cdecl, dynlib: pangolib,
+    importc: "pango_glyph_string_new".}
+proc pango_glyph_string_set_size*(`string`: PPangoGlyphString, new_len: gint){.
+    cdecl, dynlib: pangolib, importc: "pango_glyph_string_set_size".}
+proc pango_glyph_string_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_glyph_string_get_type".}
+proc pango_glyph_string_copy*(`string`: PPangoGlyphString): PPangoGlyphString{.
+    cdecl, dynlib: pangolib, importc: "pango_glyph_string_copy".}
+proc pango_glyph_string_free*(`string`: PPangoGlyphString){.cdecl,
+    dynlib: pangolib, importc: "pango_glyph_string_free".}
+proc pango_glyph_string_extents*(glyphs: PPangoGlyphString, font: PPangoFont,
+                                 ink_rect: PPangoRectangle,
+                                 logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_glyph_string_extents".}
+proc pango_glyph_string_extents_range*(glyphs: PPangoGlyphString, start: int32,
+                                       theEnd: int32, font: PPangoFont,
+                                       ink_rect: PPangoRectangle,
+                                       logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_glyph_string_extents_range".}
+proc pango_glyph_string_get_logical_widths*(glyphs: PPangoGlyphString,
+    text: cstring, length: int32, embedding_level: int32,
+    logical_widths: var int32){.cdecl, dynlib: pangolib,
+                               importc: "pango_glyph_string_get_logical_widths".}
+proc pango_glyph_string_index_to_x*(glyphs: PPangoGlyphString, text: cstring,
+                                    length: int32, analysis: PPangoAnalysis,
+                                    index: int32, trailing: gboolean,
+                                    x_pos: var int32){.cdecl, dynlib: pangolib,
+    importc: "pango_glyph_string_index_to_x".}
+proc pango_glyph_string_x_to_index*(glyphs: PPangoGlyphString, text: cstring,
+                                    length: int32, analysis: PPangoAnalysis,
+                                    x_pos: int32, index,
+                                    trailing: var int32){.cdecl,
+    dynlib: pangolib, importc: "pango_glyph_string_x_to_index".}
+proc pango_shape*(text: cstring, length: gint, analysis: PPangoAnalysis,
+                  glyphs: PPangoGlyphString){.cdecl, dynlib: pangolib,
+    importc: "pango_shape".}
+proc pango_reorder_items*(logical_items: PGList): PGList{.cdecl,
+    dynlib: pangolib, importc: "pango_reorder_items".}
+proc pango_item_new*(): PPangoItem{.cdecl, dynlib: pangolib,
+                                    importc: "pango_item_new".}
+proc pango_item_copy*(item: PPangoItem): PPangoItem{.cdecl, dynlib: pangolib,
+    importc: "pango_item_copy".}
+proc pango_item_free*(item: PPangoItem){.cdecl, dynlib: pangolib,
+    importc: "pango_item_free".}
+proc pango_item_split*(orig: PPangoItem, split_index: int32, split_offset: int32): PPangoItem{.
+    cdecl, dynlib: pangolib, importc: "pango_item_split".}
+proc PANGO_TYPE_LAYOUT*(): GType
+proc PANGO_LAYOUT*(anObject: pointer): PPangoLayout
+proc PANGO_LAYOUT_CLASS*(klass: pointer): PPangoLayoutClass
+proc PANGO_IS_LAYOUT*(anObject: pointer): bool
+proc PANGO_IS_LAYOUT_CLASS*(klass: pointer): bool
+proc PANGO_LAYOUT_GET_CLASS*(obj: PPangoLayout): PPangoLayoutClass
+proc pango_layout_get_type*(): GType{.cdecl, dynlib: pangolib,
+                                      importc: "pango_layout_get_type".}
+proc pango_layout_new*(context: PPangoContext): PPangoLayout{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_new".}
+proc pango_layout_copy*(src: PPangoLayout): PPangoLayout{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_copy".}
+proc pango_layout_get_context*(layout: PPangoLayout): PPangoContext{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_context".}
+proc pango_layout_set_attributes*(layout: PPangoLayout, attrs: PPangoAttrList){.
+    cdecl, dynlib: pangolib, importc: "pango_layout_set_attributes".}
+proc pango_layout_get_attributes*(layout: PPangoLayout): PPangoAttrList{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_attributes".}
+proc pango_layout_set_text*(layout: PPangoLayout, text: cstring, length: int32){.
+    cdecl, dynlib: pangolib, importc: "pango_layout_set_text".}
+proc pango_layout_get_text*(layout: PPangoLayout): cstring{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_text".}
+proc pango_layout_set_markup*(layout: PPangoLayout, markup: cstring,
+                              length: int32){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_set_markup".}
+proc pango_layout_set_markup_with_accel*(layout: PPangoLayout, markup: cstring,
+    length: int32, accel_marker: gunichar, accel_char: Pgunichar){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_markup_with_accel".}
+proc pango_layout_set_font_description*(layout: PPangoLayout,
+                                        desc: PPangoFontDescription){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_font_description".}
+proc pango_layout_set_width*(layout: PPangoLayout, width: int32){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_width".}
+proc pango_layout_get_width*(layout: PPangoLayout): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_width".}
+proc pango_layout_set_wrap*(layout: PPangoLayout, wrap: TPangoWrapMode){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_wrap".}
+proc pango_layout_get_wrap*(layout: PPangoLayout): TPangoWrapMode{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_wrap".}
+proc pango_layout_set_indent*(layout: PPangoLayout, indent: int32){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_indent".}
+proc pango_layout_get_indent*(layout: PPangoLayout): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_indent".}
+proc pango_layout_set_spacing*(layout: PPangoLayout, spacing: int32){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_spacing".}
+proc pango_layout_get_spacing*(layout: PPangoLayout): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_spacing".}
+proc pango_layout_set_justify*(layout: PPangoLayout, justify: gboolean){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_justify".}
+proc pango_layout_get_justify*(layout: PPangoLayout): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_justify".}
+proc pango_layout_set_alignment*(layout: PPangoLayout,
+                                 alignment: TPangoAlignment){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_alignment".}
+proc pango_layout_get_alignment*(layout: PPangoLayout): TPangoAlignment{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_alignment".}
+proc pango_layout_set_tabs*(layout: PPangoLayout, tabs: PPangoTabArray){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_set_tabs".}
+proc pango_layout_get_tabs*(layout: PPangoLayout): PPangoTabArray{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_tabs".}
+proc pango_layout_set_single_paragraph_mode*(layout: PPangoLayout,
+    setting: gboolean){.cdecl, dynlib: pangolib,
+                        importc: "pango_layout_set_single_paragraph_mode".}
+proc pango_layout_get_single_paragraph_mode*(layout: PPangoLayout): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_layout_get_single_paragraph_mode".}
+proc pango_layout_context_changed*(layout: PPangoLayout){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_context_changed".}
+proc pango_layout_get_log_attrs*(layout: PPangoLayout, attrs: var PPangoLogAttr,
+                                 n_attrs: Pgint){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_get_log_attrs".}
+proc pango_layout_index_to_pos*(layout: PPangoLayout, index: int32,
+                                pos: PPangoRectangle){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_index_to_pos".}
+proc pango_layout_get_cursor_pos*(layout: PPangoLayout, index: int32,
+                                  strong_pos: PPangoRectangle,
+                                  weak_pos: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_cursor_pos".}
+proc pango_layout_move_cursor_visually*(layout: PPangoLayout, strong: gboolean,
+                                        old_index: int32, old_trailing: int32,
+                                        direction: int32, new_index,
+                                        new_trailing: var int32){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_move_cursor_visually".}
+proc pango_layout_xy_to_index*(layout: PPangoLayout, x: int32, y: int32,
+                               index, trailing: var int32): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_layout_xy_to_index".}
+proc pango_layout_get_extents*(layout: PPangoLayout, ink_rect: PPangoRectangle,
+                               logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_extents".}
+proc pango_layout_get_pixel_extents*(layout: PPangoLayout,
+                                     ink_rect: PPangoRectangle,
+                                     logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_pixel_extents".}
+proc pango_layout_get_size*(layout: PPangoLayout, width: var int32,
+                            height: var int32){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_get_size".}
+proc pango_layout_get_pixel_size*(layout: PPangoLayout, width: var int32,
+                                  height: var int32){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_get_pixel_size".}
+proc pango_layout_get_line_count*(layout: PPangoLayout): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_line_count".}
+proc pango_layout_get_line*(layout: PPangoLayout, line: int32): PPangoLayoutLine{.
+    cdecl, dynlib: pangolib, importc: "pango_layout_get_line".}
+proc pango_layout_get_lines*(layout: PPangoLayout): PGSList{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_lines".}
+proc pango_layout_line_ref*(line: PPangoLayoutLine){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_line_ref".}
+proc pango_layout_line_unref*(line: PPangoLayoutLine){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_line_unref".}
+proc pango_layout_line_x_to_index*(line: PPangoLayoutLine, x_pos: int32,
+                                   index: var int32, trailing: var int32): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_layout_line_x_to_index".}
+proc pango_layout_line_index_to_x*(line: PPangoLayoutLine, index: int32,
+                                   trailing: gboolean, x_pos: var int32){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_line_index_to_x".}
+proc pango_layout_line_get_extents*(line: PPangoLayoutLine,
+                                    ink_rect: PPangoRectangle,
+                                    logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_line_get_extents".}
+proc pango_layout_line_get_pixel_extents*(layout_line: PPangoLayoutLine,
+    ink_rect: PPangoRectangle, logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_line_get_pixel_extents".}
+proc pango_layout_get_iter*(layout: PPangoLayout): PPangoLayoutIter{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_get_iter".}
+proc pango_layout_iter_free*(iter: PPangoLayoutIter){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_iter_free".}
+proc pango_layout_iter_get_index*(iter: PPangoLayoutIter): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_index".}
+proc pango_layout_iter_get_run*(iter: PPangoLayoutIter): PPangoLayoutRun{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_run".}
+proc pango_layout_iter_get_line*(iter: PPangoLayoutIter): PPangoLayoutLine{.
+    cdecl, dynlib: pangolib, importc: "pango_layout_iter_get_line".}
+proc pango_layout_iter_at_last_line*(iter: PPangoLayoutIter): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_at_last_line".}
+proc pango_layout_iter_next_char*(iter: PPangoLayoutIter): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_next_char".}
+proc pango_layout_iter_next_cluster*(iter: PPangoLayoutIter): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_next_cluster".}
+proc pango_layout_iter_next_run*(iter: PPangoLayoutIter): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_next_run".}
+proc pango_layout_iter_next_line*(iter: PPangoLayoutIter): gboolean{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_next_line".}
+proc pango_layout_iter_get_char_extents*(iter: PPangoLayoutIter,
+    logical_rect: PPangoRectangle){.cdecl, dynlib: pangolib, importc: "pango_layout_iter_get_char_extents".}
+proc pango_layout_iter_get_cluster_extents*(iter: PPangoLayoutIter,
+    ink_rect: PPangoRectangle, logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_cluster_extents".}
+proc pango_layout_iter_get_run_extents*(iter: PPangoLayoutIter,
+                                        ink_rect: PPangoRectangle,
+                                        logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_run_extents".}
+proc pango_layout_iter_get_line_extents*(iter: PPangoLayoutIter,
+    ink_rect: PPangoRectangle, logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_line_extents".}
+proc pango_layout_iter_get_line_yrange*(iter: PPangoLayoutIter, y0: var int32,
+                                        y1: var int32){.cdecl, dynlib: pangolib,
+    importc: "pango_layout_iter_get_line_yrange".}
+proc pango_layout_iter_get_layout_extents*(iter: PPangoLayoutIter,
+    ink_rect: PPangoRectangle, logical_rect: PPangoRectangle){.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_layout_extents".}
+proc pango_layout_iter_get_baseline*(iter: PPangoLayoutIter): int32{.cdecl,
+    dynlib: pangolib, importc: "pango_layout_iter_get_baseline".}
+proc PANGO_TYPE_TAB_ARRAY*(): GType
+proc pango_tab_array_new*(initial_size: gint, positions_in_pixels: gboolean): PPangoTabArray{.
+    cdecl, dynlib: pangolib, importc: "pango_tab_array_new".}
+proc pango_tab_array_get_type*(): GType{.cdecl, dynlib: pangolib,
+    importc: "pango_tab_array_get_type".}
+proc pango_tab_array_copy*(src: PPangoTabArray): PPangoTabArray{.cdecl,
+    dynlib: pangolib, importc: "pango_tab_array_copy".}
+proc pango_tab_array_free*(tab_array: PPangoTabArray){.cdecl, dynlib: pangolib,
+    importc: "pango_tab_array_free".}
+proc pango_tab_array_get_size*(tab_array: PPangoTabArray): gint{.cdecl,
+    dynlib: pangolib, importc: "pango_tab_array_get_size".}
+proc pango_tab_array_resize*(tab_array: PPangoTabArray, new_size: gint){.cdecl,
+    dynlib: pangolib, importc: "pango_tab_array_resize".}
+proc pango_tab_array_set_tab*(tab_array: PPangoTabArray, tab_index: gint,
+                              alignment: TPangoTabAlign, location: gint){.cdecl,
+    dynlib: pangolib, importc: "pango_tab_array_set_tab".}
+proc pango_tab_array_get_tab*(tab_array: PPangoTabArray, tab_index: gint,
+                              alignment: PPangoTabAlign, location: Pgint){.
+    cdecl, dynlib: pangolib, importc: "pango_tab_array_get_tab".}
+proc pango_tab_array_get_positions_in_pixels*(tab_array: PPangoTabArray): gboolean{.
+    cdecl, dynlib: pangolib, importc: "pango_tab_array_get_positions_in_pixels".}
+proc PANGO_ASCENT*(rect: TPangoRectangle): int32 =
+  result = - int(rect.y)
+
+proc PANGO_DESCENT*(rect: TPangoRectangle): int32 =
+  result = int(rect.y) + int(rect.height)
+
+proc PANGO_LBEARING*(rect: TPangoRectangle): int32 =
+  result = rect.x
+
+proc PANGO_RBEARING*(rect: TPangoRectangle): int32 =
+  result = (rect.x) + (rect.width)
+
+proc PANGO_TYPE_LANGUAGE*(): GType =
+  result = pango_language_get_type()
+
+proc pango_language_to_string*(language: PPangoLanguage): cstring =
+  result = cast[cstring](language)
+
+proc PANGO_PIXELS*(d: int): int =
+  if d >= 0:
+    result = (d + (PANGO_SCALE div 2)) div PANGO_SCALE
+  else:
+    result = (d - (PANGO_SCALE div 2)) div PANGO_SCALE
+
+proc PANGO_TYPE_COLOR*(): GType =
+  result = pango_color_get_type()
+
+proc PANGO_TYPE_ATTR_LIST*(): GType =
+  result = pango_attr_list_get_type()
+
+proc is_line_break*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_line_break) shr
+      bp_TPangoLogAttr_is_line_break
+
+proc set_is_line_break*(a: var TPangoLogAttr, `is_line_break`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_line_break` shl bp_TPangoLogAttr_is_line_break) and
+      bm_TPangoLogAttr_is_line_break)
+
+proc is_mandatory_break*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_mandatory_break) shr
+      bp_TPangoLogAttr_is_mandatory_break
+
+proc set_is_mandatory_break*(a: var TPangoLogAttr, `is_mandatory_break`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_mandatory_break` shl bp_TPangoLogAttr_is_mandatory_break) and
+      bm_TPangoLogAttr_is_mandatory_break)
+
+proc is_char_break*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_char_break) shr
+      bp_TPangoLogAttr_is_char_break
+
+proc set_is_char_break*(a: var TPangoLogAttr, `is_char_break`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_char_break` shl bp_TPangoLogAttr_is_char_break) and
+      bm_TPangoLogAttr_is_char_break)
+
+proc is_white*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_white) shr
+      bp_TPangoLogAttr_is_white
+
+proc set_is_white*(a: var TPangoLogAttr, `is_white`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_white` shl bp_TPangoLogAttr_is_white) and
+      bm_TPangoLogAttr_is_white)
+
+proc is_cursor_position*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_cursor_position) shr
+      bp_TPangoLogAttr_is_cursor_position
+
+proc set_is_cursor_position*(a: var TPangoLogAttr, `is_cursor_position`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_cursor_position` shl bp_TPangoLogAttr_is_cursor_position) and
+      bm_TPangoLogAttr_is_cursor_position)
+
+proc is_word_start*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_word_start) shr
+      bp_TPangoLogAttr_is_word_start
+
+proc set_is_word_start*(a: var TPangoLogAttr, `is_word_start`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_word_start` shl bp_TPangoLogAttr_is_word_start) and
+      bm_TPangoLogAttr_is_word_start)
+
+proc is_word_end*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_word_end) shr
+      bp_TPangoLogAttr_is_word_end
+
+proc set_is_word_end*(a: var TPangoLogAttr, `is_word_end`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_word_end` shl bp_TPangoLogAttr_is_word_end) and
+      bm_TPangoLogAttr_is_word_end)
+
+proc is_sentence_boundary*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_boundary) shr
+      bp_TPangoLogAttr_is_sentence_boundary
+
+proc set_is_sentence_boundary*(a: var TPangoLogAttr,
+                               `is_sentence_boundary`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_sentence_boundary` shl bp_TPangoLogAttr_is_sentence_boundary) and
+      bm_TPangoLogAttr_is_sentence_boundary)
+
+proc is_sentence_start*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_start) shr
+      bp_TPangoLogAttr_is_sentence_start
+
+proc set_is_sentence_start*(a: var TPangoLogAttr, `is_sentence_start`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_sentence_start` shl bp_TPangoLogAttr_is_sentence_start) and
+      bm_TPangoLogAttr_is_sentence_start)
+
+proc is_sentence_end*(a: var TPangoLogAttr): guint =
+  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_end) shr
+      bp_TPangoLogAttr_is_sentence_end
+
+proc set_is_sentence_end*(a: var TPangoLogAttr, `is_sentence_end`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_sentence_end` shl bp_TPangoLogAttr_is_sentence_end) and
+      bm_TPangoLogAttr_is_sentence_end)
+
+proc PANGO_TYPE_CONTEXT*(): GType =
+  result = pango_context_get_type()
+
+proc PANGO_CONTEXT*(anObject: pointer): PPangoContext =
+  result = cast[PPangoContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, PANGO_TYPE_CONTEXT()))
+
+proc PANGO_CONTEXT_CLASS*(klass: pointer): PPangoContextClass =
+  result = cast[PPangoContextClass](G_TYPE_CHECK_CLASS_CAST(klass, PANGO_TYPE_CONTEXT()))
+
+proc PANGO_IS_CONTEXT*(anObject: pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_CONTEXT())
+
+proc PANGO_IS_CONTEXT_CLASS*(klass: pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_CONTEXT())
+
+proc PANGO_CONTEXT_GET_CLASS*(obj: PPangoContext): PPangoContextClass =
+  result = cast[PPangoContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, PANGO_TYPE_CONTEXT()))
+
+proc PANGO_TYPE_FONTSET*(): GType =
+  result = pango_fontset_get_type()
+
+proc PANGO_FONTSET*(anObject: pointer): PPangoFontset =
+  result = cast[PPangoFontset](G_TYPE_CHECK_INSTANCE_CAST(anObject, PANGO_TYPE_FONTSET()))
+
+proc PANGO_IS_FONTSET*(anObject: pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONTSET())
+
+proc PANGO_FONTSET_CLASS*(klass: pointer): PPangoFontsetClass =
+  result = cast[PPangoFontsetClass](G_TYPE_CHECK_CLASS_CAST(klass, PANGO_TYPE_FONTSET()))
+
+proc PANGO_IS_FONTSET_CLASS*(klass: pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_FONTSET())
+
+proc PANGO_FONTSET_GET_CLASS*(obj: PPangoFontset): PPangoFontsetClass =
+  result = cast[PPangoFontsetClass](G_TYPE_INSTANCE_GET_CLASS(obj, PANGO_TYPE_FONTSET()))
+
+proc pango_fontset_simple_get_type(): GType {.importc, cdecl, dynlib: pangolib.}
+
+proc PANGO_TYPE_FONTSET_SIMPLE*(): GType =
+  result = pango_fontset_simple_get_type()
+
+proc PANGO_FONTSET_SIMPLE*(anObject: pointer): PPangoFontsetSimple =
+  result = cast[PPangoFontsetSimple](G_TYPE_CHECK_INSTANCE_CAST(anObject,
+      PANGO_TYPE_FONTSET_SIMPLE()))
+
+proc PANGO_IS_FONTSET_SIMPLE*(anObject: pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONTSET_SIMPLE())
+
+proc PANGO_TYPE_FONT_DESCRIPTION*(): GType =
+  result = pango_font_description_get_type()
+
+proc PANGO_TYPE_FONT_METRICS*(): GType =
+  result = pango_font_metrics_get_type()
+
+proc PANGO_TYPE_FONT_FAMILY*(): GType =
+  result = pango_font_family_get_type()
+
+proc PANGO_FONT_FAMILY*(anObject: pointer): PPangoFontFamily =
+  result = cast[PPangoFontFamily](G_TYPE_CHECK_INSTANCE_CAST(anObject,
+      PANGO_TYPE_FONT_FAMILY()))
+
+proc PANGO_IS_FONT_FAMILY*(anObject: Pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONT_FAMILY())
+
+proc PANGO_FONT_FAMILY_CLASS*(klass: Pointer): PPangoFontFamilyClass =
+  result = cast[PPangoFontFamilyClass](G_TYPE_CHECK_CLASS_CAST(klass,
+      PANGO_TYPE_FONT_FAMILY()))
+
+proc PANGO_IS_FONT_FAMILY_CLASS*(klass: Pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_FONT_FAMILY())
+
+proc PANGO_FONT_FAMILY_GET_CLASS*(obj: PPangoFontFamily): PPangoFontFamilyClass =
+  result = cast[PPangoFontFamilyClass](G_TYPE_INSTANCE_GET_CLASS(obj,
+      PANGO_TYPE_FONT_FAMILY()))
+
+proc PANGO_TYPE_FONT_FACE*(): GType =
+  result = pango_font_face_get_type()
+
+proc PANGO_FONT_FACE*(anObject: Pointer): PPangoFontFace =
+  result = cast[PPangoFontFace](G_TYPE_CHECK_INSTANCE_CAST(anObject,
+      PANGO_TYPE_FONT_FACE()))
+
+proc PANGO_IS_FONT_FACE*(anObject: Pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONT_FACE())
+
+proc PANGO_FONT_FACE_CLASS*(klass: Pointer): PPangoFontFaceClass =
+  result = cast[PPangoFontFaceClass](G_TYPE_CHECK_CLASS_CAST(klass,
+      PANGO_TYPE_FONT_FACE()))
+
+proc PANGO_IS_FONT_FACE_CLASS*(klass: Pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_FONT_FACE())
+
+proc PANGO_FONT_FACE_GET_CLASS*(obj: Pointer): PPangoFontFaceClass =
+  result = cast[PPangoFontFaceClass](G_TYPE_INSTANCE_GET_CLASS(obj,
+      PANGO_TYPE_FONT_FACE()))
+
+proc PANGO_TYPE_FONT*(): GType =
+  result = pango_font_get_type()
+
+proc PANGO_FONT*(anObject: Pointer): PPangoFont =
+  result = cast[PPangoFont](G_TYPE_CHECK_INSTANCE_CAST(anObject, PANGO_TYPE_FONT()))
+
+proc PANGO_IS_FONT*(anObject: Pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONT())
+
+proc PANGO_FONT_CLASS*(klass: Pointer): PPangoFontClass =
+  result = cast[PPangoFontClass](G_TYPE_CHECK_CLASS_CAST(klass, PANGO_TYPE_FONT()))
+
+proc PANGO_IS_FONT_CLASS*(klass: Pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_FONT())
+
+proc PANGO_FONT_GET_CLASS*(obj: PPangoFont): PPangoFontClass =
+  result = cast[PPangoFontClass](G_TYPE_INSTANCE_GET_CLASS(obj, PANGO_TYPE_FONT()))
+
+proc PANGO_TYPE_FONT_MAP*(): GType =
+  result = pango_font_map_get_type()
+
+proc PANGO_FONT_MAP*(anObject: pointer): PPangoFontmap =
+  result = cast[PPangoFontmap](G_TYPE_CHECK_INSTANCE_CAST(anObject,
+      PANGO_TYPE_FONT_MAP()))
+
+proc PANGO_IS_FONT_MAP*(anObject: pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_FONT_MAP())
+
+proc PANGO_FONT_MAP_CLASS*(klass: pointer): PPangoFontMapClass =
+  result = cast[PPangoFontMapClass](G_TYPE_CHECK_CLASS_CAST(klass, PANGO_TYPE_FONT_MAP()))
+
+proc PANGO_IS_FONT_MAP_CLASS*(klass: pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_FONT_MAP())
+
+proc PANGO_FONT_MAP_GET_CLASS*(obj: PPangoFontMap): PPangoFontMapClass =
+  result = cast[PPangoFontMapClass](G_TYPE_INSTANCE_GET_CLASS(obj, PANGO_TYPE_FONT_MAP()))
+
+proc is_cluster_start*(a: var TPangoGlyphVisAttr): guint =
+  result = (a.flag0 and bm_TPangoGlyphVisAttr_is_cluster_start) shr
+      bp_TPangoGlyphVisAttr_is_cluster_start
+
+proc set_is_cluster_start*(a: var TPangoGlyphVisAttr, `is_cluster_start`: guint) =
+  a.flag0 = a.flag0 or
+      (int16(`is_cluster_start` shl bp_TPangoGlyphVisAttr_is_cluster_start) and
+      bm_TPangoGlyphVisAttr_is_cluster_start)
+
+proc PANGO_TYPE_GLYPH_STRING*(): GType =
+  result = pango_glyph_string_get_type()
+
+proc PANGO_TYPE_LAYOUT*(): GType =
+  result = pango_layout_get_type()
+
+proc PANGO_LAYOUT*(anObject: pointer): PPangoLayout =
+  result = cast[PPangoLayout](G_TYPE_CHECK_INSTANCE_CAST(anObject, PANGO_TYPE_LAYOUT()))
+
+proc PANGO_LAYOUT_CLASS*(klass: pointer): PPangoLayoutClass =
+  result = cast[PPangoLayoutClass](G_TYPE_CHECK_CLASS_CAST(klass, PANGO_TYPE_LAYOUT()))
+
+proc PANGO_IS_LAYOUT*(anObject: pointer): bool =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, PANGO_TYPE_LAYOUT())
+
+proc PANGO_IS_LAYOUT_CLASS*(klass: pointer): bool =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, PANGO_TYPE_LAYOUT())
+
+proc PANGO_LAYOUT_GET_CLASS*(obj: PPangoLayout): PPangoLayoutClass =
+  result = cast[PPangoLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, PANGO_TYPE_LAYOUT()))
+
+proc PANGO_TYPE_TAB_ARRAY*(): GType =
+  result = pango_tab_array_get_type()