summary refs log tree commit diff stats
path: root/lib/wrappers/gtk/atk.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/gtk/atk.nim')
-rwxr-xr-xlib/wrappers/gtk/atk.nim1305
1 files changed, 1305 insertions, 0 deletions
diff --git a/lib/wrappers/gtk/atk.nim b/lib/wrappers/gtk/atk.nim
new file mode 100755
index 000000000..14847fdb6
--- /dev/null
+++ b/lib/wrappers/gtk/atk.nim
@@ -0,0 +1,1305 @@
+{.deadCodeElim: on.}
+import 
+  glib2
+
+when defined(windows): 
+  const 
+    lib = "libatk-1.0-0.dll"
+else: 
+  const 
+    lib = "libatk-1.0.so"
+type 
+  PImplementor* = pointer
+  PAction* = pointer
+  PComponent* = pointer
+  PDocument* = pointer
+  PEditableText* = pointer
+  PHypertext* = pointer
+  PImage* = pointer
+  PSelection* = pointer
+  PStreamableContent* = pointer
+  PTable* = pointer
+  PText* = pointer
+  PValue* = pointer
+  PRelationSet* = ptr TRelationSet
+  PStateSet* = ptr TStateSet
+  PAttributeSet* = ptr TAttributeSet
+  PCoordType* = ptr TCoordType
+  TCoordType* = enum 
+    XY_SCREEN, XY_WINDOW
+  PRole* = ptr TRole
+  TRole* = enum 
+    ROLE_INVALID, ROLE_ACCEL_LABEL, ROLE_ALERT, ROLE_ANIMATION, ROLE_ARROW, 
+    ROLE_CALENDAR, ROLE_CANVAS, ROLE_CHECK_BOX, ROLE_CHECK_MENU_ITEM, 
+    ROLE_COLOR_CHOOSER, ROLE_COLUMN_HEADER, ROLE_COMBO_BOX, ROLE_DATE_EDITOR, 
+    ROLE_DESKTOP_ICON, ROLE_DESKTOP_FRAME, ROLE_DIAL, ROLE_DIALOG, 
+    ROLE_DIRECTORY_PANE, ROLE_DRAWING_AREA, ROLE_FILE_CHOOSER, ROLE_FILLER, 
+    ROLE_FONT_CHOOSER, ROLE_FRAME, ROLE_GLASS_PANE, ROLE_HTML_CONTAINER, 
+    ROLE_ICON, ROLE_IMAGE, ROLE_INTERNAL_FRAME, ROLE_LABEL, ROLE_LAYERED_PANE, 
+    ROLE_LIST, ROLE_LIST_ITEM, ROLE_MENU, ROLE_MENU_BAR, ROLE_MENU_ITEM, 
+    ROLE_OPTION_PANE, ROLE_PAGE_TAB, ROLE_PAGE_TAB_LIST, ROLE_PANEL, 
+    ROLE_PASSWORD_TEXT, ROLE_POPUP_MENU, ROLE_PROGRESS_BAR, ROLE_PUSH_BUTTON, 
+    ROLE_RADIO_BUTTON, ROLE_RADIO_MENU_ITEM, ROLE_ROOT_PANE, ROLE_ROW_HEADER, 
+    ROLE_SCROLL_BAR, ROLE_SCROLL_PANE, ROLE_SEPARATOR, ROLE_SLIDER, 
+    ROLE_SPLIT_PANE, ROLE_SPIN_BUTTON, ROLE_STATUSBAR, ROLE_TABLE, 
+    ROLE_TABLE_CELL, ROLE_TABLE_COLUMN_HEADER, ROLE_TABLE_ROW_HEADER, 
+    ROLE_TEAR_OFF_MENU_ITEM, ROLE_TERMINAL, ROLE_TEXT, ROLE_TOGGLE_BUTTON, 
+    ROLE_TOOL_BAR, ROLE_TOOL_TIP, ROLE_TREE, ROLE_TREE_TABLE, ROLE_UNKNOWN, 
+    ROLE_VIEWPORT, ROLE_WINDOW, ROLE_LAST_DEFINED
+  PLayer* = ptr TLayer
+  TLayer* = enum 
+    LAYER_INVALID, LAYER_BACKGROUND, LAYER_CANVAS, LAYER_WIDGET, LAYER_MDI, 
+    LAYER_POPUP, LAYER_OVERLAY
+  PPropertyValues* = ptr TPropertyValues
+  TPropertyValues*{.final, pure.} = object 
+    property_name*: cstring
+    old_value*: TGValue
+    new_value*: TGValue
+
+  TFunction* = proc (data: gpointer): gboolean{.cdecl.}
+  PObject* = ptr TObject
+  PPAtkObject* = ptr PObject
+  TObject* = object of TGObject
+    description*: cstring
+    name*: cstring
+    accessible_parent*: PObject
+    role*: TRole
+    relation_set*: PRelationSet
+    layer*: TLayer
+
+  TPropertyChangeHandler* = proc (para1: PObject, para2: PPropertyValues){.cdecl.}
+  PObjectClass* = ptr TObjectClass
+  TObjectClass* = object of TGObjectClass
+    get_name*: proc (accessible: PObject): cstring{.cdecl.}
+    get_description*: proc (accessible: PObject): cstring{.cdecl.}
+    get_parent*: proc (accessible: PObject): PObject{.cdecl.}
+    get_n_children*: proc (accessible: PObject): gint{.cdecl.}
+    ref_child*: proc (accessible: PObject, i: gint): PObject{.cdecl.}
+    get_index_in_parent*: proc (accessible: PObject): gint{.cdecl.}
+    ref_relation_set*: proc (accessible: PObject): PRelationSet{.cdecl.}
+    get_role*: proc (accessible: PObject): TRole{.cdecl.}
+    get_layer*: proc (accessible: PObject): TLayer{.cdecl.}
+    get_mdi_zorder*: proc (accessible: PObject): gint{.cdecl.}
+    ref_state_set*: proc (accessible: PObject): PStateSet{.cdecl.}
+    set_name*: proc (accessible: PObject, name: cstring){.cdecl.}
+    set_description*: proc (accessible: PObject, description: cstring){.cdecl.}
+    set_parent*: proc (accessible: PObject, parent: PObject){.cdecl.}
+    set_role*: proc (accessible: PObject, role: TRole){.cdecl.}
+    connect_property_change_handler*: proc (accessible: PObject, 
+        handler: TPropertyChangeHandler): guint{.cdecl.}
+    remove_property_change_handler*: proc (accessible: PObject, 
+        handler_id: guint){.cdecl.}
+    initialize*: proc (accessible: PObject, data: gpointer){.cdecl.}
+    children_changed*: proc (accessible: PObject, change_index: guint, 
+                             changed_child: gpointer){.cdecl.}
+    focus_event*: proc (accessible: PObject, focus_in: gboolean){.cdecl.}
+    property_change*: proc (accessible: PObject, values: PPropertyValues){.cdecl.}
+    state_change*: proc (accessible: PObject, name: cstring, state_set: gboolean){.
+        cdecl.}
+    visible_data_changed*: proc (accessible: PObject){.cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+    pad3*: TFunction
+    pad4*: TFunction
+
+  PImplementorIface* = ptr TImplementorIface
+  TImplementorIface* = object of TGTypeInterface
+    ref_accessible*: proc (implementor: PImplementor): PObject{.cdecl.}
+
+  PActionIface* = ptr TActionIface
+  TActionIface* = object of TGTypeInterface
+    do_action*: proc (action: PAction, i: gint): gboolean{.cdecl.}
+    get_n_actions*: proc (action: PAction): gint{.cdecl.}
+    get_description*: proc (action: PAction, i: gint): cstring{.cdecl.}
+    get_name*: proc (action: PAction, i: gint): cstring{.cdecl.}
+    get_keybinding*: proc (action: PAction, i: gint): cstring{.cdecl.}
+    set_description*: proc (action: PAction, i: gint, desc: cstring): gboolean{.
+        cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+
+  TFocusHandler* = proc (para1: PObject, para2: gboolean){.cdecl.}
+  PComponentIface* = ptr TComponentIface
+  TComponentIface* = object of TGTypeInterface
+    add_focus_handler*: proc (component: PComponent, handler: TFocusHandler): guint{.
+        cdecl.}
+    contains*: proc (component: PComponent, x: gint, y: gint, 
+                     coord_type: TCoordType): gboolean{.cdecl.}
+    ref_accessible_at_point*: proc (component: PComponent, x: gint, y: gint, 
+                                    coord_type: TCoordType): PObject{.cdecl.}
+    get_extents*: proc (component: PComponent, x: Pgint, y: Pgint, width: Pgint, 
+                        height: Pgint, coord_type: TCoordType){.cdecl.}
+    get_position*: proc (component: PComponent, x: Pgint, y: Pgint, 
+                         coord_type: TCoordType){.cdecl.}
+    get_size*: proc (component: PComponent, width: Pgint, height: Pgint){.cdecl.}
+    grab_focus*: proc (component: PComponent): gboolean{.cdecl.}
+    remove_focus_handler*: proc (component: PComponent, handler_id: guint){.
+        cdecl.}
+    set_extents*: proc (component: PComponent, x: gint, y: gint, width: gint, 
+                        height: gint, coord_type: TCoordType): gboolean{.cdecl.}
+    set_position*: proc (component: PComponent, x: gint, y: gint, 
+                         coord_type: TCoordType): gboolean{.cdecl.}
+    set_size*: proc (component: PComponent, width: gint, height: gint): gboolean{.
+        cdecl.}
+    get_layer*: proc (component: PComponent): TLayer{.cdecl.}
+    get_mdi_zorder*: proc (component: PComponent): gint{.cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+
+  PDocumentIface* = ptr TDocumentIface
+  TDocumentIface* = object of TGTypeInterface
+    get_document_type*: proc (document: PDocument): cstring{.cdecl.}
+    get_document*: proc (document: PDocument): gpointer{.cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+    pad3*: TFunction
+    pad4*: TFunction
+    pad5*: TFunction
+    pad6*: TFunction
+    pad7*: TFunction
+    pad8*: TFunction
+
+  PEditableTextIface* = ptr TEditableTextIface
+  TEditableTextIface* = object of TGTypeInterface
+    set_run_attributes*: proc (text: PEditableText, attrib_set: PAttributeSet, 
+                               start_offset: gint, end_offset: gint): gboolean{.
+        cdecl.}
+    set_text_contents*: proc (text: PEditableText, `string`: cstring){.cdecl.}
+    insert_text*: proc (text: PEditableText, `string`: cstring, length: gint, 
+                        position: Pgint){.cdecl.}
+    copy_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.
+        cdecl.}
+    cut_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.cdecl.}
+    delete_text*: proc (text: PEditableText, start_pos: gint, end_pos: gint){.
+        cdecl.}
+    paste_text*: proc (text: PEditableText, position: gint){.cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+
+  PGObjectAccessible* = ptr TGObjectAccessible
+  TGObjectAccessible* = object of TObject
+  PGObjectAccessibleClass* = ptr TGObjectAccessibleClass
+  TGObjectAccessibleClass* = object of TObjectClass
+    pad5*: TFunction
+    pad6*: TFunction
+
+  PHyperlink* = ptr THyperlink
+  THyperlink* = object of TGObject
+  PHyperlinkClass* = ptr THyperlinkClass
+  THyperlinkClass* = object of TGObjectClass
+    get_uri*: proc (link: PHyperlink, i: gint): cstring{.cdecl.}
+    get_object*: proc (link: PHyperlink, i: gint): PObject{.cdecl.}
+    get_end_index*: proc (link: PHyperlink): gint{.cdecl.}
+    get_start_index*: proc (link: PHyperlink): gint{.cdecl.}
+    is_valid*: proc (link: PHyperlink): gboolean{.cdecl.}
+    get_n_anchors*: proc (link: PHyperlink): gint{.cdecl.}
+    pad7*: TFunction
+    pad8*: TFunction
+    pad9*: TFunction
+    pad10*: TFunction
+
+  PHypertextIface* = ptr THypertextIface
+  THypertextIface* = object of TGTypeInterface
+    get_link*: proc (hypertext: PHypertext, link_index: gint): PHyperlink{.cdecl.}
+    get_n_links*: proc (hypertext: PHypertext): gint{.cdecl.}
+    get_link_index*: proc (hypertext: PHypertext, char_index: gint): gint{.cdecl.}
+    pad11*: TFunction
+    pad12*: TFunction
+    pad13*: TFunction
+    pad14*: TFunction
+
+  PImageIface* = ptr TImageIface
+  TImageIface* = object of TGTypeInterface
+    get_image_position*: proc (image: PImage, x: Pgint, y: Pgint, 
+                               coord_type: TCoordType){.cdecl.}
+    get_image_description*: proc (image: PImage): cstring{.cdecl.}
+    get_image_size*: proc (image: PImage, width: Pgint, height: Pgint){.cdecl.}
+    set_image_description*: proc (image: PImage, description: cstring): gboolean{.
+        cdecl.}
+    pad15*: TFunction
+    pad16*: TFunction
+
+  PObjectFactory* = ptr TObjectFactory
+  TObjectFactory* = object of TGObject
+  PObjectFactoryClass* = ptr TObjectFactoryClass
+  TObjectFactoryClass* = object of TGObjectClass
+    create_accessible*: proc (obj: PGObject): PObject{.cdecl.}
+    invalidate*: proc (factory: PObjectFactory){.cdecl.}
+    get_accessible_type*: proc (): GType{.cdecl.}
+    pad17*: TFunction
+    pad18*: TFunction
+
+  PRegistry* = ptr TRegistry
+  TRegistry* = object of TGObject
+    factory_type_registry*: PGHashTable
+    factory_singleton_cache*: PGHashTable
+
+  PRegistryClass* = ptr TRegistryClass
+  TRegistryClass* = object of TGObjectClass
+  PRelationType* = ptr TRelationType
+  TRelationType* = enum 
+    RELATION_NULL, RELATION_CONTROLLED_BY, RELATION_CONTROLLER_FOR, 
+    RELATION_LABEL_FOR, RELATION_LABELLED_BY, RELATION_MEMBER_OF, 
+    RELATION_NODE_CHILD_OF, RELATION_LAST_DEFINED
+  PRelation* = ptr TRelation
+  PGPtrArray = pointer
+  TRelation* = object of TGObject
+    target*: PGPtrArray
+    relationship*: TRelationType
+
+  PRelationClass* = ptr TRelationClass
+  TRelationClass* = object of TGObjectClass
+  TRelationSet* = object of TGObject
+    relations*: PGPtrArray
+
+  PRelationSetClass* = ptr TRelationSetClass
+  TRelationSetClass* = object of TGObjectClass
+    pad19*: TFunction
+    pad20*: TFunction
+
+  PSelectionIface* = ptr TSelectionIface
+  TSelectionIface* = object of TGTypeInterface
+    add_selection*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
+    clear_selection*: proc (selection: PSelection): gboolean{.cdecl.}
+    ref_selection*: proc (selection: PSelection, i: gint): PObject{.cdecl.}
+    get_selection_count*: proc (selection: PSelection): gint{.cdecl.}
+    is_child_selected*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
+    remove_selection*: proc (selection: PSelection, i: gint): gboolean{.cdecl.}
+    select_all_selection*: proc (selection: PSelection): gboolean{.cdecl.}
+    selection_changed*: proc (selection: PSelection){.cdecl.}
+    pad1*: TFunction
+    pad2*: TFunction
+
+  PStateType* = ptr TStateType
+  TStateType* = enum 
+    STATE_INVALID, STATE_ACTIVE, STATE_ARMED, STATE_BUSY, STATE_CHECKED, 
+    STATE_DEFUNCT, STATE_EDITABLE, STATE_ENABLED, STATE_EXPANDABLE, 
+    STATE_EXPANDED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_HORIZONTAL, 
+    STATE_ICONIFIED, STATE_MODAL, STATE_MULTI_LINE, STATE_MULTISELECTABLE, 
+    STATE_OPAQUE, STATE_PRESSED, STATE_RESIZABLE, STATE_SELECTABLE, 
+    STATE_SELECTED, STATE_SENSITIVE, STATE_SHOWING, STATE_SINGLE_LINE, 
+    STATE_STALE, STATE_TRANSIENT, STATE_VERTICAL, STATE_VISIBLE, 
+    STATE_LAST_DEFINED
+  PState* = ptr TState
+  TState* = guint64
+  TStateSet* = object of TGObject
+  PStateSetClass* = ptr TStateSetClass
+  TStateSetClass* = object of TGObjectClass
+  PStreamableContentIface* = ptr TStreamableContentIface
+  TStreamableContentIface* = object of TGTypeInterface
+    get_n_mime_types*: proc (streamable: PStreamableContent): gint{.cdecl.}
+    get_mime_type*: proc (streamable: PStreamableContent, i: gint): cstring{.
+        cdecl.}
+    get_stream*: proc (streamable: PStreamableContent, mime_type: cstring): PGIOChannel{.
+        cdecl.}
+    pad21*: TFunction
+    pad22*: TFunction
+    pad23*: TFunction
+    pad24*: TFunction
+
+  PTableIface* = ptr TTableIface
+  TTableIface* = object of TGTypeInterface
+    ref_at*: proc (table: PTable, row: gint, column: gint): PObject{.cdecl.}
+    get_index_at*: proc (table: PTable, row: gint, column: gint): gint{.cdecl.}
+    get_column_at_index*: proc (table: PTable, index: gint): gint{.cdecl.}
+    get_row_at_index*: proc (table: PTable, index: gint): gint{.cdecl.}
+    get_n_columns*: proc (table: PTable): gint{.cdecl.}
+    get_n_rows*: proc (table: PTable): gint{.cdecl.}
+    get_column_extent_at*: proc (table: PTable, row: gint, column: gint): gint{.
+        cdecl.}
+    get_row_extent_at*: proc (table: PTable, row: gint, column: gint): gint{.
+        cdecl.}
+    get_caption*: proc (table: PTable): PObject{.cdecl.}
+    get_column_description*: proc (table: PTable, column: gint): cstring{.cdecl.}
+    get_column_header*: proc (table: PTable, column: gint): PObject{.cdecl.}
+    get_row_description*: proc (table: PTable, row: gint): cstring{.cdecl.}
+    get_row_header*: proc (table: PTable, row: gint): PObject{.cdecl.}
+    get_summary*: proc (table: PTable): PObject{.cdecl.}
+    set_caption*: proc (table: PTable, caption: PObject){.cdecl.}
+    set_column_description*: proc (table: PTable, column: gint, 
+                                   description: cstring){.cdecl.}
+    set_column_header*: proc (table: PTable, column: gint, header: PObject){.
+        cdecl.}
+    set_row_description*: proc (table: PTable, row: gint, description: cstring){.
+        cdecl.}
+    set_row_header*: proc (table: PTable, row: gint, header: PObject){.cdecl.}
+    set_summary*: proc (table: PTable, accessible: PObject){.cdecl.}
+    get_selected_columns*: proc (table: PTable, selected: PPgint): gint{.cdecl.}
+    get_selected_rows*: proc (table: PTable, selected: PPgint): gint{.cdecl.}
+    is_column_selected*: proc (table: PTable, column: gint): gboolean{.cdecl.}
+    is_row_selected*: proc (table: PTable, row: gint): gboolean{.cdecl.}
+    is_selected*: proc (table: PTable, row: gint, column: gint): gboolean{.cdecl.}
+    add_row_selection*: proc (table: PTable, row: gint): gboolean{.cdecl.}
+    remove_row_selection*: proc (table: PTable, row: gint): gboolean{.cdecl.}
+    add_column_selection*: proc (table: PTable, column: gint): gboolean{.cdecl.}
+    remove_column_selection*: proc (table: PTable, column: gint): gboolean{.
+        cdecl.}
+    row_inserted*: proc (table: PTable, row: gint, num_inserted: gint){.cdecl.}
+    column_inserted*: proc (table: PTable, column: gint, num_inserted: gint){.
+        cdecl.}
+    row_deleted*: proc (table: PTable, row: gint, num_deleted: gint){.cdecl.}
+    column_deleted*: proc (table: PTable, column: gint, num_deleted: gint){.
+        cdecl.}
+    row_reordered*: proc (table: PTable){.cdecl.}
+    column_reordered*: proc (table: PTable){.cdecl.}
+    model_changed*: proc (table: PTable){.cdecl.}
+    pad25*: TFunction
+    pad26*: TFunction
+    pad27*: TFunction
+    pad28*: TFunction
+
+  TAttributeSet* = TGSList
+  PAttribute* = ptr TAttribute
+  TAttribute*{.final, pure.} = object 
+    name*: cstring
+    value*: cstring
+
+  PTextAttribute* = ptr TTextAttribute
+  TTextAttribute* = enum 
+    TEXT_ATTR_INVALID, TEXT_ATTR_LEFT_MARGIN, TEXT_ATTR_RIGHT_MARGIN, 
+    TEXT_ATTR_INDENT, TEXT_ATTR_INVISIBLE, TEXT_ATTR_EDITABLE, 
+    TEXT_ATTR_PIXELS_ABOVE_LINES, TEXT_ATTR_PIXELS_BELOW_LINES, 
+    TEXT_ATTR_PIXELS_INSIDE_WRAP, TEXT_ATTR_BG_FULL_HEIGHT, TEXT_ATTR_RISE, 
+    TEXT_ATTR_UNDERLINE, TEXT_ATTR_STRIKETHROUGH, TEXT_ATTR_SIZE, 
+    TEXT_ATTR_SCALE, TEXT_ATTR_WEIGHT, TEXT_ATTR_LANGUAGE, 
+    TEXT_ATTR_FAMILY_NAME, TEXT_ATTR_BG_COLOR, TEXT_ATTR_FG_COLOR, 
+    TEXT_ATTR_BG_STIPPLE, TEXT_ATTR_FG_STIPPLE, TEXT_ATTR_WRAP_MODE, 
+    TEXT_ATTR_DIRECTION, TEXT_ATTR_JUSTIFICATION, TEXT_ATTR_STRETCH, 
+    TEXT_ATTR_VARIANT, TEXT_ATTR_STYLE, TEXT_ATTR_LAST_DEFINED
+  PTextBoundary* = ptr TTextBoundary
+  TTextBoundary* = enum 
+    TEXT_BOUNDARY_CHAR, TEXT_BOUNDARY_WORD_START, TEXT_BOUNDARY_WORD_END, 
+    TEXT_BOUNDARY_SENTENCE_START, TEXT_BOUNDARY_SENTENCE_END, 
+    TEXT_BOUNDARY_LINE_START, TEXT_BOUNDARY_LINE_END
+  PTextIface* = ptr TTextIface
+  TTextIface* = object of TGTypeInterface
+    get_text*: proc (text: PText, start_offset: gint, end_offset: gint): cstring{.
+        cdecl.}
+    get_text_after_offset*: proc (text: PText, offset: gint, 
+                                  boundary_type: TTextBoundary, 
+                                  start_offset: Pgint, end_offset: Pgint): cstring{.
+        cdecl.}
+    get_text_at_offset*: proc (text: PText, offset: gint, 
+                               boundary_type: TTextBoundary, 
+                               start_offset: Pgint, end_offset: Pgint): cstring{.
+        cdecl.}
+    get_character_at_offset*: proc (text: PText, offset: gint): gunichar{.cdecl.}
+    get_text_before_offset*: proc (text: PText, offset: gint, 
+                                   boundary_type: TTextBoundary, 
+                                   start_offset: Pgint, end_offset: Pgint): cstring{.
+        cdecl.}
+    get_caret_offset*: proc (text: PText): gint{.cdecl.}
+    get_run_attributes*: proc (text: PText, offset: gint, start_offset: Pgint, 
+                               end_offset: Pgint): PAttributeSet{.cdecl.}
+    get_default_attributes*: proc (text: PText): PAttributeSet{.cdecl.}
+    get_character_extents*: proc (text: PText, offset: gint, x: Pgint, y: Pgint, 
+                                  width: Pgint, height: Pgint, 
+                                  coords: TCoordType){.cdecl.}
+    get_character_count*: proc (text: PText): gint{.cdecl.}
+    get_offset_at_point*: proc (text: PText, x: gint, y: gint, 
+                                coords: TCoordType): gint{.cdecl.}
+    get_n_selections*: proc (text: PText): gint{.cdecl.}
+    get_selection*: proc (text: PText, selection_num: gint, start_offset: Pgint, 
+                          end_offset: Pgint): cstring{.cdecl.}
+    add_selection*: proc (text: PText, start_offset: gint, end_offset: gint): gboolean{.
+        cdecl.}
+    remove_selection*: proc (text: PText, selection_num: gint): gboolean{.cdecl.}
+    set_selection*: proc (text: PText, selection_num: gint, start_offset: gint, 
+                          end_offset: gint): gboolean{.cdecl.}
+    set_caret_offset*: proc (text: PText, offset: gint): gboolean{.cdecl.}
+    text_changed*: proc (text: PText, position: gint, length: gint){.cdecl.}
+    text_caret_moved*: proc (text: PText, location: gint){.cdecl.}
+    text_selection_changed*: proc (text: PText){.cdecl.}
+    pad29*: TFunction
+    pad30*: TFunction
+    pad31*: TFunction
+    pad32*: TFunction
+
+  TEventListener* = proc (para1: PObject){.cdecl.}
+  TEventListenerInitProc* = proc ()
+  TEventListenerInit* = proc (para1: TEventListenerInitProc){.cdecl.}
+  PKeyEventStruct* = ptr TKeyEventStruct
+  TKeyEventStruct*{.final, pure.} = object 
+    `type`*: gint
+    state*: guint
+    keyval*: guint
+    length*: gint
+    string*: cstring
+    keycode*: guint16
+    timestamp*: guint32
+
+  TKeySnoopFunc* = proc (event: PKeyEventStruct, func_data: gpointer): gint{.
+      cdecl.}
+  PKeyEventType* = ptr TKeyEventType
+  TKeyEventType* = enum 
+    KEY_EVENT_PRESS, KEY_EVENT_RELEASE, KEY_EVENT_LAST_DEFINED
+  PUtil* = ptr TUtil
+  TUtil* = object of TGObject
+  PUtilClass* = ptr TUtilClass
+  TUtilClass* = object of TGObjectClass
+    add_global_event_listener*: proc (listener: TGSignalEmissionHook, 
+                                      event_type: cstring): guint{.cdecl.}
+    remove_global_event_listener*: proc (listener_id: guint){.cdecl.}
+    add_key_event_listener*: proc (listener: TKeySnoopFunc, data: gpointer): guint{.
+        cdecl.}
+    remove_key_event_listener*: proc (listener_id: guint){.cdecl.}
+    get_root*: proc (): PObject{.cdecl.}
+    get_toolkit_name*: proc (): cstring{.cdecl.}
+    get_toolkit_version*: proc (): cstring{.cdecl.}
+
+  PValueIface* = ptr TValueIface
+  TValueIface* = object of TGTypeInterface
+    get_current_value*: proc (obj: PValue, value: PGValue){.cdecl.}
+    get_maximum_value*: proc (obj: PValue, value: PGValue){.cdecl.}
+    get_minimum_value*: proc (obj: PValue, value: PGValue){.cdecl.}
+    set_current_value*: proc (obj: PValue, value: PGValue): gboolean{.cdecl.}
+    pad33*: TFunction
+    pad34*: TFunction
+
+
+proc role_register*(name: cstring): TRole{.cdecl, dynlib: lib, 
+    importc: "atk_role_register".}
+proc object_get_type*(): GType{.cdecl, dynlib: lib, 
+                                importc: "atk_object_get_type".}
+proc TYPE_OBJECT*(): GType
+proc `OBJECT`*(obj: pointer): PObject
+proc OBJECT_CLASS*(klass: pointer): PObjectClass
+proc IS_OBJECT*(obj: pointer): bool
+proc IS_OBJECT_CLASS*(klass: pointer): bool
+proc OBJECT_GET_CLASS*(obj: pointer): PObjectClass
+proc TYPE_IMPLEMENTOR*(): GType
+proc IS_IMPLEMENTOR*(obj: pointer): bool
+proc IMPLEMENTOR*(obj: pointer): PImplementor
+proc IMPLEMENTOR_GET_IFACE*(obj: pointer): PImplementorIface
+proc implementor_get_type*(): GType{.cdecl, dynlib: lib, 
+                                     importc: "atk_implementor_get_type".}
+proc ref_accessible*(implementor: PImplementor): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_implementor_ref_accessible".}
+proc get_name*(accessible: PObject): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_name".}
+proc get_description*(accessible: PObject): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_description".}
+proc get_parent*(accessible: PObject): PObject{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_parent".}
+proc get_n_accessible_children*(accessible: PObject): gint{.cdecl, 
+    dynlib: lib, importc: "atk_object_get_n_accessible_children".}
+proc ref_accessible_child*(accessible: PObject, i: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_object_ref_accessible_child".}
+proc ref_relation_set*(accessible: PObject): PRelationSet{.cdecl, 
+    dynlib: lib, importc: "atk_object_ref_relation_set".}
+proc get_role*(accessible: PObject): TRole{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_role".}
+proc get_layer*(accessible: PObject): TLayer{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_layer".}
+proc get_mdi_zorder*(accessible: PObject): gint{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_mdi_zorder".}
+proc ref_state_set*(accessible: PObject): PStateSet{.cdecl, dynlib: lib, 
+    importc: "atk_object_ref_state_set".}
+proc get_index_in_parent*(accessible: PObject): gint{.cdecl, dynlib: lib, 
+    importc: "atk_object_get_index_in_parent".}
+proc set_name*(accessible: PObject, name: cstring){.cdecl, dynlib: lib, 
+    importc: "atk_object_set_name".}
+proc set_description*(accessible: PObject, description: cstring){.cdecl, 
+    dynlib: lib, importc: "atk_object_set_description".}
+proc set_parent*(accessible: PObject, parent: PObject){.cdecl, 
+    dynlib: lib, importc: "atk_object_set_parent".}
+proc set_role*(accessible: PObject, role: TRole){.cdecl, dynlib: lib, 
+    importc: "atk_object_set_role".}
+proc connect_property_change_handler*(accessible: PObject, 
+    handler: TPropertyChangeHandler): guint{.cdecl, dynlib: lib, 
+    importc: "atk_object_connect_property_change_handler".}
+proc remove_property_change_handler*(accessible: PObject, 
+    handler_id: guint){.cdecl, dynlib: lib, 
+                        importc: "atk_object_remove_property_change_handler".}
+proc notify_state_change*(accessible: PObject, state: TState, 
+                                 value: gboolean){.cdecl, dynlib: lib, 
+    importc: "atk_object_notify_state_change".}
+proc initialize*(accessible: PObject, data: gpointer){.cdecl, 
+    dynlib: lib, importc: "atk_object_initialize".}
+proc role_get_name*(role: TRole): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_role_get_name".}
+proc role_for_name*(name: cstring): TRole{.cdecl, dynlib: lib, 
+    importc: "atk_role_for_name".}
+proc TYPE_ACTION*(): GType
+proc IS_ACTION*(obj: pointer): bool
+proc ACTION*(obj: pointer): PAction
+proc ACTION_GET_IFACE*(obj: pointer): PActionIface
+proc action_get_type*(): GType{.cdecl, dynlib: lib, 
+                                importc: "atk_action_get_type".}
+proc do_action*(action: PAction, i: gint): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_action_do_action".}
+proc get_n_actions*(action: PAction): gint{.cdecl, dynlib: lib, 
+    importc: "atk_action_get_n_actions".}
+proc get_description*(action: PAction, i: gint): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_action_get_description".}
+proc get_name*(action: PAction, i: gint): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_action_get_name".}
+proc get_keybinding*(action: PAction, i: gint): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_action_get_keybinding".}
+proc set_description*(action: PAction, i: gint, desc: cstring): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_action_set_description".}
+proc TYPE_COMPONENT*(): GType
+proc IS_COMPONENT*(obj: pointer): bool
+proc COMPONENT*(obj: pointer): PComponent
+proc COMPONENT_GET_IFACE*(obj: pointer): PComponentIface
+proc component_get_type*(): GType{.cdecl, dynlib: lib, 
+                                   importc: "atk_component_get_type".}
+proc add_focus_handler*(component: PComponent, handler: TFocusHandler): guint{.
+    cdecl, dynlib: lib, importc: "atk_component_add_focus_handler".}
+proc contains*(component: PComponent, x, y: gint, 
+                         coord_type: TCoordType): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_component_contains".}
+proc ref_accessible_at_point*(component: PComponent, x, y: gint, 
+                                        coord_type: TCoordType): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_component_ref_accessible_at_point".}
+proc get_extents*(component: PComponent, x, y, width, height: Pgint, 
+                            coord_type: TCoordType){.cdecl, dynlib: lib, 
+    importc: "atk_component_get_extents".}
+proc get_position*(component: PComponent, x: Pgint, y: Pgint, 
+                             coord_type: TCoordType){.cdecl, dynlib: lib, 
+    importc: "atk_component_get_position".}
+proc get_size*(component: PComponent, width: Pgint, height: Pgint){.
+    cdecl, dynlib: lib, importc: "atk_component_get_size".}
+proc get_layer*(component: PComponent): TLayer{.cdecl, dynlib: lib, 
+    importc: "atk_component_get_layer".}
+proc get_mdi_zorder*(component: PComponent): gint{.cdecl, dynlib: lib, 
+    importc: "atk_component_get_mdi_zorder".}
+proc grab_focus*(component: PComponent): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_component_grab_focus".}
+proc remove_focus_handler*(component: PComponent, handler_id: guint){.
+    cdecl, dynlib: lib, importc: "atk_component_remove_focus_handler".}
+proc set_extents*(component: PComponent, x: gint, y: gint, 
+                            width: gint, height: gint, coord_type: TCoordType): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_component_set_extents".}
+proc set_position*(component: PComponent, x: gint, y: gint, 
+                             coord_type: TCoordType): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_component_set_position".}
+proc set_size*(component: PComponent, width: gint, height: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_component_set_size".}
+proc TYPE_DOCUMENT*(): GType
+proc IS_DOCUMENT*(obj: pointer): bool
+proc DOCUMENT*(obj: pointer): PDocument
+proc DOCUMENT_GET_IFACE*(obj: pointer): PDocumentIface
+proc document_get_type*(): GType{.cdecl, dynlib: lib, 
+                                  importc: "atk_document_get_type".}
+proc get_document_type*(document: PDocument): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_document_get_document_type".}
+proc get_document*(document: PDocument): gpointer{.cdecl, dynlib: lib, 
+    importc: "atk_document_get_document".}
+proc TYPE_EDITABLE_TEXT*(): GType
+proc IS_EDITABLE_TEXT*(obj: pointer): bool
+proc EDITABLE_TEXT*(obj: pointer): PEditableText
+proc EDITABLE_TEXT_GET_IFACE*(obj: pointer): PEditableTextIface
+proc editable_text_get_type*(): GType{.cdecl, dynlib: lib, 
+                                       importc: "atk_editable_text_get_type".}
+proc set_run_attributes*(text: PEditableText, 
+                                       attrib_set: PAttributeSet, 
+                                       start_offset: gint, end_offset: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_editable_text_set_run_attributes".}
+proc set_text_contents*(text: PEditableText, string: cstring){.
+    cdecl, dynlib: lib, importc: "atk_editable_text_set_text_contents".}
+proc insert_text*(text: PEditableText, `string`: cstring, 
+                                length: gint, position: Pgint){.cdecl, 
+    dynlib: lib, importc: "atk_editable_text_insert_text".}
+proc copy_text*(text: PEditableText, start_pos: gint, 
+                              end_pos: gint){.cdecl, dynlib: lib, 
+    importc: "atk_editable_text_copy_text".}
+proc cut_text*(text: PEditableText, start_pos: gint, end_pos: gint){.
+    cdecl, dynlib: lib, importc: "atk_editable_text_cut_text".}
+proc delete_text*(text: PEditableText, start_pos: gint, 
+                                end_pos: gint){.cdecl, dynlib: lib, 
+    importc: "atk_editable_text_delete_text".}
+proc paste_text*(text: PEditableText, position: gint){.cdecl, 
+    dynlib: lib, importc: "atk_editable_text_paste_text".}
+proc TYPE_GOBJECT_ACCESSIBLE*(): GType
+proc GOBJECT_ACCESSIBLE*(obj: pointer): PGObjectAccessible
+proc GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): PGObjectAccessibleClass
+proc IS_GOBJECT_ACCESSIBLE*(obj: pointer): bool
+proc IS_GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): bool
+proc GOBJECT_ACCESSIBLE_GET_CLASS*(obj: pointer): PGObjectAccessibleClass
+proc gobject_accessible_get_type*(): GType{.cdecl, dynlib: lib, 
+    importc: "atk_gobject_accessible_get_type".}
+proc accessible_for_object*(obj: PGObject): PObject{.cdecl, dynlib: lib, 
+    importc: "atk_gobject_accessible_for_object".}
+proc get_object*(obj: PGObjectAccessible): PGObject{.cdecl, 
+    dynlib: lib, importc: "atk_gobject_accessible_get_object".}
+proc TYPE_HYPERLINK*(): GType
+proc HYPERLINK*(obj: pointer): PHyperlink
+proc HYPERLINK_CLASS*(klass: pointer): PHyperlinkClass
+proc IS_HYPERLINK*(obj: pointer): bool
+proc IS_HYPERLINK_CLASS*(klass: pointer): bool
+proc HYPERLINK_GET_CLASS*(obj: pointer): PHyperlinkClass
+proc hyperlink_get_type*(): GType{.cdecl, dynlib: lib, 
+                                   importc: "atk_hyperlink_get_type".}
+proc get_uri*(link: PHyperlink, i: gint): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_hyperlink_get_uri".}
+proc get_object*(link: PHyperlink, i: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_hyperlink_get_object".}
+proc get_end_index*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
+    importc: "atk_hyperlink_get_end_index".}
+proc get_start_index*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
+    importc: "atk_hyperlink_get_start_index".}
+proc is_valid*(link: PHyperlink): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_hyperlink_is_valid".}
+proc get_n_anchors*(link: PHyperlink): gint{.cdecl, dynlib: lib, 
+    importc: "atk_hyperlink_get_n_anchors".}
+proc TYPE_HYPERTEXT*(): GType
+proc IS_HYPERTEXT*(obj: pointer): bool
+proc HYPERTEXT*(obj: pointer): PHypertext
+proc HYPERTEXT_GET_IFACE*(obj: pointer): PHypertextIface
+proc hypertext_get_type*(): GType{.cdecl, dynlib: lib, 
+                                   importc: "atk_hypertext_get_type".}
+proc get_link*(hypertext: PHypertext, link_index: gint): PHyperlink{.
+    cdecl, dynlib: lib, importc: "atk_hypertext_get_link".}
+proc get_n_links*(hypertext: PHypertext): gint{.cdecl, dynlib: lib, 
+    importc: "atk_hypertext_get_n_links".}
+proc get_link_index*(hypertext: PHypertext, char_index: gint): gint{.
+    cdecl, dynlib: lib, importc: "atk_hypertext_get_link_index".}
+proc TYPE_IMAGE*(): GType
+proc IS_IMAGE*(obj: pointer): bool
+proc IMAGE*(obj: pointer): PImage
+proc IMAGE_GET_IFACE*(obj: pointer): PImageIface
+proc image_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_image_get_type".}
+proc get_image_description*(image: PImage): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_image_get_image_description".}
+proc get_image_size*(image: PImage, width: Pgint, height: Pgint){.cdecl, 
+    dynlib: lib, importc: "atk_image_get_image_size".}
+proc set_image_description*(image: PImage, description: cstring): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_image_set_image_description".}
+proc get_image_position*(image: PImage, x: Pgint, y: Pgint, 
+                               coord_type: TCoordType){.cdecl, dynlib: lib, 
+    importc: "atk_image_get_image_position".}
+proc TYPE_OBJECT_FACTORY*(): GType
+proc OBJECT_FACTORY*(obj: pointer): PObjectFactory
+proc OBJECT_FACTORY_CLASS*(klass: pointer): PObjectFactoryClass
+proc IS_OBJECT_FACTORY*(obj: pointer): bool
+proc IS_OBJECT_FACTORY_CLASS*(klass: pointer): bool
+proc OBJECT_FACTORY_GET_CLASS*(obj: pointer): PObjectFactoryClass
+proc object_factory_get_type*(): GType{.cdecl, dynlib: lib, 
+                                        importc: "atk_object_factory_get_type".}
+proc create_accessible*(factory: PObjectFactory, obj: PGObject): PObject{.
+    cdecl, dynlib: lib, importc: "atk_object_factory_create_accessible".}
+proc invalidate*(factory: PObjectFactory){.cdecl, dynlib: lib, 
+    importc: "atk_object_factory_invalidate".}
+proc get_accessible_type*(factory: PObjectFactory): GType{.cdecl, 
+    dynlib: lib, importc: "atk_object_factory_get_accessible_type".}
+proc TYPE_REGISTRY*(): GType
+proc REGISTRY*(obj: pointer): PRegistry
+proc REGISTRY_CLASS*(klass: pointer): PRegistryClass
+proc IS_REGISTRY*(obj: pointer): bool
+proc IS_REGISTRY_CLASS*(klass: pointer): bool
+proc REGISTRY_GET_CLASS*(obj: pointer): PRegistryClass
+proc registry_get_type*(): GType{.cdecl, dynlib: lib, 
+                                  importc: "atk_registry_get_type".}
+proc set_factory_type*(registry: PRegistry, `type`: GType, 
+                                factory_type: GType){.cdecl, dynlib: lib, 
+    importc: "atk_registry_set_factory_type".}
+proc get_factory_type*(registry: PRegistry, `type`: GType): GType{.
+    cdecl, dynlib: lib, importc: "atk_registry_get_factory_type".}
+proc get_factory*(registry: PRegistry, `type`: GType): PObjectFactory{.
+    cdecl, dynlib: lib, importc: "atk_registry_get_factory".}
+proc get_default_registry*(): PRegistry{.cdecl, dynlib: lib, 
+    importc: "atk_get_default_registry".}
+proc TYPE_RELATION*(): GType
+proc RELATION*(obj: pointer): PRelation
+proc RELATION_CLASS*(klass: pointer): PRelationClass
+proc IS_RELATION*(obj: pointer): bool
+proc IS_RELATION_CLASS*(klass: pointer): bool
+proc RELATION_GET_CLASS*(obj: pointer): PRelationClass
+proc relation_get_type*(): GType{.cdecl, dynlib: lib, 
+                                  importc: "atk_relation_get_type".}
+proc relation_type_register*(name: cstring): TRelationType{.cdecl, dynlib: lib, 
+    importc: "atk_relation_type_register".}
+proc relation_type_get_name*(`type`: TRelationType): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_relation_type_get_name".}
+proc relation_type_for_name*(name: cstring): TRelationType{.cdecl, dynlib: lib, 
+    importc: "atk_relation_type_for_name".}
+proc relation_new*(targets: PPAtkObject, n_targets: gint, 
+                   relationship: TRelationType): PRelation{.cdecl, dynlib: lib, 
+    importc: "atk_relation_new".}
+proc get_relation_type*(relation: PRelation): TRelationType{.cdecl, 
+    dynlib: lib, importc: "atk_relation_get_relation_type".}
+proc get_target*(relation: PRelation): PGPtrArray{.cdecl, dynlib: lib, 
+    importc: "atk_relation_get_target".}
+proc TYPE_RELATION_SET*(): GType
+proc RELATION_SET*(obj: pointer): PRelationSet
+proc RELATION_SET_CLASS*(klass: pointer): PRelationSetClass
+proc IS_RELATION_SET*(obj: pointer): bool
+proc IS_RELATION_SET_CLASS*(klass: pointer): bool
+proc RELATION_SET_GET_CLASS*(obj: pointer): PRelationSetClass
+proc relation_set_get_type*(): GType{.cdecl, dynlib: lib, 
+                                      importc: "atk_relation_set_get_type".}
+proc relation_set_new*(): PRelationSet{.cdecl, dynlib: lib, 
+                                        importc: "atk_relation_set_new".}
+proc contains*(RelationSet: PRelationSet, 
+                            relationship: TRelationType): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_relation_set_contains".}
+proc remove*(RelationSet: PRelationSet, relation: PRelation){.
+    cdecl, dynlib: lib, importc: "atk_relation_set_remove".}
+proc add*(RelationSet: PRelationSet, relation: PRelation){.cdecl, 
+    dynlib: lib, importc: "atk_relation_set_add".}
+proc get_n_relations*(RelationSet: PRelationSet): gint{.cdecl, 
+    dynlib: lib, importc: "atk_relation_set_get_n_relations".}
+proc get_relation*(RelationSet: PRelationSet, i: gint): PRelation{.
+    cdecl, dynlib: lib, importc: "atk_relation_set_get_relation".}
+proc get_relation_by_type*(RelationSet: PRelationSet, 
+                                        relationship: TRelationType): PRelation{.
+    cdecl, dynlib: lib, importc: "atk_relation_set_get_relation_by_type".}
+proc TYPE_SELECTION*(): GType
+proc IS_SELECTION*(obj: pointer): bool
+proc SELECTION*(obj: pointer): PSelection
+proc SELECTION_GET_IFACE*(obj: pointer): PSelectionIface
+proc selection_get_type*(): GType{.cdecl, dynlib: lib, 
+                                   importc: "atk_selection_get_type".}
+proc add_selection*(selection: PSelection, i: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_selection_add_selection".}
+proc clear_selection*(selection: PSelection): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_selection_clear_selection".}
+proc ref_selection*(selection: PSelection, i: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_selection_ref_selection".}
+proc get_selection_count*(selection: PSelection): gint{.cdecl, 
+    dynlib: lib, importc: "atk_selection_get_selection_count".}
+proc is_child_selected*(selection: PSelection, i: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_selection_is_child_selected".}
+proc remove_selection*(selection: PSelection, i: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_selection_remove_selection".}
+proc select_all_selection*(selection: PSelection): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_selection_select_all_selection".}
+proc state_type_register*(name: cstring): TStateType{.cdecl, dynlib: lib, 
+    importc: "atk_state_type_register".}
+proc state_type_get_name*(`type`: TStateType): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_state_type_get_name".}
+proc state_type_for_name*(name: cstring): TStateType{.cdecl, dynlib: lib, 
+    importc: "atk_state_type_for_name".}
+proc TYPE_STATE_SET*(): GType
+proc STATE_SET*(obj: pointer): PStateSet
+proc STATE_SET_CLASS*(klass: pointer): PStateSetClass
+proc IS_STATE_SET*(obj: pointer): bool
+proc IS_STATE_SET_CLASS*(klass: pointer): bool
+proc STATE_SET_GET_CLASS*(obj: pointer): PStateSetClass
+proc state_set_get_type*(): GType{.cdecl, dynlib: lib, 
+                                   importc: "atk_state_set_get_type".}
+proc state_set_new*(): PStateSet{.cdecl, dynlib: lib, 
+                                  importc: "atk_state_set_new".}
+proc is_empty*(StateSet: PStateSet): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_state_set_is_empty".}
+proc add_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_state_set_add_state".}
+proc add_states*(StateSet: PStateSet, types: PStateType, n_types: gint){.
+    cdecl, dynlib: lib, importc: "atk_state_set_add_states".}
+proc clear_states*(StateSet: PStateSet){.cdecl, dynlib: lib, 
+    importc: "atk_state_set_clear_states".}
+proc contains_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_state_set_contains_state".}
+proc contains_states*(StateSet: PStateSet, types: PStateType, 
+                                n_types: gint): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_state_set_contains_states".}
+proc remove_state*(StateSet: PStateSet, `type`: TStateType): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_state_set_remove_state".}
+proc and_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
+    cdecl, dynlib: lib, importc: "atk_state_set_and_sets".}
+proc or_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
+    cdecl, dynlib: lib, importc: "atk_state_set_or_sets".}
+proc xor_sets*(StateSet: PStateSet, compare_set: PStateSet): PStateSet{.
+    cdecl, dynlib: lib, importc: "atk_state_set_xor_sets".}
+proc TYPE_STREAMABLE_CONTENT*(): GType
+proc IS_STREAMABLE_CONTENT*(obj: pointer): bool
+proc STREAMABLE_CONTENT*(obj: pointer): PStreamableContent
+proc STREAMABLE_CONTENT_GET_IFACE*(obj: pointer): PStreamableContentIface
+proc streamable_content_get_type*(): GType{.cdecl, dynlib: lib, 
+    importc: "atk_streamable_content_get_type".}
+proc get_n_mime_types*(streamable: PStreamableContent): gint{.
+    cdecl, dynlib: lib, importc: "atk_streamable_content_get_n_mime_types".}
+proc get_mime_type*(streamable: PStreamableContent, i: gint): cstring{.
+    cdecl, dynlib: lib, importc: "atk_streamable_content_get_mime_type".}
+proc get_stream*(streamable: PStreamableContent, 
+                                    mime_type: cstring): PGIOChannel{.cdecl, 
+    dynlib: lib, importc: "atk_streamable_content_get_stream".}
+proc TYPE_TABLE*(): GType
+proc IS_TABLE*(obj: pointer): bool
+proc TABLE*(obj: pointer): PTable
+proc TABLE_GET_IFACE*(obj: pointer): PTableIface
+proc table_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_table_get_type".}
+proc ref_at*(table: PTable, row, column: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_table_ref_at".}
+proc get_index_at*(table: PTable, row, column: gint): gint{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_index_at".}
+proc get_column_at_index*(table: PTable, index: gint): gint{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_column_at_index".}
+proc get_row_at_index*(table: PTable, index: gint): gint{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_row_at_index".}
+proc get_n_columns*(table: PTable): gint{.cdecl, dynlib: lib, 
+    importc: "atk_table_get_n_columns".}
+proc get_n_rows*(table: PTable): gint{.cdecl, dynlib: lib, 
+    importc: "atk_table_get_n_rows".}
+proc get_column_extent_at*(table: PTable, row: gint, column: gint): gint{.
+    cdecl, dynlib: lib, importc: "atk_table_get_column_extent_at".}
+proc get_row_extent_at*(table: PTable, row: gint, column: gint): gint{.
+    cdecl, dynlib: lib, importc: "atk_table_get_row_extent_at".}
+proc get_caption*(table: PTable): PObject{.cdecl, dynlib: lib, 
+    importc: "atk_table_get_caption".}
+proc get_column_description*(table: PTable, column: gint): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_column_description".}
+proc get_column_header*(table: PTable, column: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_column_header".}
+proc get_row_description*(table: PTable, row: gint): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_row_description".}
+proc get_row_header*(table: PTable, row: gint): PObject{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_row_header".}
+proc get_summary*(table: PTable): PObject{.cdecl, dynlib: lib, 
+    importc: "atk_table_get_summary".}
+proc set_caption*(table: PTable, caption: PObject){.cdecl, dynlib: lib, 
+    importc: "atk_table_set_caption".}
+proc set_column_description*(table: PTable, column: gint, 
+                                   description: cstring){.cdecl, dynlib: lib, 
+    importc: "atk_table_set_column_description".}
+proc set_column_header*(table: PTable, column: gint, header: PObject){.
+    cdecl, dynlib: lib, importc: "atk_table_set_column_header".}
+proc set_row_description*(table: PTable, row: gint, description: cstring){.
+    cdecl, dynlib: lib, importc: "atk_table_set_row_description".}
+proc set_row_header*(table: PTable, row: gint, header: PObject){.cdecl, 
+    dynlib: lib, importc: "atk_table_set_row_header".}
+proc set_summary*(table: PTable, accessible: PObject){.cdecl, dynlib: lib, 
+    importc: "atk_table_set_summary".}
+proc get_selected_columns*(table: PTable, selected: PPgint): gint{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_selected_columns".}
+proc get_selected_rows*(table: PTable, selected: PPgint): gint{.cdecl, 
+    dynlib: lib, importc: "atk_table_get_selected_rows".}
+proc is_column_selected*(table: PTable, column: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_table_is_column_selected".}
+proc is_row_selected*(table: PTable, row: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_table_is_row_selected".}
+proc is_selected*(table: PTable, row: gint, column: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_table_is_selected".}
+proc add_row_selection*(table: PTable, row: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_table_add_row_selection".}
+proc remove_row_selection*(table: PTable, row: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_table_remove_row_selection".}
+proc add_column_selection*(table: PTable, column: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_table_add_column_selection".}
+proc remove_column_selection*(table: PTable, column: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_table_remove_column_selection".}
+proc text_attribute_register*(name: cstring): TTextAttribute{.cdecl, 
+    dynlib: lib, importc: "atk_text_attribute_register".}
+proc TYPE_TEXT*(): GType
+proc IS_TEXT*(obj: pointer): bool
+proc TEXT*(obj: pointer): PText
+proc TEXT_GET_IFACE*(obj: pointer): PTextIface
+proc text_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_text_get_type".}
+proc get_text*(text: PText, start_offset: gint, end_offset: gint): cstring{.
+    cdecl, dynlib: lib, importc: "atk_text_get_text".}
+proc get_character_at_offset*(text: PText, offset: gint): gunichar{.cdecl, 
+    dynlib: lib, importc: "atk_text_get_character_at_offset".}
+proc get_text_after_offset*(text: PText, offset: gint, 
+                                 boundary_type: TTextBoundary, 
+                                 start_offset: Pgint, end_offset: Pgint): cstring{.
+    cdecl, dynlib: lib, importc: "atk_text_get_text_after_offset".}
+proc get_text_at_offset*(text: PText, offset: gint, 
+                              boundary_type: TTextBoundary, start_offset: Pgint, 
+                              end_offset: Pgint): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_text_get_text_at_offset".}
+proc get_text_before_offset*(text: PText, offset: gint, 
+                                  boundary_type: TTextBoundary, 
+                                  start_offset: Pgint, end_offset: Pgint): cstring{.
+    cdecl, dynlib: lib, importc: "atk_text_get_text_before_offset".}
+proc get_caret_offset*(text: PText): gint{.cdecl, dynlib: lib, 
+    importc: "atk_text_get_caret_offset".}
+proc get_character_extents*(text: PText, offset: gint, x: Pgint, y: Pgint, 
+                                 width: Pgint, height: Pgint, coords: TCoordType){.
+    cdecl, dynlib: lib, importc: "atk_text_get_character_extents".}
+proc get_run_attributes*(text: PText, offset: gint, start_offset: Pgint, 
+                              end_offset: Pgint): PAttributeSet{.cdecl, 
+    dynlib: lib, importc: "atk_text_get_run_attributes".}
+proc get_default_attributes*(text: PText): PAttributeSet{.cdecl, 
+    dynlib: lib, importc: "atk_text_get_default_attributes".}
+proc get_character_count*(text: PText): gint{.cdecl, dynlib: lib, 
+    importc: "atk_text_get_character_count".}
+proc get_offset_at_point*(text: PText, x: gint, y: gint, coords: TCoordType): gint{.
+    cdecl, dynlib: lib, importc: "atk_text_get_offset_at_point".}
+proc get_n_selections*(text: PText): gint{.cdecl, dynlib: lib, 
+    importc: "atk_text_get_n_selections".}
+proc get_selection*(text: PText, selection_num: gint, start_offset: Pgint, 
+                         end_offset: Pgint): cstring{.cdecl, dynlib: lib, 
+    importc: "atk_text_get_selection".}
+proc add_selection*(text: PText, start_offset: gint, end_offset: gint): gboolean{.
+    cdecl, dynlib: lib, importc: "atk_text_add_selection".}
+proc remove_selection*(text: PText, selection_num: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_text_remove_selection".}
+proc set_selection*(text: PText, selection_num: gint, start_offset: gint, 
+                         end_offset: gint): gboolean{.cdecl, dynlib: lib, 
+    importc: "atk_text_set_selection".}
+proc set_caret_offset*(text: PText, offset: gint): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_text_set_caret_offset".}
+proc free*(attrib_set: PAttributeSet){.cdecl, dynlib: lib, 
+    importc: "atk_attribute_set_free".}
+proc text_attribute_get_name*(attr: TTextAttribute): cstring{.cdecl, 
+    dynlib: lib, importc: "atk_text_attribute_get_name".}
+proc text_attribute_for_name*(name: cstring): TTextAttribute{.cdecl, 
+    dynlib: lib, importc: "atk_text_attribute_for_name".}
+proc text_attribute_get_value*(attr: TTextAttribute, index: gint): cstring{.
+    cdecl, dynlib: lib, importc: "atk_text_attribute_get_value".}
+proc TYPE_UTIL*(): GType
+proc IS_UTIL*(obj: pointer): bool
+proc UTIL*(obj: pointer): PUtil
+proc UTIL_CLASS*(klass: pointer): PUtilClass
+proc IS_UTIL_CLASS*(klass: pointer): bool
+proc UTIL_GET_CLASS*(obj: pointer): PUtilClass
+proc util_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_util_get_type".}
+proc add_focus_tracker*(focus_tracker: TEventListener): guint{.cdecl, 
+    dynlib: lib, importc: "atk_add_focus_tracker".}
+proc remove_focus_tracker*(tracker_id: guint){.cdecl, dynlib: lib, 
+    importc: "atk_remove_focus_tracker".}
+proc focus_tracker_init*(add_function: TEventListenerInit){.cdecl, dynlib: lib, 
+    importc: "atk_focus_tracker_init".}
+proc focus_tracker_notify*(anObject: PObject){.cdecl, dynlib: lib, 
+    importc: "atk_focus_tracker_notify".}
+proc add_global_event_listener*(listener: TGSignalEmissionHook, 
+                                event_type: cstring): guint{.cdecl, dynlib: lib, 
+    importc: "atk_add_global_event_listener".}
+proc remove_global_event_listener*(listener_id: guint){.cdecl, dynlib: lib, 
+    importc: "atk_remove_global_event_listener".}
+proc add_key_event_listener*(listener: TKeySnoopFunc, data: gpointer): guint{.
+    cdecl, dynlib: lib, importc: "atk_add_key_event_listener".}
+proc remove_key_event_listener*(listener_id: guint){.cdecl, dynlib: lib, 
+    importc: "atk_remove_key_event_listener".}
+proc get_root*(): PObject{.cdecl, dynlib: lib, importc: "atk_get_root".}
+proc get_toolkit_name*(): cstring{.cdecl, dynlib: lib, 
+                                   importc: "atk_get_toolkit_name".}
+proc get_toolkit_version*(): cstring{.cdecl, dynlib: lib, 
+                                      importc: "atk_get_toolkit_version".}
+proc TYPE_VALUE*(): GType
+proc IS_VALUE*(obj: pointer): bool
+proc VALUE*(obj: pointer): PValue
+proc VALUE_GET_IFACE*(obj: pointer): PValueIface
+proc value_get_type*(): GType{.cdecl, dynlib: lib, importc: "atk_value_get_type".}
+proc get_current_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
+    importc: "atk_value_get_current_value".}
+proc get_maximum_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
+    importc: "atk_value_get_maximum_value".}
+proc get_minimum_value*(obj: PValue, value: PGValue){.cdecl, dynlib: lib, 
+    importc: "atk_value_get_minimum_value".}
+proc set_current_value*(obj: PValue, value: PGValue): gboolean{.cdecl, 
+    dynlib: lib, importc: "atk_value_set_current_value".}
+proc TYPE_OBJECT*(): GType = 
+  result = object_get_type()
+
+proc `OBJECT`*(obj: pointer): PObject = 
+  result = cast[PObject](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_OBJECT()))
+
+proc OBJECT_CLASS*(klass: pointer): PObjectClass = 
+  result = cast[PObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_OBJECT()))
+
+proc IS_OBJECT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_OBJECT())
+
+proc IS_OBJECT_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_OBJECT())
+
+proc OBJECT_GET_CLASS*(obj: pointer): PObjectClass = 
+  result = cast[PObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_OBJECT()))
+
+proc TYPE_IMPLEMENTOR*(): GType = 
+  result = implementor_get_type()
+
+proc IS_IMPLEMENTOR*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_IMPLEMENTOR())
+
+proc IMPLEMENTOR*(obj: pointer): PImplementor = 
+  result = PImplementor(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_IMPLEMENTOR()))
+
+proc IMPLEMENTOR_GET_IFACE*(obj: pointer): PImplementorIface = 
+  result = cast[PImplementorIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_IMPLEMENTOR()))
+
+proc TYPE_ACTION*(): GType = 
+  result = action_get_type()
+
+proc IS_ACTION*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_ACTION())
+
+proc ACTION*(obj: pointer): PAction = 
+  result = PAction(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_ACTION()))
+
+proc ACTION_GET_IFACE*(obj: pointer): PActionIface = 
+  result = cast[PActionIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_ACTION()))
+
+proc TYPE_COMPONENT*(): GType = 
+  result = component_get_type()
+
+proc IS_COMPONENT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_COMPONENT())
+
+proc COMPONENT*(obj: pointer): PComponent = 
+  result = PComponent(G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_COMPONENT()))
+
+proc COMPONENT_GET_IFACE*(obj: pointer): PComponentIface = 
+  result = cast[PComponentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_COMPONENT()))
+
+proc TYPE_DOCUMENT*(): GType = 
+  result = document_get_type()
+
+proc IS_DOCUMENT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_DOCUMENT())
+
+proc DOCUMENT*(obj: pointer): PDocument = 
+  result = cast[PDocument](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_DOCUMENT()))
+
+proc DOCUMENT_GET_IFACE*(obj: pointer): PDocumentIface = 
+  result = cast[PDocumentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_DOCUMENT()))
+
+proc TYPE_EDITABLE_TEXT*(): GType = 
+  result = editable_text_get_type()
+
+proc IS_EDITABLE_TEXT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_EDITABLE_TEXT())
+
+proc EDITABLE_TEXT*(obj: pointer): PEditableText = 
+  result = cast[PEditableText](G_TYPE_CHECK_INSTANCE_CAST(obj, 
+      TYPE_EDITABLE_TEXT()))
+
+proc EDITABLE_TEXT_GET_IFACE*(obj: pointer): PEditableTextIface = 
+  result = cast[PEditableTextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_EDITABLE_TEXT()))
+
+proc TYPE_GOBJECT_ACCESSIBLE*(): GType = 
+  result = gobject_accessible_get_type()
+
+proc GOBJECT_ACCESSIBLE*(obj: pointer): PGObjectAccessible = 
+  result = cast[PGObjectAccessible](G_TYPE_CHECK_INSTANCE_CAST(obj, 
+      TYPE_GOBJECT_ACCESSIBLE()))
+
+proc GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): PGObjectAccessibleClass = 
+  result = cast[PGObjectAccessibleClass](G_TYPE_CHECK_CLASS_CAST(klass, 
+      TYPE_GOBJECT_ACCESSIBLE()))
+
+proc IS_GOBJECT_ACCESSIBLE*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_GOBJECT_ACCESSIBLE())
+
+proc IS_GOBJECT_ACCESSIBLE_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GOBJECT_ACCESSIBLE())
+
+proc GOBJECT_ACCESSIBLE_GET_CLASS*(obj: pointer): PGObjectAccessibleClass = 
+  result = cast[PGObjectAccessibleClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
+      TYPE_GOBJECT_ACCESSIBLE()))
+
+proc TYPE_HYPERLINK*(): GType = 
+  result = hyperlink_get_type()
+
+proc HYPERLINK*(obj: pointer): PHyperlink = 
+  result = cast[PHyperlink](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_HYPERLINK()))
+
+proc HYPERLINK_CLASS*(klass: pointer): PHyperlinkClass = 
+  result = cast[PHyperlinkClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_HYPERLINK()))
+
+proc IS_HYPERLINK*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_HYPERLINK())
+
+proc IS_HYPERLINK_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_HYPERLINK())
+
+proc HYPERLINK_GET_CLASS*(obj: pointer): PHyperlinkClass = 
+  result = cast[PHyperlinkClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_HYPERLINK()))
+
+proc TYPE_HYPERTEXT*(): GType = 
+  result = hypertext_get_type()
+
+proc IS_HYPERTEXT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_HYPERTEXT())
+
+proc HYPERTEXT*(obj: pointer): PHypertext = 
+  result = cast[PHypertext](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_HYPERTEXT()))
+
+proc HYPERTEXT_GET_IFACE*(obj: pointer): PHypertextIface = 
+  result = cast[PHypertextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_HYPERTEXT()))
+
+proc TYPE_IMAGE*(): GType = 
+  result = image_get_type()
+
+proc IS_IMAGE*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_IMAGE())
+
+proc IMAGE*(obj: pointer): PImage = 
+  result = cast[PImage](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_IMAGE()))
+
+proc IMAGE_GET_IFACE*(obj: pointer): PImageIface = 
+  result = cast[PImageIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_IMAGE()))
+
+proc TYPE_OBJECT_FACTORY*(): GType = 
+  result = object_factory_get_type()
+
+proc OBJECT_FACTORY*(obj: pointer): PObjectFactory = 
+  result = cast[PObjectFactory](G_TYPE_CHECK_INSTANCE_CAST(obj, 
+      TYPE_OBJECT_FACTORY()))
+
+proc OBJECT_FACTORY_CLASS*(klass: pointer): PObjectFactoryClass = 
+  result = cast[PObjectFactoryClass](G_TYPE_CHECK_CLASS_CAST(klass, 
+      TYPE_OBJECT_FACTORY()))
+
+proc IS_OBJECT_FACTORY*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_OBJECT_FACTORY())
+
+proc IS_OBJECT_FACTORY_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_OBJECT_FACTORY())
+
+proc OBJECT_FACTORY_GET_CLASS*(obj: pointer): PObjectFactoryClass = 
+  result = cast[PObjectFactoryClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
+      TYPE_OBJECT_FACTORY()))
+
+proc TYPE_REGISTRY*(): GType = 
+  result = registry_get_type()
+
+proc REGISTRY*(obj: pointer): PRegistry = 
+  result = cast[PRegistry](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_REGISTRY()))
+
+proc REGISTRY_CLASS*(klass: pointer): PRegistryClass = 
+  result = cast[PRegistryClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_REGISTRY()))
+
+proc IS_REGISTRY*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_REGISTRY())
+
+proc IS_REGISTRY_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_REGISTRY())
+
+proc REGISTRY_GET_CLASS*(obj: pointer): PRegistryClass = 
+  result = cast[PRegistryClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_REGISTRY()))
+
+proc TYPE_RELATION*(): GType = 
+  result = relation_get_type()
+
+proc RELATION*(obj: pointer): PRelation = 
+  result = cast[PRelation](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_RELATION()))
+
+proc RELATION_CLASS*(klass: pointer): PRelationClass = 
+  result = cast[PRelationClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_RELATION()))
+
+proc IS_RELATION*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_RELATION())
+
+proc IS_RELATION_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RELATION())
+
+proc RELATION_GET_CLASS*(obj: pointer): PRelationClass = 
+  result = cast[PRelationClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_RELATION()))
+
+proc TYPE_RELATION_SET*(): GType = 
+  result = relation_set_get_type()
+
+proc RELATION_SET*(obj: pointer): PRelationSet = 
+  result = cast[PRelationSet](G_TYPE_CHECK_INSTANCE_CAST(obj, 
+      TYPE_RELATION_SET()))
+
+proc RELATION_SET_CLASS*(klass: pointer): PRelationSetClass = 
+  result = cast[PRelationSetClass](G_TYPE_CHECK_CLASS_CAST(klass, 
+      TYPE_RELATION_SET()))
+
+proc IS_RELATION_SET*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_RELATION_SET())
+
+proc IS_RELATION_SET_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RELATION_SET())
+
+proc RELATION_SET_GET_CLASS*(obj: pointer): PRelationSetClass = 
+  result = cast[PRelationSetClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
+      TYPE_RELATION_SET()))
+
+proc TYPE_SELECTION*(): GType = 
+  result = selection_get_type()
+
+proc IS_SELECTION*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_SELECTION())
+
+proc SELECTION*(obj: pointer): PSelection = 
+  result = cast[PSelection](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_SELECTION()))
+
+proc SELECTION_GET_IFACE*(obj: pointer): PSelectionIface = 
+  result = cast[PSelectionIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_SELECTION()))
+
+proc TYPE_STATE_SET*(): GType = 
+  result = state_set_get_type()
+
+proc STATE_SET*(obj: pointer): PStateSet = 
+  result = cast[PStateSet](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_STATE_SET()))
+
+proc STATE_SET_CLASS*(klass: pointer): PStateSetClass = 
+  result = cast[PStateSetClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_STATE_SET()))
+
+proc IS_STATE_SET*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_STATE_SET())
+
+proc IS_STATE_SET_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_STATE_SET())
+
+proc STATE_SET_GET_CLASS*(obj: pointer): PStateSetClass = 
+  result = cast[PStateSetClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_STATE_SET()))
+
+proc TYPE_STREAMABLE_CONTENT*(): GType = 
+  result = streamable_content_get_type()
+
+proc IS_STREAMABLE_CONTENT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_STREAMABLE_CONTENT())
+
+proc STREAMABLE_CONTENT*(obj: pointer): PStreamableContent = 
+  result = cast[PStreamableContent](G_TYPE_CHECK_INSTANCE_CAST(obj, 
+      TYPE_STREAMABLE_CONTENT()))
+
+proc STREAMABLE_CONTENT_GET_IFACE*(obj: pointer): PStreamableContentIface = 
+  result = cast[PStreamableContentIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
+      TYPE_STREAMABLE_CONTENT()))
+
+proc TYPE_TABLE*(): GType = 
+  result = table_get_type()
+
+proc IS_TABLE*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TABLE())
+
+proc TABLE*(obj: pointer): PTable = 
+  result = cast[PTable](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TABLE()))
+
+proc TABLE_GET_IFACE*(obj: pointer): PTableIface = 
+  result = cast[PTableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_TABLE()))
+
+proc TYPE_TEXT*(): GType = 
+  result = text_get_type()
+
+proc IS_TEXT*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT())
+
+proc TEXT*(obj: pointer): PText = 
+  result = cast[PText](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT()))
+
+proc TEXT_GET_IFACE*(obj: pointer): PTextIface = 
+  result = cast[PTextIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_TEXT()))
+
+proc TYPE_UTIL*(): GType = 
+  result = util_get_type()
+
+proc IS_UTIL*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_UTIL())
+
+proc UTIL*(obj: pointer): PUtil = 
+  result = cast[PUtil](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_UTIL()))
+
+proc UTIL_CLASS*(klass: pointer): PUtilClass = 
+  result = cast[PUtilClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_UTIL()))
+
+proc IS_UTIL_CLASS*(klass: pointer): bool = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_UTIL())
+
+proc UTIL_GET_CLASS*(obj: pointer): PUtilClass = 
+  result = cast[PUtilClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_UTIL()))
+
+proc TYPE_VALUE*(): GType = 
+  result = value_get_type()
+
+proc IS_VALUE*(obj: pointer): bool = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_VALUE())
+
+proc VALUE*(obj: pointer): PValue = 
+  result = cast[PValue](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_VALUE()))
+
+proc VALUE_GET_IFACE*(obj: pointer): PValueIface = 
+  result = cast[PValueIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, TYPE_VALUE()))