summary refs log tree commit diff stats
path: root/lib/wrappers
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-12-05 00:03:27 +0100
committerAraq <rumpf_a@web.de>2013-12-05 00:03:27 +0100
commit5eba93d584d5446256d05f0eef111ace5e12bac3 (patch)
tree7b638031f3e77c16ca0c27b9c83630d78846f19e /lib/wrappers
parent9035d15ed22de1f80486d94ec63e720a4d04cbc0 (diff)
parent2264875237cb72cf0288f2bd3d4a930c2a1acc50 (diff)
downloadNim-5eba93d584d5446256d05f0eef111ace5e12bac3.tar.gz
Merge branch 'master' into vm2
Conflicts:
	compiler/sem.nim
Diffstat (limited to 'lib/wrappers')
-rw-r--r--lib/wrappers/cairo/cairo.nim733
-rw-r--r--lib/wrappers/cairo/cairo_pragma.nim16
-rw-r--r--lib/wrappers/cairo/cairoft.nim36
-rw-r--r--lib/wrappers/cairo/cairowin32.nim37
-rw-r--r--lib/wrappers/cairo/cairoxlib.nim41
-rw-r--r--lib/wrappers/gtk/atk.nim1308
-rw-r--r--lib/wrappers/gtk/gdk2.nim3873
-rw-r--r--lib/wrappers/gtk/gdk2pixbuf.nim271
-rw-r--r--lib/wrappers/gtk/gdkglext.nim554
-rw-r--r--lib/wrappers/gtk/glib2.nim4540
-rw-r--r--lib/wrappers/gtk/gtk2.nim17064
-rw-r--r--lib/wrappers/gtk/gtkglext.nim53
-rw-r--r--lib/wrappers/gtk/gtkhtml.nim523
-rw-r--r--lib/wrappers/gtk/libglade2.nim111
-rw-r--r--lib/wrappers/gtk/pango.nim1160
-rw-r--r--lib/wrappers/gtk/pangoutils.nim42
-rw-r--r--lib/wrappers/lua/lauxlib.nim208
-rw-r--r--lib/wrappers/lua/lua.nim364
-rw-r--r--lib/wrappers/lua/lualib.nim64
-rw-r--r--lib/wrappers/opengl/gl.nim1536
-rw-r--r--lib/wrappers/opengl/glext.nim4673
-rw-r--r--lib/wrappers/opengl/glu.nim335
-rw-r--r--lib/wrappers/opengl/glut.nim438
-rw-r--r--lib/wrappers/opengl/glx.nim153
-rw-r--r--lib/wrappers/opengl/opengl.nim9708
-rw-r--r--lib/wrappers/opengl/wingl.nim368
-rw-r--r--lib/wrappers/openssl.nim4
-rw-r--r--lib/wrappers/python.nim1587
-rw-r--r--lib/wrappers/tcl.nim865
-rw-r--r--lib/wrappers/x11/cursorfont.nim110
-rw-r--r--lib/wrappers/x11/keysym.nim1925
-rw-r--r--lib/wrappers/x11/x.nim401
-rw-r--r--lib/wrappers/x11/x11pragma.nim20
-rw-r--r--lib/wrappers/x11/xatom.nim81
-rw-r--r--lib/wrappers/x11/xcms.nim396
-rw-r--r--lib/wrappers/x11/xf86dga.nim235
-rw-r--r--lib/wrappers/x11/xf86vmode.nim229
-rw-r--r--lib/wrappers/x11/xi.nim307
-rw-r--r--lib/wrappers/x11/xinerama.nim25
-rw-r--r--lib/wrappers/x11/xkb.nim2387
-rw-r--r--lib/wrappers/x11/xkblib.nim661
-rw-r--r--lib/wrappers/x11/xlib.nim2020
-rw-r--r--lib/wrappers/x11/xrandr.nim194
-rw-r--r--lib/wrappers/x11/xrender.nim241
-rw-r--r--lib/wrappers/x11/xresource.nim200
-rw-r--r--lib/wrappers/x11/xshm.nim77
-rw-r--r--lib/wrappers/x11/xutil.nim412
-rw-r--r--lib/wrappers/x11/xv.nim84
-rw-r--r--lib/wrappers/x11/xvlib.nim234
-rw-r--r--lib/wrappers/zip/zlib.nim1
50 files changed, 4 insertions, 60901 deletions
diff --git a/lib/wrappers/cairo/cairo.nim b/lib/wrappers/cairo/cairo.nim
deleted file mode 100644
index 172880529..000000000
--- a/lib/wrappers/cairo/cairo.nim
+++ /dev/null
@@ -1,733 +0,0 @@
-#* cairo - a vector graphics library with display and print output
-# *
-# * Copyright © 2002 University of Southern California
-# * Copyright © 2005 Red Hat, Inc.
-# *
-# * This library is free software; you can redistribute it and/or
-# * modify it either under the terms of the GNU Lesser General Public
-# * License version 2.1 as published by the Free Software Foundation
-# * (the "LGPL") or, at your option, under the terms of the Mozilla
-# * Public License Version 1.1 (the "MPL"). If you do not alter this
-# * notice, a recipient may use your version of this file under either
-# * the MPL or the LGPL.
-# *
-# * You should have received a copy of the LGPL along with this library
-# * in the file COPYING-LGPL-2.1; if not, write to the Free Software
-# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-# * You should have received a copy of the MPL along with this library
-# * in the file COPYING-MPL-1.1
-# *
-# * The contents of this file are subject to the Mozilla Public License
-# * Version 1.1 (the "License"); you may not use this file except in
-# * compliance with the License. You may obtain a copy of the License at
-# * http://www.mozilla.org/MPL/
-# *
-# * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
-# * OF ANY KIND, either express or implied. See the LGPL or the MPL for
-# * the specific language governing rights and limitations.
-# *
-# * The Original Code is the cairo graphics library.
-# *
-# * The Initial Developer of the Original Code is University of Southern
-# * California.
-# *
-# * Contributor(s):
-# *	Carl D. Worth <cworth@cworth.org>
-# #*
-# *  This FreePascal binding generated August 26, 2005
-# *  by Jeffrey Pohlmeyer <yetanothergeek@yahoo.com>
-#
-
-#
-#  - Updated to cairo version 1.4
-#  - Grouped OS specific fuctions in separated units
-#  - Organized the functions by group and ordered exactly as the c header
-#  - Cleared parameter list syntax according to pascal standard
-#
-#  By Luiz Américo Pereira Câmara
-#  October 2007
-#
-
-include "cairo_pragma.nim"
-
-type 
-  PByte = cstring
-  TStatus* = enum 
-    STATUS_SUCCESS = 0,
-    STATUS_NO_MEMORY,
-    STATUS_INVALID_RESTORE,
-    STATUS_INVALID_POP_GROUP,
-    STATUS_NO_CURRENT_POINT,
-    STATUS_INVALID_MATRIX,
-    STATUS_INVALID_STATUS,
-    STATUS_NULL_POINTER,
-    STATUS_INVALID_STRING,
-    STATUS_INVALID_PATH_DATA,
-    STATUS_READ_ERROR,
-    STATUS_WRITE_ERROR,
-    STATUS_SURFACE_FINISHED,
-    STATUS_SURFACE_TYPE_MISMATCH,
-    STATUS_PATTERN_TYPE_MISMATCH,
-    STATUS_INVALID_CONTENT,
-    STATUS_INVALID_FORMAT,
-    STATUS_INVALID_VISUAL,
-    STATUS_FILE_NOT_FOUND,
-    STATUS_INVALID_DASH,
-    STATUS_INVALID_DSC_COMMENT,
-    STATUS_INVALID_INDEX,
-    STATUS_CLIP_NOT_REPRESENTABLE,
-    STATUS_TEMP_FILE_ERROR,
-    STATUS_INVALID_STRIDE,
-    STATUS_FONT_TYPE_MISMATCH,
-    STATUS_USER_FONT_IMMUTABLE,
-    STATUS_USER_FONT_ERROR,
-    STATUS_NEGATIVE_COUNT,
-    STATUS_INVALID_CLUSTERS,
-    STATUS_INVALID_SLANT,
-    STATUS_INVALID_WEIGHT
-
-    
-  TOperator* = enum 
-    OPERATOR_CLEAR, OPERATOR_SOURCE, OPERATOR_OVER, OPERATOR_IN, OPERATOR_OUT, 
-    OPERATOR_ATOP, OPERATOR_DEST, OPERATOR_DEST_OVER, OPERATOR_DEST_IN, 
-    OPERATOR_DEST_OUT, OPERATOR_DEST_ATOP, OPERATOR_XOR, OPERATOR_ADD, 
-    OPERATOR_SATURATE
-  TAntialias* = enum 
-    ANTIALIAS_DEFAULT, ANTIALIAS_NONE, ANTIALIAS_GRAY, ANTIALIAS_SUBPIXEL
-  TFillRule* = enum 
-    FILL_RULE_WINDING, FILL_RULE_EVEN_ODD
-  TLineCap* = enum 
-    LINE_CAP_BUTT, LINE_CAP_ROUND, LINE_CAP_SQUARE
-  TLineJoin* = enum 
-    LINE_JOIN_MITER, LINE_JOIN_ROUND, LINE_JOIN_BEVEL
-  TFontSlant* = enum 
-    FONT_SLANT_NORMAL, FONT_SLANT_ITALIC, FONT_SLANT_OBLIQUE
-  TFontWeight* = enum 
-    FONT_WEIGHT_NORMAL, FONT_WEIGHT_BOLD
-  TSubpixelOrder* = enum 
-    SUBPIXEL_ORDER_DEFAULT, SUBPIXEL_ORDER_RGB, SUBPIXEL_ORDER_BGR, 
-    SUBPIXEL_ORDER_VRGB, SUBPIXEL_ORDER_VBGR
-  THintStyle* = enum 
-    HINT_STYLE_DEFAULT, HINT_STYLE_NONE, HINT_STYLE_SLIGHT, HINT_STYLE_MEDIUM, 
-    HINT_STYLE_FULL
-  THintMetrics* = enum 
-    HINT_METRICS_DEFAULT, HINT_METRICS_OFF, HINT_METRICS_ON
-  TPathDataType* = enum 
-    PATH_MOVE_TO, PATH_LINE_TO, PATH_CURVE_TO, PATH_CLOSE_PATH
-  TContent* = enum 
-    CONTENT_COLOR = 0x00001000, CONTENT_ALPHA = 0x00002000, 
-    CONTENT_COLOR_ALPHA = 0x00003000
-  TFormat* = enum 
-    FORMAT_ARGB32, FORMAT_RGB24, FORMAT_A8, FORMAT_A1
-  TExtend* = enum 
-    EXTEND_NONE, EXTEND_REPEAT, EXTEND_REFLECT, EXTEND_PAD
-  TFilter* = enum 
-    FILTER_FAST, FILTER_GOOD, FILTER_BEST, FILTER_NEAREST, FILTER_BILINEAR, 
-    FILTER_GAUSSIAN
-  TFontType* = enum 
-    FONT_TYPE_TOY, FONT_TYPE_FT, FONT_TYPE_WIN32, FONT_TYPE_ATSUI
-  TPatternType* = enum 
-    PATTERN_TYPE_SOLID, PATTERN_TYPE_SURFACE, PATTERN_TYPE_LINEAR, 
-    PATTERN_TYPE_RADIAL
-  TSurfaceType* = enum 
-    SURFACE_TYPE_IMAGE, SURFACE_TYPE_PDF, SURFACE_TYPE_PS, SURFACE_TYPE_XLIB, 
-    SURFACE_TYPE_XCB, SURFACE_TYPE_GLITZ, SURFACE_TYPE_QUARTZ, 
-    SURFACE_TYPE_WIN32, SURFACE_TYPE_BEOS, SURFACE_TYPE_DIRECTFB, 
-    SURFACE_TYPE_SVG, SURFACE_TYPE_OS2
-  TSvgVersion* = enum 
-    SVG_VERSION_1_1, SVG_VERSION_1_2
-  PSurface* = ptr TSurface
-  PPSurface* = ptr PSurface
-  PContext* = ptr TContext
-  PPattern* = ptr TPattern
-  PFontOptions* = ptr TFontOptions
-  PFontFace* = ptr TFontFace
-  PScaledFont* = ptr TScaledFont
-  PBool* = ptr TBool
-  TBool* = int32
-  PMatrix* = ptr TMatrix
-  PUserDataKey* = ptr TUserDataKey
-  PGlyph* = ptr TGlyph
-  PTextExtents* = ptr TTextExtents
-  PFontExtents* = ptr TFontExtents
-  PPathDataType* = ptr TPathDataType
-  PPathData* = ptr TPathData
-  PPath* = ptr TPath
-  PRectangle* = ptr TRectangle
-  PRectangleList* = ptr TRectangleList
-  TDestroyFunc* = proc (data: Pointer){.cdecl.}
-  TWriteFunc* = proc (closure: Pointer, data: PByte, len: int32): TStatus{.cdecl.}
-  TReadFunc* = proc (closure: Pointer, data: PByte, len: int32): TStatus{.cdecl.}
-  TContext*{.final.} = object        #OPAQUE
-  TSurface*{.final.} = object  #OPAQUE
-  TPattern*{.final.} = object  #OPAQUE
-  TScaledFont*{.final.} = object  #OPAQUE
-  TFontFace*{.final.} = object  #OPAQUE
-  TFontOptions*{.final.} = object  #OPAQUE
-  TMatrix*{.final.} = object 
-    xx: float64
-    yx: float64
-    xy: float64
-    yy: float64
-    x0: float64
-    y0: float64
-
-  TUserDataKey*{.final.} = object 
-    unused: int32
-
-  TGlyph*{.final.} = object 
-    index: int32
-    x: float64
-    y: float64
-
-  TTextExtents*{.final.} = object 
-    x_bearing: float64
-    y_bearing: float64
-    width: float64
-    height: float64
-    x_advance: float64
-    y_advance: float64
-
-  TFontExtents*{.final.} = object 
-    ascent: float64
-    descent: float64
-    height: float64
-    max_x_advance: float64
-    max_y_advance: float64
-
-  TPathData*{.final.} = object  #* _type : TCairoPathDataType;
-                                #       length : LongInt;
-                                #    end
-    x: float64
-    y: float64
-
-  TPath*{.final.} = object 
-    status: TStatus
-    data: PPathData
-    num_data: int32
-
-  TRectangle*{.final.} = object 
-    x, y, width, height: float64
-
-  TRectangleList*{.final.} = object 
-    status: TStatus
-    rectangles: PRectangle
-    num_rectangles: int32
-
-
-proc version*(): int32{.cdecl, importc: "cairo_version", libcairo.}
-proc version_string*(): cstring{.cdecl, importc: "cairo_version_string", 
-                                 libcairo.}
-  #Helper function to retrieve decoded version
-proc version*(major, minor, micro: var int32)
-  #* Functions for manipulating state objects
-proc create*(target: PSurface): PContext{.cdecl, importc: "cairo_create", 
-                                   libcairo.}
-proc reference*(cr: PContext): PContext{.cdecl, importc: "cairo_reference", libcairo.}
-proc destroy*(cr: PContext){.cdecl, importc: "cairo_destroy", libcairo.}
-proc get_reference_count*(cr: PContext): int32{.cdecl, 
-    importc: "cairo_get_reference_count", libcairo.}
-proc get_user_data*(cr: PContext, key: PUserDataKey): pointer{.cdecl, 
-    importc: "cairo_get_user_data", libcairo.}
-proc set_user_data*(cr: PContext, key: PUserDataKey, user_data: Pointer, 
-                    destroy: TDestroyFunc): TStatus{.cdecl, 
-    importc: "cairo_set_user_data", libcairo.}
-proc save*(cr: PContext){.cdecl, importc: "cairo_save", libcairo.}
-proc restore*(cr: PContext){.cdecl, importc: "cairo_restore", libcairo.}
-proc push_group*(cr: PContext){.cdecl, importc: "cairo_push_group", libcairo.}
-proc push_group_with_content*(cr: PContext, content: TContent){.cdecl, 
-    importc: "cairo_push_group_with_content", libcairo.}
-proc pop_group*(cr: PContext): PPattern{.cdecl, importc: "cairo_pop_group", 
-                                  libcairo.}
-proc pop_group_to_source*(cr: PContext){.cdecl, importc: "cairo_pop_group_to_source", 
-                                  libcairo.}
-  #* Modify state
-proc set_operator*(cr: PContext, op: TOperator){.cdecl, importc: "cairo_set_operator", 
-    libcairo.}
-proc set_source*(cr: PContext, source: PPattern){.cdecl, importc: "cairo_set_source", 
-    libcairo.}
-proc set_source_rgb*(cr: PContext, red, green, blue: float64){.cdecl, 
-    importc: "cairo_set_source_rgb", libcairo.}
-proc set_source_rgba*(cr: PContext, red, green, blue, alpha: float64){.cdecl, 
-    importc: "cairo_set_source_rgba", libcairo.}
-proc set_source*(cr: PContext, surface: PSurface, x, y: float64){.cdecl, 
-    importc: "cairo_set_source_surface", libcairo.}
-proc set_tolerance*(cr: PContext, tolerance: float64){.cdecl, 
-    importc: "cairo_set_tolerance", libcairo.}
-proc set_antialias*(cr: PContext, antialias: TAntialias){.cdecl, 
-    importc: "cairo_set_antialias", libcairo.}
-proc set_fill_rule*(cr: PContext, fill_rule: TFillRule){.cdecl, 
-    importc: "cairo_set_fill_rule", libcairo.}
-proc set_line_width*(cr: PContext, width: float64){.cdecl, 
-    importc: "cairo_set_line_width", libcairo.}
-proc set_line_cap*(cr: PContext, line_cap: TLineCap){.cdecl, 
-    importc: "cairo_set_line_cap", libcairo.}
-proc set_line_join*(cr: PContext, line_join: TLineJoin){.cdecl, 
-    importc: "cairo_set_line_join", libcairo.}
-proc set_dash*(cr: PContext, dashes: openarray[float64], offset: float64){.cdecl, 
-    importc: "cairo_set_dash", libcairo.}
-proc set_miter_limit*(cr: PContext, limit: float64){.cdecl, 
-    importc: "cairo_set_miter_limit", libcairo.}
-proc translate*(cr: PContext, tx, ty: float64){.cdecl, importc: "cairo_translate", 
-    libcairo.}
-proc scale*(cr: PContext, sx, sy: float64){.cdecl, importc: "cairo_scale", 
-                                     libcairo.}
-proc rotate*(cr: PContext, angle: float64){.cdecl, importc: "cairo_rotate", 
-                                     libcairo.}
-proc transform*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_transform", 
-    libcairo.}
-proc set_matrix*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_set_matrix", 
-    libcairo.}
-proc identity_matrix*(cr: PContext){.cdecl, importc: "cairo_identity_matrix", 
-                              libcairo.}
-proc user_to_device*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_user_to_device", libcairo.}
-proc user_to_device_distance*(cr: PContext, dx, dy: var float64){.cdecl, 
-    importc: "cairo_user_to_device_distance", libcairo.}
-proc device_to_user*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_device_to_user", libcairo.}
-proc device_to_user_distance*(cr: PContext, dx, dy: var float64){.cdecl, 
-    importc: "cairo_device_to_user_distance", libcairo.}
-  #* Path creation functions
-proc new_path*(cr: PContext){.cdecl, importc: "cairo_new_path", libcairo.}
-proc move_to*(cr: PContext, x, y: float64){.cdecl, importc: "cairo_move_to", 
-                                     libcairo.}
-proc new_sub_path*(cr: PContext){.cdecl, importc: "cairo_new_sub_path", 
-                           libcairo.}
-proc line_to*(cr: PContext, x, y: float64){.cdecl, importc: "cairo_line_to", 
-                                     libcairo.}
-proc curve_to*(cr: PContext, x1, y1, x2, y2, x3, y3: float64){.cdecl, 
-    importc: "cairo_curve_to", libcairo.}
-proc arc*(cr: PContext, xc, yc, radius, angle1, angle2: float64){.cdecl, 
-    importc: "cairo_arc", libcairo.}
-proc arc_negative*(cr: PContext, xc, yc, radius, angle1, angle2: float64){.cdecl, 
-    importc: "cairo_arc_negative", libcairo.}
-proc rel_move_to*(cr: PContext, dx, dy: float64){.cdecl, importc: "cairo_rel_move_to", 
-    libcairo.}
-proc rel_line_to*(cr: PContext, dx, dy: float64){.cdecl, importc: "cairo_rel_line_to", 
-    libcairo.}
-proc rel_curve_to*(cr: PContext, dx1, dy1, dx2, dy2, dx3, dy3: float64){.cdecl, 
-    importc: "cairo_rel_curve_to", libcairo.}
-proc rectangle*(cr: PContext, x, y, width, height: float64){.cdecl, 
-    importc: "cairo_rectangle", libcairo.}
-proc close_path*(cr: PContext){.cdecl, importc: "cairo_close_path", libcairo.}
-  #* Painting functions
-proc paint*(cr: PContext){.cdecl, importc: "cairo_paint", libcairo.}
-proc paint_with_alpha*(cr: PContext, alpha: float64){.cdecl, 
-    importc: "cairo_paint_with_alpha", libcairo.}
-proc mask*(cr: PContext, pattern: PPattern){.cdecl, importc: "cairo_mask", 
-                                      libcairo.}
-proc mask*(cr: PContext, surface: PSurface, surface_x, surface_y: float64){.
-    cdecl, importc: "cairo_mask_surface", libcairo.}
-proc stroke*(cr: PContext){.cdecl, importc: "cairo_stroke", libcairo.}
-proc stroke_preserve*(cr: PContext){.cdecl, importc: "cairo_stroke_preserve", 
-                              libcairo.}
-proc fill*(cr: PContext){.cdecl, importc: "cairo_fill", libcairo.}
-proc fill_preserve*(cr: PContext){.cdecl, importc: "cairo_fill_preserve", 
-                            libcairo.}
-proc copy_page*(cr: PContext){.cdecl, importc: "cairo_copy_page", libcairo.}
-proc show_page*(cr: PContext){.cdecl, importc: "cairo_show_page", libcairo.}
-  #* Insideness testing
-proc in_stroke*(cr: PContext, x, y: float64): TBool{.cdecl, importc: "cairo_in_stroke", 
-    libcairo.}
-proc in_fill*(cr: PContext, x, y: float64): TBool{.cdecl, importc: "cairo_in_fill", 
-    libcairo.}
-  #* Rectangular extents
-proc stroke_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_stroke_extents", libcairo.}
-proc fill_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_fill_extents", libcairo.}
-  #* Clipping
-proc reset_clip*(cr: PContext){.cdecl, importc: "cairo_reset_clip", libcairo.}
-proc clip*(cr: PContext){.cdecl, importc: "cairo_clip", libcairo.}
-proc clip_preserve*(cr: PContext){.cdecl, importc: "cairo_clip_preserve", 
-                            libcairo.}
-proc clip_extents*(cr: PContext, x1, y1, x2, y2: var float64){.cdecl, 
-    importc: "cairo_clip_extents", libcairo.}
-proc copy_clip_rectangle_list*(cr: PContext): PRectangleList{.cdecl, 
-    importc: "cairo_copy_clip_rectangle_list", libcairo.}
-proc rectangle_list_destroy*(rectangle_list: PRectangleList){.cdecl, 
-    importc: "cairo_rectangle_list_destroy", libcairo.}
-  #* Font/Text functions
-proc font_options_create*(): PFontOptions{.cdecl, 
-    importc: "cairo_font_options_create", libcairo.}
-proc copy*(original: PFontOptions): PFontOptions{.cdecl, 
-    importc: "cairo_font_options_copy", libcairo.}
-proc destroy*(options: PFontOptions){.cdecl, 
-    importc: "cairo_font_options_destroy", libcairo.}
-proc status*(options: PFontOptions): TStatus{.cdecl, 
-    importc: "cairo_font_options_status", libcairo.}
-proc merge*(options, other: PFontOptions){.cdecl, 
-    importc: "cairo_font_options_merge", libcairo.}
-proc equal*(options, other: PFontOptions): TBool{.cdecl, 
-    importc: "cairo_font_options_equal", libcairo.}
-proc hash*(options: PFontOptions): int32{.cdecl, 
-    importc: "cairo_font_options_hash", libcairo.}
-proc set_antialias*(options: PFontOptions, antialias: TAntialias){.
-    cdecl, importc: "cairo_font_options_set_antialias", libcairo.}
-proc get_antialias*(options: PFontOptions): TAntialias{.cdecl, 
-    importc: "cairo_font_options_get_antialias", libcairo.}
-proc set_subpixel_order*(options: PFontOptions, 
-                                      subpixel_order: TSubpixelOrder){.cdecl, 
-    importc: "cairo_font_options_set_subpixel_order", libcairo.}
-proc get_subpixel_order*(options: PFontOptions): TSubpixelOrder{.
-    cdecl, importc: "cairo_font_options_get_subpixel_order", libcairo.}
-proc set_hint_style*(options: PFontOptions, hint_style: THintStyle){.
-    cdecl, importc: "cairo_font_options_set_hint_style", libcairo.}
-proc get_hint_style*(options: PFontOptions): THintStyle{.cdecl, 
-    importc: "cairo_font_options_get_hint_style", libcairo.}
-proc set_hint_metrics*(options: PFontOptions, 
-                                    hint_metrics: THintMetrics){.cdecl, 
-    importc: "cairo_font_options_set_hint_metrics", libcairo.}
-proc get_hint_metrics*(options: PFontOptions): THintMetrics{.cdecl, 
-    importc: "cairo_font_options_get_hint_metrics", libcairo.}
-  #* This interface is for dealing with text as text, not caring about the
-  #   font object inside the the TCairo.
-proc select_font_face*(cr: PContext, family: cstring, slant: TFontSlant, 
-                       weight: TFontWeight){.cdecl, 
-    importc: "cairo_select_font_face", libcairo.}
-proc set_font_size*(cr: PContext, size: float64){.cdecl, 
-    importc: "cairo_set_font_size", libcairo.}
-proc set_font_matrix*(cr: PContext, matrix: PMatrix){.cdecl, 
-    importc: "cairo_set_font_matrix", libcairo.}
-proc get_font_matrix*(cr: PContext, matrix: PMatrix){.cdecl, 
-    importc: "cairo_get_font_matrix", libcairo.}
-proc set_font_options*(cr: PContext, options: PFontOptions){.cdecl, 
-    importc: "cairo_set_font_options", libcairo.}
-proc get_font_options*(cr: PContext, options: PFontOptions){.cdecl, 
-    importc: "cairo_get_font_options", libcairo.}
-proc set_font_face*(cr: PContext, font_face: PFontFace){.cdecl, 
-    importc: "cairo_set_font_face", libcairo.}
-proc get_font_face*(cr: PContext): PFontFace{.cdecl, importc: "cairo_get_font_face", 
-                                       libcairo.}
-proc set_scaled_font*(cr: PContext, scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_set_scaled_font", libcairo.}
-proc get_scaled_font*(cr: PContext): PScaledFont{.cdecl, 
-    importc: "cairo_get_scaled_font", libcairo.}
-proc show_text*(cr: PContext, utf8: cstring){.cdecl, importc: "cairo_show_text", 
-                                       libcairo.}
-proc show_glyphs*(cr: PContext, glyphs: PGlyph, num_glyphs: int32){.cdecl, 
-    importc: "cairo_show_glyphs", libcairo.}
-proc text_path*(cr: PContext, utf8: cstring){.cdecl, importc: "cairo_text_path", 
-                                       libcairo.}
-proc glyph_path*(cr: PContext, glyphs: PGlyph, num_glyphs: int32){.cdecl, 
-    importc: "cairo_glyph_path", libcairo.}
-proc text_extents*(cr: PContext, utf8: cstring, extents: PTextExtents){.cdecl, 
-    importc: "cairo_text_extents", libcairo.}
-proc glyph_extents*(cr: PContext, glyphs: PGlyph, num_glyphs: int32, 
-                    extents: PTextExtents){.cdecl, 
-    importc: "cairo_glyph_extents", libcairo.}
-proc font_extents*(cr: PContext, extents: PFontExtents){.cdecl, 
-    importc: "cairo_font_extents", libcairo.}
-  #* Generic identifier for a font style
-proc reference*(font_face: PFontFace): PFontFace{.cdecl, 
-    importc: "cairo_font_face_reference", libcairo.}
-proc destroy*(font_face: PFontFace){.cdecl, 
-    importc: "cairo_font_face_destroy", libcairo.}
-proc get_reference_count*(font_face: PFontFace): int32{.cdecl, 
-    importc: "cairo_font_face_get_reference_count", libcairo.}
-proc status*(font_face: PFontFace): TStatus{.cdecl, 
-    importc: "cairo_font_face_status", libcairo.}
-proc get_type*(font_face: PFontFace): TFontType{.cdecl, 
-    importc: "cairo_font_face_get_type", libcairo.}
-proc get_user_data*(font_face: PFontFace, key: PUserDataKey): pointer{.
-    cdecl, importc: "cairo_font_face_get_user_data", libcairo.}
-proc set_user_data*(font_face: PFontFace, key: PUserDataKey, 
-                    user_data: pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_font_face_set_user_data", libcairo.}
-  #* Portable interface to general font features
-proc scaled_font_create*(font_face: PFontFace, font_matrix: PMatrix, 
-                         ctm: PMatrix, options: PFontOptions): PScaledFont{.
-    cdecl, importc: "cairo_scaled_font_create", libcairo.}
-proc reference*(scaled_font: PScaledFont): PScaledFont{.cdecl, 
-    importc: "cairo_scaled_font_reference", libcairo.}
-proc destroy*(scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_scaled_font_destroy", libcairo.}
-proc get_reference_count*(scaled_font: PScaledFont): int32{.cdecl, 
-    importc: "cairo_scaled_font_get_reference_count", libcairo.}
-proc status*(scaled_font: PScaledFont): TStatus{.cdecl, 
-    importc: "cairo_scaled_font_status", libcairo.}
-proc get_type*(scaled_font: PScaledFont): TFontType{.cdecl, 
-    importc: "cairo_scaled_font_get_type", libcairo.}
-proc get_user_data*(scaled_font: PScaledFont, key: PUserDataKey): Pointer{.
-    cdecl, importc: "cairo_scaled_font_get_user_data", libcairo.}
-proc set_user_data*(scaled_font: PScaledFont, key: PUserDataKey, 
-                    user_data: Pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_scaled_font_set_user_data", libcairo.}
-proc extents*(scaled_font: PScaledFont, extents: PFontExtents){.
-    cdecl, importc: "cairo_scaled_font_extents", libcairo.}
-proc text_extents*(scaled_font: PScaledFont, utf8: cstring, 
-                   extents: PTextExtents){.cdecl, 
-    importc: "cairo_scaled_font_text_extents", libcairo.}
-proc glyph_extents*(scaled_font: PScaledFont, glyphs: PGlyph, 
-                                num_glyphs: int32, extents: PTextExtents){.
-    cdecl, importc: "cairo_scaled_font_glyph_extents", libcairo.}
-proc get_font_face*(scaled_font: PScaledFont): PFontFace{.cdecl, 
-    importc: "cairo_scaled_font_get_font_face", libcairo.}
-proc get_font_matrix*(scaled_font: PScaledFont, font_matrix: PMatrix){.
-    cdecl, importc: "cairo_scaled_font_get_font_matrix", libcairo.}
-proc get_ctm*(scaled_font: PScaledFont, ctm: PMatrix){.cdecl, 
-    importc: "cairo_scaled_font_get_ctm", libcairo.}
-proc get_font_options*(scaled_font: PScaledFont, 
-                                   options: PFontOptions){.cdecl, 
-    importc: "cairo_scaled_font_get_font_options", libcairo.}
-  #* Query functions
-proc get_operator*(cr: PContext): TOperator{.cdecl, importc: "cairo_get_operator", 
-                                      libcairo.}
-proc get_source*(cr: PContext): PPattern{.cdecl, importc: "cairo_get_source", 
-                                   libcairo.}
-proc get_tolerance*(cr: PContext): float64{.cdecl, importc: "cairo_get_tolerance", 
-                                     libcairo.}
-proc get_antialias*(cr: PContext): TAntialias{.cdecl, importc: "cairo_get_antialias", 
-                                        libcairo.}
-proc get_current_point*(cr: PContext, x, y: var float64){.cdecl, 
-    importc: "cairo_get_current_point", libcairo.}
-proc get_fill_rule*(cr: PContext): TFillRule{.cdecl, importc: "cairo_get_fill_rule", 
-                                       libcairo.}
-proc get_line_width*(cr: PContext): float64{.cdecl, importc: "cairo_get_line_width", 
-                                      libcairo.}
-proc get_line_cap*(cr: PContext): TLineCap{.cdecl, importc: "cairo_get_line_cap", 
-                                     libcairo.}
-proc get_line_join*(cr: PContext): TLineJoin{.cdecl, importc: "cairo_get_line_join", 
-                                       libcairo.}
-proc get_miter_limit*(cr: PContext): float64{.cdecl, importc: "cairo_get_miter_limit", 
-                                       libcairo.}
-proc get_dash_count*(cr: PContext): int32{.cdecl, importc: "cairo_get_dash_count", 
-                                    libcairo.}
-proc get_dash*(cr: PContext, dashes, offset: var float64){.cdecl, 
-    importc: "cairo_get_dash", libcairo.}
-proc get_matrix*(cr: PContext, matrix: PMatrix){.cdecl, importc: "cairo_get_matrix", 
-    libcairo.}
-proc get_target*(cr: PContext): PSurface{.cdecl, importc: "cairo_get_target", 
-                                   libcairo.}
-proc get_group_target*(cr: PContext): PSurface{.cdecl, 
-    importc: "cairo_get_group_target", libcairo.}
-proc copy_path*(cr: PContext): PPath{.cdecl, importc: "cairo_copy_path", 
-                               libcairo.}
-proc copy_path_flat*(cr: PContext): PPath{.cdecl, importc: "cairo_copy_path_flat", 
-                                    libcairo.}
-proc append_path*(cr: PContext, path: PPath){.cdecl, importc: "cairo_append_path", 
-                                       libcairo.}
-proc destroy*(path: PPath){.cdecl, importc: "cairo_path_destroy", 
-                                 libcairo.}
-  #* Error status queries
-proc status*(cr: PContext): TStatus{.cdecl, importc: "cairo_status", libcairo.}
-proc status_to_string*(status: TStatus): cstring{.cdecl, 
-    importc: "cairo_status_to_string", libcairo.}
-  #* Surface manipulation
-proc surface_create_similar*(other: PSurface, content: TContent, 
-                             width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_surface_create_similar", libcairo.}
-proc reference*(surface: PSurface): PSurface{.cdecl, 
-    importc: "cairo_surface_reference", libcairo.}
-proc finish*(surface: PSurface){.cdecl, importc: "cairo_surface_finish", 
-    libcairo.}
-proc destroy*(surface: PSurface){.cdecl, 
-    importc: "cairo_surface_destroy", libcairo.}
-proc get_reference_count*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_surface_get_reference_count", libcairo.}
-proc status*(surface: PSurface): TStatus{.cdecl, 
-    importc: "cairo_surface_status", libcairo.}
-proc get_type*(surface: PSurface): TSurfaceType{.cdecl, 
-    importc: "cairo_surface_get_type", libcairo.}
-proc get_content*(surface: PSurface): TContent{.cdecl, 
-    importc: "cairo_surface_get_content", libcairo.}
-proc write_to_png*(surface: PSurface, filename: cstring): TStatus{.
-    cdecl, importc: "cairo_surface_write_to_png", libcairo.}
-proc write_to_png*(surface: PSurface, write_func: TWriteFunc, 
-                   closure: pointer): TStatus{.cdecl, 
-    importc: "cairo_surface_write_to_png_stream", libcairo.}
-proc get_user_data*(surface: PSurface, key: PUserDataKey): pointer{.
-    cdecl, importc: "cairo_surface_get_user_data", libcairo.}
-proc set_user_data*(surface: PSurface, key: PUserDataKey, 
-                            user_data: pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_surface_set_user_data", libcairo.}
-proc get_font_options*(surface: PSurface, options: PFontOptions){.cdecl, 
-    importc: "cairo_surface_get_font_options", libcairo.}
-proc flush*(surface: PSurface){.cdecl, importc: "cairo_surface_flush", 
-                                        libcairo.}
-proc mark_dirty*(surface: PSurface){.cdecl, 
-    importc: "cairo_surface_mark_dirty", libcairo.}
-proc mark_dirty_rectangle*(surface: PSurface, x, y, width, height: int32){.
-    cdecl, importc: "cairo_surface_mark_dirty_rectangle", libcairo.}
-proc set_device_offset*(surface: PSurface, x_offset, y_offset: float64){.
-    cdecl, importc: "cairo_surface_set_device_offset", libcairo.}
-proc get_device_offset*(surface: PSurface, 
-                                x_offset, y_offset: var float64){.cdecl, 
-    importc: "cairo_surface_get_device_offset", libcairo.}
-proc set_fallback_resolution*(surface: PSurface, x_pixels_per_inch, 
-    y_pixels_per_inch: float64){.cdecl, importc: "cairo_surface_set_fallback_resolution", 
-                                 libcairo.}
-  #* Image-surface functions
-proc image_surface_create*(format: TFormat, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_image_surface_create", libcairo.}
-proc image_surface_create*(data: Pbyte, format: TFormat, 
-                           width, height, stride: int32): PSurface{.
-    cdecl, importc: "cairo_image_surface_create_for_data", libcairo.}
-proc get_data*(surface: PSurface): cstring{.cdecl, 
-    importc: "cairo_image_surface_get_data", libcairo.}
-proc get_format*(surface: PSurface): TFormat{.cdecl, 
-    importc: "cairo_image_surface_get_format", libcairo.}
-proc get_width*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_width", libcairo.}
-proc get_height*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_height", libcairo.}
-proc get_stride*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_image_surface_get_stride", libcairo.}
-proc image_surface_create_from_png*(filename: cstring): PSurface{.cdecl, 
-    importc: "cairo_image_surface_create_from_png", libcairo.}
-proc image_surface_create_from_png*(read_func: TReadFunc, 
-    closure: pointer): PSurface{.cdecl, importc: "cairo_image_surface_create_from_png_stream", 
-                                 libcairo.}
-  #* Pattern creation functions
-proc pattern_create_rgb*(red, green, blue: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_rgb", libcairo.}
-proc pattern_create_rgba*(red, green, blue, alpha: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_rgba", libcairo.}
-proc pattern_create_for_surface*(surface: PSurface): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_for_surface", libcairo.}
-proc pattern_create_linear*(x0, y0, x1, y1: float64): PPattern{.cdecl, 
-    importc: "cairo_pattern_create_linear", libcairo.}
-proc pattern_create_radial*(cx0, cy0, radius0, cx1, cy1, radius1: float64): PPattern{.
-    cdecl, importc: "cairo_pattern_create_radial", libcairo.}
-proc reference*(pattern: PPattern): PPattern{.cdecl, 
-    importc: "cairo_pattern_reference", libcairo.}
-proc destroy*(pattern: PPattern){.cdecl, 
-    importc: "cairo_pattern_destroy", libcairo.}
-proc get_reference_count*(pattern: PPattern): int32{.cdecl, 
-    importc: "cairo_pattern_get_reference_count", libcairo.}
-proc status*(pattern: PPattern): TStatus{.cdecl, 
-    importc: "cairo_pattern_status", libcairo.}
-proc get_user_data*(pattern: PPattern, key: PUserDataKey): Pointer{.
-    cdecl, importc: "cairo_pattern_get_user_data", libcairo.}
-proc set_user_data*(pattern: PPattern, key: PUserDataKey, 
-                    user_data: Pointer, destroy: TDestroyFunc): TStatus{.
-    cdecl, importc: "cairo_pattern_set_user_data", libcairo.}
-proc get_type*(pattern: PPattern): TPatternType{.cdecl, 
-    importc: "cairo_pattern_get_type", libcairo.}
-proc add_color_stop_rgb*(pattern: PPattern, 
-                                 offset, red, green, blue: float64){.cdecl, 
-    importc: "cairo_pattern_add_color_stop_rgb", libcairo.}
-proc add_color_stop_rgba*(pattern: PPattern, 
-                                  offset, red, green, blue, alpha: float64){.
-    cdecl, importc: "cairo_pattern_add_color_stop_rgba", libcairo.}
-proc set_matrix*(pattern: PPattern, matrix: PMatrix){.cdecl, 
-    importc: "cairo_pattern_set_matrix", libcairo.}
-proc get_matrix*(pattern: PPattern, matrix: PMatrix){.cdecl, 
-    importc: "cairo_pattern_get_matrix", libcairo.}
-proc set_extend*(pattern: PPattern, extend: TExtend){.cdecl, 
-    importc: "cairo_pattern_set_extend", libcairo.}
-proc get_extend*(pattern: PPattern): TExtend{.cdecl, 
-    importc: "cairo_pattern_get_extend", libcairo.}
-proc set_filter*(pattern: PPattern, filter: TFilter){.cdecl, 
-    importc: "cairo_pattern_set_filter", libcairo.}
-proc get_filter*(pattern: PPattern): TFilter{.cdecl, 
-    importc: "cairo_pattern_get_filter", libcairo.}
-proc get_rgba*(pattern: PPattern, 
-               red, green, blue, alpha: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_rgba", libcairo.}
-proc get_surface*(pattern: PPattern, surface: PPSurface): TStatus{.
-    cdecl, importc: "cairo_pattern_get_surface", libcairo.}
-proc get_color_stop_rgba*(pattern: PPattern, index: int32, 
-                       offset, red, green, blue, alpha: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_color_stop_rgba", libcairo.}
-proc get_color_stop_count*(pattern: PPattern, count: var int32): TStatus{.
-    cdecl, importc: "cairo_pattern_get_color_stop_count", libcairo.}
-proc get_linear_points*(pattern: PPattern, 
-                        x0, y0, x1, y1: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_linear_points", libcairo.}
-proc get_radial_circles*(pattern: PPattern, 
-                         x0, y0, r0, x1, y1, r1: var float64): TStatus{.
-    cdecl, importc: "cairo_pattern_get_radial_circles", libcairo.}
-  #* Matrix functions
-proc init*(matrix: PMatrix, xx, yx, xy, yy, x0, y0: float64){.cdecl, 
-    importc: "cairo_matrix_init", libcairo.}
-proc init_identity*(matrix: PMatrix){.cdecl, 
-    importc: "cairo_matrix_init_identity", libcairo.}
-proc init_translate*(matrix: PMatrix, tx, ty: float64){.cdecl, 
-    importc: "cairo_matrix_init_translate", libcairo.}
-proc init_scale*(matrix: PMatrix, sx, sy: float64){.cdecl, 
-    importc: "cairo_matrix_init_scale", libcairo.}
-proc init_rotate*(matrix: PMatrix, radians: float64){.cdecl, 
-    importc: "cairo_matrix_init_rotate", libcairo.}
-proc translate*(matrix: PMatrix, tx, ty: float64){.cdecl, 
-    importc: "cairo_matrix_translate", libcairo.}
-proc scale*(matrix: PMatrix, sx, sy: float64){.cdecl, 
-    importc: "cairo_matrix_scale", libcairo.}
-proc rotate*(matrix: PMatrix, radians: float64){.cdecl, 
-    importc: "cairo_matrix_rotate", libcairo.}
-proc invert*(matrix: PMatrix): TStatus{.cdecl, 
-    importc: "cairo_matrix_invert", libcairo.}
-proc multiply*(result, a, b: PMatrix){.cdecl, 
-    importc: "cairo_matrix_multiply", libcairo.}
-proc transform_distance*(matrix: PMatrix, dx, dy: var float64){.cdecl, 
-    importc: "cairo_matrix_transform_distance", libcairo.}
-proc transform_point*(matrix: PMatrix, x, y: var float64){.cdecl, 
-    importc: "cairo_matrix_transform_point", libcairo.}
-  #* PDF functions
-proc pdf_surface_create*(filename: cstring, 
-                         width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_pdf_surface_create", libcairo.}
-proc pdf_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                    width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_pdf_surface_create_for_stream", libcairo.}
-proc pdf_surface_set_size*(surface: PSurface, 
-                           width_in_points, height_in_points: float64){.cdecl, 
-    importc: "cairo_pdf_surface_set_size", libcairo.}
-  #* PS functions
-proc ps_surface_create*(filename: cstring, 
-                        width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_ps_surface_create", libcairo.}
-proc ps_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                   width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_ps_surface_create_for_stream", libcairo.}
-proc ps_surface_set_size*(surface: PSurface, 
-                          width_in_points, height_in_points: float64){.cdecl, 
-    importc: "cairo_ps_surface_set_size", libcairo.}
-proc ps_surface_dsc_comment*(surface: PSurface, comment: cstring){.cdecl, 
-    importc: "cairo_ps_surface_dsc_comment", libcairo.}
-proc ps_surface_dsc_begin_setup*(surface: PSurface){.cdecl, 
-    importc: "cairo_ps_surface_dsc_begin_setup", libcairo.}
-proc ps_surface_dsc_begin_page_setup*(surface: PSurface){.cdecl, 
-    importc: "cairo_ps_surface_dsc_begin_page_setup", libcairo.}
-  #* SVG functions
-proc svg_surface_create*(filename: cstring, 
-                         width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_svg_surface_create", libcairo.}
-proc svg_surface_create_for_stream*(write_func: TWriteFunc, closure: Pointer, 
-                                    width_in_points, height_in_points: float64): PSurface{.
-    cdecl, importc: "cairo_svg_surface_create_for_stream", libcairo.}
-proc svg_surface_restrict_to_version*(surface: PSurface, version: TSvgVersion){.
-    cdecl, importc: "cairo_svg_surface_restrict_to_version", libcairo.}
-  #todo: see how translate this
-  #procedure cairo_svg_get_versions(TCairoSvgVersion const	**versions,
-  #                        int                      	 *num_versions);
-proc svg_version_to_string*(version: TSvgVersion): cstring{.cdecl, 
-    importc: "cairo_svg_version_to_string", libcairo.}
-  #* Functions to be used while debugging (not intended for use in production code)
-proc debug_reset_static_data*(){.cdecl, 
-                                 importc: "cairo_debug_reset_static_data", 
-                                 libcairo.}
-# implementation
-
-proc version(major, minor, micro: var int32) = 
-  var version: int32
-  version = version()
-  major = version div 10000'i32
-  minor = (version mod (major * 10000'i32)) div 100'i32
-  micro = (version mod ((major * 10000'i32) + (minor * 100'i32)))
-  
-proc checkStatus*(s: cairo.TStatus) {.noinline.} = 
-  ## if ``s != StatusSuccess`` the error is turned into an appropirate Nimrod
-  ## exception and raised.
-  case s
-  of StatusSuccess: nil
-  of StatusNoMemory: 
-    raise newException(EOutOfMemory, $statusToString(s))
-  of STATUS_READ_ERROR, STATUS_WRITE_ERROR, STATUS_FILE_NOT_FOUND, 
-     STATUS_TEMP_FILE_ERROR:
-    raise newException(EIO, $statusToString(s))
-  else:
-    raise newException(EAssertionFailed, $statusToString(s))
-
-
diff --git a/lib/wrappers/cairo/cairo_pragma.nim b/lib/wrappers/cairo/cairo_pragma.nim
deleted file mode 100644
index 11bf237f9..000000000
--- a/lib/wrappers/cairo/cairo_pragma.nim
+++ /dev/null
@@ -1,16 +0,0 @@
-# included by cairo bindings
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libcairo, cdecl.}
-    when defined(use_pkg_config_static):
-        {.passl: gorge("pkg-config cairo --libs --static").}
-    else:
-        {.passl: gorge("pkg-config cairo --libs").}
-else:
-    when defined(windows): 
-      const LIB_CAIRO* = "libcairo-2.dll"
-    elif defined(macosx):
-      const LIB_CAIRO* = "libcairo.dylib"
-    else: 
-      const LIB_CAIRO* = "libcairo.so(|.2)"
-    {.pragma: libcairo, cdecl, dynlib: LIB_CAIRO.}
diff --git a/lib/wrappers/cairo/cairoft.nim b/lib/wrappers/cairo/cairoft.nim
deleted file mode 100644
index 5f4e47662..000000000
--- a/lib/wrappers/cairo/cairoft.nim
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Translation of cairo-ft.h 
-# by Jeffrey Pohlmeyer 
-# updated to version 1.4 by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, freetypeh
-
-include "cairo_pragma.nim"
-#todo: properly define FcPattern:
-#It will require translate FontConfig header
-
-#*
-#typedef struct _XftPattern {
-#  int		    num;
-#  int		    size;
-#  XftPatternElt   *elts;
-# } XftPattern;
-# typedef FcPattern XftPattern;
-#
-
-type 
-  FcPattern* = Pointer
-  PFcPattern* = ptr FcPattern
-
-proc ft_font_face_create_for_pattern*(pattern: PFcPattern): PFontFace{.libcairo,
-    importc: "cairo_ft_font_face_create_for_pattern".}
-proc ft_font_options_substitute*(options: PFontOptions, pattern: PFcPattern){.
-    libcairo, importc: "cairo_ft_font_options_substitute".}
-proc ft_font_face_create_for_ft_face*(face: TFT_Face, load_flags: int32): PFontFace{.libcairo,
-    importc: "cairo_ft_font_face_create_for_ft_face".}
-proc ft_scaled_font_lock_face*(scaled_font: PScaledFont): TFT_Face{.libcairo,
-    importc: "cairo_ft_scaled_font_lock_face".}
-proc ft_scaled_font_unlock_face*(scaled_font: PScaledFont){.libcairo,
-    importc: "cairo_ft_scaled_font_unlock_face".}
diff --git a/lib/wrappers/cairo/cairowin32.nim b/lib/wrappers/cairo/cairowin32.nim
deleted file mode 100644
index cec3a5bc5..000000000
--- a/lib/wrappers/cairo/cairowin32.nim
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Translation of cairo-win32.h version 1.4
-# by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, windows
-
-proc win32_surface_create*(hdc: HDC): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_create", dynlib: LIB_CAIRO.}
-proc win32_surface_create_with_ddb*(hdc: HDC, format: TFormat, 
-                                    width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_create_with_ddb", dynlib: LIB_CAIRO.}
-proc win32_surface_create_with_dib*(format: TFormat, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_win32_surface_create_with_dib", dynlib: LIB_CAIRO.}
-proc win32_surface_get_dc*(surface: PSurface): HDC{.cdecl, 
-    importc: "cairo_win32_surface_get_dc", dynlib: LIB_CAIRO.}
-proc win32_surface_get_image*(surface: PSurface): PSurface{.cdecl, 
-    importc: "cairo_win32_surface_get_image", dynlib: LIB_CAIRO.}
-proc win32_font_face_create_for_logfontw*(logfont: pLOGFONTW): PFontFace{.cdecl, 
-    importc: "cairo_win32_font_face_create_for_logfontw", dynlib: LIB_CAIRO.}
-proc win32_font_face_create_for_hfont*(font: HFONT): PFontFace{.cdecl, 
-    importc: "cairo_win32_font_face_create_for_hfont", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_select_font*(scaled_font: PScaledFont, hdc: HDC): TStatus{.
-    cdecl, importc: "cairo_win32_scaled_font_select_font", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_done_font*(scaled_font: PScaledFont){.cdecl, 
-    importc: "cairo_win32_scaled_font_done_font", dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_metrics_factor*(scaled_font: PScaledFont): float64{.
-    cdecl, importc: "cairo_win32_scaled_font_get_metrics_factor", 
-    dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_logical_to_device*(scaled_font: PScaledFont, 
-    logical_to_device: PMatrix){.cdecl, importc: "cairo_win32_scaled_font_get_logical_to_device", 
-                                 dynlib: LIB_CAIRO.}
-proc win32_scaled_font_get_device_to_logical*(scaled_font: PScaledFont, 
-    device_to_logical: PMatrix){.cdecl, importc: "cairo_win32_scaled_font_get_device_to_logical", 
-                                 dynlib: LIB_CAIRO.}
-# implementation
diff --git a/lib/wrappers/cairo/cairoxlib.nim b/lib/wrappers/cairo/cairoxlib.nim
deleted file mode 100644
index 273a8b42f..000000000
--- a/lib/wrappers/cairo/cairoxlib.nim
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Translation of cairo-xlib.h version 1.4
-# by Jeffrey Pohlmeyer 
-# updated to version 1.4 by Luiz Américo Pereira Câmara 2007
-#
-
-import 
-  cairo, x, xlib, xrender
-
-include "cairo_pragma.nim"
-
-proc xlib_surface_create*(dpy: PDisplay, drawable: TDrawable, visual: PVisual, 
-                          width, height: int32): PSurface{.cdecl, 
-    importc: "cairo_xlib_surface_create", libcairo.}
-proc xlib_surface_create_for_bitmap*(dpy: PDisplay, bitmap: TPixmap, 
-                                     screen: PScreen, width, height: int32): PSurface{.
-    cdecl, importc: "cairo_xlib_surface_create_for_bitmap", libcairo.}
-proc xlib_surface_create_with_xrender_format*(dpy: PDisplay, 
-    drawable: TDrawable, screen: PScreen, format: PXRenderPictFormat, 
-    width, height: int32): PSurface{.cdecl, importc: "cairo_xlib_surface_create_with_xrender_format", 
-                                     libcairo.}
-proc xlib_surface_get_depth*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_depth", libcairo.}
-proc xlib_surface_get_display*(surface: PSurface): PDisplay{.cdecl, 
-    importc: "cairo_xlib_surface_get_display", libcairo.}
-proc xlib_surface_get_drawable*(surface: PSurface): TDrawable{.cdecl, 
-    importc: "cairo_xlib_surface_get_drawable", libcairo.}
-proc xlib_surface_get_height*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_height", libcairo.}
-proc xlib_surface_get_screen*(surface: PSurface): PScreen{.cdecl, 
-    importc: "cairo_xlib_surface_get_screen", libcairo.}
-proc xlib_surface_get_visual*(surface: PSurface): PVisual{.cdecl, 
-    importc: "cairo_xlib_surface_get_visual", libcairo.}
-proc xlib_surface_get_width*(surface: PSurface): int32{.cdecl, 
-    importc: "cairo_xlib_surface_get_width", libcairo.}
-proc xlib_surface_set_size*(surface: PSurface, width, height: int32){.cdecl, 
-    importc: "cairo_xlib_surface_set_size", libcairo.}
-proc xlib_surface_set_drawable*(surface: PSurface, drawable: TDrawable, 
-                                width, height: int32){.cdecl, 
-    importc: "cairo_xlib_surface_set_drawable", libcairo.}
-# implementation
diff --git a/lib/wrappers/gtk/atk.nim b/lib/wrappers/gtk/atk.nim
deleted file mode 100644
index f59d95f87..000000000
--- a/lib/wrappers/gtk/atk.nim
+++ /dev/null
@@ -1,1308 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(windows): 
-  const 
-    lib = "libatk-1.0-0.dll"
-elif defined(macosx):
-  const 
-    lib = "libatk-1.0.dylib"
-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 (){.cdecl.}
-  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()))
diff --git a/lib/wrappers/gtk/gdk2.nim b/lib/wrappers/gtk/gdk2.nim
deleted file mode 100644
index d84f7ccc3..000000000
--- a/lib/wrappers/gtk/gdk2.nim
+++ /dev/null
@@ -1,3873 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, gdk2pixbuf, pango
-
-when defined(win32): 
-  const 
-    lib = "libgdk-win32-2.0-0.dll"
-elif defined(macosx): 
-  #    linklib gtk-x11-2.0
-  #    linklib gdk-x11-2.0
-  #    linklib pango-1.0.0
-  #    linklib glib-2.0.0
-  #    linklib gobject-2.0.0
-  #    linklib gdk_pixbuf-2.0.0
-  #    linklib atk-1.0.0
-  const 
-    lib = "libgdk-x11-2.0.dylib"
-else: 
-  const 
-    lib = "libgdk-x11-2.0.so(|.0)"
-const 
-  NUMPTSTOBUFFER* = 200
-  MAX_TIMECOORD_AXES* = 128
-
-type 
-  PDeviceClass* = ptr TDeviceClass
-  TDeviceClass* = object of TGObjectClass
-  PVisualClass* = ptr TVisualClass
-  TVisualClass* = object of TGObjectClass
-  PColor* = ptr TColor
-  TColor*{.final, pure.} = object 
-    pixel*: guint32
-    red*: guint16
-    green*: guint16
-    blue*: guint16
-
-  PColormap* = ptr TColormap
-  PDrawable* = ptr TDrawable
-  TDrawable* = object of TGObject
-  PWindow* = ptr TWindow
-  TWindow* = TDrawable
-  PPixmap* = ptr TPixmap
-  TPixmap* = TDrawable
-  PBitmap* = ptr TBitmap
-  TBitmap* = TDrawable
-  PFontType* = ptr TFontType
-  TFontType* = enum 
-    FONT_FONT, FONT_FONTSET
-  PFont* = ptr TFont
-  TFont*{.final, pure.} = object 
-    `type`*: TFontType
-    ascent*: gint
-    descent*: gint
-
-  PFunction* = ptr TFunction
-  TFunction* = enum 
-    funcCOPY, funcINVERT, funcXOR, funcCLEAR, funcAND, 
-    funcAND_REVERSE, funcAND_INVERT, funcNOOP, funcOR, funcEQUIV, 
-    funcOR_REVERSE, funcCOPY_INVERT, funcOR_INVERT, funcNAND, funcNOR, funcSET
-  PCapStyle* = ptr TCapStyle
-  TCapStyle* = enum 
-    CAP_NOT_LAST, CAP_BUTT, CAP_ROUND, CAP_PROJECTING
-  PFill* = ptr TFill
-  TFill* = enum 
-    SOLID, TILED, STIPPLED, OPAQUE_STIPPLED
-  PJoinStyle* = ptr TJoinStyle
-  TJoinStyle* = enum 
-    JOIN_MITER, JOIN_ROUND, JOIN_BEVEL
-  PLineStyle* = ptr TLineStyle
-  TLineStyle* = enum 
-    LINE_SOLID, LINE_ON_OFF_DASH, LINE_DOUBLE_DASH
-  PSubwindowMode* = ptr TSubwindowMode
-  TSubwindowMode* = int
-  PGCValuesMask* = ptr TGCValuesMask
-  TGCValuesMask* = int32
-  PGCValues* = ptr TGCValues
-  TGCValues*{.final, pure.} = object 
-    foreground*: TColor
-    background*: TColor
-    font*: PFont
-    `function`*: TFunction
-    fill*: TFill
-    tile*: PPixmap
-    stipple*: PPixmap
-    clip_mask*: PPixmap
-    subwindow_mode*: TSubwindowMode
-    ts_x_origin*: gint
-    ts_y_origin*: gint
-    clip_x_origin*: gint
-    clip_y_origin*: gint
-    graphics_exposures*: gint
-    line_width*: gint
-    line_style*: TLineStyle
-    cap_style*: TCapStyle
-    join_style*: TJoinStyle
-
-  PGC* = ptr TGC
-  TGC* = object of TGObject
-    clip_x_origin*: gint
-    clip_y_origin*: gint
-    ts_x_origin*: gint
-    ts_y_origin*: gint
-    colormap*: PColormap
-
-  PImageType* = ptr TImageType
-  TImageType* = enum 
-    IMAGE_NORMAL, IMAGE_SHARED, IMAGE_FASTEST
-  PImage* = ptr TImage
-  PDevice* = ptr TDevice
-  PTimeCoord* = ptr TTimeCoord
-  PPTimeCoord* = ptr PTimeCoord
-  PRgbDither* = ptr TRgbDither
-  TRgbDither* = enum 
-    RGB_DITHER_NONE, RGB_DITHER_NORMAL, RGB_DITHER_MAX
-  PDisplay* = ptr TDisplay
-  PScreen* = ptr TScreen
-  TScreen* = object of TGObject
-  PInputCondition* = ptr TInputCondition
-  TInputCondition* = int32
-  PStatus* = ptr TStatus
-  TStatus* = int32
-  TPoint*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-
-  PPoint* = ptr TPoint
-  PPPoint* = ptr PPoint
-  PSpan* = ptr TSpan
-  PWChar* = ptr TWChar
-  TWChar* = guint32
-  PSegment* = ptr TSegment
-  TSegment*{.final, pure.} = object 
-    x1*: gint
-    y1*: gint
-    x2*: gint
-    y2*: gint
-
-  PRectangle* = ptr TRectangle
-  TRectangle*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-
-  PAtom* = ptr TAtom
-  TAtom* = gulong
-  PByteOrder* = ptr TByteOrder
-  TByteOrder* = enum 
-    LSB_FIRST, MSB_FIRST
-  PModifierType* = ptr TModifierType
-  TModifierType* = gint
-  PVisualType* = ptr TVisualType
-  TVisualType* = enum 
-    VISUAL_STATIC_GRAY, VISUAL_GRAYSCALE, VISUAL_STATIC_COLOR, 
-    VISUAL_PSEUDO_COLOR, VISUAL_TRUE_COLOR, VISUAL_DIRECT_COLOR
-  PVisual* = ptr TVisual
-  TVisual* = object of TGObject
-    TheType*: TVisualType
-    depth*: gint
-    byte_order*: TByteOrder
-    colormap_size*: gint
-    bits_per_rgb*: gint
-    red_mask*: guint32
-    red_shift*: gint
-    red_prec*: gint
-    green_mask*: guint32
-    green_shift*: gint
-    green_prec*: gint
-    blue_mask*: guint32
-    blue_shift*: gint
-    blue_prec*: gint
-    screen*: PScreen
-
-  PColormapClass* = ptr TColormapClass
-  TColormapClass* = object of TGObjectClass
-  TColormap* = object of TGObject
-    size*: gint
-    colors*: PColor
-    visual*: PVisual
-    windowing_data*: gpointer
-    screen*: PScreen
-
-  PCursorType* = ptr TCursorType
-  TCursorType* = gint
-  PCursor* = ptr TCursor
-  TCursor*{.final, pure.} = object 
-    `type`*: TCursorType
-    ref_count*: guint
-
-  PDragAction* = ptr TDragAction
-  TDragAction* = int32
-  PDragProtocol* = ptr TDragProtocol
-  TDragProtocol* = enum 
-    DRAG_PROTO_MOTIF, DRAG_PROTO_XDND, DRAG_PROTO_ROOTWIN, DRAG_PROTO_NONE, 
-    DRAG_PROTO_WIN32_DROPFILES, DRAG_PROTO_OLE2, DRAG_PROTO_LOCAL
-  PDragContext* = ptr TDragContext
-  TDragContext* = object of TGObject
-    protocol*: TDragProtocol
-    is_source*: gboolean
-    source_window*: PWindow
-    dest_window*: PWindow
-    targets*: PGList
-    actions*: TDragAction
-    suggested_action*: TDragAction
-    action*: TDragAction
-    start_time*: guint32
-    windowing_data*: gpointer
-
-  PDragContextClass* = ptr TDragContextClass
-  TDragContextClass* = object of TGObjectClass
-  PRegionBox* = ptr TRegionBox
-  TRegionBox* = TSegment
-  PRegion* = ptr TRegion
-  TRegion*{.final, pure.} = object 
-    size*: int32
-    numRects*: int32
-    rects*: PRegionBox
-    extents*: TRegionBox
-
-  PPOINTBLOCK* = ptr TPOINTBLOCK
-  TPOINTBLOCK*{.final, pure.} = object 
-    pts*: array[0..(NUMPTSTOBUFFER) - 1, TPoint]
-    next*: PPOINTBLOCK
-
-  PDrawableClass* = ptr TDrawableClass
-  TDrawableClass* = object of TGObjectClass
-    create_gc*: proc (drawable: PDrawable, values: PGCValues, 
-                      mask: TGCValuesMask): PGC{.cdecl.}
-    draw_rectangle*: proc (drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                           y: gint, width: gint, height: gint){.cdecl.}
-    draw_arc*: proc (drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                     y: gint, width: gint, height: gint, angle1: gint, 
-                     angle2: gint){.cdecl.}
-    draw_polygon*: proc (drawable: PDrawable, gc: PGC, filled: gint, 
-                         points: PPoint, npoints: gint){.cdecl.}
-    draw_text*: proc (drawable: PDrawable, font: PFont, gc: PGC, x: gint, 
-                      y: gint, text: cstring, text_length: gint){.cdecl.}
-    draw_text_wc*: proc (drawable: PDrawable, font: PFont, gc: PGC, x: gint, 
-                         y: gint, text: PWChar, text_length: gint){.cdecl.}
-    draw_drawable*: proc (drawable: PDrawable, gc: PGC, src: PDrawable, 
-                          xsrc: gint, ysrc: gint, xdest: gint, ydest: gint, 
-                          width: gint, height: gint){.cdecl.}
-    draw_points*: proc (drawable: PDrawable, gc: PGC, points: PPoint, 
-                        npoints: gint){.cdecl.}
-    draw_segments*: proc (drawable: PDrawable, gc: PGC, segs: PSegment, 
-                          nsegs: gint){.cdecl.}
-    draw_lines*: proc (drawable: PDrawable, gc: PGC, points: PPoint, 
-                       npoints: gint){.cdecl.}
-    draw_glyphs*: proc (drawable: PDrawable, gc: PGC, font: PFont, x: gint, 
-                        y: gint, glyphs: PGlyphString){.cdecl.}
-    draw_image*: proc (drawable: PDrawable, gc: PGC, image: PImage, xsrc: gint, 
-                       ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                       height: gint){.cdecl.}
-    get_depth*: proc (drawable: PDrawable): gint{.cdecl.}
-    get_size*: proc (drawable: PDrawable, width: Pgint, height: Pgint){.cdecl.}
-    set_colormap*: proc (drawable: PDrawable, cmap: PColormap){.cdecl.}
-    get_colormap*: proc (drawable: PDrawable): PColormap{.cdecl.}
-    get_visual*: proc (drawable: PDrawable): PVisual{.cdecl.}
-    get_screen*: proc (drawable: PDrawable): PScreen{.cdecl.}
-    get_image*: proc (drawable: PDrawable, x: gint, y: gint, width: gint, 
-                      height: gint): PImage{.cdecl.}
-    get_clip_region*: proc (drawable: PDrawable): PRegion{.cdecl.}
-    get_visible_region*: proc (drawable: PDrawable): PRegion{.cdecl.}
-    get_composite_drawable*: proc (drawable: PDrawable, x: gint, y: gint, 
-                                   width: gint, height: gint, 
-                                   composite_x_offset: Pgint, 
-                                   composite_y_offset: Pgint): PDrawable{.cdecl.}
-    `draw_pixbuf`*: proc (drawable: PDrawable, gc: PGC, pixbuf: PPixbuf, 
-                          src_x: gint, src_y: gint, dest_x: gint, dest_y: gint, 
-                          width: gint, height: gint, dither: TRgbDither, 
-                          x_dither: gint, y_dither: gint){.cdecl.}
-    `copy_to_image`*: proc (drawable: PDrawable, image: PImage, src_x: gint, 
-                            src_y: gint, dest_x: gint, dest_y: gint, 
-                            width: gint, height: gint): PImage{.cdecl.}
-    `reserved1`: proc (){.cdecl.}
-    `reserved2`: proc (){.cdecl.}
-    `reserved3`: proc (){.cdecl.}
-    `reserved4`: proc (){.cdecl.}
-    `reserved5`: proc (){.cdecl.}
-    `reserved6`: proc (){.cdecl.}
-    `reserved7`: proc (){.cdecl.}
-    `reserved9`: proc (){.cdecl.}
-    `reserved10`: proc (){.cdecl.}
-    `reserved11`: proc (){.cdecl.}
-    `reserved12`: proc (){.cdecl.}
-    `reserved13`: proc (){.cdecl.}
-    `reserved14`: proc (){.cdecl.}
-    `reserved15`: proc (){.cdecl.}
-    `reserved16`: proc (){.cdecl.}
-
-  PEvent* = ptr TEvent
-  TEventFunc* = proc (event: PEvent, data: gpointer){.cdecl.}
-  PXEvent* = ptr TXEvent
-  TXEvent* = proc () {.cdecl.}
-  PFilterReturn* = ptr TFilterReturn
-  TFilterReturn* = enum 
-    FILTER_CONTINUE, FILTER_TRANSLATE, FILTER_REMOVE
-  TFilterFunc* = proc (xevent: PXEvent, event: PEvent, data: gpointer): TFilterReturn{.
-      cdecl.}
-  PEventType* = ptr TEventType
-  TEventType* = gint
-  PEventMask* = ptr TEventMask
-  TEventMask* = gint32
-  PVisibilityState* = ptr TVisibilityState
-  TVisibilityState* = enum 
-    VISIBILITY_UNOBSCURED, VISIBILITY_PARTIAL, VISIBILITY_FULLY_OBSCURED
-  PScrollDirection* = ptr TScrollDirection
-  TScrollDirection* = enum 
-    SCROLL_UP, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT
-  PNotifyType* = ptr TNotifyType
-  TNotifyType* = int
-  PCrossingMode* = ptr TCrossingMode
-  TCrossingMode* = enum 
-    CROSSING_NORMAL, CROSSING_GRAB, CROSSING_UNGRAB
-  PPropertyState* = ptr TPropertyState
-  TPropertyState* = enum 
-    PROPERTY_NEW_VALUE, PROPERTY_STATE_DELETE
-  PWindowState* = ptr TWindowState
-  TWindowState* = gint
-  PSettingAction* = ptr TSettingAction
-  TSettingAction* = enum 
-    SETTING_ACTION_NEW, SETTING_ACTION_CHANGED, SETTING_ACTION_DELETED
-  PEventAny* = ptr TEventAny
-  TEventAny*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-
-  PEventExpose* = ptr TEventExpose
-  TEventExpose*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    area*: TRectangle
-    region*: PRegion
-    count*: gint
-
-  PEventNoExpose* = ptr TEventNoExpose
-  TEventNoExpose*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-
-  PEventVisibility* = ptr TEventVisibility
-  TEventVisibility*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    state*: TVisibilityState
-
-  PEventMotion* = ptr TEventMotion
-  TEventMotion*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    axes*: Pgdouble
-    state*: guint
-    is_hint*: gint16
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventButton* = ptr TEventButton
-  TEventButton*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    axes*: Pgdouble
-    state*: guint
-    button*: guint
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventScroll* = ptr TEventScroll
-  TEventScroll*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    state*: guint
-    direction*: TScrollDirection
-    device*: PDevice
-    x_root*: gdouble
-    y_root*: gdouble
-
-  PEventKey* = ptr TEventKey
-  TEventKey*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    state*: guint
-    keyval*: guint
-    length*: gint
-    `string`*: cstring
-    hardware_keycode*: guint16
-    group*: guint8
-
-  PEventCrossing* = ptr TEventCrossing
-  TEventCrossing*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    subwindow*: PWindow
-    time*: guint32
-    x*: gdouble
-    y*: gdouble
-    x_root*: gdouble
-    y_root*: gdouble
-    mode*: TCrossingMode
-    detail*: TNotifyType
-    focus*: gboolean
-    state*: guint
-
-  PEventFocus* = ptr TEventFocus
-  TEventFocus*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    `in`*: gint16
-
-  PEventConfigure* = ptr TEventConfigure
-  TEventConfigure*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-
-  PEventProperty* = ptr TEventProperty
-  TEventProperty*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    atom*: TAtom
-    time*: guint32
-    state*: guint
-
-  TNativeWindow* = pointer
-  PEventSelection* = ptr TEventSelection
-  TEventSelection*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    selection*: TAtom
-    target*: TAtom
-    `property`*: TAtom
-    time*: guint32
-    requestor*: TNativeWindow
-
-  PEventProximity* = ptr TEventProximity
-  TEventProximity*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    time*: guint32
-    device*: PDevice
-
-  PmatDUMMY* = ptr TmatDUMMY
-  TmatDUMMY*{.final, pure.} = object 
-    b*: array[0..19, char]
-
-  PEventClient* = ptr TEventClient
-  TEventClient*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    message_type*: TAtom
-    data_format*: gushort
-    b*: array[0..19, char]
-
-  PEventSetting* = ptr TEventSetting
-  TEventSetting*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    action*: TSettingAction
-    name*: cstring
-
-  PEventWindowState* = ptr TEventWindowState
-  TEventWindowState*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    changed_mask*: TWindowState
-    new_window_state*: TWindowState
-
-  PEventDND* = ptr TEventDND
-  TEventDND*{.final, pure.} = object 
-    `type`*: TEventType
-    window*: PWindow
-    send_event*: gint8
-    context*: PDragContext
-    time*: guint32
-    x_root*: gshort
-    y_root*: gshort
-
-  TEvent*{.final, pure.} = object 
-    data*: array[0..255, char] # union of
-                               # `type`: TEventType
-                               #  any: TEventAny
-                               #  expose: TEventExpose
-                               #  no_expose: TEventNoExpose
-                               #  visibility: TEventVisibility
-                               #  motion: TEventMotion
-                               #  button: TEventButton
-                               #  scroll: TEventScroll
-                               #  key: TEventKey
-                               #  crossing: TEventCrossing
-                               #  focus_change: TEventFocus
-                               #  configure: TEventConfigure
-                               #  `property`: TEventProperty
-                               #  selection: TEventSelection
-                               #  proximity: TEventProximity
-                               #  client: TEventClient
-                               #  dnd: TEventDND
-                               #  window_state: TEventWindowState
-                               #  setting: TEventSetting
-  
-  PGCClass* = ptr TGCClass
-  TGCClass* = object of TGObjectClass
-    get_values*: proc (gc: PGC, values: PGCValues){.cdecl.}
-    set_values*: proc (gc: PGC, values: PGCValues, mask: TGCValuesMask){.cdecl.}
-    set_dashes*: proc (gc: PGC, dash_offset: gint, dash_list: openarray[gint8]){.
-        cdecl.}
-    `reserved1`*: proc (){.cdecl.}
-    `reserved2`*: proc (){.cdecl.}
-    `reserved3`*: proc (){.cdecl.}
-    `reserved4`*: proc (){.cdecl.}
-
-  PImageClass* = ptr TImageClass
-  TImageClass* = object of TGObjectClass
-  TImage* = object of TGObject
-    `type`*: TImageType
-    visual*: PVisual
-    byte_order*: TByteOrder
-    width*: gint
-    height*: gint
-    depth*: guint16
-    bpp*: guint16
-    bpl*: guint16
-    bits_per_pixel*: guint16
-    mem*: gpointer
-    colormap*: PColormap
-    windowing_data*: gpointer
-
-  PExtensionMode* = ptr TExtensionMode
-  TExtensionMode* = enum 
-    EXTENSION_EVENTS_NONE, EXTENSION_EVENTS_ALL, EXTENSION_EVENTS_CURSOR
-  PInputSource* = ptr TInputSource
-  TInputSource* = enum 
-    SOURCE_MOUSE, SOURCE_PEN, SOURCE_ERASER, SOURCE_CURSOR
-  PInputMode* = ptr TInputMode
-  TInputMode* = enum 
-    MODE_DISABLED, MODE_SCREEN, MODE_WINDOW
-  PAxisUse* = ptr TAxisUse
-  TAxisUse* = int32
-  PDeviceKey* = ptr TDeviceKey
-  TDeviceKey*{.final, pure.} = object 
-    keyval*: guint
-    modifiers*: TModifierType
-
-  PDeviceAxis* = ptr TDeviceAxis
-  TDeviceAxis*{.final, pure.} = object 
-    use*: TAxisUse
-    min*: gdouble
-    max*: gdouble
-
-  TDevice* = object of TGObject
-    name*: cstring
-    source*: TInputSource
-    mode*: TInputMode
-    has_cursor*: gboolean
-    num_axes*: gint
-    axes*: PDeviceAxis
-    num_keys*: gint
-    keys*: PDeviceKey
-
-  TTimeCoord*{.final, pure.} = object 
-    time*: guint32
-    axes*: array[0..(MAX_TIMECOORD_AXES) - 1, gdouble]
-
-  PKeymapKey* = ptr TKeymapKey
-  TKeymapKey*{.final, pure.} = object 
-    keycode*: guint
-    group*: gint
-    level*: gint
-
-  PKeymap* = ptr TKeymap
-  TKeymap* = object of TGObject
-    display*: PDisplay
-
-  PKeymapClass* = ptr TKeymapClass
-  TKeymapClass* = object of TGObjectClass
-    direction_changed*: proc (keymap: PKeymap){.cdecl.}
-
-  PAttrStipple* = ptr TAttrStipple
-  TAttrStipple*{.final, pure.} = object 
-    attr*: TAttribute
-    stipple*: PBitmap
-
-  PAttrEmbossed* = ptr TAttrEmbossed
-  TAttrEmbossed*{.final, pure.} = object 
-    attr*: TAttribute
-    embossed*: gboolean
-
-  PPixmapObject* = ptr TPixmapObject
-  TPixmapObject* = object of TDrawable
-    impl*: PDrawable
-    depth*: gint
-
-  PPixmapObjectClass* = ptr TPixmapObjectClass
-  TPixmapObjectClass* = object of TDrawableClass
-  PPropMode* = ptr TPropMode
-  TPropMode* = enum 
-    PROP_MODE_REPLACE, PROP_MODE_PREPEND, PROP_MODE_APPEND
-  PFillRule* = ptr TFillRule
-  TFillRule* = enum 
-    EVEN_ODD_RULE, WINDING_RULE
-  POverlapType* = ptr TOverlapType
-  TOverlapType* = enum 
-    OVERLAP_RECTANGLE_IN, OVERLAP_RECTANGLE_OUT, OVERLAP_RECTANGLE_PART
-  TSpanFunc* = proc (span: PSpan, data: gpointer){.cdecl.}
-  PRgbCmap* = ptr TRgbCmap
-  TRgbCmap*{.final, pure.} = object 
-    colors*: array[0..255, guint32]
-    n_colors*: gint
-    info_list*: PGSList
-
-  TDisplay* = object of TGObject
-    queued_events*: PGList
-    queued_tail*: PGList
-    button_click_time*: array[0..1, guint32]
-    button_window*: array[0..1, PWindow]
-    button_number*: array[0..1, guint]
-    double_click_time*: guint
-
-  PDisplayClass* = ptr TDisplayClass
-  TDisplayClass* = object of TGObjectClass
-    get_display_name*: proc (display: PDisplay): cstring{.cdecl.}
-    get_n_screens*: proc (display: PDisplay): gint{.cdecl.}
-    get_screen*: proc (display: PDisplay, screen_num: gint): PScreen{.cdecl.}
-    get_default_screen*: proc (display: PDisplay): PScreen{.cdecl.}
-
-  PScreenClass* = ptr TScreenClass
-  TScreenClass* = object of TGObjectClass
-    get_display*: proc (screen: PScreen): PDisplay{.cdecl.}
-    get_width*: proc (screen: PScreen): gint{.cdecl.}
-    get_height*: proc (screen: PScreen): gint{.cdecl.}
-    get_width_mm*: proc (screen: PScreen): gint{.cdecl.}
-    get_height_mm*: proc (screen: PScreen): gint{.cdecl.}
-    get_root_depth*: proc (screen: PScreen): gint{.cdecl.}
-    get_screen_num*: proc (screen: PScreen): gint{.cdecl.}
-    get_root_window*: proc (screen: PScreen): PWindow{.cdecl.}
-    get_default_colormap*: proc (screen: PScreen): PColormap{.cdecl.}
-    set_default_colormap*: proc (screen: PScreen, colormap: PColormap){.cdecl.}
-    get_window_at_pointer*: proc (screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-        cdecl.}
-    get_n_monitors*: proc (screen: PScreen): gint{.cdecl.}
-    get_monitor_geometry*: proc (screen: PScreen, monitor_num: gint, 
-                                 dest: PRectangle){.cdecl.}
-
-  PGrabStatus* = ptr TGrabStatus
-  TGrabStatus* = int
-  TInputFunction* = proc (data: gpointer, source: gint, 
-                          condition: TInputCondition){.cdecl.}
-  TDestroyNotify* = proc (data: gpointer){.cdecl.}
-  TSpan*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-
-  PWindowClass* = ptr TWindowClass
-  TWindowClass* = enum 
-    INPUT_OUTPUT, INPUT_ONLY
-  PWindowType* = ptr TWindowType
-  TWindowType* = enum 
-    WINDOW_ROOT, WINDOW_TOPLEVEL, WINDOW_CHILD, WINDOW_DIALOG, WINDOW_TEMP, 
-    WINDOW_FOREIGN
-  PWindowAttributesType* = ptr TWindowAttributesType
-  TWindowAttributesType* = int32
-  PWindowHints* = ptr TWindowHints
-  TWindowHints* = int32
-  PWindowTypeHint* = ptr TWindowTypeHint
-  TWindowTypeHint* = enum 
-    WINDOW_TYPE_HINT_NORMAL, WINDOW_TYPE_HINT_DIALOG, WINDOW_TYPE_HINT_MENU, 
-    WINDOW_TYPE_HINT_TOOLBAR, WINDOW_TYPE_HINT_SPLASHSCREEN,
-    WINDOW_TYPE_HINT_UTILITY, WINDOW_TYPE_HINT_DOCK,
-    WINDOW_TYPE_HINT_DESKTOP, WINDOW_TYPE_HINT_DROPDOWN_MENU,
-    WINDOW_TYPE_HINT_POPUP_MENU, WINDOW_TYPE_HINT_TOOLTIP,
-    WINDOW_TYPE_HINT_NOTIFICATION, WINDOW_TYPE_HINT_COMBO,
-    WINDOW_TYPE_HINT_DND
-  PWMDecoration* = ptr TWMDecoration
-  TWMDecoration* = int32
-  PWMFunction* = ptr TWMFunction
-  TWMFunction* = int32
-  PGravity* = ptr TGravity
-  TGravity* = int
-  PWindowEdge* = ptr TWindowEdge
-  TWindowEdge* = enum 
-    WINDOW_EDGE_NORTH_WEST, WINDOW_EDGE_NORTH, WINDOW_EDGE_NORTH_EAST, 
-    WINDOW_EDGE_WEST, WINDOW_EDGE_EAST, WINDOW_EDGE_SOUTH_WEST, 
-    WINDOW_EDGE_SOUTH, WINDOW_EDGE_SOUTH_EAST
-  PWindowAttr* = ptr TWindowAttr
-  TWindowAttr*{.final, pure.} = object 
-    title*: cstring
-    event_mask*: gint
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-    wclass*: TWindowClass
-    visual*: PVisual
-    colormap*: PColormap
-    window_type*: TWindowType
-    cursor*: PCursor
-    wmclass_name*: cstring
-    wmclass_class*: cstring
-    override_redirect*: gboolean
-
-  PGeometry* = ptr TGeometry
-  TGeometry*{.final, pure.} = object 
-    min_width*: gint
-    min_height*: gint
-    max_width*: gint
-    max_height*: gint
-    base_width*: gint
-    base_height*: gint
-    width_inc*: gint
-    height_inc*: gint
-    min_aspect*: gdouble
-    max_aspect*: gdouble
-    win_gravity*: TGravity
-
-  PPointerHooks* = ptr TPointerHooks
-  TPointerHooks*{.final, pure.} = object 
-    get_pointer*: proc (window: PWindow, x: Pgint, y: Pgint, mask: PModifierType): PWindow{.
-        cdecl.}
-    window_at_pointer*: proc (screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-        cdecl.}
-
-  PWindowObject* = ptr TWindowObject
-  TWindowObject* = object of TDrawable
-    impl*: PDrawable
-    parent*: PWindowObject
-    user_data*: gpointer
-    x*: gint
-    y*: gint
-    extension_events*: gint
-    filters*: PGList
-    children*: PGList
-    bg_color*: TColor
-    bg_pixmap*: PPixmap
-    paint_stack*: PGSList
-    update_area*: PRegion
-    update_freeze_count*: guint
-    window_type*: guint8
-    depth*: guint8
-    resize_count*: guint8
-    state*: TWindowState
-    flag0*: guint16
-    event_mask*: TEventMask
-
-  PWindowObjectClass* = ptr TWindowObjectClass
-  TWindowObjectClass* = object of TDrawableClass
-  window_invalidate_maybe_recurse_child_func* = proc (para1: PWindow, 
-      para2: gpointer): gboolean {.cdecl.}
-
-proc TYPE_COLORMAP*(): GType
-proc COLORMAP*(anObject: pointer): PColormap
-proc COLORMAP_CLASS*(klass: pointer): PColormapClass
-proc IS_COLORMAP*(anObject: pointer): bool
-proc IS_COLORMAP_CLASS*(klass: pointer): bool
-proc COLORMAP_GET_CLASS*(obj: pointer): PColormapClass
-proc TYPE_COLOR*(): GType
-proc colormap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gdk_colormap_get_type".}
-proc colormap_new*(visual: PVisual, allocate: gboolean): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_colormap_new".}
-proc alloc_colors*(colormap: PColormap, colors: PColor, ncolors: gint, 
-                            writeable: gboolean, best_match: gboolean, 
-                            success: Pgboolean): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_colormap_alloc_colors".}
-proc alloc_color*(colormap: PColormap, color: PColor, 
-                           writeable: gboolean, best_match: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_colormap_alloc_color".}
-proc free_colors*(colormap: PColormap, colors: PColor, ncolors: gint){.
-    cdecl, dynlib: lib, importc: "gdk_colormap_free_colors".}
-proc query_color*(colormap: PColormap, pixel: gulong, result: PColor){.
-    cdecl, dynlib: lib, importc: "gdk_colormap_query_color".}
-proc get_visual*(colormap: PColormap): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_colormap_get_visual".}
-proc copy*(color: PColor): PColor{.cdecl, dynlib: lib, 
-    importc: "gdk_color_copy".}
-proc free*(color: PColor){.cdecl, dynlib: lib, importc: "gdk_color_free".}
-proc color_parse*(spec: cstring, color: PColor): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_color_parse".}
-proc hash*(colora: PColor): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_color_hash".}
-proc equal*(colora: PColor, colorb: PColor): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_color_equal".}
-proc color_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_color_get_type".}
-const 
-  CURSOR_IS_PIXMAP* = - (1)
-  X_CURSOR* = 0
-  ARROW* = 2
-  BASED_ARROW_DOWN* = 4
-  BASED_ARROW_UP* = 6
-  BOAT* = 8
-  BOGOSITY* = 10
-  BOTTOM_LEFT_CORNER* = 12
-  BOTTOM_RIGHT_CORNER* = 14
-  BOTTOM_SIDE* = 16
-  BOTTOM_TEE* = 18
-  BOX_SPIRAL* = 20
-  CENTER_PTR* = 22
-  CIRCLE* = 24
-  CLOCK* = 26
-  COFFEE_MUG* = 28
-  CROSS* = 30
-  CROSS_REVERSE* = 32
-  CROSSHAIR* = 34
-  DIAMOND_CROSS* = 36
-  DOT* = 38
-  DOTBOX* = 40
-  DOUBLE_ARROW* = 42
-  DRAFT_LARGE* = 44
-  DRAFT_SMALL* = 46
-  DRAPED_BOX* = 48
-  EXCHANGE* = 50
-  FLEUR* = 52
-  GOBBLER* = 54
-  GUMBY* = 56
-  HAND1* = 58
-  HAND2* = 60
-  HEART* = 62
-  ICON* = 64
-  IRON_CROSS* = 66
-  LEFT_PTR* = 68
-  LEFT_SIDE* = 70
-  LEFT_TEE* = 72
-  LEFTBUTTON* = 74
-  LL_ANGLE* = 76
-  LR_ANGLE* = 78
-  MAN* = 80
-  MIDDLEBUTTON* = 82
-  MOUSE* = 84
-  PENCIL* = 86
-  PIRATE* = 88
-  PLUS* = 90
-  QUESTION_ARROW* = 92
-  RIGHT_PTR* = 94
-  RIGHT_SIDE* = 96
-  RIGHT_TEE* = 98
-  RIGHTBUTTON* = 100
-  RTL_LOGO* = 102
-  SAILBOAT* = 104
-  SB_DOWN_ARROW* = 106
-  SB_H_DOUBLE_ARROW* = 108
-  SB_LEFT_ARROW* = 110
-  SB_RIGHT_ARROW* = 112
-  SB_UP_ARROW* = 114
-  SB_V_DOUBLE_ARROW* = 116
-  SHUTTLE* = 118
-  SIZING* = 120
-  SPIDER* = 122
-  SPRAYCAN* = 124
-  STAR* = 126
-  TARGET* = 128
-  TCROSS* = 130
-  TOP_LEFT_ARROW* = 132
-  TOP_LEFT_CORNER* = 134
-  TOP_RIGHT_CORNER* = 136
-  TOP_SIDE* = 138
-  TOP_TEE* = 140
-  TREK* = 142
-  UL_ANGLE* = 144
-  UMBRELLA* = 146
-  UR_ANGLE* = 148
-  WATCH* = 150
-  XTERM* = 152
-  LAST_CURSOR* = XTERM + 1
-
-proc TYPE_CURSOR*(): GType
-proc cursor_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_cursor_get_type".}
-proc cursor_new_for_screen*(screen: PScreen, cursor_type: TCursorType): PCursor{.
-    cdecl, dynlib: lib, importc: "gdk_cursor_new_for_screen".}
-proc cursor_new_from_pixmap*(source: PPixmap, mask: PPixmap, fg: PColor, 
-                             bg: PColor, x: gint, y: gint): PCursor{.cdecl, 
-    dynlib: lib, importc: "gdk_cursor_new_from_pixmap".}
-proc get_screen*(cursor: PCursor): PScreen{.cdecl, dynlib: lib, 
-    importc: "gdk_cursor_get_screen".}
-proc reference*(cursor: PCursor): PCursor{.cdecl, dynlib: lib, 
-    importc: "gdk_cursor_ref".}
-proc unref*(cursor: PCursor){.cdecl, dynlib: lib, 
-                                     importc: "gdk_cursor_unref".}
-const 
-  ACTION_DEFAULT* = 1 shl 0
-  ACTION_COPY* = 1 shl 1
-  ACTION_MOVE* = 1 shl 2
-  ACTION_LINK* = 1 shl 3
-  ACTION_PRIVATE* = 1 shl 4
-  ACTION_ASK* = 1 shl 5
-
-proc TYPE_DRAG_CONTEXT*(): GType
-proc DRAG_CONTEXT*(anObject: Pointer): PDragContext
-proc DRAG_CONTEXT_CLASS*(klass: Pointer): PDragContextClass
-proc IS_DRAG_CONTEXT*(anObject: Pointer): bool
-proc IS_DRAG_CONTEXT_CLASS*(klass: Pointer): bool
-proc DRAG_CONTEXT_GET_CLASS*(obj: Pointer): PDragContextClass
-proc drag_context_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gdk_drag_context_get_type".}
-proc drag_context_new*(): PDragContext{.cdecl, dynlib: lib, 
-                                        importc: "gdk_drag_context_new".}
-proc status*(context: PDragContext, action: TDragAction, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_drag_status".}
-proc drop_reply*(context: PDragContext, ok: gboolean, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_drop_reply".}
-proc drop_finish*(context: PDragContext, success: gboolean, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_drop_finish".}
-proc get_selection*(context: PDragContext): TAtom{.cdecl, dynlib: lib, 
-    importc: "gdk_drag_get_selection".}
-proc drag_begin*(window: PWindow, targets: PGList): PDragContext{.cdecl, 
-    dynlib: lib, importc: "gdk_drag_begin".}
-proc drag_get_protocol_for_display*(display: PDisplay, xid: guint32, 
-                                    protocol: PDragProtocol): guint32{.cdecl, 
-    dynlib: lib, importc: "gdk_drag_get_protocol_for_display".}
-proc find_window*(context: PDragContext, drag_window: PWindow, 
-                       x_root: gint, y_root: gint, w: var PWindow, 
-                       protocol: PDragProtocol){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_find_window".}
-proc motion*(context: PDragContext, dest_window: PWindow, 
-                  protocol: TDragProtocol, x_root: gint, y_root: gint, 
-                  suggested_action: TDragAction, possible_actions: TDragAction, 
-                  time: guint32): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_drag_motion".}
-proc drop*(context: PDragContext, time: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_drop".}
-proc abort*(context: PDragContext, time: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_drag_abort".}
-proc region_EXTENTCHECK*(r1, r2: PRegionBox): bool
-proc EXTENTS*(r: PRegionBox, idRect: PRegion)
-proc MEMCHECK*(reg: PRegion, ARect, firstrect: var PRegionBox): bool
-proc CHECK_PREVIOUS*(Reg: PRegion, R: PRegionBox, 
-                            Rx1, Ry1, Rx2, Ry2: gint): bool
-proc ADDRECT*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint)
-proc ADDRECTNOX*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint)
-proc EMPTY_REGION*(pReg: PRegion): bool
-proc REGION_NOT_EMPTY*(pReg: PRegion): bool
-proc region_INBOX*(r: TRegionBox, x, y: gint): bool
-proc TYPE_DRAWABLE*(): GType
-proc DRAWABLE*(anObject: Pointer): PDrawable
-proc DRAWABLE_CLASS*(klass: Pointer): PDrawableClass
-proc IS_DRAWABLE*(anObject: Pointer): bool
-proc IS_DRAWABLE_CLASS*(klass: Pointer): bool
-proc DRAWABLE_GET_CLASS*(obj: Pointer): PDrawableClass
-proc drawable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gdk_drawable_get_type".}
-proc get_size*(drawable: PDrawable, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gdk_drawable_get_size".}
-proc set_colormap*(drawable: PDrawable, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_set_colormap".}
-proc get_colormap*(drawable: PDrawable): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_colormap".}
-proc get_visual*(drawable: PDrawable): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_visual".}
-proc get_depth*(drawable: PDrawable): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_depth".}
-proc get_screen*(drawable: PDrawable): PScreen{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_screen".}
-proc get_display*(drawable: PDrawable): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_display".}
-proc point*(drawable: PDrawable, gc: PGC, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_point".}
-proc line*(drawable: PDrawable, gc: PGC, x1: gint, y1: gint, x2: gint, 
-                y2: gint){.cdecl, dynlib: lib, importc: "gdk_draw_line".}
-proc rectangle*(drawable: PDrawable, gc: PGC, filled: gint, x: gint, 
-                     y: gint, width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rectangle".}
-proc arc*(drawable: PDrawable, gc: PGC, filled: gint, x: gint, y: gint, 
-               width: gint, height: gint, angle1: gint, angle2: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_arc".}
-proc polygon*(drawable: PDrawable, gc: PGC, filled: gint, points: PPoint, 
-                   npoints: gint){.cdecl, dynlib: lib, 
-                                   importc: "gdk_draw_polygon".}
-proc drawable*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                    ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                    height: gint){.cdecl, dynlib: lib, 
-                                   importc: "gdk_draw_drawable".}
-proc image*(drawable: PDrawable, gc: PGC, image: PImage, xsrc: gint, 
-                 ysrc: gint, xdest: gint, ydest: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_image".}
-proc points*(drawable: PDrawable, gc: PGC, points: PPoint, npoints: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_points".}
-proc segments*(drawable: PDrawable, gc: PGC, segs: PSegment, nsegs: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_segments".}
-proc lines*(drawable: PDrawable, gc: PGC, points: PPoint, npoints: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_lines".}
-proc glyphs*(drawable: PDrawable, gc: PGC, font: PFont, x: gint, 
-                  y: gint, glyphs: PGlyphString){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_glyphs".}
-proc layout_line*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                       line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout_line".}
-proc layout*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                  layout: PLayout){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout".}
-proc layout_line*(drawable: PDrawable, gc: PGC, x: gint, 
-                                   y: gint, line: PLayoutLine, 
-                                   foreground: PColor, background: PColor){.
-    cdecl, dynlib: lib, importc: "gdk_draw_layout_line_with_colors".}
-proc layout*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                              layout: PLayout, foreground: PColor, 
-                              background: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_layout_with_colors".}
-proc get_image*(drawable: PDrawable, x: gint, y: gint, width: gint, 
-                         height: gint): PImage{.cdecl, dynlib: lib, 
-    importc: "gdk_drawable_get_image".}
-proc get_clip_region*(drawable: PDrawable): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_get_clip_region".}
-proc get_visible_region*(drawable: PDrawable): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_drawable_get_visible_region".}
-const 
-  NOTHING* = - (1)
-  DELETE* = 0
-  constDESTROY* = 1
-  EXPOSE* = 2
-  MOTION_NOTIFY* = 3
-  BUTTON_PRESS* = 4
-  BUTTON2_PRESS* = 5
-  BUTTON3_PRESS* = 6
-  BUTTON_RELEASE* = 7
-  KEY_PRESS* = 8
-  KEY_RELEASE* = 9
-  ENTER_NOTIFY* = 10
-  LEAVE_NOTIFY* = 11
-  FOCUS_CHANGE* = 12
-  CONFIGURE* = 13
-  MAP* = 14
-  UNMAP* = 15
-  PROPERTY_NOTIFY* = 16
-  SELECTION_CLEAR* = 17
-  SELECTION_REQUEST* = 18
-  SELECTION_NOTIFY* = 19
-  PROXIMITY_IN* = 20
-  PROXIMITY_OUT* = 21
-  DRAG_ENTER* = 22
-  DRAG_LEAVE* = 23
-  DRAG_MOTION_EVENT* = 24
-  DRAG_STATUS_EVENT* = 25
-  DROP_START* = 26
-  DROP_FINISHED* = 27
-  CLIENT_EVENT* = 28
-  VISIBILITY_NOTIFY* = 29
-  NO_EXPOSE* = 30
-  constSCROLL* = 31
-  WINDOW_STATE* = 32
-  SETTING* = 33
-  NOTIFY_ANCESTOR* = 0
-  NOTIFY_VIRTUAL* = 1
-  NOTIFY_INFERIOR* = 2
-  NOTIFY_NONLINEAR* = 3
-  NOTIFY_NONLINEAR_VIRTUAL* = 4
-  NOTIFY_UNKNOWN* = 5
-
-proc TYPE_EVENT*(): GType
-const 
-  G_PRIORITY_DEFAULT* = 0
-  PRIORITY_EVENTS* = G_PRIORITY_DEFAULT #GDK_PRIORITY_REDRAW* = G_PRIORITY_HIGH_IDLE + 20
-  EXPOSURE_MASK* = 1 shl 1
-  POINTER_MOTION_MASK* = 1 shl 2
-  POINTER_MOTION_HINT_MASK* = 1 shl 3
-  BUTTON_MOTION_MASK* = 1 shl 4
-  BUTTON1_MOTION_MASK* = 1 shl 5
-  BUTTON2_MOTION_MASK* = 1 shl 6
-  BUTTON3_MOTION_MASK* = 1 shl 7
-  BUTTON_PRESS_MASK* = 1 shl 8
-  BUTTON_RELEASE_MASK* = 1 shl 9
-  KEY_PRESS_MASK* = 1 shl 10
-  KEY_RELEASE_MASK* = 1 shl 11
-  ENTER_NOTIFY_MASK* = 1 shl 12
-  LEAVE_NOTIFY_MASK* = 1 shl 13
-  FOCUS_CHANGE_MASK* = 1 shl 14
-  STRUCTURE_MASK* = 1 shl 15
-  PROPERTY_CHANGE_MASK* = 1 shl 16
-  VISIBILITY_NOTIFY_MASK* = 1 shl 17
-  PROXIMITY_IN_MASK* = 1 shl 18
-  PROXIMITY_OUT_MASK* = 1 shl 19
-  SUBSTRUCTURE_MASK* = 1 shl 20
-  SCROLL_MASK* = 1 shl 21
-  ALL_EVENTS_MASK* = 0x003FFFFE
-  WINDOW_STATE_WITHDRAWN* = 1 shl 0
-  WINDOW_STATE_ICONIFIED* = 1 shl 1
-  WINDOW_STATE_MAXIMIZED* = 1 shl 2
-  WINDOW_STATE_STICKY* = 1 shl 3
-
-proc event_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_event_get_type".}
-proc events_pending*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gdk_events_pending".}
-proc event_get*(): PEvent{.cdecl, dynlib: lib, importc: "gdk_event_get".}
-proc event_peek*(): PEvent{.cdecl, dynlib: lib, importc: "gdk_event_peek".}
-proc event_get_graphics_expose*(window: PWindow): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_event_get_graphics_expose".}
-proc put*(event: PEvent){.cdecl, dynlib: lib, importc: "gdk_event_put".}
-proc copy*(event: PEvent): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_event_copy".}
-proc free*(event: PEvent){.cdecl, dynlib: lib, importc: "gdk_event_free".}
-proc get_time*(event: PEvent): guint32{.cdecl, dynlib: lib, 
-    importc: "gdk_event_get_time".}
-proc get_state*(event: PEvent, state: PModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_event_get_state".}
-proc get_coords*(event: PEvent, x_win: Pgdouble, y_win: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_coords".}
-proc get_root_coords*(event: PEvent, x_root: Pgdouble, y_root: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_root_coords".}
-proc get_axis*(event: PEvent, axis_use: TAxisUse, value: Pgdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_event_get_axis".}
-proc event_handler_set*(func: TEventFunc, data: gpointer, 
-                        notify: TGDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gdk_event_handler_set".}
-proc set_show_events*(show_events: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_set_show_events".}
-proc get_show_events*(): gboolean{.cdecl, dynlib: lib, 
-                                   importc: "gdk_get_show_events".}
-proc TYPE_FONT*(): GType
-proc font_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_font_get_type".}
-proc font_load_for_display*(display: PDisplay, font_name: cstring): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_font_load_for_display".}
-proc fontset_load_for_display*(display: PDisplay, fontset_name: cstring): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_fontset_load_for_display".}
-proc font_from_description_for_display*(display: PDisplay, 
-                                        font_desc: PFontDescription): PFont{.
-    cdecl, dynlib: lib, importc: "gdk_font_from_description_for_display".}
-proc reference*(font: PFont): PFont{.cdecl, dynlib: lib, importc: "gdk_font_ref".}
-proc unref*(font: PFont){.cdecl, dynlib: lib, importc: "gdk_font_unref".}
-proc id*(font: PFont): gint{.cdecl, dynlib: lib, importc: "gdk_font_id".}
-proc equal*(fonta: PFont, fontb: PFont): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_font_equal".}
-proc string_width*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_width".}
-proc text_width*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_width".}
-proc text_width_wc*(font: PFont, text: PWChar, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_width_wc".}
-proc char_width*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_width".}
-proc char_width_wc*(font: PFont, character: TWChar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_width_wc".}
-proc string_measure*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_measure".}
-proc text_measure*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_measure".}
-proc char_measure*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_measure".}
-proc string_height*(font: PFont, `string`: cstring): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_string_height".}
-proc text_height*(font: PFont, text: cstring, text_length: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_height".}
-proc char_height*(font: PFont, character: gchar): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_char_height".}
-proc text_extents*(font: PFont, text: cstring, text_length: gint, 
-                   lbearing: Pgint, rbearing: Pgint, width: Pgint, 
-                   ascent: Pgint, descent: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_text_extents".}
-proc text_extents_wc*(font: PFont, text: PWChar, text_length: gint, 
-                      lbearing: Pgint, rbearing: Pgint, width: Pgint, 
-                      ascent: Pgint, descent: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_text_extents_wc".}
-proc string_extents*(font: PFont, `string`: cstring, lbearing: Pgint, 
-                     rbearing: Pgint, width: Pgint, ascent: Pgint, 
-                     descent: Pgint){.cdecl, dynlib: lib, 
-                                      importc: "gdk_string_extents".}
-proc get_display*(font: PFont): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_font_get_display".}
-const 
-  GC_FOREGROUND* = 1 shl 0
-  GC_BACKGROUND* = 1 shl 1
-  GC_FONT* = 1 shl 2
-  GC_FUNCTION* = 1 shl 3
-  GC_FILL* = 1 shl 4
-  GC_TILE* = 1 shl 5
-  GC_STIPPLE* = 1 shl 6
-  GC_CLIP_MASK* = 1 shl 7
-  GC_SUBWINDOW* = 1 shl 8
-  GC_TS_X_ORIGIN* = 1 shl 9
-  GC_TS_Y_ORIGIN* = 1 shl 10
-  GC_CLIP_X_ORIGIN* = 1 shl 11
-  GC_CLIP_Y_ORIGIN* = 1 shl 12
-  GC_EXPOSURES* = 1 shl 13
-  GC_LINE_WIDTH* = 1 shl 14
-  GC_LINE_STYLE* = 1 shl 15
-  GC_CAP_STYLE* = 1 shl 16
-  GC_JOIN_STYLE* = 1 shl 17
-  CLIP_BY_CHILDREN* = 0
-  INCLUDE_INFERIORS* = 1
-
-proc TYPE_GC*(): GType
-proc GC*(anObject: Pointer): PGC
-proc GC_CLASS*(klass: Pointer): PGCClass
-proc IS_GC*(anObject: Pointer): bool
-proc IS_GC_CLASS*(klass: Pointer): bool
-proc GC_GET_CLASS*(obj: Pointer): PGCClass
-proc gc_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_gc_get_type".}
-proc gc_new*(drawable: PDrawable): PGC{.cdecl, dynlib: lib, 
-                                        importc: "gdk_gc_new".}
-proc gc_new*(drawable: PDrawable, values: PGCValues, 
-                         values_mask: TGCValuesMask): PGC{.cdecl, dynlib: lib, 
-    importc: "gdk_gc_new_with_values".}
-proc get_values*(gc: PGC, values: PGCValues){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_get_values".}
-proc set_values*(gc: PGC, values: PGCValues, values_mask: TGCValuesMask){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_values".}
-proc set_foreground*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_foreground".}
-proc set_background*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_background".}
-proc set_function*(gc: PGC, `function`: TFunction){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_function".}
-proc set_fill*(gc: PGC, fill: TFill){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_fill".}
-proc set_tile*(gc: PGC, tile: PPixmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_tile".}
-proc set_stipple*(gc: PGC, stipple: PPixmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_stipple".}
-proc set_ts_origin*(gc: PGC, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_ts_origin".}
-proc set_clip_origin*(gc: PGC, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_origin".}
-proc set_clip_mask*(gc: PGC, mask: PBitmap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_mask".}
-proc set_clip_rectangle*(gc: PGC, rectangle: PRectangle){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_rectangle".}
-proc set_clip_region*(gc: PGC, region: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_clip_region".}
-proc set_subwindow*(gc: PGC, mode: TSubwindowMode){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_subwindow".}
-proc set_exposures*(gc: PGC, exposures: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_exposures".}
-proc set_line_attributes*(gc: PGC, line_width: gint, line_style: TLineStyle, 
-                             cap_style: TCapStyle, join_style: TJoinStyle){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_line_attributes".}
-proc set_dashes*(gc: PGC, dash_offset: gint, dash_list: openarray[gint8]){.
-    cdecl, dynlib: lib, importc: "gdk_gc_set_dashes".}
-proc offset*(gc: PGC, x_offset: gint, y_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_offset".}
-proc copy*(dst_gc: PGC, src_gc: PGC){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_copy".}
-proc set_colormap*(gc: PGC, colormap: PColormap){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_colormap".}
-proc get_colormap*(gc: PGC): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_gc_get_colormap".}
-proc set_rgb_fg_color*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_rgb_fg_color".}
-proc set_rgb_bg_color*(gc: PGC, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_gc_set_rgb_bg_color".}
-proc get_screen*(gc: PGC): PScreen{.cdecl, dynlib: lib, 
-                                       importc: "gdk_gc_get_screen".}
-proc TYPE_IMAGE*(): GType
-proc IMAGE*(anObject: Pointer): PImage
-proc IMAGE_CLASS*(klass: Pointer): PImageClass
-proc IS_IMAGE*(anObject: Pointer): bool
-proc IS_IMAGE_CLASS*(klass: Pointer): bool
-proc IMAGE_GET_CLASS*(obj: Pointer): PImageClass
-proc image_get_type*(): GType{.cdecl, dynlib: lib, importc: "gdk_image_get_type".}
-proc image_new*(`type`: TImageType, visual: PVisual, width: gint, height: gint): PImage{.
-    cdecl, dynlib: lib, importc: "gdk_image_new".}
-proc put_pixel*(image: PImage, x: gint, y: gint, pixel: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_image_put_pixel".}
-proc get_pixel*(image: PImage, x: gint, y: gint): guint32{.cdecl, 
-    dynlib: lib, importc: "gdk_image_get_pixel".}
-proc set_colormap*(image: PImage, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_image_set_colormap".}
-proc get_colormap*(image: PImage): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_image_get_colormap".}
-const 
-  AXIS_IGNORE* = 0
-  AXIS_X* = 1
-  AXIS_Y* = 2
-  AXIS_PRESSURE* = 3
-  AXIS_XTILT* = 4
-  AXIS_YTILT* = 5
-  AXIS_WHEEL* = 6
-  AXIS_LAST* = 7
-
-proc TYPE_DEVICE*(): GType
-proc DEVICE*(anObject: Pointer): PDevice
-proc DEVICE_CLASS*(klass: Pointer): PDeviceClass
-proc IS_DEVICE*(anObject: Pointer): bool
-proc IS_DEVICE_CLASS*(klass: Pointer): bool
-proc DEVICE_GET_CLASS*(obj: Pointer): PDeviceClass
-proc device_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_device_get_type".}
-proc set_source*(device: PDevice, source: TInputSource){.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_source".}
-proc set_mode*(device: PDevice, mode: TInputMode): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_mode".}
-proc set_key*(device: PDevice, index: guint, keyval: guint, 
-                     modifiers: TModifierType){.cdecl, dynlib: lib, 
-    importc: "gdk_device_set_key".}
-proc set_axis_use*(device: PDevice, index: guint, use: TAxisUse){.cdecl, 
-    dynlib: lib, importc: "gdk_device_set_axis_use".}
-proc get_state*(device: PDevice, window: PWindow, axes: Pgdouble, 
-                       mask: PModifierType){.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_state".}
-proc get_history*(device: PDevice, window: PWindow, start: guint32, 
-                         stop: guint32, s: var PPTimeCoord, n_events: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_device_get_history".}
-proc device_free_history*(events: PPTimeCoord, n_events: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_device_free_history".}
-proc get_axis*(device: PDevice, axes: Pgdouble, use: TAxisUse, 
-                      value: Pgdouble): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_axis".}
-proc input_set_extension_events*(window: PWindow, mask: gint, 
-                                 mode: TExtensionMode){.cdecl, dynlib: lib, 
-    importc: "gdk_input_set_extension_events".}
-proc device_get_core_pointer*(): PDevice{.cdecl, dynlib: lib, 
-    importc: "gdk_device_get_core_pointer".}
-proc TYPE_KEYMAP*(): GType
-proc KEYMAP*(anObject: Pointer): PKeymap
-proc KEYMAP_CLASS*(klass: Pointer): PKeymapClass
-proc IS_KEYMAP*(anObject: Pointer): bool
-proc IS_KEYMAP_CLASS*(klass: Pointer): bool
-proc KEYMAP_GET_CLASS*(obj: Pointer): PKeymapClass
-proc keymap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_keymap_get_type".}
-proc keymap_get_for_display*(display: PDisplay): PKeymap{.cdecl, dynlib: lib, 
-    importc: "gdk_keymap_get_for_display".}
-proc lookup_key*(keymap: PKeymap, key: PKeymapKey): guint{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_lookup_key".}
-proc translate_keyboard_state*(keymap: PKeymap, hardware_keycode: guint, 
-                                      state: TModifierType, group: gint, 
-                                      keyval: Pguint, effective_group: Pgint, 
-                                      level: Pgint, 
-                                      consumed_modifiers: PModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_keymap_translate_keyboard_state".}
-proc get_entries_for_keyval*(keymap: PKeymap, keyval: guint, 
-                                    s: var PKeymapKey, n_keys: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_keymap_get_entries_for_keyval".}
-proc get_entries_for_keycode*(keymap: PKeymap, hardware_keycode: guint, 
-                                     s: var PKeymapKey, sasdf: var Pguint, 
-                                     n_entries: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_get_entries_for_keycode".}
-proc get_direction*(keymap: PKeymap): TDirection{.cdecl, 
-    dynlib: lib, importc: "gdk_keymap_get_direction".}
-proc keyval_name*(keyval: guint): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_name".}
-proc keyval_from_name*(keyval_name: cstring): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_from_name".}
-proc keyval_convert_case*(symbol: guint, lower: Pguint, upper: Pguint){.cdecl, 
-    dynlib: lib, importc: "gdk_keyval_convert_case".}
-proc keyval_to_upper*(keyval: guint): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_upper".}
-proc keyval_to_lower*(keyval: guint): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_lower".}
-proc keyval_is_upper*(keyval: guint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_is_upper".}
-proc keyval_is_lower*(keyval: guint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_is_lower".}
-proc keyval_to_unicode*(keyval: guint): guint32{.cdecl, dynlib: lib, 
-    importc: "gdk_keyval_to_unicode".}
-proc unicode_to_keyval*(wc: guint32): guint{.cdecl, dynlib: lib, 
-    importc: "gdk_unicode_to_keyval".}
-const 
-  KEY_VoidSymbol* = 0x00FFFFFF
-  KEY_BackSpace* = 0x0000FF08
-  KEY_Tab* = 0x0000FF09
-  KEY_Linefeed* = 0x0000FF0A
-  KEY_Clear* = 0x0000FF0B
-  KEY_Return* = 0x0000FF0D
-  KEY_Pause* = 0x0000FF13
-  KEY_Scroll_Lock* = 0x0000FF14
-  KEY_Sys_Req* = 0x0000FF15
-  KEY_Escape* = 0x0000FF1B
-  KEY_Delete* = 0x0000FFFF
-  KEY_Multi_key* = 0x0000FF20
-  KEY_Codeinput* = 0x0000FF37
-  KEY_SingleCandidate* = 0x0000FF3C
-  KEY_MultipleCandidate* = 0x0000FF3D
-  KEY_PreviousCandidate* = 0x0000FF3E
-  KEY_Kanji* = 0x0000FF21
-  KEY_Muhenkan* = 0x0000FF22
-  KEY_Henkan_Mode* = 0x0000FF23
-  KEY_Henkan* = 0x0000FF23
-  KEY_Romaji* = 0x0000FF24
-  KEY_Hiragana* = 0x0000FF25
-  KEY_Katakana* = 0x0000FF26
-  KEY_Hiragana_Katakana* = 0x0000FF27
-  KEY_Zenkaku* = 0x0000FF28
-  KEY_Hankaku* = 0x0000FF29
-  KEY_Zenkaku_Hankaku* = 0x0000FF2A
-  KEY_Touroku* = 0x0000FF2B
-  KEY_Massyo* = 0x0000FF2C
-  KEY_Kana_Lock* = 0x0000FF2D
-  KEY_Kana_Shift* = 0x0000FF2E
-  KEY_Eisu_Shift* = 0x0000FF2F
-  KEY_Eisu_toggle* = 0x0000FF30
-  KEY_Kanji_Bangou* = 0x0000FF37
-  KEY_Zen_Koho* = 0x0000FF3D
-  KEY_Mae_Koho* = 0x0000FF3E
-  KEY_Home* = 0x0000FF50
-  KEY_Left* = 0x0000FF51
-  KEY_Up* = 0x0000FF52
-  KEY_Right* = 0x0000FF53
-  KEY_Down* = 0x0000FF54
-  KEY_Prior* = 0x0000FF55
-  KEY_Page_Up* = 0x0000FF55
-  KEY_Next* = 0x0000FF56
-  KEY_Page_Down* = 0x0000FF56
-  KEY_End* = 0x0000FF57
-  KEY_Begin* = 0x0000FF58
-  KEY_Select* = 0x0000FF60
-  KEY_Print* = 0x0000FF61
-  KEY_Execute* = 0x0000FF62
-  KEY_Insert* = 0x0000FF63
-  KEY_Undo* = 0x0000FF65
-  KEY_Redo* = 0x0000FF66
-  KEY_Menu* = 0x0000FF67
-  KEY_Find* = 0x0000FF68
-  KEY_Cancel* = 0x0000FF69
-  KEY_Help* = 0x0000FF6A
-  KEY_Break* = 0x0000FF6B
-  KEY_Mode_switch* = 0x0000FF7E
-  KEY_script_switch* = 0x0000FF7E
-  KEY_Num_Lock* = 0x0000FF7F
-  KEY_KP_Space* = 0x0000FF80
-  KEY_KP_Tab* = 0x0000FF89
-  KEY_KP_Enter* = 0x0000FF8D
-  KEY_KP_F1* = 0x0000FF91
-  KEY_KP_F2* = 0x0000FF92
-  KEY_KP_F3* = 0x0000FF93
-  KEY_KP_F4* = 0x0000FF94
-  KEY_KP_Home* = 0x0000FF95
-  KEY_KP_Left* = 0x0000FF96
-  KEY_KP_Up* = 0x0000FF97
-  KEY_KP_Right* = 0x0000FF98
-  KEY_KP_Down* = 0x0000FF99
-  KEY_KP_Prior* = 0x0000FF9A
-  KEY_KP_Page_Up* = 0x0000FF9A
-  KEY_KP_Next* = 0x0000FF9B
-  KEY_KP_Page_Down* = 0x0000FF9B
-  KEY_KP_End* = 0x0000FF9C
-  KEY_KP_Begin* = 0x0000FF9D
-  KEY_KP_Insert* = 0x0000FF9E
-  KEY_KP_Delete* = 0x0000FF9F
-  KEY_KP_Equal* = 0x0000FFBD
-  KEY_KP_Multiply* = 0x0000FFAA
-  KEY_KP_Add* = 0x0000FFAB
-  KEY_KP_Separator* = 0x0000FFAC
-  KEY_KP_Subtract* = 0x0000FFAD
-  KEY_KP_Decimal* = 0x0000FFAE
-  KEY_KP_Divide* = 0x0000FFAF
-  KEY_KP_0* = 0x0000FFB0
-  KEY_KP_1* = 0x0000FFB1
-  KEY_KP_2* = 0x0000FFB2
-  KEY_KP_3* = 0x0000FFB3
-  KEY_KP_4* = 0x0000FFB4
-  KEY_KP_5* = 0x0000FFB5
-  KEY_KP_6* = 0x0000FFB6
-  KEY_KP_7* = 0x0000FFB7
-  KEY_KP_8* = 0x0000FFB8
-  KEY_KP_9* = 0x0000FFB9
-  KEY_F1* = 0x0000FFBE
-  KEY_F2* = 0x0000FFBF
-  KEY_F3* = 0x0000FFC0
-  KEY_F4* = 0x0000FFC1
-  KEY_F5* = 0x0000FFC2
-  KEY_F6* = 0x0000FFC3
-  KEY_F7* = 0x0000FFC4
-  KEY_F8* = 0x0000FFC5
-  KEY_F9* = 0x0000FFC6
-  KEY_F10* = 0x0000FFC7
-  KEY_F11* = 0x0000FFC8
-  KEY_L1* = 0x0000FFC8
-  KEY_F12* = 0x0000FFC9
-  KEY_L2* = 0x0000FFC9
-  KEY_F13* = 0x0000FFCA
-  KEY_L3* = 0x0000FFCA
-  KEY_F14* = 0x0000FFCB
-  KEY_L4* = 0x0000FFCB
-  KEY_F15* = 0x0000FFCC
-  KEY_L5* = 0x0000FFCC
-  KEY_F16* = 0x0000FFCD
-  KEY_L6* = 0x0000FFCD
-  KEY_F17* = 0x0000FFCE
-  KEY_L7* = 0x0000FFCE
-  KEY_F18* = 0x0000FFCF
-  KEY_L8* = 0x0000FFCF
-  KEY_F19* = 0x0000FFD0
-  KEY_L9* = 0x0000FFD0
-  KEY_F20* = 0x0000FFD1
-  KEY_L10* = 0x0000FFD1
-  KEY_F21* = 0x0000FFD2
-  KEY_R1* = 0x0000FFD2
-  KEY_F22* = 0x0000FFD3
-  KEY_R2* = 0x0000FFD3
-  KEY_F23* = 0x0000FFD4
-  KEY_R3* = 0x0000FFD4
-  KEY_F24* = 0x0000FFD5
-  KEY_R4* = 0x0000FFD5
-  KEY_F25* = 0x0000FFD6
-  KEY_R5* = 0x0000FFD6
-  KEY_F26* = 0x0000FFD7
-  KEY_R6* = 0x0000FFD7
-  KEY_F27* = 0x0000FFD8
-  KEY_R7* = 0x0000FFD8
-  KEY_F28* = 0x0000FFD9
-  KEY_R8* = 0x0000FFD9
-  KEY_F29* = 0x0000FFDA
-  KEY_R9* = 0x0000FFDA
-  KEY_F30* = 0x0000FFDB
-  KEY_R10* = 0x0000FFDB
-  KEY_F31* = 0x0000FFDC
-  KEY_R11* = 0x0000FFDC
-  KEY_F32* = 0x0000FFDD
-  KEY_R12* = 0x0000FFDD
-  KEY_F33* = 0x0000FFDE
-  KEY_R13* = 0x0000FFDE
-  KEY_F34* = 0x0000FFDF
-  KEY_R14* = 0x0000FFDF
-  KEY_F35* = 0x0000FFE0
-  KEY_R15* = 0x0000FFE0
-  KEY_Shift_L* = 0x0000FFE1
-  KEY_Shift_R* = 0x0000FFE2
-  KEY_Control_L* = 0x0000FFE3
-  KEY_Control_R* = 0x0000FFE4
-  KEY_Caps_Lock* = 0x0000FFE5
-  KEY_Shift_Lock* = 0x0000FFE6
-  KEY_Meta_L* = 0x0000FFE7
-  KEY_Meta_R* = 0x0000FFE8
-  KEY_Alt_L* = 0x0000FFE9
-  KEY_Alt_R* = 0x0000FFEA
-  KEY_Super_L* = 0x0000FFEB
-  KEY_Super_R* = 0x0000FFEC
-  KEY_Hyper_L* = 0x0000FFED
-  KEY_Hyper_R* = 0x0000FFEE
-  KEY_ISO_Lock* = 0x0000FE01
-  KEY_ISO_Level2_Latch* = 0x0000FE02
-  KEY_ISO_Level3_Shift* = 0x0000FE03
-  KEY_ISO_Level3_Latch* = 0x0000FE04
-  KEY_ISO_Level3_Lock* = 0x0000FE05
-  KEY_ISO_Group_Shift* = 0x0000FF7E
-  KEY_ISO_Group_Latch* = 0x0000FE06
-  KEY_ISO_Group_Lock* = 0x0000FE07
-  KEY_ISO_Next_Group* = 0x0000FE08
-  KEY_ISO_Next_Group_Lock* = 0x0000FE09
-  KEY_ISO_Prev_Group* = 0x0000FE0A
-  KEY_ISO_Prev_Group_Lock* = 0x0000FE0B
-  KEY_ISO_First_Group* = 0x0000FE0C
-  KEY_ISO_First_Group_Lock* = 0x0000FE0D
-  KEY_ISO_Last_Group* = 0x0000FE0E
-  KEY_ISO_Last_Group_Lock* = 0x0000FE0F
-  KEY_ISO_Left_Tab* = 0x0000FE20
-  KEY_ISO_Move_Line_Up* = 0x0000FE21
-  KEY_ISO_Move_Line_Down* = 0x0000FE22
-  KEY_ISO_Partial_Line_Up* = 0x0000FE23
-  KEY_ISO_Partial_Line_Down* = 0x0000FE24
-  KEY_ISO_Partial_Space_Left* = 0x0000FE25
-  KEY_ISO_Partial_Space_Right* = 0x0000FE26
-  KEY_ISO_Set_Margin_Left* = 0x0000FE27
-  KEY_ISO_Set_Margin_Right* = 0x0000FE28
-  KEY_ISO_Release_Margin_Left* = 0x0000FE29
-  KEY_ISO_Release_Margin_Right* = 0x0000FE2A
-  KEY_ISO_Release_Both_Margins* = 0x0000FE2B
-  KEY_ISO_Fast_Cursor_Left* = 0x0000FE2C
-  KEY_ISO_Fast_Cursor_Right* = 0x0000FE2D
-  KEY_ISO_Fast_Cursor_Up* = 0x0000FE2E
-  KEY_ISO_Fast_Cursor_Down* = 0x0000FE2F
-  KEY_ISO_Continuous_Underline* = 0x0000FE30
-  KEY_ISO_Discontinuous_Underline* = 0x0000FE31
-  KEY_ISO_Emphasize* = 0x0000FE32
-  KEY_ISO_Center_Object* = 0x0000FE33
-  KEY_ISO_Enter* = 0x0000FE34
-  KEY_dead_grave* = 0x0000FE50
-  KEY_dead_acute* = 0x0000FE51
-  KEY_dead_circumflex* = 0x0000FE52
-  KEY_dead_tilde* = 0x0000FE53
-  KEY_dead_macron* = 0x0000FE54
-  KEY_dead_breve* = 0x0000FE55
-  KEY_dead_abovedot* = 0x0000FE56
-  KEY_dead_diaeresis* = 0x0000FE57
-  KEY_dead_abovering* = 0x0000FE58
-  KEY_dead_doubleacute* = 0x0000FE59
-  KEY_dead_caron* = 0x0000FE5A
-  KEY_dead_cedilla* = 0x0000FE5B
-  KEY_dead_ogonek* = 0x0000FE5C
-  KEY_dead_iota* = 0x0000FE5D
-  KEY_dead_voiced_sound* = 0x0000FE5E
-  KEY_dead_semivoiced_sound* = 0x0000FE5F
-  KEY_dead_belowdot* = 0x0000FE60
-  KEY_First_Virtual_Screen* = 0x0000FED0
-  KEY_Prev_Virtual_Screen* = 0x0000FED1
-  KEY_Next_Virtual_Screen* = 0x0000FED2
-  KEY_Last_Virtual_Screen* = 0x0000FED4
-  KEY_Terminate_Server* = 0x0000FED5
-  KEY_AccessX_Enable* = 0x0000FE70
-  KEY_AccessX_Feedback_Enable* = 0x0000FE71
-  KEY_RepeatKeys_Enable* = 0x0000FE72
-  KEY_SlowKeys_Enable* = 0x0000FE73
-  KEY_BounceKeys_Enable* = 0x0000FE74
-  KEY_StickyKeys_Enable* = 0x0000FE75
-  KEY_MouseKeys_Enable* = 0x0000FE76
-  KEY_MouseKeys_Accel_Enable* = 0x0000FE77
-  KEY_Overlay1_Enable* = 0x0000FE78
-  KEY_Overlay2_Enable* = 0x0000FE79
-  KEY_AudibleBell_Enable* = 0x0000FE7A
-  KEY_Pointer_Left* = 0x0000FEE0
-  KEY_Pointer_Right* = 0x0000FEE1
-  KEY_Pointer_Up* = 0x0000FEE2
-  KEY_Pointer_Down* = 0x0000FEE3
-  KEY_Pointer_UpLeft* = 0x0000FEE4
-  KEY_Pointer_UpRight* = 0x0000FEE5
-  KEY_Pointer_DownLeft* = 0x0000FEE6
-  KEY_Pointer_DownRight* = 0x0000FEE7
-  KEY_Pointer_Button_Dflt* = 0x0000FEE8
-  KEY_Pointer_Button1* = 0x0000FEE9
-  KEY_Pointer_Button2* = 0x0000FEEA
-  KEY_Pointer_Button3* = 0x0000FEEB
-  KEY_Pointer_Button4* = 0x0000FEEC
-  KEY_Pointer_Button5* = 0x0000FEED
-  KEY_Pointer_DblClick_Dflt* = 0x0000FEEE
-  KEY_Pointer_DblClick1* = 0x0000FEEF
-  KEY_Pointer_DblClick2* = 0x0000FEF0
-  KEY_Pointer_DblClick3* = 0x0000FEF1
-  KEY_Pointer_DblClick4* = 0x0000FEF2
-  KEY_Pointer_DblClick5* = 0x0000FEF3
-  KEY_Pointer_Drag_Dflt* = 0x0000FEF4
-  KEY_Pointer_Drag1* = 0x0000FEF5
-  KEY_Pointer_Drag2* = 0x0000FEF6
-  KEY_Pointer_Drag3* = 0x0000FEF7
-  KEY_Pointer_Drag4* = 0x0000FEF8
-  KEY_Pointer_Drag5* = 0x0000FEFD
-  KEY_Pointer_EnableKeys* = 0x0000FEF9
-  KEY_Pointer_Accelerate* = 0x0000FEFA
-  KEY_Pointer_DfltBtnNext* = 0x0000FEFB
-  KEY_Pointer_DfltBtnPrev* = 0x0000FEFC
-  KEY_3270_Duplicate* = 0x0000FD01
-  KEY_3270_FieldMark* = 0x0000FD02
-  KEY_3270_Right2* = 0x0000FD03
-  KEY_3270_Left2* = 0x0000FD04
-  KEY_3270_BackTab* = 0x0000FD05
-  KEY_3270_EraseEOF* = 0x0000FD06
-  KEY_3270_EraseInput* = 0x0000FD07
-  KEY_3270_Reset* = 0x0000FD08
-  KEY_3270_Quit* = 0x0000FD09
-  KEY_3270_PA1* = 0x0000FD0A
-  KEY_3270_PA2* = 0x0000FD0B
-  KEY_3270_PA3* = 0x0000FD0C
-  KEY_3270_Test* = 0x0000FD0D
-  KEY_3270_Attn* = 0x0000FD0E
-  KEY_3270_CursorBlink* = 0x0000FD0F
-  KEY_3270_AltCursor* = 0x0000FD10
-  KEY_3270_KeyClick* = 0x0000FD11
-  KEY_3270_Jump* = 0x0000FD12
-  KEY_3270_Ident* = 0x0000FD13
-  KEY_3270_Rule* = 0x0000FD14
-  KEY_3270_Copy* = 0x0000FD15
-  KEY_3270_Play* = 0x0000FD16
-  KEY_3270_Setup* = 0x0000FD17
-  KEY_3270_Record* = 0x0000FD18
-  KEY_3270_ChangeScreen* = 0x0000FD19
-  KEY_3270_DeleteWord* = 0x0000FD1A
-  KEY_3270_ExSelect* = 0x0000FD1B
-  KEY_3270_CursorSelect* = 0x0000FD1C
-  KEY_3270_PrintScreen* = 0x0000FD1D
-  KEY_3270_Enter* = 0x0000FD1E
-  KEY_space* = 0x00000020
-  KEY_exclam* = 0x00000021
-  KEY_quotedbl* = 0x00000022
-  KEY_numbersign* = 0x00000023
-  KEY_dollar* = 0x00000024
-  KEY_percent* = 0x00000025
-  KEY_ampersand* = 0x00000026
-  KEY_apostrophe* = 0x00000027
-  KEY_quoteright* = 0x00000027
-  KEY_parenleft* = 0x00000028
-  KEY_parenright* = 0x00000029
-  KEY_asterisk* = 0x0000002A
-  KEY_plus* = 0x0000002B
-  KEY_comma* = 0x0000002C
-  KEY_minus* = 0x0000002D
-  KEY_period* = 0x0000002E
-  KEY_slash* = 0x0000002F
-  KEY_0* = 0x00000030
-  KEY_1* = 0x00000031
-  KEY_2* = 0x00000032
-  KEY_3* = 0x00000033
-  KEY_4* = 0x00000034
-  KEY_5* = 0x00000035
-  KEY_6* = 0x00000036
-  KEY_7* = 0x00000037
-  KEY_8* = 0x00000038
-  KEY_9* = 0x00000039
-  KEY_colon* = 0x0000003A
-  KEY_semicolon* = 0x0000003B
-  KEY_less* = 0x0000003C
-  KEY_equal* = 0x0000003D
-  KEY_greater* = 0x0000003E
-  KEY_question* = 0x0000003F
-  KEY_at* = 0x00000040
-  KEY_CAPITAL_A* = 0x00000041
-  KEY_CAPITAL_B* = 0x00000042
-  KEY_CAPITAL_C* = 0x00000043
-  KEY_CAPITAL_D* = 0x00000044
-  KEY_CAPITAL_E* = 0x00000045
-  KEY_CAPITAL_F* = 0x00000046
-  KEY_CAPITAL_G* = 0x00000047
-  KEY_CAPITAL_H* = 0x00000048
-  KEY_CAPITAL_I* = 0x00000049
-  KEY_CAPITAL_J* = 0x0000004A
-  KEY_CAPITAL_K* = 0x0000004B
-  KEY_CAPITAL_L* = 0x0000004C
-  KEY_CAPITAL_M* = 0x0000004D
-  KEY_CAPITAL_N* = 0x0000004E
-  KEY_CAPITAL_O* = 0x0000004F
-  KEY_CAPITAL_P* = 0x00000050
-  KEY_CAPITAL_Q* = 0x00000051
-  KEY_CAPITAL_R* = 0x00000052
-  KEY_CAPITAL_S* = 0x00000053
-  KEY_CAPITAL_T* = 0x00000054
-  KEY_CAPITAL_U* = 0x00000055
-  KEY_CAPITAL_V* = 0x00000056
-  KEY_CAPITAL_W* = 0x00000057
-  KEY_CAPITAL_X* = 0x00000058
-  KEY_CAPITAL_Y* = 0x00000059
-  KEY_CAPITAL_Z* = 0x0000005A
-  KEY_bracketleft* = 0x0000005B
-  KEY_backslash* = 0x0000005C
-  KEY_bracketright* = 0x0000005D
-  KEY_asciicircum* = 0x0000005E
-  KEY_underscore* = 0x0000005F
-  KEY_grave* = 0x00000060
-  KEY_quoteleft* = 0x00000060
-  KEY_a* = 0x00000061
-  KEY_b* = 0x00000062
-  KEY_c* = 0x00000063
-  KEY_d* = 0x00000064
-  KEY_e* = 0x00000065
-  KEY_f* = 0x00000066
-  KEY_g* = 0x00000067
-  KEY_h* = 0x00000068
-  KEY_i* = 0x00000069
-  KEY_j* = 0x0000006A
-  KEY_k* = 0x0000006B
-  KEY_l* = 0x0000006C
-  KEY_m* = 0x0000006D
-  KEY_n* = 0x0000006E
-  KEY_o* = 0x0000006F
-  KEY_p* = 0x00000070
-  KEY_q* = 0x00000071
-  KEY_r* = 0x00000072
-  KEY_s* = 0x00000073
-  KEY_t* = 0x00000074
-  KEY_u* = 0x00000075
-  KEY_v* = 0x00000076
-  KEY_w* = 0x00000077
-  KEY_x* = 0x00000078
-  KEY_y* = 0x00000079
-  KEY_z* = 0x0000007A
-  KEY_braceleft* = 0x0000007B
-  KEY_bar* = 0x0000007C
-  KEY_braceright* = 0x0000007D
-  KEY_asciitilde* = 0x0000007E
-  KEY_nobreakspace* = 0x000000A0
-  KEY_exclamdown* = 0x000000A1
-  KEY_cent* = 0x000000A2
-  KEY_sterling* = 0x000000A3
-  KEY_currency* = 0x000000A4
-  KEY_yen* = 0x000000A5
-  KEY_brokenbar* = 0x000000A6
-  KEY_section* = 0x000000A7
-  KEY_diaeresis* = 0x000000A8
-  KEY_copyright* = 0x000000A9
-  KEY_ordfeminine* = 0x000000AA
-  KEY_guillemotleft* = 0x000000AB
-  KEY_notsign* = 0x000000AC
-  KEY_hyphen* = 0x000000AD
-  KEY_registered* = 0x000000AE
-  KEY_macron* = 0x000000AF
-  KEY_degree* = 0x000000B0
-  KEY_plusminus* = 0x000000B1
-  KEY_twosuperior* = 0x000000B2
-  KEY_threesuperior* = 0x000000B3
-  KEY_acute* = 0x000000B4
-  KEY_mu* = 0x000000B5
-  KEY_paragraph* = 0x000000B6
-  KEY_periodcentered* = 0x000000B7
-  KEY_cedilla* = 0x000000B8
-  KEY_onesuperior* = 0x000000B9
-  KEY_masculine* = 0x000000BA
-  KEY_guillemotright* = 0x000000BB
-  KEY_onequarter* = 0x000000BC
-  KEY_onehalf* = 0x000000BD
-  KEY_threequarters* = 0x000000BE
-  KEY_questiondown* = 0x000000BF
-  KEY_CAPITAL_Agrave* = 0x000000C0
-  KEY_CAPITAL_Aacute* = 0x000000C1
-  KEY_CAPITAL_Acircumflex* = 0x000000C2
-  KEY_CAPITAL_Atilde* = 0x000000C3
-  KEY_CAPITAL_Adiaeresis* = 0x000000C4
-  KEY_CAPITAL_Aring* = 0x000000C5
-  KEY_CAPITAL_AE* = 0x000000C6
-  KEY_CAPITAL_Ccedilla* = 0x000000C7
-  KEY_CAPITAL_Egrave* = 0x000000C8
-  KEY_CAPITAL_Eacute* = 0x000000C9
-  KEY_CAPITAL_Ecircumflex* = 0x000000CA
-  KEY_CAPITAL_Ediaeresis* = 0x000000CB
-  KEY_CAPITAL_Igrave* = 0x000000CC
-  KEY_CAPITAL_Iacute* = 0x000000CD
-  KEY_CAPITAL_Icircumflex* = 0x000000CE
-  KEY_CAPITAL_Idiaeresis* = 0x000000CF
-  KEY_CAPITAL_ETH* = 0x000000D0
-  KEY_CAPITAL_Ntilde* = 0x000000D1
-  KEY_CAPITAL_Ograve* = 0x000000D2
-  KEY_CAPITAL_Oacute* = 0x000000D3
-  KEY_CAPITAL_Ocircumflex* = 0x000000D4
-  KEY_CAPITAL_Otilde* = 0x000000D5
-  KEY_CAPITAL_Odiaeresis* = 0x000000D6
-  KEY_multiply* = 0x000000D7
-  KEY_Ooblique* = 0x000000D8
-  KEY_CAPITAL_Ugrave* = 0x000000D9
-  KEY_CAPITAL_Uacute* = 0x000000DA
-  KEY_CAPITAL_Ucircumflex* = 0x000000DB
-  KEY_CAPITAL_Udiaeresis* = 0x000000DC
-  KEY_CAPITAL_Yacute* = 0x000000DD
-  KEY_CAPITAL_THORN* = 0x000000DE
-  KEY_ssharp* = 0x000000DF
-  KEY_agrave* = 0x000000E0
-  KEY_aacute* = 0x000000E1
-  KEY_acircumflex* = 0x000000E2
-  KEY_atilde* = 0x000000E3
-  KEY_adiaeresis* = 0x000000E4
-  KEY_aring* = 0x000000E5
-  KEY_ae* = 0x000000E6
-  KEY_ccedilla* = 0x000000E7
-  KEY_egrave* = 0x000000E8
-  KEY_eacute* = 0x000000E9
-  KEY_ecircumflex* = 0x000000EA
-  KEY_ediaeresis* = 0x000000EB
-  KEY_igrave* = 0x000000EC
-  KEY_iacute* = 0x000000ED
-  KEY_icircumflex* = 0x000000EE
-  KEY_idiaeresis* = 0x000000EF
-  KEY_eth* = 0x000000F0
-  KEY_ntilde* = 0x000000F1
-  KEY_ograve* = 0x000000F2
-  KEY_oacute* = 0x000000F3
-  KEY_ocircumflex* = 0x000000F4
-  KEY_otilde* = 0x000000F5
-  KEY_odiaeresis* = 0x000000F6
-  KEY_division* = 0x000000F7
-  KEY_oslash* = 0x000000F8
-  KEY_ugrave* = 0x000000F9
-  KEY_uacute* = 0x000000FA
-  KEY_ucircumflex* = 0x000000FB
-  KEY_udiaeresis* = 0x000000FC
-  KEY_yacute* = 0x000000FD
-  KEY_thorn* = 0x000000FE
-  KEY_ydiaeresis* = 0x000000FF
-  KEY_CAPITAL_Aogonek* = 0x000001A1
-  KEY_breve* = 0x000001A2
-  KEY_CAPITAL_Lstroke* = 0x000001A3
-  KEY_CAPITAL_Lcaron* = 0x000001A5
-  KEY_CAPITAL_Sacute* = 0x000001A6
-  KEY_CAPITAL_Scaron* = 0x000001A9
-  KEY_CAPITAL_Scedilla* = 0x000001AA
-  KEY_CAPITAL_Tcaron* = 0x000001AB
-  KEY_CAPITAL_Zacute* = 0x000001AC
-  KEY_CAPITAL_Zcaron* = 0x000001AE
-  KEY_CAPITAL_Zabovedot* = 0x000001AF
-  KEY_aogonek* = 0x000001B1
-  KEY_ogonek* = 0x000001B2
-  KEY_lstroke* = 0x000001B3
-  KEY_lcaron* = 0x000001B5
-  KEY_sacute* = 0x000001B6
-  KEY_caron* = 0x000001B7
-  KEY_scaron* = 0x000001B9
-  KEY_scedilla* = 0x000001BA
-  KEY_tcaron* = 0x000001BB
-  KEY_zacute* = 0x000001BC
-  KEY_doubleacute* = 0x000001BD
-  KEY_zcaron* = 0x000001BE
-  KEY_zabovedot* = 0x000001BF
-  KEY_CAPITAL_Racute* = 0x000001C0
-  KEY_CAPITAL_Abreve* = 0x000001C3
-  KEY_CAPITAL_Lacute* = 0x000001C5
-  KEY_CAPITAL_Cacute* = 0x000001C6
-  KEY_CAPITAL_Ccaron* = 0x000001C8
-  KEY_CAPITAL_Eogonek* = 0x000001CA
-  KEY_CAPITAL_Ecaron* = 0x000001CC
-  KEY_CAPITAL_Dcaron* = 0x000001CF
-  KEY_CAPITAL_Dstroke* = 0x000001D0
-  KEY_CAPITAL_Nacute* = 0x000001D1
-  KEY_CAPITAL_Ncaron* = 0x000001D2
-  KEY_CAPITAL_Odoubleacute* = 0x000001D5
-  KEY_CAPITAL_Rcaron* = 0x000001D8
-  KEY_CAPITAL_Uring* = 0x000001D9
-  KEY_CAPITAL_Udoubleacute* = 0x000001DB
-  KEY_CAPITAL_Tcedilla* = 0x000001DE
-  KEY_racute* = 0x000001E0
-  KEY_abreve* = 0x000001E3
-  KEY_lacute* = 0x000001E5
-  KEY_cacute* = 0x000001E6
-  KEY_ccaron* = 0x000001E8
-  KEY_eogonek* = 0x000001EA
-  KEY_ecaron* = 0x000001EC
-  KEY_dcaron* = 0x000001EF
-  KEY_dstroke* = 0x000001F0
-  KEY_nacute* = 0x000001F1
-  KEY_ncaron* = 0x000001F2
-  KEY_odoubleacute* = 0x000001F5
-  KEY_udoubleacute* = 0x000001FB
-  KEY_rcaron* = 0x000001F8
-  KEY_uring* = 0x000001F9
-  KEY_tcedilla* = 0x000001FE
-  KEY_abovedot* = 0x000001FF
-  KEY_CAPITAL_Hstroke* = 0x000002A1
-  KEY_CAPITAL_Hcircumflex* = 0x000002A6
-  KEY_CAPITAL_Iabovedot* = 0x000002A9
-  KEY_CAPITAL_Gbreve* = 0x000002AB
-  KEY_CAPITAL_Jcircumflex* = 0x000002AC
-  KEY_hstroke* = 0x000002B1
-  KEY_hcircumflex* = 0x000002B6
-  KEY_idotless* = 0x000002B9
-  KEY_gbreve* = 0x000002BB
-  KEY_jcircumflex* = 0x000002BC
-  KEY_CAPITAL_Cabovedot* = 0x000002C5
-  KEY_CAPITAL_Ccircumflex* = 0x000002C6
-  KEY_CAPITAL_Gabovedot* = 0x000002D5
-  KEY_CAPITAL_Gcircumflex* = 0x000002D8
-  KEY_CAPITAL_Ubreve* = 0x000002DD
-  KEY_CAPITAL_Scircumflex* = 0x000002DE
-  KEY_cabovedot* = 0x000002E5
-  KEY_ccircumflex* = 0x000002E6
-  KEY_gabovedot* = 0x000002F5
-  KEY_gcircumflex* = 0x000002F8
-  KEY_ubreve* = 0x000002FD
-  KEY_scircumflex* = 0x000002FE
-  KEY_kra* = 0x000003A2
-  KEY_kappa* = 0x000003A2
-  KEY_CAPITAL_Rcedilla* = 0x000003A3
-  KEY_CAPITAL_Itilde* = 0x000003A5
-  KEY_CAPITAL_Lcedilla* = 0x000003A6
-  KEY_CAPITAL_Emacron* = 0x000003AA
-  KEY_CAPITAL_Gcedilla* = 0x000003AB
-  KEY_CAPITAL_Tslash* = 0x000003AC
-  KEY_rcedilla* = 0x000003B3
-  KEY_itilde* = 0x000003B5
-  KEY_lcedilla* = 0x000003B6
-  KEY_emacron* = 0x000003BA
-  KEY_gcedilla* = 0x000003BB
-  KEY_tslash* = 0x000003BC
-  KEY_CAPITAL_ENG* = 0x000003BD
-  KEY_eng* = 0x000003BF
-  KEY_CAPITAL_Amacron* = 0x000003C0
-  KEY_CAPITAL_Iogonek* = 0x000003C7
-  KEY_CAPITAL_Eabovedot* = 0x000003CC
-  KEY_CAPITAL_Imacron* = 0x000003CF
-  KEY_CAPITAL_Ncedilla* = 0x000003D1
-  KEY_CAPITAL_Omacron* = 0x000003D2
-  KEY_CAPITAL_Kcedilla* = 0x000003D3
-  KEY_CAPITAL_Uogonek* = 0x000003D9
-  KEY_CAPITAL_Utilde* = 0x000003DD
-  KEY_CAPITAL_Umacron* = 0x000003DE
-  KEY_amacron* = 0x000003E0
-  KEY_iogonek* = 0x000003E7
-  KEY_eabovedot* = 0x000003EC
-  KEY_imacron* = 0x000003EF
-  KEY_ncedilla* = 0x000003F1
-  KEY_omacron* = 0x000003F2
-  KEY_kcedilla* = 0x000003F3
-  KEY_uogonek* = 0x000003F9
-  KEY_utilde* = 0x000003FD
-  KEY_umacron* = 0x000003FE
-  KEY_CAPITAL_OE* = 0x000013BC
-  KEY_oe* = 0x000013BD
-  KEY_CAPITAL_Ydiaeresis* = 0x000013BE
-  KEY_overline* = 0x0000047E
-  KEY_kana_fullstop* = 0x000004A1
-  KEY_kana_openingbracket* = 0x000004A2
-  KEY_kana_closingbracket* = 0x000004A3
-  KEY_kana_comma* = 0x000004A4
-  KEY_kana_conjunctive* = 0x000004A5
-  KEY_kana_middledot* = 0x000004A5
-  KEY_kana_WO* = 0x000004A6
-  KEY_kana_a* = 0x000004A7
-  KEY_kana_i* = 0x000004A8
-  KEY_kana_u* = 0x000004A9
-  KEY_kana_e* = 0x000004AA
-  KEY_kana_o* = 0x000004AB
-  KEY_kana_ya* = 0x000004AC
-  KEY_kana_yu* = 0x000004AD
-  KEY_kana_yo* = 0x000004AE
-  KEY_kana_tsu* = 0x000004AF
-  KEY_kana_tu* = 0x000004AF
-  KEY_prolongedsound* = 0x000004B0
-  KEY_kana_CAPITAL_A* = 0x000004B1
-  KEY_kana_CAPITAL_I* = 0x000004B2
-  KEY_kana_CAPITAL_U* = 0x000004B3
-  KEY_kana_CAPITAL_E* = 0x000004B4
-  KEY_kana_CAPITAL_O* = 0x000004B5
-  KEY_kana_KA* = 0x000004B6
-  KEY_kana_KI* = 0x000004B7
-  KEY_kana_KU* = 0x000004B8
-  KEY_kana_KE* = 0x000004B9
-  KEY_kana_KO* = 0x000004BA
-  KEY_kana_SA* = 0x000004BB
-  KEY_kana_SHI* = 0x000004BC
-  KEY_kana_SU* = 0x000004BD
-  KEY_kana_SE* = 0x000004BE
-  KEY_kana_SO* = 0x000004BF
-  KEY_kana_TA* = 0x000004C0
-  KEY_kana_CHI* = 0x000004C1
-  KEY_kana_TI* = 0x000004C1
-  KEY_kana_CAPITAL_TSU* = 0x000004C2
-  KEY_kana_CAPITAL_TU* = 0x000004C2
-  KEY_kana_TE* = 0x000004C3
-  KEY_kana_TO* = 0x000004C4
-  KEY_kana_NA* = 0x000004C5
-  KEY_kana_NI* = 0x000004C6
-  KEY_kana_NU* = 0x000004C7
-  KEY_kana_NE* = 0x000004C8
-  KEY_kana_NO* = 0x000004C9
-  KEY_kana_HA* = 0x000004CA
-  KEY_kana_HI* = 0x000004CB
-  KEY_kana_FU* = 0x000004CC
-  KEY_kana_HU* = 0x000004CC
-  KEY_kana_HE* = 0x000004CD
-  KEY_kana_HO* = 0x000004CE
-  KEY_kana_MA* = 0x000004CF
-  KEY_kana_MI* = 0x000004D0
-  KEY_kana_MU* = 0x000004D1
-  KEY_kana_ME* = 0x000004D2
-  KEY_kana_MO* = 0x000004D3
-  KEY_kana_CAPITAL_YA* = 0x000004D4
-  KEY_kana_CAPITAL_YU* = 0x000004D5
-  KEY_kana_CAPITAL_YO* = 0x000004D6
-  KEY_kana_RA* = 0x000004D7
-  KEY_kana_RI* = 0x000004D8
-  KEY_kana_RU* = 0x000004D9
-  KEY_kana_RE* = 0x000004DA
-  KEY_kana_RO* = 0x000004DB
-  KEY_kana_WA* = 0x000004DC
-  KEY_kana_N* = 0x000004DD
-  KEY_voicedsound* = 0x000004DE
-  KEY_semivoicedsound* = 0x000004DF
-  KEY_kana_switch* = 0x0000FF7E
-  KEY_Arabic_comma* = 0x000005AC
-  KEY_Arabic_semicolon* = 0x000005BB
-  KEY_Arabic_question_mark* = 0x000005BF
-  KEY_Arabic_hamza* = 0x000005C1
-  KEY_Arabic_maddaonalef* = 0x000005C2
-  KEY_Arabic_hamzaonalef* = 0x000005C3
-  KEY_Arabic_hamzaonwaw* = 0x000005C4
-  KEY_Arabic_hamzaunderalef* = 0x000005C5
-  KEY_Arabic_hamzaonyeh* = 0x000005C6
-  KEY_Arabic_alef* = 0x000005C7
-  KEY_Arabic_beh* = 0x000005C8
-  KEY_Arabic_tehmarbuta* = 0x000005C9
-  KEY_Arabic_teh* = 0x000005CA
-  KEY_Arabic_theh* = 0x000005CB
-  KEY_Arabic_jeem* = 0x000005CC
-  KEY_Arabic_hah* = 0x000005CD
-  KEY_Arabic_khah* = 0x000005CE
-  KEY_Arabic_dal* = 0x000005CF
-  KEY_Arabic_thal* = 0x000005D0
-  KEY_Arabic_ra* = 0x000005D1
-  KEY_Arabic_zain* = 0x000005D2
-  KEY_Arabic_seen* = 0x000005D3
-  KEY_Arabic_sheen* = 0x000005D4
-  KEY_Arabic_sad* = 0x000005D5
-  KEY_Arabic_dad* = 0x000005D6
-  KEY_Arabic_tah* = 0x000005D7
-  KEY_Arabic_zah* = 0x000005D8
-  KEY_Arabic_ain* = 0x000005D9
-  KEY_Arabic_ghain* = 0x000005DA
-  KEY_Arabic_tatweel* = 0x000005E0
-  KEY_Arabic_feh* = 0x000005E1
-  KEY_Arabic_qaf* = 0x000005E2
-  KEY_Arabic_kaf* = 0x000005E3
-  KEY_Arabic_lam* = 0x000005E4
-  KEY_Arabic_meem* = 0x000005E5
-  KEY_Arabic_noon* = 0x000005E6
-  KEY_Arabic_ha* = 0x000005E7
-  KEY_Arabic_heh* = 0x000005E7
-  KEY_Arabic_waw* = 0x000005E8
-  KEY_Arabic_alefmaksura* = 0x000005E9
-  KEY_Arabic_yeh* = 0x000005EA
-  KEY_Arabic_fathatan* = 0x000005EB
-  KEY_Arabic_dammatan* = 0x000005EC
-  KEY_Arabic_kasratan* = 0x000005ED
-  KEY_Arabic_fatha* = 0x000005EE
-  KEY_Arabic_damma* = 0x000005EF
-  KEY_Arabic_kasra* = 0x000005F0
-  KEY_Arabic_shadda* = 0x000005F1
-  KEY_Arabic_sukun* = 0x000005F2
-  KEY_Arabic_switch* = 0x0000FF7E
-  KEY_Serbian_dje* = 0x000006A1
-  KEY_Macedonia_gje* = 0x000006A2
-  KEY_Cyrillic_io* = 0x000006A3
-  KEY_Ukrainian_ie* = 0x000006A4
-  KEY_Ukranian_je* = 0x000006A4
-  KEY_Macedonia_dse* = 0x000006A5
-  KEY_Ukrainian_i* = 0x000006A6
-  KEY_Ukranian_i* = 0x000006A6
-  KEY_Ukrainian_yi* = 0x000006A7
-  KEY_Ukranian_yi* = 0x000006A7
-  KEY_Cyrillic_je* = 0x000006A8
-  KEY_Serbian_je* = 0x000006A8
-  KEY_Cyrillic_lje* = 0x000006A9
-  KEY_Serbian_lje* = 0x000006A9
-  KEY_Cyrillic_nje* = 0x000006AA
-  KEY_Serbian_nje* = 0x000006AA
-  KEY_Serbian_tshe* = 0x000006AB
-  KEY_Macedonia_kje* = 0x000006AC
-  KEY_Byelorussian_shortu* = 0x000006AE
-  KEY_Cyrillic_dzhe* = 0x000006AF
-  KEY_Serbian_dze* = 0x000006AF
-  KEY_numerosign* = 0x000006B0
-  KEY_Serbian_CAPITAL_DJE* = 0x000006B1
-  KEY_Macedonia_CAPITAL_GJE* = 0x000006B2
-  KEY_Cyrillic_CAPITAL_IO* = 0x000006B3
-  KEY_Ukrainian_CAPITAL_IE* = 0x000006B4
-  KEY_Ukranian_CAPITAL_JE* = 0x000006B4
-  KEY_Macedonia_CAPITAL_DSE* = 0x000006B5
-  KEY_Ukrainian_CAPITAL_I* = 0x000006B6
-  KEY_Ukranian_CAPITAL_I* = 0x000006B6
-  KEY_Ukrainian_CAPITAL_YI* = 0x000006B7
-  KEY_Ukranian_CAPITAL_YI* = 0x000006B7
-  KEY_Cyrillic_CAPITAL_JE* = 0x000006B8
-  KEY_Serbian_CAPITAL_JE* = 0x000006B8
-  KEY_Cyrillic_CAPITAL_LJE* = 0x000006B9
-  KEY_Serbian_CAPITAL_LJE* = 0x000006B9
-  KEY_Cyrillic_CAPITAL_NJE* = 0x000006BA
-  KEY_Serbian_CAPITAL_NJE* = 0x000006BA
-  KEY_Serbian_CAPITAL_TSHE* = 0x000006BB
-  KEY_Macedonia_CAPITAL_KJE* = 0x000006BC
-  KEY_Byelorussian_CAPITAL_SHORTU* = 0x000006BE
-  KEY_Cyrillic_CAPITAL_DZHE* = 0x000006BF
-  KEY_Serbian_CAPITAL_DZE* = 0x000006BF
-  KEY_Cyrillic_yu* = 0x000006C0
-  KEY_Cyrillic_a* = 0x000006C1
-  KEY_Cyrillic_be* = 0x000006C2
-  KEY_Cyrillic_tse* = 0x000006C3
-  KEY_Cyrillic_de* = 0x000006C4
-  KEY_Cyrillic_ie* = 0x000006C5
-  KEY_Cyrillic_ef* = 0x000006C6
-  KEY_Cyrillic_ghe* = 0x000006C7
-  KEY_Cyrillic_ha* = 0x000006C8
-  KEY_Cyrillic_i* = 0x000006C9
-  KEY_Cyrillic_shorti* = 0x000006CA
-  KEY_Cyrillic_ka* = 0x000006CB
-  KEY_Cyrillic_el* = 0x000006CC
-  KEY_Cyrillic_em* = 0x000006CD
-  KEY_Cyrillic_en* = 0x000006CE
-  KEY_Cyrillic_o* = 0x000006CF
-  KEY_Cyrillic_pe* = 0x000006D0
-  KEY_Cyrillic_ya* = 0x000006D1
-  KEY_Cyrillic_er* = 0x000006D2
-  KEY_Cyrillic_es* = 0x000006D3
-  KEY_Cyrillic_te* = 0x000006D4
-  KEY_Cyrillic_u* = 0x000006D5
-  KEY_Cyrillic_zhe* = 0x000006D6
-  KEY_Cyrillic_ve* = 0x000006D7
-  KEY_Cyrillic_softsign* = 0x000006D8
-  KEY_Cyrillic_yeru* = 0x000006D9
-  KEY_Cyrillic_ze* = 0x000006DA
-  KEY_Cyrillic_sha* = 0x000006DB
-  KEY_Cyrillic_e* = 0x000006DC
-  KEY_Cyrillic_shcha* = 0x000006DD
-  KEY_Cyrillic_che* = 0x000006DE
-  KEY_Cyrillic_hardsign* = 0x000006DF
-  KEY_Cyrillic_CAPITAL_YU* = 0x000006E0
-  KEY_Cyrillic_CAPITAL_A* = 0x000006E1
-  KEY_Cyrillic_CAPITAL_BE* = 0x000006E2
-  KEY_Cyrillic_CAPITAL_TSE* = 0x000006E3
-  KEY_Cyrillic_CAPITAL_DE* = 0x000006E4
-  KEY_Cyrillic_CAPITAL_IE* = 0x000006E5
-  KEY_Cyrillic_CAPITAL_EF* = 0x000006E6
-  KEY_Cyrillic_CAPITAL_GHE* = 0x000006E7
-  KEY_Cyrillic_CAPITAL_HA* = 0x000006E8
-  KEY_Cyrillic_CAPITAL_I* = 0x000006E9
-  KEY_Cyrillic_CAPITAL_SHORTI* = 0x000006EA
-  KEY_Cyrillic_CAPITAL_KA* = 0x000006EB
-  KEY_Cyrillic_CAPITAL_EL* = 0x000006EC
-  KEY_Cyrillic_CAPITAL_EM* = 0x000006ED
-  KEY_Cyrillic_CAPITAL_EN* = 0x000006EE
-  KEY_Cyrillic_CAPITAL_O* = 0x000006EF
-  KEY_Cyrillic_CAPITAL_PE* = 0x000006F0
-  KEY_Cyrillic_CAPITAL_YA* = 0x000006F1
-  KEY_Cyrillic_CAPITAL_ER* = 0x000006F2
-  KEY_Cyrillic_CAPITAL_ES* = 0x000006F3
-  KEY_Cyrillic_CAPITAL_TE* = 0x000006F4
-  KEY_Cyrillic_CAPITAL_U* = 0x000006F5
-  KEY_Cyrillic_CAPITAL_ZHE* = 0x000006F6
-  KEY_Cyrillic_CAPITAL_VE* = 0x000006F7
-  KEY_Cyrillic_CAPITAL_SOFTSIGN* = 0x000006F8
-  KEY_Cyrillic_CAPITAL_YERU* = 0x000006F9
-  KEY_Cyrillic_CAPITAL_ZE* = 0x000006FA
-  KEY_Cyrillic_CAPITAL_SHA* = 0x000006FB
-  KEY_Cyrillic_CAPITAL_E* = 0x000006FC
-  KEY_Cyrillic_CAPITAL_SHCHA* = 0x000006FD
-  KEY_Cyrillic_CAPITAL_CHE* = 0x000006FE
-  KEY_Cyrillic_CAPITAL_HARDSIGN* = 0x000006FF
-  KEY_Greek_CAPITAL_ALPHAaccent* = 0x000007A1
-  KEY_Greek_CAPITAL_EPSILONaccent* = 0x000007A2
-  KEY_Greek_CAPITAL_ETAaccent* = 0x000007A3
-  KEY_Greek_CAPITAL_IOTAaccent* = 0x000007A4
-  KEY_Greek_CAPITAL_IOTAdiaeresis* = 0x000007A5
-  KEY_Greek_CAPITAL_OMICRONaccent* = 0x000007A7
-  KEY_Greek_CAPITAL_UPSILONaccent* = 0x000007A8
-  KEY_Greek_CAPITAL_UPSILONdieresis* = 0x000007A9
-  KEY_Greek_CAPITAL_OMEGAaccent* = 0x000007AB
-  KEY_Greek_accentdieresis* = 0x000007AE
-  KEY_Greek_horizbar* = 0x000007AF
-  KEY_Greek_alphaaccent* = 0x000007B1
-  KEY_Greek_epsilonaccent* = 0x000007B2
-  KEY_Greek_etaaccent* = 0x000007B3
-  KEY_Greek_iotaaccent* = 0x000007B4
-  KEY_Greek_iotadieresis* = 0x000007B5
-  KEY_Greek_iotaaccentdieresis* = 0x000007B6
-  KEY_Greek_omicronaccent* = 0x000007B7
-  KEY_Greek_upsilonaccent* = 0x000007B8
-  KEY_Greek_upsilondieresis* = 0x000007B9
-  KEY_Greek_upsilonaccentdieresis* = 0x000007BA
-  KEY_Greek_omegaaccent* = 0x000007BB
-  KEY_Greek_CAPITAL_ALPHA* = 0x000007C1
-  KEY_Greek_CAPITAL_BETA* = 0x000007C2
-  KEY_Greek_CAPITAL_GAMMA* = 0x000007C3
-  KEY_Greek_CAPITAL_DELTA* = 0x000007C4
-  KEY_Greek_CAPITAL_EPSILON* = 0x000007C5
-  KEY_Greek_CAPITAL_ZETA* = 0x000007C6
-  KEY_Greek_CAPITAL_ETA* = 0x000007C7
-  KEY_Greek_CAPITAL_THETA* = 0x000007C8
-  KEY_Greek_CAPITAL_IOTA* = 0x000007C9
-  KEY_Greek_CAPITAL_KAPPA* = 0x000007CA
-  KEY_Greek_CAPITAL_LAMDA* = 0x000007CB
-  KEY_Greek_CAPITAL_LAMBDA* = 0x000007CB
-  KEY_Greek_CAPITAL_MU* = 0x000007CC
-  KEY_Greek_CAPITAL_NU* = 0x000007CD
-  KEY_Greek_CAPITAL_XI* = 0x000007CE
-  KEY_Greek_CAPITAL_OMICRON* = 0x000007CF
-  KEY_Greek_CAPITAL_PI* = 0x000007D0
-  KEY_Greek_CAPITAL_RHO* = 0x000007D1
-  KEY_Greek_CAPITAL_SIGMA* = 0x000007D2
-  KEY_Greek_CAPITAL_TAU* = 0x000007D4
-  KEY_Greek_CAPITAL_UPSILON* = 0x000007D5
-  KEY_Greek_CAPITAL_PHI* = 0x000007D6
-  KEY_Greek_CAPITAL_CHI* = 0x000007D7
-  KEY_Greek_CAPITAL_PSI* = 0x000007D8
-  KEY_Greek_CAPITAL_OMEGA* = 0x000007D9
-  KEY_Greek_alpha* = 0x000007E1
-  KEY_Greek_beta* = 0x000007E2
-  KEY_Greek_gamma* = 0x000007E3
-  KEY_Greek_delta* = 0x000007E4
-  KEY_Greek_epsilon* = 0x000007E5
-  KEY_Greek_zeta* = 0x000007E6
-  KEY_Greek_eta* = 0x000007E7
-  KEY_Greek_theta* = 0x000007E8
-  KEY_Greek_iota* = 0x000007E9
-  KEY_Greek_kappa* = 0x000007EA
-  KEY_Greek_lamda* = 0x000007EB
-  KEY_Greek_lambda* = 0x000007EB
-  KEY_Greek_mu* = 0x000007EC
-  KEY_Greek_nu* = 0x000007ED
-  KEY_Greek_xi* = 0x000007EE
-  KEY_Greek_omicron* = 0x000007EF
-  KEY_Greek_pi* = 0x000007F0
-  KEY_Greek_rho* = 0x000007F1
-  KEY_Greek_sigma* = 0x000007F2
-  KEY_Greek_finalsmallsigma* = 0x000007F3
-  KEY_Greek_tau* = 0x000007F4
-  KEY_Greek_upsilon* = 0x000007F5
-  KEY_Greek_phi* = 0x000007F6
-  KEY_Greek_chi* = 0x000007F7
-  KEY_Greek_psi* = 0x000007F8
-  KEY_Greek_omega* = 0x000007F9
-  KEY_Greek_switch* = 0x0000FF7E
-  KEY_leftradical* = 0x000008A1
-  KEY_topleftradical* = 0x000008A2
-  KEY_horizconnector* = 0x000008A3
-  KEY_topintegral* = 0x000008A4
-  KEY_botintegral* = 0x000008A5
-  KEY_vertconnector* = 0x000008A6
-  KEY_topleftsqbracket* = 0x000008A7
-  KEY_botleftsqbracket* = 0x000008A8
-  KEY_toprightsqbracket* = 0x000008A9
-  KEY_botrightsqbracket* = 0x000008AA
-  KEY_topleftparens* = 0x000008AB
-  KEY_botleftparens* = 0x000008AC
-  KEY_toprightparens* = 0x000008AD
-  KEY_botrightparens* = 0x000008AE
-  KEY_leftmiddlecurlybrace* = 0x000008AF
-  KEY_rightmiddlecurlybrace* = 0x000008B0
-  KEY_topleftsummation* = 0x000008B1
-  KEY_botleftsummation* = 0x000008B2
-  KEY_topvertsummationconnector* = 0x000008B3
-  KEY_botvertsummationconnector* = 0x000008B4
-  KEY_toprightsummation* = 0x000008B5
-  KEY_botrightsummation* = 0x000008B6
-  KEY_rightmiddlesummation* = 0x000008B7
-  KEY_lessthanequal* = 0x000008BC
-  KEY_notequal* = 0x000008BD
-  KEY_greaterthanequal* = 0x000008BE
-  KEY_integral* = 0x000008BF
-  KEY_therefore* = 0x000008C0
-  KEY_variation* = 0x000008C1
-  KEY_infinity* = 0x000008C2
-  KEY_nabla* = 0x000008C5
-  KEY_approximate* = 0x000008C8
-  KEY_similarequal* = 0x000008C9
-  KEY_ifonlyif* = 0x000008CD
-  KEY_implies* = 0x000008CE
-  KEY_identical* = 0x000008CF
-  KEY_radical* = 0x000008D6
-  KEY_includedin* = 0x000008DA
-  KEY_includes* = 0x000008DB
-  KEY_intersection* = 0x000008DC
-  KEY_union* = 0x000008DD
-  KEY_logicaland* = 0x000008DE
-  KEY_logicalor* = 0x000008DF
-  KEY_partialderivative* = 0x000008EF
-  KEY_function* = 0x000008F6
-  KEY_leftarrow* = 0x000008FB
-  KEY_uparrow* = 0x000008FC
-  KEY_rightarrow* = 0x000008FD
-  KEY_downarrow* = 0x000008FE
-  KEY_blank* = 0x000009DF
-  KEY_soliddiamond* = 0x000009E0
-  KEY_checkerboard* = 0x000009E1
-  KEY_ht* = 0x000009E2
-  KEY_ff* = 0x000009E3
-  KEY_cr* = 0x000009E4
-  KEY_lf* = 0x000009E5
-  KEY_nl* = 0x000009E8
-  KEY_vt* = 0x000009E9
-  KEY_lowrightcorner* = 0x000009EA
-  KEY_uprightcorner* = 0x000009EB
-  KEY_upleftcorner* = 0x000009EC
-  KEY_lowleftcorner* = 0x000009ED
-  KEY_crossinglines* = 0x000009EE
-  KEY_horizlinescan1* = 0x000009EF
-  KEY_horizlinescan3* = 0x000009F0
-  KEY_horizlinescan5* = 0x000009F1
-  KEY_horizlinescan7* = 0x000009F2
-  KEY_horizlinescan9* = 0x000009F3
-  KEY_leftt* = 0x000009F4
-  KEY_rightt* = 0x000009F5
-  KEY_bott* = 0x000009F6
-  KEY_topt* = 0x000009F7
-  KEY_vertbar* = 0x000009F8
-  KEY_emspace* = 0x00000AA1
-  KEY_enspace* = 0x00000AA2
-  KEY_em3space* = 0x00000AA3
-  KEY_em4space* = 0x00000AA4
-  KEY_digitspace* = 0x00000AA5
-  KEY_punctspace* = 0x00000AA6
-  KEY_thinspace* = 0x00000AA7
-  KEY_hairspace* = 0x00000AA8
-  KEY_emdash* = 0x00000AA9
-  KEY_endash* = 0x00000AAA
-  KEY_signifblank* = 0x00000AAC
-  KEY_ellipsis* = 0x00000AAE
-  KEY_doubbaselinedot* = 0x00000AAF
-  KEY_onethird* = 0x00000AB0
-  KEY_twothirds* = 0x00000AB1
-  KEY_onefifth* = 0x00000AB2
-  KEY_twofifths* = 0x00000AB3
-  KEY_threefifths* = 0x00000AB4
-  KEY_fourfifths* = 0x00000AB5
-  KEY_onesixth* = 0x00000AB6
-  KEY_fivesixths* = 0x00000AB7
-  KEY_careof* = 0x00000AB8
-  KEY_figdash* = 0x00000ABB
-  KEY_leftanglebracket* = 0x00000ABC
-  KEY_decimalpoint* = 0x00000ABD
-  KEY_rightanglebracket* = 0x00000ABE
-  KEY_marker* = 0x00000ABF
-  KEY_oneeighth* = 0x00000AC3
-  KEY_threeeighths* = 0x00000AC4
-  KEY_fiveeighths* = 0x00000AC5
-  KEY_seveneighths* = 0x00000AC6
-  KEY_trademark* = 0x00000AC9
-  KEY_signaturemark* = 0x00000ACA
-  KEY_trademarkincircle* = 0x00000ACB
-  KEY_leftopentriangle* = 0x00000ACC
-  KEY_rightopentriangle* = 0x00000ACD
-  KEY_emopencircle* = 0x00000ACE
-  KEY_emopenrectangle* = 0x00000ACF
-  KEY_leftsinglequotemark* = 0x00000AD0
-  KEY_rightsinglequotemark* = 0x00000AD1
-  KEY_leftdoublequotemark* = 0x00000AD2
-  KEY_rightdoublequotemark* = 0x00000AD3
-  KEY_prescription* = 0x00000AD4
-  KEY_minutes* = 0x00000AD6
-  KEY_seconds* = 0x00000AD7
-  KEY_latincross* = 0x00000AD9
-  KEY_hexagram* = 0x00000ADA
-  KEY_filledrectbullet* = 0x00000ADB
-  KEY_filledlefttribullet* = 0x00000ADC
-  KEY_filledrighttribullet* = 0x00000ADD
-  KEY_emfilledcircle* = 0x00000ADE
-  KEY_emfilledrect* = 0x00000ADF
-  KEY_enopencircbullet* = 0x00000AE0
-  KEY_enopensquarebullet* = 0x00000AE1
-  KEY_openrectbullet* = 0x00000AE2
-  KEY_opentribulletup* = 0x00000AE3
-  KEY_opentribulletdown* = 0x00000AE4
-  KEY_openstar* = 0x00000AE5
-  KEY_enfilledcircbullet* = 0x00000AE6
-  KEY_enfilledsqbullet* = 0x00000AE7
-  KEY_filledtribulletup* = 0x00000AE8
-  KEY_filledtribulletdown* = 0x00000AE9
-  KEY_leftpointer* = 0x00000AEA
-  KEY_rightpointer* = 0x00000AEB
-  KEY_club* = 0x00000AEC
-  KEY_diamond* = 0x00000AED
-  KEY_heart* = 0x00000AEE
-  KEY_maltesecross* = 0x00000AF0
-  KEY_dagger* = 0x00000AF1
-  KEY_doubledagger* = 0x00000AF2
-  KEY_checkmark* = 0x00000AF3
-  KEY_ballotcross* = 0x00000AF4
-  KEY_musicalsharp* = 0x00000AF5
-  KEY_musicalflat* = 0x00000AF6
-  KEY_malesymbol* = 0x00000AF7
-  KEY_femalesymbol* = 0x00000AF8
-  KEY_telephone* = 0x00000AF9
-  KEY_telephonerecorder* = 0x00000AFA
-  KEY_phonographcopyright* = 0x00000AFB
-  KEY_caret* = 0x00000AFC
-  KEY_singlelowquotemark* = 0x00000AFD
-  KEY_doublelowquotemark* = 0x00000AFE
-  KEY_cursor* = 0x00000AFF
-  KEY_leftcaret* = 0x00000BA3
-  KEY_rightcaret* = 0x00000BA6
-  KEY_downcaret* = 0x00000BA8
-  KEY_upcaret* = 0x00000BA9
-  KEY_overbar* = 0x00000BC0
-  KEY_downtack* = 0x00000BC2
-  KEY_upshoe* = 0x00000BC3
-  KEY_downstile* = 0x00000BC4
-  KEY_underbar* = 0x00000BC6
-  KEY_jot* = 0x00000BCA
-  KEY_quad* = 0x00000BCC
-  KEY_uptack* = 0x00000BCE
-  KEY_circle* = 0x00000BCF
-  KEY_upstile* = 0x00000BD3
-  KEY_downshoe* = 0x00000BD6
-  KEY_rightshoe* = 0x00000BD8
-  KEY_leftshoe* = 0x00000BDA
-  KEY_lefttack* = 0x00000BDC
-  KEY_righttack* = 0x00000BFC
-  KEY_hebrew_doublelowline* = 0x00000CDF
-  KEY_hebrew_aleph* = 0x00000CE0
-  KEY_hebrew_bet* = 0x00000CE1
-  KEY_hebrew_beth* = 0x00000CE1
-  KEY_hebrew_gimel* = 0x00000CE2
-  KEY_hebrew_gimmel* = 0x00000CE2
-  KEY_hebrew_dalet* = 0x00000CE3
-  KEY_hebrew_daleth* = 0x00000CE3
-  KEY_hebrew_he* = 0x00000CE4
-  KEY_hebrew_waw* = 0x00000CE5
-  KEY_hebrew_zain* = 0x00000CE6
-  KEY_hebrew_zayin* = 0x00000CE6
-  KEY_hebrew_chet* = 0x00000CE7
-  KEY_hebrew_het* = 0x00000CE7
-  KEY_hebrew_tet* = 0x00000CE8
-  KEY_hebrew_teth* = 0x00000CE8
-  KEY_hebrew_yod* = 0x00000CE9
-  KEY_hebrew_finalkaph* = 0x00000CEA
-  KEY_hebrew_kaph* = 0x00000CEB
-  KEY_hebrew_lamed* = 0x00000CEC
-  KEY_hebrew_finalmem* = 0x00000CED
-  KEY_hebrew_mem* = 0x00000CEE
-  KEY_hebrew_finalnun* = 0x00000CEF
-  KEY_hebrew_nun* = 0x00000CF0
-  KEY_hebrew_samech* = 0x00000CF1
-  KEY_hebrew_samekh* = 0x00000CF1
-  KEY_hebrew_ayin* = 0x00000CF2
-  KEY_hebrew_finalpe* = 0x00000CF3
-  KEY_hebrew_pe* = 0x00000CF4
-  KEY_hebrew_finalzade* = 0x00000CF5
-  KEY_hebrew_finalzadi* = 0x00000CF5
-  KEY_hebrew_zade* = 0x00000CF6
-  KEY_hebrew_zadi* = 0x00000CF6
-  KEY_hebrew_qoph* = 0x00000CF7
-  KEY_hebrew_kuf* = 0x00000CF7
-  KEY_hebrew_resh* = 0x00000CF8
-  KEY_hebrew_shin* = 0x00000CF9
-  KEY_hebrew_taw* = 0x00000CFA
-  KEY_hebrew_taf* = 0x00000CFA
-  KEY_Hebrew_switch* = 0x0000FF7E
-  KEY_Thai_kokai* = 0x00000DA1
-  KEY_Thai_khokhai* = 0x00000DA2
-  KEY_Thai_khokhuat* = 0x00000DA3
-  KEY_Thai_khokhwai* = 0x00000DA4
-  KEY_Thai_khokhon* = 0x00000DA5
-  KEY_Thai_khorakhang* = 0x00000DA6
-  KEY_Thai_ngongu* = 0x00000DA7
-  KEY_Thai_chochan* = 0x00000DA8
-  KEY_Thai_choching* = 0x00000DA9
-  KEY_Thai_chochang* = 0x00000DAA
-  KEY_Thai_soso* = 0x00000DAB
-  KEY_Thai_chochoe* = 0x00000DAC
-  KEY_Thai_yoying* = 0x00000DAD
-  KEY_Thai_dochada* = 0x00000DAE
-  KEY_Thai_topatak* = 0x00000DAF
-  KEY_Thai_thothan* = 0x00000DB0
-  KEY_Thai_thonangmontho* = 0x00000DB1
-  KEY_Thai_thophuthao* = 0x00000DB2
-  KEY_Thai_nonen* = 0x00000DB3
-  KEY_Thai_dodek* = 0x00000DB4
-  KEY_Thai_totao* = 0x00000DB5
-  KEY_Thai_thothung* = 0x00000DB6
-  KEY_Thai_thothahan* = 0x00000DB7
-  KEY_Thai_thothong* = 0x00000DB8
-  KEY_Thai_nonu* = 0x00000DB9
-  KEY_Thai_bobaimai* = 0x00000DBA
-  KEY_Thai_popla* = 0x00000DBB
-  KEY_Thai_phophung* = 0x00000DBC
-  KEY_Thai_fofa* = 0x00000DBD
-  KEY_Thai_phophan* = 0x00000DBE
-  KEY_Thai_fofan* = 0x00000DBF
-  KEY_Thai_phosamphao* = 0x00000DC0
-  KEY_Thai_moma* = 0x00000DC1
-  KEY_Thai_yoyak* = 0x00000DC2
-  KEY_Thai_rorua* = 0x00000DC3
-  KEY_Thai_ru* = 0x00000DC4
-  KEY_Thai_loling* = 0x00000DC5
-  KEY_Thai_lu* = 0x00000DC6
-  KEY_Thai_wowaen* = 0x00000DC7
-  KEY_Thai_sosala* = 0x00000DC8
-  KEY_Thai_sorusi* = 0x00000DC9
-  KEY_Thai_sosua* = 0x00000DCA
-  KEY_Thai_hohip* = 0x00000DCB
-  KEY_Thai_lochula* = 0x00000DCC
-  KEY_Thai_oang* = 0x00000DCD
-  KEY_Thai_honokhuk* = 0x00000DCE
-  KEY_Thai_paiyannoi* = 0x00000DCF
-  KEY_Thai_saraa* = 0x00000DD0
-  KEY_Thai_maihanakat* = 0x00000DD1
-  KEY_Thai_saraaa* = 0x00000DD2
-  KEY_Thai_saraam* = 0x00000DD3
-  KEY_Thai_sarai* = 0x00000DD4
-  KEY_Thai_saraii* = 0x00000DD5
-  KEY_Thai_saraue* = 0x00000DD6
-  KEY_Thai_sarauee* = 0x00000DD7
-  KEY_Thai_sarau* = 0x00000DD8
-  KEY_Thai_sarauu* = 0x00000DD9
-  KEY_Thai_phinthu* = 0x00000DDA
-  KEY_Thai_maihanakat_maitho* = 0x00000DDE
-  KEY_Thai_baht* = 0x00000DDF
-  KEY_Thai_sarae* = 0x00000DE0
-  KEY_Thai_saraae* = 0x00000DE1
-  KEY_Thai_sarao* = 0x00000DE2
-  KEY_Thai_saraaimaimuan* = 0x00000DE3
-  KEY_Thai_saraaimaimalai* = 0x00000DE4
-  KEY_Thai_lakkhangyao* = 0x00000DE5
-  KEY_Thai_maiyamok* = 0x00000DE6
-  KEY_Thai_maitaikhu* = 0x00000DE7
-  KEY_Thai_maiek* = 0x00000DE8
-  KEY_Thai_maitho* = 0x00000DE9
-  KEY_Thai_maitri* = 0x00000DEA
-  KEY_Thai_maichattawa* = 0x00000DEB
-  KEY_Thai_thanthakhat* = 0x00000DEC
-  KEY_Thai_nikhahit* = 0x00000DED
-  KEY_Thai_leksun* = 0x00000DF0
-  KEY_Thai_leknung* = 0x00000DF1
-  KEY_Thai_leksong* = 0x00000DF2
-  KEY_Thai_leksam* = 0x00000DF3
-  KEY_Thai_leksi* = 0x00000DF4
-  KEY_Thai_lekha* = 0x00000DF5
-  KEY_Thai_lekhok* = 0x00000DF6
-  KEY_Thai_lekchet* = 0x00000DF7
-  KEY_Thai_lekpaet* = 0x00000DF8
-  KEY_Thai_lekkao* = 0x00000DF9
-  KEY_Hangul* = 0x0000FF31
-  KEY_Hangul_Start* = 0x0000FF32
-  KEY_Hangul_End* = 0x0000FF33
-  KEY_Hangul_Hanja* = 0x0000FF34
-  KEY_Hangul_Jamo* = 0x0000FF35
-  KEY_Hangul_Romaja* = 0x0000FF36
-  KEY_Hangul_Codeinput* = 0x0000FF37
-  KEY_Hangul_Jeonja* = 0x0000FF38
-  KEY_Hangul_Banja* = 0x0000FF39
-  KEY_Hangul_PreHanja* = 0x0000FF3A
-  KEY_Hangul_PostHanja* = 0x0000FF3B
-  KEY_Hangul_SingleCandidate* = 0x0000FF3C
-  KEY_Hangul_MultipleCandidate* = 0x0000FF3D
-  KEY_Hangul_PreviousCandidate* = 0x0000FF3E
-  KEY_Hangul_Special* = 0x0000FF3F
-  KEY_Hangul_switch* = 0x0000FF7E
-  KEY_Hangul_Kiyeog* = 0x00000EA1
-  KEY_Hangul_SsangKiyeog* = 0x00000EA2
-  KEY_Hangul_KiyeogSios* = 0x00000EA3
-  KEY_Hangul_Nieun* = 0x00000EA4
-  KEY_Hangul_NieunJieuj* = 0x00000EA5
-  KEY_Hangul_NieunHieuh* = 0x00000EA6
-  KEY_Hangul_Dikeud* = 0x00000EA7
-  KEY_Hangul_SsangDikeud* = 0x00000EA8
-  KEY_Hangul_Rieul* = 0x00000EA9
-  KEY_Hangul_RieulKiyeog* = 0x00000EAA
-  KEY_Hangul_RieulMieum* = 0x00000EAB
-  KEY_Hangul_RieulPieub* = 0x00000EAC
-  KEY_Hangul_RieulSios* = 0x00000EAD
-  KEY_Hangul_RieulTieut* = 0x00000EAE
-  KEY_Hangul_RieulPhieuf* = 0x00000EAF
-  KEY_Hangul_RieulHieuh* = 0x00000EB0
-  KEY_Hangul_Mieum* = 0x00000EB1
-  KEY_Hangul_Pieub* = 0x00000EB2
-  KEY_Hangul_SsangPieub* = 0x00000EB3
-  KEY_Hangul_PieubSios* = 0x00000EB4
-  KEY_Hangul_Sios* = 0x00000EB5
-  KEY_Hangul_SsangSios* = 0x00000EB6
-  KEY_Hangul_Ieung* = 0x00000EB7
-  KEY_Hangul_Jieuj* = 0x00000EB8
-  KEY_Hangul_SsangJieuj* = 0x00000EB9
-  KEY_Hangul_Cieuc* = 0x00000EBA
-  KEY_Hangul_Khieuq* = 0x00000EBB
-  KEY_Hangul_Tieut* = 0x00000EBC
-  KEY_Hangul_Phieuf* = 0x00000EBD
-  KEY_Hangul_Hieuh* = 0x00000EBE
-  KEY_Hangul_A* = 0x00000EBF
-  KEY_Hangul_AE* = 0x00000EC0
-  KEY_Hangul_YA* = 0x00000EC1
-  KEY_Hangul_YAE* = 0x00000EC2
-  KEY_Hangul_EO* = 0x00000EC3
-  KEY_Hangul_E* = 0x00000EC4
-  KEY_Hangul_YEO* = 0x00000EC5
-  KEY_Hangul_YE* = 0x00000EC6
-  KEY_Hangul_O* = 0x00000EC7
-  KEY_Hangul_WA* = 0x00000EC8
-  KEY_Hangul_WAE* = 0x00000EC9
-  KEY_Hangul_OE* = 0x00000ECA
-  KEY_Hangul_YO* = 0x00000ECB
-  KEY_Hangul_U* = 0x00000ECC
-  KEY_Hangul_WEO* = 0x00000ECD
-  KEY_Hangul_WE* = 0x00000ECE
-  KEY_Hangul_WI* = 0x00000ECF
-  KEY_Hangul_YU* = 0x00000ED0
-  KEY_Hangul_EU* = 0x00000ED1
-  KEY_Hangul_YI* = 0x00000ED2
-  KEY_Hangul_I* = 0x00000ED3
-  KEY_Hangul_J_Kiyeog* = 0x00000ED4
-  KEY_Hangul_J_SsangKiyeog* = 0x00000ED5
-  KEY_Hangul_J_KiyeogSios* = 0x00000ED6
-  KEY_Hangul_J_Nieun* = 0x00000ED7
-  KEY_Hangul_J_NieunJieuj* = 0x00000ED8
-  KEY_Hangul_J_NieunHieuh* = 0x00000ED9
-  KEY_Hangul_J_Dikeud* = 0x00000EDA
-  KEY_Hangul_J_Rieul* = 0x00000EDB
-  KEY_Hangul_J_RieulKiyeog* = 0x00000EDC
-  KEY_Hangul_J_RieulMieum* = 0x00000EDD
-  KEY_Hangul_J_RieulPieub* = 0x00000EDE
-  KEY_Hangul_J_RieulSios* = 0x00000EDF
-  KEY_Hangul_J_RieulTieut* = 0x00000EE0
-  KEY_Hangul_J_RieulPhieuf* = 0x00000EE1
-  KEY_Hangul_J_RieulHieuh* = 0x00000EE2
-  KEY_Hangul_J_Mieum* = 0x00000EE3
-  KEY_Hangul_J_Pieub* = 0x00000EE4
-  KEY_Hangul_J_PieubSios* = 0x00000EE5
-  KEY_Hangul_J_Sios* = 0x00000EE6
-  KEY_Hangul_J_SsangSios* = 0x00000EE7
-  KEY_Hangul_J_Ieung* = 0x00000EE8
-  KEY_Hangul_J_Jieuj* = 0x00000EE9
-  KEY_Hangul_J_Cieuc* = 0x00000EEA
-  KEY_Hangul_J_Khieuq* = 0x00000EEB
-  KEY_Hangul_J_Tieut* = 0x00000EEC
-  KEY_Hangul_J_Phieuf* = 0x00000EED
-  KEY_Hangul_J_Hieuh* = 0x00000EEE
-  KEY_Hangul_RieulYeorinHieuh* = 0x00000EEF
-  KEY_Hangul_SunkyeongeumMieum* = 0x00000EF0
-  KEY_Hangul_SunkyeongeumPieub* = 0x00000EF1
-  KEY_Hangul_PanSios* = 0x00000EF2
-  KEY_Hangul_KkogjiDalrinIeung* = 0x00000EF3
-  KEY_Hangul_SunkyeongeumPhieuf* = 0x00000EF4
-  KEY_Hangul_YeorinHieuh* = 0x00000EF5
-  KEY_Hangul_AraeA* = 0x00000EF6
-  KEY_Hangul_AraeAE* = 0x00000EF7
-  KEY_Hangul_J_PanSios* = 0x00000EF8
-  KEY_Hangul_J_KkogjiDalrinIeung* = 0x00000EF9
-  KEY_Hangul_J_YeorinHieuh* = 0x00000EFA
-  KEY_Korean_Won* = 0x00000EFF
-  KEY_EcuSign* = 0x000020A0
-  KEY_ColonSign* = 0x000020A1
-  KEY_CruzeiroSign* = 0x000020A2
-  KEY_FFrancSign* = 0x000020A3
-  KEY_LiraSign* = 0x000020A4
-  KEY_MillSign* = 0x000020A5
-  KEY_NairaSign* = 0x000020A6
-  KEY_PesetaSign* = 0x000020A7
-  KEY_RupeeSign* = 0x000020A8
-  KEY_WonSign* = 0x000020A9
-  KEY_NewSheqelSign* = 0x000020AA
-  KEY_DongSign* = 0x000020AB
-  KEY_EuroSign* = 0x000020AC
-
-proc pango_context_get_for_screen*(screen: PScreen): PContext{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_context_get_for_screen".}
-proc pango_context_set_colormap*(context: PContext, colormap: PColormap){.
-    cdecl, dynlib: lib, importc: "gdk_pango_context_set_colormap".}
-proc pango_layout_line_get_clip_region*(line: PLayoutLine, x_origin: gint, 
-                                        y_origin: gint, index_ranges: Pgint, 
-                                        n_ranges: gint): PRegion{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_layout_line_get_clip_region".}
-proc pango_layout_get_clip_region*(layout: PLayout, x_origin: gint, 
-                                   y_origin: gint, index_ranges: Pgint, 
-                                   n_ranges: gint): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_pango_layout_get_clip_region".}
-proc pango_attr_stipple_new*(stipple: PBitmap): PAttribute{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_attr_stipple_new".}
-proc pango_attr_embossed_new*(embossed: gboolean): PAttribute{.cdecl, 
-    dynlib: lib, importc: "gdk_pango_attr_embossed_new".}
-proc render_threshold_alpha*(pixbuf: PPixbuf, bitmap: PBitmap, 
-                                    src_x: int32, src_y: int32, dest_x: int32, 
-                                    dest_y: int32, width: int32, height: int32, 
-                                    alpha_threshold: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_threshold_alpha".}
-proc render_to_drawable*(pixbuf: PPixbuf, drawable: PDrawable, gc: PGC, 
-                                src_x: int32, src_y: int32, dest_x: int32, 
-                                dest_y: int32, width: int32, height: int32, 
-                                dither: TRgbDither, x_dither: int32, 
-                                y_dither: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_to_drawable".}
-proc render_to_drawable_alpha*(pixbuf: PPixbuf, drawable: PDrawable, 
-                                      src_x: int32, src_y: int32, dest_x: int32, 
-                                      dest_y: int32, width: int32, 
-                                      height: int32, 
-                                      alpha_mode: TPixbufAlphaMode, 
-                                      alpha_threshold: int32, 
-                                      dither: TRgbDither, x_dither: int32, 
-                                      y_dither: int32){.cdecl, dynlib: lib, 
-    importc: "gdk_pixbuf_render_to_drawable_alpha".}
-proc render_pixmap_and_mask_for_colormap*(pixbuf: PPixbuf, 
-    colormap: PColormap, n: var PPixmap, nasdfdsafw4e: var PBitmap, 
-    alpha_threshold: int32){.cdecl, dynlib: lib, importc: "gdk_pixbuf_render_pixmap_and_mask_for_colormap".}
-proc get_from_drawable*(dest: PPixbuf, src: PDrawable, cmap: PColormap, 
-                               src_x: int32, src_y: int32, dest_x: int32, 
-                               dest_y: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: lib, importc: "gdk_pixbuf_get_from_drawable".}
-proc get_from_image*(dest: PPixbuf, src: PImage, cmap: PColormap, 
-                            src_x: int32, src_y: int32, dest_x: int32, 
-                            dest_y: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: lib, importc: "gdk_pixbuf_get_from_image".}
-proc TYPE_PIXMAP*(): GType
-proc PIXMAP*(anObject: Pointer): PPixmap
-proc PIXMAP_CLASS*(klass: Pointer): PPixmapObjectClass
-proc IS_PIXMAP*(anObject: Pointer): bool
-proc IS_PIXMAP_CLASS*(klass: Pointer): bool
-proc PIXMAP_GET_CLASS*(obj: Pointer): PPixmapObjectClass
-proc PIXMAP_OBJECT*(anObject: Pointer): PPixmapObject
-proc pixmap_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_pixmap_get_type".}
-proc pixmap_new*(window: PWindow, width: gint, height: gint, depth: gint): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_new".}
-proc bitmap_create_from_data*(window: PWindow, data: cstring, width: gint, 
-                              height: gint): PBitmap{.cdecl, dynlib: lib, 
-    importc: "gdk_bitmap_create_from_data".}
-proc pixmap_create_from_data*(window: PWindow, data: cstring, width: gint, 
-                              height: gint, depth: gint, fg: PColor, bg: PColor): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_data".}
-proc pixmap_create_from_xpm*(window: PWindow, k: var PBitmap, 
-                             transparent_color: PColor, filename: cstring): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_xpm".}
-proc pixmap_colormap_create_from_xpm*(window: PWindow, colormap: PColormap, 
-                                      k: var PBitmap, transparent_color: PColor, 
-                                      filename: cstring): PPixmap{.cdecl, 
-    dynlib: lib, importc: "gdk_pixmap_colormap_create_from_xpm".}
-proc pixmap_create_from_xpm_d*(window: PWindow, k: var PBitmap, 
-                               transparent_color: PColor, data: PPgchar): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_create_from_xpm_d".}
-proc pixmap_colormap_create_from_xpm_d*(window: PWindow, colormap: PColormap, 
-                                        k: var PBitmap, 
-                                        transparent_color: PColor, data: PPgchar): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_colormap_create_from_xpm_d".}
-proc pixmap_foreign_new_for_display*(display: PDisplay, anid: TNativeWindow): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_foreign_new_for_display".}
-proc pixmap_lookup_for_display*(display: PDisplay, anid: TNativeWindow): PPixmap{.
-    cdecl, dynlib: lib, importc: "gdk_pixmap_lookup_for_display".}
-proc atom_intern*(atom_name: cstring, only_if_exists: gboolean): TAtom{.cdecl, 
-    dynlib: lib, importc: "gdk_atom_intern".}
-proc atom_name*(atom: TAtom): cstring{.cdecl, dynlib: lib, 
-                                       importc: "gdk_atom_name".}
-proc property_get*(window: PWindow, `property`: TAtom, `type`: TAtom, 
-                   offset: gulong, length: gulong, pdelete: gint, 
-                   actual_property_type: PAtom, actual_format: Pgint, 
-                   actual_length: Pgint, data: PPguchar): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_property_get".}
-proc property_change*(window: PWindow, `property`: TAtom, `type`: TAtom, 
-                      format: gint, mode: TPropMode, data: Pguchar, 
-                      nelements: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_property_change".}
-proc property_delete*(window: PWindow, `property`: TAtom){.cdecl, dynlib: lib, 
-    importc: "gdk_property_delete".}
-proc text_property_to_text_list_for_display*(display: PDisplay, encoding: TAtom, 
-    format: gint, text: Pguchar, length: gint, t: var PPgchar): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_property_to_text_list_for_display".}
-proc text_property_to_utf8_list_for_display*(display: PDisplay, encoding: TAtom, 
-    format: gint, text: Pguchar, length: gint, t: var PPgchar): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_text_property_to_utf8_list_for_display".}
-proc utf8_to_string_target*(str: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_utf8_to_string_target".}
-proc string_to_compound_text_for_display*(display: PDisplay, str: cstring, 
-    encoding: PAtom, format: Pgint, ctext: PPguchar, length: Pgint): gint{.
-    cdecl, dynlib: lib, importc: "gdk_string_to_compound_text_for_display".}
-proc utf8_to_compound_text_for_display*(display: PDisplay, str: cstring, 
-                                        encoding: PAtom, format: Pgint, 
-                                        ctext: PPguchar, length: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_utf8_to_compound_text_for_display".}
-proc free_text_list*(list: PPgchar){.cdecl, dynlib: lib, 
-                                     importc: "gdk_free_text_list".}
-proc free_compound_text*(ctext: Pguchar){.cdecl, dynlib: lib, 
-    importc: "gdk_free_compound_text".}
-proc region_new*(): PRegion{.cdecl, dynlib: lib, importc: "gdk_region_new".}
-proc region_polygon*(points: PPoint, npoints: gint, fill_rule: TFillRule): PRegion{.
-    cdecl, dynlib: lib, importc: "gdk_region_polygon".}
-proc copy*(region: PRegion): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_region_copy".}
-proc region_rectangle*(rectangle: PRectangle): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_region_rectangle".}
-proc destroy*(region: PRegion){.cdecl, dynlib: lib, 
-                                       importc: "gdk_region_destroy".}
-proc get_clipbox*(region: PRegion, rectangle: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_region_get_clipbox".}
-proc get_rectangles*(region: PRegion, s: var PRectangle, 
-                            n_rectangles: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_get_rectangles".}
-proc empty*(region: PRegion): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_region_empty".}
-proc equal*(region1: PRegion, region2: PRegion): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_region_equal".}
-proc point_in*(region: PRegion, x: int32, y: int32): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_region_point_in".}
-proc rect_in*(region: PRegion, rect: PRectangle): TOverlapType{.cdecl, 
-    dynlib: lib, importc: "gdk_region_rect_in".}
-proc offset*(region: PRegion, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_offset".}
-proc shrink*(region: PRegion, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_region_shrink".}
-proc union*(region: PRegion, rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_region_union_with_rect".}
-proc intersect*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_intersect".}
-proc union*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_union".}
-proc subtract*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_subtract".}
-proc `xor`*(source1: PRegion, source2: PRegion){.cdecl, dynlib: lib, 
-    importc: "gdk_region_xor".}
-proc spans_intersect_foreach*(region: PRegion, spans: PSpan, 
-                                     n_spans: int32, sorted: gboolean, 
-                                     `function`: TSpanFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_region_spans_intersect_foreach".}
-proc rgb_find_color*(colormap: PColormap, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_find_color".}
-proc rgb_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                     width: gint, height: gint, dith: TRgbDither, 
-                     rgb_buf: Pguchar, rowstride: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_image".}
-proc rgb_image_dithalign*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                               width: gint, height: gint, dith: TRgbDither, 
-                               rgb_buf: Pguchar, rowstride: gint, xdith: gint, 
-                               ydith: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_image_dithalign".}
-proc rgb_32_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                        width: gint, height: gint, dith: TRgbDither, 
-                        buf: Pguchar, rowstride: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_draw_rgb_32_image".}
-proc rgb_32_image_dithalign*(drawable: PDrawable, gc: PGC, x: gint, 
-                                  y: gint, width: gint, height: gint, 
-                                  dith: TRgbDither, buf: Pguchar, 
-                                  rowstride: gint, xdith: gint, ydith: gint){.
-    cdecl, dynlib: lib, importc: "gdk_draw_rgb_32_image_dithalign".}
-proc gray_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                      width: gint, height: gint, dith: TRgbDither, buf: Pguchar, 
-                      rowstride: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_draw_gray_image".}
-proc indexed_image*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
-                         width: gint, height: gint, dith: TRgbDither, 
-                         buf: Pguchar, rowstride: gint, cmap: PRgbCmap){.cdecl, 
-    dynlib: lib, importc: "gdk_draw_indexed_image".}
-proc rgb_cmap_new*(colors: Pguint32, n_colors: gint): PRgbCmap{.cdecl, 
-    dynlib: lib, importc: "gdk_rgb_cmap_new".}
-proc free*(cmap: PRgbCmap){.cdecl, dynlib: lib, 
-                                     importc: "gdk_rgb_cmap_free".}
-proc rgb_set_verbose*(verbose: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_verbose".}
-proc rgb_set_install*(install: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_install".}
-proc rgb_set_min_colors*(min_colors: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_rgb_set_min_colors".}
-proc TYPE_DISPLAY*(): GType
-proc DISPLAY_OBJECT*(anObject: pointer): PDisplay
-proc DISPLAY_CLASS*(klass: pointer): PDisplayClass
-proc IS_DISPLAY*(anObject: pointer): bool
-proc IS_DISPLAY_CLASS*(klass: pointer): bool
-proc DISPLAY_GET_CLASS*(obj: pointer): PDisplayClass
-proc display_open*(display_name: cstring): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_display_open".}
-proc get_name*(display: PDisplay): cstring{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_name".}
-proc get_n_screens*(display: PDisplay): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_n_screens".}
-proc get_screen*(display: PDisplay, screen_num: gint): PScreen{.cdecl, 
-    dynlib: lib, importc: "gdk_display_get_screen".}
-proc get_default_screen*(display: PDisplay): PScreen{.cdecl, 
-    dynlib: lib, importc: "gdk_display_get_default_screen".}
-proc pointer_ungrab*(display: PDisplay, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_display_pointer_ungrab".}
-proc keyboard_ungrab*(display: PDisplay, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_display_keyboard_ungrab".}
-proc pointer_is_grabbed*(display: PDisplay): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_display_pointer_is_grabbed".}
-proc beep*(display: PDisplay){.cdecl, dynlib: lib, 
-                                       importc: "gdk_display_beep".}
-proc sync*(display: PDisplay){.cdecl, dynlib: lib, 
-                                       importc: "gdk_display_sync".}
-proc close*(display: PDisplay){.cdecl, dynlib: lib, 
-                                        importc: "gdk_display_close".}
-proc list_devices*(display: PDisplay): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_display_list_devices".}
-proc get_event*(display: PDisplay): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_display_get_event".}
-proc peek_event*(display: PDisplay): PEvent{.cdecl, dynlib: lib, 
-    importc: "gdk_display_peek_event".}
-proc put_event*(display: PDisplay, event: PEvent){.cdecl, dynlib: lib, 
-    importc: "gdk_display_put_event".}
-proc add_client_message_filter*(display: PDisplay, message_type: TAtom, 
-                                        func: TFilterFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_display_add_client_message_filter".}
-proc set_double_click_time*(display: PDisplay, msec: guint){.cdecl, 
-    dynlib: lib, importc: "gdk_display_set_double_click_time".}
-proc set_sm_client_id*(display: PDisplay, sm_client_id: cstring){.cdecl, 
-    dynlib: lib, importc: "gdk_display_set_sm_client_id".}
-proc set_default_display*(display: PDisplay){.cdecl, dynlib: lib, 
-    importc: "gdk_set_default_display".}
-proc get_default_display*(): PDisplay{.cdecl, dynlib: lib, 
-                                       importc: "gdk_get_default_display".}
-proc TYPE_SCREEN*(): GType
-proc SCREEN*(anObject: Pointer): PScreen
-proc SCREEN_CLASS*(klass: Pointer): PScreenClass
-proc IS_SCREEN*(anObject: Pointer): bool
-proc IS_SCREEN_CLASS*(klass: Pointer): bool
-proc SCREEN_GET_CLASS*(obj: Pointer): PScreenClass
-proc get_default_colormap*(screen: PScreen): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_screen_get_default_colormap".}
-proc set_default_colormap*(screen: PScreen, colormap: PColormap){.cdecl, 
-    dynlib: lib, importc: "gdk_screen_set_default_colormap".}
-proc get_system_colormap*(screen: PScreen): PColormap{.cdecl, 
-    dynlib: lib, importc: "gdk_screen_get_system_colormap".}
-proc get_system_visual*(screen: PScreen): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_system_visual".}
-proc get_rgb_colormap*(screen: PScreen): PColormap{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_rgb_colormap".}
-proc get_rgb_visual*(screen: PScreen): PVisual{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_rgb_visual".}
-proc get_root_window*(screen: PScreen): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_root_window".}
-proc get_display*(screen: PScreen): PDisplay{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_display".}
-proc get_number*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_number".}
-proc get_window_at_pointer*(screen: PScreen, win_x: Pgint, win_y: Pgint): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_window_at_pointer".}
-proc get_width*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_width".}
-proc get_height*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_height".}
-proc get_width_mm*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_width_mm".}
-proc get_height_mm*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_height_mm".}
-proc close*(screen: PScreen){.cdecl, dynlib: lib, 
-                                     importc: "gdk_screen_close".}
-proc list_visuals*(screen: PScreen): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_list_visuals".}
-proc get_toplevel_windows*(screen: PScreen): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_toplevel_windows".}
-proc get_n_monitors*(screen: PScreen): gint{.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_n_monitors".}
-proc get_monitor_geometry*(screen: PScreen, monitor_num: gint, 
-                                  dest: PRectangle){.cdecl, dynlib: lib, 
-    importc: "gdk_screen_get_monitor_geometry".}
-proc get_monitor_at_point*(screen: PScreen, x: gint, y: gint): gint{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_monitor_at_point".}
-proc get_monitor_at_window*(screen: PScreen, window: PWindow): gint{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_monitor_at_window".}
-proc broadcast_client_message*(screen: PScreen, event: PEvent){.cdecl, 
-    dynlib: lib, importc: "gdk_screen_broadcast_client_message".}
-proc get_default_screen*(): PScreen{.cdecl, dynlib: lib, 
-                                     importc: "gdk_get_default_screen".}
-proc get_setting*(screen: PScreen, name: cstring, value: PGValue): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_screen_get_setting".}
-proc SELECTION_PRIMARY*(): TAtom
-proc SELECTION_SECONDARY*(): TAtom
-proc SELECTION_CLIPBOARD*(): TAtom
-proc TARGET_BITMAP*(): TAtom
-proc TARGET_COLORMAP*(): TAtom
-proc TARGET_DRAWABLE*(): TAtom
-proc TARGET_PIXMAP*(): TAtom
-proc TARGET_STRING*(): TAtom
-proc SELECTION_TYPE_ATOM*(): TAtom
-proc SELECTION_TYPE_BITMAP*(): TAtom
-proc SELECTION_TYPE_COLORMAP*(): TAtom
-proc SELECTION_TYPE_DRAWABLE*(): TAtom
-proc SELECTION_TYPE_INTEGER*(): TAtom
-proc SELECTION_TYPE_PIXMAP*(): TAtom
-proc SELECTION_TYPE_WINDOW*(): TAtom
-proc SELECTION_TYPE_STRING*(): TAtom
-proc selection_owner_set_for_display*(display: PDisplay, owner: PWindow, 
-                                      selection: TAtom, time: guint32, 
-                                      send_event: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gdk_selection_owner_set_for_display".}
-proc selection_owner_get_for_display*(display: PDisplay, selection: TAtom): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_selection_owner_get_for_display".}
-proc selection_convert*(requestor: PWindow, selection: TAtom, target: TAtom, 
-                        time: guint32){.cdecl, dynlib: lib, 
-                                        importc: "gdk_selection_convert".}
-proc selection_property_get*(requestor: PWindow, data: PPguchar, 
-                             prop_type: PAtom, prop_format: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_selection_property_get".}
-proc selection_send_notify_for_display*(display: PDisplay, requestor: guint32, 
-                                        selection: TAtom, target: TAtom, 
-                                        `property`: TAtom, time: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_selection_send_notify_for_display".}
-const 
-  CURRENT_TIME* = 0
-  PARENT_RELATIVE* = 1
-  OK* = 0
-  ERROR* = - (1)
-  ERROR_PARAM* = - (2)
-  ERROR_FILE* = - (3)
-  ERROR_MEM* = - (4)
-  SHIFT_MASK* = 1 shl 0
-  LOCK_MASK* = 1 shl 1
-  CONTROL_MASK* = 1 shl 2
-  MOD1_MASK* = 1 shl 3
-  MOD2_MASK* = 1 shl 4
-  MOD3_MASK* = 1 shl 5
-  MOD4_MASK* = 1 shl 6
-  MOD5_MASK* = 1 shl 7
-  BUTTON1_MASK* = 1 shl 8
-  BUTTON2_MASK* = 1 shl 9
-  BUTTON3_MASK* = 1 shl 10
-  BUTTON4_MASK* = 1 shl 11
-  BUTTON5_MASK* = 1 shl 12
-  RELEASE_MASK* = 1 shl 30
-  MODIFIER_MASK* = ord(RELEASE_MASK) or 0x00001FFF
-  INPUT_READ* = 1 shl 0
-  INPUT_WRITE* = 1 shl 1
-  INPUT_EXCEPTION* = 1 shl 2
-  GRAB_SUCCESS* = 0
-  GRAB_ALREADY_GRABBED* = 1
-  GRAB_INVALID_TIME* = 2
-  GRAB_NOT_VIEWABLE* = 3
-  GRAB_FROZEN* = 4
-
-proc ATOM_TO_POINTER*(atom: TAtom): Pointer
-proc POINTER_TO_ATOM*(p: Pointer): TAtom
-proc `MAKE_ATOM`*(val: guint): TAtom
-proc NONE*(): TAtom
-proc TYPE_VISUAL*(): GType
-proc VISUAL*(anObject: Pointer): PVisual
-proc VISUAL_CLASS*(klass: Pointer): PVisualClass
-proc IS_VISUAL*(anObject: Pointer): bool
-proc IS_VISUAL_CLASS*(klass: Pointer): bool
-proc VISUAL_GET_CLASS*(obj: Pointer): PVisualClass
-proc visual_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gdk_visual_get_type".}
-const 
-  WA_TITLE* = 1 shl 1
-  WA_X* = 1 shl 2
-  WA_Y* = 1 shl 3
-  WA_CURSOR* = 1 shl 4
-  WA_COLORMAP* = 1 shl 5
-  WA_VISUAL* = 1 shl 6
-  WA_WMCLASS* = 1 shl 7
-  WA_NOREDIR* = 1 shl 8
-  HINT_POS* = 1 shl 0
-  HINT_MIN_SIZE* = 1 shl 1
-  HINT_MAX_SIZE* = 1 shl 2
-  HINT_BASE_SIZE* = 1 shl 3
-  HINT_ASPECT* = 1 shl 4
-  HINT_RESIZE_INC* = 1 shl 5
-  HINT_WIN_GRAVITY* = 1 shl 6
-  HINT_USER_POS* = 1 shl 7
-  HINT_USER_SIZE* = 1 shl 8
-  DECOR_ALL* = 1 shl 0
-  DECOR_BORDER* = 1 shl 1
-  DECOR_RESIZEH* = 1 shl 2
-  DECOR_TITLE* = 1 shl 3
-  DECOR_MENU* = 1 shl 4
-  DECOR_MINIMIZE* = 1 shl 5
-  DECOR_MAXIMIZE* = 1 shl 6
-  FUNC_ALL* = 1 shl 0
-  FUNC_RESIZE* = 1 shl 1
-  FUNC_MOVE* = 1 shl 2
-  FUNC_MINIMIZE* = 1 shl 3
-  FUNC_MAXIMIZE* = 1 shl 4
-  FUNC_CLOSE* = 1 shl 5
-  GRAVITY_NORTH_WEST* = 1
-  GRAVITY_NORTH* = 2
-  GRAVITY_NORTH_EAST* = 3
-  GRAVITY_WEST* = 4
-  GRAVITY_CENTER* = 5
-  GRAVITY_EAST* = 6
-  GRAVITY_SOUTH_WEST* = 7
-  GRAVITY_SOUTH* = 8
-  GRAVITY_SOUTH_EAST* = 9
-  GRAVITY_STATIC* = 10
-
-proc TYPE_WINDOW*(): GType
-proc WINDOW*(anObject: Pointer): PWindow
-proc WINDOW_CLASS*(klass: Pointer): PWindowObjectClass
-proc IS_WINDOW*(anObject: Pointer): bool
-proc IS_WINDOW_CLASS*(klass: Pointer): bool
-proc WINDOW_GET_CLASS*(obj: Pointer): PWindowObjectClass
-proc WINDOW_OBJECT*(anObject: Pointer): PWindowObject
-const 
-  bm_TWindowObject_guffaw_gravity* = 0x0001'i16
-  bp_TWindowObject_guffaw_gravity* = 0'i16
-  bm_TWindowObject_input_only* = 0x0002'i16
-  bp_TWindowObject_input_only* = 1'i16
-  bm_TWindowObject_modal_hint* = 0x0004'i16
-  bp_TWindowObject_modal_hint* = 2'i16
-  bm_TWindowObject_destroyed* = 0x0018'i16
-  bp_TWindowObject_destroyed* = 3'i16
-
-proc WindowObject_guffaw_gravity*(a: PWindowObject): guint
-proc WindowObject_set_guffaw_gravity*(a: PWindowObject, 
-                                      `guffaw_gravity`: guint)
-proc WindowObject_input_only*(a: PWindowObject): guint
-proc WindowObject_set_input_only*(a: PWindowObject, `input_only`: guint)
-proc WindowObject_modal_hint*(a: PWindowObject): guint
-proc WindowObject_set_modal_hint*(a: PWindowObject, `modal_hint`: guint)
-proc WindowObject_destroyed*(a: PWindowObject): guint
-proc WindowObject_set_destroyed*(a: PWindowObject, `destroyed`: guint)
-proc window_object_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_object_get_type".}
-proc new*(parent: PWindow, attributes: PWindowAttr, attributes_mask: gint): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_new".}
-proc destroy*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_destroy".}
-proc get_window_type*(window: PWindow): TWindowType{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_window_type".}
-proc window_at_pointer*(win_x: Pgint, win_y: Pgint): PWindow{.cdecl, 
-    dynlib: lib, importc: "gdk_window_at_pointer".}
-proc show*(window: PWindow){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_show".}
-proc hide*(window: PWindow){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_hide".}
-proc withdraw*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_withdraw".}
-proc show_unraised*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_show_unraised".}
-proc move*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_move".}
-proc resize*(window: PWindow, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_resize".}
-proc move_resize*(window: PWindow, x: gint, y: gint, width: gint, 
-                         height: gint){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_move_resize".}
-proc reparent*(window: PWindow, new_parent: PWindow, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gdk_window_reparent".}
-proc clear*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_clear".}
-proc clear_area*(window: PWindow, x: gint, y: gint, width: gint, 
-                        height: gint){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_clear_area".}
-proc clear_area_e*(window: PWindow, x: gint, y: gint, width: gint, 
-                          height: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_clear_area_e".}
-proc `raise`*(window: PWindow){.cdecl, dynlib: lib, 
-                                importc: "gdk_window_raise".}
-proc lower*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_lower".}
-proc focus*(window: PWindow, timestamp: guint32){.cdecl, dynlib: lib, 
-    importc: "gdk_window_focus".}
-proc set_user_data*(window: PWindow, user_data: gpointer){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_user_data".}
-proc set_override_redirect*(window: PWindow, override_redirect: gboolean){.
-    cdecl, dynlib: lib, importc: "gdk_window_set_override_redirect".}
-proc add_filter*(window: PWindow, `function`: TFilterFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_window_add_filter".}
-proc remove_filter*(window: PWindow, `function`: TFilterFunc, 
-                           data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gdk_window_remove_filter".}
-proc scroll*(window: PWindow, dx: gint, dy: gint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_scroll".}
-proc shape_combine_mask*(window: PWindow, mask: PBitmap, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gdk_window_shape_combine_mask".}
-proc shape_combine_region*(window: PWindow, shape_region: PRegion, 
-                                  offset_x: gint, offset_y: gint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_shape_combine_region".}
-proc set_child_shapes*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_child_shapes".}
-proc merge_child_shapes*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_merge_child_shapes".}
-proc is_visible*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_window_is_visible".}
-proc is_viewable*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_window_is_viewable".}
-proc get_state*(window: PWindow): TWindowState{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_state".}
-proc set_static_gravities*(window: PWindow, use_static: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_window_set_static_gravities".}
-proc window_foreign_new_for_display*(display: PDisplay, anid: TNativeWindow): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_foreign_new_for_display".}
-proc window_lookup_for_display*(display: PDisplay, anid: TNativeWindow): PWindow{.
-    cdecl, dynlib: lib, importc: "gdk_window_lookup_for_display".}
-proc set_type_hint*(window: PWindow, hint: TWindowTypeHint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_type_hint".}
-proc set_modal_hint*(window: PWindow, modal: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_modal_hint".}
-proc set_geometry_hints*(window: PWindow, geometry: PGeometry, 
-                                geom_mask: TWindowHints){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_geometry_hints".}
-proc set_sm_client_id*(sm_client_id: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_set_sm_client_id".}
-proc begin_paint_rect*(window: PWindow, rectangle: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_paint_rect".}
-proc begin_paint_region*(window: PWindow, region: PRegion){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_paint_region".}
-proc end_paint*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_end_paint".}
-proc set_title*(window: PWindow, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_title".}
-proc set_role*(window: PWindow, role: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_role".}
-proc set_transient_for*(window: PWindow, parent: PWindow){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_transient_for".}
-proc set_background*(window: PWindow, color: PColor){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_background".}
-proc set_back_pixmap*(window: PWindow, pixmap: PPixmap, 
-                             parent_relative: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_back_pixmap".}
-proc set_cursor*(window: PWindow, cursor: PCursor){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_cursor".}
-proc get_user_data*(window: PWindow, data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_user_data".}
-proc get_geometry*(window: PWindow, x: Pgint, y: Pgint, width: Pgint, 
-                          height: Pgint, depth: Pgint){.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_geometry".}
-proc get_position*(window: PWindow, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_position".}
-proc get_origin*(window: PWindow, x: Pgint, y: Pgint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_origin".}
-proc get_root_origin*(window: PWindow, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_root_origin".}
-proc get_frame_extents*(window: PWindow, rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_frame_extents".}
-proc get_pointer*(window: PWindow, x: Pgint, y: Pgint, 
-                         mask: PModifierType): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_pointer".}
-proc get_parent*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_parent".}
-proc get_toplevel*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_toplevel".}
-proc get_children*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_children".}
-proc peek_children*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gdk_window_peek_children".}
-proc get_events*(window: PWindow): TEventMask{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_events".}
-proc set_events*(window: PWindow, event_mask: TEventMask){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_events".}
-proc set_icon_list*(window: PWindow, pixbufs: PGList){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_icon_list".}
-proc set_icon*(window: PWindow, icon_window: PWindow, pixmap: PPixmap, 
-                      mask: PBitmap){.cdecl, dynlib: lib, 
-                                      importc: "gdk_window_set_icon".}
-proc set_icon_name*(window: PWindow, name: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_icon_name".}
-proc set_group*(window: PWindow, leader: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_group".}
-proc set_decorations*(window: PWindow, decorations: TWMDecoration){.
-    cdecl, dynlib: lib, importc: "gdk_window_set_decorations".}
-proc get_decorations*(window: PWindow, decorations: PWMDecoration): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_window_get_decorations".}
-proc set_functions*(window: PWindow, functions: TWMFunction){.cdecl, 
-    dynlib: lib, importc: "gdk_window_set_functions".}
-proc iconify*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_iconify".}
-proc deiconify*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_deiconify".}
-proc stick*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gdk_window_stick".}
-proc unstick*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gdk_window_unstick".}
-proc maximize*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gdk_window_maximize".}
-proc unmaximize*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_unmaximize".}
-proc register_dnd*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_register_dnd".}
-proc begin_resize_drag*(window: PWindow, edge: TWindowEdge, button: gint, 
-                               root_x: gint, root_y: gint, timestamp: guint32){.
-    cdecl, dynlib: lib, importc: "gdk_window_begin_resize_drag".}
-proc begin_move_drag*(window: PWindow, button: gint, root_x: gint, 
-                             root_y: gint, timestamp: guint32){.cdecl, 
-    dynlib: lib, importc: "gdk_window_begin_move_drag".}
-proc invalidate_rect*(window: PWindow, rect: PRectangle, 
-                             invalidate_children: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_invalidate_rect".}
-proc invalidate_region*(window: PWindow, region: PRegion, 
-                               invalidate_children: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_invalidate_region".}
-proc invalidate_maybe_recurse*(window: PWindow, region: PRegion, 
-    child_func: window_invalidate_maybe_recurse_child_func, user_data: gpointer){.
-    cdecl, dynlib: lib, importc: "gdk_window_invalidate_maybe_recurse".}
-proc get_update_area*(window: PWindow): PRegion{.cdecl, dynlib: lib, 
-    importc: "gdk_window_get_update_area".}
-proc freeze_updates*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_freeze_updates".}
-proc thaw_updates*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gdk_window_thaw_updates".}
-proc window_process_all_updates*(){.cdecl, dynlib: lib, 
-                                    importc: "gdk_window_process_all_updates".}
-proc process_updates*(window: PWindow, update_children: gboolean){.cdecl, 
-    dynlib: lib, importc: "gdk_window_process_updates".}
-proc window_set_debug_updates*(setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gdk_window_set_debug_updates".}
-proc window_constrain_size*(geometry: PGeometry, flags: guint, width: gint, 
-                            height: gint, new_width: Pgint, new_height: Pgint){.
-    cdecl, dynlib: lib, importc: "gdk_window_constrain_size".}
-proc get_internal_paint_info*(window: PWindow, e: var PDrawable, 
-                                     x_offset: Pgint, y_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "gdk_window_get_internal_paint_info".}
-proc set_pointer_hooks*(new_hooks: PPointerHooks): PPointerHooks{.cdecl, 
-    dynlib: lib, importc: "gdk_set_pointer_hooks".}
-proc get_default_root_window*(): PWindow{.cdecl, dynlib: lib, 
-    importc: "gdk_get_default_root_window".}
-proc parse_args*(argc: Pgint, v: var PPgchar){.cdecl, dynlib: lib, 
-    importc: "gdk_parse_args".}
-proc init*(argc: Pgint, v: var PPgchar){.cdecl, dynlib: lib, importc: "gdk_init".}
-proc init_check*(argc: Pgint, v: var PPgchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gdk_init_check".}
-when not defined(DISABLE_DEPRECATED): 
-  proc exit*(error_code: gint){.cdecl, dynlib: lib, importc: "gdk_exit".}
-proc set_locale*(): cstring{.cdecl, dynlib: lib, importc: "gdk_set_locale".}
-proc get_program_class*(): cstring{.cdecl, dynlib: lib, 
-                                    importc: "gdk_get_program_class".}
-proc set_program_class*(program_class: cstring){.cdecl, dynlib: lib, 
-    importc: "gdk_set_program_class".}
-proc error_trap_push*(){.cdecl, dynlib: lib, importc: "gdk_error_trap_push".}
-proc error_trap_pop*(): gint{.cdecl, dynlib: lib, importc: "gdk_error_trap_pop".}
-when not defined(DISABLE_DEPRECATED): 
-  proc set_use_xshm*(use_xshm: gboolean){.cdecl, dynlib: lib, 
-      importc: "gdk_set_use_xshm".}
-  proc get_use_xshm*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gdk_get_use_xshm".}
-proc get_display*(): cstring{.cdecl, dynlib: lib, importc: "gdk_get_display".}
-proc get_display_arg_name*(): cstring{.cdecl, dynlib: lib, 
-                                       importc: "gdk_get_display_arg_name".}
-when not defined(DISABLE_DEPRECATED): 
-  proc input_add_full*(source: gint, condition: TInputCondition, 
-                       `function`: TInputFunction, data: gpointer, 
-                       destroy: TDestroyNotify): gint{.cdecl, dynlib: lib, 
-      importc: "gdk_input_add_full".}
-  proc input_add*(source: gint, condition: TInputCondition, 
-                  `function`: TInputFunction, data: gpointer): gint{.cdecl, 
-      dynlib: lib, importc: "gdk_input_add".}
-  proc input_remove*(tag: gint){.cdecl, dynlib: lib, importc: "gdk_input_remove".}
-proc pointer_grab*(window: PWindow, owner_events: gboolean, 
-                   event_mask: TEventMask, confine_to: PWindow, cursor: PCursor, 
-                   time: guint32): TGrabStatus{.cdecl, dynlib: lib, 
-    importc: "gdk_pointer_grab".}
-proc keyboard_grab*(window: PWindow, owner_events: gboolean, time: guint32): TGrabStatus{.
-    cdecl, dynlib: lib, importc: "gdk_keyboard_grab".}
-when not defined(MULTIHEAD_SAFE): 
-  proc pointer_ungrab*(time: guint32){.cdecl, dynlib: lib, 
-                                       importc: "gdk_pointer_ungrab".}
-  proc keyboard_ungrab*(time: guint32){.cdecl, dynlib: lib, 
-                                        importc: "gdk_keyboard_ungrab".}
-  proc pointer_is_grabbed*(): gboolean{.cdecl, dynlib: lib, 
-                                        importc: "gdk_pointer_is_grabbed".}
-  proc screen_width*(): gint{.cdecl, dynlib: lib, importc: "gdk_screen_width".}
-  proc screen_height*(): gint{.cdecl, dynlib: lib, importc: "gdk_screen_height".}
-  proc screen_width_mm*(): gint{.cdecl, dynlib: lib, 
-                                 importc: "gdk_screen_width_mm".}
-  proc screen_height_mm*(): gint{.cdecl, dynlib: lib, 
-                                  importc: "gdk_screen_height_mm".}
-  proc beep*(){.cdecl, dynlib: lib, importc: "gdk_beep".}
-proc flush*(){.cdecl, dynlib: lib, importc: "gdk_flush".}
-when not defined(MULTIHEAD_SAFE): 
-  proc set_double_click_time*(msec: guint){.cdecl, dynlib: lib, 
-      importc: "gdk_set_double_click_time".}
-proc intersect*(src1: PRectangle, src2: PRectangle, dest: PRectangle): gboolean{.
-    cdecl, dynlib: lib, importc: "gdk_rectangle_intersect".}
-proc union*(src1: PRectangle, src2: PRectangle, dest: PRectangle){.
-    cdecl, dynlib: lib, importc: "gdk_rectangle_union".}
-proc rectangle_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gdk_rectangle_get_type".}
-proc TYPE_RECTANGLE*(): GType
-proc wcstombs*(src: PWChar): cstring{.cdecl, dynlib: lib, 
-                                      importc: "gdk_wcstombs".}
-proc mbstowcs*(dest: PWChar, src: cstring, dest_max: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gdk_mbstowcs".}
-when not defined(MULTIHEAD_SAFE): 
-  proc event_send_client_message*(event: PEvent, xid: guint32): gboolean{.cdecl, 
-      dynlib: lib, importc: "gdk_event_send_client_message".}
-  proc event_send_clientmessage_toall*(event: PEvent){.cdecl, dynlib: lib, 
-      importc: "gdk_event_send_clientmessage_toall".}
-proc event_send_client_message_for_display*(display: PDisplay, event: PEvent, 
-    xid: guint32): gboolean{.cdecl, dynlib: lib, importc: "gdk_event_send_client_message_for_display".}
-proc threads_enter*(){.cdecl, dynlib: lib, importc: "gdk_threads_enter".}
-proc threads_leave*(){.cdecl, dynlib: lib, importc: "gdk_threads_leave".}
-proc threads_init*(){.cdecl, dynlib: lib, importc: "gdk_threads_init".}
-proc TYPE_RECTANGLE*(): GType = 
-  result = rectangle_get_type()
-
-proc TYPE_COLORMAP*(): GType = 
-  result = colormap_get_type()
-
-proc COLORMAP*(anObject: pointer): PColormap = 
-  result = cast[PColormap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_COLORMAP()))
-
-proc COLORMAP_CLASS*(klass: pointer): PColormapClass = 
-  result = cast[PColormapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_COLORMAP()))
-
-proc IS_COLORMAP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_COLORMAP())
-
-proc IS_COLORMAP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_COLORMAP())
-
-proc COLORMAP_GET_CLASS*(obj: pointer): PColormapClass = 
-  result = cast[PColormapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_COLORMAP()))
-
-proc TYPE_COLOR*(): GType = 
-  result = gdk2.color_get_type()
-
-proc destroy*(cursor: PCursor) = 
-  unref(cursor)
-
-proc TYPE_CURSOR*(): GType = 
-  result = cursor_get_type()
-
-proc TYPE_DRAG_CONTEXT*(): GType = 
-  result = drag_context_get_type()
-
-proc DRAG_CONTEXT*(anObject: Pointer): PDragContext = 
-  result = cast[PDragContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_DRAG_CONTEXT()))
-
-proc DRAG_CONTEXT_CLASS*(klass: Pointer): PDragContextClass = 
-  result = cast[PDragContextClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_DRAG_CONTEXT()))
-
-proc IS_DRAG_CONTEXT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DRAG_CONTEXT())
-
-proc IS_DRAG_CONTEXT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DRAG_CONTEXT())
-
-proc DRAG_CONTEXT_GET_CLASS*(obj: Pointer): PDragContextClass = 
-  result = cast[PDragContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_DRAG_CONTEXT()))
-
-proc region_EXTENTCHECK*(r1, r2: PRegionBox): bool = 
-  result = ((r1.x2) > r2.x1) and ((r1.x1) < r2.x2) and ((r1.y2) > r2.y1) and
-      ((r1.y1) < r2.y2)
-
-proc EXTENTS*(r: PRegionBox, idRect: PRegion) = 
-  if ((r.x1) < idRect.extents.x1): 
-    idRect.extents.x1 = r.x1
-  if (r.y1) < idRect.extents.y1: 
-    idRect.extents.y1 = r.y1
-  if (r.x2) > idRect.extents.x2: 
-    idRect.extents.x2 = r.x2
-
-proc MEMCHECK*(reg: PRegion, ARect, firstrect: var PRegionBox): bool = 
-  assert(false)               # to implement
-  
-proc CHECK_PREVIOUS*(Reg: PRegion, R: PRegionBox, 
-                            Rx1, Ry1, Rx2, Ry2: gint): bool = 
-  assert(false)               # to implement
-  
-proc ADDRECT*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint) = 
-  if (((rx1) < rx2) and ((ry1) < ry2) and
-      CHECK_PREVIOUS(reg, r, rx1, ry1, rx2, ry2)): 
-    r.x1 = rx1
-    r.y1 = ry1
-    r.x2 = rx2
-    r.y2 = ry2
-
-proc ADDRECTNOX*(reg: PRegion, r: PRegionBox, rx1, ry1, rx2, ry2: gint) = 
-  if (((rx1) < rx2) and ((ry1) < ry2) and
-      CHECK_PREVIOUS(reg, r, rx1, ry1, rx2, ry2)): 
-    r.x1 = rx1
-    r.y1 = ry1
-    r.x2 = rx2
-    r.y2 = ry2
-    inc(reg.numRects)
-
-proc EMPTY_REGION*(pReg: PRegion): bool = 
-  result = pReg.numRects == 0'i32
-
-proc REGION_NOT_EMPTY*(pReg: PRegion): bool = 
-  result = pReg.numRects != 0'i32
-
-proc region_INBOX*(r: TRegionBox, x, y: gint): bool = 
-  result = ((((r.x2) > x) and ((r.x1) <= x)) and ((r.y2) > y)) and
-      ((r.y1) <= y)
-
-proc TYPE_DRAWABLE*(): GType = 
-  result = drawable_get_type()
-
-proc DRAWABLE*(anObject: Pointer): PDrawable = 
-  result = cast[PDrawable](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DRAWABLE()))
-
-proc DRAWABLE_CLASS*(klass: Pointer): PDrawableClass = 
-  result = cast[PDrawableClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DRAWABLE()))
-
-proc IS_DRAWABLE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DRAWABLE())
-
-proc IS_DRAWABLE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DRAWABLE())
-
-proc DRAWABLE_GET_CLASS*(obj: Pointer): PDrawableClass = 
-  result = cast[PDrawableClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DRAWABLE()))
-
-proc pixmap*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                  ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                  height: gint) = 
-  drawable(drawable, gc, src, xsrc, ysrc, xdest, ydest, width, height)
-
-proc bitmap*(drawable: PDrawable, gc: PGC, src: PDrawable, xsrc: gint, 
-                  ysrc: gint, xdest: gint, ydest: gint, width: gint, 
-                  height: gint) = 
-  drawable(drawable, gc, src, xsrc, ysrc, xdest, ydest, width, height)
-
-proc TYPE_EVENT*(): GType = 
-  result = event_get_type()
-
-proc TYPE_FONT*(): GType = 
-  result = gdk2.font_get_type()
-
-proc TYPE_GC*(): GType = 
-  result = gc_get_type()
-
-proc GC*(anObject: Pointer): PGC = 
-  result = cast[PGC](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GC()))
-
-proc GC_CLASS*(klass: Pointer): PGCClass = 
-  result = cast[PGCClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GC()))
-
-proc IS_GC*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GC())
-
-proc IS_GC_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GC())
-
-proc GC_GET_CLASS*(obj: Pointer): PGCClass = 
-  result = cast[PGCClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GC()))
-
-proc destroy*(gc: PGC) = 
-  g_object_unref(G_OBJECT(gc))
-
-proc TYPE_IMAGE*(): GType = 
-  result = image_get_type()
-
-proc IMAGE*(anObject: Pointer): PImage = 
-  result = cast[PImage](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_IMAGE()))
-
-proc IMAGE_CLASS*(klass: Pointer): PImageClass = 
-  result = cast[PImageClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_IMAGE()))
-
-proc IS_IMAGE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_IMAGE())
-
-proc IS_IMAGE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_IMAGE())
-
-proc IMAGE_GET_CLASS*(obj: Pointer): PImageClass = 
-  result = cast[PImageClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_IMAGE()))
-
-proc destroy*(image: PImage) = 
-  g_object_unref(G_OBJECT(image))
-
-proc TYPE_DEVICE*(): GType = 
-  result = device_get_type()
-
-proc DEVICE*(anObject: Pointer): PDevice = 
-  result = cast[PDevice](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DEVICE()))
-
-proc DEVICE_CLASS*(klass: Pointer): PDeviceClass = 
-  result = cast[PDeviceClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DEVICE()))
-
-proc IS_DEVICE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DEVICE())
-
-proc IS_DEVICE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DEVICE())
-
-proc DEVICE_GET_CLASS*(obj: Pointer): PDeviceClass = 
-  result = cast[PDeviceClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DEVICE()))
-
-proc TYPE_KEYMAP*(): GType = 
-  result = keymap_get_type()
-
-proc KEYMAP*(anObject: Pointer): PKeymap = 
-  result = cast[PKeymap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_KEYMAP()))
-
-proc KEYMAP_CLASS*(klass: Pointer): PKeymapClass = 
-  result = cast[PKeymapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_KEYMAP()))
-
-proc IS_KEYMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_KEYMAP())
-
-proc IS_KEYMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_KEYMAP())
-
-proc KEYMAP_GET_CLASS*(obj: Pointer): PKeymapClass = 
-  result = cast[PKeymapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_KEYMAP()))
-
-proc TYPE_PIXMAP*(): GType = 
-  result = pixmap_get_type()
-
-proc PIXMAP*(anObject: Pointer): PPixmap = 
-  result = cast[PPixmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_PIXMAP()))
-
-proc PIXMAP_CLASS*(klass: Pointer): PPixmapObjectClass = 
-  result = cast[PPixmapObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_PIXMAP()))
-
-proc IS_PIXMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXMAP())
-
-proc IS_PIXMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_PIXMAP())
-
-proc PIXMAP_GET_CLASS*(obj: Pointer): PPixmapObjectClass = 
-  result = cast[PPixmapObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_PIXMAP()))
-
-proc PIXMAP_OBJECT*(anObject: Pointer): PPixmapObject = 
-  result = cast[PPixmapObject](PIXMAP(anObject))
-
-proc bitmap_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc bitmap_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc pixmap_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc pixmap_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc rgb_get_cmap*(): PColormap = 
-  result = nil                #gdk_rgb_get_colormap()
-  
-proc TYPE_DISPLAY*(): GType = 
-  nil
-  #result = nil
-  
-proc DISPLAY_OBJECT*(anObject: pointer): PDisplay = 
-  result = cast[PDisplay](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_DISPLAY()))
-
-proc DISPLAY_CLASS*(klass: pointer): PDisplayClass = 
-  result = cast[PDisplayClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_DISPLAY()))
-
-proc IS_DISPLAY*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_DISPLAY())
-
-proc IS_DISPLAY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_DISPLAY())
-
-proc DISPLAY_GET_CLASS*(obj: pointer): PDisplayClass = 
-  result = cast[PDisplayClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_DISPLAY()))
-
-proc TYPE_SCREEN*(): GType = 
-  nil
-
-proc SCREEN*(anObject: Pointer): PScreen = 
-  result = cast[PScreen](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_SCREEN()))
-
-proc SCREEN_CLASS*(klass: Pointer): PScreenClass = 
-  result = cast[PScreenClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_SCREEN()))
-
-proc IS_SCREEN*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_SCREEN())
-
-proc IS_SCREEN_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_SCREEN())
-
-proc SCREEN_GET_CLASS*(obj: Pointer): PScreenClass = 
-  result = cast[PScreenClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_SCREEN()))
-
-proc SELECTION_PRIMARY*(): TAtom = 
-  result = `MAKE_ATOM`(1)
-
-proc SELECTION_SECONDARY*(): TAtom = 
-  result = `MAKE_ATOM`(2)
-
-proc SELECTION_CLIPBOARD*(): TAtom = 
-  result = `MAKE_ATOM`(69)
-
-proc TARGET_BITMAP*(): TAtom = 
-  result = `MAKE_ATOM`(5)
-
-proc TARGET_COLORMAP*(): TAtom = 
-  result = `MAKE_ATOM`(7)
-
-proc TARGET_DRAWABLE*(): TAtom = 
-  result = `MAKE_ATOM`(17)
-
-proc TARGET_PIXMAP*(): TAtom = 
-  result = `MAKE_ATOM`(20)
-
-proc TARGET_STRING*(): TAtom = 
-  result = `MAKE_ATOM`(31)
-
-proc SELECTION_TYPE_ATOM*(): TAtom = 
-  result = `MAKE_ATOM`(4)
-
-proc SELECTION_TYPE_BITMAP*(): TAtom = 
-  result = `MAKE_ATOM`(5)
-
-proc SELECTION_TYPE_COLORMAP*(): TAtom = 
-  result = `MAKE_ATOM`(7)
-
-proc SELECTION_TYPE_DRAWABLE*(): TAtom = 
-  result = `MAKE_ATOM`(17)
-
-proc SELECTION_TYPE_INTEGER*(): TAtom = 
-  result = `MAKE_ATOM`(19)
-
-proc SELECTION_TYPE_PIXMAP*(): TAtom = 
-  result = `MAKE_ATOM`(20)
-
-proc SELECTION_TYPE_WINDOW*(): TAtom = 
-  result = `MAKE_ATOM`(33)
-
-proc SELECTION_TYPE_STRING*(): TAtom = 
-  result = `MAKE_ATOM`(31)
-
-proc ATOM_TO_POINTER*(atom: TAtom): pointer = 
-  result = cast[Pointer](atom)
-
-proc POINTER_TO_ATOM*(p: Pointer): TAtom = 
-  result = cast[TAtom](p)
-
-proc `MAKE_ATOM`*(val: guint): TAtom = 
-  result = cast[TAtom](val)
-
-proc NONE*(): TAtom = 
-  result = `MAKE_ATOM`(0)
-
-proc TYPE_VISUAL*(): GType = 
-  result = visual_get_type()
-
-proc VISUAL*(anObject: Pointer): PVisual = 
-  result = cast[PVisual](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_VISUAL()))
-
-proc VISUAL_CLASS*(klass: Pointer): PVisualClass = 
-  result = cast[PVisualClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_VISUAL()))
-
-proc IS_VISUAL*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_VISUAL())
-
-proc IS_VISUAL_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_VISUAL())
-
-proc VISUAL_GET_CLASS*(obj: Pointer): PVisualClass = 
-  result = cast[PVisualClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_VISUAL()))
-
-proc reference*(v: PVisual) = 
-  discard g_object_ref(v)
-
-proc unref*(v: PVisual) = 
-  g_object_unref(v)
-
-proc TYPE_WINDOW*(): GType = 
-  result = window_object_get_type()
-
-proc WINDOW*(anObject: Pointer): PWindow = 
-  result = cast[PWindow](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_WINDOW()))
-
-proc WINDOW_CLASS*(klass: Pointer): PWindowObjectClass = 
-  result = cast[PWindowObjectClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_WINDOW()))
-
-proc IS_WINDOW*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_WINDOW())
-
-proc IS_WINDOW_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_WINDOW())
-
-proc WINDOW_GET_CLASS*(obj: Pointer): PWindowObjectClass = 
-  result = cast[PWindowObjectClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_WINDOW()))
-
-proc WINDOW_OBJECT*(anObject: Pointer): PWindowObject = 
-  result = cast[PWindowObject](WINDOW(anObject))
-
-proc WindowObject_guffaw_gravity*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_guffaw_gravity) shr
-      bp_TWindowObject_guffaw_gravity
-
-proc WindowObject_set_guffaw_gravity*(a: PWindowObject, 
-                                      `guffaw_gravity`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`guffaw_gravity` shl bp_TWindowObject_guffaw_gravity) and
-      bm_TWindowObject_guffaw_gravity)
-
-proc WindowObject_input_only*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_input_only) shr
-      bp_TWindowObject_input_only
-
-proc WindowObject_set_input_only*(a: PWindowObject, `input_only`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`input_only` shl bp_TWindowObject_input_only) and
-      bm_TWindowObject_input_only)
-
-proc WindowObject_modal_hint*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_modal_hint) shr
-      bp_TWindowObject_modal_hint
-
-proc WindowObject_set_modal_hint*(a: PWindowObject, `modal_hint`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`modal_hint` shl bp_TWindowObject_modal_hint) and
-      bm_TWindowObject_modal_hint)
-
-proc WindowObject_destroyed*(a: PWindowObject): guint = 
-  result = (a.flag0 and bm_TWindowObject_destroyed) shr
-      bp_TWindowObject_destroyed
-
-proc WindowObject_set_destroyed*(a: PWindowObject, `destroyed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`destroyed` shl bp_TWindowObject_destroyed) and
-      bm_TWindowObject_destroyed)
-
-proc ROOT_PARENT*(): PWindow = 
-  result = get_default_root_window()
-
-proc window_get_size*(drawable: PDrawable, width: Pgint, height: Pgint) = 
-  get_size(drawable, width, height)
-
-proc get_type*(window: PWindow): TWindowType = 
-  result = get_window_type(window)
-
-proc window_get_colormap*(drawable: PDrawable): PColormap = 
-  result = get_colormap(drawable)
-
-proc window_set_colormap*(drawable: PDrawable, colormap: PColormap) = 
-  set_colormap(drawable, colormap)
-
-proc window_get_visual*(drawable: PDrawable): PVisual = 
-  result = get_visual(drawable)
-
-proc window_ref*(drawable: PDrawable): PDrawable = 
-  result = DRAWABLE(g_object_ref(G_OBJECT(drawable)))
-
-proc window_unref*(drawable: PDrawable) = 
-  g_object_unref(G_OBJECT(drawable))
-
-proc window_copy_area*(drawable: PDrawable, gc: PGC, x, y: gint, 
-                       source_drawable: PDrawable, source_x, source_y: gint, 
-                       width, height: gint) = 
-  pixmap(drawable, gc, source_drawable, source_x, source_y, x, y, width, 
-         height)
diff --git a/lib/wrappers/gtk/gdk2pixbuf.nim b/lib/wrappers/gtk/gdk2pixbuf.nim
deleted file mode 100644
index ee50317f8..000000000
--- a/lib/wrappers/gtk/gdk2pixbuf.nim
+++ /dev/null
@@ -1,271 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(win32): 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0.0.dylib"
-  # linklib gtk-x11-2.0
-  # linklib gdk-x11-2.0
-  # linklib pango-1.0.0
-  # linklib glib-2.0.0
-  # linklib gobject-2.0.0
-  # linklib gdk_pixbuf-2.0.0
-  # linklib atk-1.0.0
-else: 
-  const 
-    pixbuflib = "libgdk_pixbuf-2.0.so"
-type 
-  PPixbuf* = pointer
-  PPixbufAnimation* = pointer
-  PPixbufAnimationIter* = pointer
-  PPixbufAlphaMode* = ptr TPixbufAlphaMode
-  TPixbufAlphaMode* = enum 
-    PIXBUF_ALPHA_BILEVEL, PIXBUF_ALPHA_FULL
-  PColorspace* = ptr TColorspace
-  TColorspace* = enum 
-    COLORSPACE_RGB
-  TPixbufDestroyNotify* = proc (pixels: Pguchar, data: gpointer){.cdecl.}
-  PPixbufError* = ptr TPixbufError
-  TPixbufError* = enum 
-    PIXBUF_ERROR_CORRUPT_IMAGE, PIXBUF_ERROR_INSUFFICIENT_MEMORY, 
-    PIXBUF_ERROR_BAD_OPTION, PIXBUF_ERROR_UNKNOWN_TYPE, 
-    PIXBUF_ERROR_UNSUPPORTED_OPERATION, PIXBUF_ERROR_FAILED
-  PInterpType* = ptr TInterpType
-  TInterpType* = enum 
-    INTERP_NEAREST, INTERP_TILES, INTERP_BILINEAR, INTERP_HYPER
-
-proc TYPE_PIXBUF*(): GType
-proc PIXBUF*(anObject: pointer): PPixbuf
-proc IS_PIXBUF*(anObject: pointer): bool
-proc TYPE_PIXBUF_ANIMATION*(): GType
-proc PIXBUF_ANIMATION*(anObject: pointer): PPixbufAnimation
-proc IS_PIXBUF_ANIMATION*(anObject: pointer): bool
-proc TYPE_PIXBUF_ANIMATION_ITER*(): GType
-proc PIXBUF_ANIMATION_ITER*(anObject: pointer): PPixbufAnimationIter
-proc IS_PIXBUF_ANIMATION_ITER*(anObject: pointer): bool
-proc PIXBUF_ERROR*(): TGQuark
-proc pixbuf_error_quark*(): TGQuark{.cdecl, dynlib: pixbuflib, 
-                                     importc: "gdk_pixbuf_error_quark".}
-proc pixbuf_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-                                importc: "gdk_pixbuf_get_type".}
-when not defined(PIXBUF_DISABLE_DEPRECATED): 
-  proc pixbuf_ref*(pixbuf: PPixbuf): PPixbuf{.cdecl, dynlib: pixbuflib, 
-      importc: "gdk_pixbuf_ref".}
-  proc pixbuf_unref*(pixbuf: PPixbuf){.cdecl, dynlib: pixbuflib, 
-                                       importc: "gdk_pixbuf_unref".}
-proc get_colorspace*(pixbuf: PPixbuf): TColorspace{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_colorspace".}
-proc get_n_channels*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_n_channels".}
-proc get_has_alpha*(pixbuf: PPixbuf): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_has_alpha".}
-proc get_bits_per_sample*(pixbuf: PPixbuf): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_bits_per_sample".}
-proc get_pixels*(pixbuf: PPixbuf): Pguchar{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_pixels".}
-proc get_width*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_width".}
-proc get_height*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_height".}
-proc get_rowstride*(pixbuf: PPixbuf): int32{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_get_rowstride".}
-proc pixbuf_new*(colorspace: TColorspace, has_alpha: gboolean, 
-                 bits_per_sample: int32, width: int32, height: int32): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_new".}
-proc copy*(pixbuf: PPixbuf): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_copy".}
-proc new_subpixbuf*(src_pixbuf: PPixbuf, src_x: int32, src_y: int32, 
-                           width: int32, height: int32): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_subpixbuf".}
-proc pixbuf_new_from_file*(filename: cstring, error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file".}
-proc pixbuf_new_from_data*(data: Pguchar, colorspace: TColorspace, 
-                           has_alpha: gboolean, bits_per_sample: int32, 
-                           width: int32, height: int32, rowstride: int32, 
-                           destroy_fn: TPixbufDestroyNotify, 
-                           destroy_fn_data: gpointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_data".}
-proc pixbuf_new_from_xpm_data*(data: PPchar): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_new_from_xpm_data".}
-proc pixbuf_new_from_inline*(data_length: gint, a: var guint8, 
-                             copy_pixels: gboolean, error: pointer): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_inline".}
-proc pixbuf_new_from_file_at_size*(filename: cstring, width, height: gint, 
-                                   error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file_at_size".}
-proc pixbuf_new_from_file_at_scale*(filename: cstring, width, height: gint, 
-                                    preserve_aspect_ratio: gboolean, 
-                                    error: pointer): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_new_from_file_at_scale".}
-proc fill*(pixbuf: PPixbuf, pixel: guint32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_fill".}
-proc save*(pixbuf: PPixbuf, filename: cstring, `type`: cstring, 
-                  error: pointer): gboolean{.cdecl, varargs, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_save".}
-proc savev*(pixbuf: PPixbuf, filename: cstring, `type`: cstring, 
-                   option_keys: PPchar, option_values: PPchar, error: pointer): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_savev".}
-proc add_alpha*(pixbuf: PPixbuf, substitute_color: gboolean, r: guchar, 
-                       g: guchar, b: guchar): PPixbuf{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_add_alpha".}
-proc copy_area*(src_pixbuf: PPixbuf, src_x: int32, src_y: int32, 
-                       width: int32, height: int32, dest_pixbuf: PPixbuf, 
-                       dest_x: int32, dest_y: int32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_copy_area".}
-proc saturate_and_pixelate*(src: PPixbuf, dest: PPixbuf, 
-                                   saturation: gfloat, pixelate: gboolean){.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_saturate_and_pixelate".}
-proc scale*(src: PPixbuf, dest: PPixbuf, dest_x: int32, dest_y: int32, 
-                   dest_width: int32, dest_height: int32, offset_x: float64, 
-                   offset_y: float64, scale_x: float64, scale_y: float64, 
-                   interp_type: TInterpType){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_scale".}
-proc composite*(src: PPixbuf, dest: PPixbuf, dest_x: int32, 
-                       dest_y: int32, dest_width: int32, dest_height: int32, 
-                       offset_x: float64, offset_y: float64, scale_x: float64, 
-                       scale_y: float64, interp_type: TInterpType, 
-                       overall_alpha: int32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_composite".}
-proc composite_color*(src: PPixbuf, dest: PPixbuf, dest_x: int32, 
-                             dest_y: int32, dest_width: int32, 
-                             dest_height: int32, offset_x: float64, 
-                             offset_y: float64, scale_x: float64, 
-                             scale_y: float64, interp_type: TInterpType, 
-                             overall_alpha: int32, check_x: int32, 
-                             check_y: int32, check_size: int32, color1: guint32, 
-                             color2: guint32){.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_composite_color".}
-proc scale_simple*(src: PPixbuf, dest_width: int32, dest_height: int32, 
-                          interp_type: TInterpType): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_scale_simple".}
-proc composite_color_simple*(src: PPixbuf, dest_width: int32, 
-                                    dest_height: int32, 
-                                    interp_type: TInterpType, 
-                                    overall_alpha: int32, check_size: int32, 
-                                    color1: guint32, color2: guint32): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_composite_color_simple".}
-proc pixbuf_animation_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_get_type".}
-proc pixbuf_animation_new_from_file*(filename: cstring, error: pointer): PPixbufAnimation{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_new_from_file".}
-when not defined(PIXBUF_DISABLE_DEPRECATED): 
-  proc pixbuf_animation_ref*(animation: PPixbufAnimation): PPixbufAnimation{.
-      cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_ref".}
-  proc pixbuf_animation_unref*(animation: PPixbufAnimation){.cdecl, 
-      dynlib: pixbuflib, importc: "gdk_pixbuf_animation_unref".}
-proc get_width*(animation: PPixbufAnimation): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_width".}
-proc get_height*(animation: PPixbufAnimation): int32{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_height".}
-proc is_static_image*(animation: PPixbufAnimation): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_is_static_image".}
-proc get_static_image*(animation: PPixbufAnimation): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_static_image".}
-proc get_iter*(animation: PPixbufAnimation, e: var TGTimeVal): PPixbufAnimationIter{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_get_iter".}
-proc pixbuf_animation_iter_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_get_type".}
-proc iter_get_delay_time*(iter: PPixbufAnimationIter): int32{.
-    cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_get_delay_time".}
-proc iter_get_pixbuf*(iter: PPixbufAnimationIter): PPixbuf{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_iter_get_pixbuf".}
-proc pixbuf_animation_iter_on_currently_loading_frame*(
-    iter: PPixbufAnimationIter): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_animation_iter_on_currently_loading_frame".}
-proc iter_advance*(iter: PPixbufAnimationIter, e: var TGTimeVal): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_animation_iter_advance".}
-proc get_option*(pixbuf: PPixbuf, key: cstring): cstring{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_get_option".}
-type 
-  PPixbufLoader* = ptr TPixbufLoader
-  TPixbufLoader*{.final, pure.} = object 
-    parent_instance*: TGObject
-    priv*: gpointer
-
-  PPixbufLoaderClass* = ptr TPixbufLoaderClass
-  TPixbufLoaderClass*{.final, pure.} = object 
-    parent_class*: TGObjectClass
-    area_prepared*: proc (loader: PPixbufLoader){.cdecl.}
-    area_updated*: proc (loader: PPixbufLoader, x: int32, y: int32, 
-                         width: int32, height: int32){.cdecl.}
-    closed*: proc (loader: PPixbufLoader){.cdecl.}
-
-
-proc TYPE_PIXBUF_LOADER*(): GType
-proc PIXBUF_LOADER*(obj: pointer): PPixbufLoader
-proc PIXBUF_LOADER_CLASS*(klass: pointer): PPixbufLoaderClass
-proc IS_PIXBUF_LOADER*(obj: pointer): bool
-proc IS_PIXBUF_LOADER_CLASS*(klass: pointer): bool
-proc PIXBUF_LOADER_GET_CLASS*(obj: pointer): PPixbufLoaderClass
-proc pixbuf_loader_get_type*(): GType{.cdecl, dynlib: pixbuflib, 
-                                       importc: "gdk_pixbuf_loader_get_type".}
-proc pixbuf_loader_new*(): PPixbufLoader{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_loader_new".}
-proc pixbuf_loader_new*(image_type: cstring, error: pointer): PPixbufLoader{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_new_with_type".}
-proc write*(loader: PPixbufLoader, buf: Pguchar, count: gsize, 
-                          error: pointer): gboolean{.cdecl, dynlib: pixbuflib, 
-    importc: "gdk_pixbuf_loader_write".}
-proc get_pixbuf*(loader: PPixbufLoader): PPixbuf{.cdecl, 
-    dynlib: pixbuflib, importc: "gdk_pixbuf_loader_get_pixbuf".}
-proc get_animation*(loader: PPixbufLoader): PPixbufAnimation{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_get_animation".}
-proc close*(loader: PPixbufLoader, error: pointer): gboolean{.
-    cdecl, dynlib: pixbuflib, importc: "gdk_pixbuf_loader_close".}
-proc TYPE_PIXBUF_LOADER*(): GType = 
-  result = pixbuf_loader_get_type()
-
-proc PIXBUF_LOADER*(obj: pointer): PPixbufLoader = 
-  result = cast[PPixbufLoader](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_PIXBUF_LOADER()))
-
-proc PIXBUF_LOADER_CLASS*(klass: pointer): PPixbufLoaderClass = 
-  result = cast[PPixbufLoaderClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_PIXBUF_LOADER()))
-
-proc IS_PIXBUF_LOADER*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_PIXBUF_LOADER())
-
-proc IS_PIXBUF_LOADER_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_PIXBUF_LOADER())
-
-proc PIXBUF_LOADER_GET_CLASS*(obj: pointer): PPixbufLoaderClass = 
-  result = cast[PPixbufLoaderClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_PIXBUF_LOADER()))
-
-proc TYPE_PIXBUF*(): GType = 
-  result = pixbuf_get_type()
-
-proc PIXBUF*(anObject: pointer): PPixbuf = 
-  result = cast[PPixbuf](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_PIXBUF()))
-
-proc IS_PIXBUF*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF())
-
-proc TYPE_PIXBUF_ANIMATION*(): GType = 
-  result = pixbuf_animation_get_type()
-
-proc PIXBUF_ANIMATION*(anObject: pointer): PPixbufAnimation = 
-  result = cast[PPixbufAnimation](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_PIXBUF_ANIMATION()))
-
-proc IS_PIXBUF_ANIMATION*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF_ANIMATION())
-
-proc TYPE_PIXBUF_ANIMATION_ITER*(): GType = 
-  result = pixbuf_animation_iter_get_type()
-
-proc PIXBUF_ANIMATION_ITER*(anObject: pointer): PPixbufAnimationIter = 
-  result = cast[PPixbufAnimationIter](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_PIXBUF_ANIMATION_ITER()))
-
-proc IS_PIXBUF_ANIMATION_ITER*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_PIXBUF_ANIMATION_ITER())
-
-proc PIXBUF_ERROR*(): TGQuark = 
-  result = pixbuf_error_quark()
diff --git a/lib/wrappers/gtk/gdkglext.nim b/lib/wrappers/gtk/gdkglext.nim
deleted file mode 100644
index 0d550c6e2..000000000
--- a/lib/wrappers/gtk/gdkglext.nim
+++ /dev/null
@@ -1,554 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  Glib2, gdk2
-
-when defined(WIN32): 
-  const 
-    GLExtLib = "libgdkglext-win32-1.0-0.dll"
-elif defined(macosx): 
-  const 
-    GLExtLib = "libgdkglext-x11-1.0.dylib"
-else: 
-  const 
-    GLExtLib = "libgdkglext-x11-1.0.so"
-type 
-  TGLConfigAttrib* = int32
-  TGLConfigCaveat* = int32
-  TGLVisualType* = int32
-  TGLTransparentType* = int32
-  TGLDrawableTypeMask* = int32
-  TGLRenderTypeMask* = int32
-  TGLBufferMask* = int32
-  TGLConfigError* = int32
-  TGLRenderType* = int32
-  TGLDrawableAttrib* = int32
-  TGLPbufferAttrib* = int32
-  TGLEventMask* = int32
-  TGLEventType* = int32
-  TGLDrawableType* = int32
-  TGLProc* = Pointer
-  PGLConfig* = ptr TGLConfig
-  PGLContext* = ptr TGLContext
-  PGLDrawable* = ptr TGLDrawable
-  PGLPixmap* = ptr TGLPixmap
-  PGLWindow* = ptr TGLWindow
-  TGLConfig* = object of TGObject
-    layer_plane*: gint
-    n_aux_buffers*: gint
-    n_sample_buffers*: gint
-    flag0*: int16
-
-  PGLConfigClass* = ptr TGLConfigClass
-  TGLConfigClass* = object of TGObjectClass
-  TGLContext* = object of TGObject
-  PGLContextClass* = ptr TGLContextClass
-  TGLContextClass* = object of TGObjectClass
-  TGLDrawable* = object of TGObject
-  PGLDrawableClass* = ptr TGLDrawableClass
-  TGLDrawableClass* = object of TGTypeInterface
-    create_new_context*: proc (gldrawable: PGLDrawable, share_list: PGLContext, 
-                               direct: gboolean, render_type: int32): PGLContext{.
-        cdecl.}
-    make_context_current*: proc (draw: PGLDrawable, a_read: PGLDrawable, 
-                                 glcontext: PGLContext): gboolean{.cdecl.}
-    is_double_buffered*: proc (gldrawable: PGLDrawable): gboolean{.cdecl.}
-    swap_buffers*: proc (gldrawable: PGLDrawable){.cdecl.}
-    wait_gl*: proc (gldrawable: PGLDrawable){.cdecl.}
-    wait_gdk*: proc (gldrawable: PGLDrawable){.cdecl.}
-    gl_begin*: proc (draw: PGLDrawable, a_read: PGLDrawable, 
-                     glcontext: PGLContext): gboolean{.cdecl.}
-    gl_end*: proc (gldrawable: PGLDrawable){.cdecl.}
-    get_gl_config*: proc (gldrawable: PGLDrawable): PGLConfig{.cdecl.}
-    get_size*: proc (gldrawable: PGLDrawable, width, height: PGInt){.cdecl.}
-
-  TGLPixmap* = object of TGObject
-    drawable*: PDrawable
-
-  PGLPixmapClass* = ptr TGLPixmapClass
-  TGLPixmapClass* = object of TGObjectClass
-  TGLWindow* = object of TGObject
-    drawable*: PDrawable
-
-  PGLWindowClass* = ptr TGLWindowClass
-  TGLWindowClass* = object of TGObjectClass
-
-const 
-  HEADER_GDKGLEXT_MAJOR_VERSION* = 1
-  HEADER_GDKGLEXT_MINOR_VERSION* = 0
-  HEADER_GDKGLEXT_MICRO_VERSION* = 6
-  HEADER_GDKGLEXT_INTERFACE_AGE* = 4
-  HEADER_GDKGLEXT_BINARY_AGE* = 6
-
-proc HEADER_GDKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool
-var 
-  glext_major_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_minor_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_micro_version*{.importc, dynlib: GLExtLib.}: guint
-  glext_interface_age*{.importc, dynlib: GLExtLib.}: guint
-  glext_binary_age*{.importc, dynlib: GLExtLib.}: guint
-
-const 
-  GL_SUCCESS* = 0
-  GL_ATTRIB_LIST_NONE* = 0
-  GL_USE_GL* = 1
-  GL_BUFFER_SIZE* = 2
-  GL_LEVEL* = 3
-  GL_RGBA* = 4
-  GL_DOUBLEBUFFER* = 5
-  GL_STEREO* = 6
-  GL_AUX_BUFFERS* = 7
-  GL_RED_SIZE* = 8
-  GL_GREEN_SIZE* = 9
-  GL_BLUE_SIZE* = 10
-  GL_ALPHA_SIZE* = 11
-  GL_DEPTH_SIZE* = 12
-  GL_STENCIL_SIZE* = 13
-  GL_ACCUM_RED_SIZE* = 14
-  GL_ACCUM_GREEN_SIZE* = 15
-  GL_ACCUM_BLUE_SIZE* = 16
-  GL_ACCUM_ALPHA_SIZE* = 17
-  GL_CONFIG_CAVEAT* = 0x00000020
-  GL_X_VISUAL_TYPE* = 0x00000022
-  GL_TRANSPARENT_TYPE* = 0x00000023
-  GL_TRANSPARENT_INDEX_VALUE* = 0x00000024
-  GL_TRANSPARENT_RED_VALUE* = 0x00000025
-  GL_TRANSPARENT_GREEN_VALUE* = 0x00000026
-  GL_TRANSPARENT_BLUE_VALUE* = 0x00000027
-  GL_TRANSPARENT_ALPHA_VALUE* = 0x00000028
-  GL_DRAWABLE_TYPE* = 0x00008010
-  GL_RENDER_TYPE* = 0x00008011
-  GL_X_RENDERABLE* = 0x00008012
-  GL_FBCONFIG_ID* = 0x00008013
-  GL_MAX_PBUFFER_WIDTH* = 0x00008016
-  GL_MAX_PBUFFER_HEIGHT* = 0x00008017
-  GL_MAX_PBUFFER_PIXELS* = 0x00008018
-  GL_VISUAL_ID* = 0x0000800B
-  GL_SCREEN* = 0x0000800C
-  GL_SAMPLE_BUFFERS* = 100000
-  GL_SAMPLES* = 100001
-  GL_DONT_CARE* = 0xFFFFFFFF
-  GL_NONE* = 0x00008000
-  GL_CONFIG_CAVEAT_DONT_CARE* = 0xFFFFFFFF
-  GL_CONFIG_CAVEAT_NONE* = 0x00008000
-  GL_SLOW_CONFIG* = 0x00008001
-  GL_NON_CONFORMANT_CONFIG* = 0x0000800D
-  GL_VISUAL_TYPE_DONT_CARE* = 0xFFFFFFFF
-  GL_TRUE_COLOR* = 0x00008002
-  GL_DIRECT_COLOR* = 0x00008003
-  GL_PSEUDO_COLOR* = 0x00008004
-  GL_STATIC_COLOR* = 0x00008005
-  GL_GRAY_SCALE* = 0x00008006
-  GL_STATIC_GRAY* = 0x00008007
-  GL_TRANSPARENT_NONE* = 0x00008000
-  GL_TRANSPARENT_RGB* = 0x00008008
-  GL_TRANSPARENT_INDEX* = 0x00008009
-  GL_WINDOW_BIT* = 1 shl 0
-  GL_PIXMAP_BIT* = 1 shl 1
-  GL_PBUFFER_BIT* = 1 shl 2
-  GL_RGBA_BIT* = 1 shl 0
-  GL_COLOR_INDEX_BIT* = 1 shl 1
-  GL_FRONT_LEFT_BUFFER_BIT* = 1 shl 0
-  GL_FRONT_RIGHT_BUFFER_BIT* = 1 shl 1
-  GL_BACK_LEFT_BUFFER_BIT* = 1 shl 2
-  GL_BACK_RIGHT_BUFFER_BIT* = 1 shl 3
-  GL_AUX_BUFFERS_BIT* = 1 shl 4
-  GL_DEPTH_BUFFER_BIT* = 1 shl 5
-  GL_STENCIL_BUFFER_BIT* = 1 shl 6
-  GL_ACCUM_BUFFER_BIT* = 1 shl 7
-  GL_BAD_SCREEN* = 1
-  GL_BAD_ATTRIBUTE* = 2
-  GL_NO_EXTENSION* = 3
-  GL_BAD_VISUAL* = 4
-  GL_BAD_CONTEXT* = 5
-  GL_BAD_VALUE* = 6
-  GL_BAD_ENUM* = 7
-  GL_RGBA_TYPE* = 0x00008014
-  GL_COLOR_INDEX_TYPE* = 0x00008015
-  GL_PRESERVED_CONTENTS* = 0x0000801B
-  GL_LARGEST_PBUFFER* = 0x0000801C
-  GL_WIDTH* = 0x0000801D
-  GL_HEIGHT* = 0x0000801E
-  GL_EVENT_MASK* = 0x0000801F
-  GL_PBUFFER_PRESERVED_CONTENTS* = 0x0000801B
-  GL_PBUFFER_LARGEST_PBUFFER* = 0x0000801C
-  GL_PBUFFER_HEIGHT* = 0x00008040
-  GL_PBUFFER_WIDTH* = 0x00008041
-  GL_PBUFFER_CLOBBER_MASK* = 1 shl 27
-  GL_DAMAGED* = 0x00008020
-  GL_SAVED* = 0x00008021
-  GL_WINDOW_VALUE* = 0x00008022
-  GL_PBUFFER* = 0x00008023
-
-proc gl_config_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_attrib_get_type".}
-proc TYPE_GL_CONFIG_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_config_attrib_get_type".}
-proc gl_config_caveat_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_caveat_get_type".}
-proc TYPE_GL_CONFIG_CAVEAT*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_config_caveat_get_type".}
-proc gl_visual_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_visual_type_get_type".}
-proc TYPE_GL_VISUAL_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_visual_type_get_type".}
-proc gl_transparent_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_transparent_type_get_type".}
-proc TYPE_GL_TRANSPARENT_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_transparent_type_get_type".}
-proc gl_drawable_type_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_mask_get_type".}
-proc TYPE_GL_DRAWABLE_TYPE_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_mask_get_type".}
-proc gl_render_type_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_render_type_mask_get_type".}
-proc TYPE_GL_RENDER_TYPE_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_render_type_mask_get_type".}
-proc gl_buffer_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_buffer_mask_get_type".}
-proc TYPE_GL_BUFFER_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_buffer_mask_get_type".}
-proc gl_config_error_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_error_get_type".}
-proc TYPE_GL_CONFIG_ERROR*(): GType{.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_config_error_get_type".}
-proc gl_render_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_render_type_get_type".}
-proc TYPE_GL_RENDER_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_render_type_get_type".}
-proc gl_drawable_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_attrib_get_type".}
-proc TYPE_GL_DRAWABLE_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_attrib_get_type".}
-proc gl_pbuffer_attrib_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_pbuffer_attrib_get_type".}
-proc TYPE_GL_PBUFFER_ATTRIB*(): GType{.cdecl, dynlib: GLExtLib, importc: "gdk_gl_pbuffer_attrib_get_type".}
-proc gl_event_mask_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                       importc: "gdk_gl_event_mask_get_type".}
-proc TYPE_GL_EVENT_MASK*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_event_mask_get_type".}
-proc gl_event_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                       importc: "gdk_gl_event_type_get_type".}
-proc TYPE_GL_EVENT_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_event_type_get_type".}
-proc gl_drawable_type_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_type_get_type".}
-proc TYPE_GL_DRAWABLE_TYPE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                      importc: "gdk_gl_drawable_type_get_type".}
-proc gl_config_mode_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                        importc: "gdk_gl_config_mode_get_type".}
-proc TYPE_GL_CONFIG_MODE*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_config_mode_get_type".}
-proc gl_parse_args*(argc: var int32, argv: ptr cstringArray): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_parse_args".}
-proc gl_init_check*(argc: var int32, argv: ptr cstringArray): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_init_check".}
-proc gl_init*(argc: var int32, argv: ptr cstringArray){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_init".}
-proc gl_query_gl_extension*(extension: cstring): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_query_gl_extension".}
-proc gl_get_proc_address*(proc_name: cstring): TGLProc{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_get_proc_address".}
-const 
-  bm_TGdkGLConfig_is_rgba* = 1 shl 0
-  bp_TGdkGLConfig_is_rgba* = 0
-  bm_TGdkGLConfig_is_double_buffered* = 1 shl 1
-  bp_TGdkGLConfig_is_double_buffered* = 1
-  bm_TGdkGLConfig_as_single_mode* = 1 shl 2
-  bp_TGdkGLConfig_as_single_mode* = 2
-  bm_TGdkGLConfig_is_stereo* = 1 shl 3
-  bp_TGdkGLConfig_is_stereo* = 3
-  bm_TGdkGLConfig_has_alpha* = 1 shl 4
-  bp_TGdkGLConfig_has_alpha* = 4
-  bm_TGdkGLConfig_has_depth_buffer* = 1 shl 5
-  bp_TGdkGLConfig_has_depth_buffer* = 5
-  bm_TGdkGLConfig_has_stencil_buffer* = 1 shl 6
-  bp_TGdkGLConfig_has_stencil_buffer* = 6
-  bm_TGdkGLConfig_has_accum_buffer* = 1 shl 7
-  bp_TGdkGLConfig_has_accum_buffer* = 7
-
-const 
-  GL_MODE_RGB* = 0
-  GL_MODE_RGBA* = 0
-  GL_MODE_INDEX* = 1 shl 0
-  GL_MODE_SINGLE* = 0
-  GL_MODE_DOUBLE* = 1 shl 1
-  GL_MODE_STEREO* = 1 shl 2
-  GL_MODE_ALPHA* = 1 shl 3
-  GL_MODE_DEPTH* = 1 shl 4
-  GL_MODE_STENCIL* = 1 shl 5
-  GL_MODE_ACCUM* = 1 shl 6
-  GL_MODE_MULTISAMPLE* = 1 shl 7
-
-type 
-  TGLConfigMode* = int32
-  PGLConfigMode* = ptr TGLConfigMode
-
-proc TYPE_GL_CONFIG*(): GType
-proc GL_CONFIG*(anObject: Pointer): PGLConfig
-proc GL_CONFIG_CLASS*(klass: Pointer): PGLConfigClass
-proc IS_GL_CONFIG*(anObject: Pointer): bool
-proc IS_GL_CONFIG_CLASS*(klass: Pointer): bool
-proc GL_CONFIG_GET_CLASS*(obj: Pointer): PGLConfigClass
-proc gl_config_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_config_get_type".}
-proc get_screen*(glconfig: PGLConfig): PScreen{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_screen".}
-proc get_attrib*(glconfig: PGLConfig, attribute: int, value: var cint): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_config_get_attrib".}
-proc get_colormap*(glconfig: PGLConfig): PColormap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_colormap".}
-proc get_visual*(glconfig: PGLConfig): PVisual{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_visual".}
-proc get_depth*(glconfig: PGLConfig): gint{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_get_depth".}
-proc get_layer_plane*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_layer_plane".}
-proc get_n_aux_buffers*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_n_aux_buffers".}
-proc get_n_sample_buffers*(glconfig: PGLConfig): gint{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_get_n_sample_buffers".}
-proc is_rgba*(glconfig: PGLConfig): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_config_is_rgba".}
-proc is_double_buffered*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_is_double_buffered".}
-proc is_stereo*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_is_stereo".}
-proc has_alpha*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_alpha".}
-proc has_depth_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_depth_buffer".}
-proc has_stencil_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_stencil_buffer".}
-proc has_accum_buffer*(glconfig: PGLConfig): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_config_has_accum_buffer".}
-proc TYPE_GL_CONTEXT*(): GType
-proc GL_CONTEXT*(anObject: Pointer): PGLContext
-proc GL_CONTEXT_CLASS*(klass: Pointer): PGLContextClass
-proc IS_GL_CONTEXT*(anObject: Pointer): bool
-proc IS_GL_CONTEXT_CLASS*(klass: Pointer): bool
-proc GL_CONTEXT_GET_CLASS*(obj: Pointer): PGLContextClass
-proc gl_context_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                    importc: "gdk_gl_context_get_type".}
-proc context_new*(gldrawable: PGLDrawable, share_list: PGLContext, 
-                     direct: gboolean, render_type: int32): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_new".}
-proc destroy*(glcontext: PGLContext){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_context_destroy".}
-proc copy*(glcontext: PGLContext, src: PGLContext, mask: int32): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_context_copy".}
-proc get_gl_drawable*(glcontext: PGLContext): PGLDrawable{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_gl_drawable".}
-proc get_gl_config*(glcontext: PGLContext): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_gl_config".}
-proc get_share_list*(glcontext: PGLContext): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_share_list".}
-proc is_direct*(glcontext: PGLContext): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_is_direct".}
-proc get_render_type*(glcontext: PGLContext): int32{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_context_get_render_type".}
-proc gl_context_get_current*(): PGLContext{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_context_get_current".}
-proc TYPE_GL_DRAWABLE*(): GType
-proc GL_DRAWABLE*(inst: Pointer): PGLDrawable
-proc GL_DRAWABLE_CLASS*(vtable: Pointer): PGLDrawableClass
-proc IS_GL_DRAWABLE*(inst: Pointer): bool
-proc IS_GL_DRAWABLE_CLASS*(vtable: Pointer): bool
-proc GL_DRAWABLE_GET_CLASS*(inst: Pointer): PGLDrawableClass
-proc gl_drawable_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_drawable_get_type".}
-proc make_current*(gldrawable: PGLDrawable, glcontext: PGLContext): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_make_current".}
-proc is_double_buffered*(gldrawable: PGLDrawable): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_is_double_buffered".}
-proc swap_buffers*(gldrawable: PGLDrawable){.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_swap_buffers".}
-proc wait_gl*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_wait_gl".}
-proc wait_gdk*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_wait_gdk".}
-proc gl_begin*(gldrawable: PGLDrawable, glcontext: PGLContext): gboolean{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_gl_begin".}
-proc gl_end*(gldrawable: PGLDrawable){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_gl_end".}
-proc get_gl_config*(gldrawable: PGLDrawable): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_drawable_get_gl_config".}
-proc get_size*(gldrawable: PGLDrawable, width, height: PGInt){.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_drawable_get_size".}
-proc gl_drawable_get_current*(): PGLDrawable{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_drawable_get_current".}
-proc TYPE_GL_PIXMAP*(): GType
-proc GL_PIXMAP*(anObject: Pointer): PGLPixmap
-proc GL_PIXMAP_CLASS*(klass: Pointer): PGLPixmapClass
-proc IS_GL_PIXMAP*(anObject: Pointer): bool
-proc IS_GL_PIXMAP_CLASS*(klass: Pointer): bool
-proc GL_PIXMAP_GET_CLASS*(obj: Pointer): PGLPixmapClass
-proc gl_pixmap_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_pixmap_get_type".}
-proc pixmap_new*(glconfig: PGLConfig, pixmap: PPixmap, attrib_list: ptr int32): PGLPixmap{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_pixmap_new".}
-proc destroy*(glpixmap: PGLPixmap){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_pixmap_destroy".}
-proc get_pixmap*(glpixmap: PGLPixmap): PPixmap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_pixmap_get_pixmap".}
-proc set_gl_capability*(pixmap: PPixmap, glconfig: PGLConfig, 
-                               attrib_list: ptr int32): PGLPixmap{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_pixmap_set_gl_capability".}
-proc unset_gl_capability*(pixmap: PPixmap){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_unset_gl_capability".}
-proc is_gl_capable*(pixmap: PPixmap): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_is_gl_capable".}
-proc get_gl_pixmap*(pixmap: PPixmap): PGLPixmap{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_pixmap_get_gl_pixmap".}
-proc get_gl_drawable*(pixmap: PPixmap): PGLDrawable
-proc TYPE_GL_WINDOW*(): GType
-proc GL_WINDOW*(anObject: Pointer): PGLWindow
-proc GL_WINDOW_CLASS*(klass: Pointer): PGLWindowClass
-proc IS_GL_WINDOW*(anObject: Pointer): bool
-proc IS_GL_WINDOW_CLASS*(klass: Pointer): bool
-proc GL_WINDOW_GET_CLASS*(obj: Pointer): PGLWindowClass
-proc gl_window_get_type*(): GType{.cdecl, dynlib: GLExtLib, 
-                                   importc: "gdk_gl_window_get_type".}
-proc window_new*(glconfig: PGLConfig, window: PWindow, attrib_list: ptr int32): PGLWindow{.
-    cdecl, dynlib: GLExtLib, importc: "gdk_gl_window_new".}
-proc destroy*(glwindow: PGLWindow){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_window_destroy".}
-proc get_window*(glwindow: PGLWindow): PWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_window_get_window".}
-proc set_gl_capability*(window: PWindow, glconfig: PGLConfig, 
-                               attrib_list: ptr int32): PGLWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_window_set_gl_capability".}
-proc unset_gl_capability*(window: PWindow){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_unset_gl_capability".}
-proc is_gl_capable*(window: PWindow): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_is_gl_capable".}
-proc get_gl_window*(window: PWindow): PGLWindow{.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_window_get_gl_window".}
-proc get_gl_drawable*(window: PWindow): PGLDrawable
-proc gl_draw_cube*(solid: gboolean, size: float64){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_cube".}
-proc gl_draw_sphere*(solid: gboolean, radius: float64, slices: int32, 
-                     stacks: int32){.cdecl, dynlib: GLExtLib, 
-                                     importc: "gdk_gl_draw_sphere".}
-proc gl_draw_cone*(solid: gboolean, base: float64, height: float64, 
-                   slices: int32, stacks: int32){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_cone".}
-proc gl_draw_torus*(solid: gboolean, inner_radius: float64, 
-                    outer_radius: float64, nsides: int32, rings: int32){.cdecl, 
-    dynlib: GLExtLib, importc: "gdk_gl_draw_torus".}
-proc gl_draw_tetrahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_tetrahedron".}
-proc gl_draw_octahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_octahedron".}
-proc gl_draw_dodecahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_dodecahedron".}
-proc gl_draw_icosahedron*(solid: gboolean){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_icosahedron".}
-proc gl_draw_teapot*(solid: gboolean, scale: float64){.cdecl, dynlib: GLExtLib, 
-    importc: "gdk_gl_draw_teapot".}
-proc HEADER_GDKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool = 
-  result = (HEADER_GDKGLEXT_MAJOR_VERSION > major) or
-      ((HEADER_GDKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GDKGLEXT_MINOR_VERSION > minor)) or
-      ((HEADER_GDKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GDKGLEXT_MINOR_VERSION == minor) and
-      (HEADER_GDKGLEXT_MICRO_VERSION >= micro))
-
-proc TYPE_GL_CONFIG*(): GType = 
-  result = gl_config_get_type()
-
-proc GL_CONFIG*(anObject: Pointer): PGLConfig = 
-  result = cast[PGLConfig](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_CONFIG()))
-
-proc GL_CONFIG_CLASS*(klass: Pointer): PGLConfigClass = 
-  result = cast[PGLConfigClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_CONFIG()))
-
-proc IS_GL_CONFIG*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_CONFIG())
-
-proc IS_GL_CONFIG_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_CONFIG())
-
-proc GL_CONFIG_GET_CLASS*(obj: Pointer): PGLConfigClass = 
-  result = cast[PGLConfigClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_CONFIG()))
-
-proc TYPE_GL_CONTEXT*(): GType = 
-  result = gl_context_get_type()
-
-proc GL_CONTEXT*(anObject: Pointer): PGLContext = 
-  result = cast[PGLContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_GL_CONTEXT()))
-
-proc GL_CONTEXT_CLASS*(klass: Pointer): PGLContextClass = 
-  result = cast[PGLContextClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_GL_CONTEXT()))
-
-proc IS_GL_CONTEXT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_CONTEXT())
-
-proc IS_GL_CONTEXT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_CONTEXT())
-
-proc GL_CONTEXT_GET_CLASS*(obj: Pointer): PGLContextClass = 
-  result = cast[PGLContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_GL_CONTEXT()))
-
-proc TYPE_GL_DRAWABLE*(): GType = 
-  result = gl_drawable_get_type()
-
-proc GL_DRAWABLE*(inst: Pointer): PGLDrawable = 
-  result = cast[PGLDrawable](G_TYPE_CHECK_INSTANCE_CAST(inst, TYPE_GL_DRAWABLE()))
-
-proc GL_DRAWABLE_CLASS*(vtable: Pointer): PGLDrawableClass = 
-  result = cast[PGLDrawableClass](G_TYPE_CHECK_CLASS_CAST(vtable, 
-      TYPE_GL_DRAWABLE()))
-
-proc IS_GL_DRAWABLE*(inst: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(inst, TYPE_GL_DRAWABLE())
-
-proc IS_GL_DRAWABLE_CLASS*(vtable: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, TYPE_GL_DRAWABLE())
-
-proc GL_DRAWABLE_GET_CLASS*(inst: Pointer): PGLDrawableClass = 
-  result = cast[PGLDrawableClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      TYPE_GL_DRAWABLE()))
-
-proc TYPE_GL_PIXMAP*(): GType = 
-  result = gl_pixmap_get_type()
-
-proc GL_PIXMAP*(anObject: Pointer): PGLPixmap = 
-  result = cast[PGLPixmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_PIXMAP()))
-
-proc GL_PIXMAP_CLASS*(klass: Pointer): PGLPixmapClass = 
-  result = cast[PGLPixmapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_PIXMAP()))
-
-proc IS_GL_PIXMAP*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_PIXMAP())
-
-proc IS_GL_PIXMAP_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_PIXMAP())
-
-proc GL_PIXMAP_GET_CLASS*(obj: Pointer): PGLPixmapClass = 
-  result = cast[PGLPixmapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_PIXMAP()))
-
-proc get_gl_drawable*(pixmap: PPixmap): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_pixmap(pixmap))
-
-proc TYPE_GL_WINDOW*(): GType = 
-  result = gl_window_get_type()
-
-proc GL_WINDOW*(anObject: Pointer): PGLWindow = 
-  result = cast[PGLWindow](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_GL_WINDOW()))
-
-proc GL_WINDOW_CLASS*(klass: Pointer): PGLWindowClass = 
-  result = cast[PGLWindowClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_GL_WINDOW()))
-
-proc IS_GL_WINDOW*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_GL_WINDOW())
-
-proc IS_GL_WINDOW_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_GL_WINDOW())
-
-proc GL_WINDOW_GET_CLASS*(obj: Pointer): PGLWindowClass = 
-  result = cast[PGLWindowClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_GL_WINDOW()))
-
-proc get_gl_drawable*(window: PWindow): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_window(window))
diff --git a/lib/wrappers/gtk/glib2.nim b/lib/wrappers/gtk/glib2.nim
deleted file mode 100644
index 3fa672c85..000000000
--- a/lib/wrappers/gtk/glib2.nim
+++ /dev/null
@@ -1,4540 +0,0 @@
-{.deadCodeElim: on.}
-when defined(windows): 
-  const 
-    gliblib = "libglib-2.0-0.dll"
-    gmodulelib = "libgmodule-2.0-0.dll"
-    gobjectlib = "libgobject-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    gliblib = "libglib-2.0.dylib"
-    gmodulelib = "libgmodule-2.0.dylib"
-    gobjectlib = "libgobject-2.0.dylib"
-else: 
-  const 
-    gliblib = "libglib-2.0.so(|.0)"
-    gmodulelib = "libgmodule-2.0.so(|.0)"
-    gobjectlib = "libgobject-2.0.so(|.0)"
-# gthreadlib = "libgthread-2.0.so"
-
-type 
-  PGTypePlugin* = pointer
-  PGParamSpecPool* = pointer
-  PPchar* = ptr cstring
-  PPPchar* = ptr PPchar
-  PPPgchar* = ptr PPgchar
-  PPgchar* = ptr cstring
-  gchar* = char
-  gshort* = cshort
-  glong* = clong
-  gint* = cint
-  gboolean* = distinct gint
-  guchar* = char
-  gushort* = int16
-  gulong* = int
-  guint* = cint
-  gfloat* = cfloat
-  gdouble* = cdouble
-  gpointer* = pointer
-  Pgshort* = ptr gshort
-  Pglong* = ptr glong
-  Pgint* = ptr gint
-  PPgint* = ptr Pgint
-  Pgboolean* = ptr gboolean
-  Pguchar* = ptr guchar
-  PPguchar* = ptr Pguchar
-  Pgushort* = ptr gushort
-  Pgulong* = ptr gulong
-  Pguint* = ptr guint
-  Pgfloat* = ptr gfloat
-  Pgdouble* = ptr gdouble
-  pgpointer* = ptr gpointer
-  gconstpointer* = pointer
-  PGCompareFunc* = ptr TGCompareFunc
-  TGCompareFunc* = proc (a, b: gconstpointer): gint{.cdecl.}
-  PGCompareDataFunc* = ptr TGCompareDataFunc
-  TGCompareDataFunc* = proc (a, b: gconstpointer, user_data: gpointer): gint{.
-      cdecl.}
-  PGEqualFunc* = ptr TGEqualFunc
-  TGEqualFunc* = proc (a, b: gconstpointer): gboolean{.cdecl.}
-  PGDestroyNotify* = ptr TGDestroyNotify
-  TGDestroyNotify* = proc (data: gpointer){.cdecl.}
-  PGFunc* = ptr TGFunc
-  TGFunc* = proc (data, userdata: gpointer, key: gconstpointer){.cdecl.}
-  PGHashFunc* = ptr TGHashFunc
-  TGHashFunc* = proc (key: gconstpointer): guint{.cdecl.}
-  PGHFunc* = ptr TGHFunc
-  TGHFunc* = proc (key, value, user_data: gpointer){.cdecl.}
-  PGFreeFunc* = proc (data: gpointer){.cdecl.}
-  PGTimeVal* = ptr TGTimeVal
-  TGTimeVal*{.final.} = object 
-    tv_sec*: glong
-    tv_usec*: glong
-
-  guint64* = int64
-  gint8* = int8
-  guint8* = int8
-  gint16* = int16
-  guint16* = int16
-  gint32* = int32
-  guint32* = int32
-  gint64* = int64
-  gssize* = int32
-  gsize* = int32
-  Pgint8* = ptr gint8
-  Pguint8* = ptr guint8
-  Pgint16* = ptr gint16
-  Pguint16* = ptr guint16
-  Pgint32* = ptr gint32
-  Pguint32* = ptr guint32
-  Pgint64* = ptr gint64
-  Pguint64* = ptr guint64
-  pgssize* = ptr gssize
-  pgsize* = ptr gsize
-  TGQuark* = guint32
-  PGQuark* = ptr TGQuark
-  PGTypeCValue* = ptr TGTypeCValue
-  TGTypeCValue*{.final.} = object 
-    v_double*: gdouble
-
-  GType* = gulong
-  PGType* = ptr GType
-  PGTypeClass* = ptr TGTypeClass
-  TGTypeClass*{.final.} = object 
-    g_type*: GType
-
-  PGTypeInstance* = ptr TGTypeInstance
-  TGTypeInstance*{.final.} = object 
-    g_class*: PGTypeClass
-
-  PGTypeInterface* = ptr TGTypeInterface
-  TGTypeInterface*{.pure, inheritable.} = object 
-    g_type*: GType
-    g_instance_type*: GType
-
-  PGTypeQuery* = ptr TGTypeQuery
-  TGTypeQuery*{.final.} = object 
-    theType*: GType
-    type_name*: cstring
-    class_size*: guint
-    instance_size*: guint
-
-  PGValue* = ptr TGValue
-  TGValue*{.final.} = object 
-    g_type*: GType
-    data*: array[0..1, gdouble]
-
-  PGData* = pointer
-  PPGData* = ptr PGData
-  PGSList* = ptr TGSList
-  PPGSList* = ptr PGSList
-  TGSList*{.final.} = object 
-    data*: gpointer
-    next*: PGSList
-
-  PGList* = ptr TGList
-  TGList*{.final.} = object 
-    data*: gpointer
-    next*: PGList
-    prev*: PGList
-
-  TGParamFlags* = int32
-  PGParamFlags* = ptr TGParamFlags
-  PGParamSpec* = ptr TGParamSpec
-  PPGParamSpec* = ptr PGParamSpec
-  TGParamSpec*{.final.} = object 
-    g_type_instance*: TGTypeInstance
-    name*: cstring
-    flags*: TGParamFlags
-    value_type*: GType
-    owner_type*: GType
-    nick*: cstring
-    blurb*: cstring
-    qdata*: PGData
-    ref_count*: guint
-    param_id*: guint
-
-  PGParamSpecClass* = ptr TGParamSpecClass
-  TGParamSpecClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    value_type*: GType
-    finalize*: proc (pspec: PGParamSpec){.cdecl.}
-    value_set_default*: proc (pspec: PGParamSpec, value: PGValue){.cdecl.}
-    value_validate*: proc (pspec: PGParamSpec, value: PGValue): gboolean{.cdecl.}
-    values_cmp*: proc (pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-        cdecl.}
-    dummy*: array[0..3, gpointer]
-
-  PGParameter* = ptr TGParameter
-  TGParameter*{.final.} = object 
-    name*: cstring
-    value*: TGValue
-
-  TGBoxedCopyFunc* = proc (boxed: gpointer): gpointer{.cdecl.}
-  TGBoxedFreeFunc* = proc (boxed: gpointer){.cdecl.}
-  PGsource = pointer          # I don't know and don't care
-
-converter gbool*(nimbool: bool): gboolean =
-  return ord(nimbool).gboolean
-
-converter toBool*(gbool: gboolean): bool =
-  return int(gbool) == 1
-
-const 
-  G_TYPE_FUNDAMENTAL_SHIFT* = 2
-  G_TYPE_FUNDAMENTAL_MAX* = 255 shl G_TYPE_FUNDAMENTAL_SHIFT
-  G_TYPE_INVALID* = GType(0 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_NONE* = GType(1 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INTERFACE* = GType(2 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_CHAR* = GType(3 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UCHAR* = GType(4 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_BOOLEAN* = GType(5 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INT* = GType(6 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UINT* = GType(7 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_LONG* = GType(8 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_ULONG* = GType(9 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_INT64* = GType(10 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_UINT64* = GType(11 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_ENUM* = GType(12 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_FLAGS* = GType(13 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_FLOAT* = GType(14 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_DOUBLE* = GType(15 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_STRING* = GType(16 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_POINTER* = GType(17 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_BOXED* = GType(18 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_PARAM* = GType(19 shl G_TYPE_FUNDAMENTAL_SHIFT)
-  G_TYPE_OBJECT* = GType(20 shl G_TYPE_FUNDAMENTAL_SHIFT)
-
-const
-  G_PRIORITY_HIGH_IDLE* = 100
-  G_PRIORITY_DEFAULT_IDLE* = 200
-  G_PRIORITY_LOW* = 300
-  G_PRIORITY_HIGH* = -100
-  G_PRIORITY_DEFAULT* = 0
-  
-
-proc G_TYPE_MAKE_FUNDAMENTAL*(x: int): GType
-const 
-  G_TYPE_RESERVED_GLIB_FIRST* = 21
-  G_TYPE_RESERVED_GLIB_LAST* = 31
-  G_TYPE_RESERVED_BSE_FIRST* = 32
-  G_TYPE_RESERVED_BSE_LAST* = 48
-  G_TYPE_RESERVED_USER_FIRST* = 49
-
-proc G_TYPE_IS_FUNDAMENTAL*(theType: GType): bool
-proc G_TYPE_IS_DERIVED*(theType: GType): bool
-proc G_TYPE_IS_INTERFACE*(theType: GType): bool
-proc G_TYPE_IS_CLASSED*(theType: GType): gboolean
-proc G_TYPE_IS_INSTANTIATABLE*(theType: GType): bool
-proc G_TYPE_IS_DERIVABLE*(theType: GType): bool
-proc G_TYPE_IS_DEEP_DERIVABLE*(theType: GType): bool
-proc G_TYPE_IS_ABSTRACT*(theType: GType): bool
-proc G_TYPE_IS_VALUE_ABSTRACT*(theType: GType): bool
-proc G_TYPE_IS_VALUE_TYPE*(theType: GType): bool
-proc G_TYPE_HAS_VALUE_TABLE*(theType: GType): bool
-proc G_TYPE_CHECK_INSTANCE*(instance: Pointer): gboolean
-proc G_TYPE_CHECK_INSTANCE_CAST*(instance: Pointer, g_type: GType): PGTypeInstance
-proc G_TYPE_CHECK_INSTANCE_TYPE*(instance: Pointer, g_type: GType): bool
-proc G_TYPE_INSTANCE_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass
-proc G_TYPE_INSTANCE_GET_INTERFACE*(instance: Pointer, g_type: GType): Pointer
-proc G_TYPE_CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer
-proc G_TYPE_CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool
-proc G_TYPE_CHECK_VALUE*(value: Pointer): bool
-proc G_TYPE_CHECK_VALUE_TYPE*(value: pointer, g_type: GType): bool
-proc G_TYPE_FROM_INSTANCE*(instance: Pointer): GType
-proc G_TYPE_FROM_CLASS*(g_class: Pointer): GType
-proc G_TYPE_FROM_INTERFACE*(g_iface: Pointer): GType
-type 
-  TGTypeDebugFlags* = int32
-  PGTypeDebugFlags* = ptr TGTypeDebugFlags
-
-const 
-  G_TYPE_DEBUG_NONE* = 0
-  G_TYPE_DEBUG_OBJECTS* = 1 shl 0
-  G_TYPE_DEBUG_SIGNALS* = 1 shl 1
-  G_TYPE_DEBUG_MASK* = 0x00000003
-
-proc g_type_init*(){.cdecl, dynlib: gobjectlib, importc: "g_type_init".}
-proc g_type_init*(debug_flags: TGTypeDebugFlags){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_init_with_debug_flags".}
-proc g_type_name*(theType: GType): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_name".}
-proc g_type_qname*(theType: GType): TGQuark{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_qname".}
-proc g_type_from_name*(name: cstring): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_from_name".}
-proc g_type_parent*(theType: GType): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_parent".}
-proc g_type_depth*(theType: GType): guint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_depth".}
-proc g_type_next_base*(leaf_type: GType, root_type: GType): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_next_base".}
-proc g_type_is_a*(theType: GType, is_a_type: GType): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_is_a".}
-proc g_type_class_ref*(theType: GType): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_ref".}
-proc g_type_class_peek*(theType: GType): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_peek".}
-proc g_type_class_unref*(g_class: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_unref".}
-proc g_type_class_peek_parent*(g_class: gpointer): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_class_peek_parent".}
-proc g_type_interface_peek*(instance_class: gpointer, iface_type: GType): gpointer{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_interface_peek".}
-proc g_type_interface_peek_parent*(g_iface: gpointer): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interface_peek_parent".}
-proc g_type_children*(theType: GType, n_children: Pguint): PGType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_children".}
-proc g_type_interfaces*(theType: GType, n_interfaces: Pguint): PGType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interfaces".}
-proc g_type_set_qdata*(theType: GType, quark: TGQuark, data: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_set_qdata".}
-proc g_type_get_qdata*(theType: GType, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_get_qdata".}
-proc g_type_query*(theType: GType, query: PGTypeQuery){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_query".}
-type 
-  TGBaseInitFunc* = proc (g_class: gpointer){.cdecl.}
-  TGBaseFinalizeFunc* = proc (g_class: gpointer){.cdecl.}
-  TGClassInitFunc* = proc (g_class: gpointer, class_data: gpointer){.cdecl.}
-  TGClassFinalizeFunc* = proc (g_class: gpointer, class_data: gpointer){.cdecl.}
-  TGInstanceInitFunc* = proc (instance: PGTypeInstance, g_class: gpointer){.
-      cdecl.}
-  TGInterfaceInitFunc* = proc (g_iface: gpointer, iface_data: gpointer){.cdecl.}
-  TGInterfaceFinalizeFunc* = proc (g_iface: gpointer, iface_data: gpointer){.
-      cdecl.}
-  TGTypeClassCacheFunc* = proc (cache_data: gpointer, g_class: PGTypeClass): gboolean{.
-      cdecl.}
-  TGTypeFundamentalFlags* = int32
-  PGTypeFundamentalFlags* = ptr TGTypeFundamentalFlags
-
-const 
-  G_TYPE_FLAG_CLASSED* = 1 shl 0
-  G_TYPE_FLAG_INSTANTIATABLE* = 1 shl 1
-  G_TYPE_FLAG_DERIVABLE* = 1 shl 2
-  G_TYPE_FLAG_DEEP_DERIVABLE* = 1 shl 3
-
-type 
-  TGTypeFlags* = int32
-  PGTypeFlags* = ptr TGTypeFlags
-
-const 
-  G_TYPE_FLAG_ABSTRACT* = 1 shl 4
-  G_TYPE_FLAG_VALUE_ABSTRACT* = 1 shl 5
-
-type 
-  PGTypeValueTable* = ptr TGTypeValueTable
-  TGTypeValueTable*{.final.} = object 
-    value_init*: proc (value: PGValue){.cdecl.}
-    value_free*: proc (value: PGValue){.cdecl.}
-    value_copy*: proc (src_value: PGValue, dest_value: PGValue){.cdecl.}
-    value_peek_pointer*: proc (value: PGValue): gpointer{.cdecl.}
-    collect_format*: cstring
-    collect_value*: proc (value: PGValue, n_collect_values: guint, 
-                          collect_values: PGTypeCValue, collect_flags: guint): cstring{.
-        cdecl.}
-    lcopy_format*: cstring
-    lcopy_value*: proc (value: PGValue, n_collect_values: guint, 
-                        collect_values: PGTypeCValue, collect_flags: guint): cstring{.
-        cdecl.}
-
-  PGTypeInfo* = ptr TGTypeInfo
-  TGTypeInfo*{.final.} = object 
-    class_size*: guint16
-    base_init*: TGBaseInitFunc
-    base_finalize*: TGBaseFinalizeFunc
-    class_init*: TGClassInitFunc
-    class_finalize*: TGClassFinalizeFunc
-    class_data*: gconstpointer
-    instance_size*: guint16
-    n_preallocs*: guint16
-    instance_init*: TGInstanceInitFunc
-    value_table*: PGTypeValueTable
-
-  PGTypeFundamentalInfo* = ptr TGTypeFundamentalInfo
-  TGTypeFundamentalInfo*{.final.} = object 
-    type_flags*: TGTypeFundamentalFlags
-
-  PGInterfaceInfo* = ptr TGInterfaceInfo
-  TGInterfaceInfo*{.final.} = object 
-    interface_init*: TGInterfaceInitFunc
-    interface_finalize*: TGInterfaceFinalizeFunc
-    interface_data*: gpointer
-
-
-proc g_type_register_static*(parent_type: GType, type_name: cstring, 
-                             info: PGTypeInfo, flags: TGTypeFlags): GType{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_register_static".}
-proc g_type_register_dynamic*(parent_type: GType, type_name: cstring, 
-                              plugin: PGTypePlugin, flags: TGTypeFlags): GType{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_register_dynamic".}
-proc g_type_register_fundamental*(type_id: GType, type_name: cstring, 
-                                  info: PGTypeInfo, 
-                                  finfo: PGTypeFundamentalInfo, 
-                                  flags: TGTypeFlags): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_register_fundamental".}
-proc g_type_add_interface_static*(instance_type: GType, interface_type: GType, 
-                                  info: PGInterfaceInfo){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_interface_static".}
-proc g_type_add_interface_dynamic*(instance_type: GType, interface_type: GType, 
-                                   plugin: PGTypePlugin){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_interface_dynamic".}
-proc g_type_interface_add_prerequisite*(interface_type: GType, 
-                                        prerequisite_type: GType){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_interface_add_prerequisite".}
-proc g_type_get_plugin*(theType: GType): PGTypePlugin{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_get_plugin".}
-proc g_type_interface_get_plugin*(instance_type: GType, 
-                                  implementation_type: GType): PGTypePlugin{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_interface_get_plugin".}
-proc g_type_fundamental_next*(): GType{.cdecl, dynlib: gobjectlib, 
-                                        importc: "g_type_fundamental_next".}
-proc g_type_fundamental*(type_id: GType): GType{.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_fundamental".}
-proc g_type_create_instance*(theType: GType): PGTypeInstance{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_create_instance".}
-proc free_instance*(instance: PGTypeInstance){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_free_instance".}
-proc g_type_add_class_cache_func*(cache_data: gpointer, 
-                                  cache_func: TGTypeClassCacheFunc){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_add_class_cache_func".}
-proc g_type_remove_class_cache_func*(cache_data: gpointer, 
-                                     cache_func: TGTypeClassCacheFunc){.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_remove_class_cache_func".}
-proc g_type_class_unref_uncached*(g_class: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_type_class_unref_uncached".}
-proc g_type_value_table_peek*(theType: GType): PGTypeValueTable{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_value_table_peek".}
-proc private_g_type_check_instance*(instance: PGTypeInstance): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_instance".}
-proc private_g_type_check_instance_cast*(instance: PGTypeInstance, 
-    iface_type: GType): PGTypeInstance{.cdecl, dynlib: gobjectlib, 
-                                        importc: "g_type_check_instance_cast".}
-proc private_g_type_check_instance_is_a*(instance: PGTypeInstance, 
-    iface_type: GType): gboolean{.cdecl, dynlib: gobjectlib, 
-                                  importc: "g_type_check_instance_is_a".}
-proc private_g_type_check_class_cast*(g_class: PGTypeClass, is_a_type: GType): PGTypeClass{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_class_cast".}
-proc private_g_type_check_class_is_a*(g_class: PGTypeClass, is_a_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_class_is_a".}
-proc private_g_type_check_is_value_type*(theType: GType): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_is_value_type".}
-proc private_g_type_check_value*(value: PGValue): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_check_value".}
-proc private_g_type_check_value_holds*(value: PGValue, theType: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_type_check_value_holds".}
-proc private_g_type_test_flags*(theType: GType, flags: guint): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_test_flags".}
-proc name_from_instance*(instance: PGTypeInstance): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_name_from_instance".}
-proc name_from_class*(g_class: PGTypeClass): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_type_name_from_class".}
-const 
-  G_TYPE_FLAG_RESERVED_ID_BIT* = GType(1 shl 0)
-
-proc G_TYPE_IS_VALUE*(theType: GType): bool
-proc G_IS_VALUE*(value: pointer): bool
-proc G_VALUE_TYPE*(value: Pointer): GType
-proc G_VALUE_TYPE_NAME*(value: Pointer): cstring
-proc G_VALUE_HOLDS*(value: pointer, g_type: GType): bool
-type 
-  TGValueTransform* = proc (src_value: PGValue, dest_value: PGValue){.cdecl.}
-
-proc init*(value: PGValue, g_type: GType): PGValue{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_init".}
-proc copy*(src_value: PGValue, dest_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_copy".}
-proc reset*(value: PGValue): PGValue{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_reset".}
-proc unset*(value: PGValue){.cdecl, dynlib: gobjectlib, 
-                                     importc: "g_value_unset".}
-proc set_instance*(value: PGValue, instance: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_instance".}
-proc fits_pointer*(value: PGValue): gboolean{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_fits_pointer".}
-proc peek_pointer*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_peek_pointer".}
-proc g_value_type_compatible*(src_type: GType, dest_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_type_compatible".}
-proc g_value_type_transformable*(src_type: GType, dest_type: GType): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_type_transformable".}
-proc transform*(src_value: PGValue, dest_value: PGValue): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_transform".}
-proc g_value_register_transform_func*(src_type: GType, dest_type: GType, 
-                                      transform_func: TGValueTransform){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_register_transform_func".}
-const 
-  G_VALUE_NOCOPY_CONTENTS* = 1 shl 27
-
-type 
-  PGValueArray* = ptr TGValueArray
-  TGValueArray*{.final.} = object 
-    n_values*: guint
-    values*: PGValue
-    n_prealloced*: guint
-
-
-proc array_get_nth*(value_array: PGValueArray, index: guint): PGValue{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_get_nth".}
-proc g_value_array_new*(n_prealloced: guint): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_new".}
-proc array_free*(value_array: PGValueArray){.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_array_free".}
-proc array_copy*(value_array: PGValueArray): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_copy".}
-proc array_prepend*(value_array: PGValueArray, value: PGValue): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_prepend".}
-proc array_append*(value_array: PGValueArray, value: PGValue): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_append".}
-proc array_insert*(value_array: PGValueArray, index: guint, 
-                           value: PGValue): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_insert".}
-proc array_remove*(value_array: PGValueArray, index: guint): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_remove".}
-proc array_sort*(value_array: PGValueArray, compare_func: TGCompareFunc): PGValueArray{.
-    cdecl, dynlib: gobjectlib, importc: "g_value_array_sort".}
-proc array_sort*(value_array: PGValueArray, 
-                                   compare_func: TGCompareDataFunc, 
-                                   user_data: gpointer): PGValueArray{.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_array_sort_with_data".}
-const 
-  G_VALUE_COLLECT_INT* = 'i'
-  G_VALUE_COLLECT_LONG* = 'l'
-  G_VALUE_COLLECT_INT64* = 'q'
-  G_VALUE_COLLECT_DOUBLE* = 'd'
-  G_VALUE_COLLECT_POINTER* = 'p'
-  G_VALUE_COLLECT_FORMAT_MAX_LENGTH* = 8
-
-proc HOLDS_CHAR*(value: PGValue): bool
-proc HOLDS_UCHAR*(value: PGValue): bool
-proc HOLDS_BOOLEAN*(value: PGValue): bool
-proc HOLDS_INT*(value: PGValue): bool
-proc HOLDS_UINT*(value: PGValue): bool
-proc HOLDS_LONG*(value: PGValue): bool
-proc HOLDS_ULONG*(value: PGValue): bool
-proc HOLDS_INT64*(value: PGValue): bool
-proc HOLDS_UINT64*(value: PGValue): bool
-proc HOLDS_FLOAT*(value: PGValue): bool
-proc HOLDS_DOUBLE*(value: PGValue): bool
-proc HOLDS_STRING*(value: PGValue): bool
-proc HOLDS_POINTER*(value: PGValue): bool
-proc set_char*(value: PGValue, v_char: gchar){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_char".}
-proc get_char*(value: PGValue): gchar{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_char".}
-proc set_uchar*(value: PGValue, v_uchar: guchar){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uchar".}
-proc get_uchar*(value: PGValue): guchar{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uchar".}
-proc set_boolean*(value: PGValue, v_boolean: gboolean){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_boolean".}
-proc get_boolean*(value: PGValue): gboolean{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_boolean".}
-proc set_int*(value: PGValue, v_int: gint){.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_set_int".}
-proc get_int*(value: PGValue): gint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_int".}
-proc set_uint*(value: PGValue, v_uint: guint){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uint".}
-proc get_uint*(value: PGValue): guint{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uint".}
-proc set_long*(value: PGValue, v_long: glong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_long".}
-proc get_long*(value: PGValue): glong{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_long".}
-proc set_ulong*(value: PGValue, v_ulong: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_ulong".}
-proc get_ulong*(value: PGValue): gulong{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_ulong".}
-proc set_int64*(value: PGValue, v_int64: gint64){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_int64".}
-proc get_int64*(value: PGValue): gint64{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_int64".}
-proc set_uint64*(value: PGValue, v_uint64: guint64){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_uint64".}
-proc get_uint64*(value: PGValue): guint64{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_uint64".}
-proc set_float*(value: PGValue, v_float: gfloat){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_float".}
-proc get_float*(value: PGValue): gfloat{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_float".}
-proc set_double*(value: PGValue, v_double: gdouble){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_double".}
-proc get_double*(value: PGValue): gdouble{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_double".}
-proc set_string*(value: PGValue, v_string: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_string".}
-proc set_static_string*(value: PGValue, v_string: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_static_string".}
-proc get_string*(value: PGValue): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_string".}
-proc dup_string*(value: PGValue): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_string".}
-proc set_pointer*(value: PGValue, v_pointer: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_pointer".}
-proc get_pointer*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_pointer".}
-proc g_pointer_type_register_static*(name: cstring): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_pointer_type_register_static".}
-proc strdup_value_contents*(value: PGValue): cstring{.cdecl, 
-    dynlib: gobjectlib, importc: "g_strdup_value_contents".}
-proc set_string_take_ownership*(value: PGValue, v_string: cstring){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_string_take_ownership".}
-type 
-  Tgchararray* = gchar
-  Pgchararray* = ptr Tgchararray
-
-proc G_TYPE_IS_PARAM*(theType: GType): bool
-proc G_PARAM_SPEC*(pspec: Pointer): PGParamSpec
-proc G_IS_PARAM_SPEC*(pspec: Pointer): bool
-proc G_PARAM_SPEC_CLASS*(pclass: Pointer): PGParamSpecClass
-proc G_IS_PARAM_SPEC_CLASS*(pclass: Pointer): bool
-proc G_PARAM_SPEC_GET_CLASS*(pspec: Pointer): PGParamSpecClass
-proc G_PARAM_SPEC_TYPE*(pspec: Pointer): GType
-proc G_PARAM_SPEC_TYPE_NAME*(pspec: Pointer): cstring
-proc G_PARAM_SPEC_VALUE_TYPE*(pspec: Pointer): GType
-proc G_VALUE_HOLDS_PARAM*(value: Pointer): bool
-const 
-  G_PARAM_READABLE* = 1 shl 0
-  G_PARAM_WRITABLE* = 1 shl 1
-  G_PARAM_CONSTRUCT* = 1 shl 2
-  G_PARAM_CONSTRUCT_ONLY* = 1 shl 3
-  G_PARAM_LAX_VALIDATION* = 1 shl 4
-  G_PARAM_PRIVATE* = 1 shl 5
-  G_PARAM_READWRITE* = G_PARAM_READABLE or G_PARAM_WRITABLE
-  G_PARAM_MASK* = 0x000000FF
-  G_PARAM_USER_SHIFT* = 8
-
-proc spec_ref*(pspec: PGParamSpec): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_ref".}
-proc spec_unref*(pspec: PGParamSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_unref".}
-proc spec_sink*(pspec: PGParamSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_sink".}
-proc spec_get_qdata*(pspec: PGParamSpec, quark: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_get_qdata".}
-proc spec_set_qdata*(pspec: PGParamSpec, quark: TGQuark, data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_set_qdata".}
-proc spec_set_qdata_full*(pspec: PGParamSpec, quark: TGQuark, 
-                                  data: gpointer, destroy: TGDestroyNotify){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_set_qdata_full".}
-proc spec_steal_qdata*(pspec: PGParamSpec, quark: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_steal_qdata".}
-proc value_set_default*(pspec: PGParamSpec, value: PGValue){.cdecl, 
-    dynlib: gliblib, importc: "g_param_value_set_default".}
-proc value_defaults*(pspec: PGParamSpec, value: PGValue): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_defaults".}
-proc value_validate*(pspec: PGParamSpec, value: PGValue): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_validate".}
-proc value_convert*(pspec: PGParamSpec, src_value: PGValue, 
-                            dest_value: PGValue, strict_validation: gboolean): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_param_value_convert".}
-proc values_cmp*(pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-    cdecl, dynlib: gliblib, importc: "g_param_values_cmp".}
-proc spec_get_name*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_name".}
-proc spec_get_nick*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_nick".}
-proc spec_get_blurb*(pspec: PGParamSpec): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_get_blurb".}
-proc set_param*(value: PGValue, param: PGParamSpec){.cdecl, 
-    dynlib: gliblib, importc: "g_value_set_param".}
-proc get_param*(value: PGValue): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_param".}
-proc dup_param*(value: PGValue): PGParamSpec{.cdecl, dynlib: gliblib, 
-    importc: "g_value_dup_param".}
-proc set_param_take_ownership*(value: PGValue, param: PGParamSpec){.
-    cdecl, dynlib: gliblib, importc: "g_value_set_param_take_ownership".}
-type 
-  PGParamSpecTypeInfo* = ptr TGParamSpecTypeInfo
-  TGParamSpecTypeInfo*{.final.} = object 
-    instance_size*: guint16
-    n_preallocs*: guint16
-    instance_init*: proc (pspec: PGParamSpec){.cdecl.}
-    value_type*: GType
-    finalize*: proc (pspec: PGParamSpec){.cdecl.}
-    value_set_default*: proc (pspec: PGParamSpec, value: PGValue){.cdecl.}
-    value_validate*: proc (pspec: PGParamSpec, value: PGValue): gboolean{.cdecl.}
-    values_cmp*: proc (pspec: PGParamSpec, value1: PGValue, value2: PGValue): gint{.
-        cdecl.}
-
-
-proc g_param_type_register_static*(name: cstring, 
-                                   pspec_info: PGParamSpecTypeInfo): GType{.
-    cdecl, dynlib: gliblib, importc: "g_param_type_register_static".}
-proc g_param_type_register_static_constant*(name: cstring, 
-    pspec_info: PGParamSpecTypeInfo, opt_type: GType): GType{.cdecl, 
-    dynlib: gliblib, importc: "`g_param_type_register_static_constant`".}
-proc g_param_spec_internal*(param_type: GType, name: cstring, nick: cstring, 
-                            blurb: cstring, flags: TGParamFlags): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_internal".}
-proc g_param_spec_pool_new*(type_prefixing: gboolean): PGParamSpecPool{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_pool_new".}
-proc spec_pool_insert*(pool: PGParamSpecPool, pspec: PGParamSpec, 
-                               owner_type: GType){.cdecl, dynlib: gliblib, 
-    importc: "g_param_spec_pool_insert".}
-proc spec_pool_remove*(pool: PGParamSpecPool, pspec: PGParamSpec){.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_remove".}
-proc spec_pool_lookup*(pool: PGParamSpecPool, param_name: cstring, 
-                               owner_type: GType, walk_ancestors: gboolean): PGParamSpec{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_lookup".}
-proc spec_pool_list_owned*(pool: PGParamSpecPool, owner_type: GType): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_param_spec_pool_list_owned".}
-proc spec_pool_list*(pool: PGParamSpecPool, owner_type: GType, 
-                             n_pspecs_p: Pguint): PPGParamSpec{.cdecl, 
-    dynlib: gliblib, importc: "g_param_spec_pool_list".}
-type 
-  PGClosure* = ptr TGClosure
-  PGClosureNotifyData* = ptr TGClosureNotifyData
-  TGClosureNotify* = proc (data: gpointer, closure: PGClosure){.cdecl.}
-  TGClosure*{.final.} = object 
-    flag0*: int32
-    marshal*: proc (closure: PGClosure, return_value: PGValue, 
-                    n_param_values: guint, param_values: PGValue, 
-                    invocation_hint, marshal_data: gpointer){.cdecl.}
-    data*: gpointer
-    notifiers*: PGClosureNotifyData
-
-  TGCallBackProcedure* = proc (){.cdecl.}
-  TGCallback* = proc (){.cdecl.}
-  TGClosureMarshal* = proc (closure: PGClosure, return_value: PGValue, 
-                            n_param_values: guint, param_values: PGValue, 
-                            invocation_hint: gpointer, marshal_data: gpointer){.
-      cdecl.}
-  TGClosureNotifyData*{.final.} = object 
-    data*: gpointer
-    notify*: TGClosureNotify
-
-
-proc G_CLOSURE_NEEDS_MARSHAL*(closure: Pointer): bool
-proc N_NOTIFIERS*(cl: PGClosure): int32
-proc CCLOSURE_SWAP_DATA*(cclosure: PGClosure): int32
-proc G_CALLBACK*(f: pointer): TGCallback
-const 
-  bm_TGClosure_ref_count* = 0x00007FFF'i32
-  bp_TGClosure_ref_count* = 0'i32
-  bm_TGClosure_meta_marshal* = 0x00008000'i32
-  bp_TGClosure_meta_marshal* = 15'i32
-  bm_TGClosure_n_guards* = 0x00010000'i32
-  bp_TGClosure_n_guards* = 16'i32
-  bm_TGClosure_n_fnotifiers* = 0x00060000'i32
-  bp_TGClosure_n_fnotifiers* = 17'i32
-  bm_TGClosure_n_inotifiers* = 0x07F80000'i32
-  bp_TGClosure_n_inotifiers* = 19'i32
-  bm_TGClosure_in_inotify* = 0x08000000'i32
-  bp_TGClosure_in_inotify* = 27'i32
-  bm_TGClosure_floating* = 0x10000000'i32
-  bp_TGClosure_floating* = 28'i32
-  bm_TGClosure_derivative_flag* = 0x20000000'i32
-  bp_TGClosure_derivative_flag* = 29'i32
-  bm_TGClosure_in_marshal* = 0x40000000'i32
-  bp_TGClosure_in_marshal* = 30'i32
-  bm_TGClosure_is_invalid* = 0x80000000'i32
-  bp_TGClosure_is_invalid* = 31'i32
-
-proc ref_count*(a: PGClosure): guint
-proc set_ref_count*(a: PGClosure, ref_count: guint)
-proc meta_marshal*(a: PGClosure): guint
-proc set_meta_marshal*(a: PGClosure, meta_marshal: guint)
-proc n_guards*(a: PGClosure): guint
-proc set_n_guards*(a: PGClosure, n_guards: guint)
-proc n_fnotifiers*(a: PGClosure): guint
-proc set_n_fnotifiers*(a: PGClosure, n_fnotifiers: guint)
-proc n_inotifiers*(a: PGClosure): guint
-proc in_inotify*(a: PGClosure): guint
-proc set_in_inotify*(a: PGClosure, in_inotify: guint)
-proc floating*(a: PGClosure): guint
-proc set_floating*(a: PGClosure, floating: guint)
-proc derivative_flag*(a: PGClosure): guint
-proc set_derivative_flag*(a: PGClosure, derivative_flag: guint)
-proc in_marshal*(a: PGClosure): guint
-proc set_in_marshal*(a: PGClosure, in_marshal: guint)
-proc is_invalid*(a: PGClosure): guint
-proc set_is_invalid*(a: PGClosure, is_invalid: guint)
-type 
-  PGCClosure* = ptr TGCClosure
-  TGCClosure*{.final.} = object 
-    closure*: TGClosure
-    callback*: gpointer
-
-
-proc g_cclosure_new*(callback_func: TGCallback, user_data: gpointer, 
-                     destroy_data: TGClosureNotify): PGClosure{.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_new".}
-proc g_cclosure_new_swap*(callback_func: TGCallback, user_data: gpointer, 
-                          destroy_data: TGClosureNotify): PGClosure{.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_new_swap".}
-proc g_signal_type_cclosure_new*(itype: GType, struct_offset: guint): PGClosure{.
-    cdecl, dynlib: gliblib, importc: "g_signal_type_cclosure_new".}
-proc reference*(closure: PGClosure): PGClosure{.cdecl, dynlib: gliblib, 
-    importc: "g_closure_ref".}
-proc sink*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_sink".}
-proc unref*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_unref".}
-proc g_closure_new_simple*(sizeof_closure: guint, data: gpointer): PGClosure{.
-    cdecl, dynlib: gliblib, importc: "g_closure_new_simple".}
-proc add_finalize_notifier*(closure: PGClosure, notify_data: gpointer, 
-                                      notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_finalize_notifier".}
-proc remove_finalize_notifier*(closure: PGClosure, 
-    notify_data: gpointer, notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_remove_finalize_notifier".}
-proc add_invalidate_notifier*(closure: PGClosure, 
-                                        notify_data: gpointer, 
-                                        notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_invalidate_notifier".}
-proc remove_invalidate_notifier*(closure: PGClosure, 
-    notify_data: gpointer, notify_func: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_remove_invalidate_notifier".}
-proc add_marshal_guards*(closure: PGClosure, 
-                                   pre_marshal_data: gpointer, 
-                                   pre_marshal_notify: TGClosureNotify, 
-                                   post_marshal_data: gpointer, 
-                                   post_marshal_notify: TGClosureNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_add_marshal_guards".}
-proc set_marshal*(closure: PGClosure, marshal: TGClosureMarshal){.
-    cdecl, dynlib: gliblib, importc: "g_closure_set_marshal".}
-proc set_meta_marshal*(closure: PGClosure, marshal_data: gpointer, 
-                                 meta_marshal: TGClosureMarshal){.cdecl, 
-    dynlib: gliblib, importc: "g_closure_set_meta_marshal".}
-proc invalidate*(closure: PGClosure){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_invalidate".}
-proc invoke*(closure: PGClosure, return_value: PGValue, 
-                       n_param_values: guint, param_values: PGValue, 
-                       invocation_hint: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_closure_invoke".}
-type 
-  PGSignalInvocationHint* = ptr TGSignalInvocationHint
-  PGSignalCMarshaller* = ptr TGSignalCMarshaller
-  TGSignalCMarshaller* = TGClosureMarshal
-  TGSignalEmissionHook* = proc (ihint: PGSignalInvocationHint, 
-                                n_param_values: guint, param_values: PGValue, 
-                                data: gpointer): gboolean{.cdecl.}
-  TGSignalAccumulator* = proc (ihint: PGSignalInvocationHint, 
-                               return_accu: PGValue, handler_return: PGValue, 
-                               data: gpointer): gboolean{.cdecl.}
-  PGSignalFlags* = ptr TGSignalFlags
-  TGSignalFlags* = int32
-  TGSignalInvocationHint*{.final.} = object 
-    signal_id*: guint
-    detail*: TGQuark
-    run_type*: TGSignalFlags
-
-  PGSignalQuery* = ptr TGSignalQuery
-  TGSignalQuery*{.final.} = object 
-    signal_id*: guint
-    signal_name*: cstring
-    itype*: GType
-    signal_flags*: TGSignalFlags
-    return_type*: GType
-    n_params*: guint
-    param_types*: PGType
-
-
-const 
-  G_SIGNAL_RUN_FIRST* = 1 shl 0
-  G_SIGNAL_RUN_LAST* = 1 shl 1
-  G_SIGNAL_RUN_CLEANUP* = 1 shl 2
-  G_SIGNAL_NO_RECURSE* = 1 shl 3
-  G_SIGNAL_DETAILED* = 1 shl 4
-  G_SIGNAL_ACTION* = 1 shl 5
-  G_SIGNAL_NO_HOOKS* = 1 shl 6
-  G_SIGNAL_FLAGS_MASK* = 0x0000007F
-
-type 
-  PGConnectFlags* = ptr TGConnectFlags
-  TGConnectFlags* = int32
-
-const 
-  G_CONNECT_AFTER* = 1 shl 0
-  G_CONNECT_SWAPPED* = 1 shl 1
-
-type 
-  PGSignalMatchType* = ptr TGSignalMatchType
-  TGSignalMatchType* = int32
-
-const 
-  G_SIGNAL_MATCH_ID* = 1 shl 0
-  G_SIGNAL_MATCH_DETAIL* = 1 shl 1
-  G_SIGNAL_MATCH_CLOSURE* = 1 shl 2
-  G_SIGNAL_MATCH_FUNC* = 1 shl 3
-  G_SIGNAL_MATCH_DATA* = 1 shl 4
-  G_SIGNAL_MATCH_UNBLOCKED* = 1 shl 5
-  G_SIGNAL_MATCH_MASK* = 0x0000003F
-  G_SIGNAL_TYPE_STATIC_SCOPE* = G_TYPE_FLAG_RESERVED_ID_BIT
-
-proc g_signal_newv*(signal_name: cstring, itype: GType, 
-                    signal_flags: TGSignalFlags, class_closure: PGClosure, 
-                    accumulator: TGSignalAccumulator, accu_data: gpointer, 
-                    c_marshaller: TGSignalCMarshaller, return_type: GType, 
-                    n_params: guint, param_types: PGType): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_newv".}
-proc signal_emitv*(instance_and_params: PGValue, signal_id: guint, 
-                     detail: TGQuark, return_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_emitv".}
-proc g_signal_lookup*(name: cstring, itype: GType): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_lookup".}
-proc g_signal_name*(signal_id: guint): cstring{.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_name".}
-proc g_signal_query*(signal_id: guint, query: PGSignalQuery){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_query".}
-proc g_signal_list_ids*(itype: GType, n_ids: Pguint): Pguint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_list_ids".}
-proc g_signal_parse_name*(detailed_signal: cstring, itype: GType, 
-                          signal_id_p: Pguint, detail_p: PGQuark, 
-                          force_detail_quark: gboolean): gboolean{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_parse_name".}
-proc g_signal_get_invocation_hint*(instance: gpointer): PGSignalInvocationHint{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_get_invocation_hint".}
-proc g_signal_stop_emission*(instance: gpointer, signal_id: guint, 
-                             detail: TGQuark){.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_stop_emission".}
-proc g_signal_stop_emission_by_name*(instance: gpointer, 
-                                     detailed_signal: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_stop_emission_by_name".}
-proc g_signal_add_emission_hook*(signal_id: guint, quark: TGQuark, 
-                                 hook_func: TGSignalEmissionHook, 
-                                 hook_data: gpointer, 
-                                 data_destroy: TGDestroyNotify): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_add_emission_hook".}
-proc g_signal_remove_emission_hook*(signal_id: guint, hook_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_remove_emission_hook".}
-proc g_signal_has_handler_pending*(instance: gpointer, signal_id: guint, 
-                                   detail: TGQuark, may_be_blocked: gboolean): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_has_handler_pending".}
-proc g_signal_connect_closure_by_id*(instance: gpointer, signal_id: guint, 
-                                     detail: TGQuark, closure: PGClosure, 
-                                     after: gboolean): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_closure_by_id".}
-proc g_signal_connect_closure*(instance: gpointer, detailed_signal: cstring, 
-                               closure: PGClosure, after: gboolean): gulong{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_connect_closure".}
-proc g_signal_connect_data*(instance: gpointer, detailed_signal: cstring, 
-                            c_handler: TGCallback, data: gpointer, 
-                            destroy_data: TGClosureNotify, 
-                            connect_flags: TGConnectFlags): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_data".}
-proc g_signal_handler_block*(instance: gpointer, handler_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handler_block".}
-proc g_signal_handler_unblock*(instance: gpointer, handler_id: gulong){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handler_unblock".}
-proc g_signal_handler_disconnect*(instance: gpointer, handler_id: gulong){.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_disconnect".}
-proc g_signal_handler_is_connected*(instance: gpointer, handler_id: gulong): gboolean{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_is_connected".}
-proc g_signal_handler_find*(instance: gpointer, mask: TGSignalMatchType, 
-                            signal_id: guint, detail: TGQuark, 
-                            closure: PGClosure, func: gpointer, data: gpointer): gulong{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handler_find".}
-proc g_signal_handlers_block_matched*(instance: gpointer, 
-                                      mask: TGSignalMatchType, signal_id: guint, 
-                                      detail: TGQuark, closure: PGClosure, 
-                                      func: gpointer, data: gpointer): guint{.
-    cdecl, dynlib: gobjectlib, importc: "g_signal_handlers_block_matched".}
-proc g_signal_handlers_unblock_matched*(instance: gpointer, 
-                                        mask: TGSignalMatchType, 
-                                        signal_id: guint, detail: TGQuark, 
-                                        closure: PGClosure, func: gpointer, 
-                                        data: gpointer): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handlers_unblock_matched".}
-proc g_signal_handlers_disconnect_matched*(instance: gpointer, 
-    mask: TGSignalMatchType, signal_id: guint, detail: TGQuark, 
-    closure: PGClosure, func: gpointer, data: gpointer): guint{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_handlers_disconnect_matched".}
-proc g_signal_override_class_closure*(signal_id: guint, instance_type: GType, 
-                                      class_closure: PGClosure){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_override_class_closure".}
-proc signal_chain_from_overridden*(instance_and_params: PGValue, 
-                                     return_value: PGValue){.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_chain_from_overridden".}
-proc g_signal_connect*(instance: gpointer, detailed_signal: cstring, 
-                       c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_connect_after*(instance: gpointer, detailed_signal: cstring, 
-                             c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_connect_swapped*(instance: gpointer, detailed_signal: cstring, 
-                               c_handler: TGCallback, data: gpointer): gulong
-proc g_signal_handlers_disconnect_by_func*(instance: gpointer, 
-    func, data: gpointer): guint
-proc g_signal_handlers_block_by_func*(instance: gpointer, func, data: gpointer)
-proc g_signal_handlers_unblock_by_func*(instance: gpointer, func, data: gpointer)
-proc g_signal_handlers_destroy*(instance: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_signal_handlers_destroy".}
-proc g_signals_destroy*(itype: GType){.cdecl, dynlib: gobjectlib, 
-                                       importc: "`g_signals_destroy`".}
-type 
-  TGTypePluginUse* = proc (plugin: PGTypePlugin){.cdecl.}
-  TGTypePluginUnuse* = proc (plugin: PGTypePlugin){.cdecl.}
-  TGTypePluginCompleteTypeInfo* = proc (plugin: PGTypePlugin, g_type: GType, 
-                                        info: PGTypeInfo, 
-                                        value_table: PGTypeValueTable){.cdecl.}
-  TGTypePluginCompleteInterfaceInfo* = proc (plugin: PGTypePlugin, 
-      instance_type: GType, interface_type: GType, info: PGInterfaceInfo){.cdecl.}
-  PGTypePluginClass* = ptr TGTypePluginClass
-  TGTypePluginClass*{.final.} = object 
-    base_iface*: TGTypeInterface
-    use_plugin*: TGTypePluginUse
-    unuse_plugin*: TGTypePluginUnuse
-    complete_type_info*: TGTypePluginCompleteTypeInfo
-    complete_interface_info*: TGTypePluginCompleteInterfaceInfo
-
-
-proc G_TYPE_TYPE_PLUGIN*(): GType
-proc G_TYPE_PLUGIN*(inst: Pointer): PGTypePlugin
-proc G_TYPE_PLUGIN_CLASS*(vtable: Pointer): PGTypePluginClass
-proc G_IS_TYPE_PLUGIN*(inst: Pointer): bool
-proc G_IS_TYPE_PLUGIN_CLASS*(vtable: Pointer): bool
-proc G_TYPE_PLUGIN_GET_CLASS*(inst: Pointer): PGTypePluginClass
-proc g_type_plugin_get_type*(): GType{.cdecl, dynlib: gliblib, 
-                                       importc: "g_type_plugin_get_type".}
-proc plugin_use*(plugin: PGTypePlugin){.cdecl, dynlib: gliblib, 
-    importc: "g_type_plugin_use".}
-proc plugin_unuse*(plugin: PGTypePlugin){.cdecl, dynlib: gliblib, 
-    importc: "g_type_plugin_unuse".}
-proc plugin_complete_type_info*(plugin: PGTypePlugin, g_type: GType, 
-                                       info: PGTypeInfo, 
-                                       value_table: PGTypeValueTable){.cdecl, 
-    dynlib: gliblib, importc: "g_type_plugin_complete_type_info".}
-proc plugin_complete_interface_info*(plugin: PGTypePlugin, 
-    instance_type: GType, interface_type: GType, info: PGInterfaceInfo){.cdecl, 
-    dynlib: gliblib, importc: "g_type_plugin_complete_interface_info".}
-type 
-  PGObject* = ptr TGObject
-  TGObject*{.pure, inheritable.} = object 
-    g_type_instance*: TGTypeInstance
-    ref_count*: guint
-    qdata*: PGData
-
-  TGObjectGetPropertyFunc* = proc (anObject: PGObject, property_id: guint, 
-                                   value: PGValue, pspec: PGParamSpec){.cdecl.}
-  TGObjectSetPropertyFunc* = proc (anObject: PGObject, property_id: guint, 
-                                   value: PGValue, pspec: PGParamSpec){.cdecl.}
-  TGObjectFinalizeFunc* = proc (anObject: PGObject){.cdecl.}
-  TGWeakNotify* = proc (data: gpointer, where_the_object_was: PGObject){.cdecl.}
-  PGObjectConstructParam* = ptr TGObjectConstructParam
-  PGObjectClass* = ptr TGObjectClass
-  TGObjectClass*{.pure, inheritable.} = object 
-    g_type_class*: TGTypeClass
-    construct_properties*: PGSList
-    constructor*: proc (theType: GType, n_construct_properties: guint, 
-                        construct_properties: PGObjectConstructParam): PGObject{.
-        cdecl.}
-    set_property*: proc (anObject: PGObject, property_id: guint, value: PGValue, 
-                         pspec: PGParamSpec){.cdecl.}
-    get_property*: proc (anObject: PGObject, property_id: guint, value: PGValue, 
-                         pspec: PGParamSpec){.cdecl.}
-    dispose*: proc (anObject: PGObject){.cdecl.}
-    finalize*: proc (anObject: PGObject){.cdecl.}
-    dispatch_properties_changed*: proc (anObject: PGObject, n_pspecs: guint, 
-                                        pspecs: PPGParamSpec){.cdecl.}
-    notify*: proc (anObject: PGObject, pspec: PGParamSpec){.cdecl.}
-    pdummy*: array[0..7, gpointer]
-
-  TGObjectConstructParam*{.final.} = object 
-    pspec*: PGParamSpec
-    value*: PGValue
-
-
-proc G_TYPE_IS_OBJECT*(theType: GType): bool
-proc G_OBJECT*(anObject: pointer): PGObject
-proc G_OBJECT_CLASS*(class: Pointer): PGObjectClass
-proc G_IS_OBJECT*(anObject: pointer): bool
-proc G_IS_OBJECT_CLASS*(class: Pointer): bool
-proc G_OBJECT_GET_CLASS*(anObject: pointer): PGObjectClass
-proc G_OBJECT_TYPE*(anObject: pointer): GType
-proc G_OBJECT_TYPE_NAME*(anObject: pointer): cstring
-proc G_OBJECT_CLASS_TYPE*(class: Pointer): GType
-proc G_OBJECT_CLASS_NAME*(class: Pointer): cstring
-proc G_VALUE_HOLDS_OBJECT*(value: Pointer): bool
-proc class_install_property*(oclass: PGObjectClass, property_id: guint, 
-                                      pspec: PGParamSpec){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_class_install_property".}
-proc class_find_property*(oclass: PGObjectClass, property_name: cstring): PGParamSpec{.
-    cdecl, dynlib: gobjectlib, importc: "g_object_class_find_property".}
-proc class_list_properties*(oclass: PGObjectClass, n_properties: Pguint): PPGParamSpec{.
-    cdecl, dynlib: gobjectlib, importc: "g_object_class_list_properties".}
-proc set_property*(anObject: PGObject, property_name: cstring, 
-                            value: PGValue){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_set_property".}
-proc get_property*(anObject: PGObject, property_name: cstring, 
-                            value: PGValue){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_get_property".}
-proc freeze_notify*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_freeze_notify".}
-proc notify*(anObject: PGObject, property_name: cstring){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_notify".}
-proc thaw_notify*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_thaw_notify".}
-proc g_object_ref*(anObject: gpointer): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_ref".}
-proc g_object_unref*(anObject: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_unref".}
-proc weak_ref*(anObject: PGObject, notify: TGWeakNotify, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_weak_ref".}
-proc weak_unref*(anObject: PGObject, notify: TGWeakNotify, 
-                          data: gpointer){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_weak_unref".}
-proc add_weak_pointer*(anObject: PGObject, 
-                                weak_pointer_location: Pgpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_add_weak_pointer".}
-proc remove_weak_pointer*(anObject: PGObject, 
-                                   weak_pointer_location: Pgpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_remove_weak_pointer".}
-proc get_qdata*(anObject: PGObject, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_get_qdata".}
-proc set_qdata*(anObject: PGObject, quark: TGQuark, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_set_qdata".}
-proc set_qdata_full*(anObject: PGObject, quark: TGQuark, 
-                              data: gpointer, destroy: TGDestroyNotify){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_set_qdata_full".}
-proc steal_qdata*(anObject: PGObject, quark: TGQuark): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_steal_qdata".}
-proc get_data*(anObject: PGObject, key: cstring): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_get_data".}
-proc set_data*(anObject: PGObject, key: cstring, data: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_object_set_data".}
-proc set_data_full*(anObject: PGObject, key: cstring, data: gpointer, 
-                             destroy: TGDestroyNotify){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_set_data_full".}
-proc steal_data*(anObject: PGObject, key: cstring): gpointer{.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_steal_data".}
-proc watch_closure*(anObject: PGObject, closure: PGClosure){.cdecl, 
-    dynlib: gobjectlib, importc: "g_object_watch_closure".}
-proc g_cclosure_new_object*(callback_func: TGCallback, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_cclosure_new_object".}
-proc g_cclosure_new_object_swap*(callback_func: TGCallback, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_cclosure_new_object_swap".}
-proc g_closure_new_object*(sizeof_closure: guint, anObject: PGObject): PGClosure{.
-    cdecl, dynlib: gobjectlib, importc: "g_closure_new_object".}
-proc set_object*(value: PGValue, v_object: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_object".}
-proc get_object*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_object".}
-proc dup_object*(value: PGValue): PGObject{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_object".}
-proc g_signal_connect_object*(instance: gpointer, detailed_signal: cstring, 
-                              c_handler: TGCallback, gobject: gpointer, 
-                              connect_flags: TGConnectFlags): gulong{.cdecl, 
-    dynlib: gobjectlib, importc: "g_signal_connect_object".}
-proc run_dispose*(anObject: PGObject){.cdecl, dynlib: gobjectlib, 
-    importc: "g_object_run_dispose".}
-proc set_object_take_ownership*(value: PGValue, v_object: gpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_object_take_ownership".}
-proc G_OBJECT_WARN_INVALID_PSPEC*(anObject: gpointer, pname: cstring, 
-                                  property_id: gint, pspec: gpointer)
-proc G_OBJECT_WARN_INVALID_PROPERTY_ID*(anObject: gpointer, property_id: gint, 
-                                        pspec: gpointer)
-type 
-  G_FLAGS_TYPE* = GType
-
-const 
-  G_E* = 2.71828
-  G_LN2* = 0.693147
-  G_LN10* = 2.30259
-  G_PI* = 3.14159
-  G_PI_2* = 1.57080
-  G_PI_4* = 0.785398
-  G_SQRT2* = 1.41421
-  G_LITTLE_ENDIAN* = 1234
-  G_BIG_ENDIAN* = 4321
-  G_PDP_ENDIAN* = 3412
-
-proc GUINT16_SWAP_LE_BE_CONSTANT*(val: guint16): guint16
-proc GUINT32_SWAP_LE_BE_CONSTANT*(val: guint32): guint32
-type 
-  PGEnumClass* = ptr TGEnumClass
-  PGEnumValue* = ptr TGEnumValue
-  TGEnumClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    minimum*: gint
-    maximum*: gint
-    n_values*: guint
-    values*: PGEnumValue
-
-  TGEnumValue*{.final.} = object 
-    value*: gint
-    value_name*: cstring
-    value_nick*: cstring
-
-  PGFlagsClass* = ptr TGFlagsClass
-  PGFlagsValue* = ptr TGFlagsValue
-  TGFlagsClass*{.final.} = object 
-    g_type_class*: TGTypeClass
-    mask*: guint
-    n_values*: guint
-    values*: PGFlagsValue
-
-  TGFlagsValue*{.final.} = object 
-    value*: guint
-    value_name*: cstring
-    value_nick*: cstring
-
-
-proc G_TYPE_IS_ENUM*(theType: GType): gboolean
-proc G_ENUM_CLASS*(class: pointer): PGEnumClass
-proc G_IS_ENUM_CLASS*(class: pointer): gboolean
-proc G_ENUM_CLASS_TYPE*(class: pointer): GType
-proc G_ENUM_CLASS_TYPE_NAME*(class: pointer): cstring
-proc G_TYPE_IS_FLAGS*(theType: GType): gboolean
-proc G_FLAGS_CLASS*(class: pointer): PGFlagsClass
-proc G_IS_FLAGS_CLASS*(class: pointer): gboolean
-proc G_FLAGS_CLASS_TYPE*(class: pointer): GType
-proc G_FLAGS_CLASS_TYPE_NAME*(class: pointer): cstring
-proc G_VALUE_HOLDS_ENUM*(value: pointer): gboolean
-proc G_VALUE_HOLDS_FLAGS*(value: pointer): gboolean
-proc get_value*(enum_class: PGEnumClass, value: gint): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value".}
-proc get_value_by_name*(enum_class: PGEnumClass, name: cstring): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value_by_name".}
-proc get_value_by_nick*(enum_class: PGEnumClass, nick: cstring): PGEnumValue{.
-    cdecl, dynlib: gliblib, importc: "g_enum_get_value_by_nick".}
-proc get_first_value*(flags_class: PGFlagsClass, value: guint): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_first_value".}
-proc get_value_by_name*(flags_class: PGFlagsClass, name: cstring): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_value_by_name".}
-proc get_value_by_nick*(flags_class: PGFlagsClass, nick: cstring): PGFlagsValue{.
-    cdecl, dynlib: gliblib, importc: "g_flags_get_value_by_nick".}
-proc set_enum*(value: PGValue, v_enum: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_value_set_enum".}
-proc get_enum*(value: PGValue): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_enum".}
-proc set_flags*(value: PGValue, v_flags: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_value_set_flags".}
-proc get_flags*(value: PGValue): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_value_get_flags".}
-proc g_enum_register_static*(name: cstring, const_static_values: PGEnumValue): GType{.
-    cdecl, dynlib: gliblib, importc: "g_enum_register_static".}
-proc g_flags_register_static*(name: cstring, const_static_values: PGFlagsValue): GType{.
-    cdecl, dynlib: gliblib, importc: "g_flags_register_static".}
-proc g_enum_complete_type_info*(g_enum_type: GType, info: PGTypeInfo, 
-                                const_values: PGEnumValue){.cdecl, 
-    dynlib: gliblib, importc: "g_enum_complete_type_info".}
-proc g_flags_complete_type_info*(g_flags_type: GType, info: PGTypeInfo, 
-                                 const_values: PGFlagsValue){.cdecl, 
-    dynlib: gliblib, importc: "g_flags_complete_type_info".}
-const 
-  G_MINFLOAT* = 0.00000
-  G_MAXFLOAT* = 1.70000e+308
-  G_MINDOUBLE* = G_MINFLOAT
-  G_MAXDOUBLE* = G_MAXFLOAT
-  G_MAXSHORT* = 32767
-  G_MINSHORT* = - G_MAXSHORT - 1
-  G_MAXUSHORT* = 2 * G_MAXSHORT + 1
-  G_MAXINT* = 2147483647
-  G_MININT* = - G_MAXINT - 1
-  G_MAXUINT* = - 1
-  G_MINLONG* = G_MININT
-  G_MAXLONG* = G_MAXINT
-  G_MAXULONG* = G_MAXUINT
-  G_MAXINT64* = high(int64)
-  G_MININT64* = low(int64)
-
-const 
-  G_GINT16_FORMAT* = "hi"
-  G_GUINT16_FORMAT* = "hu"
-  G_GINT32_FORMAT* = 'i'
-  G_GUINT32_FORMAT* = 'u'
-  G_HAVE_GINT64* = 1
-  G_GINT64_FORMAT* = "I64i"
-  G_GUINT64_FORMAT* = "I64u"
-  GLIB_SIZEOF_VOID_P* = SizeOf(Pointer)
-  GLIB_SIZEOF_LONG* = SizeOf(int32)
-  GLIB_SIZEOF_SIZE_T* = SizeOf(int32)
-
-type 
-  PGSystemThread* = ptr TGSystemThread
-  TGSystemThread*{.final.} = object 
-    data*: array[0..3, char]
-    dummy_double*: float64
-    dummy_pointer*: pointer
-    dummy_long*: int32
-
-
-const 
-  GLIB_SYSDEF_POLLIN* = 1
-  GLIB_SYSDEF_POLLOUT* = 4
-  GLIB_SYSDEF_POLLPRI* = 2
-  GLIB_SYSDEF_POLLERR* = 8
-  GLIB_SYSDEF_POLLHUP* = 16
-  GLIB_SYSDEF_POLLNVAL* = 32
-
-proc GUINT_TO_POINTER*(i: guint): pointer
-type 
-  PGAsciiType* = ptr TGAsciiType
-  TGAsciiType* = int32
-
-const 
-  G_ASCII_ALNUM* = 1 shl 0
-  G_ASCII_ALPHA* = 1 shl 1
-  G_ASCII_CNTRL* = 1 shl 2
-  G_ASCII_DIGIT* = 1 shl 3
-  G_ASCII_GRAPH* = 1 shl 4
-  G_ASCII_LOWER* = 1 shl 5
-  G_ASCII_PRINT* = 1 shl 6
-  G_ASCII_PUNCT* = 1 shl 7
-  G_ASCII_SPACE* = 1 shl 8
-  G_ASCII_UPPER* = 1 shl 9
-  G_ASCII_XDIGIT* = 1 shl 10
-
-proc g_ascii_tolower*(c: gchar): gchar{.cdecl, dynlib: gliblib, 
-                                        importc: "g_ascii_tolower".}
-proc g_ascii_toupper*(c: gchar): gchar{.cdecl, dynlib: gliblib, 
-                                        importc: "g_ascii_toupper".}
-proc g_ascii_digit_value*(c: gchar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_digit_value".}
-proc g_ascii_xdigit_value*(c: gchar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_xdigit_value".}
-const 
-  G_STR_DELIMITERS* = "``-|> <."
-
-proc g_strdelimit*(str: cstring, delimiters: cstring, new_delimiter: gchar): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strdelimit".}
-proc g_strcanon*(str: cstring, valid_chars: cstring, substitutor: gchar): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strcanon".}
-proc g_strerror*(errnum: gint): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strerror".}
-proc g_strsignal*(signum: gint): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strsignal".}
-proc g_strreverse*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strreverse".}
-proc g_strlcpy*(dest: cstring, src: cstring, dest_size: gsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_strlcpy".}
-proc g_strlcat*(dest: cstring, src: cstring, dest_size: gsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_strlcat".}
-proc g_strstr_len*(haystack: cstring, haystack_len: gssize, needle: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strstr_len".}
-proc g_strrstr*(haystack: cstring, needle: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strrstr".}
-proc g_strrstr_len*(haystack: cstring, haystack_len: gssize, needle: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_strrstr_len".}
-proc g_str_has_suffix*(str: cstring, suffix: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_has_suffix".}
-proc g_str_has_prefix*(str: cstring, prefix: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_has_prefix".}
-proc g_strtod*(nptr: cstring, endptr: PPgchar): gdouble{.cdecl, dynlib: gliblib, 
-    importc: "g_strtod".}
-proc g_ascii_strtod*(nptr: cstring, endptr: PPgchar): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strtod".}
-const 
-  G_ASCII_DTOSTR_BUF_SIZE* = 29 + 10
-
-proc g_ascii_dtostr*(buffer: cstring, buf_len: gint, d: gdouble): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_ascii_dtostr".}
-proc g_ascii_formatd*(buffer: cstring, buf_len: gint, format: cstring, 
-                      d: gdouble): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_formatd".}
-proc g_strchug*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-                                        importc: "g_strchug".}
-proc g_strchomp*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strchomp".}
-proc g_ascii_strcasecmp*(s1: cstring, s2: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strcasecmp".}
-proc g_ascii_strncasecmp*(s1: cstring, s2: cstring, n: gsize): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strncasecmp".}
-proc g_ascii_strdown*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_ascii_strdown".}
-proc g_ascii_strup*(str: cstring, len: gssize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_ascii_strup".}
-proc g_strdup*(str: cstring): cstring{.cdecl, dynlib: gliblib, 
-                                       importc: "g_strdup".}
-proc g_strndup*(str: cstring, n: gsize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strndup".}
-proc g_strnfill*(length: gsize, fill_char: gchar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strnfill".}
-proc g_strcompress*(source: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_strcompress".}
-proc g_strescape*(source: cstring, exceptions: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strescape".}
-proc g_memdup*(mem: gconstpointer, byte_size: guint): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_memdup".}
-proc g_strsplit*(str: cstring, delimiter: cstring, max_tokens: gint): PPgchar{.
-    cdecl, dynlib: gliblib, importc: "g_strsplit".}
-proc g_strjoinv*(separator: cstring, str_array: PPgchar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_strjoinv".}
-proc g_strfreev*(str_array: PPgchar){.cdecl, dynlib: gliblib, 
-                                      importc: "g_strfreev".}
-proc g_strdupv*(str_array: PPgchar): PPgchar{.cdecl, dynlib: gliblib, 
-    importc: "g_strdupv".}
-proc g_stpcpy*(dest: cstring, src: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_stpcpy".}
-proc g_get_user_name*(): cstring{.cdecl, dynlib: gliblib, 
-                                  importc: "g_get_user_name".}
-proc g_get_real_name*(): cstring{.cdecl, dynlib: gliblib, 
-                                  importc: "g_get_real_name".}
-proc g_get_home_dir*(): cstring{.cdecl, dynlib: gliblib, 
-                                 importc: "g_get_home_dir".}
-proc g_get_tmp_dir*(): cstring{.cdecl, dynlib: gliblib, importc: "g_get_tmp_dir".}
-proc g_get_prgname*(): cstring{.cdecl, dynlib: gliblib, importc: "g_get_prgname".}
-proc g_set_prgname*(prgname: cstring){.cdecl, dynlib: gliblib, 
-                                       importc: "g_set_prgname".}
-type 
-  PGDebugKey* = ptr TGDebugKey
-  TGDebugKey*{.final.} = object 
-    key*: cstring
-    value*: guint
-
-
-proc g_parse_debug_string*(str: cstring, keys: PGDebugKey, nkeys: guint): guint{.
-    cdecl, dynlib: gliblib, importc: "g_parse_debug_string".}
-proc g_path_is_absolute*(file_name: cstring): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_path_is_absolute".}
-proc g_path_skip_root*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_skip_root".}
-proc g_basename*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_basename".}
-proc g_dirname*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_dirname".}
-proc g_get_current_dir*(): cstring{.cdecl, dynlib: gliblib, 
-                                    importc: "g_get_current_dir".}
-proc g_path_get_basename*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_basename".}
-proc g_path_get_dirname*(file_name: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_path_get_dirname".}
-proc nullify_pointer*(nullify_location: Pgpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_nullify_pointer".}
-proc g_getenv*(variable: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_getenv".}
-type 
-  TGVoidFunc* = proc (){.cdecl.}
-
-proc g_atexit*(func: TGVoidFunc){.cdecl, dynlib: gliblib, importc: "g_atexit".}
-proc g_find_program_in_path*(program: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_find_program_in_path".}
-proc g_bit_nth_lsf*(mask: gulong, nth_bit: gint): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_nth_lsf".}
-proc g_bit_nth_msf*(mask: gulong, nth_bit: gint): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_nth_msf".}
-proc g_bit_storage*(number: gulong): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_bit_storage".}
-type 
-  PPGTrashStack* = ptr PGTrashStack
-  PGTrashStack* = ptr TGTrashStack
-  TGTrashStack*{.final.} = object 
-    next*: PGTrashStack
-
-
-proc g_trash_stack_push*(stack_p: PPGTrashStack, data_p: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_push".}
-proc g_trash_stack_pop*(stack_p: PPGTrashStack): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_pop".}
-proc g_trash_stack_peek*(stack_p: PPGTrashStack): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_peek".}
-proc g_trash_stack_height*(stack_p: PPGTrashStack): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_trash_stack_height".}
-type 
-  PGHashTable* = pointer
-  TGHRFunc* = proc (key, value, user_data: gpointer): gboolean{.cdecl.}
-
-proc g_hash_table_new*(hash_func: TGHashFunc, key_equal_func: TGEqualFunc): PGHashTable{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_new".}
-proc g_hash_table_new_full*(hash_func: TGHashFunc, key_equal_func: TGEqualFunc, 
-                            key_destroy_func: TGDestroyNotify, 
-                            value_destroy_func: TGDestroyNotify): PGHashTable{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_new_full".}
-proc table_destroy*(hash_table: PGHashTable){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_destroy".}
-proc table_insert*(hash_table: PGHashTable, key: gpointer, 
-                          value: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_insert".}
-proc table_replace*(hash_table: PGHashTable, key: gpointer, 
-                           value: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_replace".}
-proc table_remove*(hash_table: PGHashTable, key: gconstpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_remove".}
-proc table_steal*(hash_table: PGHashTable, key: gconstpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_steal".}
-proc table_lookup*(hash_table: PGHashTable, key: gconstpointer): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_lookup".}
-proc table_lookup_extended*(hash_table: PGHashTable, 
-                                   lookup_key: gconstpointer, 
-                                   orig_key: Pgpointer, value: Pgpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_hash_table_lookup_extended".}
-proc table_foreach*(hash_table: PGHashTable, func: TGHFunc, 
-                           user_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_foreach".}
-proc table_foreach_remove*(hash_table: PGHashTable, func: TGHRFunc, 
-                                  user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_hash_table_foreach_remove".}
-proc table_foreach_steal*(hash_table: PGHashTable, func: TGHRFunc, 
-                                 user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_hash_table_foreach_steal".}
-proc table_size*(hash_table: PGHashTable): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_hash_table_size".}
-proc g_str_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_str_equal".}
-proc g_str_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_str_hash".}
-proc g_int_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_int_equal".}
-proc g_int_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_int_hash".}
-proc g_direct_hash*(v: gconstpointer): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_direct_hash".}
-proc g_direct_equal*(v: gconstpointer, v2: gconstpointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_direct_equal".}
-proc g_quark_try_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_try_string".}
-proc g_quark_from_static_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_from_static_string".}
-proc g_quark_from_string*(str: cstring): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_from_string".}
-proc g_quark_to_string*(quark: TGQuark): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_quark_to_string".}
-const 
-  G_MEM_ALIGN* = GLIB_SIZEOF_VOID_P
-
-type 
-  PGMemVTable* = ptr TGMemVTable
-  TGMemVTable*{.final.} = object 
-    malloc*: proc (n_bytes: gsize): gpointer{.cdecl.}
-    realloc*: proc (mem: gpointer, n_bytes: gsize): gpointer{.cdecl.}
-    free*: proc (mem: gpointer){.cdecl.}
-    calloc*: proc (n_blocks: gsize, n_block_bytes: gsize): gpointer{.cdecl.}
-    try_malloc*: proc (n_bytes: gsize): gpointer{.cdecl.}
-    try_realloc*: proc (mem: gpointer, n_bytes: gsize): gpointer{.cdecl.}
-
-  PGMemChunk* = pointer
-  PGAllocator* = pointer
-
-proc g_malloc*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_malloc".}
-proc g_malloc0*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_malloc0".}
-proc g_realloc*(mem: gpointer, n_bytes: gulong): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_realloc".}
-proc g_free*(mem: gpointer){.cdecl, dynlib: gliblib, importc: "g_free".}
-proc g_try_malloc*(n_bytes: gulong): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_try_malloc".}
-proc g_try_realloc*(mem: gpointer, n_bytes: gulong): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_try_realloc".}
-#proc g_new*(bytes_per_struct, n_structs: gsize): gpointer
-#proc g_new0*(bytes_per_struct, n_structs: gsize): gpointer
-#proc g_renew*(struct_size: gsize, OldMem: gpointer, n_structs: gsize): gpointer
-
-proc set_vtable*(vtable: PGMemVTable){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_set_vtable".}
-proc g_mem_is_system_malloc*(): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_mem_is_system_malloc".}
-proc g_mem_profile*(){.cdecl, dynlib: gliblib, importc: "g_mem_profile".}
-proc g_chunk_new*(chunk: Pointer): Pointer
-proc g_chunk_new0*(chunk: Pointer): Pointer
-
-const 
-  G_ALLOC_ONLY* = 1
-  G_ALLOC_AND_FREE* = 2
-
-proc g_mem_chunk_new*(name: cstring, atom_size: gint, area_size: gulong, 
-                      theType: gint): PGMemChunk{.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_new".}
-proc chunk_destroy*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_destroy".}
-proc chunk_alloc*(mem_chunk: PGMemChunk): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_alloc".}
-proc chunk_alloc0*(mem_chunk: PGMemChunk): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_alloc0".}
-proc chunk_free*(mem_chunk: PGMemChunk, mem: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_mem_chunk_free".}
-proc chunk_clean*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_clean".}
-proc chunk_reset*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_reset".}
-proc chunk_print*(mem_chunk: PGMemChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_mem_chunk_print".}
-proc g_mem_chunk_info*(){.cdecl, dynlib: gliblib, importc: "g_mem_chunk_info".}
-proc g_blow_chunks*(){.cdecl, dynlib: gliblib, importc: "g_blow_chunks".}
-proc g_allocator_new*(name: cstring, n_preallocs: guint): PGAllocator{.cdecl, 
-    dynlib: gliblib, importc: "g_allocator_new".}
-proc free*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_allocator_free".}
-const 
-  G_ALLOCATOR_LIST* = 1
-  G_ALLOCATOR_SLIST* = 2
-  G_ALLOCATOR_NODE* = 3
-
-proc slist_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_slist_push_allocator".}
-proc g_slist_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                               importc: "g_slist_pop_allocator".}
-proc g_slist_alloc*(): PGSList{.cdecl, dynlib: gliblib, importc: "g_slist_alloc".}
-proc free*(list: PGSList){.cdecl, dynlib: gliblib, 
-                                   importc: "g_slist_free".}
-proc free_1*(list: PGSList){.cdecl, dynlib: gliblib, 
-                                     importc: "g_slist_free_1".}
-proc append*(list: PGSList, data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_append".}
-proc prepend*(list: PGSList, data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_prepend".}
-proc insert*(list: PGSList, data: gpointer, position: gint): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert".}
-proc insert_sorted*(list: PGSList, data: gpointer, func: TGCompareFunc): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert_sorted".}
-proc insert_before*(slist: PGSList, sibling: PGSList, data: gpointer): PGSList{.
-    cdecl, dynlib: gliblib, importc: "g_slist_insert_before".}
-proc concat*(list1: PGSList, list2: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_concat".}
-proc remove*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove".}
-proc remove_all*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove_all".}
-proc remove_link*(list: PGSList, link: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_remove_link".}
-proc delete_link*(list: PGSList, link: PGSList): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_delete_link".}
-proc reverse*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_reverse".}
-proc copy*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_copy".}
-proc nth*(list: PGSList, n: guint): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_nth".}
-proc find*(list: PGSList, data: gconstpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_find".}
-proc find_custom*(list: PGSList, data: gconstpointer, 
-                          func: TGCompareFunc): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_find_custom".}
-proc position*(list: PGSList, llink: PGSList): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_position".}
-proc index*(list: PGSList, data: gconstpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_index".}
-proc last*(list: PGSList): PGSList{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_last".}
-proc length*(list: PGSList): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_slist_length".}
-proc foreach*(list: PGSList, func: TGFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_slist_foreach".}
-proc sort*(list: PGSList, compare_func: TGCompareFunc): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_sort".}
-proc sort*(list: PGSList, compare_func: TGCompareDataFunc, 
-                             user_data: gpointer): PGSList{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_sort_with_data".}
-proc nth_data*(list: PGSList, n: guint): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_slist_nth_data".}
-proc next*(slist: PGSList): PGSList
-proc list_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_list_push_allocator".}
-proc g_list_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                              importc: "g_list_pop_allocator".}
-proc g_list_alloc*(): PGList{.cdecl, dynlib: gliblib, importc: "g_list_alloc".}
-proc free*(list: PGList){.cdecl, dynlib: gliblib, importc: "g_list_free".}
-proc free_1*(list: PGList){.cdecl, dynlib: gliblib, 
-                                   importc: "g_list_free_1".}
-proc append*(list: PGList, data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_append".}
-proc prepend*(list: PGList, data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_prepend".}
-proc insert*(list: PGList, data: gpointer, position: gint): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert".}
-proc insert_sorted*(list: PGList, data: gpointer, func: TGCompareFunc): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert_sorted".}
-proc insert_before*(list: PGList, sibling: PGList, data: gpointer): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_insert_before".}
-proc concat*(list1: PGList, list2: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_concat".}
-proc remove*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove".}
-proc remove_all*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove_all".}
-proc remove_link*(list: PGList, llink: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_remove_link".}
-proc delete_link*(list: PGList, link: PGList): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_delete_link".}
-proc reverse*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_reverse".}
-proc copy*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_copy".}
-proc nth*(list: PGList, n: guint): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth".}
-proc nth_prev*(list: PGList, n: guint): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth_prev".}
-proc find*(list: PGList, data: gconstpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_find".}
-proc find_custom*(list: PGList, data: gconstpointer, func: TGCompareFunc): PGList{.
-    cdecl, dynlib: gliblib, importc: "g_list_find_custom".}
-proc position*(list: PGList, llink: PGList): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_list_position".}
-proc index*(list: PGList, data: gconstpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_list_index".}
-proc last*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_last".}
-proc first*(list: PGList): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_list_first".}
-proc length*(list: PGList): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_list_length".}
-proc foreach*(list: PGList, func: TGFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_list_foreach".}
-proc sort*(list: PGList, compare_func: TGCompareFunc): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_sort".}
-proc sort*(list: PGList, compare_func: TGCompareDataFunc, 
-                            user_data: gpointer): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_list_sort_with_data".}
-proc nth_data*(list: PGList, n: guint): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_list_nth_data".}
-proc previous*(list: PGList): PGList
-proc next*(list: PGList): PGList
-type 
-  PGCache* = pointer
-  TGCacheNewFunc* = proc (key: gpointer): gpointer{.cdecl.}
-  TGCacheDupFunc* = proc (value: gpointer): gpointer{.cdecl.}
-  TGCacheDestroyFunc* = proc (value: gpointer){.cdecl.}
-
-proc g_cache_new*(value_new_func: TGCacheNewFunc, 
-                  value_destroy_func: TGCacheDestroyFunc, 
-                  key_dup_func: TGCacheDupFunc, 
-                  key_destroy_func: TGCacheDestroyFunc, 
-                  hash_key_func: TGHashFunc, hash_value_func: TGHashFunc, 
-                  key_equal_func: TGEqualFunc): PGCache{.cdecl, dynlib: gliblib, 
-    importc: "g_cache_new".}
-proc destroy*(cache: PGCache){.cdecl, dynlib: gliblib, 
-                                       importc: "g_cache_destroy".}
-proc insert*(cache: PGCache, key: gpointer): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_cache_insert".}
-proc remove*(cache: PGCache, value: gconstpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_cache_remove".}
-proc key_foreach*(cache: PGCache, func: TGHFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_cache_key_foreach".}
-proc value_foreach*(cache: PGCache, func: TGHFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_cache_value_foreach".}
-type 
-  PGCompletionFunc* = ptr TGCompletionFunc
-  TGCompletionFunc* = gchar
-  TGCompletionStrncmpFunc* = proc (s1: cstring, s2: cstring, n: gsize): gint{.
-      cdecl.}
-  PGCompletion* = ptr TGCompletion
-  TGCompletion*{.final.} = object 
-    items*: PGList
-    func*: TGCompletionFunc
-    prefix*: cstring
-    cache*: PGList
-    strncmp_func*: TGCompletionStrncmpFunc
-
-
-proc g_completion_new*(func: TGCompletionFunc): PGCompletion{.cdecl, 
-    dynlib: gliblib, importc: "g_completion_new".}
-proc add_items*(cmp: PGCompletion, items: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_add_items".}
-proc remove_items*(cmp: PGCompletion, items: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_remove_items".}
-proc clear_items*(cmp: PGCompletion){.cdecl, dynlib: gliblib, 
-    importc: "g_completion_clear_items".}
-proc complete*(cmp: PGCompletion, prefix: cstring, 
-                            new_prefix: PPgchar): PGList{.cdecl, 
-    dynlib: gliblib, importc: "g_completion_complete".}
-proc set_compare*(cmp: PGCompletion, 
-                               strncmp_func: TGCompletionStrncmpFunc){.cdecl, 
-    dynlib: gliblib, importc: "g_completion_set_compare".}
-proc free*(cmp: PGCompletion){.cdecl, dynlib: gliblib, 
-    importc: "g_completion_free".}
-type 
-  PGConvertError* = ptr TGConvertError
-  TGConvertError* = enum 
-    G_CONVERT_ERROR_NO_CONVERSION, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, 
-    G_CONVERT_ERROR_FAILED, G_CONVERT_ERROR_PARTIAL_INPUT, 
-    G_CONVERT_ERROR_BAD_URI, G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
-
-proc G_CONVERT_ERROR*(): TGQuark
-proc g_convert_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                        importc: "g_convert_error_quark".}
-type 
-  PGIConv* = ptr TGIConv
-  TGIConv* = pointer
-
-proc g_iconv_open*(to_codeset: cstring, from_codeset: cstring): TGIConv{.cdecl, 
-    dynlib: gliblib, importc: "g_iconv_open".}
-proc g_iconv*(`converter`: TGIConv, inbuf: PPgchar, inbytes_left: Pgsize, 
-              outbuf: PPgchar, outbytes_left: Pgsize): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_iconv".}
-proc g_iconv_close*(`converter`: TGIConv): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_iconv_close".}
-proc g_convert*(str: cstring, len: gssize, to_codeset: cstring, 
-                from_codeset: cstring, bytes_read: Pgsize, 
-                bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_convert".}
-proc g_convert*(str: cstring, len: gssize, `converter`: TGIConv, 
-                           bytes_read: Pgsize, bytes_written: Pgsize, 
-                           error: pointer): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_convert_with_iconv".}
-proc g_convert*(str: cstring, len: gssize, to_codeset: cstring, 
-                              from_codeset: cstring, fallback: cstring, 
-                              bytes_read: Pgsize, bytes_written: Pgsize, 
-                              error: pointer): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_convert_with_fallback".}
-proc g_locale_to_utf8*(opsysstring: cstring, len: gssize, bytes_read: Pgsize, 
-                       bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_locale_to_utf8".}
-proc g_locale_from_utf8*(utf8string: cstring, len: gssize, bytes_read: Pgsize, 
-                         bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_locale_from_utf8".}
-proc g_filename_to_utf8*(opsysstring: cstring, len: gssize, bytes_read: Pgsize, 
-                         bytes_written: Pgsize, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_filename_to_utf8".}
-proc g_filename_from_utf8*(utf8string: cstring, len: gssize, bytes_read: Pgsize, 
-                           bytes_written: Pgsize, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_from_utf8".}
-proc g_filename_from_uri*(uri: cstring, hostname: PPchar, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_from_uri".}
-proc g_filename_to_uri*(filename: cstring, hostname: cstring, error: pointer): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_filename_to_uri".}
-type 
-  TGDataForeachFunc* = proc (key_id: TGQuark, data: gpointer, 
-                             user_data: gpointer){.cdecl.}
-
-proc g_datalist_init*(datalist: PPGData){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_init".}
-proc g_datalist_clear*(datalist: PPGData){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_clear".}
-proc g_datalist_id_get_data*(datalist: PPGData, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_get_data".}
-proc g_datalist_id_set_data_full*(datalist: PPGData, key_id: TGQuark, 
-                                  data: gpointer, destroy_func: TGDestroyNotify){.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_set_data_full".}
-proc g_datalist_id_remove_no_notify*(datalist: PPGData, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_datalist_id_remove_no_notify".}
-proc g_datalist_foreach*(datalist: PPGData, func: TGDataForeachFunc, 
-                         user_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_datalist_foreach".}
-proc g_datalist_id_set_data*(datalist: PPGData, key_id: TGQuark, data: gpointer)
-proc g_datalist_id_remove_data*(datalist: PPGData, key_id: TGQuark)
-proc g_datalist_get_data*(datalist: PPGData, key_str: cstring): PPGData
-proc g_datalist_set_data_full*(datalist: PPGData, key_str: cstring, 
-                               data: gpointer, destroy_func: TGDestroyNotify)
-proc g_datalist_set_data*(datalist: PPGData, key_str: cstring, data: gpointer)
-proc g_datalist_remove_no_notify*(datalist: PPGData, key_str: cstring)
-proc g_datalist_remove_data*(datalist: PPGData, key_str: cstring)
-proc g_dataset_id_get_data*(dataset_location: gconstpointer, key_id: TGQuark): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_dataset_id_get_data".}
-proc g_dataset_id_set_data_full*(dataset_location: gconstpointer, 
-                                 key_id: TGQuark, data: gpointer, 
-                                 destroy_func: TGDestroyNotify){.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_id_set_data_full".}
-proc g_dataset_id_remove_no_notify*(dataset_location: gconstpointer, 
-                                    key_id: TGQuark): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_id_remove_no_notify".}
-proc g_dataset_foreach*(dataset_location: gconstpointer, 
-                        func: TGDataForeachFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_dataset_foreach".}
-proc g_dataset_id_set_data*(location: gconstpointer, key_id: TGQuark, 
-                            data: gpointer)
-proc g_dataset_id_remove_data*(location: gconstpointer, key_id: TGQuark)
-proc g_dataset_get_data*(location: gconstpointer, key_str: cstring): gpointer
-proc g_dataset_set_data_full*(location: gconstpointer, key_str: cstring, 
-                              data: gpointer, destroy_func: TGDestroyNotify)
-proc g_dataset_remove_no_notify*(location: gconstpointer, key_str: cstring)
-proc g_dataset_set_data*(location: gconstpointer, key_str: cstring, 
-                         data: gpointer)
-proc g_dataset_remove_data*(location: gconstpointer, key_str: cstring)
-type 
-  PGTime* = ptr TGTime
-  TGTime* = gint32
-  PGDateYear* = ptr TGDateYear
-  TGDateYear* = guint16
-  PGDateDay* = ptr TGDateDay
-  TGDateDay* = guint8
-  Ptm* = ptr Ttm
-  Ttm*{.final.} = object 
-    tm_sec*: gint
-    tm_min*: gint
-    tm_hour*: gint
-    tm_mday*: gint
-    tm_mon*: gint
-    tm_year*: gint
-    tm_wday*: gint
-    tm_yday*: gint
-    tm_isdst*: gint
-    tm_gmtoff*: glong
-    tm_zone*: cstring
-
-
-type 
-  PGDateDMY* = ptr TGDateDMY
-  TGDateDMY* = int
-
-const 
-  G_DATE_DAY* = 0
-  G_DATE_MONTH* = 1
-  G_DATE_YEAR* = 2
-
-type 
-  PGDateWeekday* = ptr TGDateWeekday
-  TGDateWeekday* = int
-
-const 
-  G_DATE_BAD_WEEKDAY* = 0
-  G_DATE_MONDAY* = 1
-  G_DATE_TUESDAY* = 2
-  G_DATE_WEDNESDAY* = 3
-  G_DATE_THURSDAY* = 4
-  G_DATE_FRIDAY* = 5
-  G_DATE_SATURDAY* = 6
-  G_DATE_SUNDAY* = 7
-
-type 
-  PGDateMonth* = ptr TGDateMonth
-  TGDateMonth* = int
-
-const 
-  G_DATE_BAD_MONTH* = 0
-  G_DATE_JANUARY* = 1
-  G_DATE_FEBRUARY* = 2
-  G_DATE_MARCH* = 3
-  G_DATE_APRIL* = 4
-  G_DATE_MAY* = 5
-  G_DATE_JUNE* = 6
-  G_DATE_JULY* = 7
-  G_DATE_AUGUST* = 8
-  G_DATE_SEPTEMBER* = 9
-  G_DATE_OCTOBER* = 10
-  G_DATE_NOVEMBER* = 11
-  G_DATE_DECEMBER* = 12
-
-const 
-  G_DATE_BAD_JULIAN* = 0
-  G_DATE_BAD_DAY* = 0
-  G_DATE_BAD_YEAR* = 0
-
-type 
-  PGDate* = ptr TGDate
-  TGDate*{.final.} = object 
-    flag0*: int32
-    flag1*: int32
-
-
-proc g_date_new*(): PGDate{.cdecl, dynlib: gliblib, importc: "g_date_new".}
-proc g_date_new_dmy*(day: TGDateDay, month: TGDateMonth, year: TGDateYear): PGDate{.
-    cdecl, dynlib: gliblib, importc: "g_date_new_dmy".}
-proc g_date_new_julian*(julian_day: guint32): PGDate{.cdecl, dynlib: gliblib, 
-    importc: "g_date_new_julian".}
-proc free*(date: PGDate){.cdecl, dynlib: gliblib, importc: "g_date_free".}
-proc valid*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid".}
-proc g_date_valid_month*(month: TGDateMonth): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid_month".}
-proc g_date_valid_year*(year: TGDateYear): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_valid_year".}
-proc g_date_valid_weekday*(weekday: TGDateWeekday): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_date_valid_weekday".}
-proc g_date_valid_julian*(julian_date: guint32): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_date_valid_julian".}
-proc get_weekday*(date: PGDate): TGDateWeekday{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_weekday".}
-proc get_month*(date: PGDate): TGDateMonth{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_month".}
-proc get_year*(date: PGDate): TGDateYear{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_year".}
-proc get_day*(date: PGDate): TGDateDay{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_day".}
-proc get_julian*(date: PGDate): guint32{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_julian".}
-proc get_day_of_year*(date: PGDate): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_date_get_day_of_year".}
-proc get_monday_week_of_year*(date: PGDate): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_monday_week_of_year".}
-proc get_sunday_week_of_year*(date: PGDate): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_sunday_week_of_year".}
-proc clear*(date: PGDate, n_dates: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_clear".}
-proc set_parse*(date: PGDate, str: cstring){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_parse".}
-proc set_time*(date: PGDate, time: TGTime){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_time".}
-proc set_month*(date: PGDate, month: TGDateMonth){.cdecl, 
-    dynlib: gliblib, importc: "g_date_set_month".}
-proc set_day*(date: PGDate, day: TGDateDay){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_day".}
-proc set_year*(date: PGDate, year: TGDateYear){.cdecl, dynlib: gliblib, 
-    importc: "g_date_set_year".}
-proc set_dmy*(date: PGDate, day: TGDateDay, month: TGDateMonth, 
-                     y: TGDateYear){.cdecl, dynlib: gliblib, 
-                                     importc: "g_date_set_dmy".}
-proc set_julian*(date: PGDate, julian_date: guint32){.cdecl, 
-    dynlib: gliblib, importc: "g_date_set_julian".}
-proc is_first_of_month*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_first_of_month".}
-proc is_last_of_month*(date: PGDate): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_last_of_month".}
-proc add_days*(date: PGDate, n_days: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_days".}
-proc subtract_days*(date: PGDate, n_days: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_subtract_days".}
-proc add_months*(date: PGDate, n_months: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_months".}
-proc subtract_months*(date: PGDate, n_months: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_date_subtract_months".}
-proc add_years*(date: PGDate, n_years: guint){.cdecl, dynlib: gliblib, 
-    importc: "g_date_add_years".}
-proc subtract_years*(date: PGDate, n_years: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_date_subtract_years".}
-proc g_date_is_leap_year*(year: TGDateYear): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_date_is_leap_year".}
-proc g_date_get_days_in_month*(month: TGDateMonth, year: TGDateYear): guint8{.
-    cdecl, dynlib: gliblib, importc: "g_date_get_days_in_month".}
-proc g_date_get_monday_weeks_in_year*(year: TGDateYear): guint8{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_monday_weeks_in_year".}
-proc g_date_get_sunday_weeks_in_year*(year: TGDateYear): guint8{.cdecl, 
-    dynlib: gliblib, importc: "g_date_get_sunday_weeks_in_year".}
-proc days_between*(date1: PGDate, date2: PGDate): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_date_days_between".}
-proc compare*(lhs: PGDate, rhs: PGDate): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_date_compare".}
-proc to_struct_tm*(date: PGDate, tm: Ptm){.cdecl, dynlib: gliblib, 
-    importc: "g_date_to_struct_tm".}
-proc clamp*(date: PGDate, min_date: PGDate, max_date: PGDate){.cdecl, 
-    dynlib: gliblib, importc: "g_date_clamp".}
-proc order*(date1: PGDate, date2: PGDate){.cdecl, dynlib: gliblib, 
-    importc: "g_date_order".}
-proc g_date_strftime*(s: cstring, slen: gsize, format: cstring, date: PGDate): gsize{.
-    cdecl, dynlib: gliblib, importc: "g_date_strftime".}
-type 
-  PGDir* = pointer
-
-proc g_dir_open*(path: cstring, flags: guint, error: pointer): PGDir{.cdecl, 
-    dynlib: gliblib, importc: "g_dir_open".}
-proc read_name*(dir: PGDir): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_dir_read_name".}
-proc rewind*(dir: PGDir){.cdecl, dynlib: gliblib, importc: "g_dir_rewind".}
-proc close*(dir: PGDir){.cdecl, dynlib: gliblib, importc: "g_dir_close".}
-type 
-  PGFileError* = ptr TGFileError
-  TGFileError* = gint
-
-type 
-  PGFileTest* = ptr TGFileTest
-  TGFileTest* = int
-
-const 
-  G_FILE_TEST_IS_REGULAR* = 1 shl 0
-  G_FILE_TEST_IS_SYMLINK* = 1 shl 1
-  G_FILE_TEST_IS_DIR* = 1 shl 2
-  G_FILE_TEST_IS_EXECUTABLE* = 1 shl 3
-  G_FILE_TEST_EXISTS* = 1 shl 4
-
-const 
-  G_FILE_ERROR_EXIST* = 0
-  G_FILE_ERROR_ISDIR* = 1
-  G_FILE_ERROR_ACCES* = 2
-  G_FILE_ERROR_NAMETOOLONG* = 3
-  G_FILE_ERROR_NOENT* = 4
-  G_FILE_ERROR_NOTDIR* = 5
-  G_FILE_ERROR_NXIO* = 6
-  G_FILE_ERROR_NODEV* = 7
-  G_FILE_ERROR_ROFS* = 8
-  G_FILE_ERROR_TXTBSY* = 9
-  G_FILE_ERROR_FAULT* = 10
-  G_FILE_ERROR_LOOP* = 11
-  G_FILE_ERROR_NOSPC* = 12
-  G_FILE_ERROR_NOMEM* = 13
-  G_FILE_ERROR_MFILE* = 14
-  G_FILE_ERROR_NFILE* = 15
-  G_FILE_ERROR_BADF* = 16
-  G_FILE_ERROR_INVAL* = 17
-  G_FILE_ERROR_PIPE* = 18
-  G_FILE_ERROR_AGAIN* = 19
-  G_FILE_ERROR_INTR* = 20
-  G_FILE_ERROR_IO* = 21
-  G_FILE_ERROR_PERM* = 22
-  G_FILE_ERROR_FAILED* = 23
-
-proc G_FILE_ERROR*(): TGQuark
-proc g_file_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                     importc: "g_file_error_quark".}
-proc g_file_error_from_errno*(err_no: gint): TGFileError{.cdecl, 
-    dynlib: gliblib, importc: "g_file_error_from_errno".}
-proc g_file_test*(filename: cstring, test: TGFileTest): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_file_test".}
-proc g_file_get_contents*(filename: cstring, contents: PPgchar, length: Pgsize, 
-                          error: pointer): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_file_get_contents".}
-proc g_mkstemp*(tmpl: cstring): int32{.cdecl, dynlib: gliblib, 
-                                       importc: "g_mkstemp".}
-proc g_file_open_tmp*(tmpl: cstring, name_used: PPchar, error: pointer): int32{.
-    cdecl, dynlib: gliblib, importc: "g_file_open_tmp".}
-type 
-  PGHook* = ptr TGHook
-  TGHook*{.final.} = object 
-    data*: gpointer
-    next*: PGHook
-    prev*: PGHook
-    ref_count*: guint
-    hook_id*: gulong
-    flags*: guint
-    func*: gpointer
-    destroy*: TGDestroyNotify
-
-  PGHookList* = ptr TGHookList
-  TGHookCompareFunc* = proc (new_hook: PGHook, sibling: PGHook): gint{.cdecl.}
-  TGHookFindFunc* = proc (hook: PGHook, data: gpointer): gboolean{.cdecl.}
-  TGHookMarshaller* = proc (hook: PGHook, marshal_data: gpointer){.cdecl.}
-  TGHookCheckMarshaller* = proc (hook: PGHook, marshal_data: gpointer): gboolean{.
-      cdecl.}
-  TGHookFunc* = proc (data: gpointer){.cdecl.}
-  TGHookCheckFunc* = proc (data: gpointer): gboolean{.cdecl.}
-  TGHookFinalizeFunc* = proc (hook_list: PGHookList, hook: PGHook){.cdecl.}
-  TGHookList*{.final.} = object 
-    seq_id*: gulong
-    flag0*: int32
-    hooks*: PGHook
-    hook_memchunk*: PGMemChunk
-    finalize_hook*: TGHookFinalizeFunc
-    dummy*: array[0..1, gpointer]
-
-
-type 
-  PGHookFlagMask* = ptr TGHookFlagMask
-  TGHookFlagMask* = int
-
-const 
-  G_HOOK_FLAG_ACTIVE* = 1'i32 shl 0'i32
-  G_HOOK_FLAG_IN_CALL* = 1'i32 shl 1'i32
-  G_HOOK_FLAG_MASK* = 0x0000000F'i32
-
-const 
-  G_HOOK_FLAG_USER_SHIFT* = 4'i32
-  bm_TGHookList_hook_size* = 0x0000FFFF'i32
-  bp_TGHookList_hook_size* = 0'i32
-  bm_TGHookList_is_setup* = 0x00010000'i32
-  bp_TGHookList_is_setup* = 16'i32
-
-proc TGHookList_hook_size*(a: PGHookList): guint
-proc TGHookList_set_hook_size*(a: PGHookList, `hook_size`: guint)
-proc TGHookList_is_setup*(a: PGHookList): guint
-proc TGHookList_set_is_setup*(a: PGHookList, `is_setup`: guint)
-proc G_HOOK*(hook: pointer): PGHook
-proc FLAGS*(hook: PGHook): guint
-proc ACTIVE*(hook: PGHook): bool
-proc IN_CALL*(hook: PGHook): bool
-proc IS_VALID*(hook: PGHook): bool
-proc IS_UNLINKED*(hook: PGHook): bool
-proc list_init*(hook_list: PGHookList, hook_size: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_list_init".}
-proc list_clear*(hook_list: PGHookList){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_list_clear".}
-proc alloc*(hook_list: PGHookList): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_alloc".}
-proc free*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_free".}
-proc reference*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_ref".}
-proc unref*(hook_list: PGHookList, hook: PGHook){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_unref".}
-proc destroy*(hook_list: PGHookList, hook_id: gulong): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_destroy".}
-proc destroy_link*(hook_list: PGHookList, hook: PGHook){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_destroy_link".}
-proc prepend*(hook_list: PGHookList, hook: PGHook){.cdecl, 
-    dynlib: gliblib, importc: "g_hook_prepend".}
-proc insert_before*(hook_list: PGHookList, sibling: PGHook, hook: PGHook){.
-    cdecl, dynlib: gliblib, importc: "g_hook_insert_before".}
-proc insert_sorted*(hook_list: PGHookList, hook: PGHook, 
-                           func: TGHookCompareFunc){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_insert_sorted".}
-proc get*(hook_list: PGHookList, hook_id: gulong): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_get".}
-proc find*(hook_list: PGHookList, need_valids: gboolean, 
-                  func: TGHookFindFunc, data: gpointer): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_find".}
-proc find_data*(hook_list: PGHookList, need_valids: gboolean, 
-                       data: gpointer): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_find_data".}
-proc find_func*(hook_list: PGHookList, need_valids: gboolean, 
-                       func: gpointer): PGHook{.cdecl, dynlib: gliblib, 
-    importc: "g_hook_find_func".}
-proc find_func_data*(hook_list: PGHookList, need_valids: gboolean, 
-                            func: gpointer, data: gpointer): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_find_func_data".}
-proc first_valid*(hook_list: PGHookList, may_be_in_call: gboolean): PGHook{.
-    cdecl, dynlib: gliblib, importc: "g_hook_first_valid".}
-proc next_valid*(hook_list: PGHookList, hook: PGHook, 
-                        may_be_in_call: gboolean): PGHook{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_next_valid".}
-proc compare_ids*(new_hook: PGHook, sibling: PGHook): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_hook_compare_ids".}
-proc append*(hook_list: PGHookList, hook: PGHook)
-proc list_invoke_check*(hook_list: PGHookList, may_recurse: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_hook_list_invoke_check".}
-proc list_marshal*(hook_list: PGHookList, may_recurse: gboolean, 
-                          marshaller: TGHookMarshaller, marshal_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_hook_list_marshal".}
-proc list_marshal_check*(hook_list: PGHookList, may_recurse: gboolean, 
-                                marshaller: TGHookCheckMarshaller, 
-                                marshal_data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_hook_list_marshal_check".}
-type 
-  PGThreadPool* = ptr TGThreadPool
-  TGThreadPool*{.final.} = object 
-    func*: TGFunc
-    user_data*: gpointer
-    exclusive*: gboolean
-
-
-proc g_thread_pool_new*(func: TGFunc, user_data: gpointer, max_threads: gint, 
-                        exclusive: gboolean, error: pointer): PGThreadPool{.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_new".}
-proc pool_push*(pool: PGThreadPool, data: gpointer, error: pointer){.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_push".}
-proc pool_set_max_threads*(pool: PGThreadPool, max_threads: gint, 
-                                    error: pointer){.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_set_max_threads".}
-proc pool_get_max_threads*(pool: PGThreadPool): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_get_max_threads".}
-proc pool_get_num_threads*(pool: PGThreadPool): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_get_num_threads".}
-proc pool_unprocessed*(pool: PGThreadPool): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_unprocessed".}
-proc pool_free*(pool: PGThreadPool, immediate: gboolean, wait: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_thread_pool_free".}
-proc g_thread_pool_set_max_unused_threads*(max_threads: gint){.cdecl, 
-    dynlib: gliblib, importc: "g_thread_pool_set_max_unused_threads".}
-proc g_thread_pool_get_max_unused_threads*(): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_get_max_unused_threads".}
-proc g_thread_pool_get_num_unused_threads*(): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_get_num_unused_threads".}
-proc g_thread_pool_stop_unused_threads*(){.cdecl, dynlib: gliblib, 
-    importc: "g_thread_pool_stop_unused_threads".}
-type 
-  PGTimer* = pointer
-
-const 
-  G_USEC_PER_SEC* = 1000000
-
-proc g_timer_new*(): PGTimer{.cdecl, dynlib: gliblib, importc: "g_timer_new".}
-proc destroy*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                       importc: "g_timer_destroy".}
-proc start*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                     importc: "g_timer_start".}
-proc stop*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                    importc: "g_timer_stop".}
-proc reset*(timer: PGTimer){.cdecl, dynlib: gliblib, 
-                                     importc: "g_timer_reset".}
-proc elapsed*(timer: PGTimer, microseconds: Pgulong): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_timer_elapsed".}
-proc g_usleep*(microseconds: gulong){.cdecl, dynlib: gliblib, 
-                                      importc: "g_usleep".}
-proc val_add*(time: PGTimeVal, microseconds: glong){.cdecl, 
-    dynlib: gliblib, importc: "g_time_val_add".}
-type 
-  Pgunichar* = ptr gunichar
-  gunichar* = guint32
-  Pgunichar2* = ptr gunichar2
-  gunichar2* = guint16
-  PGUnicodeType* = ptr TGUnicodeType
-  TGUnicodeType* = enum 
-    G_UNICODE_CONTROL, G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED, 
-    G_UNICODE_PRIVATE_USE, G_UNICODE_SURROGATE, G_UNICODE_LOWERCASE_LETTER, 
-    G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER, 
-    G_UNICODE_TITLECASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
-    G_UNICODE_COMBINING_MARK, G_UNICODE_ENCLOSING_MARK, 
-    G_UNICODE_NON_SPACING_MARK, G_UNICODE_DECIMAL_NUMBER, 
-    G_UNICODE_LETTER_NUMBER, G_UNICODE_OTHER_NUMBER, 
-    G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_DASH_PUNCTUATION, 
-    G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_FINAL_PUNCTUATION, 
-    G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
-    G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL, 
-    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_SYMBOL, 
-    G_UNICODE_LINE_SEPARATOR, G_UNICODE_PARAGRAPH_SEPARATOR, 
-    G_UNICODE_SPACE_SEPARATOR
-  PGUnicodeBreakType* = ptr TGUnicodeBreakType
-  TGUnicodeBreakType* = enum 
-    G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, 
-    G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_COMBINING_MARK, 
-    G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ZERO_WIDTH_SPACE, 
-    G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_NON_BREAKING_GLUE, 
-    G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_AFTER, 
-    G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_BEFORE_AND_AFTER, 
-    G_UNICODE_BREAK_HYPHEN, G_UNICODE_BREAK_NON_STARTER, 
-    G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-    G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_EXCLAMATION, 
-    G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NUMERIC, 
-    G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, 
-    G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
-    G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_AMBIGUOUS, 
-    G_UNICODE_BREAK_UNKNOWN
-
-proc g_get_charset*(charset: PPchar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_get_charset".}
-proc g_unichar_isalnum*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isalnum".}
-proc g_unichar_isalpha*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isalpha".}
-proc g_unichar_iscntrl*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_iscntrl".}
-proc g_unichar_isdigit*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isdigit".}
-proc g_unichar_isgraph*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isgraph".}
-proc g_unichar_islower*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_islower".}
-proc g_unichar_isprint*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isprint".}
-proc g_unichar_ispunct*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_ispunct".}
-proc g_unichar_isspace*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isspace".}
-proc g_unichar_isupper*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isupper".}
-proc g_unichar_isxdigit*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isxdigit".}
-proc g_unichar_istitle*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_istitle".}
-proc g_unichar_isdefined*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_isdefined".}
-proc g_unichar_iswide*(c: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_iswide".}
-proc g_unichar_toupper*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_toupper".}
-proc g_unichar_tolower*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_tolower".}
-proc g_unichar_totitle*(c: gunichar): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_totitle".}
-proc g_unichar_digit_value*(c: gunichar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_digit_value".}
-proc g_unichar_xdigit_value*(c: gunichar): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_xdigit_value".}
-proc g_unichar_type*(c: gunichar): TGUnicodeType{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_type".}
-proc g_unichar_break_type*(c: gunichar): TGUnicodeBreakType{.cdecl, 
-    dynlib: gliblib, importc: "g_unichar_break_type".}
-proc unicode_canonical_ordering*(str: Pgunichar, len: gsize){.cdecl, 
-    dynlib: gliblib, importc: "g_unicode_canonical_ordering".}
-proc g_unicode_canonical_decomposition*(ch: gunichar, result_len: Pgsize): Pgunichar{.
-    cdecl, dynlib: gliblib, importc: "g_unicode_canonical_decomposition".}
-proc utf8_next_char*(p: pguchar): pguchar
-proc g_utf8_get_char*(p: cstring): gunichar{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_get_char".}
-proc g_utf8_get_char_validated*(p: cstring, max_len: gssize): gunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_get_char_validated".}
-proc g_utf8_offset_to_pointer*(str: cstring, offset: glong): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_offset_to_pointer".}
-proc g_utf8_pointer_to_offset*(str: cstring, pos: cstring): glong{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_pointer_to_offset".}
-proc g_utf8_prev_char*(p: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_prev_char".}
-proc g_utf8_find_next_char*(p: cstring, `end`: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_find_next_char".}
-proc g_utf8_find_prev_char*(str: cstring, p: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_find_prev_char".}
-proc g_utf8_strlen*(p: cstring, max: gssize): glong{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_strlen".}
-proc g_utf8_strncpy*(dest: cstring, src: cstring, n: gsize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strncpy".}
-proc g_utf8_strchr*(p: cstring, len: gssize, c: gunichar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strchr".}
-proc g_utf8_strrchr*(p: cstring, len: gssize, c: gunichar): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strrchr".}
-proc g_utf8_to_utf16*(str: cstring, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar2{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_to_utf16".}
-proc g_utf8_to_ucs4*(str: cstring, len: glong, items_read: Pglong, 
-                     items_written: Pglong, error: pointer): Pgunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_to_ucs4".}
-proc g_utf8_to_ucs4_fast*(str: cstring, len: glong, items_written: Pglong): Pgunichar{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_to_ucs4_fast".}
-proc utf16_to_ucs4*(str: Pgunichar2, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar{.cdecl, 
-    dynlib: gliblib, importc: "g_utf16_to_ucs4".}
-proc utf16_to_utf8*(str: Pgunichar2, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf16_to_utf8".}
-proc ucs4_to_utf16*(str: Pgunichar, len: glong, items_read: Pglong, 
-                      items_written: Pglong, error: pointer): Pgunichar2{.cdecl, 
-    dynlib: gliblib, importc: "g_ucs4_to_utf16".}
-proc ucs4_to_utf8*(str: Pgunichar, len: glong, items_read: Pglong, 
-                     items_written: Pglong, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_ucs4_to_utf8".}
-proc g_unichar_to_utf8*(c: gunichar, outbuf: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_unichar_to_utf8".}
-proc g_utf8_validate*(str: cstring, max_len: gssize, `end`: PPgchar): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_validate".}
-proc g_unichar_validate*(ch: gunichar): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_unichar_validate".}
-proc g_utf8_strup*(str: cstring, len: gssize): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_utf8_strup".}
-proc g_utf8_strdown*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_strdown".}
-proc g_utf8_casefold*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_casefold".}
-type 
-  PGNormalizeMode* = ptr TGNormalizeMode
-  TGNormalizeMode* = gint
-
-const 
-  G_NORMALIZE_DEFAULT* = 0
-  G_NORMALIZE_NFD* = G_NORMALIZE_DEFAULT
-  G_NORMALIZE_DEFAULT_COMPOSE* = 1
-  G_NORMALIZE_NFC* = G_NORMALIZE_DEFAULT_COMPOSE
-  G_NORMALIZE_ALL* = 2
-  G_NORMALIZE_NFKD* = G_NORMALIZE_ALL
-  G_NORMALIZE_ALL_COMPOSE* = 3
-  G_NORMALIZE_NFKC* = G_NORMALIZE_ALL_COMPOSE
-
-proc g_utf8_normalize*(str: cstring, len: gssize, mode: TGNormalizeMode): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_utf8_normalize".}
-proc g_utf8_collate*(str1: cstring, str2: cstring): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_collate".}
-proc g_utf8_collate_key*(str: cstring, len: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_utf8_collate_key".}
-type 
-  PGString* = ptr TGString
-  TGString*{.final.} = object 
-    str*: cstring
-    len*: gsize
-    allocated_len*: gsize
-
-  PGStringChunk* = pointer
-
-proc g_string_chunk_new*(size: gsize): PGStringChunk{.cdecl, dynlib: gliblib, 
-    importc: "g_string_chunk_new".}
-proc chunk_free*(chunk: PGStringChunk){.cdecl, dynlib: gliblib, 
-    importc: "g_string_chunk_free".}
-proc chunk_insert*(chunk: PGStringChunk, str: cstring): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_string_chunk_insert".}
-proc chunk_insert_const*(chunk: PGStringChunk, str: cstring): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_string_chunk_insert_const".}
-proc g_string_new*(init: cstring): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_new".}
-proc g_string_new_len*(init: cstring, len: gssize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_new_len".}
-proc g_string_sized_new*(dfl_size: gsize): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_sized_new".}
-proc free*(str: PGString, free_segment: gboolean): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_string_free".}
-proc equal*(v: PGString, v2: PGString): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_string_equal".}
-proc hash*(str: PGString): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_string_hash".}
-proc assign*(str: PGString, rval: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_assign".}
-proc truncate*(str: PGString, len: gsize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_truncate".}
-proc set_size*(str: PGString, len: gsize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_set_size".}
-proc insert_len*(str: PGString, pos: gssize, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert_len".}
-proc append*(str: PGString, val: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append".}
-proc append_len*(str: PGString, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_append_len".}
-proc append_c*(str: PGString, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append_c".}
-proc append_unichar*(str: PGString, wc: gunichar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_append_unichar".}
-proc prepend*(str: PGString, val: cstring): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend".}
-proc prepend_c*(str: PGString, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend_c".}
-proc prepend_unichar*(str: PGString, wc: gunichar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_prepend_unichar".}
-proc prepend_len*(str: PGString, val: cstring, len: gssize): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_prepend_len".}
-proc insert*(str: PGString, pos: gssize, val: cstring): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert".}
-proc insert_c*(str: PGString, pos: gssize, c: gchar): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_insert_c".}
-proc insert_unichar*(str: PGString, pos: gssize, wc: gunichar): PGString{.
-    cdecl, dynlib: gliblib, importc: "g_string_insert_unichar".}
-proc erase*(str: PGString, pos: gssize, len: gssize): PGString{.cdecl, 
-    dynlib: gliblib, importc: "g_string_erase".}
-proc ascii_down*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_ascii_down".}
-proc ascii_up*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_ascii_up".}
-proc down*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_down".}
-proc up*(str: PGString): PGString{.cdecl, dynlib: gliblib, 
-    importc: "g_string_up".}
-type 
-  PGIOError* = ptr TGIOError
-  TGIOError* = enum 
-    G_IO_ERROR_NONE, G_IO_ERROR_AGAIN, G_IO_ERROR_INVAL, G_IO_ERROR_UNKNOWN
-
-proc G_IO_CHANNEL_ERROR*(): TGQuark
-type 
-  PGIOChannelError* = ptr TGIOChannelError
-  TGIOChannelError* = enum 
-    G_IO_CHANNEL_ERROR_FBIG, G_IO_CHANNEL_ERROR_INVAL, G_IO_CHANNEL_ERROR_IO, 
-    G_IO_CHANNEL_ERROR_ISDIR, G_IO_CHANNEL_ERROR_NOSPC, G_IO_CHANNEL_ERROR_NXIO, 
-    G_IO_CHANNEL_ERROR_OVERFLOW, G_IO_CHANNEL_ERROR_PIPE, 
-    G_IO_CHANNEL_ERROR_FAILED
-  PGIOStatus* = ptr TGIOStatus
-  TGIOStatus* = enum 
-    G_IO_STATUS_ERROR, G_IO_STATUS_NORMAL, G_IO_STATUS_EOF, G_IO_STATUS_AGAIN
-  PGSeekType* = ptr TGSeekType
-  TGSeekType* = enum 
-    G_SEEK_CUR, G_SEEK_SET, G_SEEK_END
-  PGIOCondition* = ptr TGIOCondition
-  TGIOCondition* = gint
-
-const 
-  G_IO_IN* = GLIB_SYSDEF_POLLIN
-  G_IO_OUT* = GLIB_SYSDEF_POLLOUT
-  G_IO_PRI* = GLIB_SYSDEF_POLLPRI
-  G_IO_ERR* = GLIB_SYSDEF_POLLERR
-  G_IO_HUP* = GLIB_SYSDEF_POLLHUP
-  G_IO_NVAL* = GLIB_SYSDEF_POLLNVAL
-
-type 
-  PGIOFlags* = ptr TGIOFlags
-  TGIOFlags* = gint
-
-const 
-  G_IO_FLAG_APPEND* = 1 shl 0
-  G_IO_FLAG_NONBLOCK* = 1 shl 1
-  G_IO_FLAG_IS_READABLE* = 1 shl 2
-  G_IO_FLAG_IS_WRITEABLE* = 1 shl 3
-  G_IO_FLAG_IS_SEEKABLE* = 1 shl 4
-  G_IO_FLAG_MASK* = (1 shl 5) - 1
-  G_IO_FLAG_GET_MASK* = G_IO_FLAG_MASK
-  G_IO_FLAG_SET_MASK* = G_IO_FLAG_APPEND or G_IO_FLAG_NONBLOCK
-
-type 
-  PGIOChannel* = ptr TGIOChannel
-  TGIOFunc* = proc (source: PGIOChannel, condition: TGIOCondition, 
-                    data: gpointer): gboolean{.cdecl.}
-  PGIOFuncs* = ptr TGIOFuncs
-  TGIOFuncs*{.final.} = object 
-    io_read*: proc (channel: PGIOChannel, buf: cstring, count: gsize, 
-                    bytes_read: Pgsize, err: pointer): TGIOStatus{.cdecl.}
-    io_write*: proc (channel: PGIOChannel, buf: cstring, count: gsize, 
-                     bytes_written: Pgsize, err: pointer): TGIOStatus{.cdecl.}
-    io_seek*: proc (channel: PGIOChannel, offset: gint64, theType: TGSeekType, 
-                    err: pointer): TGIOStatus{.cdecl.}
-    io_close*: proc (channel: PGIOChannel, err: pointer): TGIOStatus{.cdecl.}
-    io_create_watch*: proc (channel: PGIOChannel, condition: TGIOCondition): PGSource{.
-        cdecl.}
-    io_free*: proc (channel: PGIOChannel){.cdecl.}
-    io_set_flags*: proc (channel: PGIOChannel, flags: TGIOFlags, err: pointer): TGIOStatus{.
-        cdecl.}
-    io_get_flags*: proc (channel: PGIOChannel): TGIOFlags{.cdecl.}
-
-  TGIOChannel*{.final.} = object 
-    ref_count*: guint
-    funcs*: PGIOFuncs
-    encoding*: cstring
-    read_cd*: TGIConv
-    write_cd*: TGIConv
-    line_term*: cstring
-    line_term_len*: guint
-    buf_size*: gsize
-    read_buf*: PGString
-    encoded_read_buf*: PGString
-    write_buf*: PGString
-    partial_write_buf*: array[0..5, gchar]
-    flag0*: guint16
-    reserved1*: gpointer
-    reserved2*: gpointer
-
-
-const 
-  bm_TGIOChannel_use_buffer* = 0x0001'i16
-  bp_TGIOChannel_use_buffer* = 0'i16
-  bm_TGIOChannel_do_encode* = 0x0002'i16
-  bp_TGIOChannel_do_encode* = 1'i16
-  bm_TGIOChannel_close_on_unref* = 0x0004'i16
-  bp_TGIOChannel_close_on_unref* = 2'i16
-  bm_TGIOChannel_is_readable* = 0x0008'i16
-  bp_TGIOChannel_is_readable* = 3'i16
-  bm_TGIOChannel_is_writeable* = 0x0010'i16
-  bp_TGIOChannel_is_writeable* = 4'i16
-  bm_TGIOChannel_is_seekable* = 0x0020'i16
-  bp_TGIOChannel_is_seekable* = 5'i16
-
-proc TGIOChannel_use_buffer*(a: PGIOChannel): guint
-proc TGIOChannel_set_use_buffer*(a: PGIOChannel, `use_buffer`: guint)
-proc TGIOChannel_do_encode*(a: PGIOChannel): guint
-proc TGIOChannel_set_do_encode*(a: PGIOChannel, `do_encode`: guint)
-proc TGIOChannel_close_on_unref*(a: PGIOChannel): guint
-proc TGIOChannel_set_close_on_unref*(a: PGIOChannel, `close_on_unref`: guint)
-proc TGIOChannel_is_readable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_readable*(a: PGIOChannel, `is_readable`: guint)
-proc TGIOChannel_is_writeable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_writeable*(a: PGIOChannel, `is_writeable`: guint)
-proc TGIOChannel_is_seekable*(a: PGIOChannel): guint
-proc TGIOChannel_set_is_seekable*(a: PGIOChannel, `is_seekable`: guint)
-proc channel_init*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_init".}
-proc channel_ref*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_ref".}
-proc channel_unref*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_unref".}
-proc channel_read*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                        bytes_read: Pgsize): TGIOError{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_read".}
-proc channel_write*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                         bytes_written: Pgsize): TGIOError{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write".}
-proc channel_seek*(channel: PGIOChannel, offset: gint64, 
-                        theType: TGSeekType): TGIOError{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_seek".}
-proc channel_close*(channel: PGIOChannel){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_close".}
-proc channel_shutdown*(channel: PGIOChannel, flush: gboolean, err: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_shutdown".}
-proc add_watch_full*(channel: PGIOChannel, priority: gint, 
-                          condition: TGIOCondition, func: TGIOFunc, 
-                          user_data: gpointer, notify: TGDestroyNotify): guint{.
-    cdecl, dynlib: gliblib, importc: "g_io_add_watch_full".}
-proc create_watch*(channel: PGIOChannel, condition: TGIOCondition): PGSource{.
-    cdecl, dynlib: gliblib, importc: "g_io_create_watch".}
-proc add_watch*(channel: PGIOChannel, condition: TGIOCondition, 
-                     func: TGIOFunc, user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_io_add_watch".}
-proc channel_set_buffer_size*(channel: PGIOChannel, size: gsize){.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_buffer_size".}
-proc channel_get_buffer_size*(channel: PGIOChannel): gsize{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_buffer_size".}
-proc channel_get_buffer_condition*(channel: PGIOChannel): TGIOCondition{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_get_buffer_condition".}
-proc channel_set_flags*(channel: PGIOChannel, flags: TGIOFlags, 
-                             error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_flags".}
-proc channel_get_flags*(channel: PGIOChannel): TGIOFlags{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_flags".}
-proc channel_set_line_term*(channel: PGIOChannel, line_term: cstring, 
-                                 length: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_set_line_term".}
-proc channel_get_line_term*(channel: PGIOChannel, length: Pgint): cstring{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_get_line_term".}
-proc channel_set_buffered*(channel: PGIOChannel, buffered: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_set_buffered".}
-proc channel_get_buffered*(channel: PGIOChannel): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_buffered".}
-proc channel_set_encoding*(channel: PGIOChannel, encoding: cstring, 
-                                error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_set_encoding".}
-proc channel_get_encoding*(channel: PGIOChannel): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_encoding".}
-proc channel_set_close_on_unref*(channel: PGIOChannel, do_close: gboolean){.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_set_close_on_unref".}
-proc channel_get_close_on_unref*(channel: PGIOChannel): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_get_close_on_unref".}
-proc channel_flush*(channel: PGIOChannel, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_flush".}
-proc channel_read_line*(channel: PGIOChannel, str_return: PPgchar, 
-                             length: Pgsize, terminator_pos: Pgsize, 
-                             error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_read_line".}
-proc channel_read_line_string*(channel: PGIOChannel, buffer: PGString, 
-                                    terminator_pos: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_line_string".}
-proc channel_read_to_end*(channel: PGIOChannel, str_return: PPgchar, 
-                               length: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_to_end".}
-proc channel_read_chars*(channel: PGIOChannel, buf: cstring, count: gsize, 
-                              bytes_read: Pgsize, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_read_chars".}
-proc channel_read_unichar*(channel: PGIOChannel, thechar: Pgunichar, 
-                                error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_read_unichar".}
-proc channel_write_chars*(channel: PGIOChannel, buf: cstring, 
-                               count: gssize, bytes_written: Pgsize, 
-                               error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write_chars".}
-proc channel_write_unichar*(channel: PGIOChannel, thechar: gunichar, 
-                                 error: pointer): TGIOStatus{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_write_unichar".}
-proc channel_seek_position*(channel: PGIOChannel, offset: gint64, 
-                                 theType: TGSeekType, error: pointer): TGIOStatus{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_seek_position".}
-proc g_io_channel_new_file*(filename: cstring, mode: cstring, error: pointer): PGIOChannel{.
-    cdecl, dynlib: gliblib, importc: "g_io_channel_new_file".}
-proc g_io_channel_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_error_quark".}
-proc g_io_channel_error_from_errno*(en: gint): TGIOChannelError{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_error_from_errno".}
-proc g_io_channel_unix_new*(fd: int32): PGIOChannel{.cdecl, dynlib: gliblib, 
-    importc: "g_io_channel_unix_new".}
-proc channel_unix_get_fd*(channel: PGIOChannel): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_io_channel_unix_get_fd".}
-const 
-  G_LOG_LEVEL_USER_SHIFT* = 8
-
-type 
-  PGLogLevelFlags* = ptr TGLogLevelFlags
-  TGLogLevelFlags* = int32
-
-const 
-  G_LOG_FLAG_RECURSION* = 1 shl 0
-  G_LOG_FLAG_FATAL* = 1 shl 1
-  G_LOG_LEVEL_ERROR* = 1 shl 2
-  G_LOG_LEVEL_CRITICAL* = 1 shl 3
-  G_LOG_LEVEL_WARNING* = 1 shl 4
-  G_LOG_LEVEL_MESSAGE* = 1 shl 5
-  G_LOG_LEVEL_INFO* = 1 shl 6
-  G_LOG_LEVEL_DEBUG* = 1 shl 7
-  G_LOG_LEVEL_MASK* = not 3
-
-const 
-  G_LOG_FATAL_MASK* = 5
-
-type 
-  TGLogFunc* = proc (log_domain: cstring, log_level: TGLogLevelFlags, 
-                     TheMessage: cstring, user_data: gpointer){.cdecl.}
-
-proc g_log_set_handler*(log_domain: cstring, log_levels: TGLogLevelFlags, 
-                        log_func: TGLogFunc, user_data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_log_set_handler".}
-proc g_log_remove_handler*(log_domain: cstring, handler_id: guint){.cdecl, 
-    dynlib: gliblib, importc: "g_log_remove_handler".}
-proc g_log_default_handler*(log_domain: cstring, log_level: TGLogLevelFlags, 
-                            TheMessage: cstring, unused_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_log_default_handler".}
-proc g_log_set_fatal_mask*(log_domain: cstring, fatal_mask: TGLogLevelFlags): TGLogLevelFlags{.
-    cdecl, dynlib: gliblib, importc: "g_log_set_fatal_mask".}
-proc g_log_set_always_fatal*(fatal_mask: TGLogLevelFlags): TGLogLevelFlags{.
-    cdecl, dynlib: gliblib, importc: "g_log_set_always_fatal".}
-proc `g_log_fallback_handler`*(log_domain: cstring, log_level: TGLogLevelFlags, 
-                               message: cstring, unused_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_log_fallback_handler".}
-const 
-  G_LOG_DOMAIN* = nil
-
-when false: 
-  proc g_error*(format: cstring){.varargs.}
-  proc g_message*(format: cstring){.varargs.}
-  proc g_critical*(format: cstring){.varargs.}
-  proc g_warning*(format: cstring){.varargs.}
-type 
-  TGPrintFunc* = proc (str: cstring){.cdecl, varargs.}
-
-proc g_set_print_handler*(func: TGPrintFunc): TGPrintFunc{.cdecl, 
-    dynlib: gliblib, importc: "g_set_print_handler".}
-proc g_set_printerr_handler*(func: TGPrintFunc): TGPrintFunc{.cdecl, 
-    dynlib: gliblib, importc: "g_set_printerr_handler".}
-type 
-  PGMarkupError* = ptr TGMarkupError
-  TGMarkupError* = enum 
-    G_MARKUP_ERROR_BAD_UTF8, G_MARKUP_ERROR_EMPTY, G_MARKUP_ERROR_PARSE, 
-    G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, 
-    G_MARKUP_ERROR_INVALID_CONTENT
-
-proc G_MARKUP_ERROR*(): TGQuark
-proc g_markup_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                       importc: "g_markup_error_quark".}
-type 
-  PGMarkupParseFlags* = ptr TGMarkupParseFlags
-  TGMarkupParseFlags* = int
-
-const 
-  G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG* = 1 shl 0
-
-type 
-  PGMarkupParseContext* = ptr TGMarkupParseContext
-  TGMarkupParseContext* = pointer
-  PGMarkupParser* = ptr TGMarkupParser
-  TGMarkupParser*{.final.} = object 
-    start_element*: proc (context: PGMarkupParseContext, element_name: cstring, 
-                          attribute_names: PPgchar, attribute_values: PPgchar, 
-                          user_data: gpointer, error: pointer){.cdecl.}
-    end_element*: proc (context: PGMarkupParseContext, element_name: cstring, 
-                        user_data: gpointer, error: pointer){.cdecl.}
-    text*: proc (context: PGMarkupParseContext, text: cstring, text_len: gsize, 
-                 user_data: gpointer, error: pointer){.cdecl.}
-    passthrough*: proc (context: PGMarkupParseContext, 
-                        passthrough_text: cstring, text_len: gsize, 
-                        user_data: gpointer, error: pointer){.cdecl.}
-    error*: proc (context: PGMarkupParseContext, error: pointer, 
-                  user_data: gpointer){.cdecl.}
-
-
-proc parse_context_new*(parser: PGMarkupParser, 
-                                 flags: TGMarkupParseFlags, user_data: gpointer, 
-                                 user_data_dnotify: TGDestroyNotify): PGMarkupParseContext{.
-    cdecl, dynlib: gliblib, importc: "g_markup_parse_context_new".}
-proc parse_context_free*(context: PGMarkupParseContext){.cdecl, 
-    dynlib: gliblib, importc: "g_markup_parse_context_free".}
-proc parse_context_parse*(context: PGMarkupParseContext, text: cstring, 
-                                   text_len: gssize, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_markup_parse_context_parse".}
-proc parse_context_end_parse*(context: PGMarkupParseContext, 
-                                       error: pointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_markup_parse_context_end_parse".}
-proc parse_context_get_position*(context: PGMarkupParseContext, 
-    line_number: Pgint, char_number: Pgint){.cdecl, dynlib: gliblib, 
-    importc: "g_markup_parse_context_get_position".}
-proc g_markup_escape_text*(text: cstring, length: gssize): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_markup_escape_text".}
-type 
-  PGNode* = ptr TGNode
-  TGNode*{.final.} = object 
-    data*: gpointer
-    next*: PGNode
-    prev*: PGNode
-    parent*: PGNode
-    children*: PGNode
-
-  PGTraverseFlags* = ptr TGTraverseFlags
-  TGTraverseFlags* = gint
-
-const 
-  G_TRAVERSE_LEAFS* = 1 shl 0
-  G_TRAVERSE_NON_LEAFS* = 1 shl 1
-  G_TRAVERSE_ALL* = G_TRAVERSE_LEAFS or G_TRAVERSE_NON_LEAFS
-  G_TRAVERSE_MASK* = 0x00000003
-
-type 
-  PGTraverseType* = ptr TGTraverseType
-  TGTraverseType* = enum 
-    G_IN_ORDER, G_PRE_ORDER, G_POST_ORDER, G_LEVEL_ORDER
-  TGNodeTraverseFunc* = proc (node: PGNode, data: gpointer): gboolean{.cdecl.}
-  TGNodeForeachFunc* = proc (node: PGNode, data: gpointer){.cdecl.}
-
-proc IS_ROOT*(node: PGNode): bool
-proc IS_LEAF*(node: PGNode): bool
-proc node_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: gliblib, 
-    importc: "g_node_push_allocator".}
-proc g_node_pop_allocator*(){.cdecl, dynlib: gliblib, 
-                              importc: "g_node_pop_allocator".}
-proc g_node_new*(data: gpointer): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_new".}
-proc destroy*(root: PGNode){.cdecl, dynlib: gliblib, 
-                                    importc: "g_node_destroy".}
-proc unlink*(node: PGNode){.cdecl, dynlib: gliblib, 
-                                   importc: "g_node_unlink".}
-proc copy*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_copy".}
-proc insert*(parent: PGNode, position: gint, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert".}
-proc insert_before*(parent: PGNode, sibling: PGNode, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert_before".}
-proc insert_after*(parent: PGNode, sibling: PGNode, node: PGNode): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_insert_after".}
-proc prepend*(parent: PGNode, node: PGNode): PGNode{.cdecl, 
-    dynlib: gliblib, importc: "g_node_prepend".}
-proc n_nodes*(root: PGNode, flags: TGTraverseFlags): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_n_nodes".}
-proc get_root*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_get_root".}
-proc is_ancestor*(node: PGNode, descendant: PGNode): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_node_is_ancestor".}
-proc depth*(node: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_depth".}
-proc find*(root: PGNode, order: TGTraverseType, flags: TGTraverseFlags, 
-                  data: gpointer): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_find".}
-proc append*(parent: PGNode, node: PGNode): PGNode
-proc insert_data*(parent: PGNode, position: gint, data: gpointer): PGNode
-proc insert_data_before*(parent: PGNode, sibling: PGNode, data: gpointer): PGNode
-proc prepend_data*(parent: PGNode, data: gpointer): PGNode
-proc append_data*(parent: PGNode, data: gpointer): PGNode
-proc traverse*(root: PGNode, order: TGTraverseType, 
-                      flags: TGTraverseFlags, max_depth: gint, 
-                      func: TGNodeTraverseFunc, data: gpointer): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_traverse".}
-proc max_height*(root: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_max_height".}
-proc children_foreach*(node: PGNode, flags: TGTraverseFlags, 
-                              func: TGNodeForeachFunc, data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_node_children_foreach".}
-proc reverse_children*(node: PGNode){.cdecl, dynlib: gliblib, 
-    importc: "g_node_reverse_children".}
-proc n_children*(node: PGNode): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_node_n_children".}
-proc nth_child*(node: PGNode, n: guint): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_nth_child".}
-proc last_child*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_last_child".}
-proc find_child*(node: PGNode, flags: TGTraverseFlags, data: gpointer): PGNode{.
-    cdecl, dynlib: gliblib, importc: "g_node_find_child".}
-proc child_position*(node: PGNode, child: PGNode): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_child_position".}
-proc child_index*(node: PGNode, data: gpointer): gint{.cdecl, 
-    dynlib: gliblib, importc: "g_node_child_index".}
-proc first_sibling*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_first_sibling".}
-proc last_sibling*(node: PGNode): PGNode{.cdecl, dynlib: gliblib, 
-    importc: "g_node_last_sibling".}
-proc prev_sibling*(node: PGNode): PGNode
-proc next_sibling*(node: PGNode): PGNode
-proc first_child*(node: PGNode): PGNode
-type 
-  PGTree* = pointer
-  TGTraverseFunc* = proc (key: gpointer, value: gpointer, data: gpointer): gboolean{.
-      cdecl.}
-
-proc g_tree_new*(key_compare_func: TGCompareFunc): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new".}
-proc g_tree_new*(key_compare_func: TGCompareDataFunc, 
-                           key_compare_data: gpointer): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new_with_data".}
-proc g_tree_new_full*(key_compare_func: TGCompareDataFunc, 
-                      key_compare_data: gpointer, 
-                      key_destroy_func: TGDestroyNotify, 
-                      value_destroy_func: TGDestroyNotify): PGTree{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_new_full".}
-proc destroy*(tree: PGTree){.cdecl, dynlib: gliblib, 
-                                    importc: "g_tree_destroy".}
-proc insert*(tree: PGTree, key: gpointer, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_tree_insert".}
-proc replace*(tree: PGTree, key: gpointer, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_tree_replace".}
-proc remove*(tree: PGTree, key: gconstpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_tree_remove".}
-proc steal*(tree: PGTree, key: gconstpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_tree_steal".}
-proc lookup*(tree: PGTree, key: gconstpointer): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_tree_lookup".}
-proc lookup_extended*(tree: PGTree, lookup_key: gconstpointer, 
-                             orig_key: Pgpointer, value: Pgpointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_tree_lookup_extended".}
-proc foreach*(tree: PGTree, func: TGTraverseFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_tree_foreach".}
-proc search*(tree: PGTree, search_func: TGCompareFunc, 
-                    user_data: gconstpointer): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_search".}
-proc height*(tree: PGTree): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_height".}
-proc nnodes*(tree: PGTree): gint{.cdecl, dynlib: gliblib, 
-    importc: "g_tree_nnodes".}
-type 
-  PGPatternSpec* = pointer
-
-proc g_pattern_spec_new*(pattern: cstring): PGPatternSpec{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_spec_new".}
-proc spec_free*(pspec: PGPatternSpec){.cdecl, dynlib: gliblib, 
-    importc: "g_pattern_spec_free".}
-proc spec_equal*(pspec1: PGPatternSpec, pspec2: PGPatternSpec): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_pattern_spec_equal".}
-proc match*(pspec: PGPatternSpec, string_length: guint, str: cstring, 
-                      string_reversed: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_match".}
-proc match_string*(pspec: PGPatternSpec, str: cstring): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_pattern_match_string".}
-proc g_pattern_match_simple*(pattern: cstring, str: cstring): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_pattern_match_simple".}
-proc g_spaced_primes_closest*(num: guint): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_spaced_primes_closest".}
-proc g_qsort*(pbase: gconstpointer, total_elems: gint, size: gsize, 
-                        compare_func: TGCompareDataFunc, user_data: gpointer){.
-    cdecl, dynlib: gliblib, importc: "g_qsort_with_data".}
-type 
-  PGQueue* = ptr TGQueue
-  TGQueue*{.final.} = object 
-    head*: PGList
-    tail*: PGList
-    length*: guint
-
-
-proc g_queue_new*(): PGQueue{.cdecl, dynlib: gliblib, importc: "g_queue_new".}
-proc free*(queue: PGQueue){.cdecl, dynlib: gliblib, 
-                                    importc: "g_queue_free".}
-proc push_head*(queue: PGQueue, data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_queue_push_head".}
-proc push_tail*(queue: PGQueue, data: gpointer){.cdecl, dynlib: gliblib, 
-    importc: "g_queue_push_tail".}
-proc pop_head*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_head".}
-proc pop_tail*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_tail".}
-proc is_empty*(queue: PGQueue): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_is_empty".}
-proc peek_head*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_peek_head".}
-proc peek_tail*(queue: PGQueue): gpointer{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_peek_tail".}
-proc push_head_link*(queue: PGQueue, link: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_queue_push_head_link".}
-proc push_tail_link*(queue: PGQueue, link: PGList){.cdecl, 
-    dynlib: gliblib, importc: "g_queue_push_tail_link".}
-proc pop_head_link*(queue: PGQueue): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_head_link".}
-proc pop_tail_link*(queue: PGQueue): PGList{.cdecl, dynlib: gliblib, 
-    importc: "g_queue_pop_tail_link".}
-type 
-  PGRand* = pointer
-
-proc g_rand_new*(seed: guint32): PGRand{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_new_with_seed".}
-proc g_rand_new*(): PGRand{.cdecl, dynlib: gliblib, importc: "g_rand_new".}
-proc free*(rand: PGRand){.cdecl, dynlib: gliblib, importc: "g_rand_free".}
-proc set_seed*(rand: PGRand, seed: guint32){.cdecl, dynlib: gliblib, 
-    importc: "g_rand_set_seed".}
-proc boolean*(rand: PGRand): gboolean
-proc randint*(rand: PGRand): guint32{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_int".}
-proc int_range*(rand: PGRand, `begin`: gint32, `end`: gint32): gint32{.
-    cdecl, dynlib: gliblib, importc: "g_rand_int_range".}
-proc double*(rand: PGRand): gdouble{.cdecl, dynlib: gliblib, 
-    importc: "g_rand_double".}
-proc double_range*(rand: PGRand, `begin`: gdouble, `end`: gdouble): gdouble{.
-    cdecl, dynlib: gliblib, importc: "g_rand_double_range".}
-proc g_random_set_seed*(seed: guint32){.cdecl, dynlib: gliblib, 
-                                        importc: "g_random_set_seed".}
-proc g_random_boolean*(): gboolean
-proc g_random_int*(): guint32{.cdecl, dynlib: gliblib, importc: "g_random_int".}
-proc g_random_int_range*(`begin`: gint32, `end`: gint32): gint32{.cdecl, 
-    dynlib: gliblib, importc: "g_random_int_range".}
-proc g_random_double*(): gdouble{.cdecl, dynlib: gliblib, 
-                                  importc: "g_random_double".}
-proc g_random_double_range*(`begin`: gdouble, `end`: gdouble): gdouble{.cdecl, 
-    dynlib: gliblib, importc: "g_random_double_range".}
-type 
-  PGTuples* = ptr TGTuples
-  TGTuples*{.final.} = object 
-    len*: guint
-
-  PGRelation* = pointer
-
-proc g_relation_new*(fields: gint): PGRelation{.cdecl, dynlib: gliblib, 
-    importc: "g_relation_new".}
-proc destroy*(relation: PGRelation){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_destroy".}
-proc index*(relation: PGRelation, field: gint, hash_func: TGHashFunc, 
-                       key_equal_func: TGEqualFunc){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_index".}
-proc delete*(relation: PGRelation, key: gconstpointer, field: gint): gint{.
-    cdecl, dynlib: gliblib, importc: "g_relation_delete".}
-proc select*(relation: PGRelation, key: gconstpointer, field: gint): PGTuples{.
-    cdecl, dynlib: gliblib, importc: "g_relation_select".}
-proc count*(relation: PGRelation, key: gconstpointer, field: gint): gint{.
-    cdecl, dynlib: gliblib, importc: "g_relation_count".}
-proc print*(relation: PGRelation){.cdecl, dynlib: gliblib, 
-    importc: "g_relation_print".}
-proc destroy*(tuples: PGTuples){.cdecl, dynlib: gliblib, 
-    importc: "g_tuples_destroy".}
-proc index*(tuples: PGTuples, index: gint, field: gint): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_tuples_index".}
-type 
-  PGTokenType* = ptr TGTokenType
-  TGTokenType* = gint
-
-const 
-  G_TOKEN_LEFT_PAREN* = 40
-  G_TOKEN_RIGHT_PAREN* = 41
-  G_TOKEN_LEFT_CURLY* = 123
-  G_TOKEN_RIGHT_CURLY* = 125
-  G_TOKEN_LEFT_BRACE* = 91
-  G_TOKEN_RIGHT_BRACE* = 93
-  G_TOKEN_EQUAL_SIGN* = 61
-  G_TOKEN_COMMA* = 44
-  G_TOKEN_NONE* = 256
-  G_TOKEN_ERROR* = 257
-  G_TOKEN_CHAR* = 258
-  G_TOKEN_OCTAL* = 260
-  G_TOKEN_INT* = 261
-  G_TOKEN_HEX* = 262
-  G_TOKEN_FLOAT* = 263
-  G_TOKEN_STRING* = 264
-  G_TOKEN_SYMBOL* = 265
-  G_TOKEN_IDENTIFIER* = 266
-  G_TOKEN_IDENTIFIER_NULL* = 267
-  G_TOKEN_COMMENT_SINGLE* = 268
-  G_TOKEN_COMMENT_MULTI* = 269
-  G_TOKEN_LAST* = 270
-
-type 
-  PGScanner* = ptr TGScanner
-  PGScannerConfig* = ptr TGScannerConfig
-  PGTokenValue* = ptr TGTokenValue
-  TGTokenValue*{.final.} = object 
-    v_float*: gdouble
-
-  TGScannerMsgFunc* = proc (scanner: PGScanner, message: cstring, 
-                            error: gboolean){.cdecl.}
-  TGScanner*{.final.} = object 
-    user_data*: gpointer
-    max_parse_errors*: guint
-    parse_errors*: guint
-    input_name*: cstring
-    qdata*: PGData
-    config*: PGScannerConfig
-    token*: TGTokenType
-    value*: TGTokenValue
-    line*: guint
-    position*: guint
-    next_token*: TGTokenType
-    next_value*: TGTokenValue
-    next_line*: guint
-    next_position*: guint
-    symbol_table*: PGHashTable
-    input_fd*: gint
-    text*: cstring
-    text_end*: cstring
-    buffer*: cstring
-    scope_id*: guint
-    msg_handler*: TGScannerMsgFunc
-
-  TGScannerConfig*{.final.} = object 
-    cset_skip_characters*: cstring
-    cset_identifier_first*: cstring
-    cset_identifier_nth*: cstring
-    cpair_comment_single*: cstring
-    flag0*: int32
-    padding_dummy*: guint
-
-
-const 
-  G_CSET_A_2_Z_UCASE* = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-  G_CSET_a_2_z_lcase* = "abcdefghijklmnopqrstuvwxyz"
-  G_CSET_DIGITS* = "0123456789"
-
-const 
-  bm_TGScannerConfig_case_sensitive* = 0x00000001'i32
-  bp_TGScannerConfig_case_sensitive* = 0'i32
-  bm_TGScannerConfig_skip_comment_multi* = 0x00000002'i32
-  bp_TGScannerConfig_skip_comment_multi* = 1'i32
-  bm_TGScannerConfig_skip_comment_single* = 0x00000004'i32
-  bp_TGScannerConfig_skip_comment_single* = 2'i32
-  bm_TGScannerConfig_scan_comment_multi* = 0x00000008'i32
-  bp_TGScannerConfig_scan_comment_multi* = 3'i32
-  bm_TGScannerConfig_scan_identifier* = 0x00000010'i32
-  bp_TGScannerConfig_scan_identifier* = 4'i32
-  bm_TGScannerConfig_scan_identifier_1char* = 0x00000020'i32
-  bp_TGScannerConfig_scan_identifier_1char* = 5'i32
-  bm_TGScannerConfig_scan_identifier_NULL* = 0x00000040'i32
-  bp_TGScannerConfig_scan_identifier_NULL* = 6'i32
-  bm_TGScannerConfig_scan_symbols* = 0x00000080'i32
-  bp_TGScannerConfig_scan_symbols* = 7'i32
-  bm_TGScannerConfig_scan_binary* = 0x00000100'i32
-  bp_TGScannerConfig_scan_binary* = 8'i32
-  bm_TGScannerConfig_scan_octal* = 0x00000200'i32
-  bp_TGScannerConfig_scan_octal* = 9'i32
-  bm_TGScannerConfig_scan_float* = 0x00000400'i32
-  bp_TGScannerConfig_scan_float* = 10'i32
-  bm_TGScannerConfig_scan_hex* = 0x00000800'i32
-  bp_TGScannerConfig_scan_hex* = 11'i32
-  bm_TGScannerConfig_scan_hex_dollar* = 0x00001000'i32
-  bp_TGScannerConfig_scan_hex_dollar* = 12'i32
-  bm_TGScannerConfig_scan_string_sq* = 0x00002000'i32
-  bp_TGScannerConfig_scan_string_sq* = 13'i32
-  bm_TGScannerConfig_scan_string_dq* = 0x00004000'i32
-  bp_TGScannerConfig_scan_string_dq* = 14'i32
-  bm_TGScannerConfig_numbers_2_int* = 0x00008000'i32
-  bp_TGScannerConfig_numbers_2_int* = 15'i32
-  bm_TGScannerConfig_int_2_float* = 0x00010000'i32
-  bp_TGScannerConfig_int_2_float* = 16'i32
-  bm_TGScannerConfig_identifier_2_string* = 0x00020000'i32
-  bp_TGScannerConfig_identifier_2_string* = 17'i32
-  bm_TGScannerConfig_char_2_token* = 0x00040000'i32
-  bp_TGScannerConfig_char_2_token* = 18'i32
-  bm_TGScannerConfig_symbol_2_token* = 0x00080000'i32
-  bp_TGScannerConfig_symbol_2_token* = 19'i32
-  bm_TGScannerConfig_scope_0_fallback* = 0x00100000'i32
-  bp_TGScannerConfig_scope_0_fallback* = 20'i32
-
-proc TGScannerConfig_case_sensitive*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_case_sensitive*(a: PGScannerConfig, 
-    `case_sensitive`: guint)
-proc TGScannerConfig_skip_comment_multi*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_skip_comment_multi*(a: PGScannerConfig, 
-    `skip_comment_multi`: guint)
-proc TGScannerConfig_skip_comment_single*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_skip_comment_single*(a: PGScannerConfig, 
-    `skip_comment_single`: guint)
-proc TGScannerConfig_scan_comment_multi*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_comment_multi*(a: PGScannerConfig, 
-    `scan_comment_multi`: guint)
-proc TGScannerConfig_scan_identifier*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier*(a: PGScannerConfig, 
-    `scan_identifier`: guint)
-proc TGScannerConfig_scan_identifier_1char*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier_1char*(a: PGScannerConfig, 
-    `scan_identifier_1char`: guint)
-proc TGScannerConfig_scan_identifier_NULL*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_identifier_NULL*(a: PGScannerConfig, 
-    `scan_identifier_NULL`: guint)
-proc TGScannerConfig_scan_symbols*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_symbols*(a: PGScannerConfig, 
-                                       `scan_symbols`: guint)
-proc TGScannerConfig_scan_binary*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_binary*(a: PGScannerConfig, 
-                                      `scan_binary`: guint)
-proc TGScannerConfig_scan_octal*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_octal*(a: PGScannerConfig, `scan_octal`: guint)
-proc TGScannerConfig_scan_float*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_float*(a: PGScannerConfig, `scan_float`: guint)
-proc TGScannerConfig_scan_hex*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_hex*(a: PGScannerConfig, `scan_hex`: guint)
-proc TGScannerConfig_scan_hex_dollar*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_hex_dollar*(a: PGScannerConfig, 
-    `scan_hex_dollar`: guint)
-proc TGScannerConfig_scan_string_sq*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_string_sq*(a: PGScannerConfig, 
-    `scan_string_sq`: guint)
-proc TGScannerConfig_scan_string_dq*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scan_string_dq*(a: PGScannerConfig, 
-    `scan_string_dq`: guint)
-proc TGScannerConfig_numbers_2_int*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_numbers_2_int*(a: PGScannerConfig, 
-                                        `numbers_2_int`: guint)
-proc TGScannerConfig_int_2_float*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_int_2_float*(a: PGScannerConfig, 
-                                      `int_2_float`: guint)
-proc TGScannerConfig_identifier_2_string*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_identifier_2_string*(a: PGScannerConfig, 
-    `identifier_2_string`: guint)
-proc TGScannerConfig_char_2_token*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_char_2_token*(a: PGScannerConfig, 
-                                       `char_2_token`: guint)
-proc TGScannerConfig_symbol_2_token*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_symbol_2_token*(a: PGScannerConfig, 
-    `symbol_2_token`: guint)
-proc TGScannerConfig_scope_0_fallback*(a: PGScannerConfig): guint
-proc TGScannerConfig_set_scope_0_fallback*(a: PGScannerConfig, 
-    `scope_0_fallback`: guint)
-proc new*(config_templ: PGScannerConfig): PGScanner{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_new".}
-proc destroy*(scanner: PGScanner){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_destroy".}
-proc input_file*(scanner: PGScanner, input_fd: gint){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_input_file".}
-proc sync_file_offset*(scanner: PGScanner){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_sync_file_offset".}
-proc input_text*(scanner: PGScanner, text: cstring, text_len: guint){.
-    cdecl, dynlib: gliblib, importc: "g_scanner_input_text".}
-proc get_next_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_get_next_token".}
-proc peek_next_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_peek_next_token".}
-proc cur_token*(scanner: PGScanner): TGTokenType{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_cur_token".}
-proc cur_value*(scanner: PGScanner): TGTokenValue{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_cur_value".}
-proc cur_line*(scanner: PGScanner): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_cur_line".}
-proc cur_position*(scanner: PGScanner): guint{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_cur_position".}
-proc eof*(scanner: PGScanner): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_eof".}
-proc set_scope*(scanner: PGScanner, scope_id: guint): guint{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_set_scope".}
-proc scope_add_symbol*(scanner: PGScanner, scope_id: guint, 
-                                 symbol: cstring, value: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_add_symbol".}
-proc scope_remove_symbol*(scanner: PGScanner, scope_id: guint, 
-                                    symbol: cstring){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_scope_remove_symbol".}
-proc scope_lookup_symbol*(scanner: PGScanner, scope_id: guint, 
-                                    symbol: cstring): gpointer{.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_lookup_symbol".}
-proc scope_foreach_symbol*(scanner: PGScanner, scope_id: guint, 
-                                     func: TGHFunc, user_data: gpointer){.cdecl, 
-    dynlib: gliblib, importc: "g_scanner_scope_foreach_symbol".}
-proc lookup_symbol*(scanner: PGScanner, symbol: cstring): gpointer{.
-    cdecl, dynlib: gliblib, importc: "g_scanner_lookup_symbol".}
-proc unexp_token*(scanner: PGScanner, expected_token: TGTokenType, 
-                            identifier_spec: cstring, symbol_spec: cstring, 
-                            symbol_name: cstring, `message`: cstring, 
-                            is_error: gint){.cdecl, dynlib: gliblib, 
-    importc: "g_scanner_unexp_token".}
-proc G_SHELL_ERROR*(): TGQuark
-type 
-  PGShellError* = ptr TGShellError
-  TGShellError* = enum 
-    G_SHELL_ERROR_BAD_QUOTING, G_SHELL_ERROR_EMPTY_STRING, G_SHELL_ERROR_FAILED
-
-proc g_shell_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                      importc: "g_shell_error_quark".}
-proc g_shell_quote*(unquoted_string: cstring): cstring{.cdecl, dynlib: gliblib, 
-    importc: "g_shell_quote".}
-proc g_shell_unquote*(quoted_string: cstring, error: pointer): cstring{.cdecl, 
-    dynlib: gliblib, importc: "g_shell_unquote".}
-proc g_shell_parse_argv*(command_line: cstring, argcp: Pgint, argvp: PPPgchar, 
-                         error: pointer): gboolean{.cdecl, dynlib: gliblib, 
-    importc: "g_shell_parse_argv".}
-proc G_SPAWN_ERROR*(): TGQuark
-type 
-  PGSpawnError* = ptr TGSpawnError
-  TGSpawnError* = enum 
-    G_SPAWN_ERROR_FORK, G_SPAWN_ERROR_READ, G_SPAWN_ERROR_CHDIR, 
-    G_SPAWN_ERROR_ACCES, G_SPAWN_ERROR_PERM, G_SPAWN_ERROR_2BIG, 
-    G_SPAWN_ERROR_NOEXEC, G_SPAWN_ERROR_NAMETOOLONG, G_SPAWN_ERROR_NOENT, 
-    G_SPAWN_ERROR_NOMEM, G_SPAWN_ERROR_NOTDIR, G_SPAWN_ERROR_LOOP, 
-    G_SPAWN_ERROR_TXTBUSY, G_SPAWN_ERROR_IO, G_SPAWN_ERROR_NFILE, 
-    G_SPAWN_ERROR_MFILE, G_SPAWN_ERROR_INVAL, G_SPAWN_ERROR_ISDIR, 
-    G_SPAWN_ERROR_LIBBAD, G_SPAWN_ERROR_FAILED
-  TGSpawnChildSetupFunc* = proc (user_data: gpointer){.cdecl.}
-  PGSpawnFlags* = ptr TGSpawnFlags
-  TGSpawnFlags* = int
-
-const 
-  G_SPAWN_LEAVE_DESCRIPTORS_OPEN* = 1 shl 0
-  G_SPAWN_DO_NOT_REAP_CHILD* = 1 shl 1
-  G_SPAWN_SEARCH_PATH* = 1 shl 2
-  G_SPAWN_STDOUT_TO_DEV_NULL* = 1 shl 3
-  G_SPAWN_STDERR_TO_DEV_NULL* = 1 shl 4
-  G_SPAWN_CHILD_INHERITS_STDIN* = 1 shl 5
-  G_SPAWN_FILE_AND_ARGV_ZERO* = 1 shl 6
-
-proc g_spawn_error_quark*(): TGQuark{.cdecl, dynlib: gliblib, 
-                                      importc: "g_spawn_error_quark".}
-proc g_spawn_async*(working_directory: cstring, argv: PPgchar, envp: PPgchar, 
-                    flags: TGSpawnFlags, child_setup: TGSpawnChildSetupFunc, 
-                    user_data: gpointer, child_pid: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_async".}
-proc g_spawn_async*(working_directory: cstring, argv: PPgchar, 
-                               envp: PPgchar, flags: TGSpawnFlags, 
-                               child_setup: TGSpawnChildSetupFunc, 
-                               user_data: gpointer, child_pid: Pgint, 
-                               standard_input: Pgint, standard_output: Pgint, 
-                               standard_error: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_async_with_pipes".}
-proc g_spawn_sync*(working_directory: cstring, argv: PPgchar, envp: PPgchar, 
-                   flags: TGSpawnFlags, child_setup: TGSpawnChildSetupFunc, 
-                   user_data: gpointer, standard_output: PPgchar, 
-                   standard_error: PPgchar, exit_status: Pgint, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_sync".}
-proc g_spawn_command_line_sync*(command_line: cstring, standard_output: PPgchar, 
-                                standard_error: PPgchar, exit_status: Pgint, 
-                                error: pointer): gboolean{.cdecl, 
-    dynlib: gliblib, importc: "g_spawn_command_line_sync".}
-proc g_spawn_command_line_async*(command_line: cstring, error: pointer): gboolean{.
-    cdecl, dynlib: gliblib, importc: "g_spawn_command_line_async".}
-proc G_TYPE_IS_BOXED*(theType: GType): gboolean
-proc HOLDS_BOXED*(value: PGValue): gboolean
-proc G_TYPE_CLOSURE*(): GType
-proc G_TYPE_VALUE*(): GType
-proc G_TYPE_VALUE_ARRAY*(): GType
-proc G_TYPE_GSTRING*(): GType
-proc g_boxed_copy*(boxed_type: GType, src_boxed: gconstpointer): gpointer{.
-    cdecl, dynlib: gobjectlib, importc: "g_boxed_copy".}
-proc g_boxed_free*(boxed_type: GType, boxed: gpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_boxed_free".}
-proc set_boxed*(value: PGValue, v_boxed: gconstpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_boxed".}
-proc set_static_boxed*(value: PGValue, v_boxed: gconstpointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_value_set_static_boxed".}
-proc get_boxed*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_get_boxed".}
-proc dup_boxed*(value: PGValue): gpointer{.cdecl, dynlib: gobjectlib, 
-    importc: "g_value_dup_boxed".}
-proc g_boxed_type_register_static*(name: cstring, boxed_copy: TGBoxedCopyFunc, 
-                                   boxed_free: TGBoxedFreeFunc): GType{.cdecl, 
-    dynlib: gobjectlib, importc: "g_boxed_type_register_static".}
-proc set_boxed_take_ownership*(value: PGValue, v_boxed: gconstpointer){.
-    cdecl, dynlib: gobjectlib, importc: "g_value_set_boxed_take_ownership".}
-proc g_closure_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                   importc: "g_closure_get_type".}
-proc g_value_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                 importc: "g_value_get_type".}
-proc g_value_array_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                       importc: "g_value_array_get_type".}
-proc g_gstring_get_type*(): GType{.cdecl, dynlib: gobjectlib, 
-                                   importc: "g_gstring_get_type".}
-type 
-  PGModule* = pointer
-  TGModuleFlags* = int32
-  TGModuleCheckInit* = proc (module: PGModule): cstring{.cdecl.}
-  TGModuleUnload* = proc (module: PGModule){.cdecl.}
-
-const 
-  G_MODULE_BIND_LAZY* = 1 shl 0
-  G_MODULE_BIND_MASK* = 1
-
-proc g_module_supported*(): gboolean{.cdecl, dynlib: gmodulelib, 
-                                      importc: "g_module_supported".}
-proc g_module_open*(file_name: cstring, flags: TGModuleFlags): PGModule{.cdecl, 
-    dynlib: gmodulelib, importc: "g_module_open".}
-proc close*(module: PGModule): gboolean{.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_close".}
-proc make_resident*(module: PGModule){.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_make_resident".}
-proc g_module_error*(): cstring{.cdecl, dynlib: gmodulelib, 
-                                 importc: "g_module_error".}
-proc symbol*(module: PGModule, symbol_name: cstring, symbol: Pgpointer): gboolean{.
-    cdecl, dynlib: gmodulelib, importc: "g_module_symbol".}
-proc name*(module: PGModule): cstring{.cdecl, dynlib: gmodulelib, 
-    importc: "g_module_name".}
-proc g_module_build_path*(directory: cstring, module_name: cstring): cstring{.
-    cdecl, dynlib: gmodulelib, importc: "g_module_build_path".}
-proc cclosure_marshal_VOID_VOID*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__VOID".}
-proc cclosure_marshal_VOID_BOOLEAN*(closure: PGClosure, 
-                                       return_value: PGValue, 
-                                       n_param_values: GUInt, 
-                                       param_values: PGValue, 
-                                       invocation_hint: GPointer, 
-                                       marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__BOOLEAN".}
-proc cclosure_marshal_VOID_CHAR*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__CHAR".}
-proc cclosure_marshal_VOID_UCHAR*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UCHAR".}
-proc cclosure_marshal_VOID_INT*(closure: PGClosure, return_value: PGValue, 
-                                   n_param_values: GUInt, param_values: PGValue, 
-                                   invocation_hint: GPointer, 
-                                   marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__INT".}
-proc cclosure_marshal_VOID_UINT*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UINT".}
-proc cclosure_marshal_VOID_LONG*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__LONG".}
-proc cclosure_marshal_VOID_ULONG*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__ULONG".}
-proc cclosure_marshal_VOID_ENUM*(closure: PGClosure, return_value: PGValue, 
-                                    n_param_values: GUInt, 
-                                    param_values: PGValue, 
-                                    invocation_hint: GPointer, 
-                                    marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__ENUM".}
-proc cclosure_marshal_VOID_FLAGS*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__FLAGS".}
-proc cclosure_marshal_VOID_FLOAT*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__FLOAT".}
-proc cclosure_marshal_VOID_DOUBLE*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__DOUBLE".}
-proc cclosure_marshal_VOID_STRING*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__STRING".}
-proc cclosure_marshal_VOID_PARAM*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__PARAM".}
-proc cclosure_marshal_VOID_BOXED*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__BOXED".}
-proc cclosure_marshal_VOID_POINTER*(closure: PGClosure, 
-                                       return_value: PGValue, 
-                                       n_param_values: GUInt, 
-                                       param_values: PGValue, 
-                                       invocation_hint: GPointer, 
-                                       marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__POINTER".}
-proc cclosure_marshal_VOID_OBJECT*(closure: PGClosure, return_value: PGValue, 
-                                      n_param_values: GUInt, 
-                                      param_values: PGValue, 
-                                      invocation_hint: GPointer, 
-                                      marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__OBJECT".}
-proc cclosure_marshal_STRING_OBJECT_POINTER*(closure: PGClosure, 
-    return_value: PGValue, n_param_values: GUInt, param_values: PGValue, 
-    invocation_hint: GPointer, marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_STRING__OBJECT_POINTER".}
-proc cclosure_marshal_VOID_UINT_POINTER*(closure: PGClosure, 
-    return_value: PGValue, n_param_values: GUInt, param_values: PGValue, 
-    invocation_hint: GPointer, marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_VOID__UINT_POINTER".}
-proc cclosure_marshal_BOOLEAN_FLAGS*(closure: PGClosure, 
-                                        return_value: PGValue, 
-                                        n_param_values: GUInt, 
-                                        param_values: PGValue, 
-                                        invocation_hint: GPointer, 
-                                        marshal_data: GPointer){.cdecl, 
-    dynlib: gobjectlib, importc: "g_cclosure_marshal_BOOLEAN__FLAGS".}
-proc cclosure_marshal_BOOL_FLAGS*(closure: PGClosure, return_value: PGValue, 
-                                     n_param_values: GUInt, 
-                                     param_values: PGValue, 
-                                     invocation_hint: GPointer, 
-                                     marshal_data: GPointer){.cdecl, 
-    dynlib: gliblib, importc: "g_cclosure_marshal_BOOLEAN__FLAGS".}
-proc GUINT16_SWAP_LE_BE_CONSTANT*(val: guint16): guint16 = 
-  Result = ((val and 0x00FF'i16) shl 8'i16) or
-      ((val and 0xFF00'i16) shr 8'i16)
-
-proc GUINT32_SWAP_LE_BE_CONSTANT*(val: guint32): guint32 = 
-  Result = ((val and 0x000000FF'i32) shl 24'i32) or
-      ((val and 0x0000FF00'i32) shl 8'i32) or
-      ((val and 0x00FF0000'i32) shr 8'i32) or
-      ((val and 0xFF000000'i32) shr 24'i32)
-
-proc GUINT_TO_POINTER*(i: guint): pointer = 
-  Result = cast[Pointer](TAddress(i))
-
-when false: 
-  type 
-    PGArray* = pointer
-  proc g_array_append_val*(a: PGArray, v: gpointer): PGArray = 
-    result = g_array_append_vals(a, addr(v), 1)
-
-  proc g_array_prepend_val*(a: PGArray, v: gpointer): PGArray = 
-    result = g_array_prepend_vals(a, addr(v), 1)
-
-  proc g_array_insert_val*(a: PGArray, i: guint, v: gpointer): PGArray = 
-    result = g_array_insert_vals(a, i, addr(v), 1)
-
-  proc g_ptr_array_index*(parray: PGPtrArray, index: guint): gpointer = 
-    result = cast[PGPointer](cast[int](parray []. pdata) +
-        index * SizeOf(GPointer))[] 
-
-  proc G_THREAD_ERROR*(): TGQuark = 
-    result = g_thread_error_quark()
-
-  proc g_mutex_lock*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_lock(mutex)
-
-  proc g_mutex_trylock*(mutex: PGMutex): gboolean = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.mutex_trylock(mutex)
-    else: 
-      result = true
-
-  proc g_mutex_unlock*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_unlock(mutex)
-
-  proc g_mutex_free*(mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.mutex_free(mutex)
-
-  proc g_cond_wait*(cond: PGCond, mutex: PGMutex) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_wait(cond, mutex)
-
-  proc g_cond_timed_wait*(cond: PGCond, mutex: PGMutex, end_time: PGTimeVal): gboolean = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.cond_timed_wait(cond, mutex, 
-          end_time)
-    else: 
-      result = true
-
-  proc g_thread_supported*(): gboolean = 
-    result = g_threads_got_initialized
-
-  proc g_mutex_new*(): PGMutex = 
-    result = g_thread_functions_for_glib_use.mutex_new()
-
-  proc g_cond_new*(): PGCond = 
-    result = g_thread_functions_for_glib_use.cond_new()
-
-  proc g_cond_signal*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_signal(cond)
-
-  proc g_cond_broadcast*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_broadcast(cond)
-
-  proc g_cond_free*(cond: PGCond) = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.cond_free(cond)
-
-  proc g_private_new*(dest: TGDestroyNotify): PGPrivate = 
-    result = g_thread_functions_for_glib_use.private_new(dest)
-
-  proc g_private_get*(private_key: PGPrivate): gpointer = 
-    if g_threads_got_initialized: 
-      result = g_thread_functions_for_glib_use.private_get(private_key)
-    else: 
-      result = private_key
-
-  proc g_private_set*(private_key: var PGPrivate, data: gpointer) = 
-    if g_threads_got_initialized: 
-      nil
-    else: 
-      private_key = data
-
-  proc g_thread_yield*() = 
-    if g_threads_got_initialized: 
-      g_thread_functions_for_glib_use.thread_yield
-
-  proc g_thread_create*(func: TGThreadFunc, data: gpointer, joinable: gboolean, 
-                        error: pointer): PGThread = 
-    result = g_thread_create_full(func, data, 0, joinable, false, 
-                                  G_THREAD_PRIORITY_NORMAL, error)
-
-  proc g_static_mutex_get_mutex*(mutex: PPGMutex): PGMutex = 
-    result = g_static_mutex_get_mutex_impl(mutex)
-
-  proc g_static_mutex_lock*(mutex: PGStaticMutex) = 
-    g_mutex_lock(g_static_mutex_get_mutex_impl(PPGMutex(mutex)))
-
-  proc g_static_mutex_trylock*(mutex: PGStaticMutex): gboolean = 
-    result = g_mutex_trylock(g_static_mutex_get_mutex(PPGMutex(mutex)))
-
-  proc g_static_mutex_unlock*(mutex: PGStaticMutex) = 
-    g_mutex_unlock(g_static_mutex_get_mutex_impl(PPGMutex(mutex)))
-
-  proc g_main_new*(is_running: gboolean): PGMainLoop = 
-    result = g_main_loop_new(nil, is_running)
-
-  proc g_main_iteration*(may_block: gboolean): gboolean = 
-    result = g_main_context_iteration(nil, may_block)
-
-  proc g_main_pending*(): gboolean = 
-    result = g_main_context_pending(nil)
-
-  proc g_main_set_poll_func*(func: TGPollFunc) = 
-    g_main_context_set_poll_func(nil, func)
-
-proc next*(slist: PGSList): PGSList = 
-  if slist != nil: 
-    result = slist.next
-  else: 
-    result = nil
-
-proc g_new*(bytes_per_struct, n_structs: int): gpointer = 
-  result = g_malloc(n_structs * bytes_per_struct)
-
-proc g_new0*(bytes_per_struct, n_structs: int): gpointer = 
-  result = g_malloc0(n_structs * bytes_per_struct)
-
-proc g_renew*(struct_size: int, OldMem: gpointer, n_structs: int): gpointer = 
-  result = g_realloc(OldMem, struct_size * n_structs)
-
-proc g_chunk_new*(chunk: Pointer): Pointer = 
-  result = chunk_alloc(chunk)
-
-proc g_chunk_new0*(chunk: Pointer): Pointer = 
-  result = chunk_alloc0(chunk)
-
-proc previous*(list: PGList): PGList = 
-  if list != nil: 
-    result = list.prev
-  else: 
-    result = nil
-
-proc next*(list: PGList): PGList = 
-  if list != nil: 
-    result = list.next
-  else: 
-    result = nil
-
-proc G_CONVERT_ERROR*(): TGQuark = 
-  result = g_convert_error_quark()
-
-proc g_datalist_id_set_data*(datalist: PPGData, key_id: TGQuark, data: gpointer) = 
-  g_datalist_id_set_data_full(datalist, key_id, data, TGDestroyNotify(nil))
-
-proc g_datalist_id_remove_data*(datalist: PPGData, key_id: TGQuark) = 
-  g_datalist_id_set_data(datalist, key_id, nil)
-
-proc g_datalist_get_data*(datalist: PPGData, key_str: cstring): PPGData = 
-  result = cast[PPGData](g_datalist_id_get_data(datalist, 
-      g_quark_try_string(key_str)))
-
-proc g_datalist_set_data_full*(datalist: PPGData, key_str: cstring, 
-                               data: gpointer, destroy_func: TGDestroyNotify) = 
-  g_datalist_id_set_data_full(datalist, g_quark_from_string(key_str), data, 
-                              destroy_func)
-
-proc g_datalist_set_data*(datalist: PPGData, key_str: cstring, data: gpointer) = 
-  g_datalist_set_data_full(datalist, key_str, data, nil)
-
-proc g_datalist_remove_no_notify*(datalist: PPGData, key_str: cstring) = 
-  discard g_datalist_id_remove_no_notify(datalist, g_quark_try_string(key_str))
-
-proc g_datalist_remove_data*(datalist: PPGData, key_str: cstring) = 
-  g_datalist_id_set_data(datalist, g_quark_try_string(key_str), nil)
-
-proc g_dataset_id_set_data*(location: gconstpointer, key_id: TGQuark, 
-                            data: gpointer) = 
-  g_dataset_id_set_data_full(location, key_id, data, nil)
-
-proc g_dataset_id_remove_data*(location: gconstpointer, key_id: TGQuark) = 
-  g_dataset_id_set_data(location, key_id, nil)
-
-proc g_dataset_get_data*(location: gconstpointer, key_str: cstring): gpointer = 
-  result = g_dataset_id_get_data(location, g_quark_try_string(key_str))
-
-proc g_dataset_set_data_full*(location: gconstpointer, key_str: cstring, 
-                              data: gpointer, destroy_func: TGDestroyNotify) = 
-  g_dataset_id_set_data_full(location, g_quark_from_string(key_str), data, 
-                             destroy_func)
-
-proc g_dataset_remove_no_notify*(location: gconstpointer, key_str: cstring) = 
-  discard g_dataset_id_remove_no_notify(location, g_quark_try_string(key_str))
-
-proc g_dataset_set_data*(location: gconstpointer, key_str: cstring, 
-                         data: gpointer) = 
-  g_dataset_set_data_full(location, key_str, data, nil)
-
-proc g_dataset_remove_data*(location: gconstpointer, key_str: cstring) = 
-  g_dataset_id_set_data(location, g_quark_try_string(key_str), nil)
-
-proc G_FILE_ERROR*(): TGQuark = 
-  result = g_file_error_quark()
-
-proc TGHookList_hook_size*(a: PGHookList): guint = 
-  result = (a.flag0 and bm_TGHookList_hook_size) shr bp_TGHookList_hook_size
-
-proc TGHookList_set_hook_size*(a: PGHookList, `hook_size`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`hook_size` shl bp_TGHookList_hook_size) and bm_TGHookList_hook_size)
-
-proc TGHookList_is_setup*(a: PGHookList): guint = 
-  result = (a.flag0 and bm_TGHookList_is_setup) shr bp_TGHookList_is_setup
-
-proc TGHookList_set_is_setup*(a: PGHookList, `is_setup`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`is_setup` shl bp_TGHookList_is_setup) and bm_TGHookList_is_setup)
-
-proc G_HOOK*(hook: pointer): PGHook = 
-  result = cast[PGHook](hook)
-
-proc FLAGS*(hook: PGHook): guint = 
-  result = hook.flags
-
-proc ACTIVE*(hook: PGHook): bool = 
-  result = (hook.flags and G_HOOK_FLAG_ACTIVE) != 0'i32
-
-proc IN_CALL*(hook: PGHook): bool = 
-  result = (hook.flags and G_HOOK_FLAG_IN_CALL) != 0'i32
-
-proc IS_VALID*(hook: PGHook): bool = 
-  result = (hook.hook_id != 0) and ACTIVE(hook)
-
-proc IS_UNLINKED*(hook: PGHook): bool = 
-  result = (hook.next == nil) and (hook.prev == nil) and (hook.hook_id == 0) and
-      (hook.ref_count == 0'i32)
-
-proc append*(hook_list: PGHookList, hook: PGHook) = 
-  insert_before(hook_list, nil, hook)
-
-proc G_IO_CHANNEL_ERROR*(): TGQuark = 
-  result = g_io_channel_error_quark()
-
-proc TGIOChannel_use_buffer*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_use_buffer) shr
-      bp_TGIOChannel_use_buffer
-
-proc TGIOChannel_set_use_buffer*(a: PGIOChannel, `use_buffer`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`use_buffer` shl bp_TGIOChannel_use_buffer) and
-      bm_TGIOChannel_use_buffer)
-
-proc TGIOChannel_do_encode*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_do_encode) shr
-      bp_TGIOChannel_do_encode
-
-proc TGIOChannel_set_do_encode*(a: PGIOChannel, `do_encode`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`do_encode` shl bp_TGIOChannel_do_encode) and
-      bm_TGIOChannel_do_encode)
-
-proc TGIOChannel_close_on_unref*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_close_on_unref) shr
-      bp_TGIOChannel_close_on_unref
-
-proc TGIOChannel_set_close_on_unref*(a: PGIOChannel, `close_on_unref`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`close_on_unref` shl bp_TGIOChannel_close_on_unref) and
-      bm_TGIOChannel_close_on_unref)
-
-proc TGIOChannel_is_readable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_readable) shr
-      bp_TGIOChannel_is_readable
-
-proc TGIOChannel_set_is_readable*(a: PGIOChannel, `is_readable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_readable` shl bp_TGIOChannel_is_readable) and
-      bm_TGIOChannel_is_readable)
-
-proc TGIOChannel_is_writeable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_writeable) shr
-      bp_TGIOChannel_is_writeable
-
-proc TGIOChannel_set_is_writeable*(a: PGIOChannel, `is_writeable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_writeable` shl bp_TGIOChannel_is_writeable) and
-      bm_TGIOChannel_is_writeable)
-
-proc TGIOChannel_is_seekable*(a: PGIOChannel): guint = 
-  result = (a.flag0 and bm_TGIOChannel_is_seekable) shr
-      bp_TGIOChannel_is_seekable
-
-proc TGIOChannel_set_is_seekable*(a: PGIOChannel, `is_seekable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_seekable` shl bp_TGIOChannel_is_seekable) and
-      bm_TGIOChannel_is_seekable)
-
-proc utf8_next_char*(p: pguchar): pguchar = 
-  result = cast[pguchar](cast[TAddress](p) + 1) # p + ord((g_utf8_skip + p[] )[] )
-  
-when false: 
-  proc GLIB_CHECK_VERSION*(major, minor, micro: guint): bool = 
-    result = ((GLIB_MAJOR_VERSION > major) or
-        ((GLIB_MAJOR_VERSION == major) and (GLIB_MINOR_VERSION > minor)) or
-        ((GLIB_MAJOR_VERSION == major) and (GLIB_MINOR_VERSION == minor) and
-        (GLIB_MICRO_VERSION >= micro)))
-
-  proc g_error*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format)
-
-  proc g_message*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format)
-
-  proc g_critical*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format)
-
-  proc g_warning*(format: cstring) = 
-    g_log(G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format)
-
-proc G_MARKUP_ERROR*(): TGQuark = 
-  result = g_markup_error_quark()
-
-proc IS_ROOT*(node: PGNode): bool = 
-  result = (node.parent == nil) and (node.next == nil) and (node.prev == nil)
-
-proc IS_LEAF*(node: PGNode): bool = 
-  result = node.children == nil
-
-proc append*(parent: PGNode, node: PGNode): PGNode = 
-  result = insert_before(parent, nil, node)
-
-proc insert_data*(parent: PGNode, position: gint, data: gpointer): PGNode = 
-  result = insert(parent, position, g_node_new(data))
-
-proc insert_data_before*(parent: PGNode, sibling: PGNode, 
-                         data: gpointer): PGNode = 
-  result = insert_before(parent, sibling, g_node_new(data))
-
-proc prepend_data*(parent: PGNode, data: gpointer): PGNode = 
-  result = prepend(parent, g_node_new(data))
-
-proc append_data*(parent: PGNode, data: gpointer): PGNode = 
-  result = insert_before(parent, nil, g_node_new(data))
-
-proc prev_sibling*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.prev
-  else: 
-    result = nil
-
-proc next_sibling*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.next
-  else: 
-    result = nil
-
-proc first_child*(node: PGNode): PGNode = 
-  if node != nil: 
-    result = node.children
-  else: 
-    result = nil
-
-proc boolean*(rand: PGRand): gboolean = 
-  result = (int(rand_int(rand)) and (1 shl 15)) != 0
-
-proc g_random_boolean*(): gboolean = 
-  result = (int(g_random_int()) and (1 shl 15)) != 0
-
-proc TGScannerConfig_case_sensitive*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_case_sensitive) shr
-      bp_TGScannerConfig_case_sensitive
-
-proc TGScannerConfig_set_case_sensitive*(a: PGScannerConfig, 
-    `case_sensitive`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`case_sensitive` shl bp_TGScannerConfig_case_sensitive) and
-      bm_TGScannerConfig_case_sensitive)
-
-proc TGScannerConfig_skip_comment_multi*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_skip_comment_multi) shr
-      bp_TGScannerConfig_skip_comment_multi
-
-proc TGScannerConfig_set_skip_comment_multi*(a: PGScannerConfig, 
-    `skip_comment_multi`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`skip_comment_multi` shl bp_TGScannerConfig_skip_comment_multi) and
-      bm_TGScannerConfig_skip_comment_multi)
-
-proc TGScannerConfig_skip_comment_single*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_skip_comment_single) shr
-      bp_TGScannerConfig_skip_comment_single
-
-proc TGScannerConfig_set_skip_comment_single*(a: PGScannerConfig, 
-    `skip_comment_single`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`skip_comment_single` shl bp_TGScannerConfig_skip_comment_single) and
-      bm_TGScannerConfig_skip_comment_single)
-
-proc TGScannerConfig_scan_comment_multi*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_comment_multi) shr
-      bp_TGScannerConfig_scan_comment_multi
-
-proc TGScannerConfig_set_scan_comment_multi*(a: PGScannerConfig, 
-    `scan_comment_multi`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_comment_multi` shl bp_TGScannerConfig_scan_comment_multi) and
-      bm_TGScannerConfig_scan_comment_multi)
-
-proc TGScannerConfig_scan_identifier*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier) shr
-      bp_TGScannerConfig_scan_identifier
-
-proc TGScannerConfig_set_scan_identifier*(a: PGScannerConfig, 
-    `scan_identifier`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier` shl bp_TGScannerConfig_scan_identifier) and
-      bm_TGScannerConfig_scan_identifier)
-
-proc TGScannerConfig_scan_identifier_1char*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier_1char) shr
-      bp_TGScannerConfig_scan_identifier_1char
-
-proc TGScannerConfig_set_scan_identifier_1char*(a: PGScannerConfig, 
-    `scan_identifier_1char`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier_1char` shl bp_TGScannerConfig_scan_identifier_1char) and
-      bm_TGScannerConfig_scan_identifier_1char)
-
-proc TGScannerConfig_scan_identifier_NULL*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_identifier_NULL) shr
-      bp_TGScannerConfig_scan_identifier_NULL
-
-proc TGScannerConfig_set_scan_identifier_NULL*(a: PGScannerConfig, 
-    `scan_identifier_NULL`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_identifier_NULL` shl bp_TGScannerConfig_scan_identifier_NULL) and
-      bm_TGScannerConfig_scan_identifier_NULL)
-
-proc TGScannerConfig_scan_symbols*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_symbols) shr
-      bp_TGScannerConfig_scan_symbols
-
-proc TGScannerConfig_set_scan_symbols*(a: PGScannerConfig, 
-                                       `scan_symbols`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_symbols` shl bp_TGScannerConfig_scan_symbols) and
-      bm_TGScannerConfig_scan_symbols)
-
-proc TGScannerConfig_scan_binary*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_binary) shr
-      bp_TGScannerConfig_scan_binary
-
-proc TGScannerConfig_set_scan_binary*(a: PGScannerConfig, 
-                                      `scan_binary`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_binary` shl bp_TGScannerConfig_scan_binary) and
-      bm_TGScannerConfig_scan_binary)
-
-proc TGScannerConfig_scan_octal*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_octal) shr
-      bp_TGScannerConfig_scan_octal
-
-proc TGScannerConfig_set_scan_octal*(a: PGScannerConfig, `scan_octal`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_octal` shl bp_TGScannerConfig_scan_octal) and
-      bm_TGScannerConfig_scan_octal)
-
-proc TGScannerConfig_scan_float*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_float) shr
-      bp_TGScannerConfig_scan_float
-
-proc TGScannerConfig_set_scan_float*(a: PGScannerConfig, `scan_float`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_float` shl bp_TGScannerConfig_scan_float) and
-      bm_TGScannerConfig_scan_float)
-
-proc TGScannerConfig_scan_hex*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_hex) shr
-      bp_TGScannerConfig_scan_hex
-
-proc TGScannerConfig_set_scan_hex*(a: PGScannerConfig, `scan_hex`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_hex` shl bp_TGScannerConfig_scan_hex) and
-      bm_TGScannerConfig_scan_hex)
-
-proc TGScannerConfig_scan_hex_dollar*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_hex_dollar) shr
-      bp_TGScannerConfig_scan_hex_dollar
-
-proc TGScannerConfig_set_scan_hex_dollar*(a: PGScannerConfig, 
-    `scan_hex_dollar`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_hex_dollar` shl bp_TGScannerConfig_scan_hex_dollar) and
-      bm_TGScannerConfig_scan_hex_dollar)
-
-proc TGScannerConfig_scan_string_sq*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_string_sq) shr
-      bp_TGScannerConfig_scan_string_sq
-
-proc TGScannerConfig_set_scan_string_sq*(a: PGScannerConfig, 
-    `scan_string_sq`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_string_sq` shl bp_TGScannerConfig_scan_string_sq) and
-      bm_TGScannerConfig_scan_string_sq)
-
-proc TGScannerConfig_scan_string_dq*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scan_string_dq) shr
-      bp_TGScannerConfig_scan_string_dq
-
-proc TGScannerConfig_set_scan_string_dq*(a: PGScannerConfig, 
-    `scan_string_dq`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scan_string_dq` shl bp_TGScannerConfig_scan_string_dq) and
-      bm_TGScannerConfig_scan_string_dq)
-
-proc TGScannerConfig_numbers_2_int*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_numbers_2_int) shr
-      bp_TGScannerConfig_numbers_2_int
-
-proc TGScannerConfig_set_numbers_2_int*(a: PGScannerConfig, 
-                                        `numbers_2_int`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`numbers_2_int` shl bp_TGScannerConfig_numbers_2_int) and
-      bm_TGScannerConfig_numbers_2_int)
-
-proc TGScannerConfig_int_2_float*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_int_2_float) shr
-      bp_TGScannerConfig_int_2_float
-
-proc TGScannerConfig_set_int_2_float*(a: PGScannerConfig, 
-                                      `int_2_float`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`int_2_float` shl bp_TGScannerConfig_int_2_float) and
-      bm_TGScannerConfig_int_2_float)
-
-proc TGScannerConfig_identifier_2_string*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_identifier_2_string) shr
-      bp_TGScannerConfig_identifier_2_string
-
-proc TGScannerConfig_set_identifier_2_string*(a: PGScannerConfig, 
-    `identifier_2_string`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`identifier_2_string` shl bp_TGScannerConfig_identifier_2_string) and
-      bm_TGScannerConfig_identifier_2_string)
-
-proc TGScannerConfig_char_2_token*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_char_2_token) shr
-      bp_TGScannerConfig_char_2_token
-
-proc TGScannerConfig_set_char_2_token*(a: PGScannerConfig, 
-                                       `char_2_token`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`char_2_token` shl bp_TGScannerConfig_char_2_token) and
-      bm_TGScannerConfig_char_2_token)
-
-proc TGScannerConfig_symbol_2_token*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_symbol_2_token) shr
-      bp_TGScannerConfig_symbol_2_token
-
-proc TGScannerConfig_set_symbol_2_token*(a: PGScannerConfig, 
-    `symbol_2_token`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`symbol_2_token` shl bp_TGScannerConfig_symbol_2_token) and
-      bm_TGScannerConfig_symbol_2_token)
-
-proc TGScannerConfig_scope_0_fallback*(a: PGScannerConfig): guint = 
-  result = (a.flag0 and bm_TGScannerConfig_scope_0_fallback) shr
-      bp_TGScannerConfig_scope_0_fallback
-
-proc TGScannerConfig_set_scope_0_fallback*(a: PGScannerConfig, 
-    `scope_0_fallback`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`scope_0_fallback` shl bp_TGScannerConfig_scope_0_fallback) and
-      bm_TGScannerConfig_scope_0_fallback)
-
-proc freeze_symbol_table*(scanner: PGScanner) = 
-  if Scanner == nil: nil
-  
-proc thaw_symbol_table*(scanner: PGScanner) = 
-  if Scanner == nil: nil
-  
-proc G_SHELL_ERROR*(): TGQuark = 
-  result = g_shell_error_quark()
-
-proc G_SPAWN_ERROR*(): TGQuark = 
-  result = g_spawn_error_quark()
-
-when false: 
-  proc g_ascii_isalnum*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_ALNUM) != 0
-
-  proc g_ascii_isalpha*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_ALPHA) != 0
-
-  proc g_ascii_iscntrl*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_CNTRL) != 0
-
-  proc g_ascii_isdigit*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_DIGIT) != 0
-
-  proc g_ascii_isgraph*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_GRAPH) != 0
-
-  proc g_ascii_islower*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_LOWER) != 0
-
-  proc g_ascii_isprint*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_PRINT) != 0
-
-  proc g_ascii_ispunct*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_PUNCT) != 0
-
-  proc g_ascii_isspace*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_SPACE) != 0
-
-  proc g_ascii_isupper*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_UPPER) != 0
-
-  proc g_ascii_isxdigit*(c: gchar): bool = 
-    result = ((g_ascii_table[guchar(c)]) and G_ASCII_XDIGIT) != 0
-
-  proc g_strstrip*(str: cstring): cstring = 
-    result = g_strchomp(g_strchug(str))
-
-proc G_TYPE_MAKE_FUNDAMENTAL*(x: int): GType = 
-  result = GType(x shl G_TYPE_FUNDAMENTAL_SHIFT)
-
-proc G_TYPE_IS_FUNDAMENTAL*(theType: GType): bool = 
-  result = theType <= G_TYPE_FUNDAMENTAL_MAX
-
-proc G_TYPE_IS_DERIVED*(theType: GType): bool = 
-  result = theType > G_TYPE_FUNDAMENTAL_MAX
-
-proc G_TYPE_IS_INTERFACE*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_INTERFACE
-
-proc G_TYPE_IS_CLASSED*(theType: GType): gboolean = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_CLASSED)
-
-proc G_TYPE_IS_INSTANTIATABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_INSTANTIATABLE)
-
-proc G_TYPE_IS_DERIVABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_DERIVABLE)
-
-proc G_TYPE_IS_DEEP_DERIVABLE*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_DEEP_DERIVABLE)
-
-proc G_TYPE_IS_ABSTRACT*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_ABSTRACT)
-
-proc G_TYPE_IS_VALUE_ABSTRACT*(theType: GType): bool = 
-  result = private_g_type_test_flags(theType, G_TYPE_FLAG_VALUE_ABSTRACT)
-
-proc G_TYPE_IS_VALUE_TYPE*(theType: GType): bool = 
-  result = private_g_type_check_is_value_type(theType)
-
-proc G_TYPE_HAS_VALUE_TABLE*(theType: GType): bool = 
-  result = (g_type_value_table_peek(theType)) != nil
-
-proc G_TYPE_CHECK_INSTANCE*(instance: Pointer): gboolean = 
-  result = private_g_type_check_instance(cast[PGTypeInstance](instance))
-
-proc G_TYPE_CHECK_INSTANCE_CAST*(instance: Pointer, g_type: GType): PGTypeInstance = 
-  result = cast[PGTypeInstance](private_g_type_check_instance_cast(
-      cast[PGTypeInstance](instance), g_type))
-
-proc G_TYPE_CHECK_INSTANCE_TYPE*(instance: Pointer, g_type: GType): bool = 
-  result = private_g_type_check_instance_is_a(cast[PGTypeInstance](instance), 
-      g_type)
-
-proc G_TYPE_INSTANCE_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass = 
-  result = cast[PGTypeInstance](Instance).g_class
-  result = private_g_type_check_class_cast(result, g_type)
-
-proc G_TYPE_INSTANCE_GET_INTERFACE*(instance: Pointer, g_type: GType): Pointer = 
-  result = g_type_interface_peek((cast[PGTypeInstance](instance)).g_class, 
-                                 g_type)
-
-proc G_TYPE_CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer = 
-  result = private_g_type_check_class_cast(cast[PGTypeClass](g_class), g_type)
-
-proc G_TYPE_CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool = 
-  result = private_g_type_check_class_is_a(cast[PGTypeClass](g_class), g_type)
-
-proc G_TYPE_CHECK_VALUE*(value: Pointer): bool = 
-  result = private_g_type_check_value(cast[PGValue](Value))
-
-proc G_TYPE_CHECK_VALUE_TYPE*(value: pointer, g_type: GType): bool = 
-  result = private_g_type_check_value_holds(cast[PGValue](value), g_type)
-
-proc G_TYPE_FROM_INSTANCE*(instance: Pointer): GType = 
-  result = G_TYPE_FROM_CLASS((cast[PGTypeInstance](instance)).g_class)
-
-proc G_TYPE_FROM_CLASS*(g_class: Pointer): GType = 
-  result = (cast[PGTypeClass](g_class)).g_type
-
-proc G_TYPE_FROM_INTERFACE*(g_iface: Pointer): GType = 
-  result = (cast[PGTypeInterface](g_iface)).g_type
-
-proc G_TYPE_IS_VALUE*(theType: GType): bool = 
-  result = private_g_type_check_is_value_type(theType)
-
-proc G_IS_VALUE*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE(value)
-
-proc G_VALUE_TYPE*(value: Pointer): GType = 
-  result = (cast[PGValue](value)).g_type
-
-proc G_VALUE_TYPE_NAME*(value: Pointer): cstring = 
-  result = g_type_name(G_VALUE_TYPE(value))
-
-proc G_VALUE_HOLDS*(value: pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, g_type)
-
-proc G_TYPE_IS_PARAM*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_PARAM
-
-proc G_PARAM_SPEC*(pspec: Pointer): PGParamSpec = 
-  result = cast[PGParamSpec](G_TYPE_CHECK_INSTANCE_CAST(pspec, G_TYPE_PARAM))
-
-proc G_IS_PARAM_SPEC*(pspec: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(pspec, G_TYPE_PARAM)
-
-proc G_PARAM_SPEC_CLASS*(pclass: Pointer): PGParamSpecClass = 
-  result = cast[PGParamSpecClass](G_TYPE_CHECK_CLASS_CAST(pclass, G_TYPE_PARAM))
-
-proc G_IS_PARAM_SPEC_CLASS*(pclass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(pclass, G_TYPE_PARAM)
-
-proc G_PARAM_SPEC_GET_CLASS*(pspec: Pointer): PGParamSpecClass = 
-  result = cast[PGParamSpecClass](G_TYPE_INSTANCE_GET_CLASS(pspec, G_TYPE_PARAM))
-
-proc G_PARAM_SPEC_TYPE*(pspec: Pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(pspec)
-
-proc G_PARAM_SPEC_TYPE_NAME*(pspec: Pointer): cstring = 
-  result = g_type_name(G_PARAM_SPEC_TYPE(pspec))
-
-proc G_PARAM_SPEC_VALUE_TYPE*(pspec: Pointer): GType = 
-  result = (G_PARAM_SPEC(pspec)).value_type
-
-proc G_VALUE_HOLDS_PARAM*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_PARAM)
-
-proc G_CLOSURE_NEEDS_MARSHAL*(closure: Pointer): bool = 
-  result = cast[PGClosure](closure).marshal == nil
-
-proc N_NOTIFIERS*(cl: PGClosure): int32 = 
-  result = ((meta_marshal(cl) + ((n_guards(cl)) shl 1'i32)) +
-      (n_fnotifiers(cl))) + (n_inotifiers(cl))
-
-proc CCLOSURE_SWAP_DATA*(cclosure: PGClosure): int32 = 
-  result = derivative_flag(cclosure)
-
-proc G_CALLBACK*(f: pointer): TGCallback = 
-  result = cast[TGCallback](f)
-
-proc ref_count*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_ref_count) shr bp_TGClosure_ref_count
-
-proc set_ref_count*(a: PGClosure, `ref_count`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`ref_count` shl bp_TGClosure_ref_count) and bm_TGClosure_ref_count)
-
-proc meta_marshal*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_meta_marshal) shr
-      bp_TGClosure_meta_marshal
-
-proc set_meta_marshal*(a: PGClosure, `meta_marshal`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`meta_marshal` shl bp_TGClosure_meta_marshal) and
-      bm_TGClosure_meta_marshal)
-
-proc n_guards*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_guards) shr bp_TGClosure_n_guards
-
-proc set_n_guards*(a: PGClosure, `n_guards`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_guards` shl bp_TGClosure_n_guards) and bm_TGClosure_n_guards)
-
-proc n_fnotifiers*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_fnotifiers) shr
-      bp_TGClosure_n_fnotifiers
-
-proc set_n_fnotifiers*(a: PGClosure, `n_fnotifiers`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_fnotifiers` shl bp_TGClosure_n_fnotifiers) and
-      bm_TGClosure_n_fnotifiers)
-
-proc n_inotifiers*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_n_inotifiers) shr
-      bp_TGClosure_n_inotifiers
-
-proc set_n_inotifiers*(a: PGClosure, `n_inotifiers`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`n_inotifiers` shl bp_TGClosure_n_inotifiers) and
-      bm_TGClosure_n_inotifiers)
-
-proc in_inotify*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_in_inotify) shr bp_TGClosure_in_inotify
-
-proc set_in_inotify*(a: PGClosure, `in_inotify`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`in_inotify` shl bp_TGClosure_in_inotify) and bm_TGClosure_in_inotify)
-
-proc floating*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_floating) shr bp_TGClosure_floating
-
-proc set_floating*(a: PGClosure, `floating`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`floating` shl bp_TGClosure_floating) and bm_TGClosure_floating)
-
-proc derivative_flag*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_derivative_flag) shr
-      bp_TGClosure_derivative_flag
-
-proc set_derivative_flag*(a: PGClosure, `derivative_flag`: guint) = 
-  a.flag0 = a.flag0 or
-      ((`derivative_flag` shl bp_TGClosure_derivative_flag) and
-      bm_TGClosure_derivative_flag)
-
-proc in_marshal*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_in_marshal) shr bp_TGClosure_in_marshal
-
-proc set_in_marshal*(a: PGClosure, in_marshal: guint) = 
-  a.flag0 = a.flag0 or
-      ((in_marshal shl bp_TGClosure_in_marshal) and bm_TGClosure_in_marshal)
-
-proc is_invalid*(a: PGClosure): guint = 
-  result = (a.flag0 and bm_TGClosure_is_invalid) shr bp_TGClosure_is_invalid
-
-proc set_is_invalid*(a: PGClosure, is_invalid: guint) = 
-  a.flag0 = a.flag0 or
-      ((is_invalid shl bp_TGClosure_is_invalid) and bm_TGClosure_is_invalid)
-
-proc g_signal_connect*(instance: gpointer, detailed_signal: cstring, 
-                       c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, TGConnectFlags(0))
-
-proc g_signal_connect_after*(instance: gpointer, detailed_signal: cstring, 
-                             c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, G_CONNECT_AFTER)
-
-proc g_signal_connect_swapped*(instance: gpointer, detailed_signal: cstring, 
-                               c_handler: TGCallback, data: gpointer): gulong = 
-  result = g_signal_connect_data(instance, detailed_signal, c_handler, data, 
-                                 nil, G_CONNECT_SWAPPED)
-
-proc g_signal_handlers_disconnect_by_func*(instance: gpointer, 
-    func, data: gpointer): guint = 
-  result = g_signal_handlers_disconnect_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc g_signal_handlers_block_by_func*(instance: gpointer, func, data: gpointer) = 
-  discard g_signal_handlers_block_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc g_signal_handlers_unblock_by_func*(instance: gpointer, func, data: gpointer) = 
-  discard g_signal_handlers_unblock_matched(instance, 
-      TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0, 0, nil, 
-      func, data)
-
-proc G_TYPE_IS_OBJECT*(theType: GType): bool = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_OBJECT
-
-proc G_OBJECT*(anObject: pointer): PGObject = 
-  result = cast[PGObject](G_TYPE_CHECK_INSTANCE_CAST(anObject, G_TYPE_OBJECT))
-
-proc G_OBJECT_CLASS*(class: Pointer): PGObjectClass = 
-  result = cast[PGObjectClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_OBJECT))
-
-proc G_IS_OBJECT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, G_TYPE_OBJECT)
-
-proc G_IS_OBJECT_CLASS*(class: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_OBJECT)
-
-proc G_OBJECT_GET_CLASS*(anObject: pointer): PGObjectClass = 
-  result = cast[PGObjectClass](G_TYPE_INSTANCE_GET_CLASS(anObject, G_TYPE_OBJECT))
-
-proc G_OBJECT_TYPE*(anObject: pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(anObject)
-
-proc G_OBJECT_TYPE_NAME*(anObject: pointer): cstring = 
-  result = g_type_name(G_OBJECT_TYPE(anObject))
-
-proc G_OBJECT_CLASS_TYPE*(class: Pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_OBJECT_CLASS_NAME*(class: Pointer): cstring = 
-  result = g_type_name(G_OBJECT_CLASS_TYPE(class))
-
-proc G_VALUE_HOLDS_OBJECT*(value: Pointer): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_OBJECT)
-
-proc G_OBJECT_WARN_INVALID_PROPERTY_ID*(anObject: gpointer, property_id: gint, 
-                                        pspec: gpointer) = 
-  G_OBJECT_WARN_INVALID_PSPEC(anObject, "property", property_id, pspec)
-
-proc G_OBJECT_WARN_INVALID_PSPEC*(anObject: gpointer, pname: cstring, 
-                                  property_id: gint, pspec: gpointer) = 
-  var 
-    theObject: PGObject
-    pspec2: PGParamSpec
-    property_id: guint
-  theObject = cast[PGObject](anObject)
-  pspec2 = cast[PGParamSpec](pspec)
-  property_id = (property_id)
-  write(stdout, "invalid thingy\x0A")
-  #g_warning("%s: invalid %s id %u for \"%s\" of type `%s\' in `%s\'", "", pname,
-  #          `property_id`, `pspec` . name,
-  #          g_type_name(G_PARAM_SPEC_TYPE(`pspec`)),
-  #          G_OBJECT_TYPE_NAME(theobject))
-  
-proc G_TYPE_TYPE_PLUGIN*(): GType = 
-  result = g_type_plugin_get_type()
-
-proc G_TYPE_PLUGIN*(inst: Pointer): PGTypePlugin = 
-  result = PGTypePlugin(G_TYPE_CHECK_INSTANCE_CAST(inst, G_TYPE_TYPE_PLUGIN()))
-
-proc G_TYPE_PLUGIN_CLASS*(vtable: Pointer): PGTypePluginClass = 
-  result = cast[PGTypePluginClass](G_TYPE_CHECK_CLASS_CAST(vtable, 
-      G_TYPE_TYPE_PLUGIN()))
-
-proc G_IS_TYPE_PLUGIN*(inst: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(inst, G_TYPE_TYPE_PLUGIN())
-
-proc G_IS_TYPE_PLUGIN_CLASS*(vtable: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, G_TYPE_TYPE_PLUGIN())
-
-proc G_TYPE_PLUGIN_GET_CLASS*(inst: Pointer): PGTypePluginClass = 
-  result = cast[PGTypePluginClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      G_TYPE_TYPE_PLUGIN()))
-
-proc G_TYPE_IS_ENUM*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType) == G_TYPE_ENUM)
-
-proc G_ENUM_CLASS*(class: pointer): PGEnumClass = 
-  result = cast[PGEnumClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_ENUM))
-
-proc G_IS_ENUM_CLASS*(class: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_ENUM)
-
-proc G_ENUM_CLASS_TYPE*(class: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_ENUM_CLASS_TYPE_NAME*(class: pointer): cstring = 
-  result = g_type_name(G_ENUM_CLASS_TYPE(class))
-
-proc G_TYPE_IS_FLAGS*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_FLAGS
-
-proc G_FLAGS_CLASS*(class: pointer): PGFlagsClass = 
-  result = cast[PGFlagsClass](G_TYPE_CHECK_CLASS_CAST(class, G_TYPE_FLAGS))
-
-proc G_IS_FLAGS_CLASS*(class: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(class, G_TYPE_FLAGS)
-
-proc G_FLAGS_CLASS_TYPE*(class: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(class)
-
-proc G_FLAGS_CLASS_TYPE_NAME*(class: pointer): cstring = 
-  result = g_type_name(G_FLAGS_TYPE(cast[TAddress](class)))
-
-proc G_VALUE_HOLDS_ENUM*(value: pointer): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_ENUM)
-
-proc G_VALUE_HOLDS_FLAGS*(value: pointer): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_FLAGS)
-
-proc CLAMP*(x, MinX, MaxX: int): int = 
-  if x < MinX: 
-    result = MinX
-  elif x > MaxX: 
-    result = MaxX
-  else: 
-    result = x
-
-proc GPOINTER_TO_SIZE*(p: GPointer): GSize = 
-  result = GSize(cast[TAddress](p))
-
-proc GSIZE_TO_POINTER*(s: GSize): GPointer = 
-  result = cast[GPointer](s)
-
-proc HOLDS_CHAR*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_CHAR)
-
-proc HOLDS_UCHAR*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UCHAR)
-
-proc HOLDS_BOOLEAN*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_BOOLEAN)
-
-proc HOLDS_INT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_INT)
-
-proc HOLDS_UINT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UINT)
-
-proc HOLDS_LONG*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_LONG)
-
-proc HOLDS_ULONG*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_ULONG)
-
-proc HOLDS_INT64*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_INT64)
-
-proc HOLDS_UINT64*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_UINT64)
-
-proc HOLDS_FLOAT*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_FLOAT)
-
-proc HOLDS_DOUBLE*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_DOUBLE)
-
-proc HOLDS_STRING*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_STRING)
-
-proc HOLDS_POINTER*(value: PGValue): bool = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_POINTER)
-
-proc G_TYPE_IS_BOXED*(theType: GType): gboolean = 
-  result = (G_TYPE_FUNDAMENTAL(theType)) == G_TYPE_BOXED
-
-proc HOLDS_BOXED*(value: PGValue): gboolean = 
-  result = G_TYPE_CHECK_VALUE_TYPE(value, G_TYPE_BOXED)
-
-proc G_TYPE_CLOSURE*(): GType = 
-  result = g_closure_get_type()
-
-proc G_TYPE_VALUE*(): GType = 
-  result = g_value_get_type()
-
-proc G_TYPE_VALUE_ARRAY*(): GType = 
-  result = g_value_array_get_type()
-
-proc G_TYPE_GSTRING*(): GType = 
-  result = g_gstring_get_type()
-  
-proc g_thread_init*(vtable: pointer) {.
-  cdecl, dynlib: gobjectlib, importc: "g_thread_init".}
-
-proc g_timeout_add*(interval: guint, function, data: gpointer): guint {.
-  cdecl, dynlib: gliblib, importc: "g_timeout_add".}
-
-proc g_timeout_add_full*(priority: guint, interval: guint, function,
-  data, notify: gpointer): guint {.cdecl, dynlib: gliblib, 
-  importc: "g_timeout_add_full".}
-
-proc g_idle_add*(function, data: gpointer): guint {.
-  cdecl, dynlib: gliblib, importc: "g_idle_add".}
-
-proc g_idle_add_full*(priority: guint, function,
-  data, notify: gpointer): guint {.cdecl, dynlib: gliblib, 
-  importc: "g_idle_add_full".}
-
-proc g_source_remove*(tag: guint): gboolean {.
-  cdecl, dynlib: gliblib, importc: "g_source_remove".}
-
-proc g_signal_emit_by_name*(instance: gpointer, detailed_signal: cstring) {.
-  cdecl, varargs, dynlib: gobjectlib, importc.}
diff --git a/lib/wrappers/gtk/gtk2.nim b/lib/wrappers/gtk/gtk2.nim
deleted file mode 100644
index 63e69130a..000000000
--- a/lib/wrappers/gtk/gtk2.nim
+++ /dev/null
@@ -1,17064 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, atk, pango, gdk2pixbuf, gdk2
-
-export gbool, toBool
-
-when defined(win32): 
-  const 
-    lib = "libgtk-win32-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    lib = "libgtk-x11-2.0.dylib"
-  # linklib gtk-x11-2.0
-  # linklib gdk-x11-2.0
-  # linklib pango-1.0.0
-  # linklib glib-2.0.0
-  # linklib gobject-2.0.0
-  # linklib gdk_pixbuf-2.0.0
-  # linklib atk-1.0.0
-else: 
-  const 
-    lib = "libgtk-x11-2.0.so(|.0)"
-
-const 
-  MAX_COMPOSE_LEN* = 7
-
-type 
-  PObject* = ptr TObject
-  PPGtkObject* = ptr PObject
-  PArg* = ptr TArg
-  PType* = ptr TType
-  TType* = GType
-  PWidget* = ptr TWidget
-  PMisc* = ptr TMisc
-  PLabel* = ptr TLabel
-  PMenu* = ptr TMenu
-  PAnchorType* = ptr TAnchorType
-  TAnchorType* = int32
-  PArrowType* = ptr TArrowType
-  TArrowType* = int32
-  PAttachOptions* = ptr TAttachOptions
-  TAttachOptions* = int32
-  PButtonBoxStyle* = ptr TButtonBoxStyle
-  TButtonBoxStyle* = int32
-  PCurveType* = ptr TCurveType
-  TCurveType* = int32
-  PDeleteType* = ptr TDeleteType
-  TDeleteType* = int32
-  PDirectionType* = ptr TDirectionType
-  TDirectionType* = int32
-  PExpanderStyle* = ptr TExpanderStyle
-  TExpanderStyle* = int32
-  PPGtkIconSize* = ptr PIconSize
-  PIconSize* = ptr TIconSize
-  TIconSize* = int32
-  PTextDirection* = ptr TTextDirection
-  TTextDirection* = int32
-  PJustification* = ptr TJustification
-  TJustification* = int32
-  PMenuDirectionType* = ptr TMenuDirectionType
-  TMenuDirectionType* = int32
-  PMetricType* = ptr TMetricType
-  TMetricType* = int32
-  PMovementStep* = ptr TMovementStep
-  TMovementStep* = int32
-  POrientation* = ptr TOrientation
-  TOrientation* = int32
-  PCornerType* = ptr TCornerType
-  TCornerType* = int32
-  PPackType* = ptr TPackType
-  TPackType* = int32
-  PPathPriorityType* = ptr TPathPriorityType
-  TPathPriorityType* = int32
-  PPathType* = ptr TPathType
-  TPathType* = int32
-  PPolicyType* = ptr TPolicyType
-  TPolicyType* = int32
-  PPositionType* = ptr TPositionType
-  TPositionType* = int32
-  PReliefStyle* = ptr TReliefStyle
-  TReliefStyle* = int32
-  PResizeMode* = ptr TResizeMode
-  TResizeMode* = int32
-  PScrollType* = ptr TScrollType
-  TScrollType* = int32
-  PSelectionMode* = ptr TSelectionMode
-  TSelectionMode* = int32
-  PShadowType* = ptr TShadowType
-  TShadowType* = int32
-  PStateType* = ptr TStateType
-  TStateType* = int32
-  PSubmenuDirection* = ptr TSubmenuDirection
-  TSubmenuDirection* = int32
-  PSubmenuPlacement* = ptr TSubmenuPlacement
-  TSubmenuPlacement* = int32
-  PToolbarStyle* = ptr TToolbarStyle
-  TToolbarStyle* = int32
-  PUpdateType* = ptr TUpdateType
-  TUpdateType* = int32
-  PVisibility* = ptr TVisibility
-  TVisibility* = int32
-  PWindowPosition* = ptr TWindowPosition
-  TWindowPosition* = int32
-  PWindowType* = ptr TWindowType
-  TWindowType* = int32
-  PWrapMode* = ptr TWrapMode
-  TWrapMode* = int32
-  PSortType* = ptr TSortType
-  TSortType* = int32
-  PStyle* = ptr TStyle
-  PPGtkTreeModel* = ptr PTreeModel
-  PTreeModel* = pointer
-  PTreePath* = pointer
-  PTreeIter* = ptr TTreeIter
-  PSelectionData* = ptr TSelectionData
-  PTextTagTable* = ptr TTextTagTable
-  PTextBTreeNode* = pointer
-  PTextBTree* = pointer
-  PTextLine* = ptr TTextLine
-  PTreeViewColumn* = ptr TTreeViewColumn
-  PTreeView* = ptr TTreeView
-  TTreeViewColumnDropFunc* = proc (tree_view: PTreeView, 
-                                   column: PTreeViewColumn, 
-                                   prev_column: PTreeViewColumn, 
-                                   next_column: PTreeViewColumn, data: gpointer): gboolean{.
-      cdecl.}
-  TTreeViewMappingFunc* = proc (tree_view: PTreeView, path: PTreePath, 
-                                user_data: gpointer){.cdecl.}
-  TTreeViewSearchEqualFunc* = proc (model: PTreeModel, column: gint, 
-                                    key: cstring, iter: PTreeIter, 
-                                    search_data: gpointer): gboolean{.cdecl.}
-  TTreeDestroyCountFunc* = proc (tree_view: PTreeView, path: PTreePath, 
-                                 children: gint, user_data: gpointer){.cdecl.}
-  PTreeViewDropPosition* = ptr TTreeViewDropPosition
-  TTreeViewDropPosition* = enum 
-    TREE_VIEW_DROP_BEFORE, TREE_VIEW_DROP_AFTER, TREE_VIEW_DROP_INTO_OR_BEFORE, 
-    TREE_VIEW_DROP_INTO_OR_AFTER
-  PObjectFlags* = ptr TObjectFlags
-  TObjectFlags* = int32
-  TObject* = object of TGObject
-    flags*: guint32
-
-  PObjectClass* = ptr TObjectClass
-  TObjectClass* = object of TGObjectClass
-    set_arg*: proc (anObject: PObject, arg: PArg, arg_id: guint){.cdecl.}
-    get_arg*: proc (anObject: PObject, arg: PArg, arg_id: guint){.cdecl.}
-    destroy*: proc (anObject: PObject){.cdecl.}
-
-  PFundamentalType* = ptr TFundamentalType
-  TFundamentalType* = GType
-  TFunction* = proc (data: gpointer): gboolean{.cdecl.}
-  TDestroyNotify* = proc (data: gpointer){.cdecl.}
-  TCallbackMarshal* = proc (anObject: PObject, data: gpointer, n_args: guint, 
-                            args: PArg){.cdecl.}
-  TSignalFunc* = proc (para1: pointer){.cdecl.}
-  PSignalMarshaller* = ptr TSignalMarshaller
-  TSignalMarshaller* = TGSignalCMarshaller
-  TArgSignalData*{.final, pure.} = object 
-    f*: TSignalFunc
-    d*: gpointer
-
-  TArg*{.final, pure.} = object 
-    `type`*: TType
-    name*: cstring
-    d*: gdouble               # was a union type
-  
-  PTypeInfo* = ptr TTypeInfo
-  TTypeInfo*{.final, pure.} = object 
-    type_name*: cstring
-    object_size*: guint
-    class_size*: guint
-    class_init_func*: pointer #TGtkClassInitFunc
-    object_init_func*: pointer #TGtkObjectInitFunc
-    reserved_1*: gpointer
-    reserved_2*: gpointer
-    base_class_init_func*: pointer #TGtkClassInitFunc
-  
-  PEnumValue* = ptr TEnumValue
-  TEnumValue* = TGEnumValue
-  PFlagValue* = ptr TFlagValue
-  TFlagValue* = TGFlagsValue
-  PWidgetFlags* = ptr TWidgetFlags
-  TWidgetFlags* = int32
-  PWidgetHelpType* = ptr TWidgetHelpType
-  TWidgetHelpType* = enum 
-    WIDGET_HELP_TOOLTIP, WIDGET_HELP_WHATS_THIS
-  PAllocation* = ptr TAllocation
-  TAllocation* = Gdk2.TRectangle
-  TCallback* = proc (widget: PWidget, data: gpointer){.cdecl.}
-  PRequisition* = ptr TRequisition
-  TRequisition*{.final, pure.} = object 
-    width*: gint
-    height*: gint
-
-  TWidget* = object of TObject
-    private_flags*: guint16
-    state*: guint8
-    saved_state*: guint8
-    name*: cstring
-    style*: PStyle
-    requisition*: TRequisition
-    allocation*: TAllocation
-    window*: Gdk2.PWindow
-    parent*: PWidget
-
-  PWidgetClass* = ptr TWidgetClass
-  TWidgetClass* = object of TObjectClass
-    activate_signal*: guint
-    set_scroll_adjustments_signal*: guint
-    dispatch_child_properties_changed*: proc (widget: PWidget, n_pspecs: guint, 
-        pspecs: PPGParamSpec){.cdecl.}
-    show*: proc (widget: PWidget){.cdecl.}
-    show_all*: proc (widget: PWidget){.cdecl.}
-    hide*: proc (widget: PWidget){.cdecl.}
-    hide_all*: proc (widget: PWidget){.cdecl.}
-    map*: proc (widget: PWidget){.cdecl.}
-    unmap*: proc (widget: PWidget){.cdecl.}
-    realize*: proc (widget: PWidget){.cdecl.}
-    unrealize*: proc (widget: PWidget){.cdecl.}
-    size_request*: proc (widget: PWidget, requisition: PRequisition){.cdecl.}
-    size_allocate*: proc (widget: PWidget, allocation: PAllocation){.cdecl.}
-    state_changed*: proc (widget: PWidget, previous_state: TStateType){.cdecl.}
-    parent_set*: proc (widget: PWidget, previous_parent: PWidget){.cdecl.}
-    hierarchy_changed*: proc (widget: PWidget, previous_toplevel: PWidget){.
-        cdecl.}
-    style_set*: proc (widget: PWidget, previous_style: PStyle){.cdecl.}
-    direction_changed*: proc (widget: PWidget, 
-                              previous_direction: TTextDirection){.cdecl.}
-    grab_notify*: proc (widget: PWidget, was_grabbed: gboolean){.cdecl.}
-    child_notify*: proc (widget: PWidget, pspec: PGParamSpec){.cdecl.}
-    mnemonic_activate*: proc (widget: PWidget, group_cycling: gboolean): gboolean{.
-        cdecl.}
-    grab_focus*: proc (widget: PWidget){.cdecl.}
-    focus*: proc (widget: PWidget, direction: TDirectionType): gboolean{.cdecl.}
-    event*: proc (widget: PWidget, event: Gdk2.PEvent): gboolean{.cdecl.}
-    button_press_event*: proc (widget: PWidget, event: PEventButton): gboolean{.
-        cdecl.}
-    button_release_event*: proc (widget: PWidget, event: PEventButton): gboolean{.
-        cdecl.}
-    scroll_event*: proc (widget: PWidget, event: PEventScroll): gboolean{.
-        cdecl.}
-    motion_notify_event*: proc (widget: PWidget, event: PEventMotion): gboolean{.
-        cdecl.}
-    delete_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    destroy_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    expose_event*: proc (widget: PWidget, event: PEventExpose): gboolean{.
-        cdecl.}
-    key_press_event*: proc (widget: PWidget, event: PEventKey): gboolean{.
-        cdecl.}
-    key_release_event*: proc (widget: PWidget, event: PEventKey): gboolean{.
-        cdecl.}
-    enter_notify_event*: proc (widget: PWidget, event: PEventCrossing): gboolean{.
-        cdecl.}
-    leave_notify_event*: proc (widget: PWidget, event: PEventCrossing): gboolean{.
-        cdecl.}
-    configure_event*: proc (widget: PWidget, event: PEventConfigure): gboolean{.
-        cdecl.}
-    focus_in_event*: proc (widget: PWidget, event: PEventFocus): gboolean{.
-        cdecl.}
-    focus_out_event*: proc (widget: PWidget, event: PEventFocus): gboolean{.
-        cdecl.}
-    map_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    unmap_event*: proc (widget: PWidget, event: PEventAny): gboolean{.cdecl.}
-    property_notify_event*: proc (widget: PWidget, event: PEventProperty): gboolean{.
-        cdecl.}
-    selection_clear_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    selection_request_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    selection_notify_event*: proc (widget: PWidget, event: PEventSelection): gboolean{.
-        cdecl.}
-    proximity_in_event*: proc (widget: PWidget, event: PEventProximity): gboolean{.
-        cdecl.}
-    proximity_out_event*: proc (widget: PWidget, event: PEventProximity): gboolean{.
-        cdecl.}
-    visibility_notify_event*: proc (widget: PWidget, event: PEventVisibility): gboolean{.
-        cdecl.}
-    client_event*: proc (widget: PWidget, event: PEventClient): gboolean{.
-        cdecl.}
-    no_expose_event*: proc (widget: PWidget, event: PEventAny): gboolean{.
-        cdecl.}
-    window_state_event*: proc (widget: PWidget, event: PEventWindowState): gboolean{.
-        cdecl.}
-    selection_get*: proc (widget: PWidget, selection_data: PSelectionData, 
-                          info: guint, time: guint){.cdecl.}
-    selection_received*: proc (widget: PWidget, selection_data: PSelectionData, 
-                               time: guint){.cdecl.}
-    drag_begin*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_end*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_data_get*: proc (widget: PWidget, context: PDragContext, 
-                          selection_data: PSelectionData, info: guint, 
-                          time: guint){.cdecl.}
-    drag_data_delete*: proc (widget: PWidget, context: PDragContext){.cdecl.}
-    drag_leave*: proc (widget: PWidget, context: PDragContext, time: guint){.
-        cdecl.}
-    drag_motion*: proc (widget: PWidget, context: PDragContext, x: gint, 
-                        y: gint, time: guint): gboolean{.cdecl.}
-    drag_drop*: proc (widget: PWidget, context: PDragContext, x: gint, 
-                      y: gint, time: guint): gboolean{.cdecl.}
-    drag_data_received*: proc (widget: PWidget, context: PDragContext, 
-                               x: gint, y: gint, selection_data: PSelectionData, 
-                               info: guint, time: guint){.cdecl.}
-    popup_menu*: proc (widget: PWidget): gboolean{.cdecl.}
-    show_help*: proc (widget: PWidget, help_type: TWidgetHelpType): gboolean{.
-        cdecl.}
-    get_accessible*: proc (widget: PWidget): atk.PObject{.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-    reserved5*: proc (){.cdecl.}
-    reserved6*: proc (){.cdecl.}
-    reserved7*: proc (){.cdecl.}
-    reserved8*: proc (){.cdecl.}
-
-  PWidgetAuxInfo* = ptr TWidgetAuxInfo
-  TWidgetAuxInfo*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    width*: gint
-    height*: gint
-    flag0*: guint16
-
-  PWidgetShapeInfo* = ptr TWidgetShapeInfo
-  TWidgetShapeInfo*{.final, pure.} = object 
-    offset_x*: gint16
-    offset_y*: gint16
-    shape_mask*: gdk2.PBitmap
-
-  TMisc* = object of TWidget
-    xalign*: gfloat
-    yalign*: gfloat
-    xpad*: guint16
-    ypad*: guint16
-
-  PMiscClass* = ptr TMiscClass
-  TMiscClass* = object of TWidgetClass
-  PAccelFlags* = ptr TAccelFlags
-  TAccelFlags* = int32
-  PAccelGroup* = ptr TAccelGroup
-  PAccelGroupEntry* = ptr TAccelGroupEntry
-  TAccelGroupActivate* = proc (accel_group: PAccelGroup, 
-                               acceleratable: PGObject, keyval: guint, 
-                               modifier: gdk2.TModifierType): gboolean{.cdecl.}
-  TAccelGroup* = object of TGObject
-    lock_count*: guint
-    modifier_mask*: gdk2.TModifierType
-    acceleratables*: PGSList
-    n_accels*: guint
-    priv_accels*: PAccelGroupEntry
-
-  PAccelGroupClass* = ptr TAccelGroupClass
-  TAccelGroupClass* = object of TGObjectClass
-    accel_changed*: proc (accel_group: PAccelGroup, keyval: guint, 
-                          modifier: gdk2.TModifierType, accel_closure: PGClosure){.
-        cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PAccelKey* = ptr TAccelKey
-  TAccelKey*{.final, pure.} = object 
-    accel_key*: guint
-    accel_mods*: gdk2.TModifierType
-    flag0*: guint16
-
-  TAccelGroupEntry*{.final, pure.} = object 
-    key*: TAccelKey
-    closure*: PGClosure
-    accel_path_quark*: TGQuark
-
-  Taccel_group_find_func* = proc (key: PAccelKey, closure: PGClosure, 
-                                  data: gpointer): gboolean{.cdecl.}
-  PContainer* = ptr TContainer
-  TContainer* = object of TWidget
-    focus_child*: PWidget
-    Container_flag0*: int32
-
-  PContainerClass* = ptr TContainerClass
-  TContainerClass* = object of TWidgetClass
-    add*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    remove*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    check_resize*: proc (container: PContainer){.cdecl.}
-    forall*: proc (container: PContainer, include_internals: gboolean, 
-                   callback: TCallback, callback_data: gpointer){.cdecl.}
-    set_focus_child*: proc (container: PContainer, widget: PWidget){.cdecl.}
-    child_type*: proc (container: PContainer): TType{.cdecl.}
-    composite_name*: proc (container: PContainer, child: PWidget): cstring{.
-        cdecl.}
-    set_child_property*: proc (container: PContainer, child: PWidget, 
-                               property_id: guint, value: PGValue, 
-                               pspec: PGParamSpec){.cdecl.}
-    get_child_property*: proc (container: PContainer, child: PWidget, 
-                               property_id: guint, value: PGValue, 
-                               pspec: PGParamSpec){.cdecl.}
-    reserved20: proc (){.cdecl.}
-    reserved21: proc (){.cdecl.}
-    reserved23: proc (){.cdecl.}
-    reserved24: proc (){.cdecl.}
-
-  PBin* = ptr TBin
-  TBin* = object of TContainer
-    child*: PWidget
-
-  PBinClass* = ptr TBinClass
-  TBinClass* = object of TContainerClass
-  PWindowGeometryInfo* = pointer
-  PWindowGroup* = ptr TWindowGroup
-  PWindow* = ptr TWindow
-  TWindow* = object of TBin
-    title*: cstring
-    wmclass_name*: cstring
-    wmclass_class*: cstring
-    wm_role*: cstring
-    focus_widget*: PWidget
-    default_widget*: PWidget
-    transient_parent*: PWindow
-    geometry_info*: PWindowGeometryInfo
-    frame*: gdk2.PWindow
-    group*: PWindowGroup
-    configure_request_count*: guint16
-    window_flag0*: int32
-    frame_left*: guint
-    frame_top*: guint
-    frame_right*: guint
-    frame_bottom*: guint
-    keys_changed_handler*: guint
-    mnemonic_modifier*: gdk2.TModifierType
-    screen*: gdk2.PScreen
-
-  PWindowClass* = ptr TWindowClass
-  TWindowClass* = object of TBinClass
-    set_focus*: proc (window: PWindow, focus: PWidget){.cdecl.}
-    frame_event*: proc (window: PWindow, event: gdk2.PEvent): gboolean{.cdecl.}
-    activate_focus*: proc (window: PWindow){.cdecl.}
-    activate_default*: proc (window: PWindow){.cdecl.}
-    move_focus*: proc (window: PWindow, direction: TDirectionType){.cdecl.}
-    keys_changed*: proc (window: PWindow){.cdecl.}
-    reserved30: proc (){.cdecl.}
-    reserved31: proc (){.cdecl.}
-    reserved32: proc (){.cdecl.}
-    reserved33: proc (){.cdecl.}
-
-  TWindowGroup* = object of TGObject
-    grabs*: PGSList
-
-  PWindowGroupClass* = ptr TWindowGroupClass
-  TWindowGroupClass* = object of TGObjectClass
-    reserved40: proc (){.cdecl.}
-    reserved41: proc (){.cdecl.}
-    reserved42: proc (){.cdecl.}
-    reserved43: proc (){.cdecl.}
-
-  TWindowKeysForeachFunc* = proc (window: PWindow, keyval: guint, 
-                                  modifiers: gdk2.TModifierType, 
-                                  is_mnemonic: gboolean, data: gpointer){.cdecl.}
-  PLabelSelectionInfo* = pointer
-  TLabel* = object of TMisc
-    `label`*: cstring
-    Label_flag0*: guint16
-    mnemonic_keyval*: guint
-    text*: cstring
-    attrs*: pango.PAttrList
-    effective_attrs*: pango.PAttrList
-    layout*: pango.PLayout
-    mnemonic_widget*: PWidget
-    mnemonic_window*: PWindow
-    select_info*: PLabelSelectionInfo
-
-  PLabelClass* = ptr TLabelClass
-  TLabelClass* = object of TMiscClass
-    move_cursor*: proc (`label`: PLabel, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    copy_clipboard*: proc (`label`: PLabel){.cdecl.}
-    populate_popup*: proc (`label`: PLabel, menu: PMenu){.cdecl.}
-    reserved50: proc (){.cdecl.}
-    reserved51: proc (){.cdecl.}
-    reserved52: proc (){.cdecl.}
-    reserved53: proc (){.cdecl.}
-
-  PAccelLabel* = ptr TAccelLabel
-  TAccelLabel* = object of TLabel
-    queue_id*: guint
-    accel_padding*: guint
-    accel_widget*: PWidget
-    accel_closure*: PGClosure
-    accel_group*: PAccelGroup
-    accel_string*: cstring
-    accel_string_width*: guint16
-
-  PAccelLabelClass* = ptr TAccelLabelClass
-  TAccelLabelClass* = object of TLabelClass
-    signal_quote1*: cstring
-    signal_quote2*: cstring
-    mod_name_shift*: cstring
-    mod_name_control*: cstring
-    mod_name_alt*: cstring
-    mod_separator*: cstring
-    accel_seperator*: cstring
-    AccelLabelClass_flag0*: guint16
-    reserved61: proc (){.cdecl.}
-    reserved62: proc (){.cdecl.}
-    reserved63: proc (){.cdecl.}
-    reserved64: proc (){.cdecl.}
-
-  TAccelMapForeach* = proc (data: gpointer, accel_path: cstring, 
-                            accel_key: guint, accel_mods: gdk2.TModifierType, 
-                            changed: gboolean){.cdecl.}
-  PAccessible* = ptr TAccessible
-  TAccessible* = object of atk.TObject
-    widget*: PWidget
-
-  PAccessibleClass* = ptr TAccessibleClass
-  TAccessibleClass* = object of atk.TObjectClass
-    connect_widget_destroyed*: proc (accessible: PAccessible){.cdecl.}
-    reserved71: proc (){.cdecl.}
-    reserved72: proc (){.cdecl.}
-    reserved73: proc (){.cdecl.}
-    reserved74: proc (){.cdecl.}
-
-  PAdjustment* = ptr TAdjustment
-  TAdjustment* = object of TObject
-    lower*: gdouble
-    upper*: gdouble
-    value*: gdouble
-    step_increment*: gdouble
-    page_increment*: gdouble
-    page_size*: gdouble
-
-  PAdjustmentClass* = ptr TAdjustmentClass
-  TAdjustmentClass* = object of TObjectClass
-    changed*: proc (adjustment: PAdjustment){.cdecl.}
-    value_changed*: proc (adjustment: PAdjustment){.cdecl.}
-    reserved81: proc (){.cdecl.}
-    reserved82: proc (){.cdecl.}
-    reserved83: proc (){.cdecl.}
-    reserved84: proc (){.cdecl.}
-
-  PAlignment* = ptr TAlignment
-  TAlignment* = object of TBin
-    xalign*: gfloat
-    yalign*: gfloat
-    xscale*: gfloat
-    yscale*: gfloat
-
-  PAlignmentClass* = ptr TAlignmentClass
-  TAlignmentClass* = object of TBinClass
-  PFrame* = ptr TFrame
-  TFrame* = object of TBin
-    label_widget*: PWidget
-    shadow_type*: gint16
-    label_xalign*: gfloat
-    label_yalign*: gfloat
-    child_allocation*: TAllocation
-
-  PFrameClass* = ptr TFrameClass
-  TFrameClass* = object of TBinClass
-    compute_child_allocation*: proc (frame: PFrame, allocation: PAllocation){.
-        cdecl.}
-
-  PAspectFrame* = ptr TAspectFrame
-  TAspectFrame* = object of TFrame
-    xalign*: gfloat
-    yalign*: gfloat
-    ratio*: gfloat
-    obey_child*: gboolean
-    center_allocation*: TAllocation
-
-  PAspectFrameClass* = ptr TAspectFrameClass
-  TAspectFrameClass* = object of TFrameClass
-  PArrow* = ptr TArrow
-  TArrow* = object of TMisc
-    arrow_type*: gint16
-    shadow_type*: gint16
-
-  PArrowClass* = ptr TArrowClass
-  TArrowClass* = object of TMiscClass
-  PBindingEntry* = ptr TBindingEntry
-  PBindingSignal* = ptr TBindingSignal
-  PBindingArg* = ptr TBindingArg
-  PBindingSet* = ptr TBindingSet
-  TBindingSet*{.final, pure.} = object 
-    set_name*: cstring
-    priority*: gint
-    widget_path_pspecs*: PGSList
-    widget_class_pspecs*: PGSList
-    class_branch_pspecs*: PGSList
-    entries*: PBindingEntry
-    current*: PBindingEntry
-    flag0*: guint16
-
-  TBindingEntry*{.final, pure.} = object 
-    keyval*: guint
-    modifiers*: gdk2.TModifierType
-    binding_set*: PBindingSet
-    flag0*: guint16
-    set_next*: PBindingEntry
-    hash_next*: PBindingEntry
-    signals*: PBindingSignal
-
-  TBindingSignal*{.final, pure.} = object 
-    next*: PBindingSignal
-    signal_name*: cstring
-    n_args*: guint
-    args*: PBindingArg
-
-  TBindingArg*{.final, pure.} = object 
-    arg_type*: TType
-    d*: gdouble
-
-  PBox* = ptr TBox
-  TBox* = object of TContainer
-    children*: PGList
-    spacing*: gint16
-    box_flag0*: guint16
-
-  PBoxClass* = ptr TBoxClass
-  TBoxClass* = object of TContainerClass
-  PBoxChild* = ptr TBoxChild
-  TBoxChild*{.final, pure.} = object 
-    widget*: PWidget
-    padding*: guint16
-    flag0*: guint16
-
-  PButtonBox* = ptr TButtonBox
-  TButtonBox* = object of TBox
-    child_min_width*: gint
-    child_min_height*: gint
-    child_ipad_x*: gint
-    child_ipad_y*: gint
-    layout_style*: TButtonBoxStyle
-
-  PButtonBoxClass* = ptr TButtonBoxClass
-  TButtonBoxClass* = object of TBoxClass
-  PButton* = ptr TButton
-  TButton* = object of TBin
-    event_window*: gdk2.PWindow
-    label_text*: cstring
-    activate_timeout*: guint
-    button_flag0*: guint16
-
-  PButtonClass* = ptr TButtonClass
-  TButtonClass* = object of TBinClass
-    pressed*: proc (button: PButton){.cdecl.}
-    released*: proc (button: PButton){.cdecl.}
-    clicked*: proc (button: PButton){.cdecl.}
-    enter*: proc (button: PButton){.cdecl.}
-    leave*: proc (button: PButton){.cdecl.}
-    activate*: proc (button: PButton){.cdecl.}
-    reserved101: proc (){.cdecl.}
-    reserved102: proc (){.cdecl.}
-    reserved103: proc (){.cdecl.}
-    reserved104: proc (){.cdecl.}
-
-  PCalendarDisplayOptions* = ptr TCalendarDisplayOptions
-  TCalendarDisplayOptions* = int32
-  PCalendar* = ptr TCalendar
-  TCalendar* = object of TWidget
-    header_style*: PStyle
-    label_style*: PStyle
-    month*: gint
-    year*: gint
-    selected_day*: gint
-    day_month*: array[0..5, array[0..6, gint]]
-    day*: array[0..5, array[0..6, gint]]
-    num_marked_dates*: gint
-    marked_date*: array[0..30, gint]
-    display_flags*: TCalendarDisplayOptions
-    marked_date_color*: array[0..30, gdk2.TColor]
-    gc*: gdk2.PGC
-    xor_gc*: gdk2.PGC
-    focus_row*: gint
-    focus_col*: gint
-    highlight_row*: gint
-    highlight_col*: gint
-    private_data*: gpointer
-    grow_space*: array[0..31, gchar]
-    reserved111: proc (){.cdecl.}
-    reserved112: proc (){.cdecl.}
-    reserved113: proc (){.cdecl.}
-    reserved114: proc (){.cdecl.}
-
-  PCalendarClass* = ptr TCalendarClass
-  TCalendarClass* = object of TWidgetClass
-    month_changed*: proc (calendar: PCalendar){.cdecl.}
-    day_selected*: proc (calendar: PCalendar){.cdecl.}
-    day_selected_double_click*: proc (calendar: PCalendar){.cdecl.}
-    prev_month*: proc (calendar: PCalendar){.cdecl.}
-    next_month*: proc (calendar: PCalendar){.cdecl.}
-    prev_year*: proc (calendar: PCalendar){.cdecl.}
-    next_year*: proc (calendar: PCalendar){.cdecl.}
-
-  PCellEditable* = pointer
-  PCellEditableIface* = ptr TCellEditableIface
-  TCellEditableIface* = object of TGTypeInterface
-    editing_done*: proc (cell_editable: PCellEditable){.cdecl.}
-    remove_widget*: proc (cell_editable: PCellEditable){.cdecl.}
-    start_editing*: proc (cell_editable: PCellEditable, event: gdk2.PEvent){.cdecl.}
-
-  PCellRendererState* = ptr TCellRendererState
-  TCellRendererState* = int32
-  PCellRendererMode* = ptr TCellRendererMode
-  TCellRendererMode* = enum 
-    CELL_RENDERER_MODE_INERT, CELL_RENDERER_MODE_ACTIVATABLE, 
-    CELL_RENDERER_MODE_EDITABLE
-  PCellRenderer* = ptr TCellRenderer
-  TCellRenderer* = object of TObject
-    xalign*: gfloat
-    yalign*: gfloat
-    width*: gint
-    height*: gint
-    xpad*: guint16
-    ypad*: guint16
-    CellRenderer_flag0*: guint16
-
-  PCellRendererClass* = ptr TCellRendererClass
-  TCellRendererClass* = object of TObjectClass
-    get_size*: proc (cell: PCellRenderer, widget: PWidget, 
-                     cell_area: gdk2.PRectangle, x_offset: Pgint, y_offset: Pgint, 
-                     width: Pgint, height: Pgint){.cdecl.}
-    render*: proc (cell: PCellRenderer, window: gdk2.PWindow, widget: PWidget, 
-                   background_area: gdk2.PRectangle, cell_area: gdk2.PRectangle, 
-                   expose_area: gdk2.PRectangle, flags: TCellRendererState){.cdecl.}
-    activate*: proc (cell: PCellRenderer, event: gdk2.PEvent, widget: PWidget, 
-                     path: cstring, background_area: gdk2.PRectangle, 
-                     cell_area: gdk2.PRectangle, flags: TCellRendererState): gboolean{.
-        cdecl.}
-    start_editing*: proc (cell: PCellRenderer, event: gdk2.PEvent, 
-                          widget: PWidget, path: cstring, 
-                          background_area: gdk2.PRectangle, 
-                          cell_area: gdk2.PRectangle, flags: TCellRendererState): PCellEditable{.
-        cdecl.}
-    reserved121: proc (){.cdecl.}
-    reserved122: proc (){.cdecl.}
-    reserved123: proc (){.cdecl.}
-    reserved124: proc (){.cdecl.}
-
-  PCellRendererText* = ptr TCellRendererText
-  TCellRendererText* = object of TCellRenderer
-    text*: cstring
-    font*: pango.PFontDescription
-    font_scale*: gdouble
-    foreground*: pango.TColor
-    background*: pango.TColor
-    extra_attrs*: pango.PAttrList
-    underline_style*: pango.TUnderline
-    rise*: gint
-    fixed_height_rows*: gint
-    CellRendererText_flag0*: guint16
-
-  PCellRendererTextClass* = ptr TCellRendererTextClass
-  TCellRendererTextClass* = object of TCellRendererClass
-    edited*: proc (cell_renderer_text: PCellRendererText, path: cstring, 
-                   new_text: cstring){.cdecl.}
-    reserved131: proc (){.cdecl.}
-    reserved132: proc (){.cdecl.}
-    reserved133: proc (){.cdecl.}
-    reserved134: proc (){.cdecl.}
-
-  PCellRendererToggle* = ptr TCellRendererToggle
-  TCellRendererToggle* = object of TCellRenderer
-    CellRendererToggle_flag0*: guint16
-
-  PCellRendererToggleClass* = ptr TCellRendererToggleClass
-  TCellRendererToggleClass* = object of TCellRendererClass
-    toggled*: proc (cell_renderer_toggle: PCellRendererToggle, path: cstring){.
-        cdecl.}
-    reserved141: proc (){.cdecl.}
-    reserved142: proc (){.cdecl.}
-    reserved143: proc (){.cdecl.}
-    reserved144: proc (){.cdecl.}
-
-  PCellRendererPixbuf* = ptr TCellRendererPixbuf
-  TCellRendererPixbuf* = object of TCellRenderer
-    pixbuf*: gdk2pixbuf.PPixbuf
-    pixbuf_expander_open*: gdk2pixbuf.PPixbuf
-    pixbuf_expander_closed*: gdk2pixbuf.PPixbuf
-
-  PCellRendererPixbufClass* = ptr TCellRendererPixbufClass
-  TCellRendererPixbufClass* = object of TCellRendererClass
-    reserved151: proc (){.cdecl.}
-    reserved152: proc (){.cdecl.}
-    reserved153: proc (){.cdecl.}
-    reserved154: proc (){.cdecl.}
-
-  PItem* = ptr TItem
-  TItem* = object of TBin
-  PItemClass* = ptr TItemClass
-  TItemClass* = object of TBinClass
-    select*: proc (item: PItem){.cdecl.}
-    deselect*: proc (item: PItem){.cdecl.}
-    toggle*: proc (item: PItem){.cdecl.}
-    reserved161: proc (){.cdecl.}
-    reserved162: proc (){.cdecl.}
-    reserved163: proc (){.cdecl.}
-    reserved164: proc (){.cdecl.}
-
-  PMenuItem* = ptr TMenuItem
-  TMenuItem* = object of TItem
-    submenu*: PWidget
-    event_window*: gdk2.PWindow
-    toggle_size*: guint16
-    accelerator_width*: guint16
-    accel_path*: cstring
-    MenuItem_flag0*: guint16
-    timer*: guint
-
-  PMenuItemClass* = ptr TMenuItemClass
-  TMenuItemClass* = object of TItemClass
-    MenuItemClass_flag0*: guint16
-    activate*: proc (menu_item: PMenuItem){.cdecl.}
-    activate_item*: proc (menu_item: PMenuItem){.cdecl.}
-    toggle_size_request*: proc (menu_item: PMenuItem, requisition: Pgint){.cdecl.}
-    toggle_size_allocate*: proc (menu_item: PMenuItem, allocation: gint){.cdecl.}
-    reserved171: proc (){.cdecl.}
-    reserved172: proc (){.cdecl.}
-    reserved173: proc (){.cdecl.}
-    reserved174: proc (){.cdecl.}
-
-  PToggleButton* = ptr TToggleButton
-  TToggleButton* = object of TButton
-    ToggleButton_flag0*: guint16
-
-  PToggleButtonClass* = ptr TToggleButtonClass
-  TToggleButtonClass* = object of TButtonClass
-    toggled*: proc (toggle_button: PToggleButton){.cdecl.}
-    reserved171: proc (){.cdecl.}
-    reserved172: proc (){.cdecl.}
-    reserved173: proc (){.cdecl.}
-    reserved174: proc (){.cdecl.}
-
-  PCheckButton* = ptr TCheckButton
-  TCheckButton* = object of TToggleButton
-  PCheckButtonClass* = ptr TCheckButtonClass
-  TCheckButtonClass* = object of TToggleButtonClass
-    draw_indicator*: proc (check_button: PCheckButton, area: gdk2.PRectangle){.
-        cdecl.}
-    reserved181: proc (){.cdecl.}
-    reserved182: proc (){.cdecl.}
-    reserved183: proc (){.cdecl.}
-    reserved184: proc (){.cdecl.}
-
-  PCheckMenuItem* = ptr TCheckMenuItem
-  TCheckMenuItem* = object of TMenuItem
-    CheckMenuItem_flag0*: guint16
-
-  PCheckMenuItemClass* = ptr TCheckMenuItemClass
-  TCheckMenuItemClass* = object of TMenuItemClass
-    toggled*: proc (check_menu_item: PCheckMenuItem){.cdecl.}
-    draw_indicator*: proc (check_menu_item: PCheckMenuItem, area: gdk2.PRectangle){.
-        cdecl.}
-    reserved191: proc (){.cdecl.}
-    reserved192: proc (){.cdecl.}
-    reserved193: proc (){.cdecl.}
-    reserved194: proc (){.cdecl.}
-
-  PClipboard* = pointer
-  TClipboardReceivedFunc* = proc (clipboard: PClipboard, 
-                                  selection_data: PSelectionData, data: gpointer){.
-      cdecl.}
-  TClipboardTextReceivedFunc* = proc (clipboard: PClipboard, text: cstring, 
-                                      data: gpointer){.cdecl.}
-  TClipboardGetFunc* = proc (clipboard: PClipboard, 
-                             selection_data: PSelectionData, info: guint, 
-                             user_data_or_owner: gpointer){.cdecl.}
-  TClipboardClearFunc* = proc (clipboard: PClipboard, 
-                               user_data_or_owner: gpointer){.cdecl.}
-  PCList* = ptr TCList
-  PCListColumn* = ptr TCListColumn
-  PCListRow* = ptr TCListRow
-  PCell* = ptr TCell
-  PCellType* = ptr TCellType
-  TCellType* = enum 
-    CELL_EMPTY, CELL_TEXT, CELL_PIXMAP, CELL_PIXTEXT, CELL_WIDGET
-  PCListDragPos* = ptr TCListDragPos
-  TCListDragPos* = enum 
-    CLIST_DRAG_NONE, CLIST_DRAG_BEFORE, CLIST_DRAG_INTO, CLIST_DRAG_AFTER
-  PButtonAction* = ptr TButtonAction
-  TButtonAction* = int32
-  TCListCompareFunc* = proc (clist: PCList, ptr1: gconstpointer, 
-                             ptr2: gconstpointer): gint{.cdecl.}
-  PCListCellInfo* = ptr TCListCellInfo
-  TCListCellInfo*{.final, pure.} = object 
-    row*: gint
-    column*: gint
-
-  PCListDestInfo* = ptr TCListDestInfo
-  TCListDestInfo*{.final, pure.} = object 
-    cell*: TCListCellInfo
-    insert_pos*: TCListDragPos
-
-  TCList* = object of TContainer
-    CList_flags*: guint16
-    row_mem_chunk*: PGMemChunk
-    cell_mem_chunk*: PGMemChunk
-    freeze_count*: guint
-    internal_allocation*: gdk2.TRectangle
-    rows*: gint
-    row_height*: gint
-    row_list*: PGList
-    row_list_end*: PGList
-    columns*: gint
-    column_title_area*: gdk2.TRectangle
-    title_window*: gdk2.PWindow
-    column*: PCListColumn
-    clist_window*: gdk2.PWindow
-    clist_window_width*: gint
-    clist_window_height*: gint
-    hoffset*: gint
-    voffset*: gint
-    shadow_type*: TShadowType
-    selection_mode*: TSelectionMode
-    selection*: PGList
-    selection_end*: PGList
-    undo_selection*: PGList
-    undo_unselection*: PGList
-    undo_anchor*: gint
-    button_actions*: array[0..4, guint8]
-    drag_button*: guint8
-    click_cell*: TCListCellInfo
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    xor_gc*: gdk2.PGC
-    fg_gc*: gdk2.PGC
-    bg_gc*: gdk2.PGC
-    cursor_drag*: gdk2.PCursor
-    x_drag*: gint
-    focus_row*: gint
-    focus_header_column*: gint
-    anchor*: gint
-    anchor_state*: TStateType
-    drag_pos*: gint
-    htimer*: gint
-    vtimer*: gint
-    sort_type*: TSortType
-    compare*: TCListCompareFunc
-    sort_column*: gint
-    drag_highlight_row*: gint
-    drag_highlight_pos*: TCListDragPos
-
-  PCListClass* = ptr TCListClass
-  TCListClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (clist: PCList, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    refresh*: proc (clist: PCList){.cdecl.}
-    select_row*: proc (clist: PCList, row: gint, column: gint, event: gdk2.PEvent){.
-        cdecl.}
-    unselect_row*: proc (clist: PCList, row: gint, column: gint, 
-                         event: gdk2.PEvent){.cdecl.}
-    row_move*: proc (clist: PCList, source_row: gint, dest_row: gint){.cdecl.}
-    click_column*: proc (clist: PCList, column: gint){.cdecl.}
-    resize_column*: proc (clist: PCList, column: gint, width: gint){.cdecl.}
-    toggle_focus_row*: proc (clist: PCList){.cdecl.}
-    select_all*: proc (clist: PCList){.cdecl.}
-    unselect_all*: proc (clist: PCList){.cdecl.}
-    undo_selection*: proc (clist: PCList){.cdecl.}
-    start_selection*: proc (clist: PCList){.cdecl.}
-    end_selection*: proc (clist: PCList){.cdecl.}
-    extend_selection*: proc (clist: PCList, scroll_type: TScrollType, 
-                             position: gfloat, auto_start_selection: gboolean){.
-        cdecl.}
-    scroll_horizontal*: proc (clist: PCList, scroll_type: TScrollType, 
-                              position: gfloat){.cdecl.}
-    scroll_vertical*: proc (clist: PCList, scroll_type: TScrollType, 
-                            position: gfloat){.cdecl.}
-    toggle_add_mode*: proc (clist: PCList){.cdecl.}
-    abort_column_resize*: proc (clist: PCList){.cdecl.}
-    resync_selection*: proc (clist: PCList, event: gdk2.PEvent){.cdecl.}
-    selection_find*: proc (clist: PCList, row_number: gint, 
-                           row_list_element: PGList): PGList{.cdecl.}
-    draw_row*: proc (clist: PCList, area: gdk2.PRectangle, row: gint, 
-                     clist_row: PCListRow){.cdecl.}
-    draw_drag_highlight*: proc (clist: PCList, target_row: PCListRow, 
-                                target_row_number: gint, drag_pos: TCListDragPos){.
-        cdecl.}
-    clear*: proc (clist: PCList){.cdecl.}
-    fake_unselect_all*: proc (clist: PCList, row: gint){.cdecl.}
-    sort_list*: proc (clist: PCList){.cdecl.}
-    insert_row*: proc (clist: PCList, row: gint): gint{.cdecl, varargs.}
-    remove_row*: proc (clist: PCList, row: gint){.cdecl.}
-    set_cell_contents*: proc (clist: PCList, clist_row: PCListRow, column: gint, 
-                              thetype: TCellType, text: cstring, 
-                              spacing: guint8, pixmap: gdk2.PPixmap, 
-                              mask: gdk2.PBitmap){.cdecl.}
-    cell_size_request*: proc (clist: PCList, clist_row: PCListRow, column: gint, 
-                              requisition: PRequisition){.cdecl.}
-
-  PGPtrArray = pointer
-  PGArray = pointer
-  TCListColumn*{.final, pure.} = object 
-    title*: cstring
-    area*: gdk2.TRectangle
-    button*: PWidget
-    window*: gdk2.PWindow
-    width*: gint
-    min_width*: gint
-    max_width*: gint
-    justification*: TJustification
-    flag0*: guint16
-
-  TCListRow*{.final, pure.} = object 
-    cell*: PCell
-    state*: TStateType
-    foreground*: gdk2.TColor
-    background*: gdk2.TColor
-    style*: PStyle
-    data*: gpointer
-    destroy*: TDestroyNotify
-    flag0*: guint16
-
-  PCellText* = ptr TCellText
-  TCellText*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-
-  PCellPixmap* = ptr TCellPixmap
-  TCellPixmap*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PCellPixText* = ptr TCellPixText
-  TCellPixText*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-    spacing*: guint8
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PCellWidget* = ptr TCellWidget
-  TCellWidget*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    widget*: PWidget
-
-  TCell*{.final, pure.} = object 
-    `type`*: TCellType
-    vertical*: gint16
-    horizontal*: gint16
-    style*: PStyle
-    text*: cstring
-    spacing*: guint8
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-
-  PDialogFlags* = ptr TDialogFlags
-  TDialogFlags* = int32
-  PResponseType* = ptr TResponseType
-  TResponseType* = int32
-  PDialog* = ptr TDialog
-  TDialog* = object of TWindow
-    vbox*: PBox
-    action_area*: PWidget
-    separator*: PWidget
-
-  PDialogClass* = ptr TDialogClass
-  TDialogClass* = object of TWindowClass
-    response*: proc (dialog: PDialog, response_id: gint){.cdecl.}
-    closeFile*: proc (dialog: PDialog){.cdecl.}
-    reserved201: proc (){.cdecl.}
-    reserved202: proc (){.cdecl.}
-    reserved203: proc (){.cdecl.}
-    reserved204: proc (){.cdecl.}
-
-  PVBox* = ptr TVBox
-  TVBox* = object of TBox
-  PVBoxClass* = ptr TVBoxClass
-  TVBoxClass* = object of TBoxClass
-  TColorSelectionChangePaletteFunc* = proc (colors: gdk2.PColor, n_colors: gint){.
-      cdecl.}
-  TColorSelectionChangePaletteWithScreenFunc* = proc (screen: gdk2.PScreen, 
-      colors: gdk2.PColor, n_colors: gint){.cdecl.}
-  PColorSelection* = ptr TColorSelection
-  TColorSelection* = object of TVBox
-    private_data*: gpointer
-
-  PColorSelectionClass* = ptr TColorSelectionClass
-  TColorSelectionClass* = object of TVBoxClass
-    color_changed*: proc (color_selection: PColorSelection){.cdecl.}
-    reserved211: proc (){.cdecl.}
-    reserved212: proc (){.cdecl.}
-    reserved213: proc (){.cdecl.}
-    reserved214: proc (){.cdecl.}
-
-  PColorSelectionDialog* = ptr TColorSelectionDialog
-  TColorSelectionDialog* = object of TDialog
-    colorsel*: PWidget
-    ok_button*: PWidget
-    cancel_button*: PWidget
-    help_button*: PWidget
-
-  PColorSelectionDialogClass* = ptr TColorSelectionDialogClass
-  TColorSelectionDialogClass* = object of TDialogClass
-    reserved221: proc (){.cdecl.}
-    reserved222: proc (){.cdecl.}
-    reserved223: proc (){.cdecl.}
-    reserved224: proc (){.cdecl.}
-
-  PHBox* = ptr THBox
-  THBox* = object of TBox
-  PHBoxClass* = ptr THBoxClass
-  THBoxClass* = object of TBoxClass
-  PCombo* = ptr TCombo
-  TCombo* = object of THBox
-    entry*: PWidget
-    button*: PWidget
-    popup*: PWidget
-    popwin*: PWidget
-    list*: PWidget
-    entry_change_id*: guint
-    list_change_id*: guint
-    Combo_flag0*: guint16
-    current_button*: guint16
-    activate_id*: guint
-
-  PComboClass* = ptr TComboClass
-  TComboClass* = object of THBoxClass
-    reserved231: proc (){.cdecl.}
-    reserved232: proc (){.cdecl.}
-    reserved233: proc (){.cdecl.}
-    reserved234: proc (){.cdecl.}
-
-  PCTreePos* = ptr TCTreePos
-  TCTreePos* = enum 
-    CTREE_POS_BEFORE, CTREE_POS_AS_CHILD, CTREE_POS_AFTER
-  PCTreeLineStyle* = ptr TCTreeLineStyle
-  TCTreeLineStyle* = enum 
-    CTREE_LINES_NONE, CTREE_LINES_SOLID, CTREE_LINES_DOTTED, CTREE_LINES_TABBED
-  PCTreeExpanderStyle* = ptr TCTreeExpanderStyle
-  TCTreeExpanderStyle* = enum 
-    CTREE_EXPANDER_NONE, CTREE_EXPANDER_SQUARE, CTREE_EXPANDER_TRIANGLE, 
-    CTREE_EXPANDER_CIRCULAR
-  PCTreeExpansionType* = ptr TCTreeExpansionType
-  TCTreeExpansionType* = enum 
-    CTREE_EXPANSION_EXPAND, CTREE_EXPANSION_EXPAND_RECURSIVE, 
-    CTREE_EXPANSION_COLLAPSE, CTREE_EXPANSION_COLLAPSE_RECURSIVE, 
-    CTREE_EXPANSION_TOGGLE, CTREE_EXPANSION_TOGGLE_RECURSIVE
-  PCTree* = ptr TCTree
-  PCTreeNode* = ptr TCTreeNode
-  TCTreeFunc* = proc (ctree: PCTree, node: PCTreeNode, data: gpointer){.cdecl.}
-  TCTreeGNodeFunc* = proc (ctree: PCTree, depth: guint, gnode: PGNode, 
-                           cnode: PCTreeNode, data: gpointer): gboolean{.cdecl.}
-  TCTreeCompareDragFunc* = proc (ctree: PCTree, source_node: PCTreeNode, 
-                                 new_parent: PCTreeNode, new_sibling: PCTreeNode): gboolean{.
-      cdecl.}
-  TCTree* = object of TCList
-    lines_gc*: gdk2.PGC
-    tree_indent*: gint
-    tree_spacing*: gint
-    tree_column*: gint
-    CTree_flag0*: guint16
-    drag_compare*: TCTreeCompareDragFunc
-
-  PCTreeClass* = ptr TCTreeClass
-  TCTreeClass* = object of TCListClass
-    tree_select_row*: proc (ctree: PCTree, row: PCTreeNode, column: gint){.cdecl.}
-    tree_unselect_row*: proc (ctree: PCTree, row: PCTreeNode, column: gint){.
-        cdecl.}
-    tree_expand*: proc (ctree: PCTree, node: PCTreeNode){.cdecl.}
-    tree_collapse*: proc (ctree: PCTree, node: PCTreeNode){.cdecl.}
-    tree_move*: proc (ctree: PCTree, node: PCTreeNode, new_parent: PCTreeNode, 
-                      new_sibling: PCTreeNode){.cdecl.}
-    change_focus_row_expansion*: proc (ctree: PCTree, 
-                                       action: TCTreeExpansionType){.cdecl.}
-
-  PCTreeRow* = ptr TCTreeRow
-  TCTreeRow*{.final, pure.} = object 
-    row*: TCListRow
-    parent*: PCTreeNode
-    sibling*: PCTreeNode
-    children*: PCTreeNode
-    pixmap_closed*: gdk2.PPixmap
-    mask_closed*: gdk2.PBitmap
-    pixmap_opened*: gdk2.PPixmap
-    mask_opened*: gdk2.PBitmap
-    level*: guint16
-    CTreeRow_flag0*: guint16
-
-  TCTreeNode*{.final, pure.} = object 
-    list*: TGList
-
-  PDrawingArea* = ptr TDrawingArea
-  TDrawingArea* = object of TWidget
-    draw_data*: gpointer
-
-  PDrawingAreaClass* = ptr TDrawingAreaClass
-  TDrawingAreaClass* = object of TWidgetClass
-    reserved241: proc (){.cdecl.}
-    reserved242: proc (){.cdecl.}
-    reserved243: proc (){.cdecl.}
-    reserved244: proc (){.cdecl.}
-
-  Tctlpoint* = array[0..1, gfloat]
-  Pctlpoint* = ptr Tctlpoint
-  PCurve* = ptr TCurve
-  TCurve* = object of TDrawingArea
-    cursor_type*: gint
-    min_x*: gfloat
-    max_x*: gfloat
-    min_y*: gfloat
-    max_y*: gfloat
-    pixmap*: gdk2.PPixmap
-    curve_type*: TCurveType
-    height*: gint
-    grab_point*: gint
-    last*: gint
-    num_points*: gint
-    point*: gdk2.PPoint
-    num_ctlpoints*: gint
-    ctlpoint*: Pctlpoint
-
-  PCurveClass* = ptr TCurveClass
-  TCurveClass* = object of TDrawingAreaClass
-    curve_type_changed*: proc (curve: PCurve){.cdecl.}
-    reserved251: proc (){.cdecl.}
-    reserved252: proc (){.cdecl.}
-    reserved253: proc (){.cdecl.}
-    reserved254: proc (){.cdecl.}
-
-  PDestDefaults* = ptr TDestDefaults
-  TDestDefaults* = int32
-  PTargetFlags* = ptr TTargetFlags
-  TTargetFlags* = int32
-  PEditable* = pointer
-  PEditableClass* = ptr TEditableClass
-  TEditableClass* = object of TGTypeInterface
-    insert_text*: proc (editable: PEditable, text: cstring, length: gint, 
-                        position: Pgint){.cdecl.}
-    delete_text*: proc (editable: PEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    changed*: proc (editable: PEditable){.cdecl.}
-    do_insert_text*: proc (editable: PEditable, text: cstring, length: gint, 
-                           position: Pgint){.cdecl.}
-    do_delete_text*: proc (editable: PEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    get_chars*: proc (editable: PEditable, start_pos: gint, end_pos: gint): cstring{.
-        cdecl.}
-    set_selection_bounds*: proc (editable: PEditable, start_pos: gint, 
-                                 end_pos: gint){.cdecl.}
-    get_selection_bounds*: proc (editable: PEditable, start_pos: Pgint, 
-                                 end_pos: Pgint): gboolean{.cdecl.}
-    set_position*: proc (editable: PEditable, position: gint){.cdecl.}
-    get_position*: proc (editable: PEditable): gint{.cdecl.}
-
-  PIMContext* = ptr TIMContext
-  TIMContext* = object of TGObject
-  PIMContextClass* = ptr TIMContextClass
-  TIMContextClass* = object of TObjectClass
-    preedit_start*: proc (context: PIMContext){.cdecl.}
-    preedit_end*: proc (context: PIMContext){.cdecl.}
-    preedit_changed*: proc (context: PIMContext){.cdecl.}
-    commit*: proc (context: PIMContext, str: cstring){.cdecl.}
-    retrieve_surrounding*: proc (context: PIMContext): gboolean{.cdecl.}
-    delete_surrounding*: proc (context: PIMContext, offset: gint, n_chars: gint): gboolean{.
-        cdecl.}
-    set_client_window*: proc (context: PIMContext, window: gdk2.PWindow){.cdecl.}
-    get_preedit_string*: proc (context: PIMContext, str: PPgchar, 
-                               attrs: var pango.PAttrList, cursor_pos: Pgint){.
-        cdecl.}
-    filter_keypress*: proc (context: PIMContext, event: gdk2.PEventKey): gboolean{.
-        cdecl.}
-    focus_in*: proc (context: PIMContext){.cdecl.}
-    focus_out*: proc (context: PIMContext){.cdecl.}
-    reset*: proc (context: PIMContext){.cdecl.}
-    set_cursor_location*: proc (context: PIMContext, area: gdk2.PRectangle){.cdecl.}
-    set_use_preedit*: proc (context: PIMContext, use_preedit: gboolean){.cdecl.}
-    set_surrounding*: proc (context: PIMContext, text: cstring, len: gint, 
-                            cursor_index: gint){.cdecl.}
-    get_surrounding*: proc (context: PIMContext, text: PPgchar, 
-                            cursor_index: Pgint): gboolean{.cdecl.}
-    reserved261: proc (){.cdecl.}
-    reserved262: proc (){.cdecl.}
-    reserved263: proc (){.cdecl.}
-    reserved264: proc (){.cdecl.}
-    reserved265: proc (){.cdecl.}
-    reserved266: proc (){.cdecl.}
-
-  PMenuShell* = ptr TMenuShell
-  TMenuShell* = object of TContainer
-    children*: PGList
-    active_menu_item*: PWidget
-    parent_menu_shell*: PWidget
-    button*: guint
-    activate_time*: guint32
-    MenuShell_flag0*: guint16
-
-  PMenuShellClass* = ptr TMenuShellClass
-  TMenuShellClass* = object of TContainerClass
-    MenuShellClass_flag0*: guint16
-    deactivate*: proc (menu_shell: PMenuShell){.cdecl.}
-    selection_done*: proc (menu_shell: PMenuShell){.cdecl.}
-    move_current*: proc (menu_shell: PMenuShell, direction: TMenuDirectionType){.
-        cdecl.}
-    activate_current*: proc (menu_shell: PMenuShell, force_hide: gboolean){.
-        cdecl.}
-    cancel*: proc (menu_shell: PMenuShell){.cdecl.}
-    select_item*: proc (menu_shell: PMenuShell, menu_item: PWidget){.cdecl.}
-    insert*: proc (menu_shell: PMenuShell, child: PWidget, position: gint){.
-        cdecl.}
-    reserved271: proc (){.cdecl.}
-    reserved272: proc (){.cdecl.}
-    reserved273: proc (){.cdecl.}
-    reserved274: proc (){.cdecl.}
-
-  TMenuPositionFunc* = proc (menu: PMenu, x: Pgint, y: Pgint, 
-                             push_in: Pgboolean, user_data: gpointer){.cdecl.}
-  TMenuDetachFunc* = proc (attach_widget: PWidget, menu: PMenu){.cdecl.}
-  TMenu* = object of TMenuShell
-    parent_menu_item*: PWidget
-    old_active_menu_item*: PWidget
-    accel_group*: PAccelGroup
-    accel_path*: cstring
-    position_func*: TMenuPositionFunc
-    position_func_data*: gpointer
-    toggle_size*: guint
-    toplevel*: PWidget
-    tearoff_window*: PWidget
-    tearoff_hbox*: PWidget
-    tearoff_scrollbar*: PWidget
-    tearoff_adjustment*: PAdjustment
-    view_window*: gdk2.PWindow
-    bin_window*: gdk2.PWindow
-    scroll_offset*: gint
-    saved_scroll_offset*: gint
-    scroll_step*: gint
-    timeout_id*: guint
-    navigation_region*: gdk2.PRegion
-    navigation_timeout*: guint
-    Menu_flag0*: guint16
-
-  PMenuClass* = ptr TMenuClass
-  TMenuClass* = object of TMenuShellClass
-    reserved281: proc (){.cdecl.}
-    reserved282: proc (){.cdecl.}
-    reserved283: proc (){.cdecl.}
-    reserved284: proc (){.cdecl.}
-
-  PEntry* = ptr TEntry
-  TEntry* = object of TWidget
-    text*: cstring
-    Entry_flag0*: guint16
-    text_length*: guint16
-    text_max_length*: guint16
-    text_area*: gdk2.PWindow
-    im_context*: PIMContext
-    popup_menu*: PWidget
-    current_pos*: gint
-    selection_bound*: gint
-    cached_layout*: pango.PLayout
-    flag1*: guint16
-    button*: guint
-    blink_timeout*: guint
-    recompute_idle*: guint
-    scroll_offset*: gint
-    ascent*: gint
-    descent*: gint
-    text_size*: guint16
-    n_bytes*: guint16
-    preedit_length*: guint16
-    preedit_cursor*: guint16
-    dnd_position*: gint
-    drag_start_x*: gint
-    drag_start_y*: gint
-    invisible_char*: gunichar
-    width_chars*: gint
-
-  PEntryClass* = ptr TEntryClass
-  TEntryClass* = object of TWidgetClass
-    populate_popup*: proc (entry: PEntry, menu: PMenu){.cdecl.}
-    activate*: proc (entry: PEntry){.cdecl.}
-    move_cursor*: proc (entry: PEntry, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    insert_at_cursor*: proc (entry: PEntry, str: cstring){.cdecl.}
-    delete_from_cursor*: proc (entry: PEntry, thetype: TDeleteType, count: gint){.
-        cdecl.}
-    cut_clipboard*: proc (entry: PEntry){.cdecl.}
-    copy_clipboard*: proc (entry: PEntry){.cdecl.}
-    paste_clipboard*: proc (entry: PEntry){.cdecl.}
-    toggle_overwrite*: proc (entry: PEntry){.cdecl.}
-    reserved291: proc (){.cdecl.}
-    reserved292: proc (){.cdecl.}
-    reserved293: proc (){.cdecl.}
-    reserved294: proc (){.cdecl.}
-
-  PEventBox* = ptr TEventBox
-  TEventBox* = object of TBin
-  PEventBoxClass* = ptr TEventBoxClass
-  TEventBoxClass* = object of TBinClass
-  PFileSelection* = ptr TFileSelection
-  TFileSelection* = object of TDialog
-    dir_list*: PWidget
-    file_list*: PWidget
-    selection_entry*: PWidget
-    selection_text*: PWidget
-    main_vbox*: PWidget
-    ok_button*: PWidget
-    cancel_button*: PWidget
-    help_button*: PWidget
-    history_pulldown*: PWidget
-    history_menu*: PWidget
-    history_list*: PGList
-    fileop_dialog*: PWidget
-    fileop_entry*: PWidget
-    fileop_file*: cstring
-    cmpl_state*: gpointer
-    fileop_c_dir*: PWidget
-    fileop_del_file*: PWidget
-    fileop_ren_file*: PWidget
-    button_area*: PWidget
-    FileSelection_action_area*: PWidget
-    selected_names*: PGPtrArray
-    last_selected*: cstring
-
-  PFileSelectionClass* = ptr TFileSelectionClass
-  TFileSelectionClass* = object of TDialogClass
-    reserved301: proc (){.cdecl.}
-    reserved302: proc (){.cdecl.}
-    reserved303: proc (){.cdecl.}
-    reserved304: proc (){.cdecl.}
-
-  PFixed* = ptr TFixed
-  TFixed* = object of TContainer
-    children*: PGList
-
-  PFixedClass* = ptr TFixedClass
-  TFixedClass* = object of TContainerClass
-  PFixedChild* = ptr TFixedChild
-  TFixedChild*{.final, pure.} = object 
-    widget*: PWidget
-    x*: gint
-    y*: gint
-
-  PFontSelection* = ptr TFontSelection
-  TFontSelection* = object of TVBox
-    font_entry*: PWidget
-    family_list*: PWidget
-    font_style_entry*: PWidget
-    face_list*: PWidget
-    size_entry*: PWidget
-    size_list*: PWidget
-    pixels_button*: PWidget
-    points_button*: PWidget
-    filter_button*: PWidget
-    preview_entry*: PWidget
-    family*: pango.PFontFamily
-    face*: pango.PFontFace
-    size*: gint
-    font*: gdk2.PFont
-
-  PFontSelectionClass* = ptr TFontSelectionClass
-  TFontSelectionClass* = object of TVBoxClass
-    reserved311: proc (){.cdecl.}
-    reserved312: proc (){.cdecl.}
-    reserved313: proc (){.cdecl.}
-    reserved314: proc (){.cdecl.}
-
-  PFontSelectionDialog* = ptr TFontSelectionDialog
-  TFontSelectionDialog* = object of TDialog
-    fontsel*: PWidget
-    main_vbox*: PWidget
-    FontSelectionDialog_action_area*: PWidget
-    ok_button*: PWidget
-    apply_button*: PWidget
-    cancel_button*: PWidget
-    dialog_width*: gint
-    auto_resize*: gboolean
-
-  PFontSelectionDialogClass* = ptr TFontSelectionDialogClass
-  TFontSelectionDialogClass* = object of TDialogClass
-    reserved321: proc (){.cdecl.}
-    reserved322: proc (){.cdecl.}
-    reserved323: proc (){.cdecl.}
-    reserved324: proc (){.cdecl.}
-
-  PGammaCurve* = ptr TGammaCurve
-  TGammaCurve* = object of TVBox
-    table*: PWidget
-    curve*: PWidget
-    button*: array[0..4, PWidget]
-    gamma*: gfloat
-    gamma_dialog*: PWidget
-    gamma_text*: PWidget
-
-  PGammaCurveClass* = ptr TGammaCurveClass
-  TGammaCurveClass* = object of TVBoxClass
-    reserved331: proc (){.cdecl.}
-    reserved332: proc (){.cdecl.}
-    reserved333: proc (){.cdecl.}
-    reserved334: proc (){.cdecl.}
-
-  PHandleBox* = ptr THandleBox
-  THandleBox* = object of TBin
-    bin_window*: gdk2.PWindow
-    float_window*: gdk2.PWindow
-    shadow_type*: TShadowType
-    HandleBox_flag0*: guint16
-    deskoff_x*: gint
-    deskoff_y*: gint
-    attach_allocation*: TAllocation
-    float_allocation*: TAllocation
-
-  PHandleBoxClass* = ptr THandleBoxClass
-  THandleBoxClass* = object of TBinClass
-    child_attached*: proc (handle_box: PHandleBox, child: PWidget){.cdecl.}
-    child_detached*: proc (handle_box: PHandleBox, child: PWidget){.cdecl.}
-    reserved341: proc (){.cdecl.}
-    reserved342: proc (){.cdecl.}
-    reserved343: proc (){.cdecl.}
-    reserved344: proc (){.cdecl.}
-
-  PPaned* = ptr TPaned
-  TPaned* = object of TContainer
-    child1*: PWidget
-    child2*: PWidget
-    handle*: gdk2.PWindow
-    xor_gc*: gdk2.PGC
-    cursor_type*: gdk2.TCursorType
-    handle_pos*: gdk2.TRectangle
-    child1_size*: gint
-    last_allocation*: gint
-    min_position*: gint
-    max_position*: gint
-    Paned_flag0*: guint16
-    last_child1_focus*: PWidget
-    last_child2_focus*: PWidget
-    saved_focus*: PWidget
-    drag_pos*: gint
-    original_position*: gint
-
-  PPanedClass* = ptr TPanedClass
-  TPanedClass* = object of TContainerClass
-    cycle_child_focus*: proc (paned: PPaned, reverse: gboolean): gboolean{.cdecl.}
-    toggle_handle_focus*: proc (paned: PPaned): gboolean{.cdecl.}
-    move_handle*: proc (paned: PPaned, scroll: TScrollType): gboolean{.cdecl.}
-    cycle_handle_focus*: proc (paned: PPaned, reverse: gboolean): gboolean{.
-        cdecl.}
-    accept_position*: proc (paned: PPaned): gboolean{.cdecl.}
-    cancel_position*: proc (paned: PPaned): gboolean{.cdecl.}
-    reserved351: proc (){.cdecl.}
-    reserved352: proc (){.cdecl.}
-    reserved353: proc (){.cdecl.}
-    reserved354: proc (){.cdecl.}
-
-  PHButtonBox* = ptr THButtonBox
-  THButtonBox* = object of TButtonBox
-  PHButtonBoxClass* = ptr THButtonBoxClass
-  THButtonBoxClass* = object of TButtonBoxClass
-  PHPaned* = ptr THPaned
-  THPaned* = object of TPaned
-  PHPanedClass* = ptr THPanedClass
-  THPanedClass* = object of TPanedClass
-  PRulerMetric* = ptr TRulerMetric
-  PRuler* = ptr TRuler
-  TRuler* = object of TWidget
-    backing_store*: gdk2.PPixmap
-    non_gr_exp_gc*: gdk2.PGC
-    metric*: PRulerMetric
-    xsrc*: gint
-    ysrc*: gint
-    slider_size*: gint
-    lower*: gdouble
-    upper*: gdouble
-    position*: gdouble
-    max_size*: gdouble
-
-  PRulerClass* = ptr TRulerClass
-  TRulerClass* = object of TWidgetClass
-    draw_ticks*: proc (ruler: PRuler){.cdecl.}
-    draw_pos*: proc (ruler: PRuler){.cdecl.}
-    reserved361: proc (){.cdecl.}
-    reserved362: proc (){.cdecl.}
-    reserved363: proc (){.cdecl.}
-    reserved364: proc (){.cdecl.}
-
-  TRulerMetric*{.final, pure.} = object 
-    metric_name*: cstring
-    abbrev*: cstring
-    pixels_per_unit*: gdouble
-    ruler_scale*: array[0..9, gdouble]
-    subdivide*: array[0..4, gint]
-
-  PHRuler* = ptr THRuler
-  THRuler* = object of TRuler
-  PHRulerClass* = ptr THRulerClass
-  THRulerClass* = object of TRulerClass
-  PRcContext* = pointer
-  PSettings* = ptr TSettings
-  TSettings* = object of TGObject
-    queued_settings*: PGData
-    property_values*: PGValue
-    rc_context*: PRcContext
-    screen*: gdk2.PScreen
-
-  PSettingsClass* = ptr TSettingsClass
-  TSettingsClass* = object of TGObjectClass
-  PSettingsValue* = ptr TSettingsValue
-  TSettingsValue*{.final, pure.} = object 
-    origin*: cstring
-    value*: TGValue
-
-  PRcFlags* = ptr TRcFlags
-  TRcFlags* = int32
-  PRcStyle* = ptr TRcStyle
-  TRcStyle* = object of TGObject
-    name*: cstring
-    bg_pixmap_name*: array[0..4, cstring]
-    font_desc*: pango.PFontDescription
-    color_flags*: array[0..4, TRcFlags]
-    fg*: array[0..4, gdk2.TColor]
-    bg*: array[0..4, gdk2.TColor]
-    text*: array[0..4, gdk2.TColor]
-    base*: array[0..4, gdk2.TColor]
-    xthickness*: gint
-    ythickness*: gint
-    rc_properties*: PGArray
-    rc_style_lists*: PGSList
-    icon_factories*: PGSList
-    RcStyle_flag0*: guint16
-
-  PRcStyleClass* = ptr TRcStyleClass
-  TRcStyleClass* = object of TGObjectClass
-    create_rc_style*: proc (rc_style: PRcStyle): PRcStyle{.cdecl.}
-    parse*: proc (rc_style: PRcStyle, settings: PSettings, scanner: PGScanner): guint{.
-        cdecl.}
-    merge*: proc (dest: PRcStyle, src: PRcStyle){.cdecl.}
-    create_style*: proc (rc_style: PRcStyle): PStyle{.cdecl.}
-    reserved371: proc (){.cdecl.}
-    reserved372: proc (){.cdecl.}
-    reserved373: proc (){.cdecl.}
-    reserved374: proc (){.cdecl.}
-
-  PRcTokenType* = ptr TRcTokenType
-  TRcTokenType* = enum 
-    RC_TOKEN_INVALID, RC_TOKEN_INCLUDE, RC_TOKEN_NORMAL, RC_TOKEN_ACTIVE, 
-    RC_TOKEN_PRELIGHT, RC_TOKEN_SELECTED, RC_TOKEN_INSENSITIVE, RC_TOKEN_FG, 
-    RC_TOKEN_BG, RC_TOKEN_TEXT, RC_TOKEN_BASE, RC_TOKEN_XTHICKNESS, 
-    RC_TOKEN_YTHICKNESS, RC_TOKEN_FONT, RC_TOKEN_FONTSET, RC_TOKEN_FONT_NAME, 
-    RC_TOKEN_BG_PIXMAP, RC_TOKEN_PIXMAP_PATH, RC_TOKEN_STYLE, RC_TOKEN_BINDING, 
-    RC_TOKEN_BIND, RC_TOKEN_WIDGET, RC_TOKEN_WIDGET_CLASS, RC_TOKEN_CLASS, 
-    RC_TOKEN_LOWEST, RC_TOKEN_GTK, RC_TOKEN_APPLICATION, RC_TOKEN_THEME, 
-    RC_TOKEN_RC, RC_TOKEN_HIGHEST, RC_TOKEN_ENGINE, RC_TOKEN_MODULE_PATH, 
-    RC_TOKEN_IM_MODULE_PATH, RC_TOKEN_IM_MODULE_FILE, RC_TOKEN_STOCK, 
-    RC_TOKEN_LTR, RC_TOKEN_RTL, RC_TOKEN_LAST
-  PRcProperty* = ptr TRcProperty
-  TRcProperty*{.final, pure.} = object 
-    type_name*: TGQuark
-    property_name*: TGQuark
-    origin*: cstring
-    value*: TGValue
-
-  PIconSource* = pointer
-  TRcPropertyParser* = proc (pspec: PGParamSpec, rc_string: PGString, 
-                             property_value: PGValue): gboolean{.cdecl.}
-  TStyle* = object of TGObject
-    fg*: array[0..4, gdk2.TColor]
-    bg*: array[0..4, gdk2.TColor]
-    light*: array[0..4, gdk2.TColor]
-    dark*: array[0..4, gdk2.TColor]
-    mid*: array[0..4, gdk2.TColor]
-    text*: array[0..4, gdk2.TColor]
-    base*: array[0..4, gdk2.TColor]
-    text_aa*: array[0..4, gdk2.TColor]
-    black*: gdk2.TColor
-    white*: gdk2.TColor
-    font_desc*: pango.PFontDescription
-    xthickness*: gint
-    ythickness*: gint
-    fg_gc*: array[0..4, gdk2.PGC]
-    bg_gc*: array[0..4, gdk2.PGC]
-    light_gc*: array[0..4, gdk2.PGC]
-    dark_gc*: array[0..4, gdk2.PGC]
-    mid_gc*: array[0..4, gdk2.PGC]
-    text_gc*: array[0..4, gdk2.PGC]
-    base_gc*: array[0..4, gdk2.PGC]
-    text_aa_gc*: array[0..4, gdk2.PGC]
-    black_gc*: gdk2.PGC
-    white_gc*: gdk2.PGC
-    bg_pixmap*: array[0..4, gdk2.PPixmap]
-    attach_count*: gint
-    depth*: gint
-    colormap*: gdk2.PColormap
-    private_font*: gdk2.PFont
-    private_font_desc*: pango.PFontDescription
-    rc_style*: PRcStyle
-    styles*: PGSList
-    property_cache*: PGArray
-    icon_factories*: PGSList
-
-  PStyleClass* = ptr TStyleClass
-  TStyleClass* = object of TGObjectClass
-    realize*: proc (style: PStyle){.cdecl.}
-    unrealize*: proc (style: PStyle){.cdecl.}
-    copy*: proc (style: PStyle, src: PStyle){.cdecl.}
-    clone*: proc (style: PStyle): PStyle{.cdecl.}
-    init_from_rc*: proc (style: PStyle, rc_style: PRcStyle){.cdecl.}
-    set_background*: proc (style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType){.cdecl.}
-    render_icon*: proc (style: PStyle, source: PIconSource, 
-                        direction: TTextDirection, state: TStateType, 
-                        size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-        cdecl.}
-    draw_hline*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, x1: gint, x2: gint, 
-                       y: gint){.cdecl.}
-    draw_vline*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, y1: gint, y2: gint, 
-                       x: gint){.cdecl.}
-    draw_shadow*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_polygon*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         point: gdk2.PPoint, npoints: gint, fill: gboolean){.cdecl.}
-    draw_arrow*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       arrow_type: TArrowType, fill: gboolean, x: gint, y: gint, 
-                       width: gint, height: gint){.cdecl.}
-    draw_diamond*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_string*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, area: gdk2.PRectangle, 
-                        widget: PWidget, detail: cstring, x: gint, y: gint, 
-                        `string`: cstring){.cdecl.}
-    draw_box*: proc (style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl.}
-    draw_flat_box*: proc (style: PStyle, window: gdk2.PWindow, 
-                          state_type: TStateType, shadow_type: TShadowType, 
-                          area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                          x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_check*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_option*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl.}
-    draw_tab*: proc (style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl.}
-    draw_shadow_gap*: proc (style: PStyle, window: gdk2.PWindow, 
-                            state_type: TStateType, shadow_type: TShadowType, 
-                            area: gdk2.PRectangle, widget: PWidget, 
-                            detail: cstring, x: gint, y: gint, width: gint, 
-                            height: gint, gap_side: TPositionType, gap_x: gint, 
-                            gap_width: gint){.cdecl.}
-    draw_box_gap*: proc (style: PStyle, window: gdk2.PWindow, 
-                         state_type: TStateType, shadow_type: TShadowType, 
-                         area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                         x: gint, y: gint, width: gint, height: gint, 
-                         gap_side: TPositionType, gap_x: gint, gap_width: gint){.
-        cdecl.}
-    draw_extension*: proc (style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType, shadow_type: TShadowType, 
-                           area: gdk2.PRectangle, widget: PWidget, 
-                           detail: cstring, x: gint, y: gint, width: gint, 
-                           height: gint, gap_side: TPositionType){.cdecl.}
-    draw_focus*: proc (style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, area: gdk2.PRectangle, 
-                       widget: PWidget, detail: cstring, x: gint, y: gint, 
-                       width: gint, height: gint){.cdecl.}
-    draw_slider*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint, 
-                        orientation: TOrientation){.cdecl.}
-    draw_handle*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, shadow_type: TShadowType, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, width: gint, height: gint, 
-                        orientation: TOrientation){.cdecl.}
-    draw_expander*: proc (style: PStyle, window: gdk2.PWindow, 
-                          state_type: TStateType, area: gdk2.PRectangle, 
-                          widget: PWidget, detail: cstring, x: gint, y: gint, 
-                          expander_style: TExpanderStyle){.cdecl.}
-    draw_layout*: proc (style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, use_text: gboolean, 
-                        area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                        x: gint, y: gint, layout: pango.PLayout){.cdecl.}
-    draw_resize_grip*: proc (style: PStyle, window: gdk2.PWindow, 
-                             state_type: TStateType, area: gdk2.PRectangle, 
-                             widget: PWidget, detail: cstring, 
-                             edge: gdk2.TWindowEdge, x: gint, y: gint, 
-                             width: gint, height: gint){.cdecl.}
-    reserved381: proc (){.cdecl.}
-    reserved382: proc (){.cdecl.}
-    reserved383: proc (){.cdecl.}
-    reserved384: proc (){.cdecl.}
-    reserved385: proc (){.cdecl.}
-    reserved386: proc (){.cdecl.}
-    reserved387: proc (){.cdecl.}
-    reserved388: proc (){.cdecl.}
-    reserved389: proc (){.cdecl.}
-    reserved3810: proc (){.cdecl.}
-    reserved3811: proc (){.cdecl.}
-    reserved3812: proc (){.cdecl.}
-
-  PBorder* = ptr TBorder
-  TBorder*{.final, pure.} = object 
-    left*: gint
-    right*: gint
-    top*: gint
-    bottom*: gint
-
-  PRangeLayout* = pointer
-  PRangeStepTimer* = pointer
-  PRange* = ptr TRange
-  TRange* = object of TWidget
-    adjustment*: PAdjustment
-    update_policy*: TUpdateType
-    Range_flag0*: guint16
-    min_slider_size*: gint
-    orientation*: TOrientation
-    range_rect*: gdk2.TRectangle
-    slider_start*: gint
-    slider_end*: gint
-    round_digits*: gint
-    flag1*: guint16
-    layout*: PRangeLayout
-    timer*: PRangeStepTimer
-    slide_initial_slider_position*: gint
-    slide_initial_coordinate*: gint
-    update_timeout_id*: guint
-    event_window*: gdk2.PWindow
-
-  PRangeClass* = ptr TRangeClass
-  TRangeClass* = object of TWidgetClass
-    slider_detail*: cstring
-    stepper_detail*: cstring
-    value_changed*: proc (range: PRange){.cdecl.}
-    adjust_bounds*: proc (range: PRange, new_value: gdouble){.cdecl.}
-    move_slider*: proc (range: PRange, scroll: TScrollType){.cdecl.}
-    get_range_border*: proc (range: PRange, border: PBorder){.cdecl.}
-    reserved401: proc (){.cdecl.}
-    reserved402: proc (){.cdecl.}
-    reserved403: proc (){.cdecl.}
-    reserved404: proc (){.cdecl.}
-
-  PScale* = ptr TScale
-  TScale* = object of TRange
-    digits*: gint
-    Scale_flag0*: guint16
-
-  PScaleClass* = ptr TScaleClass
-  TScaleClass* = object of TRangeClass
-    format_value*: proc (scale: PScale, value: gdouble): cstring{.cdecl.}
-    draw_value*: proc (scale: PScale){.cdecl.}
-    reserved411: proc (){.cdecl.}
-    reserved412: proc (){.cdecl.}
-    reserved413: proc (){.cdecl.}
-    reserved414: proc (){.cdecl.}
-
-  PHScale* = ptr THScale
-  THScale* = object of TScale
-  PHScaleClass* = ptr THScaleClass
-  THScaleClass* = object of TScaleClass
-  PScrollbar* = ptr TScrollbar
-  TScrollbar* = object of TRange
-  PScrollbarClass* = ptr TScrollbarClass
-  TScrollbarClass* = object of TRangeClass
-    reserved421: proc (){.cdecl.}
-    reserved422: proc (){.cdecl.}
-    reserved423: proc (){.cdecl.}
-    reserved424: proc (){.cdecl.}
-
-  PHScrollbar* = ptr THScrollbar
-  THScrollbar* = object of TScrollbar
-  PHScrollbarClass* = ptr THScrollbarClass
-  THScrollbarClass* = object of TScrollbarClass
-  PSeparator* = ptr TSeparator
-  TSeparator* = object of TWidget
-  PSeparatorClass* = ptr TSeparatorClass
-  TSeparatorClass* = object of TWidgetClass
-  PHSeparator* = ptr THSeparator
-  THSeparator* = object of TSeparator
-  PHSeparatorClass* = ptr THSeparatorClass
-  THSeparatorClass* = object of TSeparatorClass
-  PIconFactory* = ptr TIconFactory
-  TIconFactory* = object of TGObject
-    icons*: PGHashTable
-
-  PIconFactoryClass* = ptr TIconFactoryClass
-  TIconFactoryClass* = object of TGObjectClass
-    reserved431: proc (){.cdecl.}
-    reserved432: proc (){.cdecl.}
-    reserved433: proc (){.cdecl.}
-    reserved434: proc (){.cdecl.}
-
-  PIconSet* = pointer
-  PImagePixmapData* = ptr TImagePixmapData
-  TImagePixmapData*{.final, pure.} = object 
-    pixmap*: gdk2.PPixmap
-
-  PImageImageData* = ptr TImageImageData
-  TImageImageData*{.final, pure.} = object 
-    image*: gdk2.PImage
-
-  PImagePixbufData* = ptr TImagePixbufData
-  TImagePixbufData*{.final, pure.} = object 
-    pixbuf*: gdk2pixbuf.PPixbuf
-
-  PImageStockData* = ptr TImageStockData
-  TImageStockData*{.final, pure.} = object 
-    stock_id*: cstring
-
-  PImageIconSetData* = ptr TImageIconSetData
-  TImageIconSetData*{.final, pure.} = object 
-    icon_set*: PIconSet
-
-  PImageAnimationData* = ptr TImageAnimationData
-  TImageAnimationData*{.final, pure.} = object 
-    anim*: gdk2pixbuf.PPixbufAnimation
-    iter*: gdk2pixbuf.PPixbufAnimationIter
-    frame_timeout*: guint
-
-  PImageType* = ptr TImageType
-  TImageType* = enum 
-    IMAGE_EMPTY, IMAGE_PIXMAP, IMAGE_IMAGE, IMAGE_PIXBUF, IMAGE_STOCK, 
-    IMAGE_ICON_SET, IMAGE_ANIMATION
-  PImage* = ptr TImage
-  TImage* = object of TMisc
-    storage_type*: TImageType
-    pixmap*: TImagePixmapData
-    mask*: gdk2.PBitmap
-    icon_size*: TIconSize
-
-  PImageClass* = ptr TImageClass
-  TImageClass* = object of TMiscClass
-    reserved441: proc (){.cdecl.}
-    reserved442: proc (){.cdecl.}
-    reserved443: proc (){.cdecl.}
-    reserved444: proc (){.cdecl.}
-
-  PImageMenuItem* = ptr TImageMenuItem
-  TImageMenuItem* = object of TMenuItem
-    image*: PWidget
-
-  PImageMenuItemClass* = ptr TImageMenuItemClass
-  TImageMenuItemClass* = object of TMenuItemClass
-  PIMContextSimple* = ptr TIMContextSimple
-  TIMContextSimple* = object of TIMContext
-    tables*: PGSList
-    compose_buffer*: array[0..(MAX_COMPOSE_LEN + 1) - 1, guint]
-    tentative_match*: gunichar
-    tentative_match_len*: gint
-    IMContextSimple_flag0*: guint16
-
-  PIMContextSimpleClass* = ptr TIMContextSimpleClass
-  TIMContextSimpleClass* = object of TIMContextClass
-  PIMMulticontext* = ptr TIMMulticontext
-  TIMMulticontext* = object of TIMContext
-    slave*: PIMContext
-    client_window*: gdk2.PWindow
-    context_id*: cstring
-
-  PIMMulticontextClass* = ptr TIMMulticontextClass
-  TIMMulticontextClass* = object of TIMContextClass
-    reserved451: proc (){.cdecl.}
-    reserved452: proc (){.cdecl.}
-    reserved453: proc (){.cdecl.}
-    reserved454: proc (){.cdecl.}
-
-  PInputDialog* = ptr TInputDialog
-  TInputDialog* = object of TDialog
-    axis_list*: PWidget
-    axis_listbox*: PWidget
-    mode_optionmenu*: PWidget
-    close_button*: PWidget
-    save_button*: PWidget
-    axis_items*: array[0..(gdk2.AXIS_LAST) - 1, PWidget]
-    current_device*: gdk2.PDevice
-    keys_list*: PWidget
-    keys_listbox*: PWidget
-
-  PInputDialogClass* = ptr TInputDialogClass
-  TInputDialogClass* = object of TDialogClass
-    enable_device*: proc (inputd: PInputDialog, device: gdk2.PDevice){.cdecl.}
-    disable_device*: proc (inputd: PInputDialog, device: gdk2.PDevice){.cdecl.}
-    reserved461: proc (){.cdecl.}
-    reserved462: proc (){.cdecl.}
-    reserved463: proc (){.cdecl.}
-    reserved464: proc (){.cdecl.}
-
-  PInvisible* = ptr TInvisible
-  TInvisible* = object of TWidget
-    has_user_ref_count*: gboolean
-    screen*: gdk2.PScreen
-
-  PInvisibleClass* = ptr TInvisibleClass
-  TInvisibleClass* = object of TWidgetClass
-    reserved701: proc (){.cdecl.}
-    reserved702: proc (){.cdecl.}
-    reserved703: proc (){.cdecl.}
-    reserved704: proc (){.cdecl.}
-
-  TPrintFunc* = proc (func_data: gpointer, str: cstring){.cdecl.}
-  PTranslateFunc* = ptr TTranslateFunc
-  TTranslateFunc* = gchar
-  TItemFactoryCallback* = proc (){.cdecl.}
-  TItemFactoryCallback1* = proc (callback_data: gpointer, 
-                                 callback_action: guint, widget: PWidget){.cdecl.}
-  PItemFactory* = ptr TItemFactory
-  TItemFactory* = object of TObject
-    path*: cstring
-    accel_group*: PAccelGroup
-    widget*: PWidget
-    items*: PGSList
-    translate_func*: TTranslateFunc
-    translate_data*: gpointer
-    translate_notify*: TDestroyNotify
-
-  PItemFactoryClass* = ptr TItemFactoryClass
-  TItemFactoryClass* = object of TObjectClass
-    item_ht*: PGHashTable
-    reserved471: proc (){.cdecl.}
-    reserved472: proc (){.cdecl.}
-    reserved473: proc (){.cdecl.}
-    reserved474: proc (){.cdecl.}
-
-  PItemFactoryEntry* = ptr TItemFactoryEntry
-  TItemFactoryEntry*{.final, pure.} = object 
-    path*: cstring
-    accelerator*: cstring
-    callback*: TItemFactoryCallback
-    callback_action*: guint
-    item_type*: cstring
-    extra_data*: gconstpointer
-
-  PItemFactoryItem* = ptr TItemFactoryItem
-  TItemFactoryItem*{.final, pure.} = object 
-    path*: cstring
-    widgets*: PGSList
-
-  PLayout* = ptr TLayout
-  TLayout* = object of TContainer
-    children*: PGList
-    width*: guint
-    height*: guint
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    bin_window*: gdk2.PWindow
-    visibility*: gdk2.TVisibilityState
-    scroll_x*: gint
-    scroll_y*: gint
-    freeze_count*: guint
-
-  PLayoutClass* = ptr TLayoutClass
-  TLayoutClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (layout: PLayout, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    reserved481: proc (){.cdecl.}
-    reserved482: proc (){.cdecl.}
-    reserved483: proc (){.cdecl.}
-    reserved484: proc (){.cdecl.}
-
-  PList* = ptr TList
-  TList* = object of TContainer
-    children*: PGList
-    selection*: PGList
-    undo_selection*: PGList
-    undo_unselection*: PGList
-    last_focus_child*: PWidget
-    undo_focus_child*: PWidget
-    htimer*: guint
-    vtimer*: guint
-    anchor*: gint
-    drag_pos*: gint
-    anchor_state*: TStateType
-    List_flag0*: guint16
-
-  PListClass* = ptr TListClass
-  TListClass* = object of TContainerClass
-    selection_changed*: proc (list: PList){.cdecl.}
-    select_child*: proc (list: PList, child: PWidget){.cdecl.}
-    unselect_child*: proc (list: PList, child: PWidget){.cdecl.}
-
-  TTreeModelForeachFunc* = proc (model: PTreeModel, path: PTreePath, 
-                                 iter: PTreeIter, data: gpointer): gboolean{.
-      cdecl.}
-  PTreeModelFlags* = ptr TTreeModelFlags
-  TTreeModelFlags* = int32
-  TTreeIter*{.final, pure.} = object 
-    stamp*: gint
-    user_data*: gpointer
-    user_data2*: gpointer
-    user_data3*: gpointer
-
-  PTreeModelIface* = ptr TTreeModelIface
-  TTreeModelIface* = object of TGTypeInterface
-    row_changed*: proc (tree_model: PTreeModel, path: PTreePath, iter: PTreeIter){.
-        cdecl.}
-    row_inserted*: proc (tree_model: PTreeModel, path: PTreePath, 
-                         iter: PTreeIter){.cdecl.}
-    row_has_child_toggled*: proc (tree_model: PTreeModel, path: PTreePath, 
-                                  iter: PTreeIter){.cdecl.}
-    row_deleted*: proc (tree_model: PTreeModel, path: PTreePath){.cdecl.}
-    rows_reordered*: proc (tree_model: PTreeModel, path: PTreePath, 
-                           iter: PTreeIter, new_order: Pgint){.cdecl.}
-    get_flags*: proc (tree_model: PTreeModel): TTreeModelFlags{.cdecl.}
-    get_n_columns*: proc (tree_model: PTreeModel): gint{.cdecl.}
-    get_column_type*: proc (tree_model: PTreeModel, index: gint): GType{.cdecl.}
-    get_iter*: proc (tree_model: PTreeModel, iter: PTreeIter, path: PTreePath): gboolean{.
-        cdecl.}
-    get_path*: proc (tree_model: PTreeModel, iter: PTreeIter): PTreePath{.cdecl.}
-    get_value*: proc (tree_model: PTreeModel, iter: PTreeIter, column: gint, 
-                      value: PGValue){.cdecl.}
-    iter_next*: proc (tree_model: PTreeModel, iter: PTreeIter): gboolean{.cdecl.}
-    iter_children*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                          parent: PTreeIter): gboolean{.cdecl.}
-    iter_has_child*: proc (tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-        cdecl.}
-    iter_n_children*: proc (tree_model: PTreeModel, iter: PTreeIter): gint{.
-        cdecl.}
-    iter_nth_child*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                           parent: PTreeIter, n: gint): gboolean{.cdecl.}
-    iter_parent*: proc (tree_model: PTreeModel, iter: PTreeIter, 
-                        child: PTreeIter): gboolean{.cdecl.}
-    ref_node*: proc (tree_model: PTreeModel, iter: PTreeIter){.cdecl.}
-    unref_node*: proc (tree_model: PTreeModel, iter: PTreeIter){.cdecl.}
-
-  PTreeSortable* = pointer
-  TTreeIterCompareFunc* = proc (model: PTreeModel, a: PTreeIter, b: PTreeIter, 
-                                user_data: gpointer): gint{.cdecl.}
-  PTreeSortableIface* = ptr TTreeSortableIface
-  TTreeSortableIface* = object of TGTypeInterface
-    sort_column_changed*: proc (sortable: PTreeSortable){.cdecl.}
-    get_sort_column_id*: proc (sortable: PTreeSortable, sort_column_id: Pgint, 
-                               order: PSortType): gboolean{.cdecl.}
-    set_sort_column_id*: proc (sortable: PTreeSortable, sort_column_id: gint, 
-                               order: TSortType){.cdecl.}
-    set_sort_func*: proc (sortable: PTreeSortable, sort_column_id: gint, 
-                          func: TTreeIterCompareFunc, data: gpointer, 
-                          destroy: TDestroyNotify){.cdecl.}
-    set_default_sort_func*: proc (sortable: PTreeSortable, 
-                                  func: TTreeIterCompareFunc, data: gpointer, 
-                                  destroy: TDestroyNotify){.cdecl.}
-    has_default_sort_func*: proc (sortable: PTreeSortable): gboolean{.cdecl.}
-
-  PTreeModelSort* = ptr TTreeModelSort
-  TTreeModelSort* = object of TGObject
-    root*: gpointer
-    stamp*: gint
-    child_flags*: guint
-    child_model*: PTreeModel
-    zero_ref_count*: gint
-    sort_list*: PGList
-    sort_column_id*: gint
-    order*: TSortType
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    changed_id*: guint
-    inserted_id*: guint
-    has_child_toggled_id*: guint
-    deleted_id*: guint
-    reordered_id*: guint
-
-  PTreeModelSortClass* = ptr TTreeModelSortClass
-  TTreeModelSortClass* = object of TGObjectClass
-    reserved491: proc (){.cdecl.}
-    reserved492: proc (){.cdecl.}
-    reserved493: proc (){.cdecl.}
-    reserved494: proc (){.cdecl.}
-
-  PListStore* = ptr TListStore
-  TListStore* = object of TGObject
-    stamp*: gint
-    root*: gpointer
-    tail*: gpointer
-    sort_list*: PGList
-    n_columns*: gint
-    sort_column_id*: gint
-    order*: TSortType
-    column_headers*: PGType
-    length*: gint
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    ListStore_flag0*: guint16
-
-  PListStoreClass* = ptr TListStoreClass
-  TListStoreClass* = object of TGObjectClass
-    reserved501: proc (){.cdecl.}
-    reserved502: proc (){.cdecl.}
-    reserved503: proc (){.cdecl.}
-    reserved504: proc (){.cdecl.}
-
-  TModuleInitFunc* = proc (argc: Pgint, argv: PPPgchar){.cdecl.}
-  TKeySnoopFunc* = proc (grab_widget: PWidget, event: gdk2.PEventKey, 
-                         func_data: gpointer): gint{.cdecl.}
-  PMenuBar* = ptr TMenuBar
-  TMenuBar* = object of TMenuShell
-  PMenuBarClass* = ptr TMenuBarClass
-  TMenuBarClass* = object of TMenuShellClass
-    reserved511: proc (){.cdecl.}
-    reserved512: proc (){.cdecl.}
-    reserved513: proc (){.cdecl.}
-    reserved514: proc (){.cdecl.}
-
-  PMessageType* = ptr TMessageType
-  TMessageType* = enum 
-    MESSAGE_INFO, MESSAGE_WARNING, MESSAGE_QUESTION, MESSAGE_ERROR
-  PButtonsType* = ptr TButtonsType
-  TButtonsType* = enum 
-    BUTTONS_NONE, BUTTONS_OK, BUTTONS_CLOSE, BUTTONS_CANCEL, BUTTONS_YES_NO, 
-    BUTTONS_OK_CANCEL
-  PMessageDialog* = ptr TMessageDialog
-  TMessageDialog* = object of TDialog
-    image*: PWidget
-    label*: PWidget
-
-  PMessageDialogClass* = ptr TMessageDialogClass
-  TMessageDialogClass* = object of TDialogClass
-    reserved521: proc (){.cdecl.}
-    reserved522: proc (){.cdecl.}
-    reserved523: proc (){.cdecl.}
-    reserved524: proc (){.cdecl.}
-
-  PNotebookPage* = pointer
-  PNotebookTab* = ptr TNotebookTab
-  TNotebookTab* = enum 
-    NOTEBOOK_TAB_FIRST, NOTEBOOK_TAB_LAST
-  PNotebook* = ptr TNotebook
-  TNotebook* = object of TContainer
-    cur_page*: PNotebookPage
-    children*: PGList
-    first_tab*: PGList
-    focus_tab*: PGList
-    menu*: PWidget
-    event_window*: gdk2.PWindow
-    timer*: guint32
-    tab_hborder*: guint16
-    tab_vborder*: guint16
-    Notebook_flag0*: guint16
-
-  PNotebookClass* = ptr TNotebookClass
-  TNotebookClass* = object of TContainerClass
-    switch_page*: proc (notebook: PNotebook, page: PNotebookPage, 
-                        page_num: guint){.cdecl.}
-    select_page*: proc (notebook: PNotebook, move_focus: gboolean): gboolean{.
-        cdecl.}
-    focus_tab*: proc (notebook: PNotebook, thetype: TNotebookTab): gboolean{.
-        cdecl.}
-    change_current_page*: proc (notebook: PNotebook, offset: gint){.cdecl.}
-    move_focus_out*: proc (notebook: PNotebook, direction: TDirectionType){.
-        cdecl.}
-    reserved531: proc (){.cdecl.}
-    reserved532: proc (){.cdecl.}
-    reserved533: proc (){.cdecl.}
-    reserved534: proc (){.cdecl.}
-
-  POldEditable* = ptr TOldEditable
-  TOldEditable* = object of TWidget
-    current_pos*: guint
-    selection_start_pos*: guint
-    selection_end_pos*: guint
-    OldEditable_flag0*: guint16
-    clipboard_text*: cstring
-
-  TTextFunction* = proc (editable: POldEditable, time: guint32){.cdecl.}
-  POldEditableClass* = ptr TOldEditableClass
-  TOldEditableClass* = object of TWidgetClass
-    activate*: proc (editable: POldEditable){.cdecl.}
-    set_editable*: proc (editable: POldEditable, is_editable: gboolean){.cdecl.}
-    move_cursor*: proc (editable: POldEditable, x: gint, y: gint){.cdecl.}
-    move_word*: proc (editable: POldEditable, n: gint){.cdecl.}
-    move_page*: proc (editable: POldEditable, x: gint, y: gint){.cdecl.}
-    move_to_row*: proc (editable: POldEditable, row: gint){.cdecl.}
-    move_to_column*: proc (editable: POldEditable, row: gint){.cdecl.}
-    kill_char*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    kill_word*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    kill_line*: proc (editable: POldEditable, direction: gint){.cdecl.}
-    cut_clipboard*: proc (editable: POldEditable){.cdecl.}
-    copy_clipboard*: proc (editable: POldEditable){.cdecl.}
-    paste_clipboard*: proc (editable: POldEditable){.cdecl.}
-    update_text*: proc (editable: POldEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    get_chars*: proc (editable: POldEditable, start_pos: gint, end_pos: gint): cstring{.
-        cdecl.}
-    set_selection*: proc (editable: POldEditable, start_pos: gint, end_pos: gint){.
-        cdecl.}
-    set_position*: proc (editable: POldEditable, position: gint){.cdecl.}
-
-  POptionMenu* = ptr TOptionMenu
-  TOptionMenu* = object of TButton
-    menu*: PWidget
-    menu_item*: PWidget
-    width*: guint16
-    height*: guint16
-
-  POptionMenuClass* = ptr TOptionMenuClass
-  TOptionMenuClass* = object of TButtonClass
-    changed*: proc (option_menu: POptionMenu){.cdecl.}
-    reserved541: proc (){.cdecl.}
-    reserved542: proc (){.cdecl.}
-    reserved543: proc (){.cdecl.}
-    reserved544: proc (){.cdecl.}
-
-  PPixmap* = ptr TPixmap
-  TPixmap* = object of TMisc
-    pixmap*: gdk2.PPixmap
-    mask*: gdk2.PBitmap
-    pixmap_insensitive*: gdk2.PPixmap
-    Pixmap_flag0*: guint16
-
-  PPixmapClass* = ptr TPixmapClass
-  TPixmapClass* = object of TMiscClass
-  PPlug* = ptr TPlug
-  TPlug* = object of TWindow
-    socket_window*: gdk2.PWindow
-    modality_window*: PWidget
-    modality_group*: PWindowGroup
-    grabbed_keys*: PGHashTable
-    Plug_flag0*: guint16
-
-  PPlugClass* = ptr TPlugClass
-  TPlugClass* = object of TWindowClass
-    embedded*: proc (plug: PPlug){.cdecl.}
-    reserved551: proc (){.cdecl.}
-    reserved552: proc (){.cdecl.}
-    reserved553: proc (){.cdecl.}
-    reserved554: proc (){.cdecl.}
-
-  PPreview* = ptr TPreview
-  TPreview* = object of TWidget
-    buffer*: Pguchar
-    buffer_width*: guint16
-    buffer_height*: guint16
-    bpp*: guint16
-    rowstride*: guint16
-    dither*: gdk2.TRgbDither
-    Preview_flag0*: guint16
-
-  PPreviewInfo* = ptr TPreviewInfo
-  TPreviewInfo*{.final, pure.} = object 
-    lookup*: Pguchar
-    gamma*: gdouble
-
-  PDitherInfo* = ptr TDitherInfo
-  TDitherInfo*{.final, pure.} = object 
-    c*: array[0..3, guchar]
-
-  PPreviewClass* = ptr TPreviewClass
-  TPreviewClass* = object of TWidgetClass
-    info*: TPreviewInfo
-
-  PProgress* = ptr TProgress
-  TProgress* = object of TWidget
-    adjustment*: PAdjustment
-    offscreen_pixmap*: gdk2.PPixmap
-    format*: cstring
-    x_align*: gfloat
-    y_align*: gfloat
-    Progress_flag0*: guint16
-
-  PProgressClass* = ptr TProgressClass
-  TProgressClass* = object of TWidgetClass
-    paint*: proc (progress: PProgress){.cdecl.}
-    update*: proc (progress: PProgress){.cdecl.}
-    act_mode_enter*: proc (progress: PProgress){.cdecl.}
-    reserved561: proc (){.cdecl.}
-    reserved562: proc (){.cdecl.}
-    reserved563: proc (){.cdecl.}
-    reserved564: proc (){.cdecl.}
-
-  PProgressBarStyle* = ptr TProgressBarStyle
-  TProgressBarStyle* = enum 
-    PROGRESS_CONTINUOUS, PROGRESS_DISCRETE
-  PProgressBarOrientation* = ptr TProgressBarOrientation
-  TProgressBarOrientation* = enum 
-    PROGRESS_LEFT_TO_RIGHT, PROGRESS_RIGHT_TO_LEFT, PROGRESS_BOTTOM_TO_TOP, 
-    PROGRESS_TOP_TO_BOTTOM
-  PProgressBar* = ptr TProgressBar
-  TProgressBar* = object of TProgress
-    bar_style*: TProgressBarStyle
-    orientation*: TProgressBarOrientation
-    blocks*: guint
-    in_block*: gint
-    activity_pos*: gint
-    activity_step*: guint
-    activity_blocks*: guint
-    pulse_fraction*: gdouble
-    ProgressBar_flag0*: guint16
-
-  PProgressBarClass* = ptr TProgressBarClass
-  TProgressBarClass* = object of TProgressClass
-    reserved571: proc (){.cdecl.}
-    reserved572: proc (){.cdecl.}
-    reserved573: proc (){.cdecl.}
-    reserved574: proc (){.cdecl.}
-
-  PRadioButton* = ptr TRadioButton
-  TRadioButton* = object of TCheckButton
-    group*: PGSList
-
-  PRadioButtonClass* = ptr TRadioButtonClass
-  TRadioButtonClass* = object of TCheckButtonClass
-    reserved581: proc (){.cdecl.}
-    reserved582: proc (){.cdecl.}
-    reserved583: proc (){.cdecl.}
-    reserved584: proc (){.cdecl.}
-
-  PRadioMenuItem* = ptr TRadioMenuItem
-  TRadioMenuItem* = object of TCheckMenuItem
-    group*: PGSList
-
-  PRadioMenuItemClass* = ptr TRadioMenuItemClass
-  TRadioMenuItemClass* = object of TCheckMenuItemClass
-    reserved591: proc (){.cdecl.}
-    reserved592: proc (){.cdecl.}
-    reserved593: proc (){.cdecl.}
-    reserved594: proc (){.cdecl.}
-
-  PScrolledWindow* = ptr TScrolledWindow
-  TScrolledWindow* = object of TBin
-    hscrollbar*: PWidget
-    vscrollbar*: PWidget
-    ScrolledWindow_flag0*: guint16
-    shadow_type*: guint16
-
-  PScrolledWindowClass* = ptr TScrolledWindowClass
-  TScrolledWindowClass* = object of TBinClass
-    scrollbar_spacing*: gint
-    scroll_child*: proc (scrolled_window: PScrolledWindow, scroll: TScrollType, 
-                         horizontal: gboolean){.cdecl.}
-    move_focus_out*: proc (scrolled_window: PScrolledWindow, 
-                           direction: TDirectionType){.cdecl.}
-    reserved601: proc (){.cdecl.}
-    reserved602: proc (){.cdecl.}
-    reserved603: proc (){.cdecl.}
-    reserved604: proc (){.cdecl.}
-
-  TSelectionData*{.final, pure.} = object 
-    selection*: gdk2.TAtom
-    target*: gdk2.TAtom
-    thetype*: gdk2.TAtom
-    format*: gint
-    data*: Pguchar
-    length*: gint
-    display*: gdk2.PDisplay
-
-  PTargetEntry* = ptr TTargetEntry
-  TTargetEntry*{.final, pure.} = object 
-    target*: cstring
-    flags*: guint
-    info*: guint
-
-  PTargetList* = ptr TTargetList
-  TTargetList*{.final, pure.} = object 
-    list*: PGList
-    ref_count*: guint
-
-  PTargetPair* = ptr TTargetPair
-  TTargetPair*{.final, pure.} = object 
-    target*: gdk2.TAtom
-    flags*: guint
-    info*: guint
-
-  PSeparatorMenuItem* = ptr TSeparatorMenuItem
-  TSeparatorMenuItem* = object of TMenuItem
-  PSeparatorMenuItemClass* = ptr TSeparatorMenuItemClass
-  TSeparatorMenuItemClass* = object of TMenuItemClass
-  PSizeGroup* = ptr TSizeGroup
-  TSizeGroup* = object of TGObject
-    widgets*: PGSList
-    mode*: guint8
-    SizeGroup_flag0*: guint16
-    requisition*: TRequisition
-
-  PSizeGroupClass* = ptr TSizeGroupClass
-  TSizeGroupClass* = object of TGObjectClass
-    reserved611: proc (){.cdecl.}
-    reserved612: proc (){.cdecl.}
-    reserved613: proc (){.cdecl.}
-    reserved614: proc (){.cdecl.}
-
-  PSizeGroupMode* = ptr TSizeGroupMode
-  TSizeGroupMode* = enum 
-    SIZE_GROUP_NONE, SIZE_GROUP_HORIZONTAL, SIZE_GROUP_VERTICAL, SIZE_GROUP_BOTH
-  PSocket* = ptr TSocket
-  TSocket* = object of TContainer
-    request_width*: guint16
-    request_height*: guint16
-    current_width*: guint16
-    current_height*: guint16
-    plug_window*: gdk2.PWindow
-    plug_widget*: PWidget
-    xembed_version*: gshort
-    Socket_flag0*: guint16
-    accel_group*: PAccelGroup
-    toplevel*: PWidget
-
-  PSocketClass* = ptr TSocketClass
-  TSocketClass* = object of TContainerClass
-    plug_added*: proc (socket: PSocket){.cdecl.}
-    plug_removed*: proc (socket: PSocket): gboolean{.cdecl.}
-    reserved621: proc (){.cdecl.}
-    reserved622: proc (){.cdecl.}
-    reserved623: proc (){.cdecl.}
-    reserved624: proc (){.cdecl.}
-
-  PSpinButtonUpdatePolicy* = ptr TSpinButtonUpdatePolicy
-  TSpinButtonUpdatePolicy* = enum 
-    UPDATE_ALWAYS, UPDATE_IF_VALID
-  PSpinType* = ptr TSpinType
-  TSpinType* = enum 
-    SPIN_STEP_FORWARD, SPIN_STEP_BACKWARD, SPIN_PAGE_FORWARD, 
-    SPIN_PAGE_BACKWARD, SPIN_HOME, SPIN_END, SPIN_USER_DEFINED
-  PSpinButton* = ptr TSpinButton
-  TSpinButton* = object of TEntry
-    adjustment*: PAdjustment
-    panel*: gdk2.PWindow
-    timer*: guint32
-    climb_rate*: gdouble
-    timer_step*: gdouble
-    update_policy*: TSpinButtonUpdatePolicy
-    SpinButton_flag0*: int32
-
-  PSpinButtonClass* = ptr TSpinButtonClass
-  TSpinButtonClass* = object of TEntryClass
-    input*: proc (spin_button: PSpinButton, new_value: Pgdouble): gint{.cdecl.}
-    output*: proc (spin_button: PSpinButton): gint{.cdecl.}
-    value_changed*: proc (spin_button: PSpinButton){.cdecl.}
-    change_value*: proc (spin_button: PSpinButton, scroll: TScrollType){.cdecl.}
-    reserved631: proc (){.cdecl.}
-    reserved632: proc (){.cdecl.}
-    reserved633: proc (){.cdecl.}
-    reserved634: proc (){.cdecl.}
-
-  PStockItem* = ptr TStockItem
-  TStockItem*{.final, pure.} = object 
-    stock_id*: cstring
-    label*: cstring
-    modifier*: gdk2.TModifierType
-    keyval*: guint
-    translation_domain*: cstring
-
-  PStatusbar* = ptr TStatusbar
-  TStatusbar* = object of THBox
-    frame*: PWidget
-    `label`*: PWidget
-    messages*: PGSList
-    keys*: PGSList
-    seq_context_id*: guint
-    seq_message_id*: guint
-    grip_window*: gdk2.PWindow
-    Statusbar_flag0*: guint16
-
-  PStatusbarClass* = ptr TStatusbarClass
-  TStatusbarClass* = object of THBoxClass
-    messages_mem_chunk*: PGMemChunk
-    text_pushed*: proc (statusbar: PStatusbar, context_id: guint, text: cstring){.
-        cdecl.}
-    text_popped*: proc (statusbar: PStatusbar, context_id: guint, text: cstring){.
-        cdecl.}
-    reserved641: proc (){.cdecl.}
-    reserved642: proc (){.cdecl.}
-    reserved643: proc (){.cdecl.}
-    reserved644: proc (){.cdecl.}
-
-  PTableRowCol* = ptr TTableRowCol
-  PTable* = ptr TTable
-  TTable* = object of TContainer
-    children*: PGList
-    rows*: PTableRowCol
-    cols*: PTableRowCol
-    nrows*: guint16
-    ncols*: guint16
-    column_spacing*: guint16
-    row_spacing*: guint16
-    Table_flag0*: guint16
-
-  PTableClass* = ptr TTableClass
-  TTableClass* = object of TContainerClass
-  PTableChild* = ptr TTableChild
-  TTableChild*{.final, pure.} = object 
-    widget*: PWidget
-    left_attach*: guint16
-    right_attach*: guint16
-    top_attach*: guint16
-    bottom_attach*: guint16
-    xpadding*: guint16
-    ypadding*: guint16
-    TableChild_flag0*: guint16
-
-  TTableRowCol*{.final, pure.} = object 
-    requisition*: guint16
-    allocation*: guint16
-    spacing*: guint16
-    flag0*: guint16
-
-  PTearoffMenuItem* = ptr TTearoffMenuItem
-  TTearoffMenuItem* = object of TMenuItem
-    TearoffMenuItem_flag0*: guint16
-
-  PTearoffMenuItemClass* = ptr TTearoffMenuItemClass
-  TTearoffMenuItemClass* = object of TMenuItemClass
-    reserved651: proc (){.cdecl.}
-    reserved652: proc (){.cdecl.}
-    reserved653: proc (){.cdecl.}
-    reserved654: proc (){.cdecl.}
-
-  PTextFont* = pointer
-  PPropertyMark* = ptr TPropertyMark
-  TPropertyMark*{.final, pure.} = object 
-    `property`*: PGList
-    offset*: guint
-    index*: guint
-
-  PText* = ptr TText
-  TText* = object of TOldEditable
-    text_area*: gdk2.PWindow
-    hadj*: PAdjustment
-    vadj*: PAdjustment
-    gc*: gdk2.PGC
-    line_wrap_bitmap*: gdk2.PPixmap
-    line_arrow_bitmap*: gdk2.PPixmap
-    text*: Pguchar
-    text_len*: guint
-    gap_position*: guint
-    gap_size*: guint
-    text_end*: guint
-    line_start_cache*: PGList
-    first_line_start_index*: guint
-    first_cut_pixels*: guint
-    first_onscreen_hor_pixel*: guint
-    first_onscreen_ver_pixel*: guint
-    Text_flag0*: guint16
-    freeze_count*: guint
-    text_properties*: PGList
-    text_properties_end*: PGList
-    point*: TPropertyMark
-    scratch_buffer*: Pguchar
-    scratch_buffer_len*: guint
-    last_ver_value*: gint
-    cursor_pos_x*: gint
-    cursor_pos_y*: gint
-    cursor_mark*: TPropertyMark
-    cursor_char*: gdk2.TWChar
-    cursor_char_offset*: gchar
-    cursor_virtual_x*: gint
-    cursor_drawn_level*: gint
-    current_line*: PGList
-    tab_stops*: PGList
-    default_tab_width*: gint
-    current_font*: PTextFont
-    timer*: gint
-    button*: guint
-    bg_gc*: gdk2.PGC
-
-  PTextClass* = ptr TTextClass
-  TTextClass* = object of TOldEditableClass
-    set_scroll_adjustments*: proc (text: PText, hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-
-  PTextSearchFlags* = ptr TTextSearchFlags
-  TTextSearchFlags* = int32
-  PTextIter* = ptr TTextIter
-  TTextIter*{.final, pure.} = object 
-    dummy1*: gpointer
-    dummy2*: gpointer
-    dummy3*: gint
-    dummy4*: gint
-    dummy5*: gint
-    dummy6*: gint
-    dummy7*: gint
-    dummy8*: gint
-    dummy9*: gpointer
-    dummy10*: gpointer
-    dummy11*: gint
-    dummy12*: gint
-    dummy13*: gint
-    dummy14*: gpointer
-
-  TTextCharPredicate* = proc (ch: gunichar, user_data: gpointer): gboolean{.
-      cdecl.}
-  PTextTagClass* = ptr TTextTagClass
-  PTextAttributes* = ptr TTextAttributes
-  PTextTag* = ptr TTextTag
-  PPGtkTextTag* = ptr PTextTag
-  TTextTag* = object of TGObject
-    table*: PTextTagTable
-    name*: cstring
-    priority*: int32
-    values*: PTextAttributes
-    TextTag_flag0*: int32
-
-  TTextTagClass* = object of TGObjectClass
-    event*: proc (tag: PTextTag, event_object: PGObject, event: gdk2.PEvent, 
-                  iter: PTextIter): gboolean{.cdecl.}
-    reserved661: proc (){.cdecl.}
-    reserved662: proc (){.cdecl.}
-    reserved663: proc (){.cdecl.}
-    reserved664: proc (){.cdecl.}
-
-  PTextAppearance* = ptr TTextAppearance
-  TTextAppearance*{.final, pure.} = object 
-    bg_color*: gdk2.TColor
-    fg_color*: gdk2.TColor
-    bg_stipple*: gdk2.PBitmap
-    fg_stipple*: gdk2.PBitmap
-    rise*: gint
-    padding1*: gpointer
-    flag0*: guint16
-
-  TTextAttributes*{.final, pure.} = object 
-    refcount*: guint
-    appearance*: TTextAppearance
-    justification*: TJustification
-    direction*: TTextDirection
-    font*: pango.PFontDescription
-    font_scale*: gdouble
-    left_margin*: gint
-    indent*: gint
-    right_margin*: gint
-    pixels_above_lines*: gint
-    pixels_below_lines*: gint
-    pixels_inside_wrap*: gint
-    tabs*: pango.PTabArray
-    wrap_mode*: TWrapMode
-    language*: pango.PLanguage
-    padding1*: gpointer
-    flag0*: guint16
-
-  TTextTagTableForeach* = proc (tag: PTextTag, data: gpointer){.cdecl.}
-  TTextTagTable* = object of TGObject
-    hash*: PGHashTable
-    anonymous*: PGSList
-    anon_count*: gint
-    buffers*: PGSList
-
-  PTextTagTableClass* = ptr TTextTagTableClass
-  TTextTagTableClass* = object of TGObjectClass
-    tag_changed*: proc (table: PTextTagTable, tag: PTextTag, 
-                        size_changed: gboolean){.cdecl.}
-    tag_added*: proc (table: PTextTagTable, tag: PTextTag){.cdecl.}
-    tag_removed*: proc (table: PTextTagTable, tag: PTextTag){.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextMark* = ptr TTextMark
-  TTextMark* = object of TGObject
-    segment*: gpointer
-
-  PTextMarkClass* = ptr TTextMarkClass
-  TTextMarkClass* = object of TGObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextMarkBody* = ptr TTextMarkBody
-  TTextMarkBody*{.final, pure.} = object 
-    obj*: PTextMark
-    name*: cstring
-    tree*: PTextBTree
-    line*: PTextLine
-    flag0*: guint16
-
-  PTextChildAnchor* = ptr TTextChildAnchor
-  TTextChildAnchor* = object of TGObject
-    segment*: gpointer
-
-  PTextChildAnchorClass* = ptr TTextChildAnchorClass
-  TTextChildAnchorClass* = object of TGObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextPixbuf* = ptr TTextPixbuf
-  TTextPixbuf*{.final, pure.} = object 
-    pixbuf*: gdk2pixbuf.PPixbuf
-
-  PTextChildBody* = ptr TTextChildBody
-  TTextChildBody*{.final, pure.} = object 
-    obj*: PTextChildAnchor
-    widgets*: PGSList
-    tree*: PTextBTree
-    line*: PTextLine
-
-  PTextLineSegment* = ptr TTextLineSegment
-  PTextLineSegmentClass* = ptr TTextLineSegmentClass
-  PTextTagInfo* = ptr TTextTagInfo
-  TTextTagInfo*{.final, pure.} = object 
-    tag*: PTextTag
-    tag_root*: PTextBTreeNode
-    toggle_count*: gint
-
-  PTextToggleBody* = ptr TTextToggleBody
-  TTextToggleBody*{.final, pure.} = object 
-    info*: PTextTagInfo
-    inNodeCounts*: gboolean
-
-  TTextLineSegment*{.final, pure.} = object 
-    `type`*: PTextLineSegmentClass
-    next*: PTextLineSegment
-    char_count*: int32
-    byte_count*: int32
-    body*: TTextChildBody
-
-  PTextSegSplitFunc* = ptr TTextSegSplitFunc
-  TTextSegSplitFunc* = TTextLineSegment
-  TTextSegDeleteFunc* = proc (seg: PTextLineSegment, line: PTextLine, 
-                              tree_gone: gboolean): gboolean{.cdecl.}
-  PTextSegCleanupFunc* = ptr TTextSegCleanupFunc
-  TTextSegCleanupFunc* = TTextLineSegment
-  TTextSegLineChangeFunc* = proc (seg: PTextLineSegment, line: PTextLine){.cdecl.}
-  TTextSegCheckFunc* = proc (seg: PTextLineSegment, line: PTextLine){.cdecl.}
-  TTextLineSegmentClass*{.final, pure.} = object 
-    name*: cstring
-    leftGravity*: gboolean
-    splitFunc*: TTextSegSplitFunc
-    deleteFunc*: TTextSegDeleteFunc
-    cleanupFunc*: TTextSegCleanupFunc
-    lineChangeFunc*: TTextSegLineChangeFunc
-    checkFunc*: TTextSegCheckFunc
-
-  PTextLineData* = ptr TTextLineData
-  TTextLineData*{.final, pure.} = object 
-    view_id*: gpointer
-    next*: PTextLineData
-    height*: gint
-    flag0*: int32
-
-  TTextLine*{.final, pure.} = object 
-    parent*: PTextBTreeNode
-    next*: PTextLine
-    segments*: PTextLineSegment
-    views*: PTextLineData
-
-  PTextLogAttrCache* = pointer
-  PTextBuffer* = ptr TTextBuffer
-  TTextBuffer* = object of TGObject
-    tag_table*: PTextTagTable
-    btree*: PTextBTree
-    clipboard_contents_buffers*: PGSList
-    selection_clipboards*: PGSList
-    log_attr_cache*: PTextLogAttrCache
-    user_action_count*: guint
-    TextBuffer_flag0*: guint16
-
-  PTextBufferClass* = ptr TTextBufferClass
-  TTextBufferClass* = object of TGObjectClass
-    insert_text*: proc (buffer: PTextBuffer, pos: PTextIter, text: cstring, 
-                        length: gint){.cdecl.}
-    insert_pixbuf*: proc (buffer: PTextBuffer, pos: PTextIter, 
-                          pixbuf: gdk2pixbuf.PPixbuf){.cdecl.}
-    insert_child_anchor*: proc (buffer: PTextBuffer, pos: PTextIter, 
-                                anchor: PTextChildAnchor){.cdecl.}
-    delete_range*: proc (buffer: PTextBuffer, start: PTextIter, 
-                         theEnd: PTextIter){.cdecl.}
-    changed*: proc (buffer: PTextBuffer){.cdecl.}
-    modified_changed*: proc (buffer: PTextBuffer){.cdecl.}
-    mark_set*: proc (buffer: PTextBuffer, location: PTextIter, mark: PTextMark){.
-        cdecl.}
-    mark_deleted*: proc (buffer: PTextBuffer, mark: PTextMark){.cdecl.}
-    apply_tag*: proc (buffer: PTextBuffer, tag: PTextTag, start_char: PTextIter, 
-                      end_char: PTextIter){.cdecl.}
-    remove_tag*: proc (buffer: PTextBuffer, tag: PTextTag, 
-                       start_char: PTextIter, end_char: PTextIter){.cdecl.}
-    begin_user_action*: proc (buffer: PTextBuffer){.cdecl.}
-    end_user_action*: proc (buffer: PTextBuffer){.cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-    reserved5: proc (){.cdecl.}
-    reserved6: proc (){.cdecl.}
-
-  PTextLineDisplay* = ptr TTextLineDisplay
-  PTextLayout* = ptr TTextLayout
-  TTextLayout* = object of TGObject
-    screen_width*: gint
-    width*: gint
-    height*: gint
-    buffer*: PTextBuffer
-    default_style*: PTextAttributes
-    ltr_context*: pango.PContext
-    rtl_context*: pango.PContext
-    one_style_cache*: PTextAttributes
-    one_display_cache*: PTextLineDisplay
-    wrap_loop_count*: gint
-    TextLayout_flag0*: guint16
-    preedit_string*: cstring
-    preedit_attrs*: pango.PAttrList
-    preedit_len*: gint
-    preedit_cursor*: gint
-
-  PTextLayoutClass* = ptr TTextLayoutClass
-  TTextLayoutClass* = object of TGObjectClass
-    invalidated*: proc (layout: PTextLayout){.cdecl.}
-    changed*: proc (layout: PTextLayout, y: gint, old_height: gint, 
-                    new_height: gint){.cdecl.}
-    wrap*: proc (layout: PTextLayout, line: PTextLine, line_data: PTextLineData): PTextLineData{.
-        cdecl.}
-    get_log_attrs*: proc (layout: PTextLayout, line: PTextLine, 
-                          attrs: var pango.PLogAttr, n_attrs: Pgint){.cdecl.}
-    invalidate*: proc (layout: PTextLayout, start: PTextIter, theEnd: PTextIter){.
-        cdecl.}
-    free_line_data*: proc (layout: PTextLayout, line: PTextLine, 
-                           line_data: PTextLineData){.cdecl.}
-    allocate_child*: proc (layout: PTextLayout, child: PWidget, x: gint, y: gint){.
-        cdecl.}
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PTextAttrAppearance* = ptr TTextAttrAppearance
-  TTextAttrAppearance*{.final, pure.} = object 
-    attr*: pango.TAttribute
-    appearance*: TTextAppearance
-
-  PTextCursorDisplay* = ptr TTextCursorDisplay
-  TTextCursorDisplay*{.final, pure.} = object 
-    x*: gint
-    y*: gint
-    height*: gint
-    flag0*: guint16
-
-  TTextLineDisplay*{.final, pure.} = object 
-    layout*: pango.PLayout
-    cursors*: PGSList
-    shaped_objects*: PGSList
-    direction*: TTextDirection
-    width*: gint
-    total_width*: gint
-    height*: gint
-    x_offset*: gint
-    left_margin*: gint
-    right_margin*: gint
-    top_margin*: gint
-    bottom_margin*: gint
-    insert_index*: gint
-    size_only*: gboolean
-    line*: PTextLine
-
-  PTextWindow* = pointer
-  PTextPendingScroll* = pointer
-  PTextWindowType* = ptr TTextWindowType
-  TTextWindowType* = enum 
-    TEXT_WINDOW_PRIVATE, TEXT_WINDOW_WIDGET, TEXT_WINDOW_TEXT, TEXT_WINDOW_LEFT, 
-    TEXT_WINDOW_RIGHT, TEXT_WINDOW_TOP, TEXT_WINDOW_BOTTOM
-  PTextView* = ptr TTextView
-  TTextView* = object of TContainer
-    layout*: PTextLayout
-    buffer*: PTextBuffer
-    selection_drag_handler*: guint
-    scroll_timeout*: guint
-    pixels_above_lines*: gint
-    pixels_below_lines*: gint
-    pixels_inside_wrap*: gint
-    wrap_mode*: TWrapMode
-    justify*: TJustification
-    left_margin*: gint
-    right_margin*: gint
-    indent*: gint
-    tabs*: pango.PTabArray
-    TextView_flag0*: guint16
-    text_window*: PTextWindow
-    left_window*: PTextWindow
-    right_window*: PTextWindow
-    top_window*: PTextWindow
-    bottom_window*: PTextWindow
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    xoffset*: gint
-    yoffset*: gint
-    width*: gint
-    height*: gint
-    virtual_cursor_x*: gint
-    virtual_cursor_y*: gint
-    first_para_mark*: PTextMark
-    first_para_pixels*: gint
-    dnd_mark*: PTextMark
-    blink_timeout*: guint
-    first_validate_idle*: guint
-    incremental_validate_idle*: guint
-    im_context*: PIMContext
-    popup_menu*: PWidget
-    drag_start_x*: gint
-    drag_start_y*: gint
-    children*: PGSList
-    pending_scroll*: PTextPendingScroll
-    pending_place_cursor_button*: gint
-
-  PTextViewClass* = ptr TTextViewClass
-  TTextViewClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (text_view: PTextView, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    populate_popup*: proc (text_view: PTextView, menu: PMenu){.cdecl.}
-    move_cursor*: proc (text_view: PTextView, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    page_horizontally*: proc (text_view: PTextView, count: gint, 
-                              extend_selection: gboolean){.cdecl.}
-    set_anchor*: proc (text_view: PTextView){.cdecl.}
-    insert_at_cursor*: proc (text_view: PTextView, str: cstring){.cdecl.}
-    delete_from_cursor*: proc (text_view: PTextView, thetype: TDeleteType, 
-                               count: gint){.cdecl.}
-    cut_clipboard*: proc (text_view: PTextView){.cdecl.}
-    copy_clipboard*: proc (text_view: PTextView){.cdecl.}
-    paste_clipboard*: proc (text_view: PTextView){.cdecl.}
-    toggle_overwrite*: proc (text_view: PTextView){.cdecl.}
-    move_focus*: proc (text_view: PTextView, direction: TDirectionType){.cdecl.}
-    reserved711: proc (){.cdecl.}
-    reserved712: proc (){.cdecl.}
-    reserved713: proc (){.cdecl.}
-    reserved714: proc (){.cdecl.}
-    reserved715: proc (){.cdecl.}
-    reserved716: proc (){.cdecl.}
-    reserved717: proc (){.cdecl.}
-    reserved718: proc (){.cdecl.}
-
-  PTipsQuery* = ptr TTipsQuery
-  TTipsQuery* = object of TLabel
-    TipsQuery_flag0*: guint16
-    label_inactive*: cstring
-    label_no_tip*: cstring
-    caller*: PWidget
-    last_crossed*: PWidget
-    query_cursor*: gdk2.PCursor
-
-  PTipsQueryClass* = ptr TTipsQueryClass
-  TTipsQueryClass* = object of TLabelClass
-    start_query*: proc (tips_query: PTipsQuery){.cdecl.}
-    stop_query*: proc (tips_query: PTipsQuery){.cdecl.}
-    widget_entered*: proc (tips_query: PTipsQuery, widget: PWidget, 
-                           tip_text: cstring, tip_private: cstring){.cdecl.}
-    widget_selected*: proc (tips_query: PTipsQuery, widget: PWidget, 
-                            tip_text: cstring, tip_private: cstring, 
-                            event: gdk2.PEventButton): gint{.cdecl.}
-    reserved721: proc (){.cdecl.}
-    reserved722: proc (){.cdecl.}
-    reserved723: proc (){.cdecl.}
-    reserved724: proc (){.cdecl.}
-
-  PTooltips* = ptr TTooltips
-  PTooltipsData* = ptr TTooltipsData
-  TTooltipsData*{.final, pure.} = object 
-    tooltips*: PTooltips
-    widget*: PWidget
-    tip_text*: cstring
-    tip_private*: cstring
-
-  TTooltips* = object of TObject
-    tip_window*: PWidget
-    tip_label*: PWidget
-    active_tips_data*: PTooltipsData
-    tips_data_list*: PGList
-    Tooltips_flag0*: int32
-    flag1*: guint16
-    timer_tag*: gint
-    last_popdown*: TGTimeVal
-
-  PTooltipsClass* = ptr TTooltipsClass
-  TTooltipsClass* = object of TObjectClass
-    reserved1: proc (){.cdecl.}
-    reserved2: proc (){.cdecl.}
-    reserved3: proc (){.cdecl.}
-    reserved4: proc (){.cdecl.}
-
-  PToolbarChildType* = ptr TToolbarChildType
-  TToolbarChildType* = enum 
-    TOOLBAR_CHILD_SPACE, TOOLBAR_CHILD_BUTTON, TOOLBAR_CHILD_TOGGLEBUTTON, 
-    TOOLBAR_CHILD_RADIOBUTTON, TOOLBAR_CHILD_WIDGET
-  PToolbarSpaceStyle* = ptr TToolbarSpaceStyle
-  TToolbarSpaceStyle* = enum 
-    TOOLBAR_SPACE_EMPTY, TOOLBAR_SPACE_LINE
-  PToolbarChild* = ptr TToolbarChild
-  TToolbarChild*{.final, pure.} = object 
-    `type`*: TToolbarChildType
-    widget*: PWidget
-    icon*: PWidget
-    label*: PWidget
-
-  PToolbar* = ptr TToolbar
-  TToolbar* = object of TContainer
-    num_children*: gint
-    children*: PGList
-    orientation*: TOrientation
-    Toolbar_style*: TToolbarStyle
-    icon_size*: TIconSize
-    tooltips*: PTooltips
-    button_maxw*: gint
-    button_maxh*: gint
-    style_set_connection*: guint
-    icon_size_connection*: guint
-    Toolbar_flag0*: guint16
-
-  PToolbarClass* = ptr TToolbarClass
-  TToolbarClass* = object of TContainerClass
-    orientation_changed*: proc (toolbar: PToolbar, orientation: TOrientation){.
-        cdecl.}
-    style_changed*: proc (toolbar: PToolbar, style: TToolbarStyle){.cdecl.}
-    reserved731: proc (){.cdecl.}
-    reserved732: proc (){.cdecl.}
-    reserved733: proc (){.cdecl.}
-    reserved734: proc (){.cdecl.}
-
-  PTreeViewMode* = ptr TTreeViewMode
-  TTreeViewMode* = enum 
-    TREE_VIEW_LINE, TREE_VIEW_ITEM
-  PTree* = ptr TTree
-  TTree* = object of TContainer
-    children*: PGList
-    root_tree*: PTree
-    tree_owner*: PWidget
-    selection*: PGList
-    level*: guint
-    indent_value*: guint
-    current_indent*: guint
-    Tree_flag0*: guint16
-
-  PTreeClass* = ptr TTreeClass
-  TTreeClass* = object of TContainerClass
-    selection_changed*: proc (tree: PTree){.cdecl.}
-    select_child*: proc (tree: PTree, child: PWidget){.cdecl.}
-    unselect_child*: proc (tree: PTree, child: PWidget){.cdecl.}
-
-  PTreeDragSource* = pointer
-  PTreeDragDest* = pointer
-  PTreeDragSourceIface* = ptr TTreeDragSourceIface
-  TTreeDragSourceIface* = object of TGTypeInterface
-    row_draggable*: proc (drag_source: PTreeDragSource, path: PTreePath): gboolean{.
-        cdecl.}
-    drag_data_get*: proc (drag_source: PTreeDragSource, path: PTreePath, 
-                          selection_data: PSelectionData): gboolean{.cdecl.}
-    drag_data_delete*: proc (drag_source: PTreeDragSource, path: PTreePath): gboolean{.
-        cdecl.}
-
-  PTreeDragDestIface* = ptr TTreeDragDestIface
-  TTreeDragDestIface* = object of TGTypeInterface
-    drag_data_received*: proc (drag_dest: PTreeDragDest, dest: PTreePath, 
-                               selection_data: PSelectionData): gboolean{.cdecl.}
-    row_drop_possible*: proc (drag_dest: PTreeDragDest, dest_path: PTreePath, 
-                              selection_data: PSelectionData): gboolean{.cdecl.}
-
-  PTreeItem* = ptr TTreeItem
-  TTreeItem* = object of TItem
-    subtree*: PWidget
-    pixmaps_box*: PWidget
-    plus_pix_widget*: PWidget
-    minus_pix_widget*: PWidget
-    pixmaps*: PGList
-    TreeItem_flag0*: guint16
-
-  PTreeItemClass* = ptr TTreeItemClass
-  TTreeItemClass* = object of TItemClass
-    expand*: proc (tree_item: PTreeItem){.cdecl.}
-    collapse*: proc (tree_item: PTreeItem){.cdecl.}
-
-  PTreeSelection* = ptr TTreeSelection
-  TTreeSelectionFunc* = proc (selection: PTreeSelection, model: PTreeModel, 
-                              path: PTreePath, 
-                              path_currently_selected: gboolean, data: gpointer): gboolean{.
-      cdecl.}
-  TTreeSelectionForeachFunc* = proc (model: PTreeModel, path: PTreePath, 
-                                     iter: PTreeIter, data: gpointer){.cdecl.}
-  TTreeSelection* = object of TGObject
-    tree_view*: PTreeView
-    thetype*: TSelectionMode
-    user_func*: TTreeSelectionFunc
-    user_data*: gpointer
-    destroy*: TDestroyNotify
-
-  PTreeSelectionClass* = ptr TTreeSelectionClass
-  TTreeSelectionClass* = object of TGObjectClass
-    changed*: proc (selection: PTreeSelection){.cdecl.}
-    reserved741: proc (){.cdecl.}
-    reserved742: proc (){.cdecl.}
-    reserved743: proc (){.cdecl.}
-    reserved744: proc (){.cdecl.}
-
-  PTreeStore* = ptr TTreeStore
-  TTreeStore* = object of TGObject
-    stamp*: gint
-    root*: gpointer
-    last*: gpointer
-    n_columns*: gint
-    sort_column_id*: gint
-    sort_list*: PGList
-    order*: TSortType
-    column_headers*: PGType
-    default_sort_func*: TTreeIterCompareFunc
-    default_sort_data*: gpointer
-    default_sort_destroy*: TDestroyNotify
-    TreeStore_flag0*: guint16
-
-  PTreeStoreClass* = ptr TTreeStoreClass
-  TTreeStoreClass* = object of TGObjectClass
-    reserved751: proc (){.cdecl.}
-    reserved752: proc (){.cdecl.}
-    reserved753: proc (){.cdecl.}
-    reserved754: proc (){.cdecl.}
-
-  PTreeViewColumnSizing* = ptr TTreeViewColumnSizing
-  TTreeViewColumnSizing* = enum 
-    TREE_VIEW_COLUMN_GROW_ONLY, TREE_VIEW_COLUMN_AUTOSIZE, 
-    TREE_VIEW_COLUMN_FIXED
-  TTreeCellDataFunc* = proc (tree_column: PTreeViewColumn, cell: PCellRenderer, 
-                             tree_model: PTreeModel, iter: PTreeIter, 
-                             data: gpointer){.cdecl.}
-  TTreeViewColumn* = object of TObject
-    tree_view*: PWidget
-    button*: PWidget
-    child*: PWidget
-    arrow*: PWidget
-    alignment*: PWidget
-    window*: gdk2.PWindow
-    editable_widget*: PCellEditable
-    xalign*: gfloat
-    property_changed_signal*: guint
-    spacing*: gint
-    column_type*: TTreeViewColumnSizing
-    requested_width*: gint
-    button_request*: gint
-    resized_width*: gint
-    width*: gint
-    fixed_width*: gint
-    min_width*: gint
-    max_width*: gint
-    drag_x*: gint
-    drag_y*: gint
-    title*: cstring
-    cell_list*: PGList
-    sort_clicked_signal*: guint
-    sort_column_changed_signal*: guint
-    sort_column_id*: gint
-    sort_order*: TSortType
-    TreeViewColumn_flag0*: guint16
-
-  PTreeViewColumnClass* = ptr TTreeViewColumnClass
-  TTreeViewColumnClass* = object of TObjectClass
-    clicked*: proc (tree_column: PTreeViewColumn){.cdecl.}
-    reserved751: proc (){.cdecl.}
-    reserved752: proc (){.cdecl.}
-    reserved753: proc (){.cdecl.}
-    reserved754: proc (){.cdecl.}
-
-  PRBNodeColor* = ptr TRBNodeColor
-  TRBNodeColor* = int32
-  PRBTree* = ptr TRBTree
-  PRBNode* = ptr TRBNode
-  TRBTreeTraverseFunc* = proc (tree: PRBTree, node: PRBNode, data: gpointer){.
-      cdecl.}
-  TRBTree*{.final, pure.} = object 
-    root*: PRBNode
-    `nil`*: PRBNode
-    parent_tree*: PRBTree
-    parent_node*: PRBNode
-
-  TRBNode*{.final, pure.} = object 
-    flag0*: guint16
-    left*: PRBNode
-    right*: PRBNode
-    parent*: PRBNode
-    count*: gint
-    offset*: gint
-    children*: PRBTree
-
-  PTreeRowReference* = pointer
-  PTreeViewFlags* = ptr TTreeViewFlags
-  TTreeViewFlags* = int32
-  TTreeViewSearchDialogPositionFunc* = proc (tree_view: PTreeView, 
-      search_dialog: PWidget){.cdecl.}
-  PTreeViewColumnReorder* = ptr TTreeViewColumnReorder
-  TTreeViewColumnReorder*{.final, pure.} = object 
-    left_align*: gint
-    right_align*: gint
-    left_column*: PTreeViewColumn
-    right_column*: PTreeViewColumn
-
-  PTreeViewPrivate* = ptr TTreeViewPrivate
-  TTreeViewPrivate*{.final, pure.} = object 
-    model*: PTreeModel
-    flags*: guint
-    tree*: PRBTree
-    button_pressed_node*: PRBNode
-    button_pressed_tree*: PRBTree
-    children*: PGList
-    width*: gint
-    height*: gint
-    expander_size*: gint
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-    bin_window*: gdk2.PWindow
-    header_window*: gdk2.PWindow
-    drag_window*: gdk2.PWindow
-    drag_highlight_window*: gdk2.PWindow
-    drag_column*: PTreeViewColumn
-    last_button_press*: PTreeRowReference
-    last_button_press_2*: PTreeRowReference
-    top_row*: PTreeRowReference
-    top_row_dy*: gint
-    dy*: gint
-    drag_column_x*: gint
-    expander_column*: PTreeViewColumn
-    edited_column*: PTreeViewColumn
-    presize_handler_timer*: guint
-    validate_rows_timer*: guint
-    scroll_sync_timer*: guint
-    focus_column*: PTreeViewColumn
-    anchor*: PTreeRowReference
-    cursor*: PTreeRowReference
-    drag_pos*: gint
-    x_drag*: gint
-    prelight_node*: PRBNode
-    prelight_tree*: PRBTree
-    expanded_collapsed_node*: PRBNode
-    expanded_collapsed_tree*: PRBTree
-    expand_collapse_timeout*: guint
-    selection*: PTreeSelection
-    n_columns*: gint
-    columns*: PGList
-    header_height*: gint
-    column_drop_func*: TTreeViewColumnDropFunc
-    column_drop_func_data*: gpointer
-    column_drop_func_data_destroy*: TDestroyNotify
-    column_drag_info*: PGList
-    cur_reorder*: PTreeViewColumnReorder
-    destroy_count_func*: TTreeDestroyCountFunc
-    destroy_count_data*: gpointer
-    destroy_count_destroy*: TDestroyNotify
-    scroll_timeout*: guint
-    drag_dest_row*: PTreeRowReference
-    drag_dest_pos*: TTreeViewDropPosition
-    open_dest_timeout*: guint
-    pressed_button*: gint
-    press_start_x*: gint
-    press_start_y*: gint
-    scroll_to_path*: PTreeRowReference
-    scroll_to_column*: PTreeViewColumn
-    scroll_to_row_align*: gfloat
-    scroll_to_col_align*: gfloat
-    flag0*: guint16
-    search_column*: gint
-    search_dialog_position_func*: TTreeViewSearchDialogPositionFunc
-    search_equal_func*: TTreeViewSearchEqualFunc
-    search_user_data*: gpointer
-    search_destroy*: TDestroyNotify
-
-  TTreeView* = object of TContainer
-    priv*: PTreeViewPrivate
-
-  PTreeViewClass* = ptr TTreeViewClass
-  TTreeViewClass* = object of TContainerClass
-    set_scroll_adjustments*: proc (tree_view: PTreeView, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-    row_activated*: proc (tree_view: PTreeView, path: PTreePath, 
-                          column: PTreeViewColumn){.cdecl.}
-    test_expand_row*: proc (tree_view: PTreeView, iter: PTreeIter, 
-                            path: PTreePath): gboolean{.cdecl.}
-    test_collapse_row*: proc (tree_view: PTreeView, iter: PTreeIter, 
-                              path: PTreePath): gboolean{.cdecl.}
-    row_expanded*: proc (tree_view: PTreeView, iter: PTreeIter, path: PTreePath){.
-        cdecl.}
-    row_collapsed*: proc (tree_view: PTreeView, iter: PTreeIter, path: PTreePath){.
-        cdecl.}
-    columns_changed*: proc (tree_view: PTreeView){.cdecl.}
-    cursor_changed*: proc (tree_view: PTreeView){.cdecl.}
-    move_cursor*: proc (tree_view: PTreeView, step: TMovementStep, count: gint): gboolean{.
-        cdecl.}
-    select_all*: proc (tree_view: PTreeView){.cdecl.}
-    unselect_all*: proc (tree_view: PTreeView){.cdecl.}
-    select_cursor_row*: proc (tree_view: PTreeView, start_editing: gboolean){.
-        cdecl.}
-    toggle_cursor_row*: proc (tree_view: PTreeView){.cdecl.}
-    expand_collapse_cursor_row*: proc (tree_view: PTreeView, logical: gboolean, 
-                                       expand: gboolean, open_all: gboolean){.
-        cdecl.}
-    select_cursor_parent*: proc (tree_view: PTreeView){.cdecl.}
-    start_interactive_search*: proc (tree_view: PTreeView){.cdecl.}
-    reserved760: proc (){.cdecl.}
-    reserved761: proc (){.cdecl.}
-    reserved762: proc (){.cdecl.}
-    reserved763: proc (){.cdecl.}
-    reserved764: proc (){.cdecl.}
-
-  PVButtonBox* = ptr TVButtonBox
-  TVButtonBox* = object of TButtonBox
-  PVButtonBoxClass* = ptr TVButtonBoxClass
-  TVButtonBoxClass* = object of TButtonBoxClass
-  PViewport* = ptr TViewport
-  TViewport* = object of TBin
-    shadow_type*: TShadowType
-    view_window*: gdk2.PWindow
-    bin_window*: gdk2.PWindow
-    hadjustment*: PAdjustment
-    vadjustment*: PAdjustment
-
-  PViewportClass* = ptr TViewportClass
-  TViewportClass* = object of TBinClass
-    set_scroll_adjustments*: proc (viewport: PViewport, 
-                                   hadjustment: PAdjustment, 
-                                   vadjustment: PAdjustment){.cdecl.}
-
-  PVPaned* = ptr TVPaned
-  TVPaned* = object of TPaned
-  PVPanedClass* = ptr TVPanedClass
-  TVPanedClass* = object of TPanedClass
-  PVRuler* = ptr TVRuler
-  TVRuler* = object of TRuler
-  PVRulerClass* = ptr TVRulerClass
-  TVRulerClass* = object of TRulerClass
-  PVScale* = ptr TVScale
-  TVScale* = object of TScale
-  PVScaleClass* = ptr TVScaleClass
-  TVScaleClass* = object of TScaleClass
-  PVScrollbar* = ptr TVScrollbar
-  TVScrollbar* = object of TScrollbar
-  PVScrollbarClass* = ptr TVScrollbarClass
-  TVScrollbarClass* = object of TScrollbarClass
-  PVSeparator* = ptr TVSeparator
-  TVSeparator* = object of TSeparator
-  PVSeparatorClass* = ptr TVSeparatorClass
-  TVSeparatorClass* = object of TSeparatorClass
-
-const 
-  IN_DESTRUCTION* = 1 shl 0
-  FLOATING* = 1 shl 1
-  RESERVED_1* = 1 shl 2
-  RESERVED_2* = 1 shl 3
-  ARG_READABLE* = G_PARAM_READABLE
-  ARG_WRITABLE* = G_PARAM_WRITABLE
-  ARG_CONSTRUCT* = G_PARAM_CONSTRUCT
-  ARG_CONSTRUCT_ONLY* = G_PARAM_CONSTRUCT_ONLY
-  ARG_CHILD_ARG* = 1 shl 4
-
-proc TYPE_OBJECT*(): GType
-proc `OBJECT`*(anObject: pointer): PObject
-proc OBJECT_CLASS*(klass: pointer): PObjectClass
-proc IS_OBJECT*(anObject: pointer): bool
-proc IS_OBJECT_CLASS*(klass: pointer): bool
-proc OBJECT_GET_CLASS*(anObject: pointer): PObjectClass
-proc OBJECT_TYPE*(anObject: pointer): GType
-proc OBJECT_TYPE_NAME*(anObject: pointer): cstring
-proc OBJECT_FLAGS*(obj: pointer): guint32
-proc OBJECT_FLOATING*(obj: pointer): gboolean
-proc OBJECT_SET_FLAGS*(obj: pointer, flag: guint32)
-proc OBJECT_UNSET_FLAGS*(obj: pointer, flag: guint32)
-proc object_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_object_get_type".}
-proc object_new*(thetype: TType, first_property_name: cstring): PObject{.cdecl, 
-    varargs, dynlib: lib, importc: "gtk_object_new".}
-proc sink*(anObject: PObject){.cdecl, dynlib: lib, 
-                                      importc: "gtk_object_sink".}
-proc destroy*(anObject: PObject){.cdecl, dynlib: lib, 
-    importc: "gtk_object_destroy".}
-const 
-  TYPE_INVALID* = G_TYPE_INVALID
-  TYPE_NONE* = G_TYPE_NONE
-  TYPE_ENUM* = G_TYPE_ENUM
-  TYPE_FLAGS* = G_TYPE_FLAGS
-  TYPE_CHAR* = G_TYPE_CHAR
-  TYPE_UCHAR* = G_TYPE_UCHAR
-  TYPE_BOOL* = G_TYPE_BOOLEAN
-  TYPE_INT* = G_TYPE_INT
-  TYPE_UINT* = G_TYPE_UINT
-  TYPE_LONG* = G_TYPE_LONG
-  TYPE_ULONG* = G_TYPE_ULONG
-  TYPE_FLOAT* = G_TYPE_FLOAT
-  TYPE_DOUBLE* = G_TYPE_DOUBLE
-  TYPE_STRING* = G_TYPE_STRING
-  TYPE_BOXED* = G_TYPE_BOXED
-  TYPE_POINTER* = G_TYPE_POINTER
-
-proc TYPE_IDENTIFIER*(): GType
-proc identifier_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_identifier_get_type".}
-proc SIGNAL_FUNC*(f: pointer): TSignalFunc
-proc type_class*(thetype: TType): gpointer{.cdecl, dynlib: lib, 
-    importc: "gtk_type_class".}
-const 
-  TOPLEVEL* = 1 shl 4
-  NO_WINDOW* = 1 shl 5
-  constREALIZED* = 1 shl 6
-  MAPPED* = 1 shl 7
-  constVISIBLE* = 1 shl 8
-  SENSITIVE* = 1 shl 9
-  PARENT_SENSITIVE* = 1 shl 10
-  CAN_FOCUS* = 1 shl 11
-  constHAS_FOCUS* = 1 shl 12
-  CAN_DEFAULT* = 1 shl 13
-  HAS_DEFAULT* = 1 shl 14
-  HAS_GRAB* = 1 shl 15
-  RC_STYLE* = 1 shl 16
-  COMPOSITE_CHILD* = 1 shl 17
-  NO_REPARENT* = 1 shl 18
-  APP_PAINTABLE* = 1 shl 19
-  RECEIVES_DEFAULT* = 1 shl 20
-  DOUBLE_BUFFERED* = 1 shl 21
-
-const 
-  bm_TGtkWidgetAuxInfo_x_set* = 0x0001'i16
-  bp_TGtkWidgetAuxInfo_x_set* = 0'i16
-  bm_TGtkWidgetAuxInfo_y_set* = 0x0002'i16
-  bp_TGtkWidgetAuxInfo_y_set* = 1'i16
-
-proc TYPE_WIDGET*(): GType
-proc WIDGET*(widget: pointer): PWidget
-proc WIDGET_CLASS*(klass: pointer): PWidgetClass
-proc IS_WIDGET*(widget: pointer): bool
-proc IS_WIDGET_CLASS*(klass: pointer): bool
-proc WIDGET_GET_CLASS*(obj: pointer): PWidgetClass
-proc WIDGET_TYPE*(wid: pointer): GType
-proc WIDGET_STATE*(wid: pointer): int32
-proc WIDGET_SAVED_STATE*(wid: pointer): int32
-proc WIDGET_FLAGS*(wid: pointer): guint32
-proc WIDGET_TOPLEVEL*(wid: pointer): gboolean
-proc WIDGET_NO_WINDOW*(wid: pointer): gboolean
-proc WIDGET_REALIZED*(wid: pointer): gboolean
-proc WIDGET_MAPPED*(wid: pointer): gboolean
-proc WIDGET_VISIBLE*(wid: pointer): gboolean
-proc WIDGET_DRAWABLE*(wid: pointer): gboolean
-proc WIDGET_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_PARENT_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_IS_SENSITIVE*(wid: pointer): gboolean
-proc WIDGET_CAN_FOCUS*(wid: pointer): gboolean
-proc WIDGET_HAS_FOCUS*(wid: pointer): gboolean
-proc WIDGET_CAN_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_HAS_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_HAS_GRAB*(wid: pointer): gboolean
-proc WIDGET_RC_STYLE*(wid: pointer): gboolean
-proc WIDGET_COMPOSITE_CHILD*(wid: pointer): gboolean
-proc WIDGET_APP_PAINTABLE*(wid: pointer): gboolean
-proc WIDGET_RECEIVES_DEFAULT*(wid: pointer): gboolean
-proc WIDGET_DOUBLE_BUFFERED*(wid: pointer): gboolean
-proc SET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags
-proc UNSET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags
-proc TYPE_REQUISITION*(): GType
-proc x_set*(a: PWidgetAuxInfo): guint
-proc set_x_set*(a: PWidgetAuxInfo, x_set: guint)
-proc y_set*(a: PWidgetAuxInfo): guint
-proc set_y_set*(a: PWidgetAuxInfo, y_set: guint)
-proc widget_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_widget_get_type".}
-proc reference*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_ref".}
-proc unref*(widget: PWidget){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_unref".}
-proc destroy*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_widget_destroy".}
-proc destroyed*(widget: PWidget, r: var PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_destroyed".}
-proc unparent*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_unparent".}
-proc show*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_show".}
-proc show_now*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_show_now".}
-proc hide*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_hide".}
-proc show_all*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_show_all".}
-proc hide_all*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_widget_hide_all".}
-proc map*(widget: PWidget){.cdecl, dynlib: lib, importc: "gtk_widget_map".}
-proc unmap*(widget: PWidget){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_unmap".}
-proc realize*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_widget_realize".}
-proc unrealize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_unrealize".}
-proc queue_draw*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_draw".}
-proc queue_draw_area*(widget: PWidget, x: gint, y: gint, width: gint, 
-                             height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_draw_area".}
-proc queue_resize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_queue_resize".}
-proc size_request*(widget: PWidget, requisition: PRequisition){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_size_request".}
-proc size_allocate*(widget: PWidget, allocation: PAllocation){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_size_allocate".}
-proc get_child_requisition*(widget: PWidget, requisition: PRequisition){.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_child_requisition".}
-proc add_accelerator*(widget: PWidget, accel_signal: cstring, 
-                             accel_group: PAccelGroup, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType, 
-                             accel_flags: TAccelFlags){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_add_accelerator".}
-proc remove_accelerator*(widget: PWidget, accel_group: PAccelGroup, 
-                                accel_key: guint, accel_mods: gdk2.TModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_remove_accelerator".}
-proc set_accel_path*(widget: PWidget, accel_path: cstring, 
-                            accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_accel_path".}
-proc get_accel_path*(widget: PWidget, locked: Pgboolean): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_get_accel_path".}
-proc list_accel_closures*(widget: PWidget): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_list_accel_closures".}
-proc mnemonic_activate*(widget: PWidget, group_cycling: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_mnemonic_activate".}
-proc event*(widget: PWidget, event: gdk2.PEvent): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_event".}
-proc send_expose*(widget: PWidget, event: gdk2.PEvent): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_send_expose".}
-proc activate*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_activate".}
-proc set_scroll_adjustments*(widget: PWidget, hadjustment: PAdjustment, 
-                                    vadjustment: PAdjustment): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_scroll_adjustments".}
-proc reparent*(widget: PWidget, new_parent: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reparent".}
-proc intersect*(widget: PWidget, area: gdk2.PRectangle, 
-                       intersection: gdk2.PRectangle): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_intersect".}
-proc region_intersect*(widget: PWidget, region: gdk2.PRegion): gdk2.PRegion{.
-    cdecl, dynlib: lib, importc: "gtk_widget_region_intersect".}
-proc freeze_child_notify*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_freeze_child_notify".}
-proc child_notify*(widget: PWidget, child_property: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_child_notify".}
-proc thaw_child_notify*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_thaw_child_notify".}
-proc is_focus*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_is_focus".}
-proc grab_focus*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_grab_focus".}
-proc grab_default*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_grab_default".}
-proc set_name*(widget: PWidget, name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_name".}
-proc get_name*(widget: PWidget): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_name".}
-proc set_state*(widget: PWidget, state: TStateType){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_state".}
-proc set_sensitive*(widget: PWidget, sensitive: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_sensitive".}
-proc set_app_paintable*(widget: PWidget, app_paintable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_app_paintable".}
-proc set_double_buffered*(widget: PWidget, double_buffered: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_double_buffered".}
-proc set_redraw_on_allocate*(widget: PWidget, 
-                                    redraw_on_allocate: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_redraw_on_allocate".}
-proc set_parent*(widget: PWidget, parent: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_parent".}
-proc set_parent_window*(widget: PWidget, parent_window: gdk2.PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_parent_window".}
-proc set_child_visible*(widget: PWidget, is_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_child_visible".}
-proc get_child_visible*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_child_visible".}
-proc get_parent*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_parent".}
-proc get_parent_window*(widget: PWidget): gdk2.PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_parent_window".}
-proc child_focus*(widget: PWidget, direction: TDirectionType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_widget_child_focus".}
-proc set_size_request*(widget: PWidget, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_size_request".}
-proc get_size_request*(widget: PWidget, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_size_request".}
-proc set_events*(widget: PWidget, events: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_events".}
-proc add_events*(widget: PWidget, events: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_add_events".}
-proc set_extension_events*(widget: PWidget, mode: gdk2.TExtensionMode){.
-    cdecl, dynlib: lib, importc: "gtk_widget_set_extension_events".}
-proc get_extension_events*(widget: PWidget): gdk2.TExtensionMode{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_extension_events".}
-proc get_toplevel*(widget: PWidget): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_toplevel".}
-proc get_ancestor*(widget: PWidget, widget_type: TType): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_ancestor".}
-proc get_colormap*(widget: PWidget): gdk2.PColormap{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_colormap".}
-proc get_visual*(widget: PWidget): gdk2.PVisual{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_visual".}
-proc get_screen*(widget: PWidget): gdk2.PScreen{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_screen".}
-proc has_screen*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_has_screen".}
-proc get_display*(widget: PWidget): gdk2.PDisplay{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_display".}
-proc get_root_window*(widget: PWidget): gdk2.PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_root_window".}
-proc get_settings*(widget: PWidget): PSettings{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_settings".}
-proc get_clipboard*(widget: PWidget, selection: gdk2.TAtom): PClipboard{.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_clipboard".}
-proc get_accessible*(widget: PWidget): atk.PObject{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_accessible".}
-proc set_colormap*(widget: PWidget, colormap: gdk2.PColormap){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_colormap".}
-proc get_events*(widget: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_events".}
-proc get_pointer*(widget: PWidget, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_pointer".}
-proc is_ancestor*(widget: PWidget, ancestor: PWidget): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_is_ancestor".}
-proc translate_coordinates*(src_widget: PWidget, dest_widget: PWidget, 
-                                   src_x: gint, src_y: gint, dest_x: Pgint, 
-                                   dest_y: Pgint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_translate_coordinates".}
-proc hide_on_delete*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_hide_on_delete".}
-proc set_style*(widget: PWidget, style: PStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_style".}
-proc ensure_style*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_ensure_style".}
-proc get_style*(widget: PWidget): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_style".}
-proc modify_style*(widget: PWidget, style: PRcStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_modify_style".}
-proc get_modifier_style*(widget: PWidget): PRcStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_modifier_style".}
-proc modify_fg*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_fg".}
-proc modify_bg*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_bg".}
-proc modify_text*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_text".}
-proc modify_base*(widget: PWidget, state: TStateType, color: gdk2.PColor){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_base".}
-proc modify_font*(widget: PWidget, font_desc: pango.PFontDescription){.
-    cdecl, dynlib: lib, importc: "gtk_widget_modify_font".}
-proc create_pango_context*(widget: PWidget): pango.PContext{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_create_pango_context".}
-proc get_pango_context*(widget: PWidget): pango.PContext{.cdecl, 
-    dynlib: lib, importc: "gtk_widget_get_pango_context".}
-proc create_pango_layout*(widget: PWidget, text: cstring): pango.PLayout{.
-    cdecl, dynlib: lib, importc: "gtk_widget_create_pango_layout".}
-proc render_icon*(widget: PWidget, stock_id: cstring, size: TIconSize, 
-                         detail: cstring): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_render_icon".}
-proc set_composite_name*(widget: PWidget, name: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_composite_name".}
-proc get_composite_name*(widget: PWidget): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_composite_name".}
-proc reset_rc_styles*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reset_rc_styles".}
-proc widget_push_colormap*(cmap: gdk2.PColormap){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_push_colormap".}
-proc widget_push_composite_child*(){.cdecl, dynlib: lib, 
-                                     importc: "gtk_widget_push_composite_child".}
-proc widget_pop_composite_child*(){.cdecl, dynlib: lib, 
-                                    importc: "gtk_widget_pop_composite_child".}
-proc widget_pop_colormap*(){.cdecl, dynlib: lib, 
-                             importc: "gtk_widget_pop_colormap".}
-proc install_style_property*(klass: PWidgetClass, 
-    pspec: PGParamSpec){.cdecl, dynlib: lib, 
-                         importc: "gtk_widget_class_install_style_property".}
-proc install_style_property_parser*(klass: PWidgetClass, 
-    pspec: PGParamSpec, parser: TRcPropertyParser){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_install_style_property_parser".}
-proc find_style_property*(klass: PWidgetClass, 
-                                       property_name: cstring): PGParamSpec{.
-    cdecl, dynlib: lib, importc: "gtk_widget_class_find_style_property".}
-proc list_style_properties*(klass: PWidgetClass, 
-    n_properties: Pguint): PPGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_list_style_properties".}
-proc style_get_property*(widget: PWidget, property_name: cstring, 
-                                value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_style_get_property".}
-proc widget_set_default_colormap*(colormap: gdk2.PColormap){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_default_colormap".}
-proc widget_get_default_style*(): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_default_style".}
-proc set_direction*(widget: PWidget, dir: TTextDirection){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_set_direction".}
-proc get_direction*(widget: PWidget): TTextDirection{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_direction".}
-proc widget_set_default_direction*(dir: TTextDirection){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_set_default_direction".}
-proc widget_get_default_direction*(): TTextDirection{.cdecl, dynlib: lib, 
-    importc: "gtk_widget_get_default_direction".}
-proc shape_combine_mask*(widget: PWidget, shape_mask: gdk2.PBitmap, 
-                                offset_x: gint, offset_y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_widget_shape_combine_mask".}
-proc reset_shapes*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_reset_shapes".}
-proc path*(widget: PWidget, path_length: Pguint, path: PPgchar, 
-                  path_reversed: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_path".}
-proc class_path*(widget: PWidget, path_length: Pguint, path: PPgchar, 
-                        path_reversed: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_widget_class_path".}
-proc requisition_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_requisition_get_type".}
-proc copy*(requisition: PRequisition): PRequisition{.cdecl, 
-    dynlib: lib, importc: "gtk_requisition_copy".}
-proc free*(requisition: PRequisition){.cdecl, dynlib: lib, 
-    importc: "gtk_requisition_free".}
-proc get_aux_info*(widget: PWidget, create: gboolean): PWidgetAuxInfo{.
-    cdecl, dynlib: lib, importc: "gtk_widget_get_aux_info".}
-proc propagate_hierarchy_changed*(widget: PWidget, 
-    previous_toplevel: PWidget){.cdecl, dynlib: lib, importc: "_gtk_widget_propagate_hierarchy_changed".}
-proc widget_peek_colormap*(): gdk2.PColormap{.cdecl, dynlib: lib, 
-    importc: "_gtk_widget_peek_colormap".}
-proc TYPE_MISC*(): GType
-proc MISC*(obj: pointer): PMisc
-proc MISC_CLASS*(klass: pointer): PMiscClass
-proc IS_MISC*(obj: pointer): bool
-proc IS_MISC_CLASS*(klass: pointer): bool
-proc MISC_GET_CLASS*(obj: pointer): PMiscClass
-proc misc_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_misc_get_type".}
-proc set_alignment*(misc: PMisc, xalign: gfloat, yalign: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_misc_set_alignment".}
-proc get_alignment*(misc: PMisc, xalign, yalign: var Pgfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_misc_get_alignment".}
-proc set_padding*(misc: PMisc, xpad: gint, ypad: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_misc_set_padding".}
-proc get_padding*(misc: PMisc, xpad, ypad: var Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_misc_get_padding".}
-const 
-  ACCEL_VISIBLE* = 1 shl 0
-  ACCEL_LOCKED* = 1 shl 1
-  ACCEL_MASK* = 0x00000007
-  bm_TGtkAccelKey_accel_flags* = 0xFFFF'i16
-  bp_TGtkAccelKey_accel_flags* = 0'i16
-
-proc TYPE_ACCEL_GROUP*(): GType
-proc ACCEL_GROUP*(anObject: pointer): PAccelGroup
-proc ACCEL_GROUP_CLASS*(klass: pointer): PAccelGroupClass
-proc IS_ACCEL_GROUP*(anObject: pointer): bool
-proc IS_ACCEL_GROUP_CLASS*(klass: pointer): bool
-proc ACCEL_GROUP_GET_CLASS*(obj: pointer): PAccelGroupClass
-proc accel_flags*(a: PAccelKey): guint
-proc set_accel_flags*(a: PAccelKey, `accel_flags`: guint)
-proc accel_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_accel_group_get_type".}
-proc accel_group_new*(): PAccelGroup{.cdecl, dynlib: lib, 
-                                      importc: "gtk_accel_group_new".}
-proc lock*(accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_lock".}
-proc unlock*(accel_group: PAccelGroup){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_unlock".}
-proc connect*(accel_group: PAccelGroup, accel_key: guint, 
-                          accel_mods: gdk2.TModifierType, 
-                          accel_flags: TAccelFlags, closure: PGClosure){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_connect".}
-proc connect_by_path*(accel_group: PAccelGroup, accel_path: cstring, 
-                                  closure: PGClosure){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_group_connect_by_path".}
-proc disconnect*(accel_group: PAccelGroup, closure: PGClosure): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_disconnect".}
-proc disconnect_key*(accel_group: PAccelGroup, accel_key: guint, 
-                                 accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_disconnect_key".}
-proc attach*(accel_group: PAccelGroup, anObject: PGObject){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_group_attach".}
-proc detach*(accel_group: PAccelGroup, anObject: PGObject){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_group_detach".}
-proc accel_groups_activate*(anObject: PGObject, accel_key: guint, 
-                            accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_groups_activate".}
-proc accel_groups_from_object*(anObject: PGObject): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_accel_groups_from_object".}
-proc find*(accel_group: PAccelGroup, 
-                       find_func: Taccel_group_find_func, data: gpointer): PAccelKey{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_find".}
-proc accel_group_from_accel_closure*(closure: PGClosure): PAccelGroup{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_group_from_accel_closure".}
-proc accelerator_valid*(keyval: guint, modifiers: gdk2.TModifierType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accelerator_valid".}
-proc accelerator_parse*(accelerator: cstring, accelerator_key: Pguint, 
-                        accelerator_mods: gdk2.PModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_accelerator_parse".}
-proc accelerator_name*(accelerator_key: guint, 
-                       accelerator_mods: gdk2.TModifierType): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_accelerator_name".}
-proc accelerator_set_default_mod_mask*(default_mod_mask: gdk2.TModifierType){.
-    cdecl, dynlib: lib, importc: "gtk_accelerator_set_default_mod_mask".}
-proc accelerator_get_default_mod_mask*(): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_accelerator_get_default_mod_mask".}
-proc query*(accel_group: PAccelGroup, accel_key: guint, 
-                        accel_mods: gdk2.TModifierType, n_entries: Pguint): PAccelGroupEntry{.
-    cdecl, dynlib: lib, importc: "gtk_accel_group_query".}
-proc reconnect*(accel_group: PAccelGroup, accel_path_quark: TGQuark){.
-    cdecl, dynlib: lib, importc: "_gtk_accel_group_reconnect".}
-const 
-  bm_TGtkContainer_border_width* = 0x0000FFFF'i32
-  bp_TGtkContainer_border_width* = 0'i32
-  bm_TGtkContainer_need_resize* = 0x00010000'i32
-  bp_TGtkContainer_need_resize* = 16'i32
-  bm_TGtkContainer_resize_mode* = 0x00060000'i32
-  bp_TGtkContainer_resize_mode* = 17'i32
-  bm_TGtkContainer_reallocate_redraws* = 0x00080000'i32
-  bp_TGtkContainer_reallocate_redraws* = 19'i32
-  bm_TGtkContainer_has_focus_chain* = 0x00100000'i32
-  bp_TGtkContainer_has_focus_chain* = 20'i32
-
-proc TYPE_CONTAINER*(): GType
-proc CONTAINER*(obj: pointer): PContainer
-proc CONTAINER_CLASS*(klass: pointer): PContainerClass
-proc IS_CONTAINER*(obj: pointer): bool
-proc IS_CONTAINER_CLASS*(klass: pointer): bool
-proc CONTAINER_GET_CLASS*(obj: pointer): PContainerClass
-proc IS_RESIZE_CONTAINER*(widget: pointer): bool
-proc border_width*(a: PContainer): guint
-proc need_resize*(a: PContainer): guint
-proc set_need_resize*(a: PContainer, `need_resize`: guint)
-proc resize_mode*(a: PContainer): guint
-proc set_resize_mode*(a: PContainer, `resize_mode`: guint)
-proc reallocate_redraws*(a: PContainer): guint
-proc set_reallocate_redraws*(a: PContainer, `reallocate_redraws`: guint)
-proc has_focus_chain*(a: PContainer): guint
-proc set_has_focus_chain*(a: PContainer, `has_focus_chain`: guint)
-proc container_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_container_get_type".}
-proc set_border_width*(container: PContainer, border_width: guint){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_border_width".}
-proc get_border_width*(container: PContainer): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_container_get_border_width".}
-proc add*(container: PContainer, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_container_add".}
-proc remove*(container: PContainer, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_container_remove".}
-proc set_resize_mode*(container: PContainer, resize_mode: TResizeMode){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_resize_mode".}
-proc get_resize_mode*(container: PContainer): TResizeMode{.cdecl, 
-    dynlib: lib, importc: "gtk_container_get_resize_mode".}
-proc check_resize*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_check_resize".}
-proc foreach*(container: PContainer, callback: TCallback, 
-                        callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_foreach".}
-proc get_children*(container: PContainer): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_container_get_children".}
-proc propagate_expose*(container: PContainer, child: PWidget, 
-                                 event: gdk2.PEventExpose){.cdecl, dynlib: lib, 
-    importc: "gtk_container_propagate_expose".}
-proc set_focus_chain*(container: PContainer, focusable_widgets: PGList){.
-    cdecl, dynlib: lib, importc: "gtk_container_set_focus_chain".}
-proc get_focus_chain*(container: PContainer, s: var PGList): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_chain".}
-proc unset_focus_chain*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_unset_focus_chain".}
-proc set_reallocate_redraws*(container: PContainer, 
-                                       needs_redraws: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_reallocate_redraws".}
-proc set_focus_child*(container: PContainer, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_child".}
-proc set_focus_vadjustment*(container: PContainer, 
-                                      adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_vadjustment".}
-proc get_focus_vadjustment*(container: PContainer): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_vadjustment".}
-proc set_focus_hadjustment*(container: PContainer, 
-                                      adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_container_set_focus_hadjustment".}
-proc get_focus_hadjustment*(container: PContainer): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_container_get_focus_hadjustment".}
-proc resize_children*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_resize_children".}
-proc child_type*(container: PContainer): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_container_child_type".}
-proc install_child_property*(cclass: PContainerClass, 
-    property_id: guint, pspec: PGParamSpec){.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_install_child_property".}
-proc container_class_find_child_property*(cclass: PGObjectClass, 
-    property_name: cstring): PGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_find_child_property".}
-proc container_class_list_child_properties*(cclass: PGObjectClass, 
-    n_properties: Pguint): PPGParamSpec{.cdecl, dynlib: lib, 
-    importc: "gtk_container_class_list_child_properties".}
-proc child_set_property*(container: PContainer, child: PWidget, 
-                                   property_name: cstring, value: PGValue){.
-    cdecl, dynlib: lib, importc: "gtk_container_child_set_property".}
-proc child_get_property*(container: PContainer, child: PWidget, 
-                                   property_name: cstring, value: PGValue){.
-    cdecl, dynlib: lib, importc: "gtk_container_child_get_property".}
-proc CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID*(anObject: pointer, 
-    property_id: guint, pspec: pointer)
-proc forall*(container: PContainer, callback: TCallback, 
-                       callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_container_forall".}
-proc queue_resize*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "_gtk_container_queue_resize".}
-proc clear_resize_widgets*(container: PContainer){.cdecl, dynlib: lib, 
-    importc: "_gtk_container_clear_resize_widgets".}
-proc child_composite_name*(container: PContainer, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "_gtk_container_child_composite_name".}
-proc dequeue_resize_handler*(container: PContainer){.cdecl, 
-    dynlib: lib, importc: "_gtk_container_dequeue_resize_handler".}
-proc focus_sort*(container: PContainer, children: PGList, 
-                           direction: TDirectionType, old_focus: PWidget): PGList{.
-    cdecl, dynlib: lib, importc: "_gtk_container_focus_sort".}
-proc TYPE_BIN*(): GType
-proc BIN*(obj: pointer): PBin
-proc BIN_CLASS*(klass: pointer): PBinClass
-proc IS_BIN*(obj: pointer): bool
-proc IS_BIN_CLASS*(klass: pointer): bool
-proc BIN_GET_CLASS*(obj: pointer): PBinClass
-proc bin_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_bin_get_type".}
-proc get_child*(bin: PBin): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_bin_get_child".}
-const 
-  bm_TGtkWindow_allow_shrink* = 0x00000001'i32
-  bp_TGtkWindow_allow_shrink* = 0'i32
-  bm_TGtkWindow_allow_grow* = 0x00000002'i32
-  bp_TGtkWindow_allow_grow* = 1'i32
-  bm_TGtkWindow_configure_notify_received* = 0x00000004'i32
-  bp_TGtkWindow_configure_notify_received* = 2'i32
-  bm_TGtkWindow_need_default_position* = 0x00000008'i32
-  bp_TGtkWindow_need_default_position* = 3'i32
-  bm_TGtkWindow_need_default_size* = 0x00000010'i32
-  bp_TGtkWindow_need_default_size* = 4'i32
-  bm_TGtkWindow_position* = 0x000000E0'i32
-  bp_TGtkWindow_position* = 5'i32
-  bm_TGtkWindow_type* = 0x00000F00'i32
-  bp_TGtkWindow_type* = 8'i32
-  bm_TGtkWindow_has_user_ref_count* = 0x00001000'i32
-  bp_TGtkWindow_has_user_ref_count* = 12'i32
-  bm_TGtkWindow_has_focus* = 0x00002000'i32
-  bp_TGtkWindow_has_focus* = 13'i32
-  bm_TGtkWindow_modal* = 0x00004000'i32
-  bp_TGtkWindow_modal* = 14'i32
-  bm_TGtkWindow_destroy_with_parent* = 0x00008000'i32
-  bp_TGtkWindow_destroy_with_parent* = 15'i32
-  bm_TGtkWindow_has_frame* = 0x00010000'i32
-  bp_TGtkWindow_has_frame* = 16'i32
-  bm_TGtkWindow_iconify_initially* = 0x00020000'i32
-  bp_TGtkWindow_iconify_initially* = 17'i32
-  bm_TGtkWindow_stick_initially* = 0x00040000'i32
-  bp_TGtkWindow_stick_initially* = 18'i32
-  bm_TGtkWindow_maximize_initially* = 0x00080000'i32
-  bp_TGtkWindow_maximize_initially* = 19'i32
-  bm_TGtkWindow_decorated* = 0x00100000'i32
-  bp_TGtkWindow_decorated* = 20'i32
-  bm_TGtkWindow_type_hint* = 0x00E00000'i32
-  bp_TGtkWindow_type_hint* = 21'i32
-  bm_TGtkWindow_gravity* = 0x1F000000'i32
-  bp_TGtkWindow_gravity* = 24'i32
-
-proc TYPE_WINDOW*(): GType
-proc WINDOW*(obj: pointer): PWindow
-proc WINDOW_CLASS*(klass: pointer): PWindowClass
-proc IS_WINDOW*(obj: pointer): bool
-proc IS_WINDOW_CLASS*(klass: pointer): bool
-proc WINDOW_GET_CLASS*(obj: pointer): PWindowClass
-proc allow_shrink*(a: gtk2.PWindow): guint
-proc set_allow_shrink*(a: gtk2.PWindow, `allow_shrink`: guint)
-proc allow_grow*(a: gtk2.PWindow): guint
-proc set_allow_grow*(a: gtk2.PWindow, `allow_grow`: guint)
-proc configure_notify_received*(a: gtk2.PWindow): guint
-proc set_configure_notify_received*(a: gtk2.PWindow, 
-                                    `configure_notify_received`: guint)
-proc need_default_position*(a: gtk2.PWindow): guint
-proc set_need_default_position*(a: gtk2.PWindow, `need_default_position`: guint)
-proc need_default_size*(a: gtk2.PWindow): guint
-proc set_need_default_size*(a: gtk2.PWindow, `need_default_size`: guint)
-proc position*(a: gtk2.PWindow): guint
-proc get_type*(a: gtk2.PWindow): guint
-proc set_type*(a: gtk2.PWindow, `type`: guint)
-proc has_user_ref_count*(a: gtk2.PWindow): guint
-proc set_has_user_ref_count*(a: gtk2.PWindow, `has_user_ref_count`: guint)
-proc has_focus*(a: gtk2.PWindow): guint
-proc set_has_focus*(a: gtk2.PWindow, `has_focus`: guint)
-proc modal*(a: gtk2.PWindow): guint
-proc set_modal*(a: gtk2.PWindow, `modal`: guint)
-proc destroy_with_parent*(a: gtk2.PWindow): guint
-proc set_destroy_with_parent*(a: gtk2.PWindow, `destroy_with_parent`: guint)
-proc has_frame*(a: gtk2.PWindow): guint
-proc set_has_frame*(a: gtk2.PWindow, `has_frame`: guint)
-proc iconify_initially*(a: gtk2.PWindow): guint
-proc set_iconify_initially*(a: gtk2.PWindow, `iconify_initially`: guint)
-proc stick_initially*(a: gtk2.PWindow): guint
-proc set_stick_initially*(a: gtk2.PWindow, `stick_initially`: guint)
-proc maximize_initially*(a: gtk2.PWindow): guint
-proc set_maximize_initially*(a: gtk2.PWindow, `maximize_initially`: guint)
-proc decorated*(a: gtk2.PWindow): guint
-proc set_decorated*(a: gtk2.PWindow, `decorated`: guint)
-proc type_hint*(a: gtk2.PWindow): guint
-proc set_type_hint*(a: gtk2.PWindow, `type_hint`: guint)
-proc gravity*(a: gtk2.PWindow): guint
-proc set_gravity*(a: gtk2.PWindow, `gravity`: guint)
-proc TYPE_WINDOW_GROUP*(): GType
-proc WINDOW_GROUP*(anObject: pointer): PWindowGroup
-proc WINDOW_GROUP_CLASS*(klass: pointer): PWindowGroupClass
-proc IS_WINDOW_GROUP*(anObject: pointer): bool
-proc IS_WINDOW_GROUP_CLASS*(klass: pointer): bool
-proc WINDOW_GROUP_GET_CLASS*(obj: pointer): PWindowGroupClass
-proc window_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_window_get_type".}
-proc window_new*(thetype: TWindowType): PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_window_new".}
-proc set_title*(window: PWindow, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_title".}
-proc get_title*(window: PWindow): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_title".}
-proc set_wmclass*(window: PWindow, wmclass_name: cstring, 
-                         wmclass_class: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_wmclass".}
-proc set_role*(window: PWindow, role: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_role".}
-proc get_role*(window: PWindow): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_role".}
-proc add_accel_group*(window: PWindow, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_window_add_accel_group".}
-proc remove_accel_group*(window: PWindow, accel_group: PAccelGroup){.
-    cdecl, dynlib: lib, importc: "gtk_window_remove_accel_group".}
-proc set_position*(window: PWindow, position: TWindowPosition){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_position".}
-proc activate_focus*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_activate_focus".}
-proc set_focus*(window: PWindow, focus: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_focus".}
-proc get_focus*(window: PWindow): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_focus".}
-proc set_default*(window: PWindow, default_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_default".}
-proc activate_default*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_activate_default".}
-proc set_transient_for*(window: PWindow, parent: PWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_transient_for".}
-proc get_transient_for*(window: PWindow): PWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_transient_for".}
-proc set_type_hint*(window: PWindow, hint: gdk2.TWindowTypeHint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_type_hint".}
-proc get_type_hint*(window: PWindow): gdk2.TWindowTypeHint{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_type_hint".}
-proc set_destroy_with_parent*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_destroy_with_parent".}
-proc get_destroy_with_parent*(window: PWindow): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_destroy_with_parent".}
-proc set_resizable*(window: PWindow, resizable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_resizable".}
-proc get_resizable*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_resizable".}
-proc set_gravity*(window: PWindow, gravity: gdk2.TGravity){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_gravity".}
-proc get_gravity*(window: PWindow): gdk2.TGravity{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_gravity".}
-proc set_geometry_hints*(window: PWindow, geometry_widget: PWidget, 
-                                geometry: gdk2.PGeometry, 
-                                geom_mask: gdk2.TWindowHints){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_geometry_hints".}
-proc set_screen*(window: PWindow, screen: gdk2.PScreen){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_screen".}
-proc get_screen*(window: PWindow): gdk2.PScreen{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_screen".}
-proc set_has_frame*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_has_frame".}
-proc get_has_frame*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_has_frame".}
-proc set_frame_dimensions*(window: PWindow, left: gint, top: gint, 
-                                  right: gint, bottom: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_frame_dimensions".}
-proc get_frame_dimensions*(window: PWindow, left: Pgint, top: Pgint, 
-                                  right: Pgint, bottom: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_frame_dimensions".}
-proc set_decorated*(window: PWindow, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_window_set_decorated".}
-proc get_decorated*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_decorated".}
-proc set_icon_list*(window: PWindow, list: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_icon_list".}
-proc get_icon_list*(window: PWindow): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_icon_list".}
-proc set_icon*(window: PWindow, icon: gdk2pixbuf.PPixbuf){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_icon".}
-proc get_icon*(window: PWindow): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_icon".}
-proc window_set_default_icon_list*(list: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_default_icon_list".}
-proc window_get_default_icon_list*(): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_default_icon_list".}
-proc set_modal*(window: PWindow, modal: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_modal".}
-proc get_modal*(window: PWindow): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_window_get_modal".}
-proc window_list_toplevels*(): PGList{.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_list_toplevels".}
-proc add_mnemonic*(window: PWindow, keyval: guint, target: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_window_add_mnemonic".}
-proc remove_mnemonic*(window: PWindow, keyval: guint, target: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_window_remove_mnemonic".}
-proc mnemonic_activate*(window: PWindow, keyval: guint, 
-                               modifier: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_window_mnemonic_activate".}
-proc set_mnemonic_modifier*(window: PWindow, modifier: gdk2.TModifierType){.
-    cdecl, dynlib: lib, importc: "gtk_window_set_mnemonic_modifier".}
-proc get_mnemonic_modifier*(window: PWindow): gdk2.TModifierType{.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_mnemonic_modifier".}
-proc present*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_present".}
-proc iconify*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_iconify".}
-proc deiconify*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_deiconify".}
-proc stick*(window: PWindow){.cdecl, dynlib: lib, 
-                                     importc: "gtk_window_stick".}
-proc unstick*(window: PWindow){.cdecl, dynlib: lib, 
-                                       importc: "gtk_window_unstick".}
-proc maximize*(window: PWindow){.cdecl, dynlib: lib, 
-                                        importc: "gtk_window_maximize".}
-proc unmaximize*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_unmaximize".}
-proc begin_resize_drag*(window: PWindow, edge: gdk2.TWindowEdge, 
-                               button: gint, root_x: gint, root_y: gint, 
-                               timestamp: guint32){.cdecl, dynlib: lib, 
-    importc: "gtk_window_begin_resize_drag".}
-proc begin_move_drag*(window: PWindow, button: gint, root_x: gint, 
-                             root_y: gint, timestamp: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_window_begin_move_drag".}
-proc set_default_size*(window: PWindow, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_window_set_default_size".}
-proc get_default_size*(window: PWindow, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_window_get_default_size".}
-proc resize*(window: PWindow, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_resize".}
-proc get_size*(window: PWindow, width: Pgint, height: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_size".}
-proc move*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_window_move".}
-proc get_position*(window: PWindow, root_x: Pgint, root_y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_get_position".}
-proc parse_geometry*(window: PWindow, geometry: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_window_parse_geometry".}
-proc reshow_with_initial_size*(window: PWindow){.cdecl, dynlib: lib, 
-    importc: "gtk_window_reshow_with_initial_size".}
-proc window_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_window_group_get_type".}
-proc window_group_new*(): PWindowGroup{.cdecl, dynlib: lib, 
-                                        importc: "gtk_window_group_new".}
-proc add_window*(window_group: PWindowGroup, window: PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_window_group_add_window".}
-proc remove_window*(window_group: PWindowGroup, window: PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_window_group_remove_window".}
-proc window_set_default_icon_name*(name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_window_set_default_icon_name".}
-proc internal_set_focus*(window: PWindow, focus: PWidget){.cdecl, 
-    dynlib: lib, importc: "_gtk_window_internal_set_focus".}
-proc remove_embedded_xid*(window: PWindow, xid: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_window_remove_embedded_xid".}
-proc add_embedded_xid*(window: PWindow, xid: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_window_add_embedded_xid".}
-proc reposition*(window: PWindow, x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_window_reposition".}
-proc constrain_size*(window: PWindow, width: gint, height: gint, 
-                            new_width: Pgint, new_height: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_window_constrain_size".}
-proc get_group*(window: PWindow): PWindowGroup{.cdecl, dynlib: lib, 
-    importc: "_gtk_window_get_group".}
-proc activate_key*(window: PWindow, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_window_activate_key".}
-proc keys_foreach*(window: PWindow, func: TWindowKeysForeachFunc, 
-                          func_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "_gtk_window_keys_foreach".}
-proc query_nonaccels*(window: PWindow, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_window_query_nonaccels".}
-const 
-  bm_TGtkLabel_jtype* = 0x0003'i16
-  bp_TGtkLabel_jtype* = 0'i16
-  bm_TGtkLabel_wrap* = 0x0004'i16
-  bp_TGtkLabel_wrap* = 2'i16
-  bm_TGtkLabel_use_underline* = 0x0008'i16
-  bp_TGtkLabel_use_underline* = 3'i16
-  bm_TGtkLabel_use_markup* = 0x0010'i16
-  bp_TGtkLabel_use_markup* = 4'i16
-
-proc TYPE_LABEL*(): GType
-proc LABEL*(obj: pointer): PLabel
-proc LABEL_CLASS*(klass: pointer): PLabelClass
-proc IS_LABEL*(obj: pointer): bool
-proc IS_LABEL_CLASS*(klass: pointer): bool
-proc LABEL_GET_CLASS*(obj: pointer): PLabelClass
-proc jtype*(a: PLabel): guint
-proc set_jtype*(a: PLabel, `jtype`: guint)
-proc wrap*(a: PLabel): guint
-proc set_wrap*(a: PLabel, `wrap`: guint)
-proc use_underline*(a: PLabel): guint
-proc set_use_underline*(a: PLabel, `use_underline`: guint)
-proc use_markup*(a: PLabel): guint
-proc set_use_markup*(a: PLabel, `use_markup`: guint)
-proc label_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_label_get_type".}
-proc label_new*(str: cstring): PLabel{.cdecl, dynlib: lib, 
-                                       importc: "gtk_label_new".}
-proc label_new_with_mnemonic*(str: cstring): PLabel{.cdecl, dynlib: lib, 
-    importc: "gtk_label_new_with_mnemonic".}
-proc set_text*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_text".}
-proc get_text*(`label`: PLabel): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_text".}
-proc set_attributes*(`label`: PLabel, attrs: pango.PAttrList){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_attributes".}
-proc get_attributes*(`label`: PLabel): pango.PAttrList{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_attributes".}
-proc set_label*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_label".}
-proc get_label*(`label`: PLabel): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_label".}
-proc set_markup*(`label`: PLabel, str: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_markup".}
-proc set_use_markup*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_use_markup".}
-proc get_use_markup*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_use_markup".}
-proc set_use_underline*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_use_underline".}
-proc get_use_underline*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_use_underline".}
-proc set_markup_with_mnemonic*(`label`: PLabel, str: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_markup_with_mnemonic".}
-proc get_mnemonic_keyval*(`label`: PLabel): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_mnemonic_keyval".}
-proc set_mnemonic_widget*(`label`: PLabel, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_mnemonic_widget".}
-proc get_mnemonic_widget*(`label`: PLabel): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_mnemonic_widget".}
-proc set_text_with_mnemonic*(`label`: PLabel, str: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_text_with_mnemonic".}
-proc set_justify*(`label`: PLabel, jtype: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_justify".}
-proc get_justify*(`label`: PLabel): TJustification{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_justify".}
-proc set_pattern*(`label`: PLabel, pattern: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_pattern".}
-proc set_line_wrap*(`label`: PLabel, wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_label_set_line_wrap".}
-proc get_line_wrap*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_line_wrap".}
-proc set_selectable*(`label`: PLabel, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_label_set_selectable".}
-proc get_selectable*(`label`: PLabel): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_selectable".}
-proc select_region*(`label`: PLabel, start_offset: gint, end_offset: gint){.
-    cdecl, dynlib: lib, importc: "gtk_label_select_region".}
-proc get_selection_bounds*(`label`: PLabel, start: Pgint, theEnd: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_label_get_selection_bounds".}
-proc get_layout*(`label`: PLabel): pango.PLayout{.cdecl, dynlib: lib, 
-    importc: "gtk_label_get_layout".}
-proc get_layout_offsets*(`label`: PLabel, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_label_get_layout_offsets".}
-const 
-  bm_TGtkAccelLabelClass_latin1_to_char* = 0x0001'i16
-  bp_TGtkAccelLabelClass_latin1_to_char* = 0'i16
-
-proc TYPE_ACCEL_LABEL*(): GType
-proc ACCEL_LABEL*(obj: pointer): PAccelLabel
-proc ACCEL_LABEL_CLASS*(klass: pointer): PAccelLabelClass
-proc IS_ACCEL_LABEL*(obj: pointer): bool
-proc IS_ACCEL_LABEL_CLASS*(klass: pointer): bool
-proc ACCEL_LABEL_GET_CLASS*(obj: pointer): PAccelLabelClass
-proc latin1_to_char*(a: PAccelLabelClass): guint
-proc set_latin1_to_char*(a: PAccelLabelClass, `latin1_to_char`: guint)
-proc accel_label_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_accel_label_get_type".}
-proc accel_label_new*(`string`: cstring): PAccelLabel{.cdecl, dynlib: lib, 
-    importc: "gtk_accel_label_new".}
-proc get_accel_widget*(accel_label: PAccelLabel): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_get_accel_widget".}
-proc get_accel_width*(accel_label: PAccelLabel): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_get_accel_width".}
-proc set_accel_widget*(accel_label: PAccelLabel, 
-                                   accel_widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_label_set_accel_widget".}
-proc set_accel_closure*(accel_label: PAccelLabel, 
-                                    accel_closure: PGClosure){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_set_accel_closure".}
-proc refetch*(accel_label: PAccelLabel): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_accel_label_refetch".}
-proc accel_map_add_entry*(accel_path: cstring, accel_key: guint, 
-                          accel_mods: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_add_entry".}
-proc accel_map_lookup_entry*(accel_path: cstring, key: PAccelKey): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_map_lookup_entry".}
-proc accel_map_change_entry*(accel_path: cstring, accel_key: guint, 
-                             accel_mods: gdk2.TModifierType, replace: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_accel_map_change_entry".}
-proc accel_map_load*(file_name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_load".}
-proc accel_map_save*(file_name: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_save".}
-proc accel_map_foreach*(data: gpointer, foreach_func: TAccelMapForeach){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_map_foreach".}
-proc accel_map_load_fd*(fd: gint){.cdecl, dynlib: lib, 
-                                   importc: "gtk_accel_map_load_fd".}
-proc accel_map_load_scanner*(scanner: PGScanner){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_load_scanner".}
-proc accel_map_save_fd*(fd: gint){.cdecl, dynlib: lib, 
-                                   importc: "gtk_accel_map_save_fd".}
-proc accel_map_add_filter*(filter_pattern: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_accel_map_add_filter".}
-proc accel_map_foreach_unfiltered*(data: gpointer, 
-                                   foreach_func: TAccelMapForeach){.cdecl, 
-    dynlib: lib, importc: "gtk_accel_map_foreach_unfiltered".}
-proc accel_map_init*(){.cdecl, dynlib: lib, importc: "_gtk_accel_map_init".}
-proc accel_map_add_group*(accel_path: cstring, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "_gtk_accel_map_add_group".}
-proc accel_map_remove_group*(accel_path: cstring, accel_group: PAccelGroup){.
-    cdecl, dynlib: lib, importc: "_gtk_accel_map_remove_group".}
-proc accel_path_is_valid*(accel_path: cstring): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_accel_path_is_valid".}
-proc TYPE_ACCESSIBLE*(): GType
-proc ACCESSIBLE*(obj: pointer): PAccessible
-proc ACCESSIBLE_CLASS*(klass: pointer): PAccessibleClass
-proc IS_ACCESSIBLE*(obj: pointer): bool
-proc IS_ACCESSIBLE_CLASS*(klass: pointer): bool
-proc ACCESSIBLE_GET_CLASS*(obj: pointer): PAccessibleClass
-proc accessible_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_accessible_get_type".}
-proc connect_widget_destroyed*(accessible: PAccessible){.cdecl, 
-    dynlib: lib, importc: "gtk_accessible_connect_widget_destroyed".}
-proc TYPE_ADJUSTMENT*(): GType
-proc ADJUSTMENT*(obj: pointer): PAdjustment
-proc ADJUSTMENT_CLASS*(klass: pointer): PAdjustmentClass
-proc IS_ADJUSTMENT*(obj: pointer): bool
-proc IS_ADJUSTMENT_CLASS*(klass: pointer): bool
-proc ADJUSTMENT_GET_CLASS*(obj: pointer): PAdjustmentClass
-proc adjustment_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_adjustment_get_type".}
-proc adjustment_new*(value: gdouble, lower: gdouble, upper: gdouble, 
-                     step_increment: gdouble, page_increment: gdouble, 
-                     page_size: gdouble): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_new".}
-proc changed*(adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_changed".}
-proc value_changed*(adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_value_changed".}
-proc clamp_page*(adjustment: PAdjustment, lower: gdouble, 
-                            upper: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_adjustment_clamp_page".}
-proc get_value*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_value".}
-proc set_value*(adjustment: PAdjustment, value: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_set_value".}
-proc get_upper*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_upper".}
-proc get_page_size*(adjustment: PAdjustment): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_adjustment_get_page_size".}
-proc TYPE_ALIGNMENT*(): GType
-proc ALIGNMENT*(obj: pointer): PAlignment
-proc ALIGNMENT_CLASS*(klass: pointer): PAlignmentClass
-proc IS_ALIGNMENT*(obj: pointer): bool
-proc IS_ALIGNMENT_CLASS*(klass: pointer): bool
-proc ALIGNMENT_GET_CLASS*(obj: pointer): PAlignmentClass
-proc alignment_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_alignment_get_type".}
-proc alignment_new*(xalign: gfloat, yalign: gfloat, xscale: gfloat, 
-                    yscale: gfloat): PAlignment{.cdecl, dynlib: lib, 
-    importc: "gtk_alignment_new".}
-proc set*(alignment: PAlignment, xalign: gfloat, yalign: gfloat, 
-                    xscale: gfloat, yscale: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_alignment_set".}
-proc TYPE_FRAME*(): GType
-proc FRAME*(obj: pointer): PFrame
-proc FRAME_CLASS*(klass: pointer): PFrameClass
-proc IS_FRAME*(obj: pointer): bool
-proc IS_FRAME_CLASS*(klass: pointer): bool
-proc FRAME_GET_CLASS*(obj: pointer): PFrameClass
-proc frame_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_frame_get_type".}
-proc frame_new*(`label`: cstring): PFrame{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_new".}
-proc set_label*(frame: PFrame, `label`: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_frame_set_label".}
-proc get_label*(frame: PFrame): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_label".}
-proc set_label_widget*(frame: PFrame, label_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_frame_set_label_widget".}
-proc get_label_widget*(frame: PFrame): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_label_widget".}
-proc set_label_align*(frame: PFrame, xalign: gfloat, yalign: gfloat){.
-    cdecl, dynlib: lib, importc: "gtk_frame_set_label_align".}
-proc get_label_align*(frame: PFrame, xalign: Pgfloat, yalign: Pgfloat){.
-    cdecl, dynlib: lib, importc: "gtk_frame_get_label_align".}
-proc set_shadow_type*(frame: PFrame, thetype: TShadowType){.cdecl, 
-    dynlib: lib, importc: "gtk_frame_set_shadow_type".}
-proc get_shadow_type*(frame: PFrame): TShadowType{.cdecl, dynlib: lib, 
-    importc: "gtk_frame_get_shadow_type".}
-proc TYPE_ASPECT_FRAME*(): GType
-proc ASPECT_FRAME*(obj: pointer): PAspectFrame
-proc ASPECT_FRAME_CLASS*(klass: pointer): PAspectFrameClass
-proc IS_ASPECT_FRAME*(obj: pointer): bool
-proc IS_ASPECT_FRAME_CLASS*(klass: pointer): bool
-proc ASPECT_FRAME_GET_CLASS*(obj: pointer): PAspectFrameClass
-proc aspect_frame_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_aspect_frame_get_type".}
-proc aspect_frame_new*(`label`: cstring, xalign: gfloat, yalign: gfloat, 
-                       ratio: gfloat, obey_child: gboolean): PAspectFrame{.
-    cdecl, dynlib: lib, importc: "gtk_aspect_frame_new".}
-proc set*(aspect_frame: PAspectFrame, xalign: gfloat, 
-                       yalign: gfloat, ratio: gfloat, obey_child: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_aspect_frame_set".}
-proc TYPE_ARROW*(): GType
-proc ARROW*(obj: pointer): PArrow
-proc ARROW_CLASS*(klass: pointer): PArrowClass
-proc IS_ARROW*(obj: pointer): bool
-proc IS_ARROW_CLASS*(klass: pointer): bool
-proc ARROW_GET_CLASS*(obj: pointer): PArrowClass
-proc arrow_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_arrow_get_type".}
-proc arrow_new*(arrow_type: TArrowType, shadow_type: TShadowType): PArrow{.
-    cdecl, dynlib: lib, importc: "gtk_arrow_new".}
-proc set*(arrow: PArrow, arrow_type: TArrowType, shadow_type: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_arrow_set".}
-const 
-  bm_TGtkBindingSet_parsed* = 0x0001'i16
-  bp_TGtkBindingSet_parsed* = 0'i16
-  bm_TGtkBindingEntry_destroyed* = 0x0001'i16
-  bp_TGtkBindingEntry_destroyed* = 0'i16
-  bm_TGtkBindingEntry_in_emission* = 0x0002'i16
-  bp_TGtkBindingEntry_in_emission* = 1'i16
-
-proc entry_add*(binding_set: PBindingSet, keyval: guint, 
-                        modifiers: gdk2.TModifierType)
-proc parsed*(a: PBindingSet): guint
-proc set_parsed*(a: PBindingSet, `parsed`: guint)
-proc destroyed*(a: PBindingEntry): guint
-proc set_destroyed*(a: PBindingEntry, `destroyed`: guint)
-proc in_emission*(a: PBindingEntry): guint
-proc set_in_emission*(a: PBindingEntry, `in_emission`: guint)
-proc binding_set_new*(set_name: cstring): PBindingSet{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_set_new".}
-proc binding_set_by_class*(object_class: gpointer): PBindingSet{.cdecl, 
-    dynlib: lib, importc: "gtk_binding_set_by_class".}
-proc binding_set_find*(set_name: cstring): PBindingSet{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_set_find".}
-proc bindings_activate*(anObject: PObject, keyval: guint, 
-                        modifiers: gdk2.TModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_bindings_activate".}
-proc activate*(binding_set: PBindingSet, keyval: guint, 
-                           modifiers: gdk2.TModifierType, anObject: PObject): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_binding_set_activate".}
-proc entry_clear*(binding_set: PBindingSet, keyval: guint, 
-                          modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_binding_entry_clear".}
-proc add_path*(binding_set: PBindingSet, path_type: TPathType, 
-                           path_pattern: cstring, priority: TPathPriorityType){.
-    cdecl, dynlib: lib, importc: "gtk_binding_set_add_path".}
-proc entry_remove*(binding_set: PBindingSet, keyval: guint, 
-                           modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_binding_entry_remove".}
-proc entry_add_signall*(binding_set: PBindingSet, keyval: guint, 
-                                modifiers: gdk2.TModifierType, 
-                                signal_name: cstring, binding_args: PGSList){.
-    cdecl, dynlib: lib, importc: "gtk_binding_entry_add_signall".}
-proc binding_parse_binding*(scanner: PGScanner): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_binding_parse_binding".}
-proc bindings_activate_event*(anObject: PObject, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_bindings_activate_event".}
-proc binding_reset_parsed*(){.cdecl, dynlib: lib, 
-                              importc: "_gtk_binding_reset_parsed".}
-const 
-  bm_TGtkBox_homogeneous* = 0x0001'i16
-  bp_TGtkBox_homogeneous* = 0'i16
-  bm_TGtkBoxChild_expand* = 0x0001'i16
-  bp_TGtkBoxChild_expand* = 0'i16
-  bm_TGtkBoxChild_fill* = 0x0002'i16
-  bp_TGtkBoxChild_fill* = 1'i16
-  bm_TGtkBoxChild_pack* = 0x0004'i16
-  bp_TGtkBoxChild_pack* = 2'i16
-  bm_TGtkBoxChild_is_secondary* = 0x0008'i16
-  bp_TGtkBoxChild_is_secondary* = 3'i16
-
-proc TYPE_BOX*(): GType
-proc BOX*(obj: pointer): PBox
-proc BOX_CLASS*(klass: pointer): PBoxClass
-proc IS_BOX*(obj: pointer): bool
-proc IS_BOX_CLASS*(klass: pointer): bool
-proc BOX_GET_CLASS*(obj: pointer): PBoxClass
-proc homogeneous*(a: PBox): guint
-proc set_homogeneous*(a: PBox, `homogeneous`: guint)
-proc expand*(a: PBoxChild): guint
-proc set_expand*(a: PBoxChild, `expand`: guint)
-proc fill*(a: PBoxChild): guint
-proc set_fill*(a: PBoxChild, `fill`: guint)
-proc pack*(a: PBoxChild): guint
-proc set_pack*(a: PBoxChild, `pack`: guint)
-proc is_secondary*(a: PBoxChild): guint
-proc set_is_secondary*(a: PBoxChild, `is_secondary`: guint)
-proc box_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_box_get_type".}
-proc pack_start*(box: PBox, child: PWidget, expand: gboolean, 
-                     fill: gboolean, padding: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_start".}
-proc pack_end*(box: PBox, child: PWidget, expand: gboolean, fill: gboolean, 
-                   padding: guint){.cdecl, dynlib: lib, 
-                                    importc: "gtk_box_pack_end".}
-proc pack_start_defaults*(box: PBox, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_start_defaults".}
-proc pack_end_defaults*(box: PBox, widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_box_pack_end_defaults".}
-proc set_homogeneous*(box: PBox, homogeneous: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_box_set_homogeneous".}
-proc get_homogeneous*(box: PBox): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_box_get_homogeneous".}
-proc set_spacing*(box: PBox, spacing: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_box_set_spacing".}
-proc get_spacing*(box: PBox): gint{.cdecl, dynlib: lib, 
-                                        importc: "gtk_box_get_spacing".}
-proc reorder_child*(box: PBox, child: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_box_reorder_child".}
-proc query_child_packing*(box: PBox, child: PWidget, expand: Pgboolean, 
-                              fill: Pgboolean, padding: Pguint, 
-                              pack_type: PPackType){.cdecl, dynlib: lib, 
-    importc: "gtk_box_query_child_packing".}
-proc set_child_packing*(box: PBox, child: PWidget, expand: gboolean, 
-                            fill: gboolean, padding: guint, pack_type: TPackType){.
-    cdecl, dynlib: lib, importc: "gtk_box_set_child_packing".}
-const 
-  BUTTONBOX_DEFAULT* = - (1)
-
-proc TYPE_BUTTON_BOX*(): GType
-proc BUTTON_BOX*(obj: pointer): PButtonBox
-proc BUTTON_BOX_CLASS*(klass: pointer): PButtonBoxClass
-proc IS_BUTTON_BOX*(obj: pointer): bool
-proc IS_BUTTON_BOX_CLASS*(klass: pointer): bool
-proc BUTTON_BOX_GET_CLASS*(obj: pointer): PButtonBoxClass
-proc button_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_button_box_get_type".}
-proc get_layout*(widget: PButtonBox): TButtonBoxStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_button_box_get_layout".}
-proc set_layout*(widget: PButtonBox, layout_style: TButtonBoxStyle){.
-    cdecl, dynlib: lib, importc: "gtk_button_box_set_layout".}
-proc set_child_secondary*(widget: PButtonBox, child: PWidget, 
-                                     is_secondary: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_box_set_child_secondary".}
-proc button_box_child_requisition*(widget: PWidget, nvis_children: var int32, 
-                                   nvis_secondaries: var int32, 
-                                   width: var int32, height: var int32){.cdecl, 
-    dynlib: lib, importc: "_gtk_button_box_child_requisition".}
-const 
-  bm_TGtkButton_constructed* = 0x0001'i16
-  bp_TGtkButton_constructed* = 0'i16
-  bm_TGtkButton_in_button* = 0x0002'i16
-  bp_TGtkButton_in_button* = 1'i16
-  bm_TGtkButton_button_down* = 0x0004'i16
-  bp_TGtkButton_button_down* = 2'i16
-  bm_TGtkButton_relief* = 0x0018'i16
-  bp_TGtkButton_relief* = 3'i16
-  bm_TGtkButton_use_underline* = 0x0020'i16
-  bp_TGtkButton_use_underline* = 5'i16
-  bm_TGtkButton_use_stock* = 0x0040'i16
-  bp_TGtkButton_use_stock* = 6'i16
-  bm_TGtkButton_depressed* = 0x0080'i16
-  bp_TGtkButton_depressed* = 7'i16
-  bm_TGtkButton_depress_on_activate* = 0x0100'i16
-  bp_TGtkButton_depress_on_activate* = 8'i16
-
-proc TYPE_BUTTON*(): GType
-proc BUTTON*(obj: pointer): PButton
-proc BUTTON_CLASS*(klass: pointer): PButtonClass
-proc IS_BUTTON*(obj: pointer): bool
-proc IS_BUTTON_CLASS*(klass: pointer): bool
-proc BUTTON_GET_CLASS*(obj: pointer): PButtonClass
-proc constructed*(a: PButton): guint
-proc set_constructed*(a: PButton, `constructed`: guint)
-proc in_button*(a: PButton): guint
-proc set_in_button*(a: PButton, `in_button`: guint)
-proc button_down*(a: PButton): guint
-proc set_button_down*(a: PButton, `button_down`: guint)
-proc relief*(a: PButton): guint
-proc use_underline*(a: PButton): guint
-proc set_use_underline*(a: PButton, `use_underline`: guint)
-proc use_stock*(a: PButton): guint
-proc set_use_stock*(a: PButton, `use_stock`: guint)
-proc depressed*(a: PButton): guint
-proc set_depressed*(a: PButton, `depressed`: guint)
-proc depress_on_activate*(a: PButton): guint
-proc set_depress_on_activate*(a: PButton, `depress_on_activate`: guint)
-proc button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_button_get_type".}
-proc button_new*(): PButton{.cdecl, dynlib: lib, importc: "gtk_button_new".}
-proc button_new*(`label`: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_with_label".}
-proc button_new_from_stock*(stock_id: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_from_stock".}
-proc button_new_with_mnemonic*(`label`: cstring): PButton{.cdecl, dynlib: lib, 
-    importc: "gtk_button_new_with_mnemonic".}
-proc pressed*(button: PButton){.cdecl, dynlib: lib, 
-                                       importc: "gtk_button_pressed".}
-proc released*(button: PButton){.cdecl, dynlib: lib, 
-                                        importc: "gtk_button_released".}
-proc clicked*(button: PButton){.cdecl, dynlib: lib, 
-                                       importc: "gtk_button_clicked".}
-proc enter*(button: PButton){.cdecl, dynlib: lib, 
-                                     importc: "gtk_button_enter".}
-proc leave*(button: PButton){.cdecl, dynlib: lib, 
-                                     importc: "gtk_button_leave".}
-proc set_relief*(button: PButton, newstyle: TReliefStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_relief".}
-proc get_relief*(button: PButton): TReliefStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_relief".}
-proc set_label*(button: PButton, `label`: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_button_set_label".}
-proc get_label*(button: PButton): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_label".}
-proc set_use_underline*(button: PButton, use_underline: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_use_underline".}
-proc get_use_underline*(button: PButton): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_use_underline".}
-proc set_use_stock*(button: PButton, use_stock: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_button_set_use_stock".}
-proc get_use_stock*(button: PButton): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_use_stock".}
-proc set_depressed*(button: PButton, depressed: gboolean){.cdecl, 
-    dynlib: lib, importc: "_gtk_button_set_depressed".}
-proc paint*(button: PButton, area: gdk2.PRectangle, state_type: TStateType, 
-                   shadow_type: TShadowType, main_detail: cstring, 
-                   default_detail: cstring){.cdecl, dynlib: lib, 
-    importc: "_gtk_button_paint".}
-proc set_image*(button: PButton, image: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_button_set_image".}
-proc get_image*(button: PButton): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_button_get_image".}
-const 
-  CALENDAR_SHOW_HEADING* = 1 shl 0
-  CALENDAR_SHOW_DAY_NAMES* = 1 shl 1
-  CALENDAR_NO_MONTH_CHANGE* = 1 shl 2
-  CALENDAR_SHOW_WEEK_NUMBERS* = 1 shl 3
-  CALENDAR_WEEK_START_MONDAY* = 1 shl 4
-
-proc TYPE_CALENDAR*(): GType
-proc CALENDAR*(obj: pointer): PCalendar
-proc CALENDAR_CLASS*(klass: pointer): PCalendarClass
-proc IS_CALENDAR*(obj: pointer): bool
-proc IS_CALENDAR_CLASS*(klass: pointer): bool
-proc CALENDAR_GET_CLASS*(obj: pointer): PCalendarClass
-proc calendar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_calendar_get_type".}
-proc calendar_new*(): PCalendar{.cdecl, dynlib: lib, importc: "gtk_calendar_new".}
-proc select_month*(calendar: PCalendar, month: guint, year: guint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_calendar_select_month".}
-proc select_day*(calendar: PCalendar, day: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_select_day".}
-proc mark_day*(calendar: PCalendar, day: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_mark_day".}
-proc unmark_day*(calendar: PCalendar, day: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_unmark_day".}
-proc clear_marks*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_clear_marks".}
-proc display_options*(calendar: PCalendar, 
-                               flags: TCalendarDisplayOptions){.cdecl, 
-    dynlib: lib, importc: "gtk_calendar_display_options".}
-proc get_date*(calendar: PCalendar, year: Pguint, month: Pguint, 
-                        day: Pguint){.cdecl, dynlib: lib, 
-                                      importc: "gtk_calendar_get_date".}
-proc freeze*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_freeze".}
-proc thaw*(calendar: PCalendar){.cdecl, dynlib: lib, 
-    importc: "gtk_calendar_thaw".}
-proc TYPE_CELL_EDITABLE*(): GType
-proc CELL_EDITABLE*(obj: pointer): PCellEditable
-proc CELL_EDITABLE_CLASS*(obj: pointer): PCellEditableIface
-proc IS_CELL_EDITABLE*(obj: pointer): bool
-proc CELL_EDITABLE_GET_IFACE*(obj: pointer): PCellEditableIface
-proc cell_editable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_cell_editable_get_type".}
-proc start_editing*(cell_editable: PCellEditable, event: gdk2.PEvent){.
-    cdecl, dynlib: lib, importc: "gtk_cell_editable_start_editing".}
-proc editing_done*(cell_editable: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "gtk_cell_editable_editing_done".}
-proc remove_widget*(cell_editable: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "gtk_cell_editable_remove_widget".}
-const 
-  CELL_RENDERER_SELECTED* = 1 shl 0
-  CELL_RENDERER_PRELIT* = 1 shl 1
-  CELL_RENDERER_INSENSITIVE* = 1 shl 2
-  CELL_RENDERER_SORTED* = 1 shl 3
-
-const 
-  bm_TGtkCellRenderer_mode* = 0x0003'i16
-  bp_TGtkCellRenderer_mode* = 0'i16
-  bm_TGtkCellRenderer_visible* = 0x0004'i16
-  bp_TGtkCellRenderer_visible* = 2'i16
-  bm_TGtkCellRenderer_is_expander* = 0x0008'i16
-  bp_TGtkCellRenderer_is_expander* = 3'i16
-  bm_TGtkCellRenderer_is_expanded* = 0x0010'i16
-  bp_TGtkCellRenderer_is_expanded* = 4'i16
-  bm_TGtkCellRenderer_cell_background_set* = 0x0020'i16
-  bp_TGtkCellRenderer_cell_background_set* = 5'i16
-
-proc TYPE_CELL_RENDERER*(): GType
-proc CELL_RENDERER*(obj: pointer): PCellRenderer
-proc CELL_RENDERER_CLASS*(klass: pointer): PCellRendererClass
-proc IS_CELL_RENDERER*(obj: pointer): bool
-proc IS_CELL_RENDERER_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_GET_CLASS*(obj: pointer): PCellRendererClass
-proc mode*(a: PCellRenderer): guint
-proc set_mode*(a: PCellRenderer, `mode`: guint)
-proc visible*(a: PCellRenderer): guint
-proc set_visible*(a: PCellRenderer, `visible`: guint)
-proc is_expander*(a: PCellRenderer): guint
-proc set_is_expander*(a: PCellRenderer, `is_expander`: guint)
-proc is_expanded*(a: PCellRenderer): guint
-proc set_is_expanded*(a: PCellRenderer, `is_expanded`: guint)
-proc cell_background_set*(a: PCellRenderer): guint
-proc set_cell_background_set*(a: PCellRenderer, `cell_background_set`: guint)
-proc cell_renderer_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_cell_renderer_get_type".}
-proc get_size*(cell: PCellRenderer, widget: PWidget, 
-                             cell_area: gdk2.PRectangle, x_offset: Pgint, 
-                             y_offset: Pgint, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_get_size".}
-proc render*(cell: PCellRenderer, window: gdk2.PWindow, 
-                           widget: PWidget, background_area: gdk2.PRectangle, 
-                           cell_area: gdk2.PRectangle, expose_area: gdk2.PRectangle, 
-                           flags: TCellRendererState){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_render".}
-proc activate*(cell: PCellRenderer, event: gdk2.PEvent, 
-                             widget: PWidget, path: cstring, 
-                             background_area: gdk2.PRectangle, 
-                             cell_area: gdk2.PRectangle, flags: TCellRendererState): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_activate".}
-proc start_editing*(cell: PCellRenderer, event: gdk2.PEvent, 
-                                  widget: PWidget, path: cstring, 
-                                  background_area: gdk2.PRectangle, 
-                                  cell_area: gdk2.PRectangle, 
-                                  flags: TCellRendererState): PCellEditable{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_start_editing".}
-proc set_fixed_size*(cell: PCellRenderer, width: gint, 
-                                   height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_set_fixed_size".}
-proc get_fixed_size*(cell: PCellRenderer, width: Pgint, 
-                                   height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_get_fixed_size".}
-const 
-  bm_TGtkCellRendererText_strikethrough* = 0x0001'i16
-  bp_TGtkCellRendererText_strikethrough* = 0'i16
-  bm_TGtkCellRendererText_editable* = 0x0002'i16
-  bp_TGtkCellRendererText_editable* = 1'i16
-  bm_TGtkCellRendererText_scale_set* = 0x0004'i16
-  bp_TGtkCellRendererText_scale_set* = 2'i16
-  bm_TGtkCellRendererText_foreground_set* = 0x0008'i16
-  bp_TGtkCellRendererText_foreground_set* = 3'i16
-  bm_TGtkCellRendererText_background_set* = 0x0010'i16
-  bp_TGtkCellRendererText_background_set* = 4'i16
-  bm_TGtkCellRendererText_underline_set* = 0x0020'i16
-  bp_TGtkCellRendererText_underline_set* = 5'i16
-  bm_TGtkCellRendererText_rise_set* = 0x0040'i16
-  bp_TGtkCellRendererText_rise_set* = 6'i16
-  bm_TGtkCellRendererText_strikethrough_set* = 0x0080'i16
-  bp_TGtkCellRendererText_strikethrough_set* = 7'i16
-  bm_TGtkCellRendererText_editable_set* = 0x0100'i16
-  bp_TGtkCellRendererText_editable_set* = 8'i16
-  bm_TGtkCellRendererText_calc_fixed_height* = 0x0200'i16
-  bp_TGtkCellRendererText_calc_fixed_height* = 9'i16
-
-proc TYPE_CELL_RENDERER_TEXT*(): GType
-proc CELL_RENDERER_TEXT*(obj: pointer): PCellRendererText
-proc CELL_RENDERER_TEXT_CLASS*(klass: pointer): PCellRendererTextClass
-proc IS_CELL_RENDERER_TEXT*(obj: pointer): bool
-proc IS_CELL_RENDERER_TEXT_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_TEXT_GET_CLASS*(obj: pointer): PCellRendererTextClass
-proc strikethrough*(a: PCellRendererText): guint
-proc set_strikethrough*(a: PCellRendererText, `strikethrough`: guint)
-proc editable*(a: PCellRendererText): guint
-proc set_editable*(a: PCellRendererText, `editable`: guint)
-proc scale_set*(a: PCellRendererText): guint
-proc set_scale_set*(a: PCellRendererText, `scale_set`: guint)
-proc foreground_set*(a: PCellRendererText): guint
-proc set_foreground_set*(a: PCellRendererText, `foreground_set`: guint)
-proc background_set*(a: PCellRendererText): guint
-proc set_background_set*(a: PCellRendererText, `background_set`: guint)
-proc underline_set*(a: PCellRendererText): guint
-proc set_underline_set*(a: PCellRendererText, `underline_set`: guint)
-proc rise_set*(a: PCellRendererText): guint
-proc set_rise_set*(a: PCellRendererText, `rise_set`: guint)
-proc strikethrough_set*(a: PCellRendererText): guint
-proc set_strikethrough_set*(a: PCellRendererText, `strikethrough_set`: guint)
-proc editable_set*(a: PCellRendererText): guint
-proc set_editable_set*(a: PCellRendererText, `editable_set`: guint)
-proc calc_fixed_height*(a: PCellRendererText): guint
-proc set_calc_fixed_height*(a: PCellRendererText, `calc_fixed_height`: guint)
-proc cell_renderer_text_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_text_get_type".}
-proc cell_renderer_text_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_text_new".}
-proc text_set_fixed_height_from_font*(renderer: PCellRendererText, 
-    number_of_rows: gint){.cdecl, dynlib: lib, importc: "gtk_cell_renderer_text_set_fixed_height_from_font".}
-const 
-  bm_TGtkCellRendererToggle_active* = 0x0001'i16
-  bp_TGtkCellRendererToggle_active* = 0'i16
-  bm_TGtkCellRendererToggle_activatable* = 0x0002'i16
-  bp_TGtkCellRendererToggle_activatable* = 1'i16
-  bm_TGtkCellRendererToggle_radio* = 0x0004'i16
-  bp_TGtkCellRendererToggle_radio* = 2'i16
-
-proc TYPE_CELL_RENDERER_TOGGLE*(): GType
-proc CELL_RENDERER_TOGGLE*(obj: pointer): PCellRendererToggle
-proc CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): PCellRendererToggleClass
-proc IS_CELL_RENDERER_TOGGLE*(obj: pointer): bool
-proc IS_CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_TOGGLE_GET_CLASS*(obj: pointer): PCellRendererToggleClass
-proc active*(a: PCellRendererToggle): guint
-proc set_active*(a: PCellRendererToggle, `active`: guint)
-proc activatable*(a: PCellRendererToggle): guint
-proc set_activatable*(a: PCellRendererToggle, `activatable`: guint)
-proc radio*(a: PCellRendererToggle): guint
-proc set_radio*(a: PCellRendererToggle, `radio`: guint)
-proc cell_renderer_toggle_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_get_type".}
-proc cell_renderer_toggle_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_new".}
-proc toggle_get_radio*(toggle: PCellRendererToggle): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_toggle_get_radio".}
-proc toggle_set_radio*(toggle: PCellRendererToggle, 
-                                     radio: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_set_radio".}
-proc toggle_get_active*(toggle: PCellRendererToggle): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_cell_renderer_toggle_get_active".}
-proc toggle_set_active*(toggle: PCellRendererToggle, 
-                                      setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_toggle_set_active".}
-proc TYPE_CELL_RENDERER_PIXBUF*(): GType
-proc CELL_RENDERER_PIXBUF*(obj: pointer): PCellRendererPixbuf
-proc CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): PCellRendererPixbufClass
-proc IS_CELL_RENDERER_PIXBUF*(obj: pointer): bool
-proc IS_CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): bool
-proc CELL_RENDERER_PIXBUF_GET_CLASS*(obj: pointer): PCellRendererPixbufClass
-proc cell_renderer_pixbuf_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_pixbuf_get_type".}
-proc cell_renderer_pixbuf_new*(): PCellRenderer{.cdecl, dynlib: lib, 
-    importc: "gtk_cell_renderer_pixbuf_new".}
-proc TYPE_ITEM*(): GType
-proc ITEM*(obj: pointer): PItem
-proc ITEM_CLASS*(klass: pointer): PItemClass
-proc IS_ITEM*(obj: pointer): bool
-proc IS_ITEM_CLASS*(klass: pointer): bool
-proc ITEM_GET_CLASS*(obj: pointer): PItemClass
-proc item_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_item_get_type".}
-proc select*(item: PItem){.cdecl, dynlib: lib, importc: "gtk_item_select".}
-proc deselect*(item: PItem){.cdecl, dynlib: lib, 
-                                  importc: "gtk_item_deselect".}
-proc toggle*(item: PItem){.cdecl, dynlib: lib, importc: "gtk_item_toggle".}
-const 
-  bm_TGtkMenuItem_show_submenu_indicator* = 0x0001'i16
-  bp_TGtkMenuItem_show_submenu_indicator* = 0'i16
-  bm_TGtkMenuItem_submenu_placement* = 0x0002'i16
-  bp_TGtkMenuItem_submenu_placement* = 1'i16
-  bm_TGtkMenuItem_submenu_direction* = 0x0004'i16
-  bp_TGtkMenuItem_submenu_direction* = 2'i16
-  bm_TGtkMenuItem_right_justify* = 0x0008'i16
-  bp_TGtkMenuItem_right_justify* = 3'i16
-  bm_TGtkMenuItem_timer_from_keypress* = 0x0010'i16
-  bp_TGtkMenuItem_timer_from_keypress* = 4'i16
-  bm_TGtkMenuItemClass_hide_on_activate* = 0x0001'i16
-  bp_TGtkMenuItemClass_hide_on_activate* = 0'i16
-
-proc TYPE_MENU_ITEM*(): GType
-proc MENU_ITEM*(obj: pointer): PMenuItem
-proc MENU_ITEM_CLASS*(klass: pointer): PMenuItemClass
-proc IS_MENU_ITEM*(obj: pointer): bool
-proc IS_MENU_ITEM_CLASS*(klass: pointer): bool
-proc MENU_ITEM_GET_CLASS*(obj: pointer): PMenuItemClass
-proc show_submenu_indicator*(a: PMenuItem): guint
-proc set_show_submenu_indicator*(a: PMenuItem, 
-                                 `show_submenu_indicator`: guint)
-proc submenu_placement*(a: PMenuItem): guint
-proc set_submenu_placement*(a: PMenuItem, `submenu_placement`: guint)
-proc submenu_direction*(a: PMenuItem): guint
-proc set_submenu_direction*(a: PMenuItem, `submenu_direction`: guint)
-proc right_justify*(a: PMenuItem): guint
-proc set_right_justify*(a: PMenuItem, `right_justify`: guint)
-proc timer_from_keypress*(a: PMenuItem): guint
-proc set_timer_from_keypress*(a: PMenuItem, `timer_from_keypress`: guint)
-proc hide_on_activate*(a: PMenuItemClass): guint
-proc set_hide_on_activate*(a: PMenuItemClass, `hide_on_activate`: guint)
-proc menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_menu_item_get_type".}
-proc menu_item_new*(): PMenuItem{.cdecl, dynlib: lib, 
-                                  importc: "gtk_menu_item_new".}
-proc menu_item_new*(`label`: cstring): PMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_new_with_label".}
-proc menu_item_new_with_mnemonic*(`label`: cstring): PMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_new_with_mnemonic".}
-proc set_submenu*(menu_item: PMenuItem, submenu: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_set_submenu".}
-proc get_submenu*(menu_item: PMenuItem): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_get_submenu".}
-proc remove_submenu*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_remove_submenu".}
-proc select*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_select".}
-proc deselect*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_deselect".}
-proc activate*(menu_item: PMenuItem){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_item_activate".}
-proc toggle_size_request*(menu_item: PMenuItem, requisition: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_toggle_size_request".}
-proc toggle_size_allocate*(menu_item: PMenuItem, allocation: gint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_toggle_size_allocate".}
-proc set_right_justified*(menu_item: PMenuItem, 
-                                    right_justified: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_set_right_justified".}
-proc get_right_justified*(menu_item: PMenuItem): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_menu_item_get_right_justified".}
-proc set_accel_path*(menu_item: PMenuItem, accel_path: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_menu_item_set_accel_path".}
-proc refresh_accel_path*(menu_item: PMenuItem, prefix: cstring, 
-                                   accel_group: PAccelGroup, 
-                                   group_changed: gboolean){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_item_refresh_accel_path".}
-proc menu_item_is_selectable*(menu_item: PWidget): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_item_is_selectable".}
-const 
-  bm_TGtkToggleButton_active* = 0x0001'i16
-  bp_TGtkToggleButton_active* = 0'i16
-  bm_TGtkToggleButton_draw_indicator* = 0x0002'i16
-  bp_TGtkToggleButton_draw_indicator* = 1'i16
-  bm_TGtkToggleButton_inconsistent* = 0x0004'i16
-  bp_TGtkToggleButton_inconsistent* = 2'i16
-
-proc TYPE_TOGGLE_BUTTON*(): GType
-proc TOGGLE_BUTTON*(obj: pointer): PToggleButton
-proc TOGGLE_BUTTON_CLASS*(klass: pointer): PToggleButtonClass
-proc IS_TOGGLE_BUTTON*(obj: pointer): bool
-proc IS_TOGGLE_BUTTON_CLASS*(klass: pointer): bool
-proc TOGGLE_BUTTON_GET_CLASS*(obj: pointer): PToggleButtonClass
-proc active*(a: PToggleButton): guint
-proc set_active*(a: PToggleButton, `active`: guint)
-proc draw_indicator*(a: PToggleButton): guint
-proc set_draw_indicator*(a: PToggleButton, `draw_indicator`: guint)
-proc inconsistent*(a: PToggleButton): guint
-proc set_inconsistent*(a: PToggleButton, `inconsistent`: guint)
-proc toggle_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_toggle_button_get_type".}
-proc toggle_button_new*(): PToggleButton{.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_new".}
-proc toggle_button_new*(`label`: cstring): PToggleButton{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_new_with_label".}
-proc toggle_button_new_with_mnemonic*(`label`: cstring): PToggleButton{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_new_with_mnemonic".}
-proc set_mode*(toggle_button: PToggleButton, 
-                             draw_indicator: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_set_mode".}
-proc get_mode*(toggle_button: PToggleButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_get_mode".}
-proc set_active*(toggle_button: PToggleButton, is_active: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_toggle_button_set_active".}
-proc get_active*(toggle_button: PToggleButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_toggle_button_get_active".}
-proc toggled*(toggle_button: PToggleButton){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_toggled".}
-proc set_inconsistent*(toggle_button: PToggleButton, 
-                                     setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_toggle_button_set_inconsistent".}
-proc get_inconsistent*(toggle_button: PToggleButton): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_toggle_button_get_inconsistent".}
-proc TYPE_CHECK_BUTTON*(): GType
-proc CHECK_BUTTON*(obj: pointer): PCheckButton
-proc CHECK_BUTTON_CLASS*(klass: pointer): PCheckButtonClass
-proc IS_CHECK_BUTTON*(obj: pointer): bool
-proc IS_CHECK_BUTTON_CLASS*(klass: pointer): bool
-proc CHECK_BUTTON_GET_CLASS*(obj: pointer): PCheckButtonClass
-proc check_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_check_button_get_type".}
-proc check_button_new*(): PCheckButton{.cdecl, dynlib: lib, 
-                                        importc: "gtk_check_button_new".}
-proc check_button_new*(`label`: cstring): PCheckButton{.cdecl, 
-    dynlib: lib, importc: "gtk_check_button_new_with_label".}
-proc check_button_new_with_mnemonic*(`label`: cstring): PCheckButton{.cdecl, 
-    dynlib: lib, importc: "gtk_check_button_new_with_mnemonic".}
-proc get_props*(check_button: PCheckButton, indicator_size: Pgint, 
-                             indicator_spacing: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_check_button_get_props".}
-const 
-  bm_TGtkCheckMenuItem_active* = 0x0001'i16
-  bp_TGtkCheckMenuItem_active* = 0'i16
-  bm_TGtkCheckMenuItem_always_show_toggle* = 0x0002'i16
-  bp_TGtkCheckMenuItem_always_show_toggle* = 1'i16
-  bm_TGtkCheckMenuItem_inconsistent* = 0x0004'i16
-  bp_TGtkCheckMenuItem_inconsistent* = 2'i16
-
-proc TYPE_CHECK_MENU_ITEM*(): GType
-proc CHECK_MENU_ITEM*(obj: pointer): PCheckMenuItem
-proc CHECK_MENU_ITEM_CLASS*(klass: pointer): PCheckMenuItemClass
-proc IS_CHECK_MENU_ITEM*(obj: pointer): bool
-proc IS_CHECK_MENU_ITEM_CLASS*(klass: pointer): bool
-proc CHECK_MENU_ITEM_GET_CLASS*(obj: pointer): PCheckMenuItemClass
-proc active*(a: PCheckMenuItem): guint
-proc set_active*(a: PCheckMenuItem, `active`: guint)
-proc always_show_toggle*(a: PCheckMenuItem): guint
-proc set_always_show_toggle*(a: PCheckMenuItem, `always_show_toggle`: guint)
-proc inconsistent*(a: PCheckMenuItem): guint
-proc set_inconsistent*(a: PCheckMenuItem, `inconsistent`: guint)
-proc check_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_get_type".}
-proc check_menu_item_new*(): PCheckMenuItem{.cdecl, dynlib: lib, 
-                                      importc: "gtk_check_menu_item_new".}
-proc check_menu_item_new*(`label`: cstring): PCheckMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_new_with_label".}
-proc check_menu_item_new_with_mnemonic*(`label`: cstring): PCheckMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_new_with_mnemonic".}
-proc item_set_active*(check_menu_item: PCheckMenuItem, 
-                                 is_active: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_set_active".}
-proc item_get_active*(check_menu_item: PCheckMenuItem): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_check_menu_item_get_active".}
-proc item_toggled*(check_menu_item: PCheckMenuItem){.cdecl, 
-    dynlib: lib, importc: "gtk_check_menu_item_toggled".}
-proc item_set_inconsistent*(check_menu_item: PCheckMenuItem, 
-                                       setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_check_menu_item_set_inconsistent".}
-proc item_get_inconsistent*(check_menu_item: PCheckMenuItem): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_check_menu_item_get_inconsistent".}
-proc clipboard_get_for_display*(display: gdk2.PDisplay, selection: gdk2.TAtom): PClipboard{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_get_for_display".}
-proc get_display*(clipboard: PClipboard): gdk2.PDisplay{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_get_display".}
-proc set_with_data*(clipboard: PClipboard, targets: PTargetEntry, 
-                              n_targets: guint, get_func: TClipboardGetFunc, 
-                              clear_func: TClipboardClearFunc, 
-                              user_data: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_set_with_data".}
-proc set_with_owner*(clipboard: PClipboard, targets: PTargetEntry, 
-                               n_targets: guint, get_func: TClipboardGetFunc, 
-                               clear_func: TClipboardClearFunc, owner: PGObject): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_set_with_owner".}
-proc get_owner*(clipboard: PClipboard): PGObject{.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_get_owner".}
-proc clear*(clipboard: PClipboard){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_clear".}
-proc set_text*(clipboard: PClipboard, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_set_text".}
-proc request_contents*(clipboard: PClipboard, target: gdk2.TAtom, 
-                                 callback: TClipboardReceivedFunc, 
-                                 user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_request_contents".}
-proc request_text*(clipboard: PClipboard, 
-                             callback: TClipboardTextReceivedFunc, 
-                             user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_clipboard_request_text".}
-proc wait_for_contents*(clipboard: PClipboard, target: gdk2.TAtom): PSelectionData{.
-    cdecl, dynlib: lib, importc: "gtk_clipboard_wait_for_contents".}
-proc wait_for_text*(clipboard: PClipboard): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_wait_for_text".}
-proc wait_is_text_available*(clipboard: PClipboard): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clipboard_wait_is_text_available".}
-const 
-  CLIST_IN_DRAG* = 1 shl 0
-  CLIST_ROW_HEIGHT_SET* = 1 shl 1
-  CLIST_SHOW_TITLES* = 1 shl 2
-  CLIST_ADD_MODE* = 1 shl 4
-  CLIST_AUTO_SORT* = 1 shl 5
-  CLIST_AUTO_RESIZE_BLOCKED* = 1 shl 6
-  CLIST_REORDERABLE* = 1 shl 7
-  CLIST_USE_DRAG_ICONS* = 1 shl 8
-  CLIST_DRAW_DRAG_LINE* = 1 shl 9
-  CLIST_DRAW_DRAG_RECT* = 1 shl 10
-  BUTTON_IGNORED* = 0
-  BUTTON_SELECTS* = 1 shl 0
-  BUTTON_DRAGS* = 1 shl 1
-  BUTTON_EXPANDS* = 1 shl 2
-
-const 
-  bm_TGtkCListColumn_visible* = 0x0001'i16
-  bp_TGtkCListColumn_visible* = 0'i16
-  bm_TGtkCListColumn_width_set* = 0x0002'i16
-  bp_TGtkCListColumn_width_set* = 1'i16
-  bm_TGtkCListColumn_resizeable* = 0x0004'i16
-  bp_TGtkCListColumn_resizeable* = 2'i16
-  bm_TGtkCListColumn_auto_resize* = 0x0008'i16
-  bp_TGtkCListColumn_auto_resize* = 3'i16
-  bm_TGtkCListColumn_button_passive* = 0x0010'i16
-  bp_TGtkCListColumn_button_passive* = 4'i16
-  bm_TGtkCListRow_fg_set* = 0x0001'i16
-  bp_TGtkCListRow_fg_set* = 0'i16
-  bm_TGtkCListRow_bg_set* = 0x0002'i16
-  bp_TGtkCListRow_bg_set* = 1'i16
-  bm_TGtkCListRow_selectable* = 0x0004'i16
-  bp_TGtkCListRow_selectable* = 2'i16
-
-proc TYPE_CLIST*(): GType
-proc CLIST*(obj: pointer): PCList
-proc CLIST_CLASS*(klass: pointer): PCListClass
-proc IS_CLIST*(obj: pointer): bool
-proc IS_CLIST_CLASS*(klass: pointer): bool
-proc CLIST_GET_CLASS*(obj: pointer): PCListClass
-proc CLIST_FLAGS*(clist: pointer): guint16
-proc SET_FLAG*(clist: PCList, flag: guint16)
-proc UNSET_FLAG*(clist: PCList, flag: guint16)
-#proc GTK_CLIST_IN_DRAG_get*(clist: pointer): bool
-#proc GTK_CLIST_ROW_HEIGHT_SET_get*(clist: pointer): bool
-#proc GTK_CLIST_SHOW_TITLES_get*(clist: pointer): bool
-#proc GTK_CLIST_ADD_MODE_get*(clist: pointer): bool
-#proc GTK_CLIST_AUTO_SORT_get*(clist: pointer): bool
-#proc GTK_CLIST_AUTO_RESIZE_BLOCKED_get*(clist: pointer): bool
-#proc GTK_CLIST_REORDERABLE_get*(clist: pointer): bool
-#proc GTK_CLIST_USE_DRAG_ICONS_get*(clist: pointer): bool
-#proc GTK_CLIST_DRAW_DRAG_LINE_get*(clist: pointer): bool
-#proc GTK_CLIST_DRAW_DRAG_RECT_get*(clist: pointer): bool
-#proc GTK_CLIST_ROW_get*(glist: PGList): PGtkCListRow
-#proc GTK_CELL_TEXT_get*(cell: pointer): PGtkCellText
-#proc GTK_CELL_PIXMAP_get*(cell: pointer): PGtkCellPixmap
-#proc GTK_CELL_PIXTEXT_get*(cell: pointer): PGtkCellPixText
-#proc GTK_CELL_WIDGET_get*(cell: pointer): PGtkCellWidget
-
-proc visible*(a: PCListColumn): guint
-proc set_visible*(a: PCListColumn, `visible`: guint)
-proc width_set*(a: PCListColumn): guint
-proc set_width_set*(a: PCListColumn, `width_set`: guint)
-proc resizeable*(a: PCListColumn): guint
-proc set_resizeable*(a: PCListColumn, `resizeable`: guint)
-proc auto_resize*(a: PCListColumn): guint
-proc set_auto_resize*(a: PCListColumn, `auto_resize`: guint)
-proc button_passive*(a: PCListColumn): guint
-proc set_button_passive*(a: PCListColumn, `button_passive`: guint)
-proc fg_set*(a: PCListRow): guint
-proc set_fg_set*(a: PCListRow, `fg_set`: guint)
-proc bg_set*(a: PCListRow): guint
-proc set_bg_set*(a: PCListRow, `bg_set`: guint)
-proc selectable*(a: PCListRow): guint
-proc set_selectable*(a: PCListRow, `selectable`: guint)
-proc clist_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_clist_get_type".}
-proc clist_new*(columns: gint): PCList{.cdecl, dynlib: lib, 
-                                        importc: "gtk_clist_new".}
-proc set_hadjustment*(clist: PCList, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_hadjustment".}
-proc set_vadjustment*(clist: PCList, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_vadjustment".}
-proc get_hadjustment*(clist: PCList): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_hadjustment".}
-proc get_vadjustment*(clist: PCList): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_vadjustment".}
-proc set_shadow_type*(clist: PCList, thetype: TShadowType){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_shadow_type".}
-proc set_selection_mode*(clist: PCList, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_selection_mode".}
-proc set_reorderable*(clist: PCList, reorderable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_reorderable".}
-proc set_use_drag_icons*(clist: PCList, use_icons: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_use_drag_icons".}
-proc set_button_actions*(clist: PCList, button: guint, 
-                               button_actions: guint8){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_button_actions".}
-proc freeze*(clist: PCList){.cdecl, dynlib: lib, 
-                                   importc: "gtk_clist_freeze".}
-proc thaw*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_thaw".}
-proc column_titles_show*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_show".}
-proc column_titles_hide*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_hide".}
-proc column_title_active*(clist: PCList, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_column_title_active".}
-proc column_title_passive*(clist: PCList, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_column_title_passive".}
-proc column_titles_active*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_active".}
-proc column_titles_passive*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_column_titles_passive".}
-proc set_column_title*(clist: PCList, column: gint, title: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_title".}
-proc get_column_title*(clist: PCList, column: gint): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_column_title".}
-proc set_column_widget*(clist: PCList, column: gint, widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_widget".}
-proc get_column_widget*(clist: PCList, column: gint): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_column_widget".}
-proc set_column_justification*(clist: PCList, column: gint, 
-                                     justification: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_column_justification".}
-proc set_column_visibility*(clist: PCList, column: gint, visible: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_visibility".}
-proc set_column_resizeable*(clist: PCList, column: gint, 
-                                  resizeable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_column_resizeable".}
-proc set_column_auto_resize*(clist: PCList, column: gint, 
-                                   auto_resize: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_column_auto_resize".}
-proc columns_autosize*(clist: PCList): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_columns_autosize".}
-proc optimal_column_width*(clist: PCList, column: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_optimal_column_width".}
-proc set_column_width*(clist: PCList, column: gint, width: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_column_width".}
-proc set_column_min_width*(clist: PCList, column: gint, min_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_min_width".}
-proc set_column_max_width*(clist: PCList, column: gint, max_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_column_max_width".}
-proc set_row_height*(clist: PCList, height: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_row_height".}
-proc moveto*(clist: PCList, row: gint, column: gint, row_align: gfloat, 
-                   col_align: gfloat){.cdecl, dynlib: lib, 
-                                       importc: "gtk_clist_moveto".}
-proc row_is_visible*(clist: PCList, row: gint): TVisibility{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_row_is_visible".}
-proc get_cell_type*(clist: PCList, row: gint, column: gint): TCellType{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_cell_type".}
-proc set_text*(clist: PCList, row: gint, column: gint, text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_text".}
-proc get_text*(clist: PCList, row: gint, column: gint, text: PPgchar): gint{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_text".}
-proc set_pixmap*(clist: PCList, row: gint, column: gint, 
-                       pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_pixmap".}
-proc get_pixmap*(clist: PCList, row: gint, column: gint, 
-                       pixmap: var gdk2.PPixmap, mask: var gdk2.PBitmap): gint{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_pixmap".}
-proc set_pixtext*(clist: PCList, row: gint, column: gint, text: cstring, 
-                        spacing: guint8, pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_pixtext".}
-proc set_foreground*(clist: PCList, row: gint, color: gdk2.PColor){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_foreground".}
-proc set_background*(clist: PCList, row: gint, color: gdk2.PColor){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_background".}
-proc set_cell_style*(clist: PCList, row: gint, column: gint, style: PStyle){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_cell_style".}
-proc get_cell_style*(clist: PCList, row: gint, column: gint): PStyle{.
-    cdecl, dynlib: lib, importc: "gtk_clist_get_cell_style".}
-proc set_row_style*(clist: PCList, row: gint, style: PStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_row_style".}
-proc get_row_style*(clist: PCList, row: gint): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_row_style".}
-proc set_shift*(clist: PCList, row: gint, column: gint, vertical: gint, 
-                      horizontal: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_shift".}
-proc set_selectable*(clist: PCList, row: gint, selectable: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_clist_set_selectable".}
-proc get_selectable*(clist: PCList, row: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_selectable".}
-proc remove*(clist: PCList, row: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_remove".}
-proc set_row_data*(clist: PCList, row: gint, data: gpointer){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_row_data".}
-proc set_row_data_full*(clist: PCList, row: gint, data: gpointer, 
-                              destroy: TDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_row_data_full".}
-proc get_row_data*(clist: PCList, row: gint): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_get_row_data".}
-proc find_row_from_data*(clist: PCList, data: gpointer): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_clist_find_row_from_data".}
-proc select_row*(clist: PCList, row: gint, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_select_row".}
-proc unselect_row*(clist: PCList, row: gint, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_unselect_row".}
-proc undo_selection*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_undo_selection".}
-proc clear*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_clear".}
-proc get_selection_info*(clist: PCList, x: gint, y: gint, row: Pgint, 
-                               column: Pgint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_clist_get_selection_info".}
-proc select_all*(clist: PCList){.cdecl, dynlib: lib, 
-                                       importc: "gtk_clist_select_all".}
-proc unselect_all*(clist: PCList){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_unselect_all".}
-proc swap_rows*(clist: PCList, row1: gint, row2: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_swap_rows".}
-proc row_move*(clist: PCList, source_row: gint, dest_row: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_row_move".}
-proc set_compare_func*(clist: PCList, cmp_func: TCListCompareFunc){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_compare_func".}
-proc set_sort_column*(clist: PCList, column: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_clist_set_sort_column".}
-proc set_sort_type*(clist: PCList, sort_type: TSortType){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_sort_type".}
-proc sort*(clist: PCList){.cdecl, dynlib: lib, importc: "gtk_clist_sort".}
-proc set_auto_sort*(clist: PCList, auto_sort: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_clist_set_auto_sort".}
-proc create_cell_layout*(clist: PCList, clist_row: PCListRow, column: gint): pango.PLayout{.
-    cdecl, dynlib: lib, importc: "_gtk_clist_create_cell_layout".}
-const 
-  DIALOG_MODAL* = cint(1 shl 0)
-  DIALOG_DESTROY_WITH_PARENT* = cint(1 shl 1)
-  DIALOG_NO_SEPARATOR* = cint(1 shl 2)
-  RESPONSE_NONE* = - cint(1)
-  RESPONSE_REJECT* = - cint(2)
-  RESPONSE_ACCEPT* = - cint(3)
-  RESPONSE_DELETE_EVENT* = - cint(4)
-  RESPONSE_OK* = - cint(5)
-  RESPONSE_CANCEL* = cint(-6)
-  RESPONSE_CLOSE* = - cint(7)
-  RESPONSE_YES* = - cint(8)
-  RESPONSE_NO* = - cint(9)
-  RESPONSE_APPLY* = - cint(10)
-  RESPONSE_HELP* = - cint(11)
-
-proc TYPE_DIALOG*(): GType
-proc DIALOG*(obj: pointer): PDialog
-proc DIALOG_CLASS*(klass: pointer): PDialogClass
-proc IS_DIALOG*(obj: pointer): bool
-proc IS_DIALOG_CLASS*(klass: pointer): bool
-proc DIALOG_GET_CLASS*(obj: pointer): PDialogClass
-proc dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_dialog_get_type".}
-proc dialog_new*(): PDialog{.cdecl, dynlib: lib, importc: "gtk_dialog_new".}
-proc add_action_widget*(dialog: PDialog, child: PWidget, 
-                               response_id: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_add_action_widget".}
-proc add_button*(dialog: PDialog, button_text: cstring, response_id: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_dialog_add_button".}
-proc set_response_sensitive*(dialog: PDialog, response_id: gint, 
-                                    setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_set_response_sensitive".}
-proc set_default_response*(dialog: PDialog, response_id: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_dialog_set_default_response".}
-proc set_has_separator*(dialog: PDialog, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_dialog_set_has_separator".}
-proc get_has_separator*(dialog: PDialog): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_get_has_separator".}
-proc response*(dialog: PDialog, response_id: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_response".}
-proc run*(dialog: PDialog): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_dialog_run".}
-proc show_about_dialog*(parent: PWindow, firstPropertyName: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_show_about_dialog", varargs.}
-proc TYPE_VBOX*(): GType
-proc VBOX*(obj: pointer): PVBox
-proc VBOX_CLASS*(klass: pointer): PVBoxClass
-proc IS_VBOX*(obj: pointer): bool
-proc IS_VBOX_CLASS*(klass: pointer): bool
-proc VBOX_GET_CLASS*(obj: pointer): PVBoxClass
-proc vbox_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_vbox_get_type".}
-proc vbox_new*(homogeneous: gboolean, spacing: gint): PVBox{.cdecl, dynlib: lib, 
-    importc: "gtk_vbox_new".}
-proc TYPE_COLOR_SELECTION*(): GType
-proc COLOR_SELECTION*(obj: pointer): PColorSelection
-proc COLOR_SELECTION_CLASS*(klass: pointer): PColorSelectionClass
-proc IS_COLOR_SELECTION*(obj: pointer): bool
-proc IS_COLOR_SELECTION_CLASS*(klass: pointer): bool
-proc COLOR_SELECTION_GET_CLASS*(obj: pointer): PColorSelectionClass
-proc color_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_get_type".}
-proc color_selection_new*(): PColorSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_new".}
-proc get_has_opacity_control*(colorsel: PColorSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_has_opacity_control".}
-proc set_has_opacity_control*(colorsel: PColorSelection, 
-    has_opacity: gboolean){.cdecl, dynlib: lib, importc: "gtk_color_selection_set_has_opacity_control".}
-proc get_has_palette*(colorsel: PColorSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_has_palette".}
-proc set_has_palette*(colorsel: PColorSelection, 
-                                      has_palette: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_set_has_palette".}
-proc set_current_color*(colorsel: PColorSelection, 
-                                        color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_current_color".}
-proc set_current_alpha*(colorsel: PColorSelection, 
-                                        alpha: guint16){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_current_alpha".}
-proc get_current_color*(colorsel: PColorSelection, 
-                                        color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_get_current_color".}
-proc get_current_alpha*(colorsel: PColorSelection): guint16{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_current_alpha".}
-proc set_previous_color*(colorsel: PColorSelection, 
-    color: gdk2.PColor){.cdecl, dynlib: lib, 
-                       importc: "gtk_color_selection_set_previous_color".}
-proc set_previous_alpha*(colorsel: PColorSelection, 
-    alpha: guint16){.cdecl, dynlib: lib, 
-                     importc: "gtk_color_selection_set_previous_alpha".}
-proc get_previous_color*(colorsel: PColorSelection, 
-    color: gdk2.PColor){.cdecl, dynlib: lib, 
-                       importc: "gtk_color_selection_get_previous_color".}
-proc get_previous_alpha*(colorsel: PColorSelection): guint16{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_get_previous_alpha".}
-proc is_adjusting*(colorsel: PColorSelection): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_is_adjusting".}
-proc color_selection_palette_from_string*(str: cstring, colors: var gdk2.PColor, 
-    n_colors: Pgint): gboolean{.cdecl, dynlib: lib, importc: "gtk_color_selection_palette_from_string".}
-proc color_selection_palette_to_string*(colors: gdk2.PColor, n_colors: gint): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_color_selection_palette_to_string".}
-proc color_selection_set_change_palette_with_screen_hook*(
-    func: TColorSelectionChangePaletteWithScreenFunc): TColorSelectionChangePaletteWithScreenFunc{.
-    cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_set_change_palette_with_screen_hook".}
-proc TYPE_COLOR_SELECTION_DIALOG*(): GType
-proc COLOR_SELECTION_DIALOG*(obj: pointer): PColorSelectionDialog
-proc COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): PColorSelectionDialogClass
-proc IS_COLOR_SELECTION_DIALOG*(obj: pointer): bool
-proc IS_COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): bool
-proc COLOR_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PColorSelectionDialogClass
-proc color_selection_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_color_selection_dialog_get_type".}
-proc color_selection_dialog_new*(title: cstring): PColorSelectionDialog{.cdecl, 
-    dynlib: lib, importc: "gtk_color_selection_dialog_new".}
-proc TYPE_HBOX*(): GType
-proc HBOX*(obj: pointer): PHBox
-proc HBOX_CLASS*(klass: pointer): PHBoxClass
-proc IS_HBOX*(obj: pointer): bool
-proc IS_HBOX_CLASS*(klass: pointer): bool
-proc HBOX_GET_CLASS*(obj: pointer): PHBoxClass
-proc hbox_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_hbox_get_type".}
-proc hbox_new*(homogeneous: gboolean, spacing: gint): PHBox{.cdecl, dynlib: lib, 
-    importc: "gtk_hbox_new".}
-const 
-  bm_TGtkCombo_value_in_list* = 0x0001'i16
-  bp_TGtkCombo_value_in_list* = 0'i16
-  bm_TGtkCombo_ok_if_empty* = 0x0002'i16
-  bp_TGtkCombo_ok_if_empty* = 1'i16
-  bm_TGtkCombo_case_sensitive* = 0x0004'i16
-  bp_TGtkCombo_case_sensitive* = 2'i16
-  bm_TGtkCombo_use_arrows* = 0x0008'i16
-  bp_TGtkCombo_use_arrows* = 3'i16
-  bm_TGtkCombo_use_arrows_always* = 0x0010'i16
-  bp_TGtkCombo_use_arrows_always* = 4'i16
-
-proc TYPE_COMBO*(): GType
-proc COMBO*(obj: pointer): PCombo
-proc COMBO_CLASS*(klass: pointer): PComboClass
-proc IS_COMBO*(obj: pointer): bool
-proc IS_COMBO_CLASS*(klass: pointer): bool
-proc COMBO_GET_CLASS*(obj: pointer): PComboClass
-proc value_in_list*(a: PCombo): guint
-proc set_value_in_list*(a: PCombo, `value_in_list`: guint)
-proc ok_if_empty*(a: PCombo): guint
-proc set_ok_if_empty*(a: PCombo, `ok_if_empty`: guint)
-proc case_sensitive*(a: PCombo): guint
-proc set_case_sensitive*(a: PCombo, `case_sensitive`: guint)
-proc use_arrows*(a: PCombo): guint
-proc set_use_arrows*(a: PCombo, `use_arrows`: guint)
-proc use_arrows_always*(a: PCombo): guint
-proc set_use_arrows_always*(a: PCombo, `use_arrows_always`: guint)
-proc combo_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_combo_get_type".}
-proc combo_new*(): PCombo{.cdecl, dynlib: lib, importc: "gtk_combo_new".}
-proc set_value_in_list*(combo: PCombo, val: gboolean, 
-                              ok_if_empty: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_set_value_in_list".}
-proc set_use_arrows*(combo: PCombo, val: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_set_use_arrows".}
-proc set_use_arrows_always*(combo: PCombo, val: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_use_arrows_always".}
-proc set_case_sensitive*(combo: PCombo, val: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_case_sensitive".}
-proc set_item_string*(combo: PCombo, item: PItem, item_value: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_combo_set_item_string".}
-proc set_popdown_strings*(combo: PCombo, strings: PGList){.cdecl, 
-    dynlib: lib, importc: "gtk_combo_set_popdown_strings".}
-proc disable_activate*(combo: PCombo){.cdecl, dynlib: lib, 
-    importc: "gtk_combo_disable_activate".}
-const 
-  bm_TGtkCTree_line_style* = 0x0003'i16
-  bp_TGtkCTree_line_style* = 0'i16
-  bm_TGtkCTree_expander_style* = 0x000C'i16
-  bp_TGtkCTree_expander_style* = 2'i16
-  bm_TGtkCTree_show_stub* = 0x0010'i16
-  bp_TGtkCTree_show_stub* = 4'i16
-  bm_TGtkCTreeRow_is_leaf* = 0x0001'i16
-  bp_TGtkCTreeRow_is_leaf* = 0'i16
-  bm_TGtkCTreeRow_expanded* = 0x0002'i16
-  bp_TGtkCTreeRow_expanded* = 1'i16
-
-proc TYPE_CTREE*(): GType
-proc CTREE*(obj: pointer): PCTree
-proc CTREE_CLASS*(klass: pointer): PCTreeClass
-proc IS_CTREE*(obj: pointer): bool
-proc IS_CTREE_CLASS*(klass: pointer): bool
-proc CTREE_GET_CLASS*(obj: pointer): PCTreeClass
-proc CTREE_ROW*(node: TAddress): PCTreeRow
-proc CTREE_NODE*(node: TAddress): PCTreeNode
-proc CTREE_NODE_NEXT*(nnode: TAddress): PCTreeNode
-proc CTREE_NODE_PREV*(pnode: TAddress): PCTreeNode
-proc CTREE_FUNC*(fun: TAddress): TCTreeFunc
-proc TYPE_CTREE_NODE*(): GType
-proc line_style*(a: PCTree): guint
-proc set_line_style*(a: PCTree, `line_style`: guint)
-proc expander_style*(a: PCTree): guint
-proc set_expander_style*(a: PCTree, `expander_style`: guint)
-proc show_stub*(a: PCTree): guint
-proc set_show_stub*(a: PCTree, `show_stub`: guint)
-proc is_leaf*(a: PCTreeRow): guint
-proc set_is_leaf*(a: PCTreeRow, `is_leaf`: guint)
-proc expanded*(a: PCTreeRow): guint
-proc set_expanded*(a: PCTreeRow, `expanded`: guint)
-proc ctree_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_ctree_get_type".}
-proc ctree_new*(columns: gint, tree_column: gint): PCTree{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_new".}
-proc insert_node*(ctree: PCTree, parent: PCTreeNode, sibling: PCTreeNode, 
-                        text: openarray[cstring], spacing: guint8, 
-                        pixmap_closed: gdk2.PPixmap, mask_closed: gdk2.PBitmap, 
-                        pixmap_opened: gdk2.PPixmap, mask_opened: gdk2.PBitmap, 
-                        is_leaf: gboolean, expanded: gboolean): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_insert_node".}
-proc remove_node*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_remove_node".}
-proc insert_gnode*(ctree: PCTree, parent: PCTreeNode, sibling: PCTreeNode, 
-                         gnode: PGNode, fun: TCTreeGNodeFunc, data: gpointer): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_insert_gnode".}
-proc export_to_gnode*(ctree: PCTree, parent: PGNode, sibling: PGNode, 
-                            node: PCTreeNode, fun: TCTreeGNodeFunc, 
-                            data: gpointer): PGNode{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_export_to_gnode".}
-proc post_recursive*(ctree: PCTree, node: PCTreeNode, fun: TCTreeFunc, 
-                           data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_post_recursive".}
-proc post_recursive_to_depth*(ctree: PCTree, node: PCTreeNode, 
-                                    depth: gint, fun: TCTreeFunc, 
-                                    data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_post_recursive_to_depth".}
-proc pre_recursive*(ctree: PCTree, node: PCTreeNode, fun: TCTreeFunc, 
-                          data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_pre_recursive".}
-proc pre_recursive_to_depth*(ctree: PCTree, node: PCTreeNode, 
-                                   depth: gint, fun: TCTreeFunc, 
-                                   data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_pre_recursive_to_depth".}
-proc is_viewable*(ctree: PCTree, node: PCTreeNode): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_is_viewable".}
-proc last*(ctree: PCTree, node: PCTreeNode): PCTreeNode{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_last".}
-proc find_node_ptr*(ctree: PCTree, ctree_row: PCTreeRow): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_node_ptr".}
-proc node_nth*(ctree: PCTree, row: guint): PCTreeNode{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_nth".}
-proc find*(ctree: PCTree, node: PCTreeNode, child: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find".}
-proc is_ancestor*(ctree: PCTree, node: PCTreeNode, child: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_is_ancestor".}
-proc find_by_row_data*(ctree: PCTree, node: PCTreeNode, data: gpointer): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_by_row_data".}
-proc find_all_by_row_data*(ctree: PCTree, node: PCTreeNode, 
-                                 data: gpointer): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_find_all_by_row_data".}
-proc find_by_row_data_custom*(ctree: PCTree, node: PCTreeNode, 
-                                    data: gpointer, fun: TGCompareFunc): PCTreeNode{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_by_row_data_custom".}
-proc find_all_by_row_data_custom*(ctree: PCTree, node: PCTreeNode, 
-                                        data: gpointer, fun: TGCompareFunc): PGList{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_find_all_by_row_data_custom".}
-proc is_hot_spot*(ctree: PCTree, x: gint, y: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_is_hot_spot".}
-proc move*(ctree: PCTree, node: PCTreeNode, new_parent: PCTreeNode, 
-                 new_sibling: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_move".}
-proc expand*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_expand".}
-proc expand_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_expand_recursive".}
-proc expand_to_depth*(ctree: PCTree, node: PCTreeNode, depth: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_expand_to_depth".}
-proc collapse*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_collapse".}
-proc collapse_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_collapse_recursive".}
-proc collapse_to_depth*(ctree: PCTree, node: PCTreeNode, depth: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_collapse_to_depth".}
-proc toggle_expansion*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_toggle_expansion".}
-proc toggle_expansion_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_toggle_expansion_recursive".}
-proc select*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_select".}
-proc select_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_select_recursive".}
-proc unselect*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_unselect".}
-proc unselect_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_unselect_recursive".}
-proc real_select_recursive*(ctree: PCTree, node: PCTreeNode, state: gint){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_real_select_recursive".}
-proc node_set_text*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                          text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_text".}
-proc node_set_pixmap*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                            pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_set_pixmap".}
-proc node_set_pixtext*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                             text: cstring, spacing: guint8, pixmap: gdk2.PPixmap, 
-                             mask: gdk2.PBitmap){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_pixtext".}
-proc set_node_info*(ctree: PCTree, node: PCTreeNode, text: cstring, 
-                          spacing: guint8, pixmap_closed: gdk2.PPixmap, 
-                          mask_closed: gdk2.PBitmap, pixmap_opened: gdk2.PPixmap, 
-                          mask_opened: gdk2.PBitmap, is_leaf: gboolean, 
-                          expanded: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_node_info".}
-proc node_set_shift*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                           vertical: gint, horizontal: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_set_shift".}
-proc node_set_selectable*(ctree: PCTree, node: PCTreeNode, 
-                                selectable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_selectable".}
-proc node_get_selectable*(ctree: PCTree, node: PCTreeNode): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_selectable".}
-proc node_get_cell_type*(ctree: PCTree, node: PCTreeNode, column: gint): TCellType{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_cell_type".}
-proc node_get_text*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                          text: PPgchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_get_text".}
-proc node_set_row_style*(ctree: PCTree, node: PCTreeNode, style: PStyle){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_style".}
-proc node_get_row_style*(ctree: PCTree, node: PCTreeNode): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_get_row_style".}
-proc node_set_cell_style*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                                style: PStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_cell_style".}
-proc node_get_cell_style*(ctree: PCTree, node: PCTreeNode, column: gint): PStyle{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_cell_style".}
-proc node_set_foreground*(ctree: PCTree, node: PCTreeNode, 
-                                color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_foreground".}
-proc node_set_background*(ctree: PCTree, node: PCTreeNode, 
-                                color: gdk2.PColor){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_node_set_background".}
-proc node_set_row_data*(ctree: PCTree, node: PCTreeNode, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_data".}
-proc node_set_row_data_full*(ctree: PCTree, node: PCTreeNode, 
-                                   data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_set_row_data_full".}
-proc node_get_row_data*(ctree: PCTree, node: PCTreeNode): gpointer{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_get_row_data".}
-proc node_moveto*(ctree: PCTree, node: PCTreeNode, column: gint, 
-                        row_align: gfloat, col_align: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_node_moveto".}
-proc node_is_visible*(ctree: PCTree, node: PCTreeNode): TVisibility{.
-    cdecl, dynlib: lib, importc: "gtk_ctree_node_is_visible".}
-proc set_indent*(ctree: PCTree, indent: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_indent".}
-proc set_spacing*(ctree: PCTree, spacing: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_set_spacing".}
-proc set_show_stub*(ctree: PCTree, show_stub: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_show_stub".}
-proc set_line_style*(ctree: PCTree, line_style: TCTreeLineStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_line_style".}
-proc set_expander_style*(ctree: PCTree, 
-                               expander_style: TCTreeExpanderStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_set_expander_style".}
-proc set_drag_compare_func*(ctree: PCTree, cmp_func: TCTreeCompareDragFunc){.
-    cdecl, dynlib: lib, importc: "gtk_ctree_set_drag_compare_func".}
-proc sort_node*(ctree: PCTree, node: PCTreeNode){.cdecl, dynlib: lib, 
-    importc: "gtk_ctree_sort_node".}
-proc sort_recursive*(ctree: PCTree, node: PCTreeNode){.cdecl, 
-    dynlib: lib, importc: "gtk_ctree_sort_recursive".}
-proc ctree_set_reorderable*(t: pointer, r: bool)
-proc ctree_node_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_ctree_node_get_type".}
-proc TYPE_DRAWING_AREA*(): GType
-proc DRAWING_AREA*(obj: pointer): PDrawingArea
-proc DRAWING_AREA_CLASS*(klass: pointer): PDrawingAreaClass
-proc IS_DRAWING_AREA*(obj: pointer): bool
-proc IS_DRAWING_AREA_CLASS*(klass: pointer): bool
-proc DRAWING_AREA_GET_CLASS*(obj: pointer): PDrawingAreaClass
-proc drawing_area_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_drawing_area_get_type".}
-proc drawing_area_new*(): PDrawingArea{.cdecl, dynlib: lib, 
-                                        importc: "gtk_drawing_area_new".}
-proc TYPE_CURVE*(): GType
-proc CURVE*(obj: pointer): PCurve
-proc CURVE_CLASS*(klass: pointer): PCurveClass
-proc IS_CURVE*(obj: pointer): bool
-proc IS_CURVE_CLASS*(klass: pointer): bool
-proc CURVE_GET_CLASS*(obj: pointer): PCurveClass
-proc curve_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_curve_get_type".}
-proc curve_new*(): PCurve{.cdecl, dynlib: lib, importc: "gtk_curve_new".}
-proc reset*(curve: PCurve){.cdecl, dynlib: lib, importc: "gtk_curve_reset".}
-proc set_gamma*(curve: PCurve, gamma: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_curve_set_gamma".}
-proc set_range*(curve: PCurve, min_x: gfloat, max_x: gfloat, 
-                      min_y: gfloat, max_y: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_curve_set_range".}
-proc set_curve_type*(curve: PCurve, thetype: TCurveType){.cdecl, 
-    dynlib: lib, importc: "gtk_curve_set_curve_type".}
-const 
-  DEST_DEFAULT_MOTION* = 1 shl 0
-  DEST_DEFAULT_HIGHLIGHT* = 1 shl 1
-  DEST_DEFAULT_DROP* = 1 shl 2
-  DEST_DEFAULT_ALL* = 0x00000007
-  TARGET_SAME_APP* = 1 shl 0
-  TARGET_SAME_WIDGET* = 1 shl 1
-
-proc drag_get_data*(widget: PWidget, context: gdk2.PDragContext, target: gdk2.TAtom, 
-                    time: guint32){.cdecl, dynlib: lib, 
-                                    importc: "gtk_drag_get_data".}
-proc drag_finish*(context: gdk2.PDragContext, success: gboolean, del: gboolean, 
-                  time: guint32){.cdecl, dynlib: lib, importc: "gtk_drag_finish".}
-proc drag_get_source_widget*(context: gdk2.PDragContext): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_get_source_widget".}
-proc drag_highlight*(widget: PWidget){.cdecl, dynlib: lib, 
-                                       importc: "gtk_drag_highlight".}
-proc drag_unhighlight*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_unhighlight".}
-proc drag_dest_set*(widget: PWidget, flags: TDestDefaults, 
-                    targets: PTargetEntry, n_targets: gint, 
-                    actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_dest_set".}
-proc drag_dest_set_proxy*(widget: PWidget, proxy_window: gdk2.PWindow, 
-                          protocol: gdk2.TDragProtocol, use_coordinates: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_drag_dest_set_proxy".}
-proc drag_dest_unset*(widget: PWidget){.cdecl, dynlib: lib, 
-                                        importc: "gtk_drag_dest_unset".}
-proc drag_dest_find_target*(widget: PWidget, context: gdk2.PDragContext, 
-                            target_list: PTargetList): gdk2.TAtom{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_dest_find_target".}
-proc drag_dest_get_target_list*(widget: PWidget): PTargetList{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_dest_get_target_list".}
-proc drag_dest_set_target_list*(widget: PWidget, target_list: PTargetList){.
-    cdecl, dynlib: lib, importc: "gtk_drag_dest_set_target_list".}
-proc drag_source_set*(widget: PWidget, start_button_mask: gdk2.TModifierType, 
-                      targets: PTargetEntry, n_targets: gint, 
-                      actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_source_set".}
-proc drag_source_unset*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_source_unset".}
-proc drag_source_set_icon*(widget: PWidget, colormap: gdk2.PColormap, 
-                           pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon".}
-proc drag_source_set_icon_pixbuf*(widget: PWidget, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon_pixbuf".}
-proc drag_source_set_icon_stock*(widget: PWidget, stock_id: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_drag_source_set_icon_stock".}
-proc drag_begin*(widget: PWidget, targets: PTargetList, actions: gdk2.TDragAction, 
-                 button: gint, event: gdk2.PEvent): gdk2.PDragContext{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_begin".}
-proc drag_set_icon_widget*(context: gdk2.PDragContext, widget: PWidget, 
-                           hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_widget".}
-proc drag_set_icon_pixmap*(context: gdk2.PDragContext, colormap: gdk2.PColormap, 
-                           pixmap: gdk2.PPixmap, mask: gdk2.PBitmap, hot_x: gint, 
-                           hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_pixmap".}
-proc drag_set_icon_pixbuf*(context: gdk2.PDragContext, pixbuf: gdk2pixbuf.PPixbuf, 
-                           hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_pixbuf".}
-proc drag_set_icon_stock*(context: gdk2.PDragContext, stock_id: cstring, 
-                          hot_x: gint, hot_y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_stock".}
-proc drag_set_icon_default*(context: gdk2.PDragContext){.cdecl, dynlib: lib, 
-    importc: "gtk_drag_set_icon_default".}
-proc drag_check_threshold*(widget: PWidget, start_x: gint, start_y: gint, 
-                           current_x: gint, current_y: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_drag_check_threshold".}
-proc drag_source_handle_event*(widget: PWidget, event: gdk2.PEvent){.cdecl, 
-    dynlib: lib, importc: "_gtk_drag_source_handle_event".}
-proc drag_dest_handle_event*(toplevel: PWidget, event: gdk2.PEvent){.cdecl, 
-    dynlib: lib, importc: "_gtk_drag_dest_handle_event".}
-proc TYPE_EDITABLE*(): GType
-proc EDITABLE*(obj: pointer): PEditable
-proc EDITABLE_CLASS*(vtable: pointer): PEditableClass
-proc IS_EDITABLE*(obj: pointer): bool
-proc IS_EDITABLE_CLASS*(vtable: pointer): bool
-proc EDITABLE_GET_CLASS*(inst: pointer): PEditableClass
-proc editable_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_editable_get_type".}
-proc select_region*(editable: PEditable, start: gint, theEnd: gint){.
-    cdecl, dynlib: lib, importc: "gtk_editable_select_region".}
-proc get_selection_bounds*(editable: PEditable, start: Pgint, 
-                                    theEnd: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_editable_get_selection_bounds".}
-proc insert_text*(editable: PEditable, new_text: cstring, 
-                           new_text_length: gint, position: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_insert_text".}
-proc delete_text*(editable: PEditable, start_pos: gint, end_pos: gint){.
-    cdecl, dynlib: lib, importc: "gtk_editable_delete_text".}
-proc get_chars*(editable: PEditable, start_pos: gint, end_pos: gint): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_editable_get_chars".}
-proc cut_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_cut_clipboard".}
-proc copy_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_copy_clipboard".}
-proc paste_clipboard*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_paste_clipboard".}
-proc delete_selection*(editable: PEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_editable_delete_selection".}
-proc set_position*(editable: PEditable, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_set_position".}
-proc get_position*(editable: PEditable): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_editable_get_position".}
-proc set_editable*(editable: PEditable, is_editable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_editable_set_editable".}
-proc get_editable*(editable: PEditable): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_editable_get_editable".}
-proc TYPE_IM_CONTEXT*(): GType
-proc IM_CONTEXT*(obj: pointer): PIMContext
-proc IM_CONTEXT_CLASS*(klass: pointer): PIMContextClass
-proc IS_IM_CONTEXT*(obj: pointer): bool
-proc IS_IM_CONTEXT_CLASS*(klass: pointer): bool
-proc IM_CONTEXT_GET_CLASS*(obj: pointer): PIMContextClass
-proc im_context_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_im_context_get_type".}
-proc set_client_window*(context: PIMContext, window: gdk2.PWindow){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_client_window".}
-proc filter_keypress*(context: PIMContext, event: gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_im_context_filter_keypress".}
-proc focus_in*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_focus_in".}
-proc focus_out*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_focus_out".}
-proc reset*(context: PIMContext){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_reset".}
-proc set_cursor_location*(context: PIMContext, area: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_cursor_location".}
-proc set_use_preedit*(context: PIMContext, use_preedit: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_im_context_set_use_preedit".}
-proc set_surrounding*(context: PIMContext, text: cstring, len: gint, 
-                                 cursor_index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_set_surrounding".}
-proc get_surrounding*(context: PIMContext, text: PPgchar, 
-                                 cursor_index: Pgint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_im_context_get_surrounding".}
-proc delete_surrounding*(context: PIMContext, offset: gint, 
-                                    n_chars: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_im_context_delete_surrounding".}
-const 
-  bm_TGtkMenuShell_active* = 0x0001'i16
-  bp_TGtkMenuShell_active* = 0'i16
-  bm_TGtkMenuShell_have_grab* = 0x0002'i16
-  bp_TGtkMenuShell_have_grab* = 1'i16
-  bm_TGtkMenuShell_have_xgrab* = 0x0004'i16
-  bp_TGtkMenuShell_have_xgrab* = 2'i16
-  bm_TGtkMenuShell_ignore_leave* = 0x0008'i16
-  bp_TGtkMenuShell_ignore_leave* = 3'i16
-  bm_TGtkMenuShell_menu_flag* = 0x0010'i16
-  bp_TGtkMenuShell_menu_flag* = 4'i16
-  bm_TGtkMenuShell_ignore_enter* = 0x0020'i16
-  bp_TGtkMenuShell_ignore_enter* = 5'i16
-  bm_TGtkMenuShellClass_submenu_placement* = 0x0001'i16
-  bp_TGtkMenuShellClass_submenu_placement* = 0'i16
-
-proc TYPE_MENU_SHELL*(): GType
-proc MENU_SHELL*(obj: pointer): PMenuShell
-proc MENU_SHELL_CLASS*(klass: pointer): PMenuShellClass
-proc IS_MENU_SHELL*(obj: pointer): bool
-proc IS_MENU_SHELL_CLASS*(klass: pointer): bool
-proc MENU_SHELL_GET_CLASS*(obj: pointer): PMenuShellClass
-proc active*(a: PMenuShell): guint
-proc set_active*(a: PMenuShell, `active`: guint)
-proc have_grab*(a: PMenuShell): guint
-proc set_have_grab*(a: PMenuShell, `have_grab`: guint)
-proc have_xgrab*(a: PMenuShell): guint
-proc set_have_xgrab*(a: PMenuShell, `have_xgrab`: guint)
-proc ignore_leave*(a: PMenuShell): guint
-proc set_ignore_leave*(a: PMenuShell, `ignore_leave`: guint)
-proc menu_flag*(a: PMenuShell): guint
-proc set_menu_flag*(a: PMenuShell, `menu_flag`: guint)
-proc ignore_enter*(a: PMenuShell): guint
-proc set_ignore_enter*(a: PMenuShell, `ignore_enter`: guint)
-proc submenu_placement*(a: PMenuShellClass): guint
-proc set_submenu_placement*(a: PMenuShellClass, `submenu_placement`: guint)
-proc menu_shell_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_menu_shell_get_type".}
-proc append*(menu_shell: PMenuShell, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_append".}
-proc prepend*(menu_shell: PMenuShell, child: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_prepend".}
-proc insert*(menu_shell: PMenuShell, child: PWidget, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_menu_shell_insert".}
-proc deactivate*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_deactivate".}
-proc select_item*(menu_shell: PMenuShell, menu_item: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_shell_select_item".}
-proc deselect*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_deselect".}
-proc activate_item*(menu_shell: PMenuShell, menu_item: PWidget, 
-                               force_deactivate: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_shell_activate_item".}
-proc select_first*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_shell_select_first".}
-proc activate*(menu_shell: PMenuShell){.cdecl, dynlib: lib, 
-    importc: "_gtk_menu_shell_activate".}
-const 
-  bm_TGtkMenu_needs_destruction_ref_count* = 0x0001'i16
-  bp_TGtkMenu_needs_destruction_ref_count* = 0'i16
-  bm_TGtkMenu_torn_off* = 0x0002'i16
-  bp_TGtkMenu_torn_off* = 1'i16
-  bm_TGtkMenu_tearoff_active* = 0x0004'i16
-  bp_TGtkMenu_tearoff_active* = 2'i16
-  bm_TGtkMenu_scroll_fast* = 0x0008'i16
-  bp_TGtkMenu_scroll_fast* = 3'i16
-  bm_TGtkMenu_upper_arrow_visible* = 0x0010'i16
-  bp_TGtkMenu_upper_arrow_visible* = 4'i16
-  bm_TGtkMenu_lower_arrow_visible* = 0x0020'i16
-  bp_TGtkMenu_lower_arrow_visible* = 5'i16
-  bm_TGtkMenu_upper_arrow_prelight* = 0x0040'i16
-  bp_TGtkMenu_upper_arrow_prelight* = 6'i16
-  bm_TGtkMenu_lower_arrow_prelight* = 0x0080'i16
-  bp_TGtkMenu_lower_arrow_prelight* = 7'i16
-
-proc TYPE_MENU*(): GType
-proc MENU*(obj: pointer): PMenu
-proc MENU_CLASS*(klass: pointer): PMenuClass
-proc IS_MENU*(obj: pointer): bool
-proc IS_MENU_CLASS*(klass: pointer): bool
-proc MENU_GET_CLASS*(obj: pointer): PMenuClass
-proc needs_destruction_ref_count*(a: PMenu): guint
-proc set_needs_destruction_ref_count*(a: PMenu, 
-                                      `needs_destruction_ref_count`: guint)
-proc torn_off*(a: PMenu): guint
-proc set_torn_off*(a: PMenu, `torn_off`: guint)
-proc tearoff_active*(a: PMenu): guint
-proc set_tearoff_active*(a: PMenu, `tearoff_active`: guint)
-proc scroll_fast*(a: PMenu): guint
-proc set_scroll_fast*(a: PMenu, `scroll_fast`: guint)
-proc upper_arrow_visible*(a: PMenu): guint
-proc set_upper_arrow_visible*(a: PMenu, `upper_arrow_visible`: guint)
-proc lower_arrow_visible*(a: PMenu): guint
-proc set_lower_arrow_visible*(a: PMenu, `lower_arrow_visible`: guint)
-proc upper_arrow_prelight*(a: PMenu): guint
-proc set_upper_arrow_prelight*(a: PMenu, `upper_arrow_prelight`: guint)
-proc lower_arrow_prelight*(a: PMenu): guint
-proc set_lower_arrow_prelight*(a: PMenu, `lower_arrow_prelight`: guint)
-proc menu_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_menu_get_type".}
-proc menu_new*(): PMenu{.cdecl, dynlib: lib, importc: "gtk_menu_new".}
-proc popup*(menu: PMenu, parent_menu_shell: PWidget, 
-                 parent_menu_item: PWidget, fun: TMenuPositionFunc, 
-                 data: gpointer, button: guint, activate_time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_popup".}
-proc reposition*(menu: PMenu){.cdecl, dynlib: lib, 
-                                    importc: "gtk_menu_reposition".}
-proc popdown*(menu: PMenu){.cdecl, dynlib: lib, importc: "gtk_menu_popdown".}
-proc get_active*(menu: PMenu): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_active".}
-proc set_active*(menu: PMenu, index: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_active".}
-proc set_accel_group*(menu: PMenu, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_set_accel_group".}
-proc get_accel_group*(menu: PMenu): PAccelGroup{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_accel_group".}
-proc set_accel_path*(menu: PMenu, accel_path: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_accel_path".}
-proc attach_to_widget*(menu: PMenu, attach_widget: PWidget, 
-                            detacher: TMenuDetachFunc){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_attach_to_widget".}
-proc detach*(menu: PMenu){.cdecl, dynlib: lib, importc: "gtk_menu_detach".}
-proc get_attach_widget*(menu: PMenu): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_attach_widget".}
-proc set_tearoff_state*(menu: PMenu, torn_off: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_set_tearoff_state".}
-proc get_tearoff_state*(menu: PMenu): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_tearoff_state".}
-proc set_title*(menu: PMenu, title: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_title".}
-proc get_title*(menu: PMenu): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_menu_get_title".}
-proc reorder_child*(menu: PMenu, child: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_menu_reorder_child".}
-proc set_screen*(menu: PMenu, screen: gdk2.PScreen){.cdecl, dynlib: lib, 
-    importc: "gtk_menu_set_screen".}
-const 
-  bm_TGtkEntry_editable* = 0x0001'i16
-  bp_TGtkEntry_editable* = 0'i16
-  bm_TGtkEntry_visible* = 0x0002'i16
-  bp_TGtkEntry_visible* = 1'i16
-  bm_TGtkEntry_overwrite_mode* = 0x0004'i16
-  bp_TGtkEntry_overwrite_mode* = 2'i16
-  bm_TGtkEntry_in_drag* = 0x0008'i16
-  bp_TGtkEntry_in_drag* = 3'i16
-  bm_TGtkEntry_cache_includes_preedit* = 0x0001'i16
-  bp_TGtkEntry_cache_includes_preedit* = 0'i16
-  bm_TGtkEntry_need_im_reset* = 0x0002'i16
-  bp_TGtkEntry_need_im_reset* = 1'i16
-  bm_TGtkEntry_has_frame* = 0x0004'i16
-  bp_TGtkEntry_has_frame* = 2'i16
-  bm_TGtkEntry_activates_default* = 0x0008'i16
-  bp_TGtkEntry_activates_default* = 3'i16
-  bm_TGtkEntry_cursor_visible* = 0x0010'i16
-  bp_TGtkEntry_cursor_visible* = 4'i16
-  bm_TGtkEntry_in_click* = 0x0020'i16
-  bp_TGtkEntry_in_click* = 5'i16
-  bm_TGtkEntry_is_cell_renderer* = 0x0040'i16
-  bp_TGtkEntry_is_cell_renderer* = 6'i16
-  bm_TGtkEntry_editing_canceled* = 0x0080'i16
-  bp_TGtkEntry_editing_canceled* = 7'i16
-  bm_TGtkEntry_mouse_cursor_obscured* = 0x0100'i16
-  bp_TGtkEntry_mouse_cursor_obscured* = 8'i16
-
-proc TYPE_ENTRY*(): GType
-proc ENTRY*(obj: pointer): PEntry
-proc ENTRY_CLASS*(klass: pointer): PEntryClass
-proc IS_ENTRY*(obj: pointer): bool
-proc IS_ENTRY_CLASS*(klass: pointer): bool
-proc ENTRY_GET_CLASS*(obj: pointer): PEntryClass
-proc editable*(a: PEntry): guint
-proc set_editable*(a: PEntry, `editable`: guint)
-proc visible*(a: PEntry): guint
-proc set_visible*(a: PEntry, `visible`: guint)
-proc overwrite_mode*(a: PEntry): guint
-proc set_overwrite_mode*(a: PEntry, `overwrite_mode`: guint)
-proc in_drag*(a: PEntry): guint
-proc set_in_drag*(a: PEntry, `in_drag`: guint)
-proc cache_includes_preedit*(a: PEntry): guint
-proc set_cache_includes_preedit*(a: PEntry, `cache_includes_preedit`: guint)
-proc need_im_reset*(a: PEntry): guint
-proc set_need_im_reset*(a: PEntry, `need_im_reset`: guint)
-proc has_frame*(a: PEntry): guint
-proc set_has_frame*(a: PEntry, `has_frame`: guint)
-proc activates_default*(a: PEntry): guint
-proc set_activates_default*(a: PEntry, `activates_default`: guint)
-proc cursor_visible*(a: PEntry): guint
-proc set_cursor_visible*(a: PEntry, `cursor_visible`: guint)
-proc in_click*(a: PEntry): guint
-proc set_in_click*(a: PEntry, `in_click`: guint)
-proc is_cell_renderer*(a: PEntry): guint
-proc set_is_cell_renderer*(a: PEntry, `is_cell_renderer`: guint)
-proc editing_canceled*(a: PEntry): guint
-proc set_editing_canceled*(a: PEntry, `editing_canceled`: guint)
-proc mouse_cursor_obscured*(a: PEntry): guint
-proc set_mouse_cursor_obscured*(a: PEntry, `mouse_cursor_obscured`: guint)
-proc entry_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_entry_get_type".}
-proc entry_new*(): PEntry{.cdecl, dynlib: lib, importc: "gtk_entry_new".}
-proc set_visibility*(entry: PEntry, visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_set_visibility".}
-proc get_visibility*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_visibility".}
-proc set_invisible_char*(entry: PEntry, ch: gunichar){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_invisible_char".}
-proc get_invisible_char*(entry: PEntry): gunichar{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_invisible_char".}
-proc set_has_frame*(entry: PEntry, setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_has_frame".}
-proc get_has_frame*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_has_frame".}
-proc set_max_length*(entry: PEntry, max: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_max_length".}
-proc get_max_length*(entry: PEntry): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_max_length".}
-proc set_activates_default*(entry: PEntry, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_set_activates_default".}
-proc get_activates_default*(entry: PEntry): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_activates_default".}
-proc set_width_chars*(entry: PEntry, n_chars: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_width_chars".}
-proc get_width_chars*(entry: PEntry): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_width_chars".}
-proc set_text*(entry: PEntry, text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_entry_set_text".}
-proc get_text*(entry: PEntry): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_text".}
-proc get_layout*(entry: PEntry): pango.PLayout{.cdecl, dynlib: lib, 
-    importc: "gtk_entry_get_layout".}
-proc get_layout_offsets*(entry: PEntry, x: Pgint, y: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_entry_get_layout_offsets".}
-const 
-  ANCHOR_CENTER* = 0
-  ANCHOR_NORTH* = 1
-  ANCHOR_NORTH_WEST* = 2
-  ANCHOR_NORTH_EAST* = 3
-  ANCHOR_SOUTH* = 4
-  ANCHOR_SOUTH_WEST* = 5
-  ANCHOR_SOUTH_EAST* = 6
-  ANCHOR_WEST* = 7
-  ANCHOR_EAST* = 8
-  ANCHOR_N* = ANCHOR_NORTH
-  ANCHOR_NW* = ANCHOR_NORTH_WEST
-  ANCHOR_NE* = ANCHOR_NORTH_EAST
-  ANCHOR_S* = ANCHOR_SOUTH
-  ANCHOR_SW* = ANCHOR_SOUTH_WEST
-  ANCHOR_SE* = ANCHOR_SOUTH_EAST
-  ANCHOR_W* = ANCHOR_WEST
-  ANCHOR_E* = ANCHOR_EAST
-  ARROW_UP* = 0
-  ARROW_DOWN* = 1
-  ARROW_LEFT* = 2
-  ARROW_RIGHT* = 3
-  constEXPAND* = 1 shl 0
-  constSHRINK* = 1 shl 1
-  constFILL* = 1 shl 2
-  BUTTONBOX_DEFAULT_STYLE* = 0
-  BUTTONBOX_SPREAD* = 1
-  BUTTONBOX_EDGE* = 2
-  BUTTONBOX_START* = 3
-  BUTTONBOX_END* = 4
-  CURVE_TYPE_LINEAR* = 0
-  CURVE_TYPE_SPLINE* = 1
-  CURVE_TYPE_FREE* = 2
-  DELETE_CHARS* = 0
-  DELETE_WORD_ENDS* = 1
-  DELETE_WORDS* = 2
-  DELETE_DISPLAY_LINES* = 3
-  DELETE_DISPLAY_LINE_ENDS* = 4
-  DELETE_PARAGRAPH_ENDS* = 5
-  DELETE_PARAGRAPHS* = 6
-  DELETE_WHITESPACE* = 7
-  DIR_TAB_FORWARD* = 0
-  DIR_TAB_BACKWARD* = 1
-  DIR_UP* = 2
-  DIR_DOWN* = 3
-  DIR_LEFT* = 4
-  DIR_RIGHT* = 5
-  EXPANDER_COLLAPSED* = 0
-  EXPANDER_SEMI_COLLAPSED* = 1
-  EXPANDER_SEMI_EXPANDED* = 2
-  EXPANDER_EXPANDED* = 3
-  ICON_SIZE_INVALID* = 0
-  ICON_SIZE_MENU* = 1
-  ICON_SIZE_SMALL_TOOLBAR* = 2
-  ICON_SIZE_LARGE_TOOLBAR* = 3
-  ICON_SIZE_BUTTON* = 4
-  ICON_SIZE_DND* = 5
-  ICON_SIZE_DIALOG* = 6
-  TEXT_DIR_NONE* = 0
-  TEXT_DIR_LTR* = 1
-  TEXT_DIR_RTL* = 2
-  JUSTIFY_LEFT* = 0
-  JUSTIFY_RIGHT* = 1
-  JUSTIFY_CENTER* = 2
-  JUSTIFY_FILL* = 3
-  MENU_DIR_PARENT* = 0
-  MENU_DIR_CHILD* = 1
-  MENU_DIR_NEXT* = 2
-  MENU_DIR_PREV* = 3
-  PIXELS* = 0
-  INCHES* = 1
-  CENTIMETERS* = 2
-  MOVEMENT_LOGICAL_POSITIONS* = 0
-  MOVEMENT_VISUAL_POSITIONS* = 1
-  MOVEMENT_WORDS* = 2
-  MOVEMENT_DISPLAY_LINES* = 3
-  MOVEMENT_DISPLAY_LINE_ENDS* = 4
-  MOVEMENT_PARAGRAPHS* = 5
-  MOVEMENT_PARAGRAPH_ENDS* = 6
-  MOVEMENT_PAGES* = 7
-  MOVEMENT_BUFFER_ENDS* = 8
-  ORIENTATION_HORIZONTAL* = 0
-  ORIENTATION_VERTICAL* = 1
-  CORNER_TOP_LEFT* = 0
-  CORNER_BOTTOM_LEFT* = 1
-  CORNER_TOP_RIGHT* = 2
-  CORNER_BOTTOM_RIGHT* = 3
-  constPACK_START* = 0
-  constPACK_END* = 1
-  PATH_PRIO_LOWEST* = 0
-  PATH_PRIO_GTK* = 4
-  PATH_PRIO_APPLICATION* = 8
-  PATH_PRIO_THEME* = 10
-  PATH_PRIO_RC* = 12
-  PATH_PRIO_HIGHEST* = 15
-  PATH_WIDGET* = 0
-  PATH_WIDGET_CLASS* = 1
-  PATH_CLASS* = 2
-  POLICY_ALWAYS* = 0
-  POLICY_AUTOMATIC* = 1
-  POLICY_NEVER* = 2
-  POS_LEFT* = 0
-  POS_RIGHT* = 1
-  POS_TOP* = 2
-  POS_BOTTOM* = 3
-  PREVIEW_COLOR* = 0
-  PREVIEW_GRAYSCALE* = 1
-  RELIEF_NORMAL* = 0
-  RELIEF_HALF* = 1
-  RELIEF_NONE* = 2
-  RESIZE_PARENT* = 0
-  RESIZE_QUEUE* = 1
-  RESIZE_IMMEDIATE* = 2
-  SCROLL_NONE* = 0
-  SCROLL_JUMP* = 1
-  SCROLL_STEP_BACKWARD* = 2
-  SCROLL_STEP_FORWARD* = 3
-  SCROLL_PAGE_BACKWARD* = 4
-  SCROLL_PAGE_FORWARD* = 5
-  SCROLL_STEP_UP* = 6
-  SCROLL_STEP_DOWN* = 7
-  SCROLL_PAGE_UP* = 8
-  SCROLL_PAGE_DOWN* = 9
-  SCROLL_STEP_LEFT* = 10
-  SCROLL_STEP_RIGHT* = 11
-  SCROLL_PAGE_LEFT* = 12
-  SCROLL_PAGE_RIGHT* = 13
-  SCROLL_START* = 14
-  SCROLL_END* = 15
-  SELECTION_NONE* = 0
-  SELECTION_SINGLE* = 1
-  SELECTION_BROWSE* = 2
-  SELECTION_MULTIPLE* = 3
-  SELECTION_EXTENDED* = SELECTION_MULTIPLE
-  SHADOW_NONE* = 0
-  SHADOW_IN* = 1
-  SHADOW_OUT* = 2
-  SHADOW_ETCHED_IN* = 3
-  SHADOW_ETCHED_OUT* = 4
-  STATE_NORMAL* = 0
-  STATE_ACTIVE* = 1
-  STATE_PRELIGHT* = 2
-  STATE_SELECTED* = 3
-  STATE_INSENSITIVE* = 4
-  DIRECTION_LEFT* = 0
-  DIRECTION_RIGHT* = 1
-  TOP_BOTTOM* = 0
-  LEFT_RIGHT* = 1
-  TOOLBAR_ICONS* = 0
-  TOOLBAR_TEXT* = 1
-  TOOLBAR_BOTH* = 2
-  TOOLBAR_BOTH_HORIZ* = 3
-  UPDATE_CONTINUOUS* = 0
-  UPDATE_DISCONTINUOUS* = 1
-  UPDATE_DELAYED* = 2
-  VISIBILITY_NONE* = 0
-  VISIBILITY_PARTIAL* = 1
-  VISIBILITY_FULL* = 2
-  WIN_POS_NONE* = 0
-  WIN_POS_CENTER* = 1
-  WIN_POS_MOUSE* = 2
-  WIN_POS_CENTER_ALWAYS* = 3
-  WIN_POS_CENTER_ON_PARENT* = 4
-  WINDOW_TOPLEVEL* = 0
-  WINDOW_POPUP* = 1
-  WRAP_NONE* = 0
-  WRAP_CHAR* = 1
-  WRAP_WORD* = 2
-  SORT_ASCENDING* = 0
-  SORT_DESCENDING* = 1
-
-proc TYPE_EVENT_BOX*(): GType
-proc EVENT_BOX*(obj: pointer): PEventBox
-proc EVENT_BOX_CLASS*(klass: pointer): PEventBoxClass
-proc IS_EVENT_BOX*(obj: pointer): bool
-proc IS_EVENT_BOX_CLASS*(klass: pointer): bool
-proc EVENT_BOX_GET_CLASS*(obj: pointer): PEventBoxClass
-proc event_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_event_box_get_type".}
-proc event_box_new*(): PEventBox{.cdecl, dynlib: lib, 
-                                  importc: "gtk_event_box_new".}
-const 
-  FNM_PATHNAME* = 1 shl 0
-  FNM_NOESCAPE* = 1 shl 1
-  FNM_PERIOD* = 1 shl 2
-
-const 
-  FNM_FILE_NAME* = FNM_PATHNAME
-  FNM_LEADING_DIR* = 1 shl 3
-  FNM_CASEFOLD* = 1 shl 4
-
-const 
-  FNM_NOMATCH* = 1
-
-proc fnmatch*(`pattern`: char, `string`: char, `flags`: gint): gint{.cdecl, 
-    dynlib: lib, importc: "fnmatch".}
-proc TYPE_FILE_SELECTION*(): GType
-proc FILE_SELECTION*(obj: pointer): PFileSelection
-proc FILE_SELECTION_CLASS*(klass: pointer): PFileSelectionClass
-proc IS_FILE_SELECTION*(obj: pointer): bool
-proc IS_FILE_SELECTION_CLASS*(klass: pointer): bool
-proc FILE_SELECTION_GET_CLASS*(obj: pointer): PFileSelectionClass
-proc file_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_file_selection_get_type".}
-proc file_selection_new*(title: cstring): PFileSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_file_selection_new".}
-proc set_filename*(filesel: PFileSelection, filename: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_selection_set_filename".}
-proc get_filename*(filesel: PFileSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_get_filename".}
-proc complete*(filesel: PFileSelection, pattern: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_complete".}
-proc show_fileop_buttons*(filesel: PFileSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_show_fileop_buttons".}
-proc hide_fileop_buttons*(filesel: PFileSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_hide_fileop_buttons".}
-proc get_selections*(filesel: PFileSelection): PPgchar{.cdecl, 
-    dynlib: lib, importc: "gtk_file_selection_get_selections".}
-proc set_select_multiple*(filesel: PFileSelection, 
-    select_multiple: gboolean){.cdecl, dynlib: lib, importc: "gtk_file_selection_set_select_multiple".}
-proc get_select_multiple*(filesel: PFileSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_selection_get_select_multiple".}
-proc TYPE_FIXED*(): GType
-proc FIXED*(obj: pointer): PFixed
-proc FIXED_CLASS*(klass: pointer): PFixedClass
-proc IS_FIXED*(obj: pointer): bool
-proc IS_FIXED_CLASS*(klass: pointer): bool
-proc FIXED_GET_CLASS*(obj: pointer): PFixedClass
-proc fixed_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_fixed_get_type".}
-proc fixed_new*(): PFixed{.cdecl, dynlib: lib, importc: "gtk_fixed_new".}
-proc put*(fixed: PFixed, widget: PWidget, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_put".}
-proc move*(fixed: PFixed, widget: PWidget, x: gint, y: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_move".}
-proc set_has_window*(fixed: PFixed, has_window: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_fixed_set_has_window".}
-proc get_has_window*(fixed: PFixed): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_fixed_get_has_window".}
-proc TYPE_FONT_SELECTION*(): GType
-proc FONT_SELECTION*(obj: pointer): PFontSelection
-proc FONT_SELECTION_CLASS*(klass: pointer): PFontSelectionClass
-proc IS_FONT_SELECTION*(obj: pointer): bool
-proc IS_FONT_SELECTION_CLASS*(klass: pointer): bool
-proc FONT_SELECTION_GET_CLASS*(obj: pointer): PFontSelectionClass
-proc TYPE_FONT_SELECTION_DIALOG*(): GType
-proc FONT_SELECTION_DIALOG*(obj: pointer): PFontSelectionDialog
-proc FONT_SELECTION_DIALOG_CLASS*(klass: pointer): PFontSelectionDialogClass
-proc IS_FONT_SELECTION_DIALOG*(obj: pointer): bool
-proc IS_FONT_SELECTION_DIALOG_CLASS*(klass: pointer): bool
-proc FONT_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PFontSelectionDialogClass
-proc font_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_font_selection_get_type".}
-proc font_selection_new*(): PFontSelection{.cdecl, dynlib: lib, 
-    importc: "gtk_font_selection_new".}
-proc get_font_name*(fontsel: PFontSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_get_font_name".}
-proc set_font_name*(fontsel: PFontSelection, fontname: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_set_font_name".}
-proc get_preview_text*(fontsel: PFontSelection): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_get_preview_text".}
-proc set_preview_text*(fontsel: PFontSelection, text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_set_preview_text".}
-proc font_selection_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_font_selection_dialog_get_type".}
-proc font_selection_dialog_new*(title: cstring): PFontSelectionDialog{.cdecl, 
-    dynlib: lib, importc: "gtk_font_selection_dialog_new".}
-proc dialog_get_font_name*(fsd: PFontSelectionDialog): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_get_font_name".}
-proc dialog_set_font_name*(fsd: PFontSelectionDialog, 
-    fontname: cstring): gboolean{.cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_set_font_name".}
-proc dialog_get_preview_text*(fsd: PFontSelectionDialog): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_font_selection_dialog_get_preview_text".}
-proc dialog_set_preview_text*(fsd: PFontSelectionDialog, 
-    text: cstring){.cdecl, dynlib: lib, 
-                    importc: "gtk_font_selection_dialog_set_preview_text".}
-proc TYPE_GAMMA_CURVE*(): GType
-proc GAMMA_CURVE*(obj: pointer): PGammaCurve
-proc GAMMA_CURVE_CLASS*(klass: pointer): PGammaCurveClass
-proc IS_GAMMA_CURVE*(obj: pointer): bool
-proc IS_GAMMA_CURVE_CLASS*(klass: pointer): bool
-proc GAMMA_CURVE_GET_CLASS*(obj: pointer): PGammaCurveClass
-proc gamma_curve_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_gamma_curve_get_type".}
-proc gamma_curve_new*(): PGammaCurve{.cdecl, dynlib: lib, 
-                                      importc: "gtk_gamma_curve_new".}
-proc gc_get*(depth: gint, colormap: gdk2.PColormap, values: gdk2.PGCValues, 
-             values_mask: gdk2.TGCValuesMask): gdk2.PGC{.cdecl, dynlib: lib, 
-    importc: "gtk_gc_get".}
-proc gc_release*(gc: gdk2.PGC){.cdecl, dynlib: lib, importc: "gtk_gc_release".}
-const 
-  bm_TGtkHandleBox_handle_position* = 0x0003'i16
-  bp_TGtkHandleBox_handle_position* = 0'i16
-  bm_TGtkHandleBox_float_window_mapped* = 0x0004'i16
-  bp_TGtkHandleBox_float_window_mapped* = 2'i16
-  bm_TGtkHandleBox_child_detached* = 0x0008'i16
-  bp_TGtkHandleBox_child_detached* = 3'i16
-  bm_TGtkHandleBox_in_drag* = 0x0010'i16
-  bp_TGtkHandleBox_in_drag* = 4'i16
-  bm_TGtkHandleBox_shrink_on_detach* = 0x0020'i16
-  bp_TGtkHandleBox_shrink_on_detach* = 5'i16
-  bm_TGtkHandleBox_snap_edge* = 0x01C0'i16
-  bp_TGtkHandleBox_snap_edge* = 6'i16
-
-proc TYPE_HANDLE_BOX*(): GType
-proc HANDLE_BOX*(obj: pointer): PHandleBox
-proc HANDLE_BOX_CLASS*(klass: pointer): PHandleBoxClass
-proc IS_HANDLE_BOX*(obj: pointer): bool
-proc IS_HANDLE_BOX_CLASS*(klass: pointer): bool
-proc HANDLE_BOX_GET_CLASS*(obj: pointer): PHandleBoxClass
-proc handle_position*(a: PHandleBox): guint
-proc set_handle_position*(a: PHandleBox, `handle_position`: guint)
-proc float_window_mapped*(a: PHandleBox): guint
-proc set_float_window_mapped*(a: PHandleBox, `float_window_mapped`: guint)
-proc child_detached*(a: PHandleBox): guint
-proc set_child_detached*(a: PHandleBox, `child_detached`: guint)
-proc in_drag*(a: PHandleBox): guint
-proc set_in_drag*(a: PHandleBox, `in_drag`: guint)
-proc shrink_on_detach*(a: PHandleBox): guint
-proc set_shrink_on_detach*(a: PHandleBox, `shrink_on_detach`: guint)
-proc snap_edge*(a: PHandleBox): gint
-proc set_snap_edge*(a: PHandleBox, `snap_edge`: gint)
-proc handle_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_handle_box_get_type".}
-proc handle_box_new*(): PHandleBox{.cdecl, dynlib: lib, 
-                                    importc: "gtk_handle_box_new".}
-proc set_shadow_type*(handle_box: PHandleBox, thetype: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_set_shadow_type".}
-proc get_shadow_type*(handle_box: PHandleBox): TShadowType{.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_get_shadow_type".}
-proc set_handle_position*(handle_box: PHandleBox, 
-                                     position: TPositionType){.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_set_handle_position".}
-proc get_handle_position*(handle_box: PHandleBox): TPositionType{.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_get_handle_position".}
-proc set_snap_edge*(handle_box: PHandleBox, edge: TPositionType){.
-    cdecl, dynlib: lib, importc: "gtk_handle_box_set_snap_edge".}
-proc get_snap_edge*(handle_box: PHandleBox): TPositionType{.cdecl, 
-    dynlib: lib, importc: "gtk_handle_box_get_snap_edge".}
-const 
-  bm_TGtkPaned_position_set* = 0x0001'i16
-  bp_TGtkPaned_position_set* = 0'i16
-  bm_TGtkPaned_in_drag* = 0x0002'i16
-  bp_TGtkPaned_in_drag* = 1'i16
-  bm_TGtkPaned_child1_shrink* = 0x0004'i16
-  bp_TGtkPaned_child1_shrink* = 2'i16
-  bm_TGtkPaned_child1_resize* = 0x0008'i16
-  bp_TGtkPaned_child1_resize* = 3'i16
-  bm_TGtkPaned_child2_shrink* = 0x0010'i16
-  bp_TGtkPaned_child2_shrink* = 4'i16
-  bm_TGtkPaned_child2_resize* = 0x0020'i16
-  bp_TGtkPaned_child2_resize* = 5'i16
-  bm_TGtkPaned_orientation* = 0x0040'i16
-  bp_TGtkPaned_orientation* = 6'i16
-  bm_TGtkPaned_in_recursion* = 0x0080'i16
-  bp_TGtkPaned_in_recursion* = 7'i16
-  bm_TGtkPaned_handle_prelit* = 0x0100'i16
-  bp_TGtkPaned_handle_prelit* = 8'i16
-
-proc TYPE_PANED*(): GType
-proc PANED*(obj: pointer): PPaned
-proc PANED_CLASS*(klass: pointer): PPanedClass
-proc IS_PANED*(obj: pointer): bool
-proc IS_PANED_CLASS*(klass: pointer): bool
-proc PANED_GET_CLASS*(obj: pointer): PPanedClass
-proc position_set*(a: PPaned): guint
-proc set_position_set*(a: PPaned, `position_set`: guint)
-proc in_drag*(a: PPaned): guint
-proc set_in_drag*(a: PPaned, `in_drag`: guint)
-proc child1_shrink*(a: PPaned): guint
-proc set_child1_shrink*(a: PPaned, `child1_shrink`: guint)
-proc child1_resize*(a: PPaned): guint
-proc set_child1_resize*(a: PPaned, `child1_resize`: guint)
-proc child2_shrink*(a: PPaned): guint
-proc set_child2_shrink*(a: PPaned, `child2_shrink`: guint)
-proc child2_resize*(a: PPaned): guint
-proc set_child2_resize*(a: PPaned, `child2_resize`: guint)
-proc orientation*(a: PPaned): guint
-proc set_orientation*(a: PPaned, `orientation`: guint)
-proc in_recursion*(a: PPaned): guint
-proc set_in_recursion*(a: PPaned, `in_recursion`: guint)
-proc handle_prelit*(a: PPaned): guint
-proc set_handle_prelit*(a: PPaned, `handle_prelit`: guint)
-proc paned_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_paned_get_type".}
-proc add1*(paned: PPaned, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_add1".}
-proc add2*(paned: PPaned, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_add2".}
-proc pack1*(paned: PPaned, child: PWidget, resize: gboolean, 
-                  shrink: gboolean){.cdecl, dynlib: lib, 
-                                     importc: "gtk_paned_pack1".}
-proc pack2*(paned: PPaned, child: PWidget, resize: gboolean, 
-                  shrink: gboolean){.cdecl, dynlib: lib, 
-                                     importc: "gtk_paned_pack2".}
-proc get_position*(paned: PPaned): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_paned_get_position".}
-proc set_position*(paned: PPaned, position: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_set_position".}
-proc compute_position*(paned: PPaned, allocation: gint, child1_req: gint, 
-                             child2_req: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paned_compute_position".}
-proc TYPE_HBUTTON_BOX*(): GType
-proc HBUTTON_BOX*(obj: pointer): PHButtonBox
-proc HBUTTON_BOX_CLASS*(klass: pointer): PHButtonBoxClass
-proc IS_HBUTTON_BOX*(obj: pointer): bool
-proc IS_HBUTTON_BOX_CLASS*(klass: pointer): bool
-proc HBUTTON_BOX_GET_CLASS*(obj: pointer): PHButtonBoxClass
-proc hbutton_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_hbutton_box_get_type".}
-proc hbutton_box_new*(): PHButtonBox{.cdecl, dynlib: lib, 
-                                      importc: "gtk_hbutton_box_new".}
-proc TYPE_HPANED*(): GType
-proc HPANED*(obj: pointer): PHPaned
-proc HPANED_CLASS*(klass: pointer): PHPanedClass
-proc IS_HPANED*(obj: pointer): bool
-proc IS_HPANED_CLASS*(klass: pointer): bool
-proc HPANED_GET_CLASS*(obj: pointer): PHPanedClass
-proc hpaned_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hpaned_get_type".}
-proc hpaned_new*(): PHPaned{.cdecl, dynlib: lib, importc: "gtk_hpaned_new".}
-proc TYPE_RULER*(): GType
-proc RULER*(obj: pointer): PRuler
-proc RULER_CLASS*(klass: pointer): PRulerClass
-proc IS_RULER*(obj: pointer): bool
-proc IS_RULER_CLASS*(klass: pointer): bool
-proc RULER_GET_CLASS*(obj: pointer): PRulerClass
-proc ruler_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_ruler_get_type".}
-proc set_metric*(ruler: PRuler, metric: TMetricType){.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_set_metric".}
-proc set_range*(ruler: PRuler, lower: gdouble, upper: gdouble, 
-                      position: gdouble, max_size: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_set_range".}
-proc draw_ticks*(ruler: PRuler){.cdecl, dynlib: lib, 
-                                       importc: "gtk_ruler_draw_ticks".}
-proc draw_pos*(ruler: PRuler){.cdecl, dynlib: lib, 
-                                     importc: "gtk_ruler_draw_pos".}
-proc get_metric*(ruler: PRuler): TMetricType{.cdecl, dynlib: lib, 
-    importc: "gtk_ruler_get_metric".}
-proc get_range*(ruler: PRuler, lower: Pgdouble, upper: Pgdouble, 
-                      position: Pgdouble, max_size: Pgdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_ruler_get_range".}
-proc TYPE_HRULER*(): GType
-proc HRULER*(obj: pointer): PHRuler
-proc HRULER_CLASS*(klass: pointer): PHRulerClass
-proc IS_HRULER*(obj: pointer): bool
-proc IS_HRULER_CLASS*(klass: pointer): bool
-proc HRULER_GET_CLASS*(obj: pointer): PHRulerClass
-proc hruler_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hruler_get_type".}
-proc hruler_new*(): PHRuler{.cdecl, dynlib: lib, importc: "gtk_hruler_new".}
-proc TYPE_SETTINGS*(): GType
-proc SETTINGS*(obj: pointer): PSettings
-proc SETTINGS_CLASS*(klass: pointer): PSettingsClass
-proc IS_SETTINGS*(obj: pointer): bool
-proc IS_SETTINGS_CLASS*(klass: pointer): bool
-proc SETTINGS_GET_CLASS*(obj: pointer): PSettingsClass
-proc settings_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_settings_get_type".}
-proc settings_get_for_screen*(screen: gdk2.PScreen): PSettings{.cdecl, 
-    dynlib: lib, importc: "gtk_settings_get_for_screen".}
-proc settings_install_property*(pspec: PGParamSpec){.cdecl, dynlib: lib, 
-    importc: "gtk_settings_install_property".}
-proc settings_install_property_parser*(pspec: PGParamSpec, 
-                                       parser: TRcPropertyParser){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_install_property_parser".}
-proc rc_property_parse_color*(pspec: PGParamSpec, gstring: PGString, 
-                              property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_color".}
-proc rc_property_parse_enum*(pspec: PGParamSpec, gstring: PGString, 
-                             property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_enum".}
-proc rc_property_parse_flags*(pspec: PGParamSpec, gstring: PGString, 
-                              property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_flags".}
-proc rc_property_parse_requisition*(pspec: PGParamSpec, gstring: PGString, 
-                                    property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_requisition".}
-proc rc_property_parse_border*(pspec: PGParamSpec, gstring: PGString, 
-                               property_value: PGValue): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_property_parse_border".}
-proc set_property_value*(settings: PSettings, name: cstring, 
-                                  svalue: PSettingsValue){.cdecl, dynlib: lib, 
-    importc: "gtk_settings_set_property_value".}
-proc set_string_property*(settings: PSettings, name: cstring, 
-                                   v_string: cstring, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_string_property".}
-proc set_long_property*(settings: PSettings, name: cstring, 
-                                 v_long: glong, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_long_property".}
-proc set_double_property*(settings: PSettings, name: cstring, 
-                                   v_double: gdouble, origin: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_settings_set_double_property".}
-proc settings_handle_event*(event: gdk2.PEventSetting){.cdecl, dynlib: lib, 
-    importc: "_gtk_settings_handle_event".}
-proc rc_property_parser_from_type*(thetype: GType): TRcPropertyParser{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_property_parser_from_type".}
-proc settings_parse_convert*(parser: TRcPropertyParser, src_value: PGValue, 
-                             pspec: PGParamSpec, dest_value: PGValue): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_settings_parse_convert".}
-const 
-  RC_FG* = 1 shl 0
-  RC_BG* = 1 shl 1
-  RC_TEXT* = 1 shl 2
-  RC_BASE* = 1 shl 3
-  bm_TGtkRcStyle_engine_specified* = 0x0001'i16
-  bp_TGtkRcStyle_engine_specified* = 0'i16
-
-proc TYPE_RC_STYLE*(): GType
-proc RC_STYLE_get*(anObject: pointer): PRcStyle
-proc RC_STYLE_CLASS*(klass: pointer): PRcStyleClass
-proc IS_RC_STYLE*(anObject: pointer): bool
-proc IS_RC_STYLE_CLASS*(klass: pointer): bool
-proc RC_STYLE_GET_CLASS*(obj: pointer): PRcStyleClass
-proc engine_specified*(a: PRcStyle): guint
-proc set_engine_specified*(a: PRcStyle, `engine_specified`: guint)
-proc rc_init*(){.cdecl, dynlib: lib, importc: "_gtk_rc_init".}
-proc rc_add_default_file*(filename: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_add_default_file".}
-proc rc_set_default_files*(filenames: PPgchar){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_set_default_files".}
-proc rc_get_default_files*(): PPgchar{.cdecl, dynlib: lib, 
-                                       importc: "gtk_rc_get_default_files".}
-proc rc_get_style*(widget: PWidget): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_get_style".}
-proc rc_get_style_by_paths*(settings: PSettings, widget_path: cstring, 
-                            class_path: cstring, thetype: GType): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_get_style_by_paths".}
-proc rc_reparse_all_for_settings*(settings: PSettings, force_load: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_rc_reparse_all_for_settings".}
-proc rc_find_pixmap_in_path*(settings: PSettings, scanner: PGScanner, 
-                             pixmap_file: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_find_pixmap_in_path".}
-proc rc_parse*(filename: cstring){.cdecl, dynlib: lib, importc: "gtk_rc_parse".}
-proc rc_parse_string*(rc_string: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_parse_string".}
-proc rc_reparse_all*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gtk_rc_reparse_all".}
-proc rc_style_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_rc_style_get_type".}
-proc rc_style_new*(): PRcStyle{.cdecl, dynlib: lib, importc: "gtk_rc_style_new".}
-proc copy*(orig: PRcStyle): PRcStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_style_copy".}
-proc reference*(rc_style: PRcStyle){.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_style_ref".}
-proc unref*(rc_style: PRcStyle){.cdecl, dynlib: lib, 
-    importc: "gtk_rc_style_unref".}
-proc rc_find_module_in_path*(module_file: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_rc_find_module_in_path".}
-proc rc_get_theme_dir*(): cstring{.cdecl, dynlib: lib, 
-                                   importc: "gtk_rc_get_theme_dir".}
-proc rc_get_module_dir*(): cstring{.cdecl, dynlib: lib, 
-                                    importc: "gtk_rc_get_module_dir".}
-proc rc_get_im_module_path*(): cstring{.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_get_im_module_path".}
-proc rc_get_im_module_file*(): cstring{.cdecl, dynlib: lib, 
-                                        importc: "gtk_rc_get_im_module_file".}
-proc rc_scanner_new*(): PGScanner{.cdecl, dynlib: lib, 
-                                   importc: "gtk_rc_scanner_new".}
-proc rc_parse_color*(scanner: PGScanner, color: gdk2.PColor): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_parse_color".}
-proc rc_parse_state*(scanner: PGScanner, state: PStateType): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_rc_parse_state".}
-proc rc_parse_priority*(scanner: PGScanner, priority: PPathPriorityType): guint{.
-    cdecl, dynlib: lib, importc: "gtk_rc_parse_priority".}
-proc lookup_rc_property*(rc_style: PRcStyle, type_name: TGQuark, 
-                                  property_name: TGQuark): PRcProperty{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_style_lookup_rc_property".}
-proc rc_context_get_default_font_name*(settings: PSettings): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_rc_context_get_default_font_name".}
-proc TYPE_STYLE*(): GType
-proc STYLE*(anObject: pointer): PStyle
-proc STYLE_CLASS*(klass: pointer): PStyleClass
-proc IS_STYLE*(anObject: pointer): bool
-proc IS_STYLE_CLASS*(klass: pointer): bool
-proc STYLE_GET_CLASS*(obj: pointer): PStyleClass
-proc TYPE_BORDER*(): GType
-proc STYLE_ATTACHED*(style: pointer): bool
-proc style_get_type*(): GType{.cdecl, dynlib: lib, importc: "gtk_style_get_type".}
-proc style_new*(): PStyle{.cdecl, dynlib: lib, importc: "gtk_style_new".}
-proc copy*(style: PStyle): PStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_style_copy".}
-proc attach*(style: PStyle, window: gdk2.PWindow): PStyle{.cdecl, 
-    dynlib: lib, importc: "gtk_style_attach".}
-proc detach*(style: PStyle){.cdecl, dynlib: lib, 
-                                   importc: "gtk_style_detach".}
-proc set_background*(style: PStyle, window: gdk2.PWindow, 
-                           state_type: TStateType){.cdecl, dynlib: lib, 
-    importc: "gtk_style_set_background".}
-proc apply_default_background*(style: PStyle, window: gdk2.PWindow, 
-                                     set_bg: gboolean, state_type: TStateType, 
-                                     area: gdk2.PRectangle, x: gint, y: gint, 
-                                     width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_style_apply_default_background".}
-proc lookup_icon_set*(style: PStyle, stock_id: cstring): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_style_lookup_icon_set".}
-proc render_icon*(style: PStyle, source: PIconSource, 
-                        direction: TTextDirection, state: TStateType, 
-                        size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-    cdecl, dynlib: lib, importc: "gtk_style_render_icon".}
-proc paint_hline*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  x1: gint, x2: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_hline".}
-proc paint_vline*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  y1: gint, y2: gint, x: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_vline".}
-proc paint_shadow*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_shadow".}
-proc paint_polygon*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, points: gdk2.PPoint, 
-                    npoints: gint, fill: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_polygon".}
-proc paint_arrow*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  shadow_type: TShadowType, area: gdk2.PRectangle, 
-                  widget: PWidget, detail: cstring, arrow_type: TArrowType, 
-                  fill: gboolean, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_arrow".}
-proc paint_diamond*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, x: gint, y: gint, 
-                    width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_diamond".}
-proc paint_box*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                shadow_type: TShadowType, area: gdk2.PRectangle, widget: PWidget, 
-                detail: cstring, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_box".}
-proc paint_flat_box*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     shadow_type: TShadowType, area: gdk2.PRectangle, 
-                     widget: PWidget, detail: cstring, x: gint, y: gint, 
-                     width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_flat_box".}
-proc paint_check*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  shadow_type: TShadowType, area: gdk2.PRectangle, 
-                  widget: PWidget, detail: cstring, x: gint, y: gint, 
-                  width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_check".}
-proc paint_option*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_option".}
-proc paint_tab*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                shadow_type: TShadowType, area: gdk2.PRectangle, widget: PWidget, 
-                detail: cstring, x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_tab".}
-proc paint_shadow_gap*(style: PStyle, window: gdk2.PWindow, 
-                       state_type: TStateType, shadow_type: TShadowType, 
-                       area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                       x: gint, y: gint, width: gint, height: gint, 
-                       gap_side: TPositionType, gap_x: gint, gap_width: gint){.
-    cdecl, dynlib: lib, importc: "gtk_paint_shadow_gap".}
-proc paint_box_gap*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                    shadow_type: TShadowType, area: gdk2.PRectangle, 
-                    widget: PWidget, detail: cstring, x: gint, y: gint, 
-                    width: gint, height: gint, gap_side: TPositionType, 
-                    gap_x: gint, gap_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_paint_box_gap".}
-proc paint_extension*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                      shadow_type: TShadowType, area: gdk2.PRectangle, 
-                      widget: PWidget, detail: cstring, x: gint, y: gint, 
-                      width: gint, height: gint, gap_side: TPositionType){.
-    cdecl, dynlib: lib, importc: "gtk_paint_extension".}
-proc paint_focus*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                  area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                  x: gint, y: gint, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_focus".}
-proc paint_slider*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint, orientation: TOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_slider".}
-proc paint_handle*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   shadow_type: TShadowType, area: gdk2.PRectangle, 
-                   widget: PWidget, detail: cstring, x: gint, y: gint, 
-                   width: gint, height: gint, orientation: TOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_handle".}
-proc paint_expander*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                     area: gdk2.PRectangle, widget: PWidget, detail: cstring, 
-                     x: gint, y: gint, expander_style: TExpanderStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_expander".}
-proc paint_layout*(style: PStyle, window: gdk2.PWindow, state_type: TStateType, 
-                   use_text: gboolean, area: gdk2.PRectangle, widget: PWidget, 
-                   detail: cstring, x: gint, y: gint, layout: pango.PLayout){.
-    cdecl, dynlib: lib, importc: "gtk_paint_layout".}
-proc paint_resize_grip*(style: PStyle, window: gdk2.PWindow, 
-                        state_type: TStateType, area: gdk2.PRectangle, 
-                        widget: PWidget, detail: cstring, edge: gdk2.TWindowEdge, 
-                        x: gint, y: gint, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_paint_resize_grip".}
-proc border_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "gtk_border_get_type".}
-proc copy*(border: PBorder): PBorder{.cdecl, dynlib: lib, 
-    importc: "gtk_border_copy".}
-proc free*(border: PBorder){.cdecl, dynlib: lib, 
-                                    importc: "gtk_border_free".}
-proc peek_property_value*(style: PStyle, widget_type: GType, 
-                                pspec: PGParamSpec, parser: TRcPropertyParser): PGValue{.
-    cdecl, dynlib: lib, importc: "_gtk_style_peek_property_value".}
-proc get_insertion_cursor_gc*(widget: PWidget, is_primary: gboolean): gdk2.PGC{.
-    cdecl, dynlib: lib, importc: "_gtk_get_insertion_cursor_gc".}
-proc draw_insertion_cursor*(widget: PWidget, drawable: gdk2.PDrawable, gc: gdk2.PGC, 
-                            location: gdk2.PRectangle, direction: TTextDirection, 
-                            draw_arrow: gboolean){.cdecl, dynlib: lib, 
-    importc: "_gtk_draw_insertion_cursor".}
-const 
-  bm_TGtkRange_inverted* = 0x0001'i16
-  bp_TGtkRange_inverted* = 0'i16
-  bm_TGtkRange_flippable* = 0x0002'i16
-  bp_TGtkRange_flippable* = 1'i16
-  bm_TGtkRange_has_stepper_a* = 0x0004'i16
-  bp_TGtkRange_has_stepper_a* = 2'i16
-  bm_TGtkRange_has_stepper_b* = 0x0008'i16
-  bp_TGtkRange_has_stepper_b* = 3'i16
-  bm_TGtkRange_has_stepper_c* = 0x0010'i16
-  bp_TGtkRange_has_stepper_c* = 4'i16
-  bm_TGtkRange_has_stepper_d* = 0x0020'i16
-  bp_TGtkRange_has_stepper_d* = 5'i16
-  bm_TGtkRange_need_recalc* = 0x0040'i16
-  bp_TGtkRange_need_recalc* = 6'i16
-  bm_TGtkRange_slider_size_fixed* = 0x0080'i16
-  bp_TGtkRange_slider_size_fixed* = 7'i16
-  bm_TGtkRange_trough_click_forward* = 0x0001'i16
-  bp_TGtkRange_trough_click_forward* = 0'i16
-  bm_TGtkRange_update_pending* = 0x0002'i16
-  bp_TGtkRange_update_pending* = 1'i16
-
-proc TYPE_RANGE*(): GType
-proc RANGE*(obj: pointer): PRange
-proc RANGE_CLASS*(klass: pointer): PRangeClass
-proc IS_RANGE*(obj: pointer): bool
-proc IS_RANGE_CLASS*(klass: pointer): bool
-proc RANGE_GET_CLASS*(obj: pointer): PRangeClass
-proc inverted*(a: PRange): guint
-proc set_inverted*(a: PRange, `inverted`: guint)
-proc flippable*(a: PRange): guint
-proc set_flippable*(a: PRange, `flippable`: guint)
-proc has_stepper_a*(a: PRange): guint
-proc set_has_stepper_a*(a: PRange, `has_stepper_a`: guint)
-proc has_stepper_b*(a: PRange): guint
-proc set_has_stepper_b*(a: PRange, `has_stepper_b`: guint)
-proc has_stepper_c*(a: PRange): guint
-proc set_has_stepper_c*(a: PRange, `has_stepper_c`: guint)
-proc has_stepper_d*(a: PRange): guint
-proc set_has_stepper_d*(a: PRange, `has_stepper_d`: guint)
-proc need_recalc*(a: PRange): guint
-proc set_need_recalc*(a: PRange, `need_recalc`: guint)
-proc slider_size_fixed*(a: PRange): guint
-proc set_slider_size_fixed*(a: PRange, `slider_size_fixed`: guint)
-proc trough_click_forward*(a: PRange): guint
-proc set_trough_click_forward*(a: PRange, `trough_click_forward`: guint)
-proc update_pending*(a: PRange): guint
-proc set_update_pending*(a: PRange, `update_pending`: guint)
-proc range_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_range_get_type".}
-proc set_update_policy*(range: PRange, policy: TUpdateType){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_update_policy".}
-proc get_update_policy*(range: PRange): TUpdateType{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_update_policy".}
-proc set_adjustment*(range: PRange, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_adjustment".}
-proc get_adjustment*(range: PRange): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_adjustment".}
-proc set_inverted*(range: PRange, setting: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_range_set_inverted".}
-proc get_inverted*(range: PRange): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_inverted".}
-proc set_increments*(range: PRange, step: gdouble, page: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_increments".}
-proc set_range*(range: PRange, min: gdouble, max: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_range_set_range".}
-proc set_value*(range: PRange, value: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_range_set_value".}
-proc get_value*(range: PRange): gdouble{.cdecl, dynlib: lib, 
-    importc: "gtk_range_get_value".}
-const 
-  bm_TGtkScale_draw_value* = 0x0001'i16
-  bp_TGtkScale_draw_value* = 0'i16
-  bm_TGtkScale_value_pos* = 0x0006'i16
-  bp_TGtkScale_value_pos* = 1'i16
-
-proc TYPE_SCALE*(): GType
-proc SCALE*(obj: pointer): PScale
-proc SCALE_CLASS*(klass: pointer): PScaleClass
-proc IS_SCALE*(obj: pointer): bool
-proc IS_SCALE_CLASS*(klass: pointer): bool
-proc SCALE_GET_CLASS*(obj: pointer): PScaleClass
-proc draw_value*(a: PScale): guint
-proc set_draw_value*(a: PScale, `draw_value`: guint)
-proc value_pos*(a: PScale): guint
-proc set_value_pos*(a: PScale, `value_pos`: guint)
-proc scale_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_scale_get_type".}
-proc set_digits*(scale: PScale, digits: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_scale_set_digits".}
-proc get_digits*(scale: PScale): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_digits".}
-proc set_draw_value*(scale: PScale, draw_value: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_scale_set_draw_value".}
-proc get_draw_value*(scale: PScale): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_draw_value".}
-proc set_value_pos*(scale: PScale, pos: TPositionType){.cdecl, 
-    dynlib: lib, importc: "gtk_scale_set_value_pos".}
-proc get_value_pos*(scale: PScale): TPositionType{.cdecl, dynlib: lib, 
-    importc: "gtk_scale_get_value_pos".}
-proc get_value_size*(scale: PScale, width: Pgint, height: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_scale_get_value_size".}
-proc format_value*(scale: PScale, value: gdouble): cstring{.cdecl, 
-    dynlib: lib, importc: "_gtk_scale_format_value".}
-proc TYPE_HSCALE*(): GType
-proc HSCALE*(obj: pointer): PHScale
-proc HSCALE_CLASS*(klass: pointer): PHScaleClass
-proc IS_HSCALE*(obj: pointer): bool
-proc IS_HSCALE_CLASS*(klass: pointer): bool
-proc HSCALE_GET_CLASS*(obj: pointer): PHScaleClass
-proc hscale_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_hscale_get_type".}
-proc hscale_new*(adjustment: PAdjustment): PHScale{.cdecl, dynlib: lib, 
-    importc: "gtk_hscale_new".}
-proc hscale_new*(min: gdouble, max: gdouble, step: gdouble): PHScale{.
-    cdecl, dynlib: lib, importc: "gtk_hscale_new_with_range".}
-proc TYPE_SCROLLBAR*(): GType
-proc SCROLLBAR*(obj: pointer): PScrollbar
-proc SCROLLBAR_CLASS*(klass: pointer): PScrollbarClass
-proc IS_SCROLLBAR*(obj: pointer): bool
-proc IS_SCROLLBAR_CLASS*(klass: pointer): bool
-proc SCROLLBAR_GET_CLASS*(obj: pointer): PScrollbarClass
-proc scrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_scrollbar_get_type".}
-proc TYPE_HSCROLLBAR*(): GType
-proc HSCROLLBAR*(obj: pointer): PHScrollbar
-proc HSCROLLBAR_CLASS*(klass: pointer): PHScrollbarClass
-proc IS_HSCROLLBAR*(obj: pointer): bool
-proc IS_HSCROLLBAR_CLASS*(klass: pointer): bool
-proc HSCROLLBAR_GET_CLASS*(obj: pointer): PHScrollbarClass
-proc hscrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_hscrollbar_get_type".}
-proc hscrollbar_new*(adjustment: PAdjustment): PHScrollbar{.cdecl, dynlib: lib, 
-    importc: "gtk_hscrollbar_new".}
-proc TYPE_SEPARATOR*(): GType
-proc SEPARATOR*(obj: pointer): PSeparator
-proc SEPARATOR_CLASS*(klass: pointer): PSeparatorClass
-proc IS_SEPARATOR*(obj: pointer): bool
-proc IS_SEPARATOR_CLASS*(klass: pointer): bool
-proc SEPARATOR_GET_CLASS*(obj: pointer): PSeparatorClass
-proc separator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_separator_get_type".}
-proc TYPE_HSEPARATOR*(): GType
-proc HSEPARATOR*(obj: pointer): PHSeparator
-proc HSEPARATOR_CLASS*(klass: pointer): PHSeparatorClass
-proc IS_HSEPARATOR*(obj: pointer): bool
-proc IS_HSEPARATOR_CLASS*(klass: pointer): bool
-proc HSEPARATOR_GET_CLASS*(obj: pointer): PHSeparatorClass
-proc hseparator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_hseparator_get_type".}
-proc hseparator_new*(): PHSeparator{.cdecl, dynlib: lib, 
-                                     importc: "gtk_hseparator_new".}
-proc TYPE_ICON_FACTORY*(): GType
-proc ICON_FACTORY*(anObject: pointer): PIconFactory
-proc ICON_FACTORY_CLASS*(klass: pointer): PIconFactoryClass
-proc IS_ICON_FACTORY*(anObject: pointer): bool
-proc IS_ICON_FACTORY_CLASS*(klass: pointer): bool
-proc ICON_FACTORY_GET_CLASS*(obj: pointer): PIconFactoryClass
-proc TYPE_ICON_SET*(): GType
-proc TYPE_ICON_SOURCE*(): GType
-proc icon_factory_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_icon_factory_get_type".}
-proc icon_factory_new*(): PIconFactory{.cdecl, dynlib: lib, 
-                                        importc: "gtk_icon_factory_new".}
-proc add*(factory: PIconFactory, stock_id: cstring, 
-                       icon_set: PIconSet){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_add".}
-proc lookup*(factory: PIconFactory, stock_id: cstring): PIconSet{.
-    cdecl, dynlib: lib, importc: "gtk_icon_factory_lookup".}
-proc add_default*(factory: PIconFactory){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_add_default".}
-proc remove_default*(factory: PIconFactory){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_factory_remove_default".}
-proc icon_factory_lookup_default*(stock_id: cstring): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_factory_lookup_default".}
-proc icon_size_lookup*(size: TIconSize, width: Pgint, height: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_icon_size_lookup".}
-proc icon_size_register*(name: cstring, width: gint, height: gint): TIconSize{.
-    cdecl, dynlib: lib, importc: "gtk_icon_size_register".}
-proc icon_size_register_alias*(alias: cstring, target: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_size_register_alias".}
-proc icon_size_from_name*(name: cstring): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_size_from_name".}
-proc icon_size_get_name*(size: TIconSize): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_size_get_name".}
-proc icon_set_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_icon_set_get_type".}
-proc icon_set_new*(): PIconSet{.cdecl, dynlib: lib, importc: "gtk_icon_set_new".}
-proc icon_set_new_from_pixbuf*(pixbuf: gdk2pixbuf.PPixbuf): PIconSet{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_set_new_from_pixbuf".}
-proc reference*(icon_set: PIconSet): PIconSet{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_ref".}
-proc unref*(icon_set: PIconSet){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_unref".}
-proc copy*(icon_set: PIconSet): PIconSet{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_copy".}
-proc render_icon*(icon_set: PIconSet, style: PStyle, 
-                           direction: TTextDirection, state: TStateType, 
-                           size: TIconSize, widget: PWidget, detail: cstring): gdk2pixbuf.PPixbuf{.
-    cdecl, dynlib: lib, importc: "gtk_icon_set_render_icon".}
-proc add_source*(icon_set: PIconSet, source: PIconSource){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_set_add_source".}
-proc get_sizes*(icon_set: PIconSet, sizes: PPGtkIconSize, 
-                         n_sizes: pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_set_get_sizes".}
-proc icon_source_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_icon_source_get_type".}
-proc icon_source_new*(): PIconSource{.cdecl, dynlib: lib, 
-                                      importc: "gtk_icon_source_new".}
-proc copy*(source: PIconSource): PIconSource{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_copy".}
-proc free*(source: PIconSource){.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_free".}
-proc set_filename*(source: PIconSource, filename: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_filename".}
-proc set_pixbuf*(source: PIconSource, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_pixbuf".}
-proc get_filename*(source: PIconSource): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_filename".}
-proc get_pixbuf*(source: PIconSource): gdk2pixbuf.PPixbuf{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_pixbuf".}
-proc set_direction_wildcarded*(source: PIconSource, 
-    setting: gboolean){.cdecl, dynlib: lib, 
-                        importc: "gtk_icon_source_set_direction_wildcarded".}
-proc set_state_wildcarded*(source: PIconSource, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_state_wildcarded".}
-proc set_size_wildcarded*(source: PIconSource, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_size_wildcarded".}
-proc get_size_wildcarded*(source: PIconSource): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_size_wildcarded".}
-proc get_state_wildcarded*(source: PIconSource): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_state_wildcarded".}
-proc get_direction_wildcarded*(source: PIconSource): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_get_direction_wildcarded".}
-proc set_direction*(source: PIconSource, direction: TTextDirection){.
-    cdecl, dynlib: lib, importc: "gtk_icon_source_set_direction".}
-proc set_state*(source: PIconSource, state: TStateType){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_state".}
-proc set_size*(source: PIconSource, size: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_set_size".}
-proc get_direction*(source: PIconSource): TTextDirection{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_direction".}
-proc get_state*(source: PIconSource): TStateType{.cdecl, 
-    dynlib: lib, importc: "gtk_icon_source_get_state".}
-proc get_size*(source: PIconSource): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_icon_source_get_size".}
-proc icon_set_invalidate_caches*(){.cdecl, dynlib: lib, 
-                                    importc: "_gtk_icon_set_invalidate_caches".}
-proc icon_factory_list_ids*(): PGSList{.cdecl, dynlib: lib, 
-                                        importc: "_gtk_icon_factory_list_ids".}
-proc TYPE_IMAGE*(): GType
-proc IMAGE*(obj: pointer): PImage
-proc IMAGE_CLASS*(klass: pointer): PImageClass
-proc IS_IMAGE*(obj: pointer): bool
-proc IS_IMAGE_CLASS*(klass: pointer): bool
-proc IMAGE_GET_CLASS*(obj: pointer): PImageClass
-proc image_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_image_get_type".}
-proc image_new*(): PImage{.cdecl, dynlib: lib, importc: "gtk_image_new".}
-proc image_new_from_pixmap*(pixmap: gdk2.PPixmap, mask: gdk2.PBitmap): PImage{.
-    cdecl, dynlib: lib, importc: "gtk_image_new_from_pixmap".}
-proc image_new_from_image*(image: gdk2.PImage, mask: gdk2.PBitmap): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_image".}
-proc image_new_from_file*(filename: cstring): PImage{.cdecl, dynlib: lib, 
-    importc: "gtk_image_new_from_file".}
-proc image_new_from_pixbuf*(pixbuf: gdk2pixbuf.PPixbuf): PImage{.cdecl, dynlib: lib, 
-    importc: "gtk_image_new_from_pixbuf".}
-proc image_new_from_stock*(stock_id: cstring, size: TIconSize): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_stock".}
-proc image_new_from_icon_set*(icon_set: PIconSet, size: TIconSize): PImage{.
-    cdecl, dynlib: lib, importc: "gtk_image_new_from_icon_set".}
-proc image_new_from_animation*(animation: gdk2pixbuf.PPixbufAnimation): PImage{.cdecl, 
-    dynlib: lib, importc: "gtk_image_new_from_animation".}
-proc set_from_pixmap*(image: PImage, pixmap: gdk2.PPixmap, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_pixmap".}
-proc set_from_image*(image: PImage, gdk_image: gdk2.PImage, mask: gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_image".}
-proc set_from_file*(image: PImage, filename: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_image_set_from_file".}
-proc set_from_pixbuf*(image: PImage, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "gtk_image_set_from_pixbuf".}
-proc set_from_stock*(image: PImage, stock_id: cstring, size: TIconSize){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_stock".}
-proc set_from_icon_set*(image: PImage, icon_set: PIconSet, size: TIconSize){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_icon_set".}
-proc set_from_animation*(image: PImage, animation: gdk2pixbuf.PPixbufAnimation){.
-    cdecl, dynlib: lib, importc: "gtk_image_set_from_animation".}
-proc get_storage_type*(image: PImage): TImageType{.cdecl, dynlib: lib, 
-    importc: "gtk_image_get_storage_type".}
-proc get_pixbuf*(image: PImage): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_image_get_pixbuf".}
-proc get_stock*(image: PImage, stock_id: PPgchar, size: PIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_image_get_stock".}
-proc get_animation*(image: PImage): gdk2pixbuf.PPixbufAnimation{.cdecl, 
-    dynlib: lib, importc: "gtk_image_get_animation".}
-proc TYPE_IMAGE_MENU_ITEM*(): GType
-proc IMAGE_MENU_ITEM*(obj: pointer): PImageMenuItem
-proc IMAGE_MENU_ITEM_CLASS*(klass: pointer): PImageMenuItemClass
-proc IS_IMAGE_MENU_ITEM*(obj: pointer): bool
-proc IS_IMAGE_MENU_ITEM_CLASS*(klass: pointer): bool
-proc IMAGE_MENU_ITEM_GET_CLASS*(obj: pointer): PImageMenuItemClass
-proc image_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_image_menu_item_get_type".}
-proc image_menu_item_new*(): PImageMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_image_menu_item_new".}
-proc image_menu_item_new*(`label`: cstring): PImageMenuItem{.cdecl, 
-    dynlib: lib, importc: "gtk_image_menu_item_new_with_label".}
-proc image_menu_item_new_with_mnemonic*(`label`: cstring): PImageMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_new_with_mnemonic".}
-proc image_menu_item_new_from_stock*(stock_id: cstring, accel_group: PAccelGroup): PImageMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_new_from_stock".}
-proc item_set_image*(image_menu_item: PImageMenuItem, image: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_set_image".}
-proc item_get_image*(image_menu_item: PImageMenuItem): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_image_menu_item_get_image".}
-const 
-  bm_TGtkIMContextSimple_in_hex_sequence* = 0x0001'i16
-  bp_TGtkIMContextSimple_in_hex_sequence* = 0'i16
-
-proc TYPE_IM_CONTEXT_SIMPLE*(): GType
-proc IM_CONTEXT_SIMPLE*(obj: pointer): PIMContextSimple
-proc IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): PIMContextSimpleClass
-proc IS_IM_CONTEXT_SIMPLE*(obj: pointer): bool
-proc IS_IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): bool
-proc IM_CONTEXT_SIMPLE_GET_CLASS*(obj: pointer): PIMContextSimpleClass
-proc in_hex_sequence*(a: PIMContextSimple): guint
-proc set_in_hex_sequence*(a: PIMContextSimple, `in_hex_sequence`: guint)
-proc im_context_simple_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_get_type".}
-proc im_context_simple_new*(): PIMContext{.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_new".}
-proc simple_add_table*(context_simple: PIMContextSimple, 
-                                  data: Pguint16, max_seq_len: gint, 
-                                  n_seqs: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_im_context_simple_add_table".}
-proc TYPE_IM_MULTICONTEXT*(): GType
-proc IM_MULTICONTEXT*(obj: pointer): PIMMulticontext
-proc IM_MULTICONTEXT_CLASS*(klass: pointer): PIMMulticontextClass
-proc IS_IM_MULTICONTEXT*(obj: pointer): bool
-proc IS_IM_MULTICONTEXT_CLASS*(klass: pointer): bool
-proc IM_MULTICONTEXT_GET_CLASS*(obj: pointer): PIMMulticontextClass
-proc im_multicontext_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_im_multicontext_get_type".}
-proc im_multicontext_new*(): PIMContext{.cdecl, dynlib: lib, 
-    importc: "gtk_im_multicontext_new".}
-proc append_menuitems*(context: PIMMulticontext, 
-                                       menushell: PMenuShell){.cdecl, 
-    dynlib: lib, importc: "gtk_im_multicontext_append_menuitems".}
-proc TYPE_INPUT_DIALOG*(): GType
-proc INPUT_DIALOG*(obj: pointer): PInputDialog
-proc INPUT_DIALOG_CLASS*(klass: pointer): PInputDialogClass
-proc IS_INPUT_DIALOG*(obj: pointer): bool
-proc IS_INPUT_DIALOG_CLASS*(klass: pointer): bool
-proc INPUT_DIALOG_GET_CLASS*(obj: pointer): PInputDialogClass
-proc input_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_input_dialog_get_type".}
-proc input_dialog_new*(): PInputDialog{.cdecl, dynlib: lib, 
-                                        importc: "gtk_input_dialog_new".}
-proc TYPE_INVISIBLE*(): GType
-proc INVISIBLE*(obj: pointer): PInvisible
-proc INVISIBLE_CLASS*(klass: pointer): PInvisibleClass
-proc IS_INVISIBLE*(obj: pointer): bool
-proc IS_INVISIBLE_CLASS*(klass: pointer): bool
-proc INVISIBLE_GET_CLASS*(obj: pointer): PInvisibleClass
-proc invisible_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_invisible_get_type".}
-proc invisible_new*(): PInvisible{.cdecl, dynlib: lib, 
-                                   importc: "gtk_invisible_new".}
-proc invisible_new_for_screen*(screen: gdk2.PScreen): PInvisible{.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_new_for_screen".}
-proc set_screen*(invisible: PInvisible, screen: gdk2.PScreen){.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_set_screen".}
-proc get_screen*(invisible: PInvisible): gdk2.PScreen{.cdecl, 
-    dynlib: lib, importc: "gtk_invisible_get_screen".}
-proc TYPE_ITEM_FACTORY*(): GType
-proc ITEM_FACTORY*(anObject: pointer): PItemFactory
-proc ITEM_FACTORY_CLASS*(klass: pointer): PItemFactoryClass
-proc IS_ITEM_FACTORY*(anObject: pointer): bool
-proc IS_ITEM_FACTORY_CLASS*(klass: pointer): bool
-proc ITEM_FACTORY_GET_CLASS*(obj: pointer): PItemFactoryClass
-proc item_factory_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_item_factory_get_type".}
-proc item_factory_new*(container_type: TType, path: cstring, 
-                       accel_group: PAccelGroup): PItemFactory{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_new".}
-proc construct*(ifactory: PItemFactory, container_type: TType, 
-                             path: cstring, accel_group: PAccelGroup){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_construct".}
-proc item_factory_add_foreign*(accel_widget: PWidget, full_path: cstring, 
-                               accel_group: PAccelGroup, keyval: guint, 
-                               modifiers: gdk2.TModifierType){.cdecl, dynlib: lib, 
-    importc: "gtk_item_factory_add_foreign".}
-proc item_factory_from_widget*(widget: PWidget): PItemFactory{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_from_widget".}
-proc item_factory_path_from_widget*(widget: PWidget): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_path_from_widget".}
-proc get_item*(ifactory: PItemFactory, path: cstring): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_item".}
-proc get_widget*(ifactory: PItemFactory, path: cstring): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_widget".}
-proc get_widget_by_action*(ifactory: PItemFactory, action: guint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_widget_by_action".}
-proc get_item_by_action*(ifactory: PItemFactory, action: guint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_get_item_by_action".}
-proc create_item*(ifactory: PItemFactory, entry: PItemFactoryEntry, 
-                               callback_data: gpointer, callback_type: guint){.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_create_item".}
-proc create_items*(ifactory: PItemFactory, n_entries: guint, 
-                                entries: PItemFactoryEntry, 
-                                callback_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_item_factory_create_items".}
-proc delete_item*(ifactory: PItemFactory, path: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_delete_item".}
-proc delete_entry*(ifactory: PItemFactory, entry: PItemFactoryEntry){.
-    cdecl, dynlib: lib, importc: "gtk_item_factory_delete_entry".}
-proc delete_entries*(ifactory: PItemFactory, n_entries: guint, 
-                                  entries: PItemFactoryEntry){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_delete_entries".}
-proc popup*(ifactory: PItemFactory, x: guint, y: guint, 
-                         mouse_button: guint, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup".}
-proc popup*(ifactory: PItemFactory, popup_data: gpointer, 
-                                   destroy: TDestroyNotify, x: guint, y: guint, 
-                                   mouse_button: guint, time: guint32){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_with_data".}
-proc popup_data*(ifactory: PItemFactory): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_data".}
-proc item_factory_popup_data_from_widget*(widget: PWidget): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_popup_data_from_widget".}
-proc set_translate_func*(ifactory: PItemFactory, 
-                                      fun: TTranslateFunc, data: gpointer, 
-                                      notify: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_item_factory_set_translate_func".}
-proc TYPE_LAYOUT*(): GType
-proc LAYOUT*(obj: pointer): PLayout
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass
-proc IS_LAYOUT*(obj: pointer): bool
-proc IS_LAYOUT_CLASS*(klass: pointer): bool
-proc LAYOUT_GET_CLASS*(obj: pointer): PLayoutClass
-proc layout_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_layout_get_type".}
-proc layout_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PLayout{.
-    cdecl, dynlib: lib, importc: "gtk_layout_new".}
-proc put*(layout: PLayout, child_widget: PWidget, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_layout_put".}
-proc move*(layout: PLayout, child_widget: PWidget, x: gint, y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_layout_move".}
-proc set_size*(layout: PLayout, width: guint, height: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_size".}
-proc get_size*(layout: PLayout, width: Pguint, height: Pguint){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_get_size".}
-proc get_hadjustment*(layout: PLayout): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_layout_get_hadjustment".}
-proc get_vadjustment*(layout: PLayout): PAdjustment{.cdecl, dynlib: lib, 
-    importc: "gtk_layout_get_vadjustment".}
-proc set_hadjustment*(layout: PLayout, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_hadjustment".}
-proc set_vadjustment*(layout: PLayout, adjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_layout_set_vadjustment".}
-const 
-  bm_TGtkList_selection_mode* = 0x0003'i16
-  bp_TGtkList_selection_mode* = 0'i16
-  bm_TGtkList_drag_selection* = 0x0004'i16
-  bp_TGtkList_drag_selection* = 2'i16
-  bm_TGtkList_add_mode* = 0x0008'i16
-  bp_TGtkList_add_mode* = 3'i16
-
-proc TYPE_LIST*(): GType
-proc LIST*(obj: pointer): PList
-proc LIST_CLASS*(klass: pointer): PListClass
-proc IS_LIST*(obj: pointer): bool
-proc IS_LIST_CLASS*(klass: pointer): bool
-proc LIST_GET_CLASS*(obj: pointer): PListClass
-proc selection_mode*(a: PList): guint
-proc set_selection_mode*(a: PList, `selection_mode`: guint)
-proc drag_selection*(a: PList): guint
-proc set_drag_selection*(a: PList, `drag_selection`: guint)
-proc add_mode*(a: PList): guint
-proc set_add_mode*(a: PList, `add_mode`: guint)
-proc list_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_list_get_type".}
-proc list_new*(): PList{.cdecl, dynlib: lib, importc: "gtk_list_new".}
-proc insert_items*(list: PList, items: PGList, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_list_insert_items".}
-proc append_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_append_items".}
-proc prepend_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_prepend_items".}
-proc remove_items*(list: PList, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_remove_items".}
-proc remove_items_no_unref*(list: PList, items: PGList){.cdecl, 
-    dynlib: lib, importc: "gtk_list_remove_items_no_unref".}
-proc clear_items*(list: PList, start: gint, theEnd: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_list_clear_items".}
-proc select_item*(list: PList, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_list_select_item".}
-proc unselect_item*(list: PList, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_list_unselect_item".}
-proc select_child*(list: PList, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_select_child".}
-proc unselect_child*(list: PList, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_unselect_child".}
-proc child_position*(list: PList, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_list_child_position".}
-proc set_selection_mode*(list: PList, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_list_set_selection_mode".}
-proc extend_selection*(list: PList, scroll_type: TScrollType, 
-                            position: gfloat, auto_start_selection: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_list_extend_selection".}
-proc start_selection*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_start_selection".}
-proc end_selection*(list: PList){.cdecl, dynlib: lib, 
-                                       importc: "gtk_list_end_selection".}
-proc select_all*(list: PList){.cdecl, dynlib: lib, 
-                                    importc: "gtk_list_select_all".}
-proc unselect_all*(list: PList){.cdecl, dynlib: lib, 
-                                      importc: "gtk_list_unselect_all".}
-proc scroll_horizontal*(list: PList, scroll_type: TScrollType, 
-                             position: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_list_scroll_horizontal".}
-proc scroll_vertical*(list: PList, scroll_type: TScrollType, 
-                           position: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_list_scroll_vertical".}
-proc toggle_add_mode*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_add_mode".}
-proc toggle_focus_row*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_focus_row".}
-proc toggle_row*(list: PList, item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_list_toggle_row".}
-proc undo_selection*(list: PList){.cdecl, dynlib: lib, 
-                                        importc: "gtk_list_undo_selection".}
-proc end_drag_selection*(list: PList){.cdecl, dynlib: lib, 
-    importc: "gtk_list_end_drag_selection".}
-const 
-  TREE_MODEL_ITERS_PERSIST* = 1 shl 0
-  TREE_MODEL_LIST_ONLY* = 1 shl 1
-
-proc TYPE_TREE_MODEL*(): GType
-proc TREE_MODEL*(obj: pointer): PTreeModel
-proc IS_TREE_MODEL*(obj: pointer): bool
-proc TREE_MODEL_GET_IFACE*(obj: pointer): PTreeModelIface
-proc TYPE_TREE_ITER*(): GType
-proc TYPE_TREE_PATH*(): GType
-proc tree_path_new*(): PTreePath{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_path_new".}
-proc tree_path_new_from_string*(path: cstring): PTreePath{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_new_from_string".}
-proc to_string*(path: PTreePath): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_to_string".}
-proc tree_path_new_root*(): PTreePath
-proc tree_path_new_first*(): PTreePath{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_path_new_first".}
-proc append_index*(path: PTreePath, index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_append_index".}
-proc prepend_index*(path: PTreePath, index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_prepend_index".}
-proc get_depth*(path: PTreePath): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_get_depth".}
-proc get_indices*(path: PTreePath): Pgint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_get_indices".}
-proc free*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_free".}
-proc copy*(path: PTreePath): PTreePath{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_copy".}
-proc tree_path_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_path_get_type".}
-proc compare*(a: PTreePath, b: PTreePath): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_compare".}
-proc next*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_next".}
-proc prev*(path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_prev".}
-proc up*(path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_path_up".}
-proc down*(path: PTreePath){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_path_down".}
-proc is_ancestor*(path: PTreePath, descendant: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_path_is_ancestor".}
-proc is_descendant*(path: PTreePath, ancestor: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_path_is_descendant".}
-proc row_reference_new*(model: PTreeModel, path: PTreePath): PTreeRowReference{.
-    cdecl, dynlib: lib, importc: "gtk_tree_row_reference_new".}
-proc tree_row_reference_new_proxy*(proxy: PGObject, model: PTreeModel, 
-                                   path: PTreePath): PTreeRowReference{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_new_proxy".}
-proc reference_get_path*(reference: PTreeRowReference): PTreePath{.
-    cdecl, dynlib: lib, importc: "gtk_tree_row_reference_get_path".}
-proc reference_valid*(reference: PTreeRowReference): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_valid".}
-proc reference_free*(reference: PTreeRowReference){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_row_reference_free".}
-proc tree_row_reference_inserted*(proxy: PGObject, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_inserted".}
-proc tree_row_reference_deleted*(proxy: PGObject, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_deleted".}
-proc tree_row_reference_reordered*(proxy: PGObject, path: PTreePath, 
-                                   iter: PTreeIter, new_order: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_row_reference_reordered".}
-proc copy*(iter: PTreeIter): PTreeIter{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_iter_copy".}
-proc free*(iter: PTreeIter){.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_iter_free".}
-proc tree_iter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_iter_get_type".}
-proc tree_model_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tree_model_get_type".}
-proc get_flags*(tree_model: PTreeModel): TTreeModelFlags{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_flags".}
-proc get_n_columns*(tree_model: PTreeModel): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_n_columns".}
-proc get_column_type*(tree_model: PTreeModel, index: gint): GType{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_column_type".}
-proc get_iter*(tree_model: PTreeModel, iter: PTreeIter, 
-                          path: PTreePath): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_get_iter".}
-proc get_iter_from_string*(tree_model: PTreeModel, iter: PTreeIter, 
-                                      path_string: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_get_iter_from_string".}
-proc get_iter_root*(tree_model: PTreeModel, iter: PTreeIter): gboolean
-proc get_iter_first*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_iter_first".}
-proc get_path*(tree_model: PTreeModel, iter: PTreeIter): PTreePath{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_get_path".}
-proc get_value*(tree_model: PTreeModel, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_get_value".}
-proc iter_next*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_next".}
-proc iter_children*(tree_model: PTreeModel, iter: PTreeIter, 
-                               parent: PTreeIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_iter_children".}
-proc iter_has_child*(tree_model: PTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_has_child".}
-proc iter_n_children*(tree_model: PTreeModel, iter: PTreeIter): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_iter_n_children".}
-proc iter_nth_child*(tree_model: PTreeModel, iter: PTreeIter, 
-                                parent: PTreeIter, n: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_iter_nth_child".}
-proc iter_parent*(tree_model: PTreeModel, iter: PTreeIter, 
-                             child: PTreeIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_iter_parent".}
-proc get_string_from_iter*(tree_model: PTreeModel, iter: PTreeIter): 
-    cstring{.cdecl, dynlib: lib,
-             importc: "gtk_tree_model_get_string_from_iter".}
-proc ref_node*(tree_model: PTreeModel, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_ref_node".}
-proc unref_node*(tree_model: PTreeModel, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_unref_node".}
-proc foreach*(model: PTreeModel, fun: TTreeModelForeachFunc, 
-                         user_data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_foreach".}
-proc row_changed*(tree_model: PTreeModel, path: PTreePath, 
-                             iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_changed".}
-proc row_inserted*(tree_model: PTreeModel, path: PTreePath, 
-                              iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_inserted".}
-proc row_has_child_toggled*(tree_model: PTreeModel, path: PTreePath, 
-                                       iter: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_row_has_child_toggled".}
-proc row_deleted*(tree_model: PTreeModel, path: PTreePath){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_row_deleted".}
-proc rows_reordered*(tree_model: PTreeModel, path: PTreePath, 
-                                iter: PTreeIter, new_order: Pgint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_rows_reordered".}
-const 
-  TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID* = - (1)
-
-proc TYPE_TREE_SORTABLE*(): GType
-proc TREE_SORTABLE*(obj: pointer): PTreeSortable
-proc TREE_SORTABLE_CLASS*(obj: pointer): PTreeSortableIface
-proc IS_TREE_SORTABLE*(obj: pointer): bool
-proc TREE_SORTABLE_GET_IFACE*(obj: pointer): PTreeSortableIface
-proc tree_sortable_get_type*(): GType{.cdecl, dynlib: lib, 
-                                       importc: "gtk_tree_sortable_get_type".}
-proc sort_column_changed*(sortable: PTreeSortable){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_sortable_sort_column_changed".}
-proc get_sort_column_id*(sortable: PTreeSortable, 
-                                       sort_column_id: Pgint, order: PSortType): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_get_sort_column_id".}
-proc set_sort_column_id*(sortable: PTreeSortable, 
-                                       sort_column_id: gint, order: TSortType){.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_sort_column_id".}
-proc set_sort_func*(sortable: PTreeSortable, sort_column_id: gint, 
-                                  sort_func: TTreeIterCompareFunc, 
-                                  user_data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_sort_func".}
-proc set_default_sort_func*(sortable: PTreeSortable, 
-    sort_func: TTreeIterCompareFunc, user_data: gpointer, 
-    destroy: TDestroyNotify){.cdecl, dynlib: lib, importc: "gtk_tree_sortable_set_default_sort_func".}
-proc has_default_sort_func*(sortable: PTreeSortable): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_sortable_has_default_sort_func".}
-proc TYPE_TREE_MODEL_SORT*(): GType
-proc TREE_MODEL_SORT*(obj: pointer): PTreeModelSort
-proc TREE_MODEL_SORT_CLASS*(klass: pointer): PTreeModelSortClass
-proc IS_TREE_MODEL_SORT*(obj: pointer): bool
-proc IS_TREE_MODEL_SORT_CLASS*(klass: pointer): bool
-proc TREE_MODEL_SORT_GET_CLASS*(obj: pointer): PTreeModelSortClass
-proc tree_model_sort_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_sort_get_type".}
-proc sort_new*(child_model: PTreeModel): PTreeModel{.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_sort_new_with_model".}
-proc sort_get_model*(tree_model: PTreeModelSort): PTreeModel{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_get_model".}
-proc tree_model_sort_convert_child_path_to_path*(
-    tree_model_sort: PTreeModelSort, child_path: PTreePath): PTreePath{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_convert_child_path_to_path".}
-proc tree_model_sort_convert_child_iter_to_iter*(
-    tree_model_sort: PTreeModelSort, sort_iter: PTreeIter, child_iter: PTreeIter){.
-    cdecl, dynlib: lib, 
-    importc: "gtk_tree_model_sort_convert_child_iter_to_iter".}
-proc tree_model_sort_convert_path_to_child_path*(
-    tree_model_sort: PTreeModelSort, sorted_path: PTreePath): PTreePath{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_convert_path_to_child_path".}
-proc tree_model_sort_convert_iter_to_child_iter*(
-    tree_model_sort: PTreeModelSort, child_iter: PTreeIter, 
-    sorted_iter: PTreeIter){.cdecl, dynlib: lib, importc: "gtk_tree_model_sort_convert_iter_to_child_iter".}
-proc sort_reset_default_sort_func*(tree_model_sort: PTreeModelSort){.
-    cdecl, dynlib: lib, importc: "gtk_tree_model_sort_reset_default_sort_func".}
-proc sort_clear_cache*(tree_model_sort: PTreeModelSort){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_model_sort_clear_cache".}
-const 
-  bm_TGtkListStore_columns_dirty* = 0x0001'i16
-  bp_TGtkListStore_columns_dirty* = 0'i16
-
-proc TYPE_LIST_STORE*(): GType
-proc LIST_STORE*(obj: pointer): PListStore
-proc LIST_STORE_CLASS*(klass: pointer): PListStoreClass
-proc IS_LIST_STORE*(obj: pointer): bool
-proc IS_LIST_STORE_CLASS*(klass: pointer): bool
-proc LIST_STORE_GET_CLASS*(obj: pointer): PListStoreClass
-proc columns_dirty*(a: PListStore): guint
-proc set_columns_dirty*(a: PListStore, `columns_dirty`: guint)
-proc list_store_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_list_store_get_type".}
-proc list_store_newv*(n_columns: gint, types: PGType): PListStore{.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_newv".}
-proc set_column_types*(list_store: PListStore, n_columns: gint, 
-                                  types: PGType){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_set_column_types".}
-proc set_value*(list_store: PListStore, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_set_value".}
-proc remove*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_remove".}
-proc insert*(list_store: PListStore, iter: PTreeIter, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_list_store_insert".}
-proc insert_before*(list_store: PListStore, iter: PTreeIter, 
-                               sibling: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_insert_before".}
-proc insert_after*(list_store: PListStore, iter: PTreeIter, 
-                              sibling: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_insert_after".}
-proc prepend*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_prepend".}
-proc append*(list_store: PListStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_list_store_append".}
-proc clear*(list_store: PListStore){.cdecl, dynlib: lib, 
-    importc: "gtk_list_store_clear".}
-when false: 
-  const 
-    PRIORITY_RESIZE* = G_PRIORITY_HIGH_IDLE + 10
-proc check_version*(required_major: guint, required_minor: guint, 
-                    required_micro: guint): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_check_version".}
-proc disable_setlocale*(){.cdecl, dynlib: lib, importc: "gtk_disable_setlocale".}
-proc set_locale*(): cstring{.cdecl, dynlib: lib, importc: "gtk_set_locale".}
-proc get_default_language*(): pango.PLanguage{.cdecl, dynlib: lib, 
-    importc: "gtk_get_default_language".}
-proc events_pending*(): gint{.cdecl, dynlib: lib, importc: "gtk_events_pending".}
-proc main_do_event*(event: gdk2.PEvent){.cdecl, dynlib: lib, 
-                                       importc: "gtk_main_do_event".}
-proc main*(){.cdecl, dynlib: lib, importc: "gtk_main".}
-proc init*(argc, argv: pointer){.cdecl, dynlib: lib, importc: "gtk_init".}
-proc main_level*(): guint{.cdecl, dynlib: lib, importc: "gtk_main_level".}
-proc main_quit*(){.cdecl, dynlib: lib, importc: "gtk_main_quit".}
-proc main_iteration*(): gboolean{.cdecl, dynlib: lib, 
-                                  importc: "gtk_main_iteration".}
-proc main_iteration_do*(blocking: gboolean): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_main_iteration_do".}
-proc gtkTrue*(): gboolean{.cdecl, dynlib: lib, importc: "gtk_true".}
-proc gtkFalse*(): gboolean{.cdecl, dynlib: lib, importc: "gtk_false".}
-proc grab_add*(widget: PWidget){.cdecl, dynlib: lib, importc: "gtk_grab_add".}
-proc grab_get_current*(): PWidget{.cdecl, dynlib: lib, 
-                                   importc: "gtk_grab_get_current".}
-proc grab_remove*(widget: PWidget){.cdecl, dynlib: lib, 
-                                    importc: "gtk_grab_remove".}
-proc init_add*(`function`: TFunction, data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_init_add".}
-proc quit_add_destroy*(main_level: guint, anObject: PObject){.cdecl, 
-    dynlib: lib, importc: "gtk_quit_add_destroy".}
-proc quit_add*(main_level: guint, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_quit_add".}
-proc quit_add_full*(main_level: guint, `function`: TFunction, 
-                    marshal: TCallbackMarshal, data: gpointer, 
-                    destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_quit_add_full".}
-proc quit_remove*(quit_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_quit_remove".}
-proc quit_remove_by_data*(data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_quit_remove_by_data".}
-proc timeout_add*(interval: guint32, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_timeout_add".}
-proc timeout_add_full*(interval: guint32, `function`: TFunction, 
-                       marshal: TCallbackMarshal, data: gpointer, 
-                       destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_timeout_add_full".}
-proc timeout_remove*(timeout_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_timeout_remove".}
-proc idle_add*(`function`: TFunction, data: gpointer): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_idle_add".}
-proc idle_add_priority*(priority: gint, `function`: TFunction, data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_idle_add_priority".}
-proc idle_add_full*(priority: gint, `function`: TFunction, 
-                    marshal: TCallbackMarshal, data: gpointer, 
-                    destroy: TDestroyNotify): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_idle_add_full".}
-proc idle_remove*(idle_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_idle_remove".}
-proc idle_remove_by_data*(data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_idle_remove_by_data".}
-proc input_add_full*(source: gint, condition: gdk2.TInputCondition, 
-                     `function`: gdk2.TInputFunction, marshal: TCallbackMarshal, 
-                     data: gpointer, destroy: TDestroyNotify): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_input_add_full".}
-proc input_remove*(input_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_input_remove".}
-proc key_snooper_install*(snooper: TKeySnoopFunc, func_data: gpointer): guint{.
-    cdecl, dynlib: lib, importc: "gtk_key_snooper_install".}
-proc key_snooper_remove*(snooper_handler_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_key_snooper_remove".}
-proc get_current_event*(): gdk2.PEvent{.cdecl, dynlib: lib, 
-                                      importc: "gtk_get_current_event".}
-proc get_current_event_time*(): guint32{.cdecl, dynlib: lib, 
-    importc: "gtk_get_current_event_time".}
-proc get_current_event_state*(state: gdk2.PModifierType): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_get_current_event_state".}
-proc get_event_widget*(event: gdk2.PEvent): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_get_event_widget".}
-proc propagate_event*(widget: PWidget, event: gdk2.PEvent){.cdecl, dynlib: lib, 
-    importc: "gtk_propagate_event".}
-proc boolean_handled_accumulator*(ihint: PGSignalInvocationHint, 
-                                  return_accu: PGValue, handler_return: PGValue, 
-                                  dummy: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_boolean_handled_accumulator".}
-proc find_module*(name: cstring, thetype: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "_gtk_find_module".}
-proc get_module_path*(thetype: cstring): PPgchar{.cdecl, dynlib: lib, 
-    importc: "_gtk_get_module_path".}
-proc TYPE_MENU_BAR*(): GType
-proc MENU_BAR*(obj: pointer): PMenuBar
-proc MENU_BAR_CLASS*(klass: pointer): PMenuBarClass
-proc IS_MENU_BAR*(obj: pointer): bool
-proc IS_MENU_BAR_CLASS*(klass: pointer): bool
-proc MENU_BAR_GET_CLASS*(obj: pointer): PMenuBarClass
-proc menu_bar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_menu_bar_get_type".}
-proc menu_bar_new*(): PMenuBar{.cdecl, dynlib: lib, importc: "gtk_menu_bar_new".}
-proc cycle_focus*(menubar: PMenuBar, dir: TDirectionType){.cdecl, 
-    dynlib: lib, importc: "_gtk_menu_bar_cycle_focus".}
-proc TYPE_MESSAGE_DIALOG*(): GType
-proc MESSAGE_DIALOG*(obj: pointer): PMessageDialog
-proc MESSAGE_DIALOG_CLASS*(klass: pointer): PMessageDialogClass
-proc IS_MESSAGE_DIALOG*(obj: pointer): bool
-proc IS_MESSAGE_DIALOG_CLASS*(klass: pointer): bool
-proc MESSAGE_DIALOG_GET_CLASS*(obj: pointer): PMessageDialogClass
-proc message_dialog_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_message_dialog_get_type".}
-const 
-  bm_TGtkNotebook_show_tabs* = 0x0001'i16
-  bp_TGtkNotebook_show_tabs* = 0'i16
-  bm_TGtkNotebook_homogeneous* = 0x0002'i16
-  bp_TGtkNotebook_homogeneous* = 1'i16
-  bm_TGtkNotebook_show_border* = 0x0004'i16
-  bp_TGtkNotebook_show_border* = 2'i16
-  bm_TGtkNotebook_tab_pos* = 0x0018'i16
-  bp_TGtkNotebook_tab_pos* = 3'i16
-  bm_TGtkNotebook_scrollable* = 0x0020'i16
-  bp_TGtkNotebook_scrollable* = 5'i16
-  bm_TGtkNotebook_in_child* = 0x00C0'i16
-  bp_TGtkNotebook_in_child* = 6'i16
-  bm_TGtkNotebook_click_child* = 0x0300'i16
-  bp_TGtkNotebook_click_child* = 8'i16
-  bm_TGtkNotebook_button* = 0x0C00'i16
-  bp_TGtkNotebook_button* = 10'i16
-  bm_TGtkNotebook_need_timer* = 0x1000'i16
-  bp_TGtkNotebook_need_timer* = 12'i16
-  bm_TGtkNotebook_child_has_focus* = 0x2000'i16
-  bp_TGtkNotebook_child_has_focus* = 13'i16
-  bm_TGtkNotebook_have_visible_child* = 0x4000'i16
-  bp_TGtkNotebook_have_visible_child* = 14'i16
-  bm_TGtkNotebook_focus_out* = 0x8000'i16
-  bp_TGtkNotebook_focus_out* = 15'i16
-
-proc TYPE_NOTEBOOK*(): GType
-proc NOTEBOOK*(obj: pointer): PNotebook
-proc NOTEBOOK_CLASS*(klass: pointer): PNotebookClass
-proc IS_NOTEBOOK*(obj: pointer): bool
-proc IS_NOTEBOOK_CLASS*(klass: pointer): bool
-proc NOTEBOOK_GET_CLASS*(obj: pointer): PNotebookClass
-proc show_tabs*(a: PNotebook): guint
-proc set_show_tabs*(a: PNotebook, `show_tabs`: guint)
-proc homogeneous*(a: PNotebook): guint
-proc set_homogeneous*(a: PNotebook, `homogeneous`: guint)
-proc show_border*(a: PNotebook): guint
-proc set_show_border*(a: PNotebook, `show_border`: guint)
-proc tab_pos*(a: PNotebook): guint
-proc scrollable*(a: PNotebook): guint
-proc set_scrollable*(a: PNotebook, `scrollable`: guint)
-proc in_child*(a: PNotebook): guint
-proc set_in_child*(a: PNotebook, `in_child`: guint)
-proc click_child*(a: PNotebook): guint
-proc set_click_child*(a: PNotebook, `click_child`: guint)
-proc button*(a: PNotebook): guint
-proc set_button*(a: PNotebook, `button`: guint)
-proc need_timer*(a: PNotebook): guint
-proc set_need_timer*(a: PNotebook, `need_timer`: guint)
-proc child_has_focus*(a: PNotebook): guint
-proc set_child_has_focus*(a: PNotebook, `child_has_focus`: guint)
-proc have_visible_child*(a: PNotebook): guint
-proc set_have_visible_child*(a: PNotebook, `have_visible_child`: guint)
-proc focus_out*(a: PNotebook): guint
-proc set_focus_out*(a: PNotebook, `focus_out`: guint)
-proc notebook_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_notebook_get_type".}
-proc notebook_new*(): PNotebook{.cdecl, dynlib: lib, importc: "gtk_notebook_new".}
-proc append_page*(notebook: PNotebook, child: PWidget, 
-                           tab_label: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_append_page".}
-proc append_page_menu*(notebook: PNotebook, child: PWidget, 
-                                tab_label: PWidget, menu_label: PWidget): gint{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_append_page_menu".}
-proc prepend_page*(notebook: PNotebook, child: PWidget, 
-                            tab_label: PWidget): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_prepend_page".}
-proc prepend_page_menu*(notebook: PNotebook, child: PWidget, 
-                                 tab_label: PWidget, menu_label: PWidget): gint{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_prepend_page_menu".}
-proc insert_page*(notebook: PNotebook, child: PWidget, 
-                           tab_label: PWidget, position: gint): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_insert_page".}
-proc insert_page_menu*(notebook: PNotebook, child: PWidget, 
-                                tab_label: PWidget, menu_label: PWidget, 
-                                position: gint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_insert_page_menu".}
-proc remove_page*(notebook: PNotebook, page_num: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_remove_page".}
-proc get_current_page*(notebook: PNotebook): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_current_page".}
-proc get_n_pages*(notebook: PNotebook): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_n_pages".}
-proc get_nth_page*(notebook: PNotebook, page_num: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_nth_page".}
-proc page_num*(notebook: PNotebook, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_page_num".}
-proc set_current_page*(notebook: PNotebook, page_num: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_current_page".}
-proc next_page*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_next_page".}
-proc prev_page*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_prev_page".}
-proc set_show_border*(notebook: PNotebook, show_border: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_notebook_set_show_border".}
-proc get_show_border*(notebook: PNotebook): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_show_border".}
-proc set_show_tabs*(notebook: PNotebook, show_tabs: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_show_tabs".}
-proc get_show_tabs*(notebook: PNotebook): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_get_show_tabs".}
-#proc set_tab_pos*(notebook: PNotebook, pos: TPositionType){.cdecl, 
-#    dynlib: lib, importc: "gtk_notebook_set_tab_pos".}
-proc get_tab_pos*(notebook: PNotebook): TPositionType{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_tab_pos".}
-proc set_scrollable*(notebook: PNotebook, scrollable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_set_scrollable".}
-proc get_scrollable*(notebook: PNotebook): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_get_scrollable".}
-proc set_tab_reorderable*(notebook: PNotebook, child: PWidget, b: bool){.cdecl,
-    dynlib: lib, importc: "gtk_notebook_set_tab_reorderable".}
-proc get_tab_reorderable*(notebook: PNotebook, child: PWidget): bool {.cdecl,
-    dynlib: lib, importc: "gtk_notebook_get_tab_reorderable".}
-proc popup_enable*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_popup_enable".}
-proc popup_disable*(notebook: PNotebook){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_popup_disable".}
-proc get_tab_label*(notebook: PNotebook, child: PWidget): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_tab_label".}
-proc set_tab_label*(notebook: PNotebook, child: PWidget, 
-                             tab_label: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label".}
-proc set_tab_label_text*(notebook: PNotebook, child: PWidget, 
-                                  tab_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label_text".}
-proc get_tab_label_text*(notebook: PNotebook, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_tab_label_text".}
-proc get_menu_label*(notebook: PNotebook, child: PWidget): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_menu_label".}
-proc set_menu_label*(notebook: PNotebook, child: PWidget, 
-                              menu_label: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_menu_label".}
-proc set_menu_label_text*(notebook: PNotebook, child: PWidget, 
-                                   menu_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_menu_label_text".}
-proc get_menu_label_text*(notebook: PNotebook, child: PWidget): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_notebook_get_menu_label_text".}
-proc query_tab_label_packing*(notebook: PNotebook, child: PWidget, 
-                                       expand: Pgboolean, fill: Pgboolean, 
-                                       pack_type: PPackType){.cdecl, 
-    dynlib: lib, importc: "gtk_notebook_query_tab_label_packing".}
-proc set_tab_label_packing*(notebook: PNotebook, child: PWidget, 
-                                     expand: gboolean, fill: gboolean, 
-                                     pack_type: TPackType){.cdecl, dynlib: lib, 
-    importc: "gtk_notebook_set_tab_label_packing".}
-proc reorder_child*(notebook: PNotebook, child: PWidget, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_notebook_reorder_child".}
-const 
-  bm_TGtkOldEditable_has_selection* = 0x0001'i16
-  bp_TGtkOldEditable_has_selection* = 0'i16
-  bm_TGtkOldEditable_editable* = 0x0002'i16
-  bp_TGtkOldEditable_editable* = 1'i16
-  bm_TGtkOldEditable_visible* = 0x0004'i16
-  bp_TGtkOldEditable_visible* = 2'i16
-
-proc TYPE_OLD_EDITABLE*(): GType
-proc OLD_EDITABLE*(obj: pointer): POldEditable
-proc OLD_EDITABLE_CLASS*(klass: pointer): POldEditableClass
-proc IS_OLD_EDITABLE*(obj: pointer): bool
-proc IS_OLD_EDITABLE_CLASS*(klass: pointer): bool
-proc OLD_EDITABLE_GET_CLASS*(obj: pointer): POldEditableClass
-proc has_selection*(a: POldEditable): guint
-proc set_has_selection*(a: POldEditable, `has_selection`: guint)
-proc editable*(a: POldEditable): guint
-proc set_editable*(a: POldEditable, `editable`: guint)
-proc visible*(a: POldEditable): guint
-proc set_visible*(a: POldEditable, `visible`: guint)
-proc old_editable_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_old_editable_get_type".}
-proc claim_selection*(old_editable: POldEditable, claim: gboolean, 
-                                   time: guint32){.cdecl, dynlib: lib, 
-    importc: "gtk_old_editable_claim_selection".}
-proc changed*(old_editable: POldEditable){.cdecl, dynlib: lib, 
-    importc: "gtk_old_editable_changed".}
-proc TYPE_OPTION_MENU*(): GType
-proc OPTION_MENU*(obj: pointer): POptionMenu
-proc OPTION_MENU_CLASS*(klass: pointer): POptionMenuClass
-proc IS_OPTION_MENU*(obj: pointer): bool
-proc IS_OPTION_MENU_CLASS*(klass: pointer): bool
-proc OPTION_MENU_GET_CLASS*(obj: pointer): POptionMenuClass
-proc option_menu_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_option_menu_get_type".}
-proc option_menu_new*(): POptionMenu{.cdecl, dynlib: lib, 
-                                      importc: "gtk_option_menu_new".}
-proc get_menu*(option_menu: POptionMenu): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_get_menu".}
-proc set_menu*(option_menu: POptionMenu, menu: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_set_menu".}
-proc remove_menu*(option_menu: POptionMenu){.cdecl, dynlib: lib, 
-    importc: "gtk_option_menu_remove_menu".}
-proc get_history*(option_menu: POptionMenu): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_get_history".}
-proc set_history*(option_menu: POptionMenu, index: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_option_menu_set_history".}
-const 
-  bm_TGtkPixmap_build_insensitive* = 0x0001'i16
-  bp_TGtkPixmap_build_insensitive* = 0'i16
-
-proc TYPE_PIXMAP*(): GType
-proc PIXMAP*(obj: pointer): PPixmap
-proc PIXMAP_CLASS*(klass: pointer): PPixmapClass
-proc IS_PIXMAP*(obj: pointer): bool
-proc IS_PIXMAP_CLASS*(klass: pointer): bool
-proc PIXMAP_GET_CLASS*(obj: pointer): PPixmapClass
-proc build_insensitive*(a: PPixmap): guint
-proc set_build_insensitive*(a: PPixmap, `build_insensitive`: guint)
-proc pixmap_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_pixmap_get_type".}
-proc pixmap_new*(pixmap: gdk2.PPixmap, mask: gdk2.PBitmap): PPixmap{.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_new".}
-proc set*(pixmap: PPixmap, val: gdk2.PPixmap, mask: gdk2.PBitmap){.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_set".}
-proc get*(pixmap: PPixmap, val: var gdk2.PPixmap, mask: var gdk2.PBitmap){.
-    cdecl, dynlib: lib, importc: "gtk_pixmap_get".}
-proc set_build_insensitive*(pixmap: PPixmap, build: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_pixmap_set_build_insensitive".}
-const 
-  bm_TGtkPlug_same_app* = 0x0001'i16
-  bp_TGtkPlug_same_app* = 0'i16
-
-proc TYPE_PLUG*(): GType
-proc PLUG*(obj: pointer): PPlug
-proc PLUG_CLASS*(klass: pointer): PPlugClass
-proc IS_PLUG*(obj: pointer): bool
-proc IS_PLUG_CLASS*(klass: pointer): bool
-proc PLUG_GET_CLASS*(obj: pointer): PPlugClass
-proc same_app*(a: PPlug): guint
-proc set_same_app*(a: PPlug, `same_app`: guint)
-proc plug_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_plug_get_type".}
-proc construct_for_display*(plug: PPlug, display: gdk2.PDisplay, 
-                                 socket_id: gdk2.TNativeWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_plug_construct_for_display".}
-proc plug_new_for_display*(display: gdk2.PDisplay, socket_id: gdk2.TNativeWindow): PPlug{.
-    cdecl, dynlib: lib, importc: "gtk_plug_new_for_display".}
-proc get_id*(plug: PPlug): gdk2.TNativeWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_plug_get_id".}
-proc add_to_socket*(plug: PPlug, socket: PSocket){.cdecl, dynlib: lib, 
-    importc: "_gtk_plug_add_to_socket".}
-proc remove_from_socket*(plug: PPlug, socket: PSocket){.cdecl, dynlib: lib, 
-    importc: "_gtk_plug_remove_from_socket".}
-const 
-  bm_TGtkPreview_type* = 0x0001'i16
-  bp_TGtkPreview_type* = 0'i16
-  bm_TGtkPreview_expand* = 0x0002'i16
-  bp_TGtkPreview_expand* = 1'i16
-
-proc TYPE_PREVIEW*(): GType
-proc PREVIEW*(obj: pointer): PPreview
-proc PREVIEW_CLASS*(klass: pointer): PPreviewClass
-proc IS_PREVIEW*(obj: pointer): bool
-proc IS_PREVIEW_CLASS*(klass: pointer): bool
-proc PREVIEW_GET_CLASS*(obj: pointer): PPreviewClass
-proc get_type*(a: PPreview): guint
-proc set_type*(a: PPreview, `type`: guint)
-proc get_expand*(a: PPreview): guint
-proc set_expand*(a: PPreview, `expand`: guint)
-proc preview_get_type*(): TType{.cdecl, dynlib: lib, 
-                                 importc: "gtk_preview_get_type".}
-proc preview_uninit*(){.cdecl, dynlib: lib, importc: "gtk_preview_uninit".}
-proc preview_new*(thetype: TPreviewClass): PPreview{.cdecl, dynlib: lib, 
-    importc: "gtk_preview_new".}
-proc size*(preview: PPreview, width: gint, height: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_size".}
-proc put*(preview: PPreview, window: gdk2.PWindow, gc: gdk2.PGC, srcx: gint, 
-                  srcy: gint, destx: gint, desty: gint, width: gint, 
-                  height: gint){.cdecl, dynlib: lib, importc: "gtk_preview_put".}
-proc draw_row*(preview: PPreview, data: Pguchar, x: gint, y: gint, 
-                       w: gint){.cdecl, dynlib: lib, 
-                                 importc: "gtk_preview_draw_row".}
-proc set_expand*(preview: PPreview, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_expand".}
-proc preview_set_gamma*(gamma: float64){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_gamma".}
-proc preview_set_color_cube*(nred_shades: guint, ngreen_shades: guint, 
-                             nblue_shades: guint, ngray_shades: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_color_cube".}
-proc preview_set_install_cmap*(install_cmap: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_install_cmap".}
-proc preview_set_reserved*(nreserved: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_preview_set_reserved".}
-proc set_dither*(preview: PPreview, dither: gdk2.TRgbDither){.cdecl, 
-    dynlib: lib, importc: "gtk_preview_set_dither".}
-proc preview_get_info*(): PPreviewInfo{.cdecl, dynlib: lib, 
-                                        importc: "gtk_preview_get_info".}
-proc preview_reset*(){.cdecl, dynlib: lib, importc: "gtk_preview_reset".}
-const 
-  bm_TGtkProgress_show_text* = 0x0001'i16
-  bp_TGtkProgress_show_text* = 0'i16
-  bm_TGtkProgress_activity_mode* = 0x0002'i16
-  bp_TGtkProgress_activity_mode* = 1'i16
-  bm_TGtkProgress_use_text_format* = 0x0004'i16
-  bp_TGtkProgress_use_text_format* = 2'i16
-
-proc show_text*(a: PProgress): guint
-proc set_show_text*(a: PProgress, `show_text`: guint)
-proc activity_mode*(a: PProgress): guint
-proc set_activity_mode*(a: PProgress, `activity_mode`: guint)
-proc use_text_format*(a: PProgress): guint
-proc set_use_text_format*(a: PProgress, `use_text_format`: guint)
-const 
-  bm_TGtkProgressBar_activity_dir* = 0x0001'i16
-  bp_TGtkProgressBar_activity_dir* = 0'i16
-
-proc TYPE_PROGRESS_BAR*(): GType
-proc PROGRESS_BAR*(obj: pointer): PProgressBar
-proc PROGRESS_BAR_CLASS*(klass: pointer): PProgressBarClass
-proc IS_PROGRESS_BAR*(obj: pointer): bool
-proc IS_PROGRESS_BAR_CLASS*(klass: pointer): bool
-proc PROGRESS_BAR_GET_CLASS*(obj: pointer): PProgressBarClass
-proc activity_dir*(a: PProgressBar): guint
-proc set_activity_dir*(a: PProgressBar, `activity_dir`: guint)
-proc progress_bar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_progress_bar_get_type".}
-proc progress_bar_new*(): PProgressBar{.cdecl, dynlib: lib, 
-                                        importc: "gtk_progress_bar_new".}
-proc pulse*(pbar: PProgressBar){.cdecl, dynlib: lib, 
-    importc: "gtk_progress_bar_pulse".}
-proc set_text*(pbar: PProgressBar, text: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_text".}
-proc set_fraction*(pbar: PProgressBar, fraction: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_fraction".}
-proc set_pulse_step*(pbar: PProgressBar, fraction: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_pulse_step".}
-proc set_orientation*(pbar: PProgressBar, 
-                                   orientation: TProgressBarOrientation){.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_set_orientation".}
-proc get_text*(pbar: PProgressBar): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_progress_bar_get_text".}
-proc get_fraction*(pbar: PProgressBar): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_get_fraction".}
-proc get_pulse_step*(pbar: PProgressBar): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_progress_bar_get_pulse_step".}
-proc get_orientation*(pbar: PProgressBar): TProgressBarOrientation{.
-    cdecl, dynlib: lib, importc: "gtk_progress_bar_get_orientation".}
-proc TYPE_RADIO_BUTTON*(): GType
-proc RADIO_BUTTON*(obj: pointer): PRadioButton
-proc RADIO_BUTTON_CLASS*(klass: pointer): PRadioButtonClass
-proc IS_RADIO_BUTTON*(obj: pointer): bool
-proc IS_RADIO_BUTTON_CLASS*(klass: pointer): bool
-proc RADIO_BUTTON_GET_CLASS*(obj: pointer): PRadioButtonClass
-proc radio_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_radio_button_get_type".}
-proc radio_button_new*(group: PGSList): PRadioButton{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_button_new".}
-proc new_from_widget*(group: PRadioButton): PRadioButton{.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_new_from_widget".}
-proc radio_button_new*(group: PGSList, `label`: cstring): PRadioButton{.
-    cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_label".}
-proc radio_button_new_with_label_from_widget*(group: PRadioButton, 
-    `label`: cstring): PRadioButton{.cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_label_from_widget".}
-proc radio_button_new_with_mnemonic*(group: PGSList, `label`: cstring): PRadioButton{.
-    cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_mnemonic".}
-proc radio_button_new_with_mnemonic_from_widget*(group: PRadioButton, 
-    `label`: cstring): PRadioButton{.cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_mnemonic_from_widget".}
-proc get_group*(radio_button: PRadioButton): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_get_group".}
-proc set_group*(radio_button: PRadioButton, group: PGSList){.cdecl, 
-    dynlib: lib, importc: "gtk_radio_button_set_group".}
-proc TYPE_RADIO_MENU_ITEM*(): GType
-proc RADIO_MENU_ITEM*(obj: pointer): PRadioMenuItem
-proc RADIO_MENU_ITEM_CLASS*(klass: pointer): PRadioMenuItemClass
-proc IS_RADIO_MENU_ITEM*(obj: pointer): bool
-proc IS_RADIO_MENU_ITEM_CLASS*(klass: pointer): bool
-proc RADIO_MENU_ITEM_GET_CLASS*(obj: pointer): PRadioMenuItemClass
-proc radio_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_menu_item_get_type".}
-proc radio_menu_item_new*(group: PGSList): PRadioMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_radio_menu_item_new".}
-proc radio_menu_item_new*(group: PGSList, `label`: cstring): PRadioMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_new_with_label".}
-proc radio_menu_item_new_with_mnemonic*(group: PGSList, `label`: cstring): PRadioMenuItem{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_new_with_mnemonic".}
-proc item_get_group*(radio_menu_item: PRadioMenuItem): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_get_group".}
-proc item_set_group*(radio_menu_item: PRadioMenuItem, group: PGSList){.
-    cdecl, dynlib: lib, importc: "gtk_radio_menu_item_set_group".}
-const 
-  bm_TGtkScrolledWindow_hscrollbar_policy* = 0x0003'i16
-  bp_TGtkScrolledWindow_hscrollbar_policy* = 0'i16
-  bm_TGtkScrolledWindow_vscrollbar_policy* = 0x000C'i16
-  bp_TGtkScrolledWindow_vscrollbar_policy* = 2'i16
-  bm_TGtkScrolledWindow_hscrollbar_visible* = 0x0010'i16
-  bp_TGtkScrolledWindow_hscrollbar_visible* = 4'i16
-  bm_TGtkScrolledWindow_vscrollbar_visible* = 0x0020'i16
-  bp_TGtkScrolledWindow_vscrollbar_visible* = 5'i16
-  bm_TGtkScrolledWindow_window_placement* = 0x00C0'i16
-  bp_TGtkScrolledWindow_window_placement* = 6'i16
-  bm_TGtkScrolledWindow_focus_out* = 0x0100'i16
-  bp_TGtkScrolledWindow_focus_out* = 8'i16
-
-proc TYPE_SCROLLED_WINDOW*(): GType
-proc SCROLLED_WINDOW*(obj: pointer): PScrolledWindow
-proc SCROLLED_WINDOW_CLASS*(klass: pointer): PScrolledWindowClass
-proc IS_SCROLLED_WINDOW*(obj: pointer): bool
-proc IS_SCROLLED_WINDOW_CLASS*(klass: pointer): bool
-proc SCROLLED_WINDOW_GET_CLASS*(obj: pointer): PScrolledWindowClass
-proc hscrollbar_policy*(a: PScrolledWindow): guint
-proc set_hscrollbar_policy*(a: PScrolledWindow, `hscrollbar_policy`: guint)
-proc vscrollbar_policy*(a: PScrolledWindow): guint
-proc set_vscrollbar_policy*(a: PScrolledWindow, `vscrollbar_policy`: guint)
-proc hscrollbar_visible*(a: PScrolledWindow): guint
-proc set_hscrollbar_visible*(a: PScrolledWindow, `hscrollbar_visible`: guint)
-proc vscrollbar_visible*(a: PScrolledWindow): guint
-proc set_vscrollbar_visible*(a: PScrolledWindow, `vscrollbar_visible`: guint)
-proc window_placement*(a: PScrolledWindow): guint
-proc set_window_placement*(a: PScrolledWindow, `window_placement`: guint)
-proc focus_out*(a: PScrolledWindow): guint
-proc set_focus_out*(a: PScrolledWindow, `focus_out`: guint)
-proc scrolled_window_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_get_type".}
-proc scrolled_window_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PScrolledWindow{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_new".}
-proc set_hadjustment*(scrolled_window: PScrolledWindow, 
-                                      hadjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_hadjustment".}
-proc set_vadjustment*(scrolled_window: PScrolledWindow, 
-                                      hadjustment: PAdjustment){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_vadjustment".}
-proc get_hadjustment*(scrolled_window: PScrolledWindow): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_hadjustment".}
-proc get_vadjustment*(scrolled_window: PScrolledWindow): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_vadjustment".}
-proc set_policy*(scrolled_window: PScrolledWindow, 
-                                 hscrollbar_policy: TPolicyType, 
-                                 vscrollbar_policy: TPolicyType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_policy".}
-proc get_policy*(scrolled_window: PScrolledWindow, 
-                                 hscrollbar_policy: PPolicyType, 
-                                 vscrollbar_policy: PPolicyType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_get_policy".}
-proc set_placement*(scrolled_window: PScrolledWindow, 
-                                    window_placement: TCornerType){.cdecl, 
-    dynlib: lib, importc: "gtk_scrolled_window_set_placement".}
-proc get_placement*(scrolled_window: PScrolledWindow): TCornerType{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_placement".}
-proc set_shadow_type*(scrolled_window: PScrolledWindow, 
-                                      thetype: TShadowType){.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_set_shadow_type".}
-proc get_shadow_type*(scrolled_window: PScrolledWindow): TShadowType{.
-    cdecl, dynlib: lib, importc: "gtk_scrolled_window_get_shadow_type".}
-proc add_with_viewport*(scrolled_window: PScrolledWindow, 
-                                        child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_scrolled_window_add_with_viewport".}
-proc TYPE_SELECTION_DATA*(): GType
-proc list_new*(targets: PTargetEntry, ntargets: guint): PTargetList{.
-    cdecl, dynlib: lib, importc: "gtk_target_list_new".}
-proc reference*(list: PTargetList){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_ref".}
-proc unref*(list: PTargetList){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_unref".}
-proc add*(list: PTargetList, target: gdk2.TAtom, flags: guint, 
-                      info: guint){.cdecl, dynlib: lib, 
-                                    importc: "gtk_target_list_add".}
-proc add_table*(list: PTargetList, targets: PTargetEntry, 
-                            ntargets: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_target_list_add_table".}
-proc remove*(list: PTargetList, target: gdk2.TAtom){.cdecl, 
-    dynlib: lib, importc: "gtk_target_list_remove".}
-proc find*(list: PTargetList, target: gdk2.TAtom, info: Pguint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_target_list_find".}
-proc selection_owner_set*(widget: PWidget, selection: gdk2.TAtom, time: guint32): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_owner_set".}
-proc selection_owner_set_for_display*(display: gdk2.PDisplay, widget: PWidget, 
-                                      selection: gdk2.TAtom, time: guint32): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_owner_set_for_display".}
-proc selection_add_target*(widget: PWidget, selection: gdk2.TAtom, 
-                           target: gdk2.TAtom, info: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_add_target".}
-proc selection_add_targets*(widget: PWidget, selection: gdk2.TAtom, 
-                            targets: PTargetEntry, ntargets: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_add_targets".}
-proc selection_clear_targets*(widget: PWidget, selection: gdk2.TAtom){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_clear_targets".}
-proc selection_convert*(widget: PWidget, selection: gdk2.TAtom, target: gdk2.TAtom, 
-                        time: guint32): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_selection_convert".}
-proc set*(selection_data: PSelectionData, thetype: gdk2.TAtom, 
-                         format: gint, data: Pguchar, length: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_set".}
-proc set_text*(selection_data: PSelectionData, str: cstring, 
-                              len: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_selection_data_set_text".}
-proc get_text*(selection_data: PSelectionData): Pguchar{.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_get_text".}
-proc targets_include_text*(selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_data_targets_include_text".}
-proc selection_remove_all*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_remove_all".}
-proc selection_clear*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_clear".}
-proc selection_request*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_request".}
-proc selection_incr_event*(window: gdk2.PWindow, event: gdk2.PEventProperty): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_incr_event".}
-proc selection_notify*(widget: PWidget, event: gdk2.PEventSelection): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_notify".}
-proc selection_property_notify*(widget: PWidget, event: gdk2.PEventProperty): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_selection_property_notify".}
-proc selection_data_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_selection_data_get_type".}
-proc copy*(data: PSelectionData): PSelectionData{.cdecl, 
-    dynlib: lib, importc: "gtk_selection_data_copy".}
-proc free*(data: PSelectionData){.cdecl, dynlib: lib, 
-    importc: "gtk_selection_data_free".}
-proc TYPE_SEPARATOR_MENU_ITEM*(): GType
-proc SEPARATOR_MENU_ITEM*(obj: pointer): PSeparatorMenuItem
-proc SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): PSeparatorMenuItemClass
-proc IS_SEPARATOR_MENU_ITEM*(obj: pointer): bool
-proc IS_SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): bool
-proc SEPARATOR_MENU_ITEM_GET_CLASS*(obj: pointer): PSeparatorMenuItemClass
-proc separator_menu_item_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_separator_menu_item_get_type".}
-proc separator_menu_item_new*(): PSeparatorMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_separator_menu_item_new".}
-const 
-  bm_TGtkSizeGroup_have_width* = 0x0001'i16
-  bp_TGtkSizeGroup_have_width* = 0'i16
-  bm_TGtkSizeGroup_have_height* = 0x0002'i16
-  bp_TGtkSizeGroup_have_height* = 1'i16
-
-proc TYPE_SIZE_GROUP*(): GType
-proc SIZE_GROUP*(obj: pointer): PSizeGroup
-proc SIZE_GROUP_CLASS*(klass: pointer): PSizeGroupClass
-proc IS_SIZE_GROUP*(obj: pointer): bool
-proc IS_SIZE_GROUP_CLASS*(klass: pointer): bool
-proc SIZE_GROUP_GET_CLASS*(obj: pointer): PSizeGroupClass
-proc have_width*(a: PSizeGroup): guint
-proc set_have_width*(a: PSizeGroup, `have_width`: guint)
-proc have_height*(a: PSizeGroup): guint
-proc set_have_height*(a: PSizeGroup, `have_height`: guint)
-proc size_group_get_type*(): GType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_size_group_get_type".}
-proc size_group_new*(mode: TSizeGroupMode): PSizeGroup{.cdecl, dynlib: lib, 
-    importc: "gtk_size_group_new".}
-proc set_mode*(size_group: PSizeGroup, mode: TSizeGroupMode){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_set_mode".}
-proc get_mode*(size_group: PSizeGroup): TSizeGroupMode{.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_get_mode".}
-proc add_widget*(size_group: PSizeGroup, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_add_widget".}
-proc remove_widget*(size_group: PSizeGroup, widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_size_group_remove_widget".}
-proc size_group_get_child_requisition*(widget: PWidget, 
-                                       requisition: PRequisition){.cdecl, 
-    dynlib: lib, importc: "_gtk_size_group_get_child_requisition".}
-proc size_group_compute_requisition*(widget: PWidget, requisition: PRequisition){.
-    cdecl, dynlib: lib, importc: "_gtk_size_group_compute_requisition".}
-proc size_group_queue_resize*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "_gtk_size_group_queue_resize".}
-const 
-  bm_TGtkSocket_same_app* = 0x0001'i16
-  bp_TGtkSocket_same_app* = 0'i16
-  bm_TGtkSocket_focus_in* = 0x0002'i16
-  bp_TGtkSocket_focus_in* = 1'i16
-  bm_TGtkSocket_have_size* = 0x0004'i16
-  bp_TGtkSocket_have_size* = 2'i16
-  bm_TGtkSocket_need_map* = 0x0008'i16
-  bp_TGtkSocket_need_map* = 3'i16
-  bm_TGtkSocket_is_mapped* = 0x0010'i16
-  bp_TGtkSocket_is_mapped* = 4'i16
-
-proc TYPE_SOCKET*(): GType
-proc SOCKET*(obj: pointer): PSocket
-proc SOCKET_CLASS*(klass: pointer): PSocketClass
-proc IS_SOCKET*(obj: pointer): bool
-proc IS_SOCKET_CLASS*(klass: pointer): bool
-proc SOCKET_GET_CLASS*(obj: pointer): PSocketClass
-proc same_app*(a: PSocket): guint
-proc set_same_app*(a: PSocket, `same_app`: guint)
-proc focus_in*(a: PSocket): guint
-proc set_focus_in*(a: PSocket, `focus_in`: guint)
-proc have_size*(a: PSocket): guint
-proc set_have_size*(a: PSocket, `have_size`: guint)
-proc need_map*(a: PSocket): guint
-proc set_need_map*(a: PSocket, `need_map`: guint)
-proc is_mapped*(a: PSocket): guint
-proc set_is_mapped*(a: PSocket, `is_mapped`: guint)
-proc socket_new*(): PSocket{.cdecl, dynlib: lib, importc: "gtk_socket_new".}
-proc socket_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_socket_get_type".}
-proc add_id*(socket: PSocket, window_id: gdk2.TNativeWindow){.cdecl, 
-    dynlib: lib, importc: "gtk_socket_add_id".}
-proc get_id*(socket: PSocket): gdk2.TNativeWindow{.cdecl, dynlib: lib, 
-    importc: "gtk_socket_get_id".}
-const 
-  INPUT_ERROR* = - (1)
-  bm_TGtkSpinButton_in_child* = 0x00000003'i32
-  bp_TGtkSpinButton_in_child* = 0'i32
-  bm_TGtkSpinButton_click_child* = 0x0000000C'i32
-  bp_TGtkSpinButton_click_child* = 2'i32
-  bm_TGtkSpinButton_button* = 0x00000030'i32
-  bp_TGtkSpinButton_button* = 4'i32
-  bm_TGtkSpinButton_need_timer* = 0x00000040'i32
-  bp_TGtkSpinButton_need_timer* = 6'i32
-  bm_TGtkSpinButton_timer_calls* = 0x00000380'i32
-  bp_TGtkSpinButton_timer_calls* = 7'i32
-  bm_TGtkSpinButton_digits* = 0x000FFC00'i32
-  bp_TGtkSpinButton_digits* = 10'i32
-  bm_TGtkSpinButton_numeric* = 0x00100000'i32
-  bp_TGtkSpinButton_numeric* = 20'i32
-  bm_TGtkSpinButton_wrap* = 0x00200000'i32
-  bp_TGtkSpinButton_wrap* = 21'i32
-  bm_TGtkSpinButton_snap_to_ticks* = 0x00400000'i32
-  bp_TGtkSpinButton_snap_to_ticks* = 22'i32
-
-proc TYPE_SPIN_BUTTON*(): GType
-proc SPIN_BUTTON*(obj: pointer): PSpinButton
-proc SPIN_BUTTON_CLASS*(klass: pointer): PSpinButtonClass
-proc IS_SPIN_BUTTON*(obj: pointer): bool
-proc IS_SPIN_BUTTON_CLASS*(klass: pointer): bool
-proc SPIN_BUTTON_GET_CLASS*(obj: pointer): PSpinButtonClass
-proc in_child*(a: PSpinButton): guint
-proc set_in_child*(a: PSpinButton, `in_child`: guint)
-proc click_child*(a: PSpinButton): guint
-proc set_click_child*(a: PSpinButton, `click_child`: guint)
-proc button*(a: PSpinButton): guint
-proc set_button*(a: PSpinButton, `button`: guint)
-proc need_timer*(a: PSpinButton): guint
-proc set_need_timer*(a: PSpinButton, `need_timer`: guint)
-proc timer_calls*(a: PSpinButton): guint
-proc set_timer_calls*(a: PSpinButton, `timer_calls`: guint)
-proc digits*(a: PSpinButton): guint
-proc set_digits*(a: PSpinButton, `digits`: guint)
-proc numeric*(a: PSpinButton): guint
-proc set_numeric*(a: PSpinButton, `numeric`: guint)
-proc wrap*(a: PSpinButton): guint
-proc set_wrap*(a: PSpinButton, `wrap`: guint)
-proc snap_to_ticks*(a: PSpinButton): guint
-proc set_snap_to_ticks*(a: PSpinButton, `snap_to_ticks`: guint)
-proc spin_button_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_spin_button_get_type".}
-proc configure*(spin_button: PSpinButton, adjustment: PAdjustment, 
-                            climb_rate: gdouble, digits: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_configure".}
-proc spin_button_new*(adjustment: PAdjustment, climb_rate: gdouble, 
-                      digits: guint): PSpinButton{.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_new".}
-proc spin_button_new*(min: gdouble, max: gdouble, step: gdouble): PSpinButton{.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_new_with_range".}
-proc set_adjustment*(spin_button: PSpinButton, 
-                                 adjustment: PAdjustment){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_set_adjustment".}
-proc get_adjustment*(spin_button: PSpinButton): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_adjustment".}
-proc set_digits*(spin_button: PSpinButton, digits: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_digits".}
-proc get_digits*(spin_button: PSpinButton): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_digits".}
-proc set_increments*(spin_button: PSpinButton, step: gdouble, 
-                                 page: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_set_increments".}
-proc get_increments*(spin_button: PSpinButton, step: Pgdouble, 
-                                 page: Pgdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_get_increments".}
-proc set_range*(spin_button: PSpinButton, min: gdouble, max: gdouble){.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_set_range".}
-proc get_range*(spin_button: PSpinButton, min: Pgdouble, 
-                            max: Pgdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_get_range".}
-proc get_value*(spin_button: PSpinButton): gdouble{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_value".}
-proc get_value_as_int*(spin_button: PSpinButton): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_value_as_int".}
-proc set_value*(spin_button: PSpinButton, value: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_value".}
-proc set_update_policy*(spin_button: PSpinButton, 
-                                    policy: TSpinButtonUpdatePolicy){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_update_policy".}
-proc get_update_policy*(spin_button: PSpinButton): TSpinButtonUpdatePolicy{.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_get_update_policy".}
-proc set_numeric*(spin_button: PSpinButton, numeric: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_spin_button_set_numeric".}
-proc get_numeric*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_numeric".}
-proc spin*(spin_button: PSpinButton, direction: TSpinType, 
-                       increment: gdouble){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_spin".}
-proc set_wrap*(spin_button: PSpinButton, wrap: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_wrap".}
-proc get_wrap*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_wrap".}
-proc set_snap_to_ticks*(spin_button: PSpinButton, 
-                                    snap_to_ticks: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_set_snap_to_ticks".}
-proc get_snap_to_ticks*(spin_button: PSpinButton): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_spin_button_get_snap_to_ticks".}
-proc update*(spin_button: PSpinButton){.cdecl, dynlib: lib, 
-    importc: "gtk_spin_button_update".}
-const 
-  STOCK_DIALOG_INFO* = "gtk-dialog-info"
-  STOCK_DIALOG_WARNING* = "gtk-dialog-warning"
-  STOCK_DIALOG_ERROR* = "gtk-dialog-error"
-  STOCK_DIALOG_QUESTION* = "gtk-dialog-question"
-  STOCK_DND* = "gtk-dnd"
-  STOCK_DND_MULTIPLE* = "gtk-dnd-multiple"
-  STOCK_ABOUT* = "gtk-about"
-  STOCK_ADD_name* = "gtk-add"
-  STOCK_APPLY* = "gtk-apply"
-  STOCK_BOLD* = "gtk-bold"
-  STOCK_CANCEL* = "gtk-cancel"
-  STOCK_CDROM* = "gtk-cdrom"
-  STOCK_CLEAR* = "gtk-clear"
-  STOCK_CLOSE* = "gtk-close"
-  STOCK_COLOR_PICKER* = "gtk-color-picker"
-  STOCK_CONVERT* = "gtk-convert"
-  STOCK_CONNECT* = "gtk-connect"
-  STOCK_COPY* = "gtk-copy"
-  STOCK_CUT* = "gtk-cut"
-  STOCK_DELETE* = "gtk-delete"
-  STOCK_EDIT* = "gtk-edit"
-  STOCK_EXECUTE* = "gtk-execute"
-  STOCK_FIND* = "gtk-find"
-  STOCK_FIND_AND_REPLACE* = "gtk-find-and-replace"
-  STOCK_FLOPPY* = "gtk-floppy"
-  STOCK_GOTO_BOTTOM* = "gtk-goto-bottom"
-  STOCK_GOTO_FIRST* = "gtk-goto-first"
-  STOCK_GOTO_LAST* = "gtk-goto-last"
-  STOCK_GOTO_TOP* = "gtk-goto-top"
-  STOCK_GO_BACK* = "gtk-go-back"
-  STOCK_GO_DOWN* = "gtk-go-down"
-  STOCK_GO_FORWARD* = "gtk-go-forward"
-  STOCK_GO_UP* = "gtk-go-up"
-  STOCK_HELP* = "gtk-help"
-  STOCK_HOME* = "gtk-home"
-  STOCK_INDEX* = "gtk-index"
-  STOCK_ITALIC* = "gtk-italic"
-  STOCK_JUMP_TO* = "gtk-jump-to"
-  STOCK_JUSTIFY_CENTER* = "gtk-justify-center"
-  STOCK_JUSTIFY_FILL* = "gtk-justify-fill"
-  STOCK_JUSTIFY_LEFT* = "gtk-justify-left"
-  STOCK_JUSTIFY_RIGHT* = "gtk-justify-right"
-  STOCK_MEDIA_FORWARD* = "gtk-media-forward"
-  STOCK_MEDIA_NEXT* = "gtk-media-next"
-  STOCK_MEDIA_PAUSE* = "gtk-media-pause"
-  STOCK_MEDIA_PLAY* = "gtk-media-play"
-  STOCK_MEDIA_PREVIOUS* = "gtk-media-previous"
-  STOCK_MEDIA_RECORD* = "gtk-media-record"
-  STOCK_MEDIA_REWIND* = "gtk-media-rewind"
-  STOCK_MEDIA_STOP* = "gtk-media-stop"
-  STOCK_MISSING_IMAGE* = "gtk-missing-image"
-  STOCK_NEW* = "gtk-new"
-  STOCK_NO* = "gtk-no"
-  STOCK_OK* = "gtk-ok"
-  STOCK_OPEN* = "gtk-open"
-  STOCK_PASTE* = "gtk-paste"
-  STOCK_PREFERENCES* = "gtk-preferences"
-  STOCK_PRINT* = "gtk-print"
-  STOCK_PRINT_PREVIEW* = "gtk-print-preview"
-  STOCK_PROPERTIES* = "gtk-properties"
-  STOCK_QUIT* = "gtk-quit"
-  STOCK_REDO* = "gtk-redo"
-  STOCK_REFRESH* = "gtk-refresh"
-  STOCK_REMOVE* = "gtk-remove"
-  STOCK_REVERT_TO_SAVED* = "gtk-revert-to-saved"
-  STOCK_SAVE* = "gtk-save"
-  STOCK_SAVE_AS* = "gtk-save-as"
-  STOCK_SELECT_COLOR* = "gtk-select-color"
-  STOCK_SELECT_FONT* = "gtk-select-font"
-  STOCK_SORT_ASCENDING* = "gtk-sort-ascending"
-  STOCK_SORT_DESCENDING* = "gtk-sort-descending"
-  STOCK_SPELL_CHECK* = "gtk-spell-check"
-  STOCK_STOP* = "gtk-stop"
-  STOCK_STRIKETHROUGH* = "gtk-strikethrough"
-  STOCK_UNDELETE* = "gtk-undelete"
-  STOCK_UNDERLINE* = "gtk-underline"
-  STOCK_UNDO* = "gtk-undo"
-  STOCK_YES* = "gtk-yes"
-  STOCK_ZOOM_100* = "gtk-zoom-100"
-  STOCK_ZOOM_FIT* = "gtk-zoom-fit"
-  STOCK_ZOOM_IN* = "gtk-zoom-in"
-  STOCK_ZOOM_OUT* = "gtk-zoom-out"
-
-proc add*(items: PStockItem, n_items: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_add".}
-proc add_static*(items: PStockItem, n_items: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_add_static".}
-proc stock_lookup*(stock_id: cstring, item: PStockItem): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_stock_lookup".}
-proc stock_list_ids*(): PGSList{.cdecl, dynlib: lib, 
-                                 importc: "gtk_stock_list_ids".}
-proc copy*(item: PStockItem): PStockItem{.cdecl, dynlib: lib, 
-    importc: "gtk_stock_item_copy".}
-proc free*(item: PStockItem){.cdecl, dynlib: lib, 
-    importc: "gtk_stock_item_free".}
-proc TYPE_STATUSBAR*(): GType
-proc STATUSBAR*(obj: pointer): PStatusbar
-proc STATUSBAR_CLASS*(klass: pointer): PStatusbarClass
-proc IS_STATUSBAR*(obj: pointer): bool
-proc IS_STATUSBAR_CLASS*(klass: pointer): bool
-proc STATUSBAR_GET_CLASS*(obj: pointer): PStatusbarClass
-const 
-  bm_TGtkStatusbar_has_resize_grip* = 0x0001'i16
-  bp_TGtkStatusbar_has_resize_grip* = 0'i16
-
-proc has_resize_grip*(a: PStatusbar): guint
-proc set_has_resize_grip*(a: PStatusbar, `has_resize_grip`: guint)
-proc statusbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_statusbar_get_type".}
-proc statusbar_new*(): PStatusbar{.cdecl, dynlib: lib, 
-                                   importc: "gtk_statusbar_new".}
-proc get_context_id*(statusbar: PStatusbar, 
-                               context_description: cstring): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_get_context_id".}
-proc push*(statusbar: PStatusbar, context_id: guint, text: cstring): guint{.
-    cdecl, dynlib: lib, importc: "gtk_statusbar_push".}
-proc pop*(statusbar: PStatusbar, context_id: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_pop".}
-proc remove*(statusbar: PStatusbar, context_id: guint, 
-                       message_id: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_statusbar_remove".}
-proc set_has_resize_grip*(statusbar: PStatusbar, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_statusbar_set_has_resize_grip".}
-proc get_has_resize_grip*(statusbar: PStatusbar): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_statusbar_get_has_resize_grip".}
-const 
-  bm_TGtkTable_homogeneous* = 0x0001'i16
-  bp_TGtkTable_homogeneous* = 0'i16
-  bm_TGtkTableChild_xexpand* = 0x0001'i16
-  bp_TGtkTableChild_xexpand* = 0'i16
-  bm_TGtkTableChild_yexpand* = 0x0002'i16
-  bp_TGtkTableChild_yexpand* = 1'i16
-  bm_TGtkTableChild_xshrink* = 0x0004'i16
-  bp_TGtkTableChild_xshrink* = 2'i16
-  bm_TGtkTableChild_yshrink* = 0x0008'i16
-  bp_TGtkTableChild_yshrink* = 3'i16
-  bm_TGtkTableChild_xfill* = 0x0010'i16
-  bp_TGtkTableChild_xfill* = 4'i16
-  bm_TGtkTableChild_yfill* = 0x0020'i16
-  bp_TGtkTableChild_yfill* = 5'i16
-  bm_TGtkTableRowCol_need_expand* = 0x0001'i16
-  bp_TGtkTableRowCol_need_expand* = 0'i16
-  bm_TGtkTableRowCol_need_shrink* = 0x0002'i16
-  bp_TGtkTableRowCol_need_shrink* = 1'i16
-  bm_TGtkTableRowCol_expand* = 0x0004'i16
-  bp_TGtkTableRowCol_expand* = 2'i16
-  bm_TGtkTableRowCol_shrink* = 0x0008'i16
-  bp_TGtkTableRowCol_shrink* = 3'i16
-  bm_TGtkTableRowCol_empty* = 0x0010'i16
-  bp_TGtkTableRowCol_empty* = 4'i16
-
-proc TYPE_TABLE*(): GType
-proc TABLE*(obj: pointer): PTable
-proc TABLE_CLASS*(klass: pointer): PTableClass
-proc IS_TABLE*(obj: pointer): bool
-proc IS_TABLE_CLASS*(klass: pointer): bool
-proc TABLE_GET_CLASS*(obj: pointer): PTableClass
-proc homogeneous*(a: PTable): guint
-proc set_homogeneous*(a: PTable, `homogeneous`: guint)
-proc xexpand*(a: PTableChild): guint
-proc set_xexpand*(a: PTableChild, `xexpand`: guint)
-proc yexpand*(a: PTableChild): guint
-proc set_yexpand*(a: PTableChild, `yexpand`: guint)
-proc xshrink*(a: PTableChild): guint
-proc set_xshrink*(a: PTableChild, `xshrink`: guint)
-proc yshrink*(a: PTableChild): guint
-proc set_yshrink*(a: PTableChild, `yshrink`: guint)
-proc xfill*(a: PTableChild): guint
-proc set_xfill*(a: PTableChild, `xfill`: guint)
-proc yfill*(a: PTableChild): guint
-proc set_yfill*(a: PTableChild, `yfill`: guint)
-proc need_expand*(a: PTableRowCol): guint
-proc set_need_expand*(a: PTableRowCol, `need_expand`: guint)
-proc need_shrink*(a: PTableRowCol): guint
-proc set_need_shrink*(a: PTableRowCol, `need_shrink`: guint)
-proc expand*(a: PTableRowCol): guint
-proc set_expand*(a: PTableRowCol, `expand`: guint)
-proc shrink*(a: PTableRowCol): guint
-proc set_shrink*(a: PTableRowCol, `shrink`: guint)
-proc empty*(a: PTableRowCol): guint
-proc set_empty*(a: PTableRowCol, `empty`: guint)
-proc table_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_table_get_type".}
-proc table_new*(rows: guint, columns: guint, homogeneous: gboolean): PTable{.
-    cdecl, dynlib: lib, importc: "gtk_table_new".}
-proc resize*(table: PTable, rows: guint, columns: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_table_resize".}
-proc attach*(table: PTable, child: PWidget, left_attach: guint, 
-                   right_attach: guint, top_attach: guint, bottom_attach: guint, 
-                   xoptions: TAttachOptions, yoptions: TAttachOptions, 
-                   xpadding: guint, ypadding: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_attach".}
-proc attach_defaults*(table: PTable, widget: PWidget, left_attach: guint, 
-                            right_attach: guint, top_attach: guint, 
-                            bottom_attach: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_attach_defaults".}
-proc set_row_spacing*(table: PTable, row: guint, spacing: guint){.cdecl, 
-    dynlib: lib, importc: "gtk_table_set_row_spacing".}
-proc get_row_spacing*(table: PTable, row: guint): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_table_get_row_spacing".}
-proc set_col_spacing*(table: PTable, column: guint, spacing: guint){.
-    cdecl, dynlib: lib, importc: "gtk_table_set_col_spacing".}
-proc get_col_spacing*(table: PTable, column: guint): guint{.cdecl, 
-    dynlib: lib, importc: "gtk_table_get_col_spacing".}
-proc set_row_spacings*(table: PTable, spacing: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_set_row_spacings".}
-proc get_default_row_spacing*(table: PTable): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_default_row_spacing".}
-proc set_col_spacings*(table: PTable, spacing: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_table_set_col_spacings".}
-proc get_default_col_spacing*(table: PTable): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_default_col_spacing".}
-proc set_homogeneous*(table: PTable, homogeneous: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_table_set_homogeneous".}
-proc get_homogeneous*(table: PTable): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_table_get_homogeneous".}
-const 
-  bm_TGtkTearoffMenuItem_torn_off* = 0x0001'i16
-  bp_TGtkTearoffMenuItem_torn_off* = 0'i16
-
-proc TYPE_TEAROFF_MENU_ITEM*(): GType
-proc TEAROFF_MENU_ITEM*(obj: pointer): PTearoffMenuItem
-proc TEAROFF_MENU_ITEM_CLASS*(klass: pointer): PTearoffMenuItemClass
-proc IS_TEAROFF_MENU_ITEM*(obj: pointer): bool
-proc IS_TEAROFF_MENU_ITEM_CLASS*(klass: pointer): bool
-proc TEAROFF_MENU_ITEM_GET_CLASS*(obj: pointer): PTearoffMenuItemClass
-proc torn_off*(a: PTearoffMenuItem): guint
-proc set_torn_off*(a: PTearoffMenuItem, `torn_off`: guint)
-proc tearoff_menu_item_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_tearoff_menu_item_get_type".}
-proc tearoff_menu_item_new*(): PTearoffMenuItem{.cdecl, dynlib: lib, 
-    importc: "gtk_tearoff_menu_item_new".}
-const 
-  bm_TGtkText_line_wrap* = 0x0001'i16
-  bp_TGtkText_line_wrap* = 0'i16
-  bm_TGtkText_word_wrap* = 0x0002'i16
-  bp_TGtkText_word_wrap* = 1'i16
-  bm_TGtkText_use_wchar* = 0x0004'i16
-  bp_TGtkText_use_wchar* = 2'i16
-
-proc TYPE_TEXT*(): GType
-proc TEXT*(obj: pointer): PText
-proc TEXT_CLASS*(klass: pointer): PTextClass
-proc IS_TEXT*(obj: pointer): bool
-proc IS_TEXT_CLASS*(klass: pointer): bool
-proc TEXT_GET_CLASS*(obj: pointer): PTextClass
-proc line_wrap*(a: PText): guint
-proc set_line_wrap*(a: PText, `line_wrap`: guint)
-proc word_wrap*(a: PText): guint
-proc set_word_wrap*(a: PText, `word_wrap`: guint)
-proc use_wchar*(a: PText): gboolean
-proc set_use_wchar*(a: PText, `use_wchar`: gboolean)
-proc text_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_text_get_type".}
-proc text_new*(hadj: PAdjustment, vadj: PAdjustment): PText{.cdecl, dynlib: lib, 
-    importc: "gtk_text_new".}
-proc set_editable*(text: PText, editable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_editable".}
-proc set_word_wrap*(text: PText, word_wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_word_wrap".}
-proc set_line_wrap*(text: PText, line_wrap: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_line_wrap".}
-proc set_adjustments*(text: PText, hadj: PAdjustment, vadj: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_text_set_adjustments".}
-proc set_point*(text: PText, index: guint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_set_point".}
-proc get_point*(text: PText): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_get_point".}
-proc get_length*(text: PText): guint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_get_length".}
-proc freeze*(text: PText){.cdecl, dynlib: lib, importc: "gtk_text_freeze".}
-proc thaw*(text: PText){.cdecl, dynlib: lib, importc: "gtk_text_thaw".}
-proc insert*(text: PText, font: gdk2.PFont, fore: gdk2.PColor, back: gdk2.PColor, 
-                  chars: cstring, length: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_insert".}
-proc backward_delete*(text: PText, nchars: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_backward_delete".}
-proc forward_delete*(text: PText, nchars: guint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_forward_delete".}
-proc INDEX_WCHAR*(t: PText, index: guint): guint32
-proc INDEX_UCHAR*(t: PText, index: guint): GUChar
-const 
-  TEXT_SEARCH_VISIBLE_ONLY* = 0
-  TEXT_SEARCH_TEXT_ONLY* = 1
-
-proc TYPE_TEXT_ITER*(): GType
-proc get_buffer*(iter: PTextIter): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_buffer".}
-proc copy*(iter: PTextIter): PTextIter{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_copy".}
-proc free*(iter: PTextIter){.cdecl, dynlib: lib, 
-                                       importc: "gtk_text_iter_free".}
-proc text_iter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_iter_get_type".}
-proc get_offset*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_offset".}
-proc get_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line".}
-proc get_line_offset*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line_offset".}
-proc get_line_index*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_line_index".}
-proc get_visible_line_offset*(iter: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_visible_line_offset".}
-proc get_visible_line_index*(iter: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_visible_line_index".}
-proc get_char*(iter: PTextIter): gunichar{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_char".}
-proc get_slice*(start: PTextIter, theEnd: PTextIter): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_slice".}
-proc get_text*(start: PTextIter, theEnd: PTextIter): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_text".}
-proc get_visible_slice*(start: PTextIter, theEnd: PTextIter): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_visible_slice".}
-proc get_visible_text*(start: PTextIter, theEnd: PTextIter): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_visible_text".}
-proc get_pixbuf*(iter: PTextIter): gdk2pixbuf.PPixbuf{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_pixbuf".}
-proc get_marks*(iter: PTextIter): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_marks".}
-proc get_child_anchor*(iter: PTextIter): PTextChildAnchor{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_child_anchor".}
-proc get_toggled_tags*(iter: PTextIter, toggled_on: gboolean): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_toggled_tags".}
-proc begins_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_begins_tag".}
-proc ends_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_ends_tag".}
-proc toggles_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_toggles_tag".}
-proc has_tag*(iter: PTextIter, tag: PTextTag): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_has_tag".}
-proc get_tags*(iter: PTextIter): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_tags".}
-proc editable*(iter: PTextIter, default_setting: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_editable".}
-proc can_insert*(iter: PTextIter, default_editability: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_can_insert".}
-proc starts_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_word".}
-proc ends_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_word".}
-proc inside_word*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_inside_word".}
-proc starts_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_sentence".}
-proc ends_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_sentence".}
-proc inside_sentence*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_inside_sentence".}
-proc starts_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_starts_line".}
-proc ends_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_ends_line".}
-proc is_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_is_cursor_position".}
-proc get_chars_in_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_chars_in_line".}
-proc get_bytes_in_line*(iter: PTextIter): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_get_bytes_in_line".}
-proc get_attributes*(iter: PTextIter, values: PTextAttributes): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_get_attributes".}
-proc get_language*(iter: PTextIter): pango.PLanguage{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_get_language".}
-proc is_end*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_is_end".}
-proc is_start*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_is_start".}
-proc forward_char*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_char".}
-proc backward_char*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_backward_char".}
-proc forward_chars*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_chars".}
-proc backward_chars*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_chars".}
-proc forward_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_line".}
-proc backward_line*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_backward_line".}
-proc forward_lines*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_lines".}
-proc backward_lines*(iter: PTextIter, count: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_lines".}
-proc forward_word_end*(iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_word_end".}
-proc backward_word_start*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_word_start".}
-proc forward_word_ends*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_word_ends".}
-proc backward_word_starts*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_word_starts".}
-proc forward_sentence_end*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_sentence_end".}
-proc backward_sentence_start*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_sentence_start".}
-proc forward_sentence_ends*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_sentence_ends".}
-proc backward_sentence_starts*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_sentence_starts".}
-proc forward_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_cursor_position".}
-proc backward_cursor_position*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_backward_cursor_position".}
-proc forward_cursor_positions*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_cursor_positions".}
-proc backward_cursor_positions*(iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_cursor_positions".}
-proc set_offset*(iter: PTextIter, char_offset: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_offset".}
-proc set_line*(iter: PTextIter, line_number: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line".}
-proc set_line_offset*(iter: PTextIter, char_on_line: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line_offset".}
-proc set_line_index*(iter: PTextIter, byte_on_line: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_set_line_index".}
-proc forward_to_end*(iter: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_forward_to_end".}
-proc forward_to_line_end*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_forward_to_line_end".}
-proc set_visible_line_offset*(iter: PTextIter, char_on_line: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_set_visible_line_offset".}
-proc set_visible_line_index*(iter: PTextIter, byte_on_line: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_set_visible_line_index".}
-proc forward_to_tag_toggle*(iter: PTextIter, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_to_tag_toggle".}
-proc backward_to_tag_toggle*(iter: PTextIter, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_to_tag_toggle".}
-proc forward_find_char*(iter: PTextIter, pred: TTextCharPredicate, 
-                                  user_data: gpointer, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_find_char".}
-proc backward_find_char*(iter: PTextIter, pred: TTextCharPredicate, 
-                                   user_data: gpointer, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_find_char".}
-proc forward_search*(iter: PTextIter, str: cstring, 
-                               flags: TTextSearchFlags, match_start: PTextIter, 
-                               match_end: PTextIter, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_forward_search".}
-proc backward_search*(iter: PTextIter, str: cstring, 
-                                flags: TTextSearchFlags, match_start: PTextIter, 
-                                match_end: PTextIter, limit: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_backward_search".}
-proc equal*(lhs: PTextIter, rhs: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_equal".}
-proc compare*(lhs: PTextIter, rhs: PTextIter): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_iter_compare".}
-proc in_range*(iter: PTextIter, start: PTextIter, theEnd: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_iter_in_range".}
-proc order*(first: PTextIter, second: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_iter_order".}
-proc TYPE_TEXT_TAG*(): GType
-proc TEXT_TAG*(obj: pointer): PTextTag
-proc TEXT_TAG_CLASS*(klass: pointer): PTextTagClass
-proc IS_TEXT_TAG*(obj: pointer): bool
-proc IS_TEXT_TAG_CLASS*(klass: pointer): bool
-proc TEXT_TAG_GET_CLASS*(obj: pointer): PTextTagClass
-proc TYPE_TEXT_ATTRIBUTES*(): GType
-proc text_tag_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_text_tag_get_type".}
-proc text_tag_new*(name: cstring): PTextTag{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_new".}
-proc get_priority*(tag: PTextTag): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_get_priority".}
-proc set_priority*(tag: PTextTag, priority: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_set_priority".}
-proc event*(tag: PTextTag, event_object: PGObject, event: gdk2.PEvent, 
-                     iter: PTextIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_event".}
-proc text_attributes_new*(): PTextAttributes{.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_new".}
-proc copy*(src: PTextAttributes): PTextAttributes{.cdecl, 
-    dynlib: lib, importc: "gtk_text_attributes_copy".}
-proc copy_values*(src: PTextAttributes, dest: PTextAttributes){.
-    cdecl, dynlib: lib, importc: "gtk_text_attributes_copy_values".}
-proc unref*(values: PTextAttributes){.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_unref".}
-proc reference*(values: PTextAttributes){.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_ref".}
-proc text_attributes_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_text_attributes_get_type".}
-const 
-  bm_TGtkTextTag_bg_color_set* = 0x00000001'i32
-  bp_TGtkTextTag_bg_color_set* = 0'i32
-  bm_TGtkTextTag_bg_stipple_set* = 0x00000002'i32
-  bp_TGtkTextTag_bg_stipple_set* = 1'i32
-  bm_TGtkTextTag_fg_color_set* = 0x00000004'i32
-  bp_TGtkTextTag_fg_color_set* = 2'i32
-  bm_TGtkTextTag_scale_set* = 0x00000008'i32
-  bp_TGtkTextTag_scale_set* = 3'i32
-  bm_TGtkTextTag_fg_stipple_set* = 0x00000010'i32
-  bp_TGtkTextTag_fg_stipple_set* = 4'i32
-  bm_TGtkTextTag_justification_set* = 0x00000020'i32
-  bp_TGtkTextTag_justification_set* = 5'i32
-  bm_TGtkTextTag_left_margin_set* = 0x00000040'i32
-  bp_TGtkTextTag_left_margin_set* = 6'i32
-  bm_TGtkTextTag_indent_set* = 0x00000080'i32
-  bp_TGtkTextTag_indent_set* = 7'i32
-  bm_TGtkTextTag_rise_set* = 0x00000100'i32
-  bp_TGtkTextTag_rise_set* = 8'i32
-  bm_TGtkTextTag_strikethrough_set* = 0x00000200'i32
-  bp_TGtkTextTag_strikethrough_set* = 9'i32
-  bm_TGtkTextTag_right_margin_set* = 0x00000400'i32
-  bp_TGtkTextTag_right_margin_set* = 10'i32
-  bm_TGtkTextTag_pixels_above_lines_set* = 0x00000800'i32
-  bp_TGtkTextTag_pixels_above_lines_set* = 11'i32
-  bm_TGtkTextTag_pixels_below_lines_set* = 0x00001000'i32
-  bp_TGtkTextTag_pixels_below_lines_set* = 12'i32
-  bm_TGtkTextTag_pixels_inside_wrap_set* = 0x00002000'i32
-  bp_TGtkTextTag_pixels_inside_wrap_set* = 13'i32
-  bm_TGtkTextTag_tabs_set* = 0x00004000'i32
-  bp_TGtkTextTag_tabs_set* = 14'i32
-  bm_TGtkTextTag_underline_set* = 0x00008000'i32
-  bp_TGtkTextTag_underline_set* = 15'i32
-  bm_TGtkTextTag_wrap_mode_set* = 0x00010000'i32
-  bp_TGtkTextTag_wrap_mode_set* = 16'i32
-  bm_TGtkTextTag_bg_full_height_set* = 0x00020000'i32
-  bp_TGtkTextTag_bg_full_height_set* = 17'i32
-  bm_TGtkTextTag_invisible_set* = 0x00040000'i32
-  bp_TGtkTextTag_invisible_set* = 18'i32
-  bm_TGtkTextTag_editable_set* = 0x00080000'i32
-  bp_TGtkTextTag_editable_set* = 19'i32
-  bm_TGtkTextTag_language_set* = 0x00100000'i32
-  bp_TGtkTextTag_language_set* = 20'i32
-  bm_TGtkTextTag_pad1* = 0x00200000'i32
-  bp_TGtkTextTag_pad1* = 21'i32
-  bm_TGtkTextTag_pad2* = 0x00400000'i32
-  bp_TGtkTextTag_pad2* = 22'i32
-  bm_TGtkTextTag_pad3* = 0x00800000'i32
-  bp_TGtkTextTag_pad3* = 23'i32
-
-proc bg_color_set*(a: PTextTag): guint
-proc set_bg_color_set*(a: PTextTag, `bg_color_set`: guint)
-proc bg_stipple_set*(a: PTextTag): guint
-proc set_bg_stipple_set*(a: PTextTag, `bg_stipple_set`: guint)
-proc fg_color_set*(a: PTextTag): guint
-proc set_fg_color_set*(a: PTextTag, `fg_color_set`: guint)
-proc scale_set*(a: PTextTag): guint
-proc set_scale_set*(a: PTextTag, `scale_set`: guint)
-proc fg_stipple_set*(a: PTextTag): guint
-proc set_fg_stipple_set*(a: PTextTag, `fg_stipple_set`: guint)
-proc justification_set*(a: PTextTag): guint
-proc set_justification_set*(a: PTextTag, `justification_set`: guint)
-proc left_margin_set*(a: PTextTag): guint
-proc set_left_margin_set*(a: PTextTag, `left_margin_set`: guint)
-proc indent_set*(a: PTextTag): guint
-proc set_indent_set*(a: PTextTag, `indent_set`: guint)
-proc rise_set*(a: PTextTag): guint
-proc set_rise_set*(a: PTextTag, `rise_set`: guint)
-proc strikethrough_set*(a: PTextTag): guint
-proc set_strikethrough_set*(a: PTextTag, `strikethrough_set`: guint)
-proc right_margin_set*(a: PTextTag): guint
-proc set_right_margin_set*(a: PTextTag, `right_margin_set`: guint)
-proc pixels_above_lines_set*(a: PTextTag): guint
-proc set_pixels_above_lines_set*(a: PTextTag, 
-                                 `pixels_above_lines_set`: guint)
-proc pixels_below_lines_set*(a: PTextTag): guint
-proc set_pixels_below_lines_set*(a: PTextTag, 
-                                 `pixels_below_lines_set`: guint)
-proc pixels_inside_wrap_set*(a: PTextTag): guint
-proc set_pixels_inside_wrap_set*(a: PTextTag, 
-                                 `pixels_inside_wrap_set`: guint)
-proc tabs_set*(a: PTextTag): guint
-proc set_tabs_set*(a: PTextTag, `tabs_set`: guint)
-proc underline_set*(a: PTextTag): guint
-proc set_underline_set*(a: PTextTag, `underline_set`: guint)
-proc wrap_mode_set*(a: PTextTag): guint
-proc set_wrap_mode_set*(a: PTextTag, `wrap_mode_set`: guint)
-proc bg_full_height_set*(a: PTextTag): guint
-proc set_bg_full_height_set*(a: PTextTag, `bg_full_height_set`: guint)
-proc invisible_set*(a: PTextTag): guint
-proc set_invisible_set*(a: PTextTag, `invisible_set`: guint)
-proc editable_set*(a: PTextTag): guint
-proc set_editable_set*(a: PTextTag, `editable_set`: guint)
-proc language_set*(a: PTextTag): guint
-proc set_language_set*(a: PTextTag, `language_set`: guint)
-proc pad1*(a: PTextTag): guint
-proc set_pad1*(a: PTextTag, `pad1`: guint)
-proc pad2*(a: PTextTag): guint
-proc set_pad2*(a: PTextTag, `pad2`: guint)
-proc pad3*(a: PTextTag): guint
-proc set_pad3*(a: PTextTag, `pad3`: guint)
-const 
-  bm_TGtkTextAppearance_underline* = 0x000F'i16
-  bp_TGtkTextAppearance_underline* = 0'i16
-  bm_TGtkTextAppearance_strikethrough* = 0x0010'i16
-  bp_TGtkTextAppearance_strikethrough* = 4'i16
-  bm_TGtkTextAppearance_draw_bg* = 0x0020'i16
-  bp_TGtkTextAppearance_draw_bg* = 5'i16
-  bm_TGtkTextAppearance_inside_selection* = 0x0040'i16
-  bp_TGtkTextAppearance_inside_selection* = 6'i16
-  bm_TGtkTextAppearance_is_text* = 0x0080'i16
-  bp_TGtkTextAppearance_is_text* = 7'i16
-  bm_TGtkTextAppearance_pad1* = 0x0100'i16
-  bp_TGtkTextAppearance_pad1* = 8'i16
-  bm_TGtkTextAppearance_pad2* = 0x0200'i16
-  bp_TGtkTextAppearance_pad2* = 9'i16
-  bm_TGtkTextAppearance_pad3* = 0x0400'i16
-  bp_TGtkTextAppearance_pad3* = 10'i16
-  bm_TGtkTextAppearance_pad4* = 0x0800'i16
-  bp_TGtkTextAppearance_pad4* = 11'i16
-
-proc underline*(a: PTextAppearance): guint
-proc set_underline*(a: PTextAppearance, `underline`: guint)
-proc strikethrough*(a: PTextAppearance): guint
-proc set_strikethrough*(a: PTextAppearance, `strikethrough`: guint)
-proc draw_bg*(a: PTextAppearance): guint
-proc set_draw_bg*(a: PTextAppearance, `draw_bg`: guint)
-proc inside_selection*(a: PTextAppearance): guint
-proc set_inside_selection*(a: PTextAppearance, `inside_selection`: guint)
-proc is_text*(a: PTextAppearance): guint
-proc set_is_text*(a: PTextAppearance, `is_text`: guint)
-proc pad1*(a: PTextAppearance): guint
-proc set_pad1*(a: PTextAppearance, `pad1`: guint)
-proc pad2*(a: PTextAppearance): guint
-proc set_pad2*(a: PTextAppearance, `pad2`: guint)
-proc pad3*(a: PTextAppearance): guint
-proc set_pad3*(a: PTextAppearance, `pad3`: guint)
-proc pad4*(a: PTextAppearance): guint
-proc set_pad4*(a: PTextAppearance, `pad4`: guint)
-const 
-  bm_TGtkTextAttributes_invisible* = 0x0001'i16
-  bp_TGtkTextAttributes_invisible* = 0'i16
-  bm_TGtkTextAttributes_bg_full_height* = 0x0002'i16
-  bp_TGtkTextAttributes_bg_full_height* = 1'i16
-  bm_TGtkTextAttributes_editable* = 0x0004'i16
-  bp_TGtkTextAttributes_editable* = 2'i16
-  bm_TGtkTextAttributes_realized* = 0x0008'i16
-  bp_TGtkTextAttributes_realized* = 3'i16
-  bm_TGtkTextAttributes_pad1* = 0x0010'i16
-  bp_TGtkTextAttributes_pad1* = 4'i16
-  bm_TGtkTextAttributes_pad2* = 0x0020'i16
-  bp_TGtkTextAttributes_pad2* = 5'i16
-  bm_TGtkTextAttributes_pad3* = 0x0040'i16
-  bp_TGtkTextAttributes_pad3* = 6'i16
-  bm_TGtkTextAttributes_pad4* = 0x0080'i16
-  bp_TGtkTextAttributes_pad4* = 7'i16
-
-proc invisible*(a: PTextAttributes): guint
-proc set_invisible*(a: PTextAttributes, `invisible`: guint)
-proc bg_full_height*(a: PTextAttributes): guint
-proc set_bg_full_height*(a: PTextAttributes, `bg_full_height`: guint)
-proc editable*(a: PTextAttributes): guint
-proc set_editable*(a: PTextAttributes, `editable`: guint)
-proc realized*(a: PTextAttributes): guint
-proc set_realized*(a: PTextAttributes, `realized`: guint)
-proc pad1*(a: PTextAttributes): guint
-proc set_pad1*(a: PTextAttributes, `pad1`: guint)
-proc pad2*(a: PTextAttributes): guint
-proc set_pad2*(a: PTextAttributes, `pad2`: guint)
-proc pad3*(a: PTextAttributes): guint
-proc set_pad3*(a: PTextAttributes, `pad3`: guint)
-proc pad4*(a: PTextAttributes): guint
-proc set_pad4*(a: PTextAttributes, `pad4`: guint)
-proc TYPE_TEXT_TAG_TABLE*(): GType
-proc TEXT_TAG_TABLE*(obj: pointer): PTextTagTable
-proc TEXT_TAG_TABLE_CLASS*(klass: pointer): PTextTagTableClass
-proc IS_TEXT_TAG_TABLE*(obj: pointer): bool
-proc IS_TEXT_TAG_TABLE_CLASS*(klass: pointer): bool
-proc TEXT_TAG_TABLE_GET_CLASS*(obj: pointer): PTextTagTableClass
-proc text_tag_table_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_text_tag_table_get_type".}
-proc text_tag_table_new*(): PTextTagTable{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_new".}
-proc table_add*(table: PTextTagTable, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "gtk_text_tag_table_add".}
-proc table_remove*(table: PTextTagTable, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "gtk_text_tag_table_remove".}
-proc table_lookup*(table: PTextTagTable, name: cstring): PTextTag{.
-    cdecl, dynlib: lib, importc: "gtk_text_tag_table_lookup".}
-proc table_foreach*(table: PTextTagTable, fun: TTextTagTableForeach, 
-                             data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_foreach".}
-proc table_get_size*(table: PTextTagTable): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_tag_table_get_size".}
-proc table_add_buffer*(table: PTextTagTable, buffer: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_tag_table_add_buffer".}
-proc table_remove_buffer*(table: PTextTagTable, buffer: gpointer){.
-    cdecl, dynlib: lib, importc: "_gtk_text_tag_table_remove_buffer".}
-proc TYPE_TEXT_MARK*(): GType
-proc TEXT_MARK*(anObject: pointer): PTextMark
-proc TEXT_MARK_CLASS*(klass: pointer): PTextMarkClass
-proc IS_TEXT_MARK*(anObject: pointer): bool
-proc IS_TEXT_MARK_CLASS*(klass: pointer): bool
-proc TEXT_MARK_GET_CLASS*(obj: pointer): PTextMarkClass
-proc text_mark_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_mark_get_type".}
-proc set_visible*(mark: PTextMark, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_mark_set_visible".}
-proc get_visible*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_visible".}
-proc get_name*(mark: PTextMark): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_name".}
-proc get_deleted*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_deleted".}
-proc get_buffer*(mark: PTextMark): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_buffer".}
-proc get_left_gravity*(mark: PTextMark): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_mark_get_left_gravity".}
-const 
-  bm_TGtkTextMarkBody_visible* = 0x0001'i16
-  bp_TGtkTextMarkBody_visible* = 0'i16
-  bm_TGtkTextMarkBody_not_deleteable* = 0x0002'i16
-  bp_TGtkTextMarkBody_not_deleteable* = 1'i16
-
-proc visible*(a: PTextMarkBody): guint
-proc set_visible*(a: PTextMarkBody, `visible`: guint)
-proc not_deleteable*(a: PTextMarkBody): guint
-proc set_not_deleteable*(a: PTextMarkBody, `not_deleteable`: guint)
-proc mark_segment_new*(tree: PTextBTree, left_gravity: gboolean, name: cstring): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_mark_segment_new".}
-proc TYPE_TEXT_CHILD_ANCHOR*(): GType
-proc TEXT_CHILD_ANCHOR*(anObject: pointer): PTextChildAnchor
-proc TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): PTextChildAnchorClass
-proc IS_TEXT_CHILD_ANCHOR*(anObject: pointer): bool
-proc IS_TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): bool
-proc TEXT_CHILD_ANCHOR_GET_CLASS*(obj: pointer): PTextChildAnchorClass
-proc text_child_anchor_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_get_type".}
-proc text_child_anchor_new*(): PTextChildAnchor{.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_new".}
-proc anchor_get_widgets*(anchor: PTextChildAnchor): PGList{.cdecl, 
-    dynlib: lib, importc: "gtk_text_child_anchor_get_widgets".}
-proc anchor_get_deleted*(anchor: PTextChildAnchor): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_child_anchor_get_deleted".}
-proc pixbuf_segment_new*(pixbuf: gdk2pixbuf.PPixbuf): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_pixbuf_segment_new".}
-proc widget_segment_new*(anchor: PTextChildAnchor): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_segment_new".}
-proc widget_segment_add*(widget_segment: PTextLineSegment, child: PWidget){.
-    cdecl, dynlib: lib, importc: "_gtk_widget_segment_add".}
-proc widget_segment_remove*(widget_segment: PTextLineSegment, child: PWidget){.
-    cdecl, dynlib: lib, importc: "_gtk_widget_segment_remove".}
-proc widget_segment_ref*(widget_segment: PTextLineSegment){.cdecl, dynlib: lib, 
-    importc: "_gtk_widget_segment_ref".}
-proc widget_segment_unref*(widget_segment: PTextLineSegment){.cdecl, 
-    dynlib: lib, importc: "_gtk_widget_segment_unref".}
-proc anchored_child_get_layout*(child: PWidget): PTextLayout{.cdecl, 
-    dynlib: lib, importc: "_gtk_anchored_child_get_layout".}
-proc line_segment_split*(iter: PTextIter): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "gtk_text_line_segment_split".}
-proc char_segment_new*(text: cstring, len: guint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_char_segment_new".}
-proc char_segment_new_from_two_strings*(text1: cstring, len1: guint, 
-                                        text2: cstring, len2: guint): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_char_segment_new_from_two_strings".}
-proc toggle_segment_new*(info: PTextTagInfo, StateOn: gboolean): PTextLineSegment{.
-    cdecl, dynlib: lib, importc: "_gtk_toggle_segment_new".}
-proc btree_new*(table: PTextTagTable, buffer: PTextBuffer): PTextBTree{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_new".}
-proc reference*(tree: PTextBTree){.cdecl, dynlib: lib, 
-                                   importc: "_gtk_text_btree_ref".}
-proc unref*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_unref".}
-proc get_buffer*(tree: PTextBTree): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_buffer".}
-proc get_chars_changed_stamp*(tree: PTextBTree): guint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_chars_changed_stamp".}
-proc get_segments_changed_stamp*(tree: PTextBTree): guint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_segments_changed_stamp".}
-proc segments_changed*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_segments_changed".}
-proc is_end*(tree: PTextBTree, line: PTextLine, 
-                        seg: PTextLineSegment, byte_index: int32, 
-                        char_offset: int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_is_end".}
-proc btree_delete*(start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_delete".}
-proc btree_insert*(iter: PTextIter, text: cstring, len: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_insert".}
-proc btree_insert_pixbuf*(iter: PTextIter, pixbuf: gdk2pixbuf.PPixbuf){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_insert_pixbuf".}
-proc btree_insert_child_anchor*(iter: PTextIter, anchor: PTextChildAnchor){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_insert_child_anchor".}
-proc btree_unregister_child_anchor*(anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_unregister_child_anchor".}
-proc find_line_by_y*(tree: PTextBTree, view_id: gpointer, 
-                                ypixel: gint, line_top_y: Pgint): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_find_line_by_y".}
-proc find_line_top*(tree: PTextBTree, line: PTextLine, 
-                               view_id: gpointer): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_find_line_top".}
-proc add_view*(tree: PTextBTree, layout: PTextLayout){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_add_view".}
-proc remove_view*(tree: PTextBTree, view_id: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_view".}
-proc invalidate_region*(tree: PTextBTree, start: PTextIter, 
-                                   theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_invalidate_region".}
-proc get_view_size*(tree: PTextBTree, view_id: gpointer, 
-                               width: Pgint, height: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_view_size".}
-proc is_valid*(tree: PTextBTree, view_id: gpointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_is_valid".}
-proc validate*(tree: PTextBTree, view_id: gpointer, max_pixels: gint, 
-                          y: Pgint, old_height: Pgint, new_height: Pgint): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_validate".}
-proc validate_line*(tree: PTextBTree, line: PTextLine, 
-                               view_id: gpointer){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_validate_line".}
-proc btree_tag*(start: PTextIter, theEnd: PTextIter, tag: PTextTag, 
-                     apply: gboolean){.cdecl, dynlib: lib, 
-                                       importc: "_gtk_text_btree_tag".}
-proc get_line*(tree: PTextBTree, line_number: gint, 
-                          real_line_number: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line".}
-proc get_line_no_last*(tree: PTextBTree, line_number: gint, 
-                                  real_line_number: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line_no_last".}
-proc get_end_iter_line*(tree: PTextBTree): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_end_iter_line".}
-proc get_line_at_char*(tree: PTextBTree, char_index: gint, 
-                                  line_start_index: Pgint, 
-                                  real_char_index: Pgint): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_line_at_char".}
-proc btree_get_tags*(iter: PTextIter, num_tags: Pgint): PPGtkTextTag{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_tags".}
-proc btree_get_text*(start: PTextIter, theEnd: PTextIter, 
-                          include_hidden: gboolean, include_nonchars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_text".}
-proc line_count*(tree: PTextBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_line_count".}
-proc char_count*(tree: PTextBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_char_count".}
-proc btree_char_is_invisible*(iter: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_char_is_invisible".}
-proc get_iter_at_char*(tree: PTextBTree, iter: PTextIter, 
-                                  char_index: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_iter_at_char".}
-proc get_iter_at_line_char*(tree: PTextBTree, iter: PTextIter, 
-                                       line_number: gint, char_index: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line_char".}
-proc get_iter_at_line_byte*(tree: PTextBTree, iter: PTextIter, 
-                                       line_number: gint, byte_index: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line_byte".}
-proc get_iter_from_string*(tree: PTextBTree, iter: PTextIter, 
-                                      `string`: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_from_string".}
-proc get_iter_at_mark_name*(tree: PTextBTree, iter: PTextIter, 
-                                       mark_name: cstring): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_at_mark_name".}
-proc get_iter_at_mark*(tree: PTextBTree, iter: PTextIter, 
-                                  mark: PTextMark){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_get_iter_at_mark".}
-proc get_end_iter*(tree: PTextBTree, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_end_iter".}
-proc get_iter_at_line*(tree: PTextBTree, iter: PTextIter, 
-                                  line: PTextLine, byte_offset: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_iter_at_line".}
-proc get_iter_at_first_toggle*(tree: PTextBTree, iter: PTextIter, 
-    tag: PTextTag): gboolean{.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_first_toggle".}
-proc get_iter_at_last_toggle*(tree: PTextBTree, iter: PTextIter, 
-    tag: PTextTag): gboolean{.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_last_toggle".}
-proc get_iter_at_child_anchor*(tree: PTextBTree, iter: PTextIter, 
-    anchor: PTextChildAnchor){.cdecl, dynlib: lib, importc: "_gtk_text_btree_get_iter_at_child_anchor".}
-proc set_mark*(tree: PTextBTree, existing_mark: PTextMark, 
-                          name: cstring, left_gravity: gboolean, 
-                          index: PTextIter, should_exist: gboolean): PTextMark{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_set_mark".}
-proc remove_mark_by_name*(tree: PTextBTree, name: cstring){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_mark_by_name".}
-proc remove_mark*(tree: PTextBTree, segment: PTextMark){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_remove_mark".}
-proc get_selection_bounds*(tree: PTextBTree, start: PTextIter, 
-                                      theEnd: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_get_selection_bounds".}
-proc place_cursor*(tree: PTextBTree, `where`: PTextIter){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_place_cursor".}
-proc mark_is_insert*(tree: PTextBTree, segment: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_mark_is_insert".}
-proc mark_is_selection_bound*(tree: PTextBTree, segment: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_mark_is_selection_bound".}
-proc get_mark_by_name*(tree: PTextBTree, name: cstring): PTextMark{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_get_mark_by_name".}
-proc first_could_contain_tag*(tree: PTextBTree, tag: PTextTag): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_first_could_contain_tag".}
-proc last_could_contain_tag*(tree: PTextBTree, tag: PTextTag): PTextLine{.
-    cdecl, dynlib: lib, importc: "_gtk_text_btree_last_could_contain_tag".}
-const 
-  bm_TGtkTextLineData_width* = 0x00FFFFFF'i32
-  bp_TGtkTextLineData_width* = 0'i32
-  bm_TGtkTextLineData_valid* = 0xFF000000'i32
-  bp_TGtkTextLineData_valid* = 24'i32
-
-proc width*(a: PTextLineData): gint
-proc set_width*(a: PTextLineData, NewWidth: gint)
-proc valid*(a: PTextLineData): gint
-proc set_valid*(a: PTextLineData, `valid`: gint)
-proc get_number*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_get_number".}
-proc char_has_tag*(line: PTextLine, tree: PTextBTree, 
-                             char_in_line: gint, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_char_has_tag".}
-proc byte_has_tag*(line: PTextLine, tree: PTextBTree, 
-                             byte_in_line: gint, tag: PTextTag): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_byte_has_tag".}
-proc is_last*(line: PTextLine, tree: PTextBTree): gboolean{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_is_last".}
-proc contains_end_iter*(line: PTextLine, tree: PTextBTree): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_contains_end_iter".}
-proc next*(line: PTextLine): PTextLine{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_next".}
-proc next_excluding_last*(line: PTextLine): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_next_excluding_last".}
-proc previous*(line: PTextLine): PTextLine{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_previous".}
-proc add_data*(line: PTextLine, data: PTextLineData){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_add_data".}
-proc remove_data*(line: PTextLine, view_id: gpointer): gpointer{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_remove_data".}
-proc get_data*(line: PTextLine, view_id: gpointer): gpointer{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_get_data".}
-proc invalidate_wrap*(line: PTextLine, ld: PTextLineData){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_invalidate_wrap".}
-proc char_count*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_char_count".}
-proc byte_count*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_byte_count".}
-proc char_index*(line: PTextLine): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_text_line_char_index".}
-proc byte_to_segment*(line: PTextLine, byte_offset: gint, 
-                                seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_segment".}
-proc char_to_segment*(line: PTextLine, char_offset: gint, 
-                                seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_segment".}
-proc byte_to_char_offsets*(line: PTextLine, byte_offset: gint, 
-                                     line_char_offset: Pgint, 
-                                     seg_char_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_char_offsets".}
-proc char_to_byte_offsets*(line: PTextLine, char_offset: gint, 
-                                     line_byte_offset: Pgint, 
-                                     seg_byte_offset: Pgint){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_byte_offsets".}
-proc byte_to_any_segment*(line: PTextLine, byte_offset: gint, 
-                                    seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_any_segment".}
-proc char_to_any_segment*(line: PTextLine, char_offset: gint, 
-                                    seg_offset: Pgint): PTextLineSegment{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_any_segment".}
-proc byte_to_char*(line: PTextLine, byte_offset: gint): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_byte_to_char".}
-proc char_to_byte*(line: PTextLine, char_offset: gint): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_char_to_byte".}
-proc next_could_contain_tag*(line: PTextLine, tree: PTextBTree, 
-                                       tag: PTextTag): PTextLine{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_line_next_could_contain_tag".}
-proc previous_could_contain_tag*(line: PTextLine, tree: PTextBTree, 
-    tag: PTextTag): PTextLine{.cdecl, dynlib: lib, importc: "_gtk_text_line_previous_could_contain_tag".}
-proc line_data_new*(layout: PTextLayout, line: PTextLine): PTextLineData{.
-    cdecl, dynlib: lib, importc: "_gtk_text_line_data_new".}
-proc check*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_check".}
-proc spew*(tree: PTextBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_btree_spew".}
-proc toggle_segment_check_func*(segPtr: PTextLineSegment, line: PTextLine){.
-    cdecl, dynlib: lib, importc: "_gtk_toggle_segment_check_func".}
-proc change_node_toggle_count*(node: PTextBTreeNode, info: PTextTagInfo, 
-                               delta: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_change_node_toggle_count".}
-proc release_mark_segment*(tree: PTextBTree, 
-                                      segment: PTextLineSegment){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_release_mark_segment".}
-proc notify_will_remove_tag*(tree: PTextBTree, tag: PTextTag){.cdecl, 
-    dynlib: lib, importc: "_gtk_text_btree_notify_will_remove_tag".}
-const 
-  bm_TGtkTextBuffer_modified* = 0x0001'i16
-  bp_TGtkTextBuffer_modified* = 0'i16
-
-proc TYPE_TEXT_BUFFER*(): GType
-proc TEXT_BUFFER*(obj: pointer): PTextBuffer
-proc TEXT_BUFFER_CLASS*(klass: pointer): PTextBufferClass
-proc IS_TEXT_BUFFER*(obj: pointer): bool
-proc IS_TEXT_BUFFER_CLASS*(klass: pointer): bool
-proc TEXT_BUFFER_GET_CLASS*(obj: pointer): PTextBufferClass
-proc modified*(a: PTextBuffer): guint
-proc set_modified*(a: PTextBuffer, `modified`: guint)
-proc text_buffer_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_buffer_get_type".}
-proc text_buffer_new*(table: PTextTagTable): PTextBuffer{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_new".}
-proc get_line_count*(buffer: PTextBuffer): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_line_count".}
-proc get_char_count*(buffer: PTextBuffer): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_char_count".}
-proc get_tag_table*(buffer: PTextBuffer): PTextTagTable{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_tag_table".}
-proc set_text*(buffer: PTextBuffer, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_set_text".}
-proc insert*(buffer: PTextBuffer, iter: PTextIter, text: cstring, 
-                         len: gint){.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_buffer_insert".}
-proc insert_at_cursor*(buffer: PTextBuffer, text: cstring, len: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_at_cursor".}
-proc insert_interactive*(buffer: PTextBuffer, iter: PTextIter, 
-                                     text: cstring, len: gint, 
-                                     default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_interactive".}
-proc insert_interactive_at_cursor*(buffer: PTextBuffer, 
-    text: cstring, len: gint, default_editable: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_interactive_at_cursor".}
-proc insert_range*(buffer: PTextBuffer, iter: PTextIter, 
-                               start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_range".}
-proc insert_range_interactive*(buffer: PTextBuffer, iter: PTextIter, 
-    start: PTextIter, theEnd: PTextIter, default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_insert_range_interactive".}
-proc delete*(buffer: PTextBuffer, start: PTextIter, 
-                         theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_delete".}
-proc delete_interactive*(buffer: PTextBuffer, start_iter: PTextIter, 
-                                     end_iter: PTextIter, 
-                                     default_editable: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_delete_interactive".}
-proc get_text*(buffer: PTextBuffer, start: PTextIter, 
-                           theEnd: PTextIter, include_hidden_chars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_text".}
-proc get_slice*(buffer: PTextBuffer, start: PTextIter, 
-                            theEnd: PTextIter, include_hidden_chars: gboolean): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_slice".}
-proc insert_pixbuf*(buffer: PTextBuffer, iter: PTextIter, 
-                                pixbuf: gdk2pixbuf.PPixbuf){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_insert_pixbuf".}
-proc insert_child_anchor*(buffer: PTextBuffer, iter: PTextIter, 
-                                      anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_insert_child_anchor".}
-proc create_child_anchor*(buffer: PTextBuffer, iter: PTextIter): PTextChildAnchor{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_create_child_anchor".}
-proc create_mark*(buffer: PTextBuffer, mark_name: cstring, 
-                              `where`: PTextIter, left_gravity: gboolean): PTextMark{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_create_mark".}
-proc move_mark*(buffer: PTextBuffer, mark: PTextMark, 
-                            `where`: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_move_mark".}
-proc delete_mark*(buffer: PTextBuffer, mark: PTextMark){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_delete_mark".}
-proc get_mark*(buffer: PTextBuffer, name: cstring): PTextMark{.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_get_mark".}
-proc move_mark_by_name*(buffer: PTextBuffer, name: cstring, 
-                                    `where`: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_move_mark_by_name".}
-proc delete_mark_by_name*(buffer: PTextBuffer, name: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_delete_mark_by_name".}
-proc get_insert*(buffer: PTextBuffer): PTextMark{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_insert".}
-proc get_selection_bound*(buffer: PTextBuffer): PTextMark{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_selection_bound".}
-proc place_cursor*(buffer: PTextBuffer, `where`: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_place_cursor".}
-proc apply_tag*(buffer: PTextBuffer, tag: PTextTag, 
-                            start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_apply_tag".}
-proc remove_tag*(buffer: PTextBuffer, tag: PTextTag, 
-                             start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_remove_tag".}
-proc apply_tag_by_name*(buffer: PTextBuffer, name: cstring, 
-                                    start: PTextIter, theEnd: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_apply_tag_by_name".}
-proc remove_tag_by_name*(buffer: PTextBuffer, name: cstring, 
-                                     start: PTextIter, theEnd: PTextIter){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_remove_tag_by_name".}
-proc remove_all_tags*(buffer: PTextBuffer, start: PTextIter, 
-                                  theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_remove_all_tags".}
-proc get_iter_at_line_offset*(buffer: PTextBuffer, iter: PTextIter, 
-    line_number: gint, char_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line_offset".}
-proc get_iter_at_line_index*(buffer: PTextBuffer, iter: PTextIter, 
-    line_number: gint, byte_index: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line_index".}
-proc get_iter_at_offset*(buffer: PTextBuffer, iter: PTextIter, 
-                                     char_offset: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_offset".}
-proc get_iter_at_line*(buffer: PTextBuffer, iter: PTextIter, 
-                                   line_number: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_line".}
-proc get_start_iter*(buffer: PTextBuffer, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_start_iter".}
-proc get_end_iter*(buffer: PTextBuffer, iter: PTextIter){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_end_iter".}
-proc get_bounds*(buffer: PTextBuffer, start: PTextIter, 
-                             theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_bounds".}
-proc get_iter_at_mark*(buffer: PTextBuffer, iter: PTextIter, 
-                                   mark: PTextMark){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_get_iter_at_mark".}
-proc get_iter_at_child_anchor*(buffer: PTextBuffer, iter: PTextIter, 
-    anchor: PTextChildAnchor){.cdecl, dynlib: lib, importc: "gtk_text_buffer_get_iter_at_child_anchor".}
-proc get_modified*(buffer: PTextBuffer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_modified".}
-proc set_modified*(buffer: PTextBuffer, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_set_modified".}
-proc add_selection_clipboard*(buffer: PTextBuffer, 
-    clipboard: PClipboard){.cdecl, dynlib: lib, 
-                            importc: "gtk_text_buffer_add_selection_clipboard".}
-proc remove_selection_clipboard*(buffer: PTextBuffer, 
-    clipboard: PClipboard){.cdecl, dynlib: lib, importc: "gtk_text_buffer_remove_selection_clipboard".}
-proc cut_clipboard*(buffer: PTextBuffer, clipboard: PClipboard, 
-                                default_editable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_cut_clipboard".}
-proc copy_clipboard*(buffer: PTextBuffer, clipboard: PClipboard){.
-    cdecl, dynlib: lib, importc: "gtk_text_buffer_copy_clipboard".}
-proc paste_clipboard*(buffer: PTextBuffer, clipboard: PClipboard, 
-                                  override_location: PTextIter, 
-                                  default_editable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_paste_clipboard".}
-proc get_selection_bounds*(buffer: PTextBuffer, start: PTextIter, 
-                                       theEnd: PTextIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_get_selection_bounds".}
-proc delete_selection*(buffer: PTextBuffer, interactive: gboolean, 
-                                   default_editable: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_buffer_delete_selection".}
-proc begin_user_action*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_begin_user_action".}
-proc end_user_action*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "gtk_text_buffer_end_user_action".}
-proc spew*(buffer: PTextBuffer){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_buffer_spew".}
-proc get_btree*(buffer: PTextBuffer): PTextBTree{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_buffer_get_btree".}
-proc get_line_log_attrs*(buffer: PTextBuffer, 
-                                     anywhere_in_line: PTextIter, 
-                                     char_len: Pgint): pango.PLogAttr{.cdecl, 
-    dynlib: lib, importc: "_gtk_text_buffer_get_line_log_attrs".}
-proc notify_will_remove_tag*(buffer: PTextBuffer, tag: PTextTag){.
-    cdecl, dynlib: lib, importc: "_gtk_text_buffer_notify_will_remove_tag".}
-proc get_has_selection*(buffer: PTextBuffer): bool {.cdecl,
-    dynlib: lib, importc: "gtk_text_buffer_get_has_selection".}
-proc select_range*(buffer: PTextBuffer, ins,
-    bound: PTextIter) {.cdecl, dynlib: lib, importc: "gtk_text_buffer_select_range".}
-proc backspace*(buffer: PTextBuffer, iter: PTextIter,
-    interactive, defaultEditable: bool): bool {.cdecl,
-    dynlib: lib, importc: "gtk_text_buffer_backspace".}
-
-proc TYPE_TEXT_LAYOUT*(): GType
-proc TEXT_LAYOUT*(obj: pointer): PTextLayout
-proc TEXT_LAYOUT_CLASS*(klass: pointer): PTextLayoutClass
-proc IS_TEXT_LAYOUT*(obj: pointer): bool
-proc IS_TEXT_LAYOUT_CLASS*(klass: pointer): bool
-proc TEXT_LAYOUT_GET_CLASS*(obj: pointer): PTextLayoutClass
-const 
-  bm_TGtkTextLayout_cursor_visible* = 0x0001'i16
-  bp_TGtkTextLayout_cursor_visible* = 0'i16
-  bm_TGtkTextLayout_cursor_direction* = 0x0006'i16
-  bp_TGtkTextLayout_cursor_direction* = 1'i16
-
-proc cursor_visible*(a: PTextLayout): guint
-proc set_cursor_visible*(a: PTextLayout, `cursor_visible`: guint)
-proc cursor_direction*(a: PTextLayout): gint
-proc set_cursor_direction*(a: PTextLayout, `cursor_direction`: gint)
-const 
-  bm_TGtkTextCursorDisplay_is_strong* = 0x0001'i16
-  bp_TGtkTextCursorDisplay_is_strong* = 0'i16
-  bm_TGtkTextCursorDisplay_is_weak* = 0x0002'i16
-  bp_TGtkTextCursorDisplay_is_weak* = 1'i16
-
-proc is_strong*(a: PTextCursorDisplay): guint
-proc set_is_strong*(a: PTextCursorDisplay, `is_strong`: guint)
-proc is_weak*(a: PTextCursorDisplay): guint
-proc set_is_weak*(a: PTextCursorDisplay, `is_weak`: guint)
-proc text_layout_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_text_layout_get_type".}
-proc text_layout_new*(): PTextLayout{.cdecl, dynlib: lib, 
-                                      importc: "gtk_text_layout_new".}
-proc set_buffer*(layout: PTextLayout, buffer: PTextBuffer){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_buffer".}
-proc get_buffer*(layout: PTextLayout): PTextBuffer{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_buffer".}
-proc set_default_style*(layout: PTextLayout, values: PTextAttributes){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_set_default_style".}
-proc set_contexts*(layout: PTextLayout, ltr_context: pango.PContext, 
-                               rtl_context: pango.PContext){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_set_contexts".}
-proc set_cursor_direction*(layout: PTextLayout, 
-                                       direction: TTextDirection){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_cursor_direction".}
-proc default_style_changed*(layout: PTextLayout){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_default_style_changed".}
-proc set_screen_width*(layout: PTextLayout, width: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_screen_width".}
-proc set_preedit_string*(layout: PTextLayout, 
-                                     preedit_string: cstring, 
-                                     preedit_attrs: pango.PAttrList, 
-                                     cursor_pos: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_set_preedit_string".}
-proc set_cursor_visible*(layout: PTextLayout, 
-                                     cursor_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_set_cursor_visible".}
-proc get_cursor_visible*(layout: PTextLayout): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_cursor_visible".}
-proc get_size*(layout: PTextLayout, width: Pgint, height: Pgint){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_get_size".}
-proc get_lines*(layout: PTextLayout, top_y: gint, bottom_y: gint, 
-                            first_line_y: Pgint): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_lines".}
-proc wrap_loop_start*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_wrap_loop_start".}
-proc wrap_loop_end*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_wrap_loop_end".}
-proc get_line_display*(layout: PTextLayout, line: PTextLine, 
-                                   size_only: gboolean): PTextLineDisplay{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_get_line_display".}
-proc free_line_display*(layout: PTextLayout, 
-                                    display: PTextLineDisplay){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_free_line_display".}
-proc get_line_at_y*(layout: PTextLayout, target_iter: PTextIter, 
-                                y: gint, line_top: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_line_at_y".}
-proc get_iter_at_pixel*(layout: PTextLayout, iter: PTextIter, 
-                                    x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_iter_at_pixel".}
-proc invalidate*(layout: PTextLayout, start: PTextIter, 
-                             theEnd: PTextIter){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_invalidate".}
-proc free_line_data*(layout: PTextLayout, line: PTextLine, 
-                                 line_data: PTextLineData){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_free_line_data".}
-proc is_valid*(layout: PTextLayout): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_is_valid".}
-proc validate_yrange*(layout: PTextLayout, anchor_line: PTextIter, 
-                                  y0: gint, y1: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_validate_yrange".}
-proc validate*(layout: PTextLayout, max_pixels: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_validate".}
-proc wrap*(layout: PTextLayout, line: PTextLine, 
-                       line_data: PTextLineData): PTextLineData{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_wrap".}
-proc changed*(layout: PTextLayout, y: gint, old_height: gint, 
-                          new_height: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_changed".}
-proc get_iter_location*(layout: PTextLayout, iter: PTextIter, 
-                                    rect: gdk2.PRectangle){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_iter_location".}
-proc get_line_yrange*(layout: PTextLayout, iter: PTextIter, 
-                                  y: Pgint, height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_get_line_yrange".}
-proc get_line_xrange*(layout: PTextLayout, iter: PTextIter, 
-                                  x: Pgint, width: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_text_layout_get_line_xrange".}
-proc get_cursor_locations*(layout: PTextLayout, iter: PTextIter, 
-                                       strong_pos: gdk2.PRectangle, 
-                                       weak_pos: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_cursor_locations".}
-proc clamp_iter_to_vrange*(layout: PTextLayout, iter: PTextIter, 
-                                       top: gint, bottom: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_clamp_iter_to_vrange".}
-proc move_iter_to_line_end*(layout: PTextLayout, iter: PTextIter, 
-                                        direction: gint): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_move_iter_to_line_end".}
-proc move_iter_to_previous_line*(layout: PTextLayout, 
-    iter: PTextIter): gboolean{.cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_previous_line".}
-proc move_iter_to_next_line*(layout: PTextLayout, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_next_line".}
-proc move_iter_to_x*(layout: PTextLayout, iter: PTextIter, x: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_move_iter_to_x".}
-proc move_iter_visually*(layout: PTextLayout, iter: PTextIter, 
-                                     count: gint): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_move_iter_visually".}
-proc iter_starts_line*(layout: PTextLayout, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_layout_iter_starts_line".}
-proc get_iter_at_line*(layout: PTextLayout, iter: PTextIter, 
-                                   line: PTextLine, byte_offset: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_layout_get_iter_at_line".}
-proc anchor_register_child*(anchor: PTextChildAnchor, child: PWidget, 
-                                       layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_register_child".}
-proc anchor_unregister_child*(anchor: PTextChildAnchor, 
-    child: PWidget){.cdecl, dynlib: lib, 
-                     importc: "gtk_text_child_anchor_unregister_child".}
-proc anchor_queue_resize*(anchor: PTextChildAnchor, 
-                                     layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_child_anchor_queue_resize".}
-proc text_anchored_child_set_layout*(child: PWidget, layout: PTextLayout){.
-    cdecl, dynlib: lib, importc: "gtk_text_anchored_child_set_layout".}
-proc spew*(layout: PTextLayout){.cdecl, dynlib: lib, 
-    importc: "gtk_text_layout_spew".}
-const                         # GTK_TEXT_VIEW_PRIORITY_VALIDATE* = GDK_PRIORITY_REDRAW + 5
-  bm_TGtkTextView_editable* = 0x0001'i16
-  bp_TGtkTextView_editable* = 0'i16
-  bm_TGtkTextView_overwrite_mode* = 0x0002'i16
-  bp_TGtkTextView_overwrite_mode* = 1'i16
-  bm_TGtkTextView_cursor_visible* = 0x0004'i16
-  bp_TGtkTextView_cursor_visible* = 2'i16
-  bm_TGtkTextView_need_im_reset* = 0x0008'i16
-  bp_TGtkTextView_need_im_reset* = 3'i16
-  bm_TGtkTextView_just_selected_element* = 0x0010'i16
-  bp_TGtkTextView_just_selected_element* = 4'i16
-  bm_TGtkTextView_disable_scroll_on_focus* = 0x0020'i16
-  bp_TGtkTextView_disable_scroll_on_focus* = 5'i16
-  bm_TGtkTextView_onscreen_validated* = 0x0040'i16
-  bp_TGtkTextView_onscreen_validated* = 6'i16
-  bm_TGtkTextView_mouse_cursor_obscured* = 0x0080'i16
-  bp_TGtkTextView_mouse_cursor_obscured* = 7'i16
-
-proc TYPE_TEXT_VIEW*(): GType
-proc TEXT_VIEW*(obj: pointer): PTextView
-proc TEXT_VIEW_CLASS*(klass: pointer): PTextViewClass
-proc IS_TEXT_VIEW*(obj: pointer): bool
-proc IS_TEXT_VIEW_CLASS*(klass: pointer): bool
-proc TEXT_VIEW_GET_CLASS*(obj: pointer): PTextViewClass
-proc editable*(a: PTextView): guint
-proc set_editable*(a: PTextView, `editable`: guint)
-proc overwrite_mode*(a: PTextView): guint
-proc set_overwrite_mode*(a: PTextView, `overwrite_mode`: guint)
-proc cursor_visible*(a: PTextView): guint
-proc set_cursor_visible*(a: PTextView, `cursor_visible`: guint)
-proc need_im_reset*(a: PTextView): guint
-proc set_need_im_reset*(a: PTextView, `need_im_reset`: guint)
-proc just_selected_element*(a: PTextView): guint
-proc set_just_selected_element*(a: PTextView, `just_selected_element`: guint)
-proc disable_scroll_on_focus*(a: PTextView): guint
-proc set_disable_scroll_on_focus*(a: PTextView, 
-                                  `disable_scroll_on_focus`: guint)
-proc onscreen_validated*(a: PTextView): guint
-proc set_onscreen_validated*(a: PTextView, `onscreen_validated`: guint)
-proc mouse_cursor_obscured*(a: PTextView): guint
-proc set_mouse_cursor_obscured*(a: PTextView, `mouse_cursor_obscured`: guint)
-proc text_view_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_text_view_get_type".}
-proc text_view_new*(): PTextView{.cdecl, dynlib: lib, 
-                                  importc: "gtk_text_view_new".}
-proc text_view_new*(buffer: PTextBuffer): PTextView{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_new_with_buffer".}
-proc set_buffer*(text_view: PTextView, buffer: PTextBuffer){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_buffer".}
-proc get_buffer*(text_view: PTextView): PTextBuffer{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_buffer".}
-proc scroll_to_iter*(text_view: PTextView, iter: PTextIter, 
-                               within_margin: gdouble, use_align: gboolean, 
-                               xalign: gdouble, yalign: gdouble): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_scroll_to_iter".}
-proc scroll_to_mark*(text_view: PTextView, mark: PTextMark, 
-                               within_margin: gdouble, use_align: gboolean, 
-                               xalign: gdouble, yalign: gdouble){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_scroll_to_mark".}
-proc scroll_mark_onscreen*(text_view: PTextView, mark: PTextMark){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_scroll_mark_onscreen".}
-proc move_mark_onscreen*(text_view: PTextView, mark: PTextMark): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_move_mark_onscreen".}
-proc place_cursor_onscreen*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_place_cursor_onscreen".}
-proc get_visible_rect*(text_view: PTextView, 
-                                 visible_rect: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_visible_rect".}
-proc set_cursor_visible*(text_view: PTextView, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_cursor_visible".}
-proc get_cursor_visible*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_cursor_visible".}
-proc get_iter_location*(text_view: PTextView, iter: PTextIter, 
-                                  location: gdk2.PRectangle){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_iter_location".}
-proc get_iter_at_location*(text_view: PTextView, iter: PTextIter, 
-                                     x: gint, y: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_iter_at_location".}
-proc get_line_yrange*(text_view: PTextView, iter: PTextIter, y: Pgint, 
-                                height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_line_yrange".}
-proc get_line_at_y*(text_view: PTextView, target_iter: PTextIter, 
-                              y: gint, line_top: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_line_at_y".}
-proc buffer_to_window_coords*(text_view: PTextView, 
-                                        win: TTextWindowType, buffer_x: gint, 
-                                        buffer_y: gint, window_x: Pgint, 
-                                        window_y: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_buffer_to_window_coords".}
-proc window_to_buffer_coords*(text_view: PTextView, 
-                                        win: TTextWindowType, window_x: gint, 
-                                        window_y: gint, buffer_x: Pgint, 
-                                        buffer_y: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_window_to_buffer_coords".}
-proc get_window*(text_view: PTextView, win: TTextWindowType): gdk2.PWindow{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_window".}
-proc get_window_type*(text_view: PTextView, window: gdk2.PWindow): TTextWindowType{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_window_type".}
-proc set_border_window_size*(text_view: PTextView, 
-                                       thetype: TTextWindowType, size: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_border_window_size".}
-proc get_border_window_size*(text_view: PTextView, 
-                                       thetype: TTextWindowType): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_border_window_size".}
-proc forward_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_forward_display_line".}
-proc backward_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_backward_display_line".}
-proc forward_display_line_end*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_forward_display_line_end".}
-proc backward_display_line_start*(text_view: PTextView, 
-    iter: PTextIter): gboolean{.cdecl, dynlib: lib, importc: "gtk_text_view_backward_display_line_start".}
-proc starts_display_line*(text_view: PTextView, iter: PTextIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_starts_display_line".}
-proc move_visually*(text_view: PTextView, iter: PTextIter, count: gint): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_move_visually".}
-proc add_child_at_anchor*(text_view: PTextView, child: PWidget, 
-                                    anchor: PTextChildAnchor){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_add_child_at_anchor".}
-proc add_child_in_window*(text_view: PTextView, child: PWidget, 
-                                    which_window: TTextWindowType, xpos: gint, 
-                                    ypos: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_add_child_in_window".}
-proc move_child*(text_view: PTextView, child: PWidget, xpos: gint, 
-                           ypos: gint){.cdecl, dynlib: lib, 
-                                        importc: "gtk_text_view_move_child".}
-proc set_wrap_mode*(text_view: PTextView, wrap_mode: TWrapMode){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_wrap_mode".}
-proc get_wrap_mode*(text_view: PTextView): TWrapMode{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_wrap_mode".}
-proc set_editable*(text_view: PTextView, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_editable".}
-proc get_editable*(text_view: PTextView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_editable".}
-proc set_pixels_above_lines*(text_view: PTextView, 
-                                       pixels_above_lines: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_above_lines".}
-proc get_pixels_above_lines*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_above_lines".}
-proc set_pixels_below_lines*(text_view: PTextView, 
-                                       pixels_below_lines: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_below_lines".}
-proc get_pixels_below_lines*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_below_lines".}
-proc set_pixels_inside_wrap*(text_view: PTextView, 
-                                       pixels_inside_wrap: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_pixels_inside_wrap".}
-proc get_pixels_inside_wrap*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_pixels_inside_wrap".}
-proc set_justification*(text_view: PTextView, 
-                                  justification: TJustification){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_justification".}
-proc get_justification*(text_view: PTextView): TJustification{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_justification".}
-proc set_left_margin*(text_view: PTextView, left_margin: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_left_margin".}
-proc get_left_margin*(text_view: PTextView): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_left_margin".}
-proc set_right_margin*(text_view: PTextView, right_margin: gint){.
-    cdecl, dynlib: lib, importc: "gtk_text_view_set_right_margin".}
-proc get_right_margin*(text_view: PTextView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_right_margin".}
-proc set_indent*(text_view: PTextView, indent: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_indent".}
-proc get_indent*(text_view: PTextView): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_text_view_get_indent".}
-proc set_tabs*(text_view: PTextView, tabs: pango.PTabArray){.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_set_tabs".}
-proc get_tabs*(text_view: PTextView): pango.PTabArray{.cdecl, 
-    dynlib: lib, importc: "gtk_text_view_get_tabs".}
-proc get_default_attributes*(text_view: PTextView): PTextAttributes{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_default_attributes".}
-const 
-  bm_TGtkTipsQuery_emit_always* = 0x0001'i16
-  bp_TGtkTipsQuery_emit_always* = 0'i16
-  bm_TGtkTipsQuery_in_query* = 0x0002'i16
-  bp_TGtkTipsQuery_in_query* = 1'i16
-
-proc TYPE_TIPS_QUERY*(): GType
-proc TIPS_QUERY*(obj: pointer): PTipsQuery
-proc TIPS_QUERY_CLASS*(klass: pointer): PTipsQueryClass
-proc IS_TIPS_QUERY*(obj: pointer): bool
-proc IS_TIPS_QUERY_CLASS*(klass: pointer): bool
-proc TIPS_QUERY_GET_CLASS*(obj: pointer): PTipsQueryClass
-proc emit_always*(a: PTipsQuery): guint
-proc set_emit_always*(a: PTipsQuery, `emit_always`: guint)
-proc in_query*(a: PTipsQuery): guint
-proc set_in_query*(a: PTipsQuery, `in_query`: guint)
-proc tips_query_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tips_query_get_type".}
-proc tips_query_new*(): PTipsQuery{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tips_query_new".}
-proc start_query*(tips_query: PTipsQuery){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_start_query".}
-proc stop_query*(tips_query: PTipsQuery){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_stop_query".}
-proc set_caller*(tips_query: PTipsQuery, caller: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_tips_query_set_caller".}
-proc set_labels*(tips_query: PTipsQuery, label_inactive: cstring, 
-                            label_no_tip: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_tips_query_set_labels".}
-const 
-  bm_TGtkTooltips_delay* = 0x3FFFFFFF'i32
-  bp_TGtkTooltips_delay* = 0'i32
-  bm_TGtkTooltips_enabled* = 0x40000000'i32
-  bp_TGtkTooltips_enabled* = 30'i32
-  bm_TGtkTooltips_have_grab* = 0x80000000'i32
-  bp_TGtkTooltips_have_grab* = 31'i32
-  bm_TGtkTooltips_use_sticky_delay* = 0x00000001'i32
-  bp_TGtkTooltips_use_sticky_delay* = 0'i32
-
-proc TYPE_TOOLTIPS*(): GType
-proc TOOLTIPS*(obj: pointer): PTooltips
-proc TOOLTIPS_CLASS*(klass: pointer): PTooltipsClass
-proc IS_TOOLTIPS*(obj: pointer): bool
-proc IS_TOOLTIPS_CLASS*(klass: pointer): bool
-proc TOOLTIPS_GET_CLASS*(obj: pointer): PTooltipsClass
-proc delay*(a: PTooltips): guint
-proc set_delay*(a: PTooltips, `delay`: guint)
-proc enabled*(a: PTooltips): guint
-proc set_enabled*(a: PTooltips, `enabled`: guint)
-proc have_grab*(a: PTooltips): guint
-proc set_have_grab*(a: PTooltips, `have_grab`: guint)
-proc use_sticky_delay*(a: PTooltips): guint
-proc set_use_sticky_delay*(a: PTooltips, `use_sticky_delay`: guint)
-proc tooltips_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tooltips_get_type".}
-proc tooltips_new*(): PTooltips{.cdecl, dynlib: lib, importc: "gtk_tooltips_new".}
-proc enable*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_enable".}
-proc disable*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_disable".}
-proc set_tip*(tooltips: PTooltips, widget: PWidget, tip_text: cstring, 
-                       tip_private: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_set_tip".}
-proc tooltips_data_get*(widget: PWidget): PTooltipsData{.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_data_get".}
-proc force_window*(tooltips: PTooltips){.cdecl, dynlib: lib, 
-    importc: "gtk_tooltips_force_window".}
-proc tooltips_toggle_keyboard_mode*(widget: PWidget){.cdecl, dynlib: lib, 
-    importc: "_gtk_tooltips_toggle_keyboard_mode".}
-const 
-  bm_TGtkToolbar_style_set* = 0x0001'i16
-  bp_TGtkToolbar_style_set* = 0'i16
-  bm_TGtkToolbar_icon_size_set* = 0x0002'i16
-  bp_TGtkToolbar_icon_size_set* = 1'i16
-
-proc TYPE_TOOLBAR*(): GType
-proc TOOLBAR*(obj: pointer): PToolbar
-proc TOOLBAR_CLASS*(klass: pointer): PToolbarClass
-proc IS_TOOLBAR*(obj: pointer): bool
-proc IS_TOOLBAR_CLASS*(klass: pointer): bool
-proc TOOLBAR_GET_CLASS*(obj: pointer): PToolbarClass
-proc style_set*(a: PToolbar): guint
-proc set_style_set*(a: PToolbar, `style_set`: guint)
-proc icon_size_set*(a: PToolbar): guint
-proc set_icon_size_set*(a: PToolbar, `icon_size_set`: guint)
-proc toolbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                 importc: "gtk_toolbar_get_type".}
-proc toolbar_new*(): PToolbar{.cdecl, dynlib: lib, importc: "gtk_toolbar_new".}
-proc append_item*(toolbar: PToolbar, text: cstring, 
-                          tooltip_text: cstring, tooltip_private_text: cstring, 
-                          icon: PWidget, callback: TSignalFunc, 
-                          user_data: gpointer): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_append_item".}
-proc prepend_item*(toolbar: PToolbar, text: cstring, 
-                           tooltip_text: cstring, tooltip_private_text: cstring, 
-                           icon: PWidget, callback: TSignalFunc, 
-                           user_data: gpointer): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_item".}
-proc insert_item*(toolbar: PToolbar, text: cstring, 
-                          tooltip_text: cstring, tooltip_private_text: cstring, 
-                          icon: PWidget, callback: TSignalFunc, 
-                          user_data: gpointer, position: gint): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_insert_item".}
-proc insert_stock*(toolbar: PToolbar, stock_id: cstring, 
-                           tooltip_text: cstring, tooltip_private_text: cstring, 
-                           callback: TSignalFunc, user_data: gpointer, 
-                           position: gint): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_insert_stock".}
-proc append_space*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_append_space".}
-proc prepend_space*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_space".}
-proc insert_space*(toolbar: PToolbar, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_insert_space".}
-proc remove_space*(toolbar: PToolbar, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_remove_space".}
-proc append_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                             widget: PWidget, text: cstring, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring, icon: PWidget, 
-                             callback: TSignalFunc, user_data: gpointer): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_append_element".}
-proc prepend_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                              widget: PWidget, text: cstring, 
-                              tooltip_text: cstring, 
-                              tooltip_private_text: cstring, icon: PWidget, 
-                              callback: TSignalFunc, user_data: gpointer): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_prepend_element".}
-proc insert_element*(toolbar: PToolbar, thetype: TToolbarChildType, 
-                             widget: PWidget, text: cstring, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring, icon: PWidget, 
-                             callback: TSignalFunc, user_data: gpointer, 
-                             position: gint): PWidget{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_insert_element".}
-proc append_widget*(toolbar: PToolbar, widget: PWidget, 
-                            tooltip_text: cstring, tooltip_private_text: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_append_widget".}
-proc prepend_widget*(toolbar: PToolbar, widget: PWidget, 
-                             tooltip_text: cstring, 
-                             tooltip_private_text: cstring){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_prepend_widget".}
-proc insert_widget*(toolbar: PToolbar, widget: PWidget, 
-                            tooltip_text: cstring, 
-                            tooltip_private_text: cstring, position: gint){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_insert_widget".}
-proc set_orientation*(toolbar: PToolbar, orientation: TOrientation){.
-    cdecl, dynlib: lib, importc: "gtk_toolbar_set_orientation".}
-proc set_style*(toolbar: PToolbar, style: TToolbarStyle){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_style".}
-proc set_icon_size*(toolbar: PToolbar, icon_size: TIconSize){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_icon_size".}
-proc set_tooltips*(toolbar: PToolbar, enable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_set_tooltips".}
-proc unset_style*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_unset_style".}
-proc unset_icon_size*(toolbar: PToolbar){.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_unset_icon_size".}
-proc get_orientation*(toolbar: PToolbar): TOrientation{.cdecl, 
-    dynlib: lib, importc: "gtk_toolbar_get_orientation".}
-proc get_style*(toolbar: PToolbar): TToolbarStyle{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_style".}
-proc get_icon_size*(toolbar: PToolbar): TIconSize{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_icon_size".}
-proc get_tooltips*(toolbar: PToolbar): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_toolbar_get_tooltips".}
-const 
-  bm_TGtkTree_selection_mode* = 0x0003'i16
-  bp_TGtkTree_selection_mode* = 0'i16
-  bm_TGtkTree_view_mode* = 0x0004'i16
-  bp_TGtkTree_view_mode* = 2'i16
-  bm_TGtkTree_view_line* = 0x0008'i16
-  bp_TGtkTree_view_line* = 3'i16
-
-proc TYPE_TREE*(): GType
-proc TREE*(obj: pointer): PTree
-proc TREE_CLASS*(klass: pointer): PTreeClass
-proc IS_TREE*(obj: pointer): bool
-proc IS_TREE_CLASS*(klass: pointer): bool
-proc TREE_GET_CLASS*(obj: pointer): PTreeClass
-proc IS_ROOT_TREE*(obj: pointer): bool
-proc TREE_ROOT_TREE*(obj: pointer): PTree
-proc TREE_SELECTION_OLD*(obj: pointer): PGList
-proc selection_mode*(a: PTree): guint
-proc set_selection_mode*(a: PTree, `selection_mode`: guint)
-proc view_mode*(a: PTree): guint
-proc set_view_mode*(a: PTree, `view_mode`: guint)
-proc view_line*(a: PTree): guint
-proc set_view_line*(a: PTree, `view_line`: guint)
-proc tree_get_type*(): TType{.cdecl, dynlib: lib, importc: "gtk_tree_get_type".}
-proc tree_new*(): PTree{.cdecl, dynlib: lib, importc: "gtk_tree_new".}
-proc append*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_append".}
-proc prepend*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_prepend".}
-proc insert*(tree: PTree, tree_item: PWidget, position: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_insert".}
-proc remove_items*(tree: PTree, items: PGList){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_remove_items".}
-proc clear_items*(tree: PTree, start: gint, theEnd: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_clear_items".}
-proc select_item*(tree: PTree, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_select_item".}
-proc unselect_item*(tree: PTree, item: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_unselect_item".}
-proc select_child*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_select_child".}
-proc unselect_child*(tree: PTree, tree_item: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_unselect_child".}
-proc child_position*(tree: PTree, child: PWidget): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_child_position".}
-proc set_selection_mode*(tree: PTree, mode: TSelectionMode){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_set_selection_mode".}
-proc set_view_mode*(tree: PTree, mode: TTreeViewMode){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_set_view_mode".}
-proc set_view_lines*(tree: PTree, flag: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_set_view_lines".}
-proc remove_item*(tree: PTree, child: PWidget){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_remove_item".}
-proc TYPE_TREE_DRAG_SOURCE*(): GType
-proc TREE_DRAG_SOURCE*(obj: pointer): PTreeDragSource
-proc IS_TREE_DRAG_SOURCE*(obj: pointer): bool
-proc TREE_DRAG_SOURCE_GET_IFACE*(obj: pointer): PTreeDragSourceIface
-proc tree_drag_source_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_drag_source_get_type".}
-proc source_row_draggable*(drag_source: PTreeDragSource, 
-                                     path: PTreePath): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_drag_source_row_draggable".}
-proc source_drag_data_delete*(drag_source: PTreeDragSource, 
-                                        path: PTreePath): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_drag_source_drag_data_delete".}
-proc source_drag_data_get*(drag_source: PTreeDragSource, 
-                                     path: PTreePath, 
-                                     selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_source_drag_data_get".}
-proc TYPE_TREE_DRAG_DEST*(): GType
-proc TREE_DRAG_DEST*(obj: pointer): PTreeDragDest
-proc IS_TREE_DRAG_DEST*(obj: pointer): bool
-proc TREE_DRAG_DEST_GET_IFACE*(obj: pointer): PTreeDragDestIface
-proc tree_drag_dest_get_type*(): GType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_drag_dest_get_type".}
-proc dest_drag_data_received*(drag_dest: PTreeDragDest, 
-                                        dest: PTreePath, 
-                                        selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_dest_drag_data_received".}
-proc dest_row_drop_possible*(drag_dest: PTreeDragDest, 
-                                       dest_path: PTreePath, 
-                                       selection_data: PSelectionData): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_drag_dest_row_drop_possible".}
-proc tree_set_row_drag_data*(selection_data: PSelectionData, 
-                             tree_model: PTreeModel, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_set_row_drag_data".}
-const 
-  bm_TGtkTreeItem_expanded* = 0x0001'i16
-  bp_TGtkTreeItem_expanded* = 0'i16
-
-proc TYPE_TREE_ITEM*(): GType
-proc TREE_ITEM*(obj: pointer): PTreeItem
-proc TREE_ITEM_CLASS*(klass: pointer): PTreeItemClass
-proc IS_TREE_ITEM*(obj: pointer): bool
-proc IS_TREE_ITEM_CLASS*(klass: pointer): bool
-proc TREE_ITEM_GET_CLASS*(obj: pointer): PTreeItemClass
-proc TREE_ITEM_SUBTREE*(obj: pointer): PWidget
-proc expanded*(a: PTreeItem): guint
-proc set_expanded*(a: PTreeItem, `expanded`: guint)
-proc tree_item_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_item_get_type".}
-proc tree_item_new*(): PTreeItem{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_item_new".}
-proc tree_item_new*(`label`: cstring): PTreeItem{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_new_with_label".}
-proc set_subtree*(tree_item: PTreeItem, subtree: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_item_set_subtree".}
-proc remove_subtree*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_remove_subtree".}
-proc select*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_select".}
-proc deselect*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_deselect".}
-proc expand*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_expand".}
-proc collapse*(tree_item: PTreeItem){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_item_collapse".}
-proc TYPE_TREE_SELECTION*(): GType
-proc TREE_SELECTION*(obj: pointer): PTreeSelection
-proc TREE_SELECTION_CLASS*(klass: pointer): PTreeSelectionClass
-proc IS_TREE_SELECTION*(obj: pointer): bool
-proc IS_TREE_SELECTION_CLASS*(klass: pointer): bool
-proc TREE_SELECTION_GET_CLASS*(obj: pointer): PTreeSelectionClass
-proc tree_selection_get_type*(): TType{.cdecl, dynlib: lib, 
-                                        importc: "gtk_tree_selection_get_type".}
-proc set_mode*(selection: PTreeSelection, thetype: TSelectionMode){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_set_mode".}
-proc get_mode*(selection: PTreeSelection): TSelectionMode{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_mode".}
-proc set_select_function*(selection: PTreeSelection, 
-    fun: TTreeSelectionFunc, data: gpointer, destroy: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_set_select_function".}
-proc get_user_data*(selection: PTreeSelection): gpointer{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_user_data".}
-proc get_tree_view*(selection: PTreeSelection): PTreeView{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_tree_view".}
-proc get_selected*(selection: PTreeSelection, 
-                                  model: PPGtkTreeModel, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_get_selected".}
-proc get_selected_rows*(selection: PTreeSelection, 
-                                       model: PPGtkTreeModel): PGList{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_get_selected_rows".}
-proc selected_foreach*(selection: PTreeSelection, 
-                                      fun: TTreeSelectionForeachFunc, 
-                                      data: gpointer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_selection_selected_foreach".}
-proc select_path*(selection: PTreeSelection, path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_path".}
-proc unselect_path*(selection: PTreeSelection, path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_unselect_path".}
-proc select_iter*(selection: PTreeSelection, iter: PTreeIter){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_iter".}
-proc unselect_iter*(selection: PTreeSelection, iter: PTreeIter){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_unselect_iter".}
-proc path_is_selected*(selection: PTreeSelection, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_path_is_selected".}
-proc iter_is_selected*(selection: PTreeSelection, iter: PTreeIter): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_iter_is_selected".}
-proc select_all*(selection: PTreeSelection){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_selection_select_all".}
-proc unselect_all*(selection: PTreeSelection){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_selection_unselect_all".}
-proc select_range*(selection: PTreeSelection, 
-                                  start_path: PTreePath, end_path: PTreePath){.
-    cdecl, dynlib: lib, importc: "gtk_tree_selection_select_range".}
-const 
-  bm_TGtkTreeStore_columns_dirty* = 0x0001'i16
-  bp_TGtkTreeStore_columns_dirty* = 0'i16
-
-proc TYPE_TREE_STORE*(): GType
-proc TREE_STORE*(obj: pointer): PTreeStore
-proc TREE_STORE_CLASS*(klass: pointer): PTreeStoreClass
-proc IS_TREE_STORE*(obj: pointer): bool
-proc IS_TREE_STORE_CLASS*(klass: pointer): bool
-proc TREE_STORE_GET_CLASS*(obj: pointer): PTreeStoreClass
-proc columns_dirty*(a: PTreeStore): guint
-proc set_columns_dirty*(a: PTreeStore, `columns_dirty`: guint)
-proc tree_store_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_tree_store_get_type".}
-proc tree_store_newv*(n_columns: gint, types: PGType): PTreeStore{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_newv".}
-proc set_column_types*(tree_store: PTreeStore, n_columns: gint, 
-                                  types: PGType){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_set_column_types".}
-proc set_value*(tree_store: PTreeStore, iter: PTreeIter, 
-                           column: gint, value: PGValue){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_set_value".}
-proc remove*(tree_store: PTreeStore, iter: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_remove".}
-proc insert*(tree_store: PTreeStore, iter: PTreeIter, 
-                        parent: PTreeIter, position: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_insert".}
-proc insert_before*(tree_store: PTreeStore, iter: PTreeIter, 
-                               parent: PTreeIter, sibling: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_insert_before".}
-proc insert_after*(tree_store: PTreeStore, iter: PTreeIter, 
-                              parent: PTreeIter, sibling: PTreeIter){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_insert_after".}
-proc prepend*(tree_store: PTreeStore, iter: PTreeIter, 
-                         parent: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_prepend".}
-proc append*(tree_store: PTreeStore, iter: PTreeIter, 
-                        parent: PTreeIter){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_append".}
-proc is_ancestor*(tree_store: PTreeStore, iter: PTreeIter, 
-                             descendant: PTreeIter): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_store_is_ancestor".}
-proc iter_depth*(tree_store: PTreeStore, iter: PTreeIter): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_store_iter_depth".}
-proc clear*(tree_store: PTreeStore){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_store_clear".}
-const 
-  bm_TGtkTreeViewColumn_visible* = 0x0001'i16
-  bp_TGtkTreeViewColumn_visible* = 0'i16
-  bm_TGtkTreeViewColumn_resizable* = 0x0002'i16
-  bp_TGtkTreeViewColumn_resizable* = 1'i16
-  bm_TGtkTreeViewColumn_clickable* = 0x0004'i16
-  bp_TGtkTreeViewColumn_clickable* = 2'i16
-  bm_TGtkTreeViewColumn_dirty* = 0x0008'i16
-  bp_TGtkTreeViewColumn_dirty* = 3'i16
-  bm_TGtkTreeViewColumn_show_sort_indicator* = 0x0010'i16
-  bp_TGtkTreeViewColumn_show_sort_indicator* = 4'i16
-  bm_TGtkTreeViewColumn_maybe_reordered* = 0x0020'i16
-  bp_TGtkTreeViewColumn_maybe_reordered* = 5'i16
-  bm_TGtkTreeViewColumn_reorderable* = 0x0040'i16
-  bp_TGtkTreeViewColumn_reorderable* = 6'i16
-  bm_TGtkTreeViewColumn_use_resized_width* = 0x0080'i16
-  bp_TGtkTreeViewColumn_use_resized_width* = 7'i16
-
-proc TYPE_TREE_VIEW_COLUMN*(): GType
-proc TREE_VIEW_COLUMN*(obj: pointer): PTreeViewColumn
-proc TREE_VIEW_COLUMN_CLASS*(klass: pointer): PTreeViewColumnClass
-proc IS_TREE_VIEW_COLUMN*(obj: pointer): bool
-proc IS_TREE_VIEW_COLUMN_CLASS*(klass: pointer): bool
-proc TREE_VIEW_COLUMN_GET_CLASS*(obj: pointer): PTreeViewColumnClass
-proc visible*(a: PTreeViewColumn): guint
-proc set_visible*(a: PTreeViewColumn, `visible`: guint)
-proc resizable*(a: PTreeViewColumn): guint
-proc set_resizable*(a: PTreeViewColumn, `resizable`: guint)
-proc clickable*(a: PTreeViewColumn): guint
-proc set_clickable*(a: PTreeViewColumn, `clickable`: guint)
-proc dirty*(a: PTreeViewColumn): guint
-proc set_dirty*(a: PTreeViewColumn, `dirty`: guint)
-proc show_sort_indicator*(a: PTreeViewColumn): guint
-proc set_show_sort_indicator*(a: PTreeViewColumn, 
-                              `show_sort_indicator`: guint)
-proc maybe_reordered*(a: PTreeViewColumn): guint
-proc set_maybe_reordered*(a: PTreeViewColumn, `maybe_reordered`: guint)
-proc reorderable*(a: PTreeViewColumn): guint
-proc set_reorderable*(a: PTreeViewColumn, `reorderable`: guint)
-proc use_resized_width*(a: PTreeViewColumn): guint
-proc set_use_resized_width*(a: PTreeViewColumn, `use_resized_width`: guint)
-proc tree_view_column_get_type*(): TType{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_get_type".}
-proc tree_view_column_new*(): PTreeViewColumn{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_new".}
-proc column_pack_start*(tree_column: PTreeViewColumn, 
-                                  cell: PCellRenderer, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_pack_start".}
-proc column_pack_end*(tree_column: PTreeViewColumn, 
-                                cell: PCellRenderer, expand: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_pack_end".}
-proc column_clear*(tree_column: PTreeViewColumn){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_clear".}
-proc column_get_cell_renderers*(tree_column: PTreeViewColumn): PGList{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_cell_renderers".}
-proc column_add_attribute*(tree_column: PTreeViewColumn, 
-                                     cell_renderer: PCellRenderer, 
-                                     attribute: cstring, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_add_attribute".}
-proc column_set_cell_data_func*(tree_column: PTreeViewColumn, 
-    cell_renderer: PCellRenderer, fun: TTreeCellDataFunc, func_data: gpointer, 
-    destroy: TDestroyNotify){.cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_cell_data_func".}
-proc column_clear_attributes*(tree_column: PTreeViewColumn, 
-                                        cell_renderer: PCellRenderer){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_clear_attributes".}
-proc column_set_spacing*(tree_column: PTreeViewColumn, spacing: gint){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_spacing".}
-proc column_get_spacing*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_spacing".}
-proc column_set_visible*(tree_column: PTreeViewColumn, 
-                                   visible: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_visible".}
-proc column_get_visible*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_visible".}
-proc column_set_resizable*(tree_column: PTreeViewColumn, 
-                                     resizable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_resizable".}
-proc column_get_resizable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_resizable".}
-proc column_set_sizing*(tree_column: PTreeViewColumn, 
-                                  thetype: TTreeViewColumnSizing){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_set_sizing".}
-proc column_get_sizing*(tree_column: PTreeViewColumn): TTreeViewColumnSizing{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sizing".}
-proc column_get_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_width".}
-proc column_get_fixed_width*(tree_column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_fixed_width".}
-proc column_set_fixed_width*(tree_column: PTreeViewColumn, 
-                                       fixed_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_fixed_width".}
-proc column_set_min_width*(tree_column: PTreeViewColumn, 
-                                     min_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_min_width".}
-proc column_get_min_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_min_width".}
-proc column_set_max_width*(tree_column: PTreeViewColumn, 
-                                     max_width: gint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_max_width".}
-proc column_get_max_width*(tree_column: PTreeViewColumn): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_max_width".}
-proc column_clicked*(tree_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_clicked".}
-proc column_set_title*(tree_column: PTreeViewColumn, title: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_title".}
-proc column_get_title*(tree_column: PTreeViewColumn): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_title".}
-proc column_set_clickable*(tree_column: PTreeViewColumn, 
-                                     clickable: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_clickable".}
-proc column_get_clickable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_clickable".}
-proc column_set_widget*(tree_column: PTreeViewColumn, widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_widget".}
-proc column_get_widget*(tree_column: PTreeViewColumn): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_get_widget".}
-proc column_set_alignment*(tree_column: PTreeViewColumn, 
-                                     xalign: gfloat){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_alignment".}
-proc column_get_alignment*(tree_column: PTreeViewColumn): gfloat{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_alignment".}
-proc column_set_reorderable*(tree_column: PTreeViewColumn, 
-                                       reorderable: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_column_set_reorderable".}
-proc column_get_reorderable*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_reorderable".}
-proc column_set_sort_column_id*(tree_column: PTreeViewColumn, 
-    sort_column_id: gint){.cdecl, dynlib: lib, 
-                           importc: "gtk_tree_view_column_set_sort_column_id".}
-proc column_get_sort_column_id*(tree_column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_column_id".}
-proc column_set_sort_indicator*(tree_column: PTreeViewColumn, 
-    setting: gboolean){.cdecl, dynlib: lib, 
-                        importc: "gtk_tree_view_column_set_sort_indicator".}
-proc column_get_sort_indicator*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_indicator".}
-proc column_set_sort_order*(tree_column: PTreeViewColumn, 
-                                      order: TSortType){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_set_sort_order".}
-proc column_get_sort_order*(tree_column: PTreeViewColumn): TSortType{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_sort_order".}
-proc column_cell_set_cell_data*(tree_column: PTreeViewColumn, 
-    tree_model: PTreeModel, iter: PTreeIter, is_expander: gboolean, 
-    is_expanded: gboolean){.cdecl, dynlib: lib, 
-                            importc: "gtk_tree_view_column_cell_set_cell_data".}
-proc column_cell_get_size*(tree_column: PTreeViewColumn, 
-                                     cell_area: gdk2.PRectangle, x_offset: Pgint, 
-                                     y_offset: Pgint, width: Pgint, 
-                                     height: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_cell_get_size".}
-proc column_cell_is_visible*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_cell_is_visible".}
-proc column_focus_cell*(tree_column: PTreeViewColumn, 
-                                  cell: PCellRenderer){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_column_focus_cell".}
-proc column_set_expand*(tree_column: PTreeViewColumn, Expand: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_set_expand".}
-proc column_get_expand*(tree_column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_column_get_expand".}
-const 
-  RBNODE_BLACK* = 1 shl 0
-  RBNODE_RED* = 1 shl 1
-  RBNODE_IS_PARENT* = 1 shl 2
-  RBNODE_IS_SELECTED* = 1 shl 3
-  RBNODE_IS_PRELIT* = 1 shl 4
-  RBNODE_IS_SEMI_COLLAPSED* = 1 shl 5
-  RBNODE_IS_SEMI_EXPANDED* = 1 shl 6
-  RBNODE_INVALID* = 1 shl 7
-  RBNODE_COLUMN_INVALID* = 1 shl 8
-  RBNODE_DESCENDANTS_INVALID* = 1 shl 9
-  RBNODE_NON_COLORS* = RBNODE_IS_PARENT or RBNODE_IS_SELECTED or
-      RBNODE_IS_PRELIT or RBNODE_IS_SEMI_COLLAPSED or RBNODE_IS_SEMI_EXPANDED or
-      RBNODE_INVALID or RBNODE_COLUMN_INVALID or RBNODE_DESCENDANTS_INVALID
-
-const 
-  bm_TGtkRBNode_flags* = 0x3FFF'i16
-  bp_TGtkRBNode_flags* = 0'i16
-  bm_TGtkRBNode_parity* = 0x4000'i16
-  bp_TGtkRBNode_parity* = 14'i16
-
-proc flags*(a: PRBNode): guint
-proc set_flags*(a: PRBNode, `flags`: guint)
-proc parity*(a: PRBNode): guint
-proc set_parity*(a: PRBNode, `parity`: guint)
-proc GET_COLOR*(node: PRBNode): guint
-proc SET_COLOR*(node: PRBNode, color: guint)
-proc GET_HEIGHT*(node: PRBNode): gint
-proc SET_FLAG*(node: PRBNode, flag: guint16)
-proc UNSET_FLAG*(node: PRBNode, flag: guint16)
-proc FLAG_SET*(node: PRBNode, flag: guint): bool
-proc rbtree_push_allocator*(allocator: PGAllocator){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_push_allocator".}
-proc rbtree_pop_allocator*(){.cdecl, dynlib: lib, 
-                              importc: "_gtk_rbtree_pop_allocator".}
-proc rbtree_new*(): PRBTree{.cdecl, dynlib: lib, importc: "_gtk_rbtree_new".}
-proc free*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                  importc: "_gtk_rbtree_free".}
-proc remove*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                    importc: "_gtk_rbtree_remove".}
-proc destroy*(tree: PRBTree){.cdecl, dynlib: lib, 
-                                     importc: "_gtk_rbtree_destroy".}
-proc insert_before*(tree: PRBTree, node: PRBNode, height: gint, 
-                           valid: gboolean): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_insert_before".}
-proc insert_after*(tree: PRBTree, node: PRBNode, height: gint, 
-                          valid: gboolean): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_insert_after".}
-proc remove_node*(tree: PRBTree, node: PRBNode){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_remove_node".}
-proc reorder*(tree: PRBTree, new_order: Pgint, length: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_reorder".}
-proc find_count*(tree: PRBTree, count: gint): PRBNode{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_find_count".}
-proc node_set_height*(tree: PRBTree, node: PRBNode, height: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_rbtree_node_set_height".}
-proc node_mark_invalid*(tree: PRBTree, node: PRBNode){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_mark_invalid".}
-proc node_mark_valid*(tree: PRBTree, node: PRBNode){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_node_mark_valid".}
-proc column_invalid*(tree: PRBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_column_invalid".}
-proc mark_invalid*(tree: PRBTree){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_mark_invalid".}
-proc set_fixed_height*(tree: PRBTree, height: gint){.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_set_fixed_height".}
-proc node_find_offset*(tree: PRBTree, node: PRBNode): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_find_offset".}
-proc node_find_parity*(tree: PRBTree, node: PRBNode): gint{.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_node_find_parity".}
-proc traverse*(tree: PRBTree, node: PRBNode, order: TGTraverseType, 
-                      fun: TRBTreeTraverseFunc, data: gpointer){.cdecl, 
-    dynlib: lib, importc: "_gtk_rbtree_traverse".}
-proc next*(tree: PRBTree, node: PRBNode): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_next".}
-proc prev*(tree: PRBTree, node: PRBNode): PRBNode{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_prev".}
-proc get_depth*(tree: PRBTree): gint{.cdecl, dynlib: lib, 
-    importc: "_gtk_rbtree_get_depth".}
-const 
-  TREE_VIEW_DRAG_WIDTH* = 6
-  TREE_VIEW_IS_LIST* = 1 shl 0
-  TREE_VIEW_SHOW_EXPANDERS* = 1 shl 1
-  TREE_VIEW_IN_COLUMN_RESIZE* = 1 shl 2
-  TREE_VIEW_ARROW_PRELIT* = 1 shl 3
-  TREE_VIEW_HEADERS_VISIBLE* = 1 shl 4
-  TREE_VIEW_DRAW_KEYFOCUS* = 1 shl 5
-  TREE_VIEW_MODEL_SETUP* = 1 shl 6
-  TREE_VIEW_IN_COLUMN_DRAG* = 1 shl 7
-  DRAG_COLUMN_WINDOW_STATE_UNSET* = 0
-  DRAG_COLUMN_WINDOW_STATE_ORIGINAL* = 1
-  DRAG_COLUMN_WINDOW_STATE_ARROW* = 2
-  DRAG_COLUMN_WINDOW_STATE_ARROW_LEFT* = 3
-  DRAG_COLUMN_WINDOW_STATE_ARROW_RIGHT* = 4
-
-proc SET_FLAG*(tree_view: PTreeView, flag: guint)
-proc UNSET_FLAG*(tree_view: PTreeView, flag: guint)
-proc FLAG_SET*(tree_view: PTreeView, flag: guint): bool
-proc HEADER_HEIGHT*(tree_view: PTreeView): int32
-proc COLUMN_REQUESTED_WIDTH*(column: PTreeViewColumn): int32
-proc DRAW_EXPANDERS*(tree_view: PTreeView): bool
-proc COLUMN_DRAG_DEAD_MULTIPLIER*(tree_view: PTreeView): int32
-const 
-  bm_TGtkTreeViewPrivate_scroll_to_use_align* = 0x0001'i16
-  bp_TGtkTreeViewPrivate_scroll_to_use_align* = 0'i16
-  bm_TGtkTreeViewPrivate_fixed_height_check* = 0x0002'i16
-  bp_TGtkTreeViewPrivate_fixed_height_check* = 1'i16
-  bm_TGtkTreeViewPrivate_reorderable* = 0x0004'i16
-  bp_TGtkTreeViewPrivate_reorderable* = 2'i16
-  bm_TGtkTreeViewPrivate_header_has_focus* = 0x0008'i16
-  bp_TGtkTreeViewPrivate_header_has_focus* = 3'i16
-  bm_TGtkTreeViewPrivate_drag_column_window_state* = 0x0070'i16
-  bp_TGtkTreeViewPrivate_drag_column_window_state* = 4'i16
-  bm_TGtkTreeViewPrivate_has_rules* = 0x0080'i16
-  bp_TGtkTreeViewPrivate_has_rules* = 7'i16
-  bm_TGtkTreeViewPrivate_mark_rows_col_dirty* = 0x0100'i16
-  bp_TGtkTreeViewPrivate_mark_rows_col_dirty* = 8'i16
-  bm_TGtkTreeViewPrivate_enable_search* = 0x0200'i16
-  bp_TGtkTreeViewPrivate_enable_search* = 9'i16
-  bm_TGtkTreeViewPrivate_disable_popdown* = 0x0400'i16
-  bp_TGtkTreeViewPrivate_disable_popdown* = 10'i16
-
-proc scroll_to_use_align*(a: PTreeViewPrivate): guint
-proc set_scroll_to_use_align*(a: PTreeViewPrivate, 
-                              `scroll_to_use_align`: guint)
-proc fixed_height_check*(a: PTreeViewPrivate): guint
-proc set_fixed_height_check*(a: PTreeViewPrivate, 
-                             `fixed_height_check`: guint)
-proc reorderable*(a: PTreeViewPrivate): guint
-proc set_reorderable*(a: PTreeViewPrivate, `reorderable`: guint)
-proc header_has_focus*(a: PTreeViewPrivate): guint
-proc set_header_has_focus*(a: PTreeViewPrivate, `header_has_focus`: guint)
-proc drag_column_window_state*(a: PTreeViewPrivate): guint
-proc set_drag_column_window_state*(a: PTreeViewPrivate, 
-                                   `drag_column_window_state`: guint)
-proc has_rules*(a: PTreeViewPrivate): guint
-proc set_has_rules*(a: PTreeViewPrivate, `has_rules`: guint)
-proc mark_rows_col_dirty*(a: PTreeViewPrivate): guint
-proc set_mark_rows_col_dirty*(a: PTreeViewPrivate, 
-                              `mark_rows_col_dirty`: guint)
-proc enable_search*(a: PTreeViewPrivate): guint
-proc set_enable_search*(a: PTreeViewPrivate, `enable_search`: guint)
-proc disable_popdown*(a: PTreeViewPrivate): guint
-proc set_disable_popdown*(a: PTreeViewPrivate, `disable_popdown`: guint)
-proc internal_select_node*(selection: PTreeSelection, 
-    node: PRBNode, tree: PRBTree, path: PTreePath, state: gdk2.TModifierType, 
-    override_browse_mode: gboolean){.cdecl, dynlib: lib, importc: "_gtk_tree_selection_internal_select_node".}
-proc find_node*(tree_view: PTreeView, path: PTreePath, 
-                          tree: var PRBTree, node: var PRBNode): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_find_node".}
-proc find_path*(tree_view: PTreeView, tree: PRBTree, node: PRBNode): PTreePath{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_find_path".}
-proc child_move_resize*(tree_view: PTreeView, widget: PWidget, 
-                                  x: gint, y: gint, width: gint, height: gint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_child_move_resize".}
-proc queue_draw_node*(tree_view: PTreeView, tree: PRBTree, 
-                                node: PRBNode, clip_rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_queue_draw_node".}
-proc column_realize_button*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_realize_button".}
-proc column_unrealize_button*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_unrealize_button".}
-proc column_set_tree_view*(column: PTreeViewColumn, 
-                                     tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_view_column_set_tree_view".}
-proc column_unset_tree_view*(column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_unset_tree_view".}
-proc column_set_width*(column: PTreeViewColumn, width: gint){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_set_width".}
-proc column_start_drag*(tree_view: PTreeView, column: PTreeViewColumn){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_start_drag".}
-proc column_start_editing*(tree_column: PTreeViewColumn, 
-                                     editable_widget: PCellEditable){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_start_editing".}
-proc column_stop_editing*(tree_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_stop_editing".}
-proc install_mark_rows_col_dirty*(tree_view: PTreeView){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_install_mark_rows_col_dirty".}
-proc DOgtk_tree_view_column_autosize*(tree_view: PTreeView, 
-                                      column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_autosize".}
-proc column_has_editable_cell*(column: PTreeViewColumn): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_has_editable_cell".}
-proc column_get_edited_cell*(column: PTreeViewColumn): PCellRenderer{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_get_edited_cell".}
-proc column_count_special_cells*(column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_count_special_cells".}
-proc column_get_cell_at_pos*(column: PTreeViewColumn, x: gint): PCellRenderer{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_get_cell_at_pos".}
-proc tree_selection_new*(): PTreeSelection{.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_selection_new".}
-proc selection_new*(tree_view: PTreeView): PTreeSelection{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_selection_new_with_tree_view".}
-proc set_tree_view*(selection: PTreeSelection, 
-                                   tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_selection_set_tree_view".}
-proc column_cell_render*(tree_column: PTreeViewColumn, 
-                                   window: gdk2.PWindow, 
-                                   background_area: gdk2.PRectangle, 
-                                   cell_area: gdk2.PRectangle, 
-                                   expose_area: gdk2.PRectangle, flags: guint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_render".}
-proc column_cell_focus*(tree_column: PTreeViewColumn, direction: gint, 
-                                  left: gboolean, right: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_focus".}
-proc column_cell_draw_focus*(tree_column: PTreeViewColumn, 
-                                       window: gdk2.PWindow, 
-                                       background_area: gdk2.PRectangle, 
-                                       cell_area: gdk2.PRectangle, 
-                                       expose_area: gdk2.PRectangle, flags: guint){.
-    cdecl, dynlib: lib, importc: "_gtk_tree_view_column_cell_draw_focus".}
-proc column_cell_set_dirty*(tree_column: PTreeViewColumn, 
-                                      install_handler: gboolean){.cdecl, 
-    dynlib: lib, importc: "_gtk_tree_view_column_cell_set_dirty".}
-proc column_get_neighbor_sizes*(column: PTreeViewColumn, 
-    cell: PCellRenderer, left: Pgint, right: Pgint){.cdecl, dynlib: lib, 
-    importc: "_gtk_tree_view_column_get_neighbor_sizes".}
-proc TYPE_TREE_VIEW*(): GType
-proc TREE_VIEW*(obj: pointer): PTreeView
-proc TREE_VIEW_CLASS*(klass: pointer): PTreeViewClass
-proc IS_TREE_VIEW*(obj: pointer): bool
-proc IS_TREE_VIEW_CLASS*(klass: pointer): bool
-proc TREE_VIEW_GET_CLASS*(obj: pointer): PTreeViewClass
-proc tree_view_get_type*(): TType{.cdecl, dynlib: lib, 
-                                   importc: "gtk_tree_view_get_type".}
-proc tree_view_new*(): PTreeView{.cdecl, dynlib: lib, 
-                                  importc: "gtk_tree_view_new".}
-proc tree_view_new*(model: PTreeModel): PTreeView{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_new_with_model".}
-proc get_model*(tree_view: PTreeView): PTreeModel{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_get_model".}
-proc set_model*(tree_view: PTreeView, model: PTreeModel){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_model".}
-proc get_selection*(tree_view: PTreeView): PTreeSelection{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_selection".}
-proc get_hadjustment*(tree_view: PTreeView): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_hadjustment".}
-proc set_hadjustment*(tree_view: PTreeView, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_hadjustment".}
-proc get_vadjustment*(tree_view: PTreeView): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_vadjustment".}
-proc set_vadjustment*(tree_view: PTreeView, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_vadjustment".}
-proc get_headers_visible*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_headers_visible".}
-proc set_headers_visible*(tree_view: PTreeView, 
-                                    headers_visible: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_headers_visible".}
-proc columns_autosize*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_columns_autosize".}
-proc set_headers_clickable*(tree_view: PTreeView, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_headers_clickable".}
-proc set_rules_hint*(tree_view: PTreeView, setting: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_rules_hint".}
-proc get_rules_hint*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_rules_hint".}
-proc append_column*(tree_view: PTreeView, column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_append_column".}
-proc remove_column*(tree_view: PTreeView, column: PTreeViewColumn): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_remove_column".}
-proc insert_column*(tree_view: PTreeView, column: PTreeViewColumn, 
-                              position: gint): gint{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_insert_column".}
-proc insert_column_with_data_func*(tree_view: PTreeView, 
-    position: gint, title: cstring, cell: PCellRenderer, 
-    fun: TTreeCellDataFunc, data: gpointer, dnotify: TGDestroyNotify): gint{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_insert_column_with_data_func".}
-proc get_column*(tree_view: PTreeView, n: gint): PTreeViewColumn{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_column".}
-proc get_columns*(tree_view: PTreeView): PGList{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_get_columns".}
-proc move_column_after*(tree_view: PTreeView, column: PTreeViewColumn, 
-                                  base_column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_move_column_after".}
-proc set_expander_column*(tree_view: PTreeView, 
-                                    column: PTreeViewColumn){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_expander_column".}
-proc get_expander_column*(tree_view: PTreeView): PTreeViewColumn{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_expander_column".}
-proc set_column_drag_function*(tree_view: PTreeView, 
-    fun: TTreeViewColumnDropFunc, user_data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_column_drag_function".}
-proc scroll_to_point*(tree_view: PTreeView, tree_x: gint, tree_y: gint){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_scroll_to_point".}
-proc scroll_to_cell*(tree_view: PTreeView, path: PTreePath, 
-                               column: PTreeViewColumn, use_align: gboolean, 
-                               row_align: gfloat, col_align: gfloat){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_scroll_to_cell".}
-proc row_activated*(tree_view: PTreeView, path: PTreePath, 
-                              column: PTreeViewColumn){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_row_activated".}
-proc expand_all*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_expand_all".}
-proc collapse_all*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_collapse_all".}
-proc expand_row*(tree_view: PTreeView, path: PTreePath, 
-                           open_all: gboolean): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_expand_row".}
-proc collapse_row*(tree_view: PTreeView, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_collapse_row".}
-proc map_expanded_rows*(tree_view: PTreeView, 
-                                  fun: TTreeViewMappingFunc, data: gpointer){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_map_expanded_rows".}
-proc row_expanded*(tree_view: PTreeView, path: PTreePath): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_row_expanded".}
-proc set_reorderable*(tree_view: PTreeView, reorderable: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_reorderable".}
-proc get_reorderable*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_reorderable".}
-proc set_cursor*(tree_view: PTreeView, path: PTreePath, 
-                           focus_column: PTreeViewColumn, 
-                           start_editing: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_set_cursor".}
-proc set_cursor_on_cell*(tree_view: PTreeView, path: PTreePath, 
-                                   focus_column: PTreeViewColumn, 
-                                   focus_cell: PCellRenderer, 
-                                   start_editing: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_set_cursor_on_cell".}
-proc get_bin_window*(tree_view: PTreeView): gdk2.PWindow{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_bin_window".}
-proc get_cell_area*(tree_view: PTreeView, path: PTreePath, 
-                              column: PTreeViewColumn, rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_cell_area".}
-proc get_background_area*(tree_view: PTreeView, path: PTreePath, 
-                                    column: PTreeViewColumn, rect: gdk2.PRectangle){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_background_area".}
-proc get_visible_rect*(tree_view: PTreeView, 
-                                 visible_rect: gdk2.PRectangle){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_visible_rect".}
-proc widget_to_tree_coords*(tree_view: PTreeView, wx: gint, wy: gint, 
-                                      tx: Pgint, ty: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_widget_to_tree_coords".}
-proc tree_to_widget_coords*(tree_view: PTreeView, tx: gint, ty: gint, 
-                                      wx: Pgint, wy: Pgint){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_tree_to_widget_coords".}
-proc enable_model_drag_source*(tree_view: PTreeView, 
-    start_button_mask: gdk2.TModifierType, targets: PTargetEntry, n_targets: gint, 
-    actions: gdk2.TDragAction){.cdecl, dynlib: lib, 
-                              importc: "gtk_tree_view_enable_model_drag_source".}
-proc enable_model_drag_dest*(tree_view: PTreeView, 
-                                       targets: PTargetEntry, n_targets: gint, 
-                                       actions: gdk2.TDragAction){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_enable_model_drag_dest".}
-proc unset_rows_drag_source*(tree_view: PTreeView){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_unset_rows_drag_source".}
-proc unset_rows_drag_dest*(tree_view: PTreeView){.cdecl, dynlib: lib, 
-    importc: "gtk_tree_view_unset_rows_drag_dest".}
-proc set_drag_dest_row*(tree_view: PTreeView, path: PTreePath, 
-                                  pos: TTreeViewDropPosition){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_drag_dest_row".}
-proc create_row_drag_icon*(tree_view: PTreeView, path: PTreePath): gdk2.PPixmap{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_create_row_drag_icon".}
-proc set_enable_search*(tree_view: PTreeView, enable_search: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_enable_search".}
-proc get_enable_search*(tree_view: PTreeView): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_enable_search".}
-proc get_search_column*(tree_view: PTreeView): gint{.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_get_search_column".}
-proc set_search_column*(tree_view: PTreeView, column: gint){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_search_column".}
-proc get_search_equal_func*(tree_view: PTreeView): TTreeViewSearchEqualFunc{.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_get_search_equal_func".}
-proc set_search_equal_func*(tree_view: PTreeView, search_equal_func: TTreeViewSearchEqualFunc, 
-                                      search_user_data: gpointer, 
-                                      search_destroy: TDestroyNotify){.cdecl, 
-    dynlib: lib, importc: "gtk_tree_view_set_search_equal_func".}
-proc set_destroy_count_func*(tree_view: PTreeView, 
-                                       fun: TTreeDestroyCountFunc, 
-                                       data: gpointer, destroy: TDestroyNotify){.
-    cdecl, dynlib: lib, importc: "gtk_tree_view_set_destroy_count_func".}
-proc TYPE_VBUTTON_BOX*(): GType
-proc VBUTTON_BOX*(obj: pointer): PVButtonBox
-proc VBUTTON_BOX_CLASS*(klass: pointer): PVButtonBoxClass
-proc IS_VBUTTON_BOX*(obj: pointer): bool
-proc IS_VBUTTON_BOX_CLASS*(klass: pointer): bool
-proc VBUTTON_BOX_GET_CLASS*(obj: pointer): PVButtonBoxClass
-proc vbutton_box_get_type*(): TType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_vbutton_box_get_type".}
-proc vbutton_box_new*(): PVButtonBox{.cdecl, dynlib: lib, 
-                                      importc: "gtk_vbutton_box_new".}
-proc TYPE_VIEWPORT*(): GType
-proc VIEWPORT*(obj: pointer): PViewport
-proc VIEWPORT_CLASS*(klass: pointer): PViewportClass
-proc IS_VIEWPORT*(obj: pointer): bool
-proc IS_VIEWPORT_CLASS*(klass: pointer): bool
-proc VIEWPORT_GET_CLASS*(obj: pointer): PViewportClass
-proc viewport_get_type*(): TType{.cdecl, dynlib: lib, 
-                                  importc: "gtk_viewport_get_type".}
-proc viewport_new*(hadjustment: PAdjustment, vadjustment: PAdjustment): PViewport{.
-    cdecl, dynlib: lib, importc: "gtk_viewport_new".}
-proc get_hadjustment*(viewport: PViewport): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_hadjustment".}
-proc get_vadjustment*(viewport: PViewport): PAdjustment{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_vadjustment".}
-proc set_hadjustment*(viewport: PViewport, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_hadjustment".}
-proc set_vadjustment*(viewport: PViewport, adjustment: PAdjustment){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_vadjustment".}
-proc set_shadow_type*(viewport: PViewport, thetype: TShadowType){.
-    cdecl, dynlib: lib, importc: "gtk_viewport_set_shadow_type".}
-proc get_shadow_type*(viewport: PViewport): TShadowType{.cdecl, 
-    dynlib: lib, importc: "gtk_viewport_get_shadow_type".}
-proc TYPE_VPANED*(): GType
-proc VPANED*(obj: pointer): PVPaned
-proc VPANED_CLASS*(klass: pointer): PVPanedClass
-proc IS_VPANED*(obj: pointer): bool
-proc IS_VPANED_CLASS*(klass: pointer): bool
-proc VPANED_GET_CLASS*(obj: pointer): PVPanedClass
-proc vpaned_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vpaned_get_type".}
-proc vpaned_new*(): PVPaned{.cdecl, dynlib: lib, importc: "gtk_vpaned_new".}
-proc TYPE_VRULER*(): GType
-proc VRULER*(obj: pointer): PVRuler
-proc VRULER_CLASS*(klass: pointer): PVRulerClass
-proc IS_VRULER*(obj: pointer): bool
-proc IS_VRULER_CLASS*(klass: pointer): bool
-proc VRULER_GET_CLASS*(obj: pointer): PVRulerClass
-proc vruler_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vruler_get_type".}
-proc vruler_new*(): PVRuler{.cdecl, dynlib: lib, importc: "gtk_vruler_new".}
-proc TYPE_VSCALE*(): GType
-proc VSCALE*(obj: pointer): PVScale
-proc VSCALE_CLASS*(klass: pointer): PVScaleClass
-proc IS_VSCALE*(obj: pointer): bool
-proc IS_VSCALE_CLASS*(klass: pointer): bool
-proc VSCALE_GET_CLASS*(obj: pointer): PVScaleClass
-proc vscale_get_type*(): TType{.cdecl, dynlib: lib, 
-                                importc: "gtk_vscale_get_type".}
-proc vscale_new*(adjustment: PAdjustment): PVScale{.cdecl, dynlib: lib, 
-    importc: "gtk_vscale_new".}
-proc vscale_new*(min: gdouble, max: gdouble, step: gdouble): PVScale{.
-    cdecl, dynlib: lib, importc: "gtk_vscale_new_with_range".}
-proc TYPE_VSCROLLBAR*(): GType
-proc VSCROLLBAR*(obj: pointer): PVScrollbar
-proc VSCROLLBAR_CLASS*(klass: pointer): PVScrollbarClass
-proc IS_VSCROLLBAR*(obj: pointer): bool
-proc IS_VSCROLLBAR_CLASS*(klass: pointer): bool
-proc VSCROLLBAR_GET_CLASS*(obj: pointer): PVScrollbarClass
-proc vscrollbar_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_vscrollbar_get_type".}
-proc vscrollbar_new*(adjustment: PAdjustment): PVScrollbar{.cdecl, dynlib: lib, 
-    importc: "gtk_vscrollbar_new".}
-proc TYPE_VSEPARATOR*(): GType
-proc VSEPARATOR*(obj: pointer): PVSeparator
-proc VSEPARATOR_CLASS*(klass: pointer): PVSeparatorClass
-proc IS_VSEPARATOR*(obj: pointer): bool
-proc IS_VSEPARATOR_CLASS*(klass: pointer): bool
-proc VSEPARATOR_GET_CLASS*(obj: pointer): PVSeparatorClass
-proc vseparator_get_type*(): TType{.cdecl, dynlib: lib, 
-                                    importc: "gtk_vseparator_get_type".}
-proc vseparator_new*(): PVSeparator{.cdecl, dynlib: lib, 
-                                     importc: "gtk_vseparator_new".}
-proc TYPE_OBJECT*(): GType = 
-  result = gtk2.object_get_type()
-
-proc CHECK_CAST*(instance: Pointer, g_type: GType): PGTypeInstance = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(instance, g_type)
-
-proc CHECK_CLASS_CAST*(g_class: pointer, g_type: GType): Pointer = 
-  result = G_TYPE_CHECK_CLASS_CAST(g_class, g_type)
-
-proc CHECK_GET_CLASS*(instance: Pointer, g_type: GType): PGTypeClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(instance, g_type)
-
-proc CHECK_TYPE*(instance: Pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)
-
-proc CHECK_CLASS_TYPE*(g_class: pointer, g_type: GType): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)
-
-proc `OBJECT`*(anObject: pointer): PObject = 
-  result = cast[PObject](CHECK_CAST(anObject, gtk2.TYPE_OBJECT()))
-
-proc OBJECT_CLASS*(klass: pointer): PObjectClass = 
-  result = cast[PObjectClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_OBJECT()))
-
-proc IS_OBJECT*(anObject: pointer): bool = 
-  result = CHECK_TYPE(anObject, gtk2.TYPE_OBJECT())
-
-proc IS_OBJECT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_OBJECT())
-
-proc OBJECT_GET_CLASS*(anObject: pointer): PObjectClass = 
-  result = cast[PObjectClass](CHECK_GET_CLASS(anObject, gtk2.TYPE_OBJECT()))
-
-proc OBJECT_TYPE*(anObject: pointer): GType = 
-  result = G_TYPE_FROM_INSTANCE(anObject)
-
-proc OBJECT_TYPE_NAME*(anObject: pointer): cstring = 
-  result = g_type_name(OBJECT_TYPE(anObject))
-
-proc OBJECT_FLAGS*(obj: pointer): guint32 = 
-  result = (gtk2.`OBJECT`(obj)).flags
-
-proc OBJECT_FLOATING*(obj: pointer): gboolean = 
-  result = ((OBJECT_FLAGS(obj)) and cint(FLOATING)) != 0'i32
-
-proc OBJECT_SET_FLAGS*(obj: pointer, flag: guint32) = 
-  gtk2.`OBJECT`(obj).flags = gtk2.`OBJECT`(obj).flags or flag
-
-proc OBJECT_UNSET_FLAGS*(obj: pointer, flag: guint32) = 
-  gtk2.`OBJECT`(obj).flags = gtk2.`OBJECT`(obj).flags and not (flag)
-
-proc object_data_try_key*(`string`: cstring): TGQuark = 
-  result = g_quark_try_string(`string`)
-
-proc object_data_force_id*(`string`: cstring): TGQuark = 
-  result = g_quark_from_string(`string`)
-
-proc CLASS_NAME*(`class`: pointer): cstring = 
-  result = g_type_name(G_TYPE_FROM_CLASS(`class`))
-
-proc CLASS_TYPE*(`class`: pointer): GType = 
-  result = G_TYPE_FROM_CLASS(`class`)
-
-proc TYPE_IS_OBJECT*(thetype: GType): gboolean = 
-  result = g_type_is_a(thetype, gtk2.TYPE_OBJECT())
-
-proc TYPE_IDENTIFIER*(): GType = 
-  result = identifier_get_type()
-
-proc SIGNAL_FUNC*(f: pointer): TSignalFunc = 
-  result = cast[TSignalFunc](f)
-
-proc type_name*(thetype: GType): cstring = 
-  result = g_type_name(thetype)
-
-proc type_from_name*(name: cstring): GType = 
-  result = g_type_from_name(name)
-
-proc type_parent*(thetype: GType): GType = 
-  result = g_type_parent(thetype)
-
-proc type_is_a*(thetype, is_a_type: GType): gboolean = 
-  result = g_type_is_a(thetype, is_a_type)
-
-proc FUNDAMENTAL_TYPE*(thetype: GType): GType = 
-  result = G_TYPE_FUNDAMENTAL(thetype)
-
-proc VALUE_CHAR*(a: TArg): gchar = 
-  var a = a
-  Result = cast[ptr gchar](addr(a.d))[] 
-
-proc VALUE_UCHAR*(a: TArg): guchar = 
-  var a = a
-  Result = cast[ptr guchar](addr(a.d))[] 
-
-proc VALUE_BOOL*(a: TArg): gboolean = 
-  var a = a
-  Result = cast[ptr gboolean](addr(a.d))[] 
-
-proc VALUE_INT*(a: TArg): gint = 
-  var a = a
-  Result = cast[ptr gint](addr(a.d))[] 
-
-proc VALUE_UINT*(a: TArg): guint = 
-  var a = a
-  Result = cast[ptr guint](addr(a.d))[] 
-
-proc VALUE_LONG*(a: TArg): glong = 
-  var a = a
-  Result = cast[ptr glong](addr(a.d))[] 
-
-proc VALUE_ULONG*(a: TArg): gulong = 
-  var a = a
-  Result = cast[ptr gulong](addr(a.d))[] 
-
-proc VALUE_FLOAT*(a: TArg): gfloat = 
-  var a = a
-  Result = cast[ptr gfloat](addr(a.d))[] 
-
-proc VALUE_DOUBLE*(a: TArg): gdouble = 
-  var a = a
-  Result = cast[ptr gdouble](addr(a.d))[] 
-
-proc VALUE_STRING*(a: TArg): cstring = 
-  var a = a
-  Result = cast[ptr cstring](addr(a.d))[] 
-
-proc VALUE_ENUM*(a: TArg): gint = 
-  var a = a
-  Result = cast[ptr gint](addr(a.d))[] 
-
-proc VALUE_FLAGS*(a: TArg): guint = 
-  var a = a
-  Result = cast[ptr guint](addr(a.d))[] 
-
-proc VALUE_BOXED*(a: TArg): gpointer = 
-  var a = a
-  Result = cast[ptr gpointer](addr(a.d))[] 
-
-proc VALUE_OBJECT*(a: TArg): PObject = 
-  var a = a
-  Result = cast[ptr PObject](addr(a.d))[] 
-
-proc VALUE_POINTER*(a: TArg): GPointer = 
-  var a = a
-  Result = cast[ptr gpointer](addr(a.d))[] 
-
-proc VALUE_SIGNAL*(a: TArg): TArgSignalData = 
-  var a = a
-  Result = cast[ptr TArgSignalData](addr(a.d))[] 
-
-proc RETLOC_CHAR*(a: TArg): cstring = 
-  var a = a
-  Result = cast[ptr cstring](addr(a.d))[] 
-
-proc RETLOC_UCHAR*(a: TArg): Pguchar = 
-  var a = a
-  Result = cast[ptr pguchar](addr(a.d))[] 
-
-proc RETLOC_BOOL*(a: TArg): Pgboolean = 
-  var a = a
-  Result = cast[ptr pgboolean](addr(a.d))[] 
-
-proc RETLOC_INT*(a: TArg): Pgint = 
-  var a = a
-  Result = cast[ptr pgint](addr(a.d))[] 
-
-proc RETLOC_UINT*(a: TArg): Pguint = 
-  var a = a
-  Result = cast[ptr pguint](addr(a.d))[] 
-
-proc RETLOC_LONG*(a: TArg): Pglong = 
-  var a = a
-  Result = cast[ptr pglong](addr(a.d))[] 
-
-proc RETLOC_ULONG*(a: TArg): Pgulong = 
-  var a = a
-  Result = cast[ptr pgulong](addr(a.d))[] 
-
-proc RETLOC_FLOAT*(a: TArg): Pgfloat = 
-  var a = a
-  Result = cast[ptr pgfloat](addr(a.d))[] 
-
-proc RETLOC_DOUBLE*(a: TArg): Pgdouble = 
-  var a = a
-  Result = cast[ptr pgdouble](addr(a.d))[] 
-
-proc RETLOC_STRING*(a: TArg): Ppgchar = 
-  var a = a
-  Result = cast[ptr Ppgchar](addr(a.d))[] 
-
-proc RETLOC_ENUM*(a: TArg): Pgint = 
-  var a = a
-  Result = cast[ptr Pgint](addr(a.d))[] 
-
-proc RETLOC_FLAGS*(a: TArg): Pguint = 
-  var a = a
-  Result = cast[ptr pguint](addr(a.d))[] 
-
-proc RETLOC_BOXED*(a: TArg): Pgpointer = 
-  var a = a
-  Result = cast[ptr pgpointer](addr(a.d))[] 
-
-proc RETLOC_OBJECT*(a: TArg): PPGtkObject = 
-  var a = a
-  Result = cast[ptr ppgtkobject](addr(a.d))[] 
-
-proc RETLOC_POINTER*(a: TArg): Pgpointer = 
-  var a = a
-  Result = cast[ptr pgpointer](addr(a.d))[] 
-
-proc TYPE_WIDGET*(): GType = 
-  result = widget_get_type()
-
-proc WIDGET*(widget: pointer): PWidget = 
-  result = cast[PWidget](CHECK_CAST(widget, TYPE_WIDGET()))
-
-proc WIDGET_CLASS*(klass: pointer): PWidgetClass = 
-  result = cast[PWidgetClass](CHECK_CLASS_CAST(klass, TYPE_WIDGET()))
-
-proc IS_WIDGET*(widget: pointer): bool = 
-  result = CHECK_TYPE(widget, TYPE_WIDGET())
-
-proc IS_WIDGET_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_WIDGET())
-
-proc WIDGET_GET_CLASS*(obj: pointer): PWidgetClass = 
-  result = cast[PWidgetClass](CHECK_GET_CLASS(obj, TYPE_WIDGET()))
-
-proc WIDGET_TYPE*(wid: pointer): GType = 
-  result = OBJECT_TYPE(wid)
-
-proc WIDGET_STATE*(wid: pointer): int32 = 
-  result = (WIDGET(wid)).state
-
-proc WIDGET_SAVED_STATE*(wid: pointer): int32 = 
-  result = (WIDGET(wid)).saved_state
-
-proc WIDGET_FLAGS*(wid: pointer): guint32 = 
-  result = OBJECT_FLAGS(wid)
-
-proc WIDGET_TOPLEVEL*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(TOPLEVEL)) != 0'i32
-
-proc WIDGET_NO_WINDOW*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(NO_WINDOW)) != 0'i32
-
-proc WIDGET_REALIZED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constREALIZED)) != 0'i32
-
-proc WIDGET_MAPPED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(MAPPED)) != 0'i32
-
-proc WIDGET_VISIBLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constVISIBLE)) != 0'i32
-
-proc WIDGET_DRAWABLE*(wid: pointer): gboolean = 
-  result = (WIDGET_VISIBLE(wid)) and (WIDGET_MAPPED(wid))
-
-proc WIDGET_SENSITIVE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(SENSITIVE)) != 0'i32
-
-proc WIDGET_PARENT_SENSITIVE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(PARENT_SENSITIVE)) != 0'i32
-
-proc WIDGET_IS_SENSITIVE*(wid: pointer): gboolean = 
-  result = (WIDGET_SENSITIVE(wid)) and (WIDGET_PARENT_SENSITIVE(wid))
-
-proc WIDGET_CAN_FOCUS*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(CAN_FOCUS)) != 0'i32
-
-proc WIDGET_HAS_FOCUS*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(constHAS_FOCUS)) != 0'i32
-
-proc WIDGET_CAN_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(CAN_DEFAULT)) != 0'i32
-
-proc WIDGET_HAS_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(HAS_DEFAULT)) != 0'i32
-
-proc WIDGET_HAS_GRAB*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(HAS_GRAB)) != 0'i32
-
-proc WIDGET_RC_STYLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(RC_STYLE)) != 0'i32
-
-proc WIDGET_COMPOSITE_CHILD*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(COMPOSITE_CHILD)) != 0'i32
-
-proc WIDGET_APP_PAINTABLE*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(APP_PAINTABLE)) != 0'i32
-
-proc WIDGET_RECEIVES_DEFAULT*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(RECEIVES_DEFAULT)) != 0'i32
-
-proc WIDGET_DOUBLE_BUFFERED*(wid: pointer): gboolean = 
-  result = ((WIDGET_FLAGS(wid)) and cint(DOUBLE_BUFFERED)) != 0'i32
-
-proc TYPE_REQUISITION*(): GType = 
-  result = requisition_get_type()
-
-proc x_set*(a: PWidgetAuxInfo): guint = 
-  result = (a.flag0 and bm_TGtkWidgetAuxInfo_x_set) shr
-      bp_TGtkWidgetAuxInfo_x_set
-
-proc set_x_set*(a: PWidgetAuxInfo, `x_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`x_set` shl bp_TGtkWidgetAuxInfo_x_set) and
-      bm_TGtkWidgetAuxInfo_x_set)
-
-proc y_set*(a: PWidgetAuxInfo): guint = 
-  result = (a.flag0 and bm_TGtkWidgetAuxInfo_y_set) shr
-      bp_TGtkWidgetAuxInfo_y_set
-
-proc set_y_set*(a: PWidgetAuxInfo, `y_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`y_set` shl bp_TGtkWidgetAuxInfo_y_set) and
-      bm_TGtkWidgetAuxInfo_y_set)
-
-proc widget_set_visual*(widget, visual: pointer) = 
-  if (Widget != nil) and (visual != nil): nil
-  
-proc widget_push_visual*(visual: pointer) = 
-  if (visual != nil): nil
-  
-proc widget_pop_visual*() = 
-  nil
-
-proc widget_set_default_visual*(visual: pointer) = 
-  if (visual != nil): nil
-  
-proc widget_set_rc_style*(widget: pointer) = 
-  set_style(cast[PWidget](widget), nil)
-
-proc widget_restore_default_style*(widget: pointer) = 
-  set_style(cast[PWidget](widget), nil)
-
-proc SET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags = 
-  cast[pObject](wid).flags = cast[pObject](wid).flags or (flags)
-  result = cast[pObject](wid).flags
-
-proc UNSET_FLAGS*(wid: PWidget, flags: TWidgetFlags): TWidgetFlags = 
-  cast[pObject](wid).flags = cast[pObject](wid).flags and (not (flags))
-  result = cast[pObject](wid).flags
-
-proc TYPE_MISC*(): GType = 
-  result = misc_get_type()
-
-proc MISC*(obj: pointer): PMisc = 
-  result = cast[PMisc](CHECK_CAST(obj, TYPE_MISC()))
-
-proc MISC_CLASS*(klass: pointer): PMiscClass = 
-  result = cast[PMiscClass](CHECK_CLASS_CAST(klass, TYPE_MISC()))
-
-proc IS_MISC*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MISC())
-
-proc IS_MISC_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MISC())
-
-proc MISC_GET_CLASS*(obj: pointer): PMiscClass = 
-  result = cast[PMiscClass](CHECK_GET_CLASS(obj, TYPE_MISC()))
-
-proc TYPE_ACCEL_GROUP*(): GType = 
-  result = accel_group_get_type()
-
-proc ACCEL_GROUP*(anObject: pointer): PAccelGroup = 
-  result = cast[PAccelGroup](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_ACCEL_GROUP()))
-
-proc ACCEL_GROUP_CLASS*(klass: pointer): PAccelGroupClass = 
-  result = cast[PAccelGroupClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_ACCEL_GROUP()))
-
-proc IS_ACCEL_GROUP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_ACCEL_GROUP())
-
-proc IS_ACCEL_GROUP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_ACCEL_GROUP())
-
-proc ACCEL_GROUP_GET_CLASS*(obj: pointer): PAccelGroupClass = 
-  result = cast[PAccelGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_ACCEL_GROUP()))
-
-proc accel_flags*(a: PAccelKey): guint = 
-  result = (a.flag0 and bm_TGtkAccelKey_accel_flags) shr
-      bp_TGtkAccelKey_accel_flags
-
-proc set_accel_flags*(a: PAccelKey, `accel_flags`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`accel_flags` shl bp_TGtkAccelKey_accel_flags) and
-      bm_TGtkAccelKey_accel_flags)
-
-proc reference*(AccelGroup: PAccelGroup) = 
-  discard g_object_ref(AccelGroup)
-
-proc unref*(AccelGroup: PAccelGroup) = 
-  g_object_unref(AccelGroup)
-
-proc TYPE_CONTAINER*(): GType = 
-  result = container_get_type()
-
-proc CONTAINER*(obj: pointer): PContainer = 
-  result = cast[PContainer](CHECK_CAST(obj, TYPE_CONTAINER()))
-
-proc CONTAINER_CLASS*(klass: pointer): PContainerClass = 
-  result = cast[PContainerClass](CHECK_CLASS_CAST(klass, TYPE_CONTAINER()))
-
-proc IS_CONTAINER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CONTAINER())
-
-proc IS_CONTAINER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CONTAINER())
-
-proc CONTAINER_GET_CLASS*(obj: pointer): PContainerClass = 
-  result = cast[PContainerClass](CHECK_GET_CLASS(obj, TYPE_CONTAINER()))
-
-proc IS_RESIZE_CONTAINER*(widget: pointer): bool = 
-  result = (IS_CONTAINER(widget)) and
-      ((resize_mode(cast[PContainer](widget))) != cint(RESIZE_PARENT))
-
-proc border_width*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_border_width) shr
-      bp_TGtkContainer_border_width
-
-proc need_resize*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_need_resize) shr
-      bp_TGtkContainer_need_resize
-
-proc set_need_resize*(a: PContainer, `need_resize`: guint) = 
-  a.Container_flag0 = a.Container_flag0 or
-      ((`need_resize` shl bp_TGtkContainer_need_resize) and
-      bm_TGtkContainer_need_resize)
-
-proc resize_mode*(a: PContainer): guint = 
-  result = (a.Container_flag0 and bm_TGtkContainer_resize_mode) shr
-      bp_TGtkContainer_resize_mode
-
-proc set_resize_mode*(a: PContainer, `resize_mode`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`resize_mode` shl bp_TGtkContainer_resize_mode) and
-      bm_TGtkContainer_resize_mode)
-
-proc reallocate_redraws*(a: PContainer): guint = 
-  result = (a.Containerflag0 and bm_TGtkContainer_reallocate_redraws) shr
-      bp_TGtkContainer_reallocate_redraws
-
-proc set_reallocate_redraws*(a: PContainer, `reallocate_redraws`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`reallocate_redraws` shl bp_TGtkContainer_reallocate_redraws) and
-      bm_TGtkContainer_reallocate_redraws)
-
-proc has_focus_chain*(a: PContainer): guint = 
-  result = (a.Containerflag0 and bm_TGtkContainer_has_focus_chain) shr
-      bp_TGtkContainer_has_focus_chain
-
-proc set_has_focus_chain*(a: PContainer, `has_focus_chain`: guint) = 
-  a.Containerflag0 = a.Containerflag0 or
-      ((`has_focus_chain` shl bp_TGtkContainer_has_focus_chain) and
-      bm_TGtkContainer_has_focus_chain)
-
-proc CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID*(anObject: pointer, 
-    property_id: guint, pspec: pointer) = 
-  write(stdout, "WARNING: invalid child property id\x0A")
-
-proc TYPE_BIN*(): GType = 
-  result = bin_get_type()
-
-proc BIN*(obj: pointer): PBin = 
-  result = cast[PBin](CHECK_CAST(obj, TYPE_BIN()))
-
-proc BIN_CLASS*(klass: pointer): PBinClass = 
-  result = cast[PBinClass](CHECK_CLASS_CAST(klass, TYPE_BIN()))
-
-proc IS_BIN*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BIN())
-
-proc IS_BIN_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BIN())
-
-proc BIN_GET_CLASS*(obj: pointer): PBinClass = 
-  result = cast[PBinClass](CHECK_GET_CLASS(obj, TYPE_BIN()))
-
-proc TYPE_WINDOW*(): GType = 
-  result = window_get_type()
-
-proc WINDOW*(obj: pointer): PWindow = 
-  result = cast[PWindow](CHECK_CAST(obj, gtk2.TYPE_WINDOW()))
-
-proc WINDOW_CLASS*(klass: pointer): PWindowClass = 
-  result = cast[PWindowClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_WINDOW()))
-
-proc IS_WINDOW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_WINDOW())
-
-proc IS_WINDOW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_WINDOW())
-
-proc WINDOW_GET_CLASS*(obj: pointer): PWindowClass = 
-  result = cast[PWindowClass](CHECK_GET_CLASS(obj, gtk2.TYPE_WINDOW()))
-
-proc allow_shrink*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_allow_shrink) shr
-      bp_TGtkWindow_allow_shrink
-
-proc set_allow_shrink*(a: gtk2.PWindow, `allow_shrink`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`allow_shrink` shl bp_TGtkWindow_allow_shrink) and
-      bm_TGtkWindow_allow_shrink)
-
-proc allow_grow*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_allow_grow) shr
-      bp_TGtkWindow_allow_grow
-
-proc set_allow_grow*(a: gtk2.PWindow, `allow_grow`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`allow_grow` shl bp_TGtkWindow_allow_grow) and
-      bm_TGtkWindow_allow_grow)
-
-proc configure_notify_received*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_configure_notify_received) shr
-      bp_TGtkWindow_configure_notify_received
-
-proc set_configure_notify_received*(a: gtk2.PWindow, 
-                                    `configure_notify_received`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`configure_notify_received` shl
-      bp_TGtkWindow_configure_notify_received) and
-      bm_TGtkWindow_configure_notify_received)
-
-proc need_default_position*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_need_default_position) shr
-      bp_TGtkWindow_need_default_position
-
-proc set_need_default_position*(a: gtk2.PWindow, `need_default_position`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`need_default_position` shl bp_TGtkWindow_need_default_position) and
-      bm_TGtkWindow_need_default_position)
-
-proc need_default_size*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_need_default_size) shr
-      bp_TGtkWindow_need_default_size
-
-proc set_need_default_size*(a: gtk2.PWindow, `need_default_size`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`need_default_size` shl bp_TGtkWindow_need_default_size) and
-      bm_TGtkWindow_need_default_size)
-
-proc position*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_position) shr
-      bp_TGtkWindow_position
-
-proc get_type*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_type) shr bp_TGtkWindow_type
-
-proc set_type*(a: gtk2.PWindow, `type`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`type` shl bp_TGtkWindow_type) and bm_TGtkWindow_type)
-
-proc has_user_ref_count*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_has_user_ref_count) shr
-      bp_TGtkWindow_has_user_ref_count
-
-proc set_has_user_ref_count*(a: gtk2.PWindow, `has_user_ref_count`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`has_user_ref_count` shl bp_TGtkWindow_has_user_ref_count) and
-      bm_TGtkWindow_has_user_ref_count)
-
-proc has_focus*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_has_focus) shr
-      bp_TGtkWindow_has_focus
-
-proc set_has_focus*(a: gtk2.PWindow, `has_focus`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`has_focus` shl bp_TGtkWindow_has_focus) and bm_TGtkWindow_has_focus)
-
-proc modal*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_modal) shr bp_TGtkWindow_modal
-
-proc set_modal*(a: gtk2.PWindow, `modal`: guint) = 
-  a.Window_flag0 = a.Window_flag0 or
-      ((`modal` shl bp_TGtkWindow_modal) and bm_TGtkWindow_modal)
-
-proc destroy_with_parent*(a: gtk2.PWindow): guint = 
-  result = (a.Window_flag0 and bm_TGtkWindow_destroy_with_parent) shr
-      bp_TGtkWindow_destroy_with_parent
-
-proc set_destroy_with_parent*(a: gtk2.PWindow, `destroy_with_parent`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`destroy_with_parent` shl bp_TGtkWindow_destroy_with_parent) and
-      bm_TGtkWindow_destroy_with_parent)
-
-proc has_frame*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_has_frame) shr
-      bp_TGtkWindow_has_frame
-
-proc set_has_frame*(a: gtk2.PWindow, `has_frame`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`has_frame` shl bp_TGtkWindow_has_frame) and bm_TGtkWindow_has_frame)
-
-proc iconify_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_iconify_initially) shr
-      bp_TGtkWindow_iconify_initially
-
-proc set_iconify_initially*(a: gtk2.PWindow, `iconify_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`iconify_initially` shl bp_TGtkWindow_iconify_initially) and
-      bm_TGtkWindow_iconify_initially)
-
-proc stick_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_stick_initially) shr
-      bp_TGtkWindow_stick_initially
-
-proc set_stick_initially*(a: gtk2.PWindow, `stick_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`stick_initially` shl bp_TGtkWindow_stick_initially) and
-      bm_TGtkWindow_stick_initially)
-
-proc maximize_initially*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_maximize_initially) shr
-      bp_TGtkWindow_maximize_initially
-
-proc set_maximize_initially*(a: gtk2.PWindow, `maximize_initially`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`maximize_initially` shl bp_TGtkWindow_maximize_initially) and
-      bm_TGtkWindow_maximize_initially)
-
-proc decorated*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_decorated) shr
-      bp_TGtkWindow_decorated
-
-proc set_decorated*(a: gtk2.PWindow, `decorated`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`decorated` shl bp_TGtkWindow_decorated) and bm_TGtkWindow_decorated)
-
-proc type_hint*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_type_hint) shr
-      bp_TGtkWindow_type_hint
-
-proc set_type_hint*(a: gtk2.PWindow, `type_hint`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`type_hint` shl bp_TGtkWindow_type_hint) and bm_TGtkWindow_type_hint)
-
-proc gravity*(a: gtk2.PWindow): guint = 
-  result = (a.Windowflag0 and bm_TGtkWindow_gravity) shr
-      bp_TGtkWindow_gravity
-
-proc set_gravity*(a: gtk2.PWindow, `gravity`: guint) = 
-  a.Windowflag0 = a.Windowflag0 or
-      ((`gravity` shl bp_TGtkWindow_gravity) and bm_TGtkWindow_gravity)
-
-proc TYPE_WINDOW_GROUP*(): GType = 
-  result = window_group_get_type()
-
-proc WINDOW_GROUP*(anObject: pointer): PWindowGroup = 
-  result = cast[PWindowGroup](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_WINDOW_GROUP()))
-
-proc WINDOW_GROUP_CLASS*(klass: pointer): PWindowGroupClass = 
-  result = cast[PWindowGroupClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_WINDOW_GROUP()))
-
-proc IS_WINDOW_GROUP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_WINDOW_GROUP())
-
-proc IS_WINDOW_GROUP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_WINDOW_GROUP())
-
-proc WINDOW_GROUP_GET_CLASS*(obj: pointer): PWindowGroupClass = 
-  result = cast[PWindowGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_WINDOW_GROUP()))
-
-proc TYPE_LABEL*(): GType = 
-  result = label_get_type()
-
-proc LABEL*(obj: pointer): PLabel = 
-  result = cast[PLabel](CHECK_CAST(obj, TYPE_LABEL()))
-
-proc LABEL_CLASS*(klass: pointer): PLabelClass = 
-  result = cast[PLabelClass](CHECK_CLASS_CAST(klass, TYPE_LABEL()))
-
-proc IS_LABEL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LABEL())
-
-proc IS_LABEL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LABEL())
-
-proc LABEL_GET_CLASS*(obj: pointer): PLabelClass = 
-  result = cast[PLabelClass](CHECK_GET_CLASS(obj, TYPE_LABEL()))
-
-proc jtype*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_jtype) shr bp_TGtkLabel_jtype
-
-proc set_jtype*(a: PLabel, `jtype`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`jtype` shl bp_TGtkLabel_jtype) and bm_TGtkLabel_jtype)
-
-proc wrap*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_wrap) shr bp_TGtkLabel_wrap
-
-proc set_wrap*(a: PLabel, `wrap`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`wrap` shl bp_TGtkLabel_wrap) and bm_TGtkLabel_wrap)
-
-proc use_underline*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_use_underline) shr
-      bp_TGtkLabel_use_underline
-
-proc set_use_underline*(a: PLabel, `use_underline`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`use_underline` shl bp_TGtkLabel_use_underline) and
-      bm_TGtkLabel_use_underline)
-
-proc use_markup*(a: PLabel): guint = 
-  result = (a.Labelflag0 and bm_TGtkLabel_use_markup) shr
-      bp_TGtkLabel_use_markup
-
-proc set_use_markup*(a: PLabel, `use_markup`: guint) = 
-  a.Labelflag0 = a.Labelflag0 or
-      (int16(`use_markup` shl bp_TGtkLabel_use_markup) and
-      bm_TGtkLabel_use_markup)
-
-proc TYPE_ACCEL_LABEL*(): GType = 
-  result = accel_label_get_type()
-
-proc ACCEL_LABEL*(obj: pointer): PAccelLabel = 
-  result = cast[PAccelLabel](CHECK_CAST(obj, TYPE_ACCEL_LABEL()))
-
-proc ACCEL_LABEL_CLASS*(klass: pointer): PAccelLabelClass = 
-  result = cast[PAccelLabelClass](CHECK_CLASS_CAST(klass, TYPE_ACCEL_LABEL()))
-
-proc IS_ACCEL_LABEL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ACCEL_LABEL())
-
-proc IS_ACCEL_LABEL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ACCEL_LABEL())
-
-proc ACCEL_LABEL_GET_CLASS*(obj: pointer): PAccelLabelClass = 
-  result = cast[PAccelLabelClass](CHECK_GET_CLASS(obj, TYPE_ACCEL_LABEL()))
-
-proc latin1_to_char*(a: PAccelLabelClass): guint = 
-  result = (a.AccelLabelClassflag0 and bm_TGtkAccelLabelClass_latin1_to_char) shr
-      bp_TGtkAccelLabelClass_latin1_to_char
-
-proc set_latin1_to_char*(a: PAccelLabelClass, `latin1_to_char`: guint) = 
-  a.AccelLabelClassflag0 = a.AccelLabelClassflag0 or
-      (int16(`latin1_to_char` shl bp_TGtkAccelLabelClass_latin1_to_char) and
-      bm_TGtkAccelLabelClass_latin1_to_char)
-
-proc accelerator_width*(accel_label: PAccelLabel): guint = 
-  result = get_accel_width(accel_label)
-
-proc TYPE_ACCESSIBLE*(): GType = 
-  result = accessible_get_type()
-
-proc ACCESSIBLE*(obj: pointer): PAccessible = 
-  result = cast[PAccessible](CHECK_CAST(obj, TYPE_ACCESSIBLE()))
-
-proc ACCESSIBLE_CLASS*(klass: pointer): PAccessibleClass = 
-  result = cast[PAccessibleClass](CHECK_CLASS_CAST(klass, TYPE_ACCESSIBLE()))
-
-proc IS_ACCESSIBLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ACCESSIBLE())
-
-proc IS_ACCESSIBLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ACCESSIBLE())
-
-proc ACCESSIBLE_GET_CLASS*(obj: pointer): PAccessibleClass = 
-  result = cast[PAccessibleClass](CHECK_GET_CLASS(obj, TYPE_ACCESSIBLE()))
-
-proc TYPE_ADJUSTMENT*(): GType = 
-  result = adjustment_get_type()
-
-proc ADJUSTMENT*(obj: pointer): PAdjustment = 
-  result = cast[PAdjustment](CHECK_CAST(obj, TYPE_ADJUSTMENT()))
-
-proc ADJUSTMENT_CLASS*(klass: pointer): PAdjustmentClass = 
-  result = cast[PAdjustmentClass](CHECK_CLASS_CAST(klass, TYPE_ADJUSTMENT()))
-
-proc IS_ADJUSTMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ADJUSTMENT())
-
-proc IS_ADJUSTMENT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ADJUSTMENT())
-
-proc ADJUSTMENT_GET_CLASS*(obj: pointer): PAdjustmentClass = 
-  result = cast[PAdjustmentClass](CHECK_GET_CLASS(obj, TYPE_ADJUSTMENT()))
-
-proc TYPE_ALIGNMENT*(): GType = 
-  result = alignment_get_type()
-
-proc ALIGNMENT*(obj: pointer): PAlignment = 
-  result = cast[PAlignment](CHECK_CAST(obj, TYPE_ALIGNMENT()))
-
-proc ALIGNMENT_CLASS*(klass: pointer): PAlignmentClass = 
-  result = cast[PAlignmentClass](CHECK_CLASS_CAST(klass, TYPE_ALIGNMENT()))
-
-proc IS_ALIGNMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ALIGNMENT())
-
-proc IS_ALIGNMENT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ALIGNMENT())
-
-proc ALIGNMENT_GET_CLASS*(obj: pointer): PAlignmentClass = 
-  result = cast[PAlignmentClass](CHECK_GET_CLASS(obj, TYPE_ALIGNMENT()))
-
-proc TYPE_FRAME*(): GType = 
-  result = frame_get_type()
-
-proc FRAME*(obj: pointer): PFrame = 
-  result = cast[PFrame](CHECK_CAST(obj, TYPE_FRAME()))
-
-proc FRAME_CLASS*(klass: pointer): PFrameClass = 
-  result = cast[PFrameClass](CHECK_CLASS_CAST(klass, TYPE_FRAME()))
-
-proc IS_FRAME*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FRAME())
-
-proc IS_FRAME_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FRAME())
-
-proc FRAME_GET_CLASS*(obj: pointer): PFrameClass = 
-  result = cast[PFrameClass](CHECK_GET_CLASS(obj, TYPE_FRAME()))
-
-proc TYPE_ASPECT_FRAME*(): GType = 
-  result = aspect_frame_get_type()
-
-proc ASPECT_FRAME*(obj: pointer): PAspectFrame = 
-  result = cast[PAspectFrame](CHECK_CAST(obj, TYPE_ASPECT_FRAME()))
-
-proc ASPECT_FRAME_CLASS*(klass: pointer): PAspectFrameClass = 
-  result = cast[PAspectFrameClass](CHECK_CLASS_CAST(klass, TYPE_ASPECT_FRAME()))
-
-proc IS_ASPECT_FRAME*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ASPECT_FRAME())
-
-proc IS_ASPECT_FRAME_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ASPECT_FRAME())
-
-proc ASPECT_FRAME_GET_CLASS*(obj: pointer): PAspectFrameClass = 
-  result = cast[PAspectFrameClass](CHECK_GET_CLASS(obj, TYPE_ASPECT_FRAME()))
-
-proc TYPE_ARROW*(): GType = 
-  result = arrow_get_type()
-
-proc ARROW*(obj: pointer): PArrow = 
-  result = cast[PArrow](CHECK_CAST(obj, TYPE_ARROW()))
-
-proc ARROW_CLASS*(klass: pointer): PArrowClass = 
-  result = cast[PArrowClass](CHECK_CLASS_CAST(klass, TYPE_ARROW()))
-
-proc IS_ARROW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ARROW())
-
-proc IS_ARROW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ARROW())
-
-proc ARROW_GET_CLASS*(obj: pointer): PArrowClass = 
-  result = cast[PArrowClass](CHECK_GET_CLASS(obj, TYPE_ARROW()))
-
-proc parsed*(a: PBindingSet): guint = 
-  result = (a.flag0 and bm_TGtkBindingSet_parsed) shr
-      bp_TGtkBindingSet_parsed
-
-proc set_parsed*(a: PBindingSet, `parsed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`parsed` shl bp_TGtkBindingSet_parsed) and
-      bm_TGtkBindingSet_parsed)
-
-proc destroyed*(a: PBindingEntry): guint = 
-  result = (a.flag0 and bm_TGtkBindingEntry_destroyed) shr
-      bp_TGtkBindingEntry_destroyed
-
-proc set_destroyed*(a: PBindingEntry, `destroyed`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`destroyed` shl bp_TGtkBindingEntry_destroyed) and
-      bm_TGtkBindingEntry_destroyed)
-
-proc in_emission*(a: PBindingEntry): guint = 
-  result = (a.flag0 and bm_TGtkBindingEntry_in_emission) shr
-      bp_TGtkBindingEntry_in_emission
-
-proc set_in_emission*(a: PBindingEntry, `in_emission`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`in_emission` shl bp_TGtkBindingEntry_in_emission) and
-      bm_TGtkBindingEntry_in_emission)
-
-proc entry_add*(binding_set: PBindingSet, keyval: guint, 
-                        modifiers: gdk2.TModifierType) = 
-  entry_clear(binding_set, keyval, modifiers)
-
-proc TYPE_BOX*(): GType = 
-  result = box_get_type()
-
-proc BOX*(obj: pointer): PBox = 
-  result = cast[PBox](CHECK_CAST(obj, TYPE_BOX()))
-
-proc BOX_CLASS*(klass: pointer): PBoxClass = 
-  result = cast[PBoxClass](CHECK_CLASS_CAST(klass, TYPE_BOX()))
-
-proc IS_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BOX())
-
-proc IS_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BOX())
-
-proc BOX_GET_CLASS*(obj: pointer): PBoxClass = 
-  result = cast[PBoxClass](CHECK_GET_CLASS(obj, TYPE_BOX()))
-
-proc homogeneous*(a: PBox): guint = 
-  result = (a.Boxflag0 and bm_TGtkBox_homogeneous) shr bp_TGtkBox_homogeneous
-
-proc set_homogeneous*(a: PBox, `homogeneous`: guint) = 
-  a.Boxflag0 = a.Boxflag0 or
-      (int16(`homogeneous` shl bp_TGtkBox_homogeneous) and
-      bm_TGtkBox_homogeneous)
-
-proc expand*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_expand) shr bp_TGtkBoxChild_expand
-
-proc set_expand*(a: PBoxChild, `expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`expand` shl bp_TGtkBoxChild_expand) and bm_TGtkBoxChild_expand)
-
-proc fill*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_fill) shr bp_TGtkBoxChild_fill
-
-proc set_fill*(a: PBoxChild, `fill`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fill` shl bp_TGtkBoxChild_fill) and bm_TGtkBoxChild_fill)
-
-proc pack*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_pack) shr bp_TGtkBoxChild_pack
-
-proc set_pack*(a: PBoxChild, `pack`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pack` shl bp_TGtkBoxChild_pack) and bm_TGtkBoxChild_pack)
-
-proc is_secondary*(a: PBoxChild): guint = 
-  result = (a.flag0 and bm_TGtkBoxChild_is_secondary) shr
-      bp_TGtkBoxChild_is_secondary
-
-proc set_is_secondary*(a: PBoxChild, `is_secondary`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_secondary` shl bp_TGtkBoxChild_is_secondary) and
-      bm_TGtkBoxChild_is_secondary)
-
-proc TYPE_BUTTON_BOX*(): GType = 
-  result = button_box_get_type()
-
-proc BUTTON_BOX*(obj: pointer): PButtonBox = 
-  result = cast[PButtonBox](CHECK_CAST(obj, TYPE_BUTTON_BOX()))
-
-proc BUTTON_BOX_CLASS*(klass: pointer): PButtonBoxClass = 
-  result = cast[PButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_BUTTON_BOX()))
-
-proc IS_BUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BUTTON_BOX())
-
-proc IS_BUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BUTTON_BOX())
-
-proc BUTTON_BOX_GET_CLASS*(obj: pointer): PButtonBoxClass = 
-  result = cast[PButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_BUTTON_BOX()))
-
-proc button_box_set_spacing*(b: pointer, s: gint) = 
-  set_spacing(BOX(b), s)
-
-proc button_box_get_spacing*(b: pointer): gint = 
-  result = get_spacing(BOX(b))
-
-proc TYPE_BUTTON*(): GType = 
-  result = button_get_type()
-
-proc BUTTON*(obj: pointer): PButton = 
-  result = cast[PButton](CHECK_CAST(obj, TYPE_BUTTON()))
-
-proc BUTTON_CLASS*(klass: pointer): PButtonClass = 
-  result = cast[PButtonClass](CHECK_CLASS_CAST(klass, TYPE_BUTTON()))
-
-proc IS_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_BUTTON())
-
-proc IS_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_BUTTON())
-
-proc BUTTON_GET_CLASS*(obj: pointer): PButtonClass = 
-  result = cast[PButtonClass](CHECK_GET_CLASS(obj, TYPE_BUTTON()))
-
-proc constructed*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_constructed) shr
-      bp_TGtkButton_constructed
-
-proc set_constructed*(a: PButton, `constructed`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`constructed` shl bp_TGtkButton_constructed) and
-      bm_TGtkButton_constructed)
-
-proc in_button*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_in_button) shr
-      bp_TGtkButton_in_button
-
-proc set_in_button*(a: PButton, `in_button`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`in_button` shl bp_TGtkButton_in_button) and
-      bm_TGtkButton_in_button)
-
-proc button_down*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_button_down) shr
-      bp_TGtkButton_button_down
-
-proc set_button_down*(a: PButton, `button_down`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`button_down` shl bp_TGtkButton_button_down) and
-      bm_TGtkButton_button_down)
-
-proc relief*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_relief) shr bp_TGtkButton_relief
-
-proc use_underline*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_use_underline) shr
-      bp_TGtkButton_use_underline
-
-proc set_use_underline*(a: PButton, `use_underline`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`use_underline` shl bp_TGtkButton_use_underline) and
-      bm_TGtkButton_use_underline)
-
-proc use_stock*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_use_stock) shr
-      bp_TGtkButton_use_stock
-
-proc set_use_stock*(a: PButton, `use_stock`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`use_stock` shl bp_TGtkButton_use_stock) and
-      bm_TGtkButton_use_stock)
-
-proc depressed*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_depressed) shr
-      bp_TGtkButton_depressed
-
-proc set_depressed*(a: PButton, `depressed`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`depressed` shl bp_TGtkButton_depressed) and
-      bm_TGtkButton_depressed)
-
-proc depress_on_activate*(a: PButton): guint = 
-  result = (a.Buttonflag0 and bm_TGtkButton_depress_on_activate) shr
-      bp_TGtkButton_depress_on_activate
-
-proc set_depress_on_activate*(a: PButton, `depress_on_activate`: guint) = 
-  a.Buttonflag0 = a.Buttonflag0 or
-      (int16(`depress_on_activate` shl bp_TGtkButton_depress_on_activate) and
-      bm_TGtkButton_depress_on_activate)
-
-proc TYPE_CALENDAR*(): GType = 
-  result = calendar_get_type()
-
-proc CALENDAR*(obj: pointer): PCalendar = 
-  result = cast[PCalendar](CHECK_CAST(obj, TYPE_CALENDAR()))
-
-proc CALENDAR_CLASS*(klass: pointer): PCalendarClass = 
-  result = cast[PCalendarClass](CHECK_CLASS_CAST(klass, TYPE_CALENDAR()))
-
-proc IS_CALENDAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CALENDAR())
-
-proc IS_CALENDAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CALENDAR())
-
-proc CALENDAR_GET_CLASS*(obj: pointer): PCalendarClass = 
-  result = cast[PCalendarClass](CHECK_GET_CLASS(obj, TYPE_CALENDAR()))
-
-proc TYPE_CELL_EDITABLE*(): GType = 
-  result = cell_editable_get_type()
-
-proc CELL_EDITABLE*(obj: pointer): PCellEditable = 
-  result = cast[PCellEditable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc CELL_EDITABLE_CLASS*(obj: pointer): PCellEditableIface = 
-  result = cast[PCellEditableIface](G_TYPE_CHECK_CLASS_CAST(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc IS_CELL_EDITABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_CELL_EDITABLE())
-
-proc CELL_EDITABLE_GET_IFACE*(obj: pointer): PCellEditableIface = 
-  result = cast[PCellEditableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_CELL_EDITABLE()))
-
-proc TYPE_CELL_RENDERER*(): GType = 
-  result = cell_renderer_get_type()
-
-proc CELL_RENDERER*(obj: pointer): PCellRenderer = 
-  result = cast[PCellRenderer](CHECK_CAST(obj, TYPE_CELL_RENDERER()))
-
-proc CELL_RENDERER_CLASS*(klass: pointer): PCellRendererClass = 
-  result = cast[PCellRendererClass](CHECK_CLASS_CAST(klass, TYPE_CELL_RENDERER()))
-
-proc IS_CELL_RENDERER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER())
-
-proc IS_CELL_RENDERER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER())
-
-proc CELL_RENDERER_GET_CLASS*(obj: pointer): PCellRendererClass = 
-  result = cast[PCellRendererClass](CHECK_GET_CLASS(obj, TYPE_CELL_RENDERER()))
-
-proc mode*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_mode) shr
-      bp_TGtkCellRenderer_mode
-
-proc set_mode*(a: PCellRenderer, `mode`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`mode` shl bp_TGtkCellRenderer_mode) and
-      bm_TGtkCellRenderer_mode)
-
-proc visible*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_visible) shr
-      bp_TGtkCellRenderer_visible
-
-proc set_visible*(a: PCellRenderer, `visible`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`visible` shl bp_TGtkCellRenderer_visible) and
-      bm_TGtkCellRenderer_visible)
-
-proc is_expander*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expander) shr
-      bp_TGtkCellRenderer_is_expander
-
-proc set_is_expander*(a: PCellRenderer, `is_expander`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`is_expander` shl bp_TGtkCellRenderer_is_expander) and
-      bm_TGtkCellRenderer_is_expander)
-
-proc is_expanded*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expanded) shr
-      bp_TGtkCellRenderer_is_expanded
-
-proc set_is_expanded*(a: PCellRenderer, `is_expanded`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`is_expanded` shl bp_TGtkCellRenderer_is_expanded) and
-      bm_TGtkCellRenderer_is_expanded)
-
-proc cell_background_set*(a: PCellRenderer): guint = 
-  result = (a.CellRendererflag0 and bm_TGtkCellRenderer_cell_background_set) shr
-      bp_TGtkCellRenderer_cell_background_set
-
-proc set_cell_background_set*(a: PCellRenderer, `cell_background_set`: guint) = 
-  a.CellRendererflag0 = a.CellRendererflag0 or
-      (int16(`cell_background_set` shl
-      bp_TGtkCellRenderer_cell_background_set) and
-      bm_TGtkCellRenderer_cell_background_set)
-
-proc TYPE_CELL_RENDERER_TEXT*(): GType = 
-  result = cell_renderer_text_get_type()
-
-proc CELL_RENDERER_TEXT*(obj: pointer): PCellRendererText = 
-  result = cast[PCellRendererText](CHECK_CAST(obj, TYPE_CELL_RENDERER_TEXT()))
-
-proc CELL_RENDERER_TEXT_CLASS*(klass: pointer): PCellRendererTextClass = 
-  result = cast[PCellRendererTextClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_TEXT()))
-
-proc IS_CELL_RENDERER_TEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_TEXT())
-
-proc IS_CELL_RENDERER_TEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_TEXT())
-
-proc CELL_RENDERER_TEXT_GET_CLASS*(obj: pointer): PCellRendererTextClass = 
-  result = cast[PCellRendererTextClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_TEXT()))
-
-proc strikethrough*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_strikethrough) shr
-      bp_TGtkCellRendererText_strikethrough
-
-proc set_strikethrough*(a: PCellRendererText, `strikethrough`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`strikethrough` shl bp_TGtkCellRendererText_strikethrough) and
-      bm_TGtkCellRendererText_strikethrough)
-
-proc editable*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable) shr
-      bp_TGtkCellRendererText_editable
-
-proc set_editable*(a: PCellRendererText, `editable`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`editable` shl bp_TGtkCellRendererText_editable) and
-      bm_TGtkCellRendererText_editable)
-
-proc scale_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_scale_set) shr
-      bp_TGtkCellRendererText_scale_set
-
-proc set_scale_set*(a: PCellRendererText, `scale_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`scale_set` shl bp_TGtkCellRendererText_scale_set) and
-      bm_TGtkCellRendererText_scale_set)
-
-proc foreground_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_foreground_set) shr
-      bp_TGtkCellRendererText_foreground_set
-
-proc set_foreground_set*(a: PCellRendererText, `foreground_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`foreground_set` shl bp_TGtkCellRendererText_foreground_set) and
-      bm_TGtkCellRendererText_foreground_set)
-
-proc background_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_background_set) shr
-      bp_TGtkCellRendererText_background_set
-
-proc set_background_set*(a: PCellRendererText, `background_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`background_set` shl bp_TGtkCellRendererText_background_set) and
-      bm_TGtkCellRendererText_background_set)
-
-proc underline_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_underline_set) shr
-      bp_TGtkCellRendererText_underline_set
-
-proc set_underline_set*(a: PCellRendererText, `underline_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`underline_set` shl bp_TGtkCellRendererText_underline_set) and
-      bm_TGtkCellRendererText_underline_set)
-
-proc rise_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_rise_set) shr
-      bp_TGtkCellRendererText_rise_set
-
-proc set_rise_set*(a: PCellRendererText, `rise_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`rise_set` shl bp_TGtkCellRendererText_rise_set) and
-      bm_TGtkCellRendererText_rise_set)
-
-proc strikethrough_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_strikethrough_set) shr
-      bp_TGtkCellRendererText_strikethrough_set
-
-proc set_strikethrough_set*(a: PCellRendererText, `strikethrough_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`strikethrough_set` shl
-      bp_TGtkCellRendererText_strikethrough_set) and
-      bm_TGtkCellRendererText_strikethrough_set)
-
-proc editable_set*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable_set) shr
-      bp_TGtkCellRendererText_editable_set
-
-proc set_editable_set*(a: PCellRendererText, `editable_set`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`editable_set` shl bp_TGtkCellRendererText_editable_set) and
-      bm_TGtkCellRendererText_editable_set)
-
-proc calc_fixed_height*(a: PCellRendererText): guint = 
-  result = (a.CellRendererTextflag0 and
-      bm_TGtkCellRendererText_calc_fixed_height) shr
-      bp_TGtkCellRendererText_calc_fixed_height
-
-proc set_calc_fixed_height*(a: PCellRendererText, `calc_fixed_height`: guint) = 
-  a.CellRendererTextflag0 = a.CellRendererTextflag0 or
-      (int16(`calc_fixed_height` shl
-      bp_TGtkCellRendererText_calc_fixed_height) and
-      bm_TGtkCellRendererText_calc_fixed_height)
-
-proc TYPE_CELL_RENDERER_TOGGLE*(): GType = 
-  result = cell_renderer_toggle_get_type()
-
-proc CELL_RENDERER_TOGGLE*(obj: pointer): PCellRendererToggle = 
-  result = cast[PCellRendererToggle](CHECK_CAST(obj, TYPE_CELL_RENDERER_TOGGLE()))
-
-proc CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): PCellRendererToggleClass = 
-  result = cast[PCellRendererToggleClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_TOGGLE()))
-
-proc IS_CELL_RENDERER_TOGGLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_TOGGLE())
-
-proc IS_CELL_RENDERER_TOGGLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_TOGGLE())
-
-proc CELL_RENDERER_TOGGLE_GET_CLASS*(obj: pointer): PCellRendererToggleClass = 
-  result = cast[PCellRendererToggleClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_TOGGLE()))
-
-proc active*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_active) shr
-      bp_TGtkCellRendererToggle_active
-
-proc set_active*(a: PCellRendererToggle, `active`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`active` shl bp_TGtkCellRendererToggle_active) and
-      bm_TGtkCellRendererToggle_active)
-
-proc activatable*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and
-      bm_TGtkCellRendererToggle_activatable) shr
-      bp_TGtkCellRendererToggle_activatable
-
-proc set_activatable*(a: PCellRendererToggle, `activatable`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`activatable` shl bp_TGtkCellRendererToggle_activatable) and
-      bm_TGtkCellRendererToggle_activatable)
-
-proc radio*(a: PCellRendererToggle): guint = 
-  result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_radio) shr
-      bp_TGtkCellRendererToggle_radio
-
-proc set_radio*(a: PCellRendererToggle, `radio`: guint) = 
-  a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
-      (int16(`radio` shl bp_TGtkCellRendererToggle_radio) and
-      bm_TGtkCellRendererToggle_radio)
-
-proc TYPE_CELL_RENDERER_PIXBUF*(): GType = 
-  result = cell_renderer_pixbuf_get_type()
-
-proc CELL_RENDERER_PIXBUF*(obj: pointer): PCellRendererPixbuf = 
-  result = cast[PCellRendererPixbuf](CHECK_CAST(obj, TYPE_CELL_RENDERER_PIXBUF()))
-
-proc CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): PCellRendererPixbufClass = 
-  result = cast[PCellRendererPixbufClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CELL_RENDERER_PIXBUF()))
-
-proc IS_CELL_RENDERER_PIXBUF*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CELL_RENDERER_PIXBUF())
-
-proc IS_CELL_RENDERER_PIXBUF_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CELL_RENDERER_PIXBUF())
-
-proc CELL_RENDERER_PIXBUF_GET_CLASS*(obj: pointer): PCellRendererPixbufClass = 
-  result = cast[PCellRendererPixbufClass](CHECK_GET_CLASS(obj, 
-      TYPE_CELL_RENDERER_PIXBUF()))
-
-proc TYPE_ITEM*(): GType = 
-  result = item_get_type()
-
-proc ITEM*(obj: pointer): PItem = 
-  result = cast[PItem](CHECK_CAST(obj, TYPE_ITEM()))
-
-proc ITEM_CLASS*(klass: pointer): PItemClass = 
-  result = cast[PItemClass](CHECK_CLASS_CAST(klass, TYPE_ITEM()))
-
-proc IS_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ITEM())
-
-proc IS_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ITEM())
-
-proc ITEM_GET_CLASS*(obj: pointer): PItemClass = 
-  result = cast[PItemClass](CHECK_GET_CLASS(obj, TYPE_ITEM()))
-
-proc TYPE_MENU_ITEM*(): GType = 
-  result = menu_item_get_type()
-
-proc MENU_ITEM*(obj: pointer): PMenuItem = 
-  result = cast[PMenuItem](CHECK_CAST(obj, TYPE_MENU_ITEM()))
-
-proc MENU_ITEM_CLASS*(klass: pointer): PMenuItemClass = 
-  result = cast[PMenuItemClass](CHECK_CLASS_CAST(klass, TYPE_MENU_ITEM()))
-
-proc IS_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_ITEM())
-
-proc IS_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_ITEM())
-
-proc MENU_ITEM_GET_CLASS*(obj: pointer): PMenuItemClass = 
-  result = cast[PMenuItemClass](CHECK_GET_CLASS(obj, TYPE_MENU_ITEM()))
-
-proc show_submenu_indicator*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_show_submenu_indicator) shr
-      bp_TGtkMenuItem_show_submenu_indicator
-
-proc set_show_submenu_indicator*(a: PMenuItem, 
-                                 `show_submenu_indicator`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`show_submenu_indicator` shl
-      bp_TGtkMenuItem_show_submenu_indicator) and
-      bm_TGtkMenuItem_show_submenu_indicator)
-
-proc submenu_placement*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_placement) shr
-      bp_TGtkMenuItem_submenu_placement
-
-proc set_submenu_placement*(a: PMenuItem, `submenu_placement`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`submenu_placement` shl bp_TGtkMenuItem_submenu_placement) and
-      bm_TGtkMenuItem_submenu_placement)
-
-proc submenu_direction*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_direction) shr
-      bp_TGtkMenuItem_submenu_direction
-
-proc set_submenu_direction*(a: PMenuItem, `submenu_direction`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`submenu_direction` shl bp_TGtkMenuItem_submenu_direction) and
-      bm_TGtkMenuItem_submenu_direction)
-
-proc right_justify*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_right_justify) shr
-      bp_TGtkMenuItem_right_justify
-
-proc set_right_justify*(a: PMenuItem, `right_justify`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`right_justify` shl bp_TGtkMenuItem_right_justify) and
-      bm_TGtkMenuItem_right_justify)
-
-proc timer_from_keypress*(a: PMenuItem): guint = 
-  result = (a.MenuItemflag0 and bm_TGtkMenuItem_timer_from_keypress) shr
-      bp_TGtkMenuItem_timer_from_keypress
-
-proc set_timer_from_keypress*(a: PMenuItem, `timer_from_keypress`: guint) = 
-  a.MenuItemflag0 = a.MenuItemflag0 or
-      (int16(`timer_from_keypress` shl bp_TGtkMenuItem_timer_from_keypress) and
-      bm_TGtkMenuItem_timer_from_keypress)
-
-proc hide_on_activate*(a: PMenuItemClass): guint = 
-  result = (a.MenuItemClassflag0 and bm_TGtkMenuItemClass_hide_on_activate) shr
-      bp_TGtkMenuItemClass_hide_on_activate
-
-proc set_hide_on_activate*(a: PMenuItemClass, `hide_on_activate`: guint) = 
-  a.MenuItemClassflag0 = a.MenuItemClassflag0 or
-      (int16(`hide_on_activate` shl bp_TGtkMenuItemClass_hide_on_activate) and
-      bm_TGtkMenuItemClass_hide_on_activate)
-
-proc right_justify*(menu_item: PMenuItem) = 
-  set_right_justified(menu_item, system.true)
-
-proc TYPE_TOGGLE_BUTTON*(): GType = 
-  result = toggle_button_get_type()
-
-proc TOGGLE_BUTTON*(obj: pointer): PToggleButton = 
-  result = cast[PToggleButton](CHECK_CAST(obj, TYPE_TOGGLE_BUTTON()))
-
-proc TOGGLE_BUTTON_CLASS*(klass: pointer): PToggleButtonClass = 
-  result = cast[PToggleButtonClass](CHECK_CLASS_CAST(klass, TYPE_TOGGLE_BUTTON()))
-
-proc IS_TOGGLE_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOGGLE_BUTTON())
-
-proc IS_TOGGLE_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOGGLE_BUTTON())
-
-proc TOGGLE_BUTTON_GET_CLASS*(obj: pointer): PToggleButtonClass = 
-  result = cast[PToggleButtonClass](CHECK_GET_CLASS(obj, TYPE_TOGGLE_BUTTON()))
-
-proc active*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_active) shr
-      bp_TGtkToggleButton_active
-
-proc set_active*(a: PToggleButton, `active`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`active` shl bp_TGtkToggleButton_active) and
-      bm_TGtkToggleButton_active)
-
-proc draw_indicator*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_draw_indicator) shr
-      bp_TGtkToggleButton_draw_indicator
-
-proc set_draw_indicator*(a: PToggleButton, `draw_indicator`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`draw_indicator` shl bp_TGtkToggleButton_draw_indicator) and
-      bm_TGtkToggleButton_draw_indicator)
-
-proc inconsistent*(a: PToggleButton): guint = 
-  result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_inconsistent) shr
-      bp_TGtkToggleButton_inconsistent
-
-proc set_inconsistent*(a: PToggleButton, `inconsistent`: guint) = 
-  a.ToggleButtonflag0 = a.ToggleButtonflag0 or
-      (int16(`inconsistent` shl bp_TGtkToggleButton_inconsistent) and
-      bm_TGtkToggleButton_inconsistent)
-
-proc TYPE_CHECK_BUTTON*(): GType = 
-  result = check_button_get_type()
-
-proc CHECK_BUTTON*(obj: pointer): PCheckButton = 
-  result = cast[PCheckButton](CHECK_CAST(obj, TYPE_CHECK_BUTTON()))
-
-proc CHECK_BUTTON_CLASS*(klass: pointer): PCheckButtonClass = 
-  result = cast[PCheckButtonClass](CHECK_CLASS_CAST(klass, TYPE_CHECK_BUTTON()))
-
-proc IS_CHECK_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CHECK_BUTTON())
-
-proc IS_CHECK_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CHECK_BUTTON())
-
-proc CHECK_BUTTON_GET_CLASS*(obj: pointer): PCheckButtonClass = 
-  result = cast[PCheckButtonClass](CHECK_GET_CLASS(obj, TYPE_CHECK_BUTTON()))
-
-proc TYPE_CHECK_MENU_ITEM*(): GType = 
-  result = check_menu_item_get_type()
-
-proc CHECK_MENU_ITEM*(obj: pointer): PCheckMenuItem = 
-  result = cast[PCheckMenuItem](CHECK_CAST(obj, TYPE_CHECK_MENU_ITEM()))
-
-proc CHECK_MENU_ITEM_CLASS*(klass: pointer): PCheckMenuItemClass = 
-  result = cast[PCheckMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_CHECK_MENU_ITEM()))
-
-proc IS_CHECK_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CHECK_MENU_ITEM())
-
-proc IS_CHECK_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CHECK_MENU_ITEM())
-
-proc CHECK_MENU_ITEM_GET_CLASS*(obj: pointer): PCheckMenuItemClass = 
-  result = cast[PCheckMenuItemClass](CHECK_GET_CLASS(obj, TYPE_CHECK_MENU_ITEM()))
-
-proc active*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_active) shr
-      bp_TGtkCheckMenuItem_active
-
-proc set_active*(a: PCheckMenuItem, `active`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`active` shl bp_TGtkCheckMenuItem_active) and
-      bm_TGtkCheckMenuItem_active)
-
-proc always_show_toggle*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_always_show_toggle) shr
-      bp_TGtkCheckMenuItem_always_show_toggle
-
-proc set_always_show_toggle*(a: PCheckMenuItem, `always_show_toggle`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`always_show_toggle` shl bp_TGtkCheckMenuItem_always_show_toggle) and
-      bm_TGtkCheckMenuItem_always_show_toggle)
-
-proc inconsistent*(a: PCheckMenuItem): guint = 
-  result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_inconsistent) shr
-      bp_TGtkCheckMenuItem_inconsistent
-
-proc set_inconsistent*(a: PCheckMenuItem, `inconsistent`: guint) = 
-  a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
-      (int16(`inconsistent` shl bp_TGtkCheckMenuItem_inconsistent) and
-      bm_TGtkCheckMenuItem_inconsistent)
-
-proc TYPE_CLIST*(): GType = 
-  result = clist_get_type()
-
-proc CLIST*(obj: pointer): PCList = 
-  result = cast[PCList](CHECK_CAST(obj, TYPE_CLIST()))
-
-proc CLIST_CLASS*(klass: pointer): PCListClass = 
-  result = cast[PCListClass](CHECK_CLASS_CAST(klass, TYPE_CLIST()))
-
-proc IS_CLIST*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CLIST())
-
-proc IS_CLIST_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CLIST())
-
-proc CLIST_GET_CLASS*(obj: pointer): PCListClass = 
-  result = cast[PCListClass](CHECK_GET_CLASS(obj, TYPE_CLIST()))
-
-proc CLIST_FLAGS*(clist: pointer): guint16 = 
-  result = toU16(CLIST(clist).flags)
-
-proc SET_FLAG*(clist: PCList, flag: guint16) = 
-  clist.flags = CLIST(clist).flags or (flag)
-
-proc UNSET_FLAG*(clist: PCList, flag: guint16) = 
-  clist.flags = CLIST(clist).flags and not (flag)
-
-proc CLIST_IN_DRAG_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_IN_DRAG)) != 0'i32
-
-proc CLIST_ROW_HEIGHT_SET_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_ROW_HEIGHT_SET)) != 0'i32
-
-proc CLIST_SHOW_TITLES_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_SHOW_TITLES)) != 0'i32
-
-proc CLIST_ADD_MODE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_ADD_MODE)) != 0'i32
-
-proc CLIST_AUTO_SORT_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_AUTO_SORT)) != 0'i32
-
-proc CLIST_AUTO_RESIZE_BLOCKED_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_AUTO_RESIZE_BLOCKED)) != 0'i32
-
-proc CLIST_REORDERABLE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_REORDERABLE)) != 0'i32
-
-proc CLIST_USE_DRAG_ICONS_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_USE_DRAG_ICONS)) != 0'i32
-
-proc CLIST_DRAW_DRAG_LINE_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_DRAW_DRAG_LINE)) != 0'i32
-
-proc CLIST_DRAW_DRAG_RECT_get*(clist: pointer): bool = 
-  result = ((CLIST_FLAGS(clist)) and cint(CLIST_DRAW_DRAG_RECT)) != 0'i32
-
-proc CLIST_ROW_get*(glist: PGList): PCListRow = 
-  result = cast[PCListRow](glist.data)
-
-when false: 
-  proc CELL_TEXT_get*(cell: pointer): PCellText = 
-    result = cast[PCellText](addr((cell)))
-
-  proc CELL_PIXMAP_get*(cell: pointer): PCellPixmap = 
-    result = cast[PCellPixmap](addr((cell)))
-
-  proc CELL_PIXTEXT_get*(cell: pointer): PCellPixText = 
-    result = cast[PCellPixText](addr((cell)))
-
-  proc CELL_WIDGET_get*(cell: pointer): PCellWidget = 
-    result = cast[PCellWidget](addr((cell)))
-
-proc visible*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_visible) shr
-      bp_TGtkCListColumn_visible
-
-proc set_visible*(a: PCListColumn, `visible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`visible` shl bp_TGtkCListColumn_visible) and
-      bm_TGtkCListColumn_visible)
-
-proc width_set*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_width_set) shr
-      bp_TGtkCListColumn_width_set
-
-proc set_width_set*(a: PCListColumn, `width_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`width_set` shl bp_TGtkCListColumn_width_set) and
-      bm_TGtkCListColumn_width_set)
-
-proc resizeable*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_resizeable) shr
-      bp_TGtkCListColumn_resizeable
-
-proc set_resizeable*(a: PCListColumn, `resizeable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`resizeable` shl bp_TGtkCListColumn_resizeable) and
-      bm_TGtkCListColumn_resizeable)
-
-proc auto_resize*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_auto_resize) shr
-      bp_TGtkCListColumn_auto_resize
-
-proc set_auto_resize*(a: PCListColumn, `auto_resize`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`auto_resize` shl bp_TGtkCListColumn_auto_resize) and
-      bm_TGtkCListColumn_auto_resize)
-
-proc button_passive*(a: PCListColumn): guint = 
-  result = (a.flag0 and bm_TGtkCListColumn_button_passive) shr
-      bp_TGtkCListColumn_button_passive
-
-proc set_button_passive*(a: PCListColumn, `button_passive`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`button_passive` shl bp_TGtkCListColumn_button_passive) and
-      bm_TGtkCListColumn_button_passive)
-
-proc fg_set*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_fg_set) shr bp_TGtkCListRow_fg_set
-
-proc set_fg_set*(a: PCListRow, `fg_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fg_set` shl bp_TGtkCListRow_fg_set) and bm_TGtkCListRow_fg_set)
-
-proc bg_set*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_bg_set) shr bp_TGtkCListRow_bg_set
-
-proc set_bg_set*(a: PCListRow, `bg_set`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`bg_set` shl bp_TGtkCListRow_bg_set) and bm_TGtkCListRow_bg_set)
-
-proc selectable*(a: PCListRow): guint = 
-  result = (a.flag0 and bm_TGtkCListRow_selectable) shr
-      bp_TGtkCListRow_selectable
-
-proc set_selectable*(a: PCListRow, `selectable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`selectable` shl bp_TGtkCListRow_selectable) and
-      bm_TGtkCListRow_selectable)
-
-proc TYPE_DIALOG*(): GType = 
-  result = dialog_get_type()
-
-proc DIALOG*(obj: pointer): PDialog = 
-  result = cast[PDialog](CHECK_CAST(obj, TYPE_DIALOG()))
-
-proc DIALOG_CLASS*(klass: pointer): PDialogClass = 
-  result = cast[PDialogClass](CHECK_CLASS_CAST(klass, TYPE_DIALOG()))
-
-proc IS_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_DIALOG())
-
-proc IS_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_DIALOG())
-
-proc DIALOG_GET_CLASS*(obj: pointer): PDialogClass = 
-  result = cast[PDialogClass](CHECK_GET_CLASS(obj, TYPE_DIALOG()))
-
-proc TYPE_VBOX*(): GType = 
-  result = vbox_get_type()
-
-proc VBOX*(obj: pointer): PVBox = 
-  result = cast[PVBox](CHECK_CAST(obj, TYPE_VBOX()))
-
-proc VBOX_CLASS*(klass: pointer): PVBoxClass = 
-  result = cast[PVBoxClass](CHECK_CLASS_CAST(klass, TYPE_VBOX()))
-
-proc IS_VBOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VBOX())
-
-proc IS_VBOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VBOX())
-
-proc VBOX_GET_CLASS*(obj: pointer): PVBoxClass = 
-  result = cast[PVBoxClass](CHECK_GET_CLASS(obj, TYPE_VBOX()))
-
-proc TYPE_COLOR_SELECTION*(): GType = 
-  result = color_selection_get_type()
-
-proc COLOR_SELECTION*(obj: pointer): PColorSelection = 
-  result = cast[PColorSelection](CHECK_CAST(obj, TYPE_COLOR_SELECTION()))
-
-proc COLOR_SELECTION_CLASS*(klass: pointer): PColorSelectionClass = 
-  result = cast[PColorSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_COLOR_SELECTION()))
-
-proc IS_COLOR_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COLOR_SELECTION())
-
-proc IS_COLOR_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COLOR_SELECTION())
-
-proc COLOR_SELECTION_GET_CLASS*(obj: pointer): PColorSelectionClass = 
-  result = cast[PColorSelectionClass](CHECK_GET_CLASS(obj, 
-      TYPE_COLOR_SELECTION()))
-
-proc TYPE_COLOR_SELECTION_DIALOG*(): GType = 
-  result = color_selection_dialog_get_type()
-
-proc COLOR_SELECTION_DIALOG*(obj: pointer): PColorSelectionDialog = 
-  result = cast[PColorSelectionDialog](CHECK_CAST(obj, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): PColorSelectionDialogClass = 
-  result = cast[PColorSelectionDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc IS_COLOR_SELECTION_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COLOR_SELECTION_DIALOG())
-
-proc IS_COLOR_SELECTION_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COLOR_SELECTION_DIALOG())
-
-proc COLOR_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PColorSelectionDialogClass = 
-  result = cast[PColorSelectionDialogClass](CHECK_GET_CLASS(obj, 
-      TYPE_COLOR_SELECTION_DIALOG()))
-
-proc TYPE_HBOX*(): GType = 
-  result = hbox_get_type()
-
-proc HBOX*(obj: pointer): PHBox = 
-  result = cast[PHBox](CHECK_CAST(obj, TYPE_HBOX()))
-
-proc HBOX_CLASS*(klass: pointer): PHBoxClass = 
-  result = cast[PHBoxClass](CHECK_CLASS_CAST(klass, TYPE_HBOX()))
-
-proc IS_HBOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HBOX())
-
-proc IS_HBOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HBOX())
-
-proc HBOX_GET_CLASS*(obj: pointer): PHBoxClass = 
-  result = cast[PHBoxClass](CHECK_GET_CLASS(obj, TYPE_HBOX()))
-
-proc TYPE_COMBO*(): GType = 
-  result = combo_get_type()
-
-proc COMBO*(obj: pointer): PCombo = 
-  result = cast[PCombo](CHECK_CAST(obj, TYPE_COMBO()))
-
-proc COMBO_CLASS*(klass: pointer): PComboClass = 
-  result = cast[PComboClass](CHECK_CLASS_CAST(klass, TYPE_COMBO()))
-
-proc IS_COMBO*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_COMBO())
-
-proc IS_COMBO_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_COMBO())
-
-proc COMBO_GET_CLASS*(obj: pointer): PComboClass = 
-  result = cast[PComboClass](CHECK_GET_CLASS(obj, TYPE_COMBO()))
-
-proc value_in_list*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_value_in_list) shr
-      bp_TGtkCombo_value_in_list
-
-proc set_value_in_list*(a: PCombo, `value_in_list`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`value_in_list` shl bp_TGtkCombo_value_in_list) and
-      bm_TGtkCombo_value_in_list)
-
-proc ok_if_empty*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_ok_if_empty) shr
-      bp_TGtkCombo_ok_if_empty
-
-proc set_ok_if_empty*(a: PCombo, `ok_if_empty`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`ok_if_empty` shl bp_TGtkCombo_ok_if_empty) and
-      bm_TGtkCombo_ok_if_empty)
-
-proc case_sensitive*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_case_sensitive) shr
-      bp_TGtkCombo_case_sensitive
-
-proc set_case_sensitive*(a: PCombo, `case_sensitive`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`case_sensitive` shl bp_TGtkCombo_case_sensitive) and
-      bm_TGtkCombo_case_sensitive)
-
-proc use_arrows*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_use_arrows) shr
-      bp_TGtkCombo_use_arrows
-
-proc set_use_arrows*(a: PCombo, `use_arrows`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`use_arrows` shl bp_TGtkCombo_use_arrows) and
-      bm_TGtkCombo_use_arrows)
-
-proc use_arrows_always*(a: PCombo): guint = 
-  result = (a.Comboflag0 and bm_TGtkCombo_use_arrows_always) shr
-      bp_TGtkCombo_use_arrows_always
-
-proc set_use_arrows_always*(a: PCombo, `use_arrows_always`: guint) = 
-  a.Comboflag0 = a.Comboflag0 or
-      (int16(`use_arrows_always` shl bp_TGtkCombo_use_arrows_always) and
-      bm_TGtkCombo_use_arrows_always)
-
-proc TYPE_CTREE*(): GType = 
-  result = ctree_get_type()
-
-proc CTREE*(obj: pointer): PCTree = 
-  result = cast[PCTree](CHECK_CAST(obj, TYPE_CTREE()))
-
-proc CTREE_CLASS*(klass: pointer): PCTreeClass = 
-  result = cast[PCTreeClass](CHECK_CLASS_CAST(klass, TYPE_CTREE()))
-
-proc IS_CTREE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CTREE())
-
-proc IS_CTREE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CTREE())
-
-proc CTREE_GET_CLASS*(obj: pointer): PCTreeClass = 
-  result = cast[PCTreeClass](CHECK_GET_CLASS(obj, TYPE_CTREE()))
-
-proc CTREE_ROW*(node: TAddress): PCTreeRow = 
-  result = cast[PCTreeRow]((cast[PGList](node)).data)
-
-proc CTREE_NODE*(node: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode](node)
-
-proc CTREE_NODE_NEXT*(nnode: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode]((cast[PGList](nnode)).next)
-
-proc CTREE_NODE_PREV*(pnode: TAddress): PCTreeNode = 
-  result = cast[PCTreeNode]((cast[PGList](pnode)).prev)
-
-proc CTREE_FUNC*(fun: TAddress): TCTreeFunc = 
-  result = cast[TCTreeFunc](fun)
-
-proc TYPE_CTREE_NODE*(): GType = 
-  result = ctree_node_get_type()
-
-proc line_style*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_line_style) shr
-      bp_TGtkCTree_line_style
-
-proc set_line_style*(a: PCTree, `line_style`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`line_style` shl bp_TGtkCTree_line_style) and
-      bm_TGtkCTree_line_style)
-
-proc expander_style*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_expander_style) shr
-      bp_TGtkCTree_expander_style
-
-proc set_expander_style*(a: PCTree, `expander_style`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`expander_style` shl bp_TGtkCTree_expander_style) and
-      bm_TGtkCTree_expander_style)
-
-proc show_stub*(a: PCTree): guint = 
-  result = (a.CTreeflag0 and bm_TGtkCTree_show_stub) shr
-      bp_TGtkCTree_show_stub
-
-proc set_show_stub*(a: PCTree, `show_stub`: guint) = 
-  a.CTreeflag0 = a.CTreeflag0 or
-      (int16(`show_stub` shl bp_TGtkCTree_show_stub) and
-      bm_TGtkCTree_show_stub)
-
-proc is_leaf*(a: PCTreeRow): guint = 
-  result = (a.CTreeRow_flag0 and bm_TGtkCTreeRow_is_leaf) shr
-      bp_TGtkCTreeRow_is_leaf
-
-proc set_is_leaf*(a: PCTreeRow, `is_leaf`: guint) = 
-  a.CTreeRow_flag0 = a.CTreeRow_flag0 or
-      (int16(`is_leaf` shl bp_TGtkCTreeRow_is_leaf) and
-      bm_TGtkCTreeRow_is_leaf)
-
-proc expanded*(a: PCTreeRow): guint = 
-  result = (a.CTreeRow_flag0 and bm_TGtkCTreeRow_expanded) shr
-      bp_TGtkCTreeRow_expanded
-
-proc set_expanded*(a: PCTreeRow, `expanded`: guint) = 
-  a.CTreeRow_flag0 = a.CTreeRowflag0 or
-      (int16(`expanded` shl bp_TGtkCTreeRow_expanded) and
-      bm_TGtkCTreeRow_expanded)
-
-proc ctree_set_reorderable*(t: pointer, r: bool) = 
-  set_reorderable(cast[PCList](t), r)
-
-proc TYPE_DRAWING_AREA*(): GType = 
-  result = drawing_area_get_type()
-
-proc DRAWING_AREA*(obj: pointer): PDrawingArea = 
-  result = cast[PDrawingArea](CHECK_CAST(obj, TYPE_DRAWING_AREA()))
-
-proc DRAWING_AREA_CLASS*(klass: pointer): PDrawingAreaClass = 
-  result = cast[PDrawingAreaClass](CHECK_CLASS_CAST(klass, TYPE_DRAWING_AREA()))
-
-proc IS_DRAWING_AREA*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_DRAWING_AREA())
-
-proc IS_DRAWING_AREA_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_DRAWING_AREA())
-
-proc DRAWING_AREA_GET_CLASS*(obj: pointer): PDrawingAreaClass = 
-  result = cast[PDrawingAreaClass](CHECK_GET_CLASS(obj, TYPE_DRAWING_AREA()))
-
-proc TYPE_CURVE*(): GType = 
-  result = curve_get_type()
-
-proc CURVE*(obj: pointer): PCurve = 
-  result = cast[PCurve](CHECK_CAST(obj, TYPE_CURVE()))
-
-proc CURVE_CLASS*(klass: pointer): PCurveClass = 
-  result = cast[PCurveClass](CHECK_CLASS_CAST(klass, TYPE_CURVE()))
-
-proc IS_CURVE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_CURVE())
-
-proc IS_CURVE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_CURVE())
-
-proc CURVE_GET_CLASS*(obj: pointer): PCurveClass = 
-  result = cast[PCurveClass](CHECK_GET_CLASS(obj, TYPE_CURVE()))
-
-proc TYPE_EDITABLE*(): GType = 
-  result = editable_get_type()
-
-proc EDITABLE*(obj: pointer): PEditable = 
-  result = cast[PEditable](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_EDITABLE()))
-
-proc EDITABLE_CLASS*(vtable: pointer): PEditableClass = 
-  result = cast[PEditableClass](G_TYPE_CHECK_CLASS_CAST(vtable, TYPE_EDITABLE()))
-
-proc IS_EDITABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_EDITABLE())
-
-proc IS_EDITABLE_CLASS*(vtable: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(vtable, TYPE_EDITABLE())
-
-proc EDITABLE_GET_CLASS*(inst: pointer): PEditableClass = 
-  result = cast[PEditableClass](G_TYPE_INSTANCE_GET_INTERFACE(inst, 
-      TYPE_EDITABLE()))
-
-proc TYPE_IM_CONTEXT*(): GType = 
-  result = im_context_get_type()
-
-proc IM_CONTEXT*(obj: pointer): PIMContext = 
-  result = cast[PIMContext](CHECK_CAST(obj, TYPE_IM_CONTEXT()))
-
-proc IM_CONTEXT_CLASS*(klass: pointer): PIMContextClass = 
-  result = cast[PIMContextClass](CHECK_CLASS_CAST(klass, TYPE_IM_CONTEXT()))
-
-proc IS_IM_CONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_CONTEXT())
-
-proc IS_IM_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_CONTEXT())
-
-proc IM_CONTEXT_GET_CLASS*(obj: pointer): PIMContextClass = 
-  result = cast[PIMContextClass](CHECK_GET_CLASS(obj, TYPE_IM_CONTEXT()))
-
-proc TYPE_MENU_SHELL*(): GType = 
-  result = menu_shell_get_type()
-
-proc MENU_SHELL*(obj: pointer): PMenuShell = 
-  result = cast[PMenuShell](CHECK_CAST(obj, TYPE_MENU_SHELL()))
-
-proc MENU_SHELL_CLASS*(klass: pointer): PMenuShellClass = 
-  result = cast[PMenuShellClass](CHECK_CLASS_CAST(klass, TYPE_MENU_SHELL()))
-
-proc IS_MENU_SHELL*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_SHELL())
-
-proc IS_MENU_SHELL_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_SHELL())
-
-proc MENU_SHELL_GET_CLASS*(obj: pointer): PMenuShellClass = 
-  result = cast[PMenuShellClass](CHECK_GET_CLASS(obj, TYPE_MENU_SHELL()))
-
-proc active*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_active) shr
-      bp_TGtkMenuShell_active
-
-proc set_active*(a: PMenuShell, `active`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`active` shl bp_TGtkMenuShell_active) and
-      bm_TGtkMenuShell_active)
-
-proc have_grab*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_grab) shr
-      bp_TGtkMenuShell_have_grab
-
-proc set_have_grab*(a: PMenuShell, `have_grab`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`have_grab` shl bp_TGtkMenuShell_have_grab) and
-      bm_TGtkMenuShell_have_grab)
-
-proc have_xgrab*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_xgrab) shr
-      bp_TGtkMenuShell_have_xgrab
-
-proc set_have_xgrab*(a: PMenuShell, `have_xgrab`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`have_xgrab` shl bp_TGtkMenuShell_have_xgrab) and
-      bm_TGtkMenuShell_have_xgrab)
-
-proc ignore_leave*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_leave) shr
-      bp_TGtkMenuShell_ignore_leave
-
-proc set_ignore_leave*(a: PMenuShell, `ignore_leave`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`ignore_leave` shl bp_TGtkMenuShell_ignore_leave) and
-      bm_TGtkMenuShell_ignore_leave)
-
-proc menu_flag*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_menu_flag) shr
-      bp_TGtkMenuShell_menu_flag
-
-proc set_menu_flag*(a: PMenuShell, `menu_flag`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`menu_flag` shl bp_TGtkMenuShell_menu_flag) and
-      bm_TGtkMenuShell_menu_flag)
-
-proc ignore_enter*(a: PMenuShell): guint = 
-  result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_enter) shr
-      bp_TGtkMenuShell_ignore_enter
-
-proc set_ignore_enter*(a: PMenuShell, `ignore_enter`: guint) = 
-  a.MenuShellflag0 = a.MenuShellflag0 or
-      (int16(`ignore_enter` shl bp_TGtkMenuShell_ignore_enter) and
-      bm_TGtkMenuShell_ignore_enter)
-
-proc submenu_placement*(a: PMenuShellClass): guint = 
-  result = (a.MenuShellClassflag0 and bm_TGtkMenuShellClass_submenu_placement) shr
-      bp_TGtkMenuShellClass_submenu_placement
-
-proc set_submenu_placement*(a: PMenuShellClass, `submenu_placement`: guint) = 
-  a.MenuShellClassflag0 = a.MenuShellClassflag0 or
-      (int16(`submenu_placement` shl bp_TGtkMenuShellClass_submenu_placement) and
-      bm_TGtkMenuShellClass_submenu_placement)
-
-proc TYPE_MENU*(): GType = 
-  result = menu_get_type()
-
-proc MENU*(obj: pointer): PMenu = 
-  result = cast[PMenu](CHECK_CAST(obj, TYPE_MENU()))
-
-proc MENU_CLASS*(klass: pointer): PMenuClass = 
-  result = cast[PMenuClass](CHECK_CLASS_CAST(klass, TYPE_MENU()))
-
-proc IS_MENU*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU())
-
-proc IS_MENU_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU())
-
-proc MENU_GET_CLASS*(obj: pointer): PMenuClass = 
-  result = cast[PMenuClass](CHECK_GET_CLASS(obj, TYPE_MENU()))
-
-proc needs_destruction_ref_count*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_needs_destruction_ref_count) shr
-      bp_TGtkMenu_needs_destruction_ref_count
-
-proc set_needs_destruction_ref_count*(a: PMenu, 
-                                      `needs_destruction_ref_count`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`needs_destruction_ref_count` shl
-      bp_TGtkMenu_needs_destruction_ref_count) and
-      bm_TGtkMenu_needs_destruction_ref_count)
-
-proc torn_off*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_torn_off) shr bp_TGtkMenu_torn_off
-
-proc set_torn_off*(a: PMenu, `torn_off`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`torn_off` shl bp_TGtkMenu_torn_off) and bm_TGtkMenu_torn_off)
-
-proc tearoff_active*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_tearoff_active) shr
-      bp_TGtkMenu_tearoff_active
-
-proc set_tearoff_active*(a: PMenu, `tearoff_active`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`tearoff_active` shl bp_TGtkMenu_tearoff_active) and
-      bm_TGtkMenu_tearoff_active)
-
-proc scroll_fast*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_scroll_fast) shr
-      bp_TGtkMenu_scroll_fast
-
-proc set_scroll_fast*(a: PMenu, `scroll_fast`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`scroll_fast` shl bp_TGtkMenu_scroll_fast) and
-      bm_TGtkMenu_scroll_fast)
-
-proc upper_arrow_visible*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_upper_arrow_visible) shr
-      bp_TGtkMenu_upper_arrow_visible
-
-proc set_upper_arrow_visible*(a: PMenu, `upper_arrow_visible`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`upper_arrow_visible` shl bp_TGtkMenu_upper_arrow_visible) and
-      bm_TGtkMenu_upper_arrow_visible)
-
-proc lower_arrow_visible*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_lower_arrow_visible) shr
-      bp_TGtkMenu_lower_arrow_visible
-
-proc set_lower_arrow_visible*(a: PMenu, `lower_arrow_visible`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`lower_arrow_visible` shl bp_TGtkMenu_lower_arrow_visible) and
-      bm_TGtkMenu_lower_arrow_visible)
-
-proc upper_arrow_prelight*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_upper_arrow_prelight) shr
-      bp_TGtkMenu_upper_arrow_prelight
-
-proc set_upper_arrow_prelight*(a: PMenu, `upper_arrow_prelight`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`upper_arrow_prelight` shl bp_TGtkMenu_upper_arrow_prelight) and
-      bm_TGtkMenu_upper_arrow_prelight)
-
-proc lower_arrow_prelight*(a: PMenu): guint = 
-  result = (a.Menuflag0 and bm_TGtkMenu_lower_arrow_prelight) shr
-      bp_TGtkMenu_lower_arrow_prelight
-
-proc set_lower_arrow_prelight*(a: PMenu, `lower_arrow_prelight`: guint) = 
-  a.Menuflag0 = a.Menuflag0 or
-      (int16(`lower_arrow_prelight` shl bp_TGtkMenu_lower_arrow_prelight) and
-      bm_TGtkMenu_lower_arrow_prelight)
-
-proc menu_append*(menu, child: PWidget) = 
-  append(cast[PMenuShell](menu), child)
-
-proc menu_prepend*(menu, child: PWidget) = 
-  prepend(cast[PMenuShell](menu), child)
-
-proc menu_insert*(menu, child: PWidget, pos: gint) = 
-  insert(cast[PMenuShell](menu), child, pos)
-
-proc TYPE_ENTRY*(): GType = 
-  result = entry_get_type()
-
-proc ENTRY*(obj: pointer): PEntry = 
-  result = cast[PEntry](CHECK_CAST(obj, TYPE_ENTRY()))
-
-proc ENTRY_CLASS*(klass: pointer): PEntryClass = 
-  result = cast[PEntryClass](CHECK_CLASS_CAST(klass, TYPE_ENTRY()))
-
-proc IS_ENTRY*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_ENTRY())
-
-proc IS_ENTRY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ENTRY())
-
-proc ENTRY_GET_CLASS*(obj: pointer): PEntryClass = 
-  result = cast[PEntryClass](CHECK_GET_CLASS(obj, TYPE_ENTRY()))
-
-proc editable*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_editable) shr bp_TGtkEntry_editable
-
-proc set_editable*(a: PEntry, `editable`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`editable` shl bp_TGtkEntry_editable) and bm_TGtkEntry_editable)
-
-proc visible*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_visible) shr bp_TGtkEntry_visible
-
-proc set_visible*(a: PEntry, `visible`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`visible` shl bp_TGtkEntry_visible) and bm_TGtkEntry_visible)
-
-proc overwrite_mode*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_overwrite_mode) shr
-      bp_TGtkEntry_overwrite_mode
-
-proc set_overwrite_mode*(a: PEntry, `overwrite_mode`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`overwrite_mode` shl bp_TGtkEntry_overwrite_mode) and
-      bm_TGtkEntry_overwrite_mode)
-
-proc in_drag*(a: PEntry): guint = 
-  result = (a.Entryflag0 and bm_TGtkEntry_in_drag) shr bp_TGtkEntry_in_drag
-
-proc set_in_drag*(a: PEntry, `in_drag`: guint) = 
-  a.Entryflag0 = a.Entryflag0 or
-      (int16(`in_drag` shl bp_TGtkEntry_in_drag) and bm_TGtkEntry_in_drag)
-
-proc cache_includes_preedit*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_cache_includes_preedit) shr
-      bp_TGtkEntry_cache_includes_preedit
-
-proc set_cache_includes_preedit*(a: PEntry, `cache_includes_preedit`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`cache_includes_preedit` shl bp_TGtkEntry_cache_includes_preedit) and
-      bm_TGtkEntry_cache_includes_preedit)
-
-proc need_im_reset*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_need_im_reset) shr
-      bp_TGtkEntry_need_im_reset
-
-proc set_need_im_reset*(a: PEntry, `need_im_reset`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`need_im_reset` shl bp_TGtkEntry_need_im_reset) and
-      bm_TGtkEntry_need_im_reset)
-
-proc has_frame*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_has_frame) shr bp_TGtkEntry_has_frame
-
-proc set_has_frame*(a: PEntry, `has_frame`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`has_frame` shl bp_TGtkEntry_has_frame) and
-      bm_TGtkEntry_has_frame)
-
-proc activates_default*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_activates_default) shr
-      bp_TGtkEntry_activates_default
-
-proc set_activates_default*(a: PEntry, `activates_default`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`activates_default` shl bp_TGtkEntry_activates_default) and
-      bm_TGtkEntry_activates_default)
-
-proc cursor_visible*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_cursor_visible) shr
-      bp_TGtkEntry_cursor_visible
-
-proc set_cursor_visible*(a: PEntry, `cursor_visible`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`cursor_visible` shl bp_TGtkEntry_cursor_visible) and
-      bm_TGtkEntry_cursor_visible)
-
-proc in_click*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_in_click) shr bp_TGtkEntry_in_click
-
-proc set_in_click*(a: PEntry, `in_click`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`in_click` shl bp_TGtkEntry_in_click) and bm_TGtkEntry_in_click)
-
-proc is_cell_renderer*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_is_cell_renderer) shr
-      bp_TGtkEntry_is_cell_renderer
-
-proc set_is_cell_renderer*(a: PEntry, `is_cell_renderer`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`is_cell_renderer` shl bp_TGtkEntry_is_cell_renderer) and
-      bm_TGtkEntry_is_cell_renderer)
-
-proc editing_canceled*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_editing_canceled) shr
-      bp_TGtkEntry_editing_canceled
-
-proc set_editing_canceled*(a: PEntry, `editing_canceled`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`editing_canceled` shl bp_TGtkEntry_editing_canceled) and
-      bm_TGtkEntry_editing_canceled)
-
-proc mouse_cursor_obscured*(a: PEntry): guint = 
-  result = (a.flag1 and bm_TGtkEntry_mouse_cursor_obscured) shr
-      bp_TGtkEntry_mouse_cursor_obscured
-
-proc set_mouse_cursor_obscured*(a: PEntry, `mouse_cursor_obscured`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`mouse_cursor_obscured` shl bp_TGtkEntry_mouse_cursor_obscured) and
-      bm_TGtkEntry_mouse_cursor_obscured)
-
-proc TYPE_EVENT_BOX*(): GType = 
-  result = event_box_get_type()
-
-proc EVENT_BOX*(obj: pointer): PEventBox = 
-  result = cast[PEventBox](CHECK_CAST(obj, TYPE_EVENT_BOX()))
-
-proc EVENT_BOX_CLASS*(klass: pointer): PEventBoxClass = 
-  result = cast[PEventBoxClass](CHECK_CLASS_CAST(klass, TYPE_EVENT_BOX()))
-
-proc IS_EVENT_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_EVENT_BOX())
-
-proc IS_EVENT_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_EVENT_BOX())
-
-proc EVENT_BOX_GET_CLASS*(obj: pointer): PEventBoxClass = 
-  result = cast[PEventBoxClass](CHECK_GET_CLASS(obj, TYPE_EVENT_BOX()))
-
-proc TYPE_FILE_SELECTION*(): GType = 
-  result = file_selection_get_type()
-
-proc FILE_SELECTION*(obj: pointer): PFileSelection = 
-  result = cast[PFileSelection](CHECK_CAST(obj, TYPE_FILE_SELECTION()))
-
-proc FILE_SELECTION_CLASS*(klass: pointer): PFileSelectionClass = 
-  result = cast[PFileSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FILE_SELECTION()))
-
-proc IS_FILE_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FILE_SELECTION())
-
-proc IS_FILE_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FILE_SELECTION())
-
-proc FILE_SELECTION_GET_CLASS*(obj: pointer): PFileSelectionClass = 
-  result = cast[PFileSelectionClass](CHECK_GET_CLASS(obj, TYPE_FILE_SELECTION()))
-
-proc TYPE_FIXED*(): GType = 
-  result = fixed_get_type()
-
-proc FIXED*(obj: pointer): PFixed = 
-  result = cast[PFixed](CHECK_CAST(obj, TYPE_FIXED()))
-
-proc FIXED_CLASS*(klass: pointer): PFixedClass = 
-  result = cast[PFixedClass](CHECK_CLASS_CAST(klass, TYPE_FIXED()))
-
-proc IS_FIXED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FIXED())
-
-proc IS_FIXED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FIXED())
-
-proc FIXED_GET_CLASS*(obj: pointer): PFixedClass = 
-  result = cast[PFixedClass](CHECK_GET_CLASS(obj, TYPE_FIXED()))
-
-proc TYPE_FONT_SELECTION*(): GType = 
-  result = font_selection_get_type()
-
-proc FONT_SELECTION*(obj: pointer): PFontSelection = 
-  result = cast[PFontSelection](CHECK_CAST(obj, TYPE_FONT_SELECTION()))
-
-proc FONT_SELECTION_CLASS*(klass: pointer): PFontSelectionClass = 
-  result = cast[PFontSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_SELECTION()))
-
-proc IS_FONT_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FONT_SELECTION())
-
-proc IS_FONT_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FONT_SELECTION())
-
-proc FONT_SELECTION_GET_CLASS*(obj: pointer): PFontSelectionClass = 
-  result = cast[PFontSelectionClass](CHECK_GET_CLASS(obj, TYPE_FONT_SELECTION()))
-
-proc TYPE_FONT_SELECTION_DIALOG*(): GType = 
-  result = font_selection_dialog_get_type()
-
-proc FONT_SELECTION_DIALOG*(obj: pointer): PFontSelectionDialog = 
-  result = cast[PFontSelectionDialog](CHECK_CAST(obj, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc FONT_SELECTION_DIALOG_CLASS*(klass: pointer): PFontSelectionDialogClass = 
-  result = cast[PFontSelectionDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc IS_FONT_SELECTION_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_FONT_SELECTION_DIALOG())
-
-proc IS_FONT_SELECTION_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_FONT_SELECTION_DIALOG())
-
-proc FONT_SELECTION_DIALOG_GET_CLASS*(obj: pointer): PFontSelectionDialogClass = 
-  result = cast[PFontSelectionDialogClass](CHECK_GET_CLASS(obj, 
-      TYPE_FONT_SELECTION_DIALOG()))
-
-proc TYPE_GAMMA_CURVE*(): GType = 
-  result = gamma_curve_get_type()
-
-proc GAMMA_CURVE*(obj: pointer): PGammaCurve = 
-  result = cast[PGammaCurve](CHECK_CAST(obj, TYPE_GAMMA_CURVE()))
-
-proc GAMMA_CURVE_CLASS*(klass: pointer): PGammaCurveClass = 
-  result = cast[PGammaCurveClass](CHECK_CLASS_CAST(klass, TYPE_GAMMA_CURVE()))
-
-proc IS_GAMMA_CURVE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_GAMMA_CURVE())
-
-proc IS_GAMMA_CURVE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_GAMMA_CURVE())
-
-proc GAMMA_CURVE_GET_CLASS*(obj: pointer): PGammaCurveClass = 
-  result = cast[PGammaCurveClass](CHECK_GET_CLASS(obj, TYPE_GAMMA_CURVE()))
-
-proc TYPE_HANDLE_BOX*(): GType = 
-  result = handle_box_get_type()
-
-proc HANDLE_BOX*(obj: pointer): PHandleBox = 
-  result = cast[PHandleBox](CHECK_CAST(obj, TYPE_HANDLE_BOX()))
-
-proc HANDLE_BOX_CLASS*(klass: pointer): PHandleBoxClass = 
-  result = cast[PHandleBoxClass](CHECK_CLASS_CAST(klass, TYPE_HANDLE_BOX()))
-
-proc IS_HANDLE_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HANDLE_BOX())
-
-proc IS_HANDLE_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HANDLE_BOX())
-
-proc HANDLE_BOX_GET_CLASS*(obj: pointer): PHandleBoxClass = 
-  result = cast[PHandleBoxClass](CHECK_GET_CLASS(obj, TYPE_HANDLE_BOX()))
-
-proc handle_position*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_handle_position) shr
-      bp_TGtkHandleBox_handle_position
-
-proc set_handle_position*(a: PHandleBox, `handle_position`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`handle_position` shl bp_TGtkHandleBox_handle_position) and
-      bm_TGtkHandleBox_handle_position)
-
-proc float_window_mapped*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_float_window_mapped) shr
-      bp_TGtkHandleBox_float_window_mapped
-
-proc set_float_window_mapped*(a: PHandleBox, `float_window_mapped`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`float_window_mapped` shl bp_TGtkHandleBox_float_window_mapped) and
-      bm_TGtkHandleBox_float_window_mapped)
-
-proc child_detached*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_child_detached) shr
-      bp_TGtkHandleBox_child_detached
-
-proc set_child_detached*(a: PHandleBox, `child_detached`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`child_detached` shl bp_TGtkHandleBox_child_detached) and
-      bm_TGtkHandleBox_child_detached)
-
-proc in_drag*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_in_drag) shr
-      bp_TGtkHandleBox_in_drag
-
-proc set_in_drag*(a: PHandleBox, `in_drag`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`in_drag` shl bp_TGtkHandleBox_in_drag) and
-      bm_TGtkHandleBox_in_drag)
-
-proc shrink_on_detach*(a: PHandleBox): guint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_shrink_on_detach) shr
-      bp_TGtkHandleBox_shrink_on_detach
-
-proc set_shrink_on_detach*(a: PHandleBox, `shrink_on_detach`: guint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`shrink_on_detach` shl bp_TGtkHandleBox_shrink_on_detach) and
-      bm_TGtkHandleBox_shrink_on_detach)
-
-proc snap_edge*(a: PHandleBox): gint = 
-  result = (a.HandleBoxflag0 and bm_TGtkHandleBox_snap_edge) shr
-      bp_TGtkHandleBox_snap_edge
-
-proc set_snap_edge*(a: PHandleBox, `snap_edge`: gint) = 
-  a.HandleBoxflag0 = a.HandleBoxflag0 or
-      (int16(`snap_edge` shl bp_TGtkHandleBox_snap_edge) and
-      bm_TGtkHandleBox_snap_edge)
-
-proc TYPE_PANED*(): GType = 
-  result = paned_get_type()
-
-proc PANED*(obj: pointer): PPaned = 
-  result = cast[PPaned](CHECK_CAST(obj, TYPE_PANED()))
-
-proc PANED_CLASS*(klass: pointer): PPanedClass = 
-  result = cast[PPanedClass](CHECK_CLASS_CAST(klass, TYPE_PANED()))
-
-proc IS_PANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PANED())
-
-proc IS_PANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PANED())
-
-proc PANED_GET_CLASS*(obj: pointer): PPanedClass = 
-  result = cast[PPanedClass](CHECK_GET_CLASS(obj, TYPE_PANED()))
-
-proc position_set*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_position_set) shr
-      bp_TGtkPaned_position_set
-
-proc set_position_set*(a: PPaned, `position_set`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`position_set` shl bp_TGtkPaned_position_set) and
-      bm_TGtkPaned_position_set)
-
-proc in_drag*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_in_drag) shr bp_TGtkPaned_in_drag
-
-proc set_in_drag*(a: PPaned, `in_drag`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`in_drag` shl bp_TGtkPaned_in_drag) and bm_TGtkPaned_in_drag)
-
-proc child1_shrink*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child1_shrink) shr
-      bp_TGtkPaned_child1_shrink
-
-proc set_child1_shrink*(a: PPaned, `child1_shrink`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child1_shrink` shl bp_TGtkPaned_child1_shrink) and
-      bm_TGtkPaned_child1_shrink)
-
-proc child1_resize*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child1_resize) shr
-      bp_TGtkPaned_child1_resize
-
-proc set_child1_resize*(a: PPaned, `child1_resize`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child1_resize` shl bp_TGtkPaned_child1_resize) and
-      bm_TGtkPaned_child1_resize)
-
-proc child2_shrink*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child2_shrink) shr
-      bp_TGtkPaned_child2_shrink
-
-proc set_child2_shrink*(a: PPaned, `child2_shrink`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child2_shrink` shl bp_TGtkPaned_child2_shrink) and
-      bm_TGtkPaned_child2_shrink)
-
-proc child2_resize*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_child2_resize) shr
-      bp_TGtkPaned_child2_resize
-
-proc set_child2_resize*(a: PPaned, `child2_resize`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`child2_resize` shl bp_TGtkPaned_child2_resize) and
-      bm_TGtkPaned_child2_resize)
-
-proc orientation*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_orientation) shr
-      bp_TGtkPaned_orientation
-
-proc set_orientation*(a: PPaned, `orientation`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`orientation` shl bp_TGtkPaned_orientation) and
-      bm_TGtkPaned_orientation)
-
-proc in_recursion*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_in_recursion) shr
-      bp_TGtkPaned_in_recursion
-
-proc set_in_recursion*(a: PPaned, `in_recursion`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`in_recursion` shl bp_TGtkPaned_in_recursion) and
-      bm_TGtkPaned_in_recursion)
-
-proc handle_prelit*(a: PPaned): guint = 
-  result = (a.Panedflag0 and bm_TGtkPaned_handle_prelit) shr
-      bp_TGtkPaned_handle_prelit
-
-proc set_handle_prelit*(a: PPaned, `handle_prelit`: guint) = 
-  a.Panedflag0 = a.Panedflag0 or
-      (int16(`handle_prelit` shl bp_TGtkPaned_handle_prelit) and
-      bm_TGtkPaned_handle_prelit)
-
-proc paned_gutter_size*(p: pointer, s: gint) = 
-  if (p != nil) and (s != 0'i32): nil
-  
-proc paned_set_gutter_size*(p: pointer, s: gint) = 
-  if (p != nil) and (s != 0'i32): nil
-  
-proc TYPE_HBUTTON_BOX*(): GType = 
-  result = hbutton_box_get_type()
-
-proc HBUTTON_BOX*(obj: pointer): PHButtonBox = 
-  result = cast[PHButtonBox](CHECK_CAST(obj, TYPE_HBUTTON_BOX()))
-
-proc HBUTTON_BOX_CLASS*(klass: pointer): PHButtonBoxClass = 
-  result = cast[PHButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_HBUTTON_BOX()))
-
-proc IS_HBUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HBUTTON_BOX())
-
-proc IS_HBUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HBUTTON_BOX())
-
-proc HBUTTON_BOX_GET_CLASS*(obj: pointer): PHButtonBoxClass = 
-  result = cast[PHButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_HBUTTON_BOX()))
-
-proc TYPE_HPANED*(): GType = 
-  result = hpaned_get_type()
-
-proc HPANED*(obj: pointer): PHPaned = 
-  result = cast[PHPaned](CHECK_CAST(obj, TYPE_HPANED()))
-
-proc HPANED_CLASS*(klass: pointer): PHPanedClass = 
-  result = cast[PHPanedClass](CHECK_CLASS_CAST(klass, TYPE_HPANED()))
-
-proc IS_HPANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HPANED())
-
-proc IS_HPANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HPANED())
-
-proc HPANED_GET_CLASS*(obj: pointer): PHPanedClass = 
-  result = cast[PHPanedClass](CHECK_GET_CLASS(obj, TYPE_HPANED()))
-
-proc TYPE_RULER*(): GType = 
-  result = ruler_get_type()
-
-proc RULER*(obj: pointer): PRuler = 
-  result = cast[PRuler](CHECK_CAST(obj, TYPE_RULER()))
-
-proc RULER_CLASS*(klass: pointer): PRulerClass = 
-  result = cast[PRulerClass](CHECK_CLASS_CAST(klass, TYPE_RULER()))
-
-proc IS_RULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RULER())
-
-proc IS_RULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RULER())
-
-proc RULER_GET_CLASS*(obj: pointer): PRulerClass = 
-  result = cast[PRulerClass](CHECK_GET_CLASS(obj, TYPE_RULER()))
-
-proc TYPE_HRULER*(): GType = 
-  result = hruler_get_type()
-
-proc HRULER*(obj: pointer): PHRuler = 
-  result = cast[PHRuler](CHECK_CAST(obj, TYPE_HRULER()))
-
-proc HRULER_CLASS*(klass: pointer): PHRulerClass = 
-  result = cast[PHRulerClass](CHECK_CLASS_CAST(klass, TYPE_HRULER()))
-
-proc IS_HRULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HRULER())
-
-proc IS_HRULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HRULER())
-
-proc HRULER_GET_CLASS*(obj: pointer): PHRulerClass = 
-  result = cast[PHRulerClass](CHECK_GET_CLASS(obj, TYPE_HRULER()))
-
-proc TYPE_SETTINGS*(): GType = 
-  result = settings_get_type()
-
-proc SETTINGS*(obj: pointer): PSettings = 
-  result = cast[PSettings](CHECK_CAST(obj, TYPE_SETTINGS()))
-
-proc SETTINGS_CLASS*(klass: pointer): PSettingsClass = 
-  result = cast[PSettingsClass](CHECK_CLASS_CAST(klass, TYPE_SETTINGS()))
-
-proc IS_SETTINGS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SETTINGS())
-
-proc IS_SETTINGS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SETTINGS())
-
-proc SETTINGS_GET_CLASS*(obj: pointer): PSettingsClass = 
-  result = cast[PSettingsClass](CHECK_GET_CLASS(obj, TYPE_SETTINGS()))
-
-proc TYPE_RC_STYLE*(): GType = 
-  result = rc_style_get_type()
-
-proc RC_STYLE_get*(anObject: pointer): PRcStyle = 
-  result = cast[PRcStyle](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_RC_STYLE()))
-
-proc RC_STYLE_CLASS*(klass: pointer): PRcStyleClass = 
-  result = cast[PRcStyleClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_RC_STYLE()))
-
-proc IS_RC_STYLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_RC_STYLE())
-
-proc IS_RC_STYLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_RC_STYLE())
-
-proc RC_STYLE_GET_CLASS*(obj: pointer): PRcStyleClass = 
-  result = cast[PRcStyleClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_RC_STYLE()))
-
-proc engine_specified*(a: PRcStyle): guint = 
-  result = (a.RcStyleflag0 and bm_TGtkRcStyle_engine_specified) shr
-      bp_TGtkRcStyle_engine_specified
-
-proc set_engine_specified*(a: PRcStyle, `engine_specified`: guint) = 
-  a.RcStyleflag0 = a.RcStyleflag0 or
-      (int16(`engine_specified` shl bp_TGtkRcStyle_engine_specified) and
-      bm_TGtkRcStyle_engine_specified)
-
-proc TYPE_STYLE*(): GType = 
-  result = style_get_type()
-
-proc STYLE*(anObject: pointer): PStyle = 
-  result = cast[PStyle](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_STYLE()))
-
-proc STYLE_CLASS*(klass: pointer): PStyleClass = 
-  result = cast[PStyleClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_STYLE()))
-
-proc IS_STYLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_STYLE())
-
-proc IS_STYLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_STYLE())
-
-proc STYLE_GET_CLASS*(obj: pointer): PStyleClass = 
-  result = cast[PStyleClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_STYLE()))
-
-proc TYPE_BORDER*(): GType = 
-  result = border_get_type()
-
-proc STYLE_ATTACHED*(style: pointer): bool = 
-  result = ((STYLE(style)).attach_count) > 0'i32
-
-proc apply_default_pixmap*(style: PStyle, window: gdk2.PWindow, 
-                                 state_type: TStateType, area: gdk2.PRectangle, 
-                                 x: gint, y: gint, width: gint, height: gint) = 
-  apply_default_background(style, window, true, state_type, area, x, y, 
-                           width, height)
-
-proc TYPE_RANGE*(): GType = 
-  result = range_get_type()
-
-proc RANGE*(obj: pointer): PRange = 
-  result = cast[PRange](CHECK_CAST(obj, TYPE_RANGE()))
-
-proc RANGE_CLASS*(klass: pointer): PRangeClass = 
-  result = cast[PRangeClass](CHECK_CLASS_CAST(klass, TYPE_RANGE()))
-
-proc IS_RANGE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RANGE())
-
-proc IS_RANGE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RANGE())
-
-proc RANGE_GET_CLASS*(obj: pointer): PRangeClass = 
-  result = cast[PRangeClass](CHECK_GET_CLASS(obj, TYPE_RANGE()))
-
-proc inverted*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_inverted) shr bp_TGtkRange_inverted
-
-proc set_inverted*(a: PRange, `inverted`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`inverted` shl bp_TGtkRange_inverted) and bm_TGtkRange_inverted)
-
-proc flippable*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_flippable) shr
-      bp_TGtkRange_flippable
-
-proc set_flippable*(a: PRange, `flippable`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`flippable` shl bp_TGtkRange_flippable) and
-      bm_TGtkRange_flippable)
-
-proc has_stepper_a*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_a) shr
-      bp_TGtkRange_has_stepper_a
-
-proc set_has_stepper_a*(a: PRange, `has_stepper_a`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_a` shl bp_TGtkRange_has_stepper_a) and
-      bm_TGtkRange_has_stepper_a)
-
-proc has_stepper_b*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_b) shr
-      bp_TGtkRange_has_stepper_b
-
-proc set_has_stepper_b*(a: PRange, `has_stepper_b`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_b` shl bp_TGtkRange_has_stepper_b) and
-      bm_TGtkRange_has_stepper_b)
-
-proc has_stepper_c*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_c) shr
-      bp_TGtkRange_has_stepper_c
-
-proc set_has_stepper_c*(a: PRange, `has_stepper_c`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_c` shl bp_TGtkRange_has_stepper_c) and
-      bm_TGtkRange_has_stepper_c)
-
-proc has_stepper_d*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_has_stepper_d) shr
-      bp_TGtkRange_has_stepper_d
-
-proc set_has_stepper_d*(a: PRange, `has_stepper_d`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`has_stepper_d` shl bp_TGtkRange_has_stepper_d) and
-      bm_TGtkRange_has_stepper_d)
-
-proc need_recalc*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_need_recalc) shr
-      bp_TGtkRange_need_recalc
-
-proc set_need_recalc*(a: PRange, `need_recalc`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`need_recalc` shl bp_TGtkRange_need_recalc) and
-      bm_TGtkRange_need_recalc)
-
-proc slider_size_fixed*(a: PRange): guint = 
-  result = (a.Rangeflag0 and bm_TGtkRange_slider_size_fixed) shr
-      bp_TGtkRange_slider_size_fixed
-
-proc set_slider_size_fixed*(a: PRange, `slider_size_fixed`: guint) = 
-  a.Rangeflag0 = a.Rangeflag0 or
-      (int16(`slider_size_fixed` shl bp_TGtkRange_slider_size_fixed) and
-      bm_TGtkRange_slider_size_fixed)
-
-proc trough_click_forward*(a: PRange): guint = 
-  result = (a.flag1 and bm_TGtkRange_trough_click_forward) shr
-      bp_TGtkRange_trough_click_forward
-
-proc set_trough_click_forward*(a: PRange, `trough_click_forward`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`trough_click_forward` shl bp_TGtkRange_trough_click_forward) and
-      bm_TGtkRange_trough_click_forward)
-
-proc update_pending*(a: PRange): guint = 
-  result = (a.flag1 and bm_TGtkRange_update_pending) shr
-      bp_TGtkRange_update_pending
-
-proc set_update_pending*(a: PRange, `update_pending`: guint) = 
-  a.flag1 = a.flag1 or
-      (int16(`update_pending` shl bp_TGtkRange_update_pending) and
-      bm_TGtkRange_update_pending)
-
-proc TYPE_SCALE*(): GType = 
-  result = scale_get_type()
-
-proc SCALE*(obj: pointer): PScale = 
-  result = cast[PScale](CHECK_CAST(obj, TYPE_SCALE()))
-
-proc SCALE_CLASS*(klass: pointer): PScaleClass = 
-  result = cast[PScaleClass](CHECK_CLASS_CAST(klass, TYPE_SCALE()))
-
-proc IS_SCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCALE())
-
-proc IS_SCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCALE())
-
-proc SCALE_GET_CLASS*(obj: pointer): PScaleClass = 
-  result = cast[PScaleClass](CHECK_GET_CLASS(obj, TYPE_SCALE()))
-
-proc draw_value*(a: PScale): guint = 
-  result = (a.Scaleflag0 and bm_TGtkScale_draw_value) shr
-      bp_TGtkScale_draw_value
-
-proc set_draw_value*(a: PScale, `draw_value`: guint) = 
-  a.Scaleflag0 = a.Scaleflag0 or
-      (int16(`draw_value` shl bp_TGtkScale_draw_value) and
-      bm_TGtkScale_draw_value)
-
-proc value_pos*(a: PScale): guint = 
-  result = (a.Scaleflag0 and bm_TGtkScale_value_pos) shr
-      bp_TGtkScale_value_pos
-
-proc set_value_pos*(a: PScale, `value_pos`: guint) = 
-  a.Scaleflag0 = a.Scaleflag0 or
-      (int16(`value_pos` shl bp_TGtkScale_value_pos) and
-      bm_TGtkScale_value_pos)
-
-proc TYPE_HSCALE*(): GType = 
-  result = hscale_get_type()
-
-proc HSCALE*(obj: pointer): PHScale = 
-  result = cast[PHScale](CHECK_CAST(obj, TYPE_HSCALE()))
-
-proc HSCALE_CLASS*(klass: pointer): PHScaleClass = 
-  result = cast[PHScaleClass](CHECK_CLASS_CAST(klass, TYPE_HSCALE()))
-
-proc IS_HSCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSCALE())
-
-proc IS_HSCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSCALE())
-
-proc HSCALE_GET_CLASS*(obj: pointer): PHScaleClass = 
-  result = cast[PHScaleClass](CHECK_GET_CLASS(obj, TYPE_HSCALE()))
-
-proc TYPE_SCROLLBAR*(): GType = 
-  result = scrollbar_get_type()
-
-proc SCROLLBAR*(obj: pointer): PScrollbar = 
-  result = cast[PScrollbar](CHECK_CAST(obj, TYPE_SCROLLBAR()))
-
-proc SCROLLBAR_CLASS*(klass: pointer): PScrollbarClass = 
-  result = cast[PScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_SCROLLBAR()))
-
-proc IS_SCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCROLLBAR())
-
-proc IS_SCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCROLLBAR())
-
-proc SCROLLBAR_GET_CLASS*(obj: pointer): PScrollbarClass = 
-  result = cast[PScrollbarClass](CHECK_GET_CLASS(obj, TYPE_SCROLLBAR()))
-
-proc TYPE_HSCROLLBAR*(): GType = 
-  result = hscrollbar_get_type()
-
-proc HSCROLLBAR*(obj: pointer): PHScrollbar = 
-  result = cast[PHScrollbar](CHECK_CAST(obj, TYPE_HSCROLLBAR()))
-
-proc HSCROLLBAR_CLASS*(klass: pointer): PHScrollbarClass = 
-  result = cast[PHScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_HSCROLLBAR()))
-
-proc IS_HSCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSCROLLBAR())
-
-proc IS_HSCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSCROLLBAR())
-
-proc HSCROLLBAR_GET_CLASS*(obj: pointer): PHScrollbarClass = 
-  result = cast[PHScrollbarClass](CHECK_GET_CLASS(obj, TYPE_HSCROLLBAR()))
-
-proc TYPE_SEPARATOR*(): GType = 
-  result = separator_get_type()
-
-proc SEPARATOR*(obj: pointer): PSeparator = 
-  result = cast[PSeparator](CHECK_CAST(obj, TYPE_SEPARATOR()))
-
-proc SEPARATOR_CLASS*(klass: pointer): PSeparatorClass = 
-  result = cast[PSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_SEPARATOR()))
-
-proc IS_SEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SEPARATOR())
-
-proc IS_SEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SEPARATOR())
-
-proc SEPARATOR_GET_CLASS*(obj: pointer): PSeparatorClass = 
-  result = cast[PSeparatorClass](CHECK_GET_CLASS(obj, TYPE_SEPARATOR()))
-
-proc TYPE_HSEPARATOR*(): GType = 
-  result = hseparator_get_type()
-
-proc HSEPARATOR*(obj: pointer): PHSeparator = 
-  result = cast[PHSeparator](CHECK_CAST(obj, TYPE_HSEPARATOR()))
-
-proc HSEPARATOR_CLASS*(klass: pointer): PHSeparatorClass = 
-  result = cast[PHSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_HSEPARATOR()))
-
-proc IS_HSEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_HSEPARATOR())
-
-proc IS_HSEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_HSEPARATOR())
-
-proc HSEPARATOR_GET_CLASS*(obj: pointer): PHSeparatorClass = 
-  result = cast[PHSeparatorClass](CHECK_GET_CLASS(obj, TYPE_HSEPARATOR()))
-
-proc TYPE_ICON_FACTORY*(): GType = 
-  result = icon_factory_get_type()
-
-proc ICON_FACTORY*(anObject: pointer): PIconFactory = 
-  result = cast[PIconFactory](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_ICON_FACTORY()))
-
-proc ICON_FACTORY_CLASS*(klass: pointer): PIconFactoryClass = 
-  result = cast[PIconFactoryClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_ICON_FACTORY()))
-
-proc IS_ICON_FACTORY*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_ICON_FACTORY())
-
-proc IS_ICON_FACTORY_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_ICON_FACTORY())
-
-proc ICON_FACTORY_GET_CLASS*(obj: pointer): PIconFactoryClass = 
-  result = cast[PIconFactoryClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_ICON_FACTORY()))
-
-proc TYPE_ICON_SET*(): GType = 
-  result = icon_set_get_type()
-
-proc TYPE_ICON_SOURCE*(): GType = 
-  result = icon_source_get_type()
-
-proc TYPE_IMAGE*(): GType = 
-  result = gtk2.image_get_type()
-
-proc IMAGE*(obj: pointer): PImage = 
-  result = cast[PImage](CHECK_CAST(obj, gtk2.TYPE_IMAGE()))
-
-proc IMAGE_CLASS*(klass: pointer): PImageClass = 
-  result = cast[PImageClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_IMAGE()))
-
-proc IS_IMAGE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_IMAGE())
-
-proc IS_IMAGE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_IMAGE())
-
-proc IMAGE_GET_CLASS*(obj: pointer): PImageClass = 
-  result = cast[PImageClass](CHECK_GET_CLASS(obj, gtk2.TYPE_IMAGE()))
-
-proc TYPE_IMAGE_MENU_ITEM*(): GType = 
-  result = image_menu_item_get_type()
-
-proc IMAGE_MENU_ITEM*(obj: pointer): PImageMenuItem = 
-  result = cast[PImageMenuItem](CHECK_CAST(obj, TYPE_IMAGE_MENU_ITEM()))
-
-proc IMAGE_MENU_ITEM_CLASS*(klass: pointer): PImageMenuItemClass = 
-  result = cast[PImageMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IMAGE_MENU_ITEM()))
-
-proc IS_IMAGE_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IMAGE_MENU_ITEM())
-
-proc IS_IMAGE_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IMAGE_MENU_ITEM())
-
-proc IMAGE_MENU_ITEM_GET_CLASS*(obj: pointer): PImageMenuItemClass = 
-  result = cast[PImageMenuItemClass](CHECK_GET_CLASS(obj, TYPE_IMAGE_MENU_ITEM()))
-
-proc TYPE_IM_CONTEXT_SIMPLE*(): GType = 
-  result = im_context_simple_get_type()
-
-proc IM_CONTEXT_SIMPLE*(obj: pointer): PIMContextSimple = 
-  result = cast[PIMContextSimple](CHECK_CAST(obj, TYPE_IM_CONTEXT_SIMPLE()))
-
-proc IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): PIMContextSimpleClass = 
-  result = cast[PIMContextSimpleClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IM_CONTEXT_SIMPLE()))
-
-proc IS_IM_CONTEXT_SIMPLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_CONTEXT_SIMPLE())
-
-proc IS_IM_CONTEXT_SIMPLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_CONTEXT_SIMPLE())
-
-proc IM_CONTEXT_SIMPLE_GET_CLASS*(obj: pointer): PIMContextSimpleClass = 
-  result = cast[PIMContextSimpleClass](CHECK_GET_CLASS(obj, 
-      TYPE_IM_CONTEXT_SIMPLE()))
-
-proc in_hex_sequence*(a: PIMContextSimple): guint = 
-  result = (a.IMContextSimpleflag0 and bm_TGtkIMContextSimple_in_hex_sequence) shr
-      bp_TGtkIMContextSimple_in_hex_sequence
-
-proc set_in_hex_sequence*(a: PIMContextSimple, `in_hex_sequence`: guint) = 
-  a.IMContextSimpleflag0 = a.IMContextSimpleflag0 or
-      (int16(`in_hex_sequence` shl bp_TGtkIMContextSimple_in_hex_sequence) and
-      bm_TGtkIMContextSimple_in_hex_sequence)
-
-proc TYPE_IM_MULTICONTEXT*(): GType = 
-  result = im_multicontext_get_type()
-
-proc IM_MULTICONTEXT*(obj: pointer): PIMMulticontext = 
-  result = cast[PIMMulticontext](CHECK_CAST(obj, TYPE_IM_MULTICONTEXT()))
-
-proc IM_MULTICONTEXT_CLASS*(klass: pointer): PIMMulticontextClass = 
-  result = cast[PIMMulticontextClass](CHECK_CLASS_CAST(klass, 
-      TYPE_IM_MULTICONTEXT()))
-
-proc IS_IM_MULTICONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_IM_MULTICONTEXT())
-
-proc IS_IM_MULTICONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_IM_MULTICONTEXT())
-
-proc IM_MULTICONTEXT_GET_CLASS*(obj: pointer): PIMMulticontextClass = 
-  result = cast[PIMMulticontextClass](CHECK_GET_CLASS(obj, 
-      TYPE_IM_MULTICONTEXT()))
-
-proc TYPE_INPUT_DIALOG*(): GType = 
-  result = input_dialog_get_type()
-
-proc INPUT_DIALOG*(obj: pointer): PInputDialog = 
-  result = cast[PInputDialog](CHECK_CAST(obj, TYPE_INPUT_DIALOG()))
-
-proc INPUT_DIALOG_CLASS*(klass: pointer): PInputDialogClass = 
-  result = cast[PInputDialogClass](CHECK_CLASS_CAST(klass, TYPE_INPUT_DIALOG()))
-
-proc IS_INPUT_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_INPUT_DIALOG())
-
-proc IS_INPUT_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_INPUT_DIALOG())
-
-proc INPUT_DIALOG_GET_CLASS*(obj: pointer): PInputDialogClass = 
-  result = cast[PInputDialogClass](CHECK_GET_CLASS(obj, TYPE_INPUT_DIALOG()))
-
-proc TYPE_INVISIBLE*(): GType = 
-  result = invisible_get_type()
-
-proc INVISIBLE*(obj: pointer): PInvisible = 
-  result = cast[PInvisible](CHECK_CAST(obj, TYPE_INVISIBLE()))
-
-proc INVISIBLE_CLASS*(klass: pointer): PInvisibleClass = 
-  result = cast[PInvisibleClass](CHECK_CLASS_CAST(klass, TYPE_INVISIBLE()))
-
-proc IS_INVISIBLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_INVISIBLE())
-
-proc IS_INVISIBLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_INVISIBLE())
-
-proc INVISIBLE_GET_CLASS*(obj: pointer): PInvisibleClass = 
-  result = cast[PInvisibleClass](CHECK_GET_CLASS(obj, TYPE_INVISIBLE()))
-
-proc TYPE_ITEM_FACTORY*(): GType = 
-  result = item_factory_get_type()
-
-proc ITEM_FACTORY*(anObject: pointer): PItemFactory = 
-  result = cast[PItemFactory](CHECK_CAST(anObject, TYPE_ITEM_FACTORY()))
-
-proc ITEM_FACTORY_CLASS*(klass: pointer): PItemFactoryClass = 
-  result = cast[PItemFactoryClass](CHECK_CLASS_CAST(klass, TYPE_ITEM_FACTORY()))
-
-proc IS_ITEM_FACTORY*(anObject: pointer): bool = 
-  result = CHECK_TYPE(anObject, TYPE_ITEM_FACTORY())
-
-proc IS_ITEM_FACTORY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_ITEM_FACTORY())
-
-proc ITEM_FACTORY_GET_CLASS*(obj: pointer): PItemFactoryClass = 
-  result = cast[PItemFactoryClass](CHECK_GET_CLASS(obj, TYPE_ITEM_FACTORY()))
-
-proc TYPE_LAYOUT*(): GType = 
-  result = gtk2.layout_get_type()
-
-proc LAYOUT*(obj: pointer): PLayout = 
-  result = cast[PLayout](CHECK_CAST(obj, gtk2.TYPE_LAYOUT()))
-
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_LAYOUT()))
-
-proc IS_LAYOUT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_LAYOUT())
-
-proc IS_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_LAYOUT())
-
-proc LAYOUT_GET_CLASS*(obj: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](CHECK_GET_CLASS(obj, gtk2.TYPE_LAYOUT()))
-
-proc TYPE_LIST*(): GType = 
-  result = list_get_type()
-
-proc LIST*(obj: pointer): PList = 
-  result = cast[PList](CHECK_CAST(obj, TYPE_LIST()))
-
-proc LIST_CLASS*(klass: pointer): PListClass = 
-  result = cast[PListClass](CHECK_CLASS_CAST(klass, TYPE_LIST()))
-
-proc IS_LIST*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST())
-
-proc IS_LIST_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST())
-
-proc LIST_GET_CLASS*(obj: pointer): PListClass = 
-  result = cast[PListClass](CHECK_GET_CLASS(obj, TYPE_LIST()))
-
-proc selection_mode*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_selection_mode) shr
-      bp_TGtkList_selection_mode
-
-proc set_selection_mode*(a: PList, `selection_mode`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`selection_mode` shl bp_TGtkList_selection_mode) and
-      bm_TGtkList_selection_mode)
-
-proc drag_selection*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_drag_selection) shr
-      bp_TGtkList_drag_selection
-
-proc set_drag_selection*(a: PList, `drag_selection`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`drag_selection` shl bp_TGtkList_drag_selection) and
-      bm_TGtkList_drag_selection)
-
-proc add_mode*(a: PList): guint = 
-  result = (a.Listflag0 and bm_TGtkList_add_mode) shr bp_TGtkList_add_mode
-
-proc set_add_mode*(a: PList, `add_mode`: guint) = 
-  a.Listflag0 = a.Listflag0 or
-      (int16(`add_mode` shl bp_TGtkList_add_mode) and bm_TGtkList_add_mode)
-
-proc list_item_get_type(): GType{.importc: "gtk_list_item_get_type", cdecl, 
-                                  dynlib: lib.}
-proc TYPE_LIST_ITEM*(): GType = 
-  result = list_item_get_type()
-
-type 
-  TListItem = object of TItem
-  TListItemClass = object of TItemClass
-  PListItem = ptr TListItem
-  PListItemClass = ptr TListItemClass
-
-proc LIST_ITEM*(obj: pointer): PListItem = 
-  result = cast[PListItem](CHECK_CAST(obj, TYPE_LIST_ITEM()))
-
-proc LIST_ITEM_CLASS*(klass: pointer): PListItemClass = 
-  result = cast[PListItemClass](CHECK_CLASS_CAST(klass, TYPE_LIST_ITEM()))
-
-proc IS_LIST_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST_ITEM())
-
-proc IS_LIST_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST_ITEM())
-
-proc LIST_ITEM_GET_CLASS*(obj: pointer): PListItemClass = 
-  #proc gtk_tree_model_get_type(): GType {.importc, cdecl, dynlib: gtklib.}
-  result = cast[PListItemClass](CHECK_GET_CLASS(obj, TYPE_LIST_ITEM()))
-
-proc TYPE_TREE_MODEL*(): GType = 
-  result = tree_model_get_type()
-
-proc TREE_MODEL*(obj: pointer): PTreeModel = 
-  result = cast[PTreeModel](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TREE_MODEL()))
-
-proc IS_TREE_MODEL*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_MODEL())
-
-proc TREE_MODEL_GET_IFACE*(obj: pointer): PTreeModelIface = 
-  result = cast[PTreeModelIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_MODEL()))
-
-proc TYPE_TREE_ITER*(): GType = 
-  result = tree_iter_get_type()
-
-proc TYPE_TREE_PATH*(): GType = 
-  result = tree_path_get_type()
-
-proc tree_path_new_root*(): PTreePath = 
-  result = tree_path_new_first()
-
-proc get_iter_root*(tree_model: PTreeModel, iter: PTreeIter): gboolean = 
-  result = get_iter_first(tree_model, iter)
-
-proc TYPE_TREE_SORTABLE*(): GType = 
-  result = tree_sortable_get_type()
-
-proc TREE_SORTABLE*(obj: pointer): PTreeSortable = 
-  result = cast[PTreeSortable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc TREE_SORTABLE_CLASS*(obj: pointer): PTreeSortableIface = 
-  result = cast[PTreeSortableIface](G_TYPE_CHECK_CLASS_CAST(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc IS_TREE_SORTABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_SORTABLE())
-
-proc TREE_SORTABLE_GET_IFACE*(obj: pointer): PTreeSortableIface = 
-  result = cast[PTreeSortableIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_SORTABLE()))
-
-proc TYPE_TREE_MODEL_SORT*(): GType = 
-  result = tree_model_sort_get_type()
-
-proc TREE_MODEL_SORT*(obj: pointer): PTreeModelSort = 
-  result = cast[PTreeModelSort](CHECK_CAST(obj, TYPE_TREE_MODEL_SORT()))
-
-proc TREE_MODEL_SORT_CLASS*(klass: pointer): PTreeModelSortClass = 
-  result = cast[PTreeModelSortClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_MODEL_SORT()))
-
-proc IS_TREE_MODEL_SORT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_MODEL_SORT())
-
-proc IS_TREE_MODEL_SORT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_MODEL_SORT())
-
-proc TREE_MODEL_SORT_GET_CLASS*(obj: pointer): PTreeModelSortClass = 
-  result = cast[PTreeModelSortClass](CHECK_GET_CLASS(obj, TYPE_TREE_MODEL_SORT()))
-
-proc TYPE_LIST_STORE*(): GType = 
-  result = list_store_get_type()
-
-proc LIST_STORE*(obj: pointer): PListStore = 
-  result = cast[PListStore](CHECK_CAST(obj, TYPE_LIST_STORE()))
-
-proc LIST_STORE_CLASS*(klass: pointer): PListStoreClass = 
-  result = cast[PListStoreClass](CHECK_CLASS_CAST(klass, TYPE_LIST_STORE()))
-
-proc IS_LIST_STORE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_LIST_STORE())
-
-proc IS_LIST_STORE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_LIST_STORE())
-
-proc LIST_STORE_GET_CLASS*(obj: pointer): PListStoreClass = 
-  result = cast[PListStoreClass](CHECK_GET_CLASS(obj, TYPE_LIST_STORE()))
-
-proc columns_dirty*(a: PListStore): guint = 
-  result = (a.ListStoreflag0 and bm_TGtkListStore_columns_dirty) shr
-      bp_TGtkListStore_columns_dirty
-
-proc set_columns_dirty*(a: PListStore, `columns_dirty`: guint) = 
-  a.ListStoreflag0 = a.ListStoreflag0 or
-      (int16(`columns_dirty` shl bp_TGtkListStore_columns_dirty) and
-      bm_TGtkListStore_columns_dirty)
-
-proc TYPE_MENU_BAR*(): GType = 
-  result = menu_bar_get_type()
-
-proc MENU_BAR*(obj: pointer): PMenuBar = 
-  result = cast[PMenuBar](CHECK_CAST(obj, TYPE_MENU_BAR()))
-
-proc MENU_BAR_CLASS*(klass: pointer): PMenuBarClass = 
-  result = cast[PMenuBarClass](CHECK_CLASS_CAST(klass, TYPE_MENU_BAR()))
-
-proc IS_MENU_BAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MENU_BAR())
-
-proc IS_MENU_BAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MENU_BAR())
-
-proc MENU_BAR_GET_CLASS*(obj: pointer): PMenuBarClass = 
-  result = cast[PMenuBarClass](CHECK_GET_CLASS(obj, TYPE_MENU_BAR()))
-
-proc menu_bar_append*(menu, child: PWidget) = 
-  append(cast[PMenuShell](menu), child)
-
-proc menu_bar_prepend*(menu, child: PWidget) = 
-  prepend(cast[PMenuShell](menu), child)
-
-proc menu_bar_insert*(menu, child: PWidget, pos: gint) = 
-  insert(cast[PMenuShell](menu), child, pos)
-
-proc TYPE_MESSAGE_DIALOG*(): GType = 
-  result = message_dialog_get_type()
-
-proc MESSAGE_DIALOG*(obj: pointer): PMessageDialog = 
-  result = cast[PMessageDialog](CHECK_CAST(obj, TYPE_MESSAGE_DIALOG()))
-
-proc MESSAGE_DIALOG_CLASS*(klass: pointer): PMessageDialogClass = 
-  result = cast[PMessageDialogClass](CHECK_CLASS_CAST(klass, 
-      TYPE_MESSAGE_DIALOG()))
-
-proc IS_MESSAGE_DIALOG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_MESSAGE_DIALOG())
-
-proc IS_MESSAGE_DIALOG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_MESSAGE_DIALOG())
-
-proc MESSAGE_DIALOG_GET_CLASS*(obj: pointer): PMessageDialogClass = 
-  result = cast[PMessageDialogClass](CHECK_GET_CLASS(obj, TYPE_MESSAGE_DIALOG()))
-
-proc TYPE_NOTEBOOK*(): GType = 
-  result = notebook_get_type()
-
-proc NOTEBOOK*(obj: pointer): PNotebook = 
-  result = cast[PNotebook](CHECK_CAST(obj, TYPE_NOTEBOOK()))
-
-proc NOTEBOOK_CLASS*(klass: pointer): PNotebookClass = 
-  result = cast[PNotebookClass](CHECK_CLASS_CAST(klass, TYPE_NOTEBOOK()))
-
-proc IS_NOTEBOOK*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_NOTEBOOK())
-
-proc IS_NOTEBOOK_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_NOTEBOOK())
-
-proc NOTEBOOK_GET_CLASS*(obj: pointer): PNotebookClass = 
-  result = cast[PNotebookClass](CHECK_GET_CLASS(obj, TYPE_NOTEBOOK()))
-
-proc show_tabs*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_show_tabs) shr
-      bp_TGtkNotebook_show_tabs
-
-proc set_show_tabs*(a: PNotebook, `show_tabs`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`show_tabs` shl bp_TGtkNotebook_show_tabs) and
-      bm_TGtkNotebook_show_tabs)
-
-proc homogeneous*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_homogeneous) shr
-      bp_TGtkNotebook_homogeneous
-
-proc set_homogeneous*(a: PNotebook, `homogeneous`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`homogeneous` shl bp_TGtkNotebook_homogeneous) and
-      bm_TGtkNotebook_homogeneous)
-
-proc show_border*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_show_border) shr
-      bp_TGtkNotebook_show_border
-
-proc set_show_border*(a: PNotebook, `show_border`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`show_border` shl bp_TGtkNotebook_show_border) and
-      bm_TGtkNotebook_show_border)
-
-proc tab_pos*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_tab_pos) shr
-      bp_TGtkNotebook_tab_pos
-
-proc set_tab_pos*(a: PNotebook, `tab_pos`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`tab_pos` shl bp_TGtkNotebook_tab_pos) and
-      bm_TGtkNotebook_tab_pos)
-
-proc scrollable*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_scrollable) shr
-      bp_TGtkNotebook_scrollable
-
-proc set_scrollable*(a: PNotebook, `scrollable`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`scrollable` shl bp_TGtkNotebook_scrollable) and
-      bm_TGtkNotebook_scrollable)
-
-proc in_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_in_child) shr
-      bp_TGtkNotebook_in_child
-
-proc set_in_child*(a: PNotebook, `in_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`in_child` shl bp_TGtkNotebook_in_child) and
-      bm_TGtkNotebook_in_child)
-
-proc click_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_click_child) shr
-      bp_TGtkNotebook_click_child
-
-proc set_click_child*(a: PNotebook, `click_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`click_child` shl bp_TGtkNotebook_click_child) and
-      bm_TGtkNotebook_click_child)
-
-proc button*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_button) shr
-      bp_TGtkNotebook_button
-
-proc set_button*(a: PNotebook, `button`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`button` shl bp_TGtkNotebook_button) and bm_TGtkNotebook_button)
-
-proc need_timer*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_need_timer) shr
-      bp_TGtkNotebook_need_timer
-
-proc set_need_timer*(a: PNotebook, `need_timer`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`need_timer` shl bp_TGtkNotebook_need_timer) and
-      bm_TGtkNotebook_need_timer)
-
-proc child_has_focus*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_child_has_focus) shr
-      bp_TGtkNotebook_child_has_focus
-
-proc set_child_has_focus*(a: PNotebook, `child_has_focus`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`child_has_focus` shl bp_TGtkNotebook_child_has_focus) and
-      bm_TGtkNotebook_child_has_focus)
-
-proc have_visible_child*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_have_visible_child) shr
-      bp_TGtkNotebook_have_visible_child
-
-proc set_have_visible_child*(a: PNotebook, `have_visible_child`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`have_visible_child` shl bp_TGtkNotebook_have_visible_child) and
-      bm_TGtkNotebook_have_visible_child)
-
-proc focus_out*(a: PNotebook): guint = 
-  result = (a.Notebookflag0 and bm_TGtkNotebook_focus_out) shr
-      bp_TGtkNotebook_focus_out
-
-proc set_focus_out*(a: PNotebook, `focus_out`: guint) = 
-  a.Notebookflag0 = a.Notebookflag0 or
-      (int16(`focus_out` shl bp_TGtkNotebook_focus_out) and
-      bm_TGtkNotebook_focus_out)
-
-proc TYPE_OLD_EDITABLE*(): GType = 
-  result = old_editable_get_type()
-
-proc OLD_EDITABLE*(obj: pointer): POldEditable = 
-  result = cast[POldEditable](CHECK_CAST(obj, TYPE_OLD_EDITABLE()))
-
-proc OLD_EDITABLE_CLASS*(klass: pointer): POldEditableClass = 
-  result = cast[POldEditableClass](CHECK_CLASS_CAST(klass, TYPE_OLD_EDITABLE()))
-
-proc IS_OLD_EDITABLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_OLD_EDITABLE())
-
-proc IS_OLD_EDITABLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_OLD_EDITABLE())
-
-proc OLD_EDITABLE_GET_CLASS*(obj: pointer): POldEditableClass = 
-  result = cast[POldEditableClass](CHECK_GET_CLASS(obj, TYPE_OLD_EDITABLE()))
-
-proc has_selection*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_has_selection) shr
-      bp_TGtkOldEditable_has_selection
-
-proc set_has_selection*(a: POldEditable, `has_selection`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`has_selection` shl bp_TGtkOldEditable_has_selection) and
-      bm_TGtkOldEditable_has_selection)
-
-proc editable*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_editable) shr
-      bp_TGtkOldEditable_editable
-
-proc set_editable*(a: POldEditable, `editable`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`editable` shl bp_TGtkOldEditable_editable) and
-      bm_TGtkOldEditable_editable)
-
-proc visible*(a: POldEditable): guint = 
-  result = (a.OldEditableflag0 and bm_TGtkOldEditable_visible) shr
-      bp_TGtkOldEditable_visible
-
-proc set_visible*(a: POldEditable, `visible`: guint) = 
-  a.OldEditableflag0 = a.OldEditableflag0 or
-      (int16(`visible` shl bp_TGtkOldEditable_visible) and
-      bm_TGtkOldEditable_visible)
-
-proc TYPE_OPTION_MENU*(): GType = 
-  result = option_menu_get_type()
-
-proc OPTION_MENU*(obj: pointer): POptionMenu = 
-  result = cast[POptionMenu](CHECK_CAST(obj, TYPE_OPTION_MENU()))
-
-proc OPTION_MENU_CLASS*(klass: pointer): POptionMenuClass = 
-  result = cast[POptionMenuClass](CHECK_CLASS_CAST(klass, TYPE_OPTION_MENU()))
-
-proc IS_OPTION_MENU*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_OPTION_MENU())
-
-proc IS_OPTION_MENU_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_OPTION_MENU())
-
-proc OPTION_MENU_GET_CLASS*(obj: pointer): POptionMenuClass = 
-  result = cast[POptionMenuClass](CHECK_GET_CLASS(obj, TYPE_OPTION_MENU()))
-
-proc TYPE_PIXMAP*(): GType = 
-  result = gtk2.pixmap_get_type()
-
-proc PIXMAP*(obj: pointer): PPixmap = 
-  result = cast[PPixmap](CHECK_CAST(obj, gtk2.TYPE_PIXMAP()))
-
-proc PIXMAP_CLASS*(klass: pointer): PPixmapClass = 
-  result = cast[PPixmapClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_PIXMAP()))
-
-proc IS_PIXMAP*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_PIXMAP())
-
-proc IS_PIXMAP_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_PIXMAP())
-
-proc PIXMAP_GET_CLASS*(obj: pointer): PPixmapClass = 
-  result = cast[PPixmapClass](CHECK_GET_CLASS(obj, gtk2.TYPE_PIXMAP()))
-
-proc build_insensitive*(a: PPixmap): guint = 
-  result = (a.Pixmapflag0 and bm_TGtkPixmap_build_insensitive) shr
-      bp_TGtkPixmap_build_insensitive
-
-proc set_build_insensitive*(a: PPixmap, `build_insensitive`: guint) = 
-  a.Pixmapflag0 = a.Pixmapflag0 or
-      (int16(`build_insensitive` shl bp_TGtkPixmap_build_insensitive) and
-      bm_TGtkPixmap_build_insensitive)
-
-proc TYPE_PLUG*(): GType = 
-  result = plug_get_type()
-
-proc PLUG*(obj: pointer): PPlug = 
-  result = cast[PPlug](CHECK_CAST(obj, TYPE_PLUG()))
-
-proc PLUG_CLASS*(klass: pointer): PPlugClass = 
-  result = cast[PPlugClass](CHECK_CLASS_CAST(klass, TYPE_PLUG()))
-
-proc IS_PLUG*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PLUG())
-
-proc IS_PLUG_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PLUG())
-
-proc PLUG_GET_CLASS*(obj: pointer): PPlugClass = 
-  result = cast[PPlugClass](CHECK_GET_CLASS(obj, TYPE_PLUG()))
-
-proc same_app*(a: PPlug): guint = 
-  result = (a.Plugflag0 and bm_TGtkPlug_same_app) shr bp_TGtkPlug_same_app
-
-proc set_same_app*(a: PPlug, `same_app`: guint) = 
-  a.Plugflag0 = a.Plugflag0 or
-      (int16(`same_app` shl bp_TGtkPlug_same_app) and bm_TGtkPlug_same_app)
-
-proc TYPE_PREVIEW*(): GType = 
-  result = preview_get_type()
-
-proc PREVIEW*(obj: pointer): PPreview = 
-  result = cast[PPreview](CHECK_CAST(obj, TYPE_PREVIEW()))
-
-proc PREVIEW_CLASS*(klass: pointer): PPreviewClass = 
-  result = cast[PPreviewClass](CHECK_CLASS_CAST(klass, TYPE_PREVIEW()))
-
-proc IS_PREVIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PREVIEW())
-
-proc IS_PREVIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PREVIEW())
-
-proc PREVIEW_GET_CLASS*(obj: pointer): PPreviewClass = 
-  result = cast[PPreviewClass](CHECK_GET_CLASS(obj, TYPE_PREVIEW()))
-
-proc get_type*(a: PPreview): guint = 
-  result = (a.Previewflag0 and bm_TGtkPreview_type) shr bp_TGtkPreview_type
-
-proc set_type*(a: PPreview, `type`: guint) = 
-  a.Previewflag0 = a.Previewflag0 or
-      (int16(`type` shl bp_TGtkPreview_type) and bm_TGtkPreview_type)
-
-proc get_expand*(a: PPreview): guint = 
-  result = (a.Previewflag0 and bm_TGtkPreview_expand) shr
-      bp_TGtkPreview_expand
-
-proc set_expand*(a: PPreview, `expand`: guint) = 
-  a.Previewflag0 = a.Previewflag0 or
-      (int16(`expand` shl bp_TGtkPreview_expand) and bm_TGtkPreview_expand)
-
-proc progress_get_type(): GType{.importc: "gtk_progress_get_type", cdecl, 
-                                 dynlib: lib.}
-proc TYPE_PROGRESS*(): GType = 
-  result = progress_get_type()
-
-proc PROGRESS*(obj: pointer): PProgress = 
-  result = cast[PProgress](CHECK_CAST(obj, TYPE_PROGRESS()))
-
-proc PROGRESS_CLASS*(klass: pointer): PProgressClass = 
-  result = cast[PProgressClass](CHECK_CLASS_CAST(klass, TYPE_PROGRESS()))
-
-proc IS_PROGRESS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PROGRESS())
-
-proc IS_PROGRESS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PROGRESS())
-
-proc PROGRESS_GET_CLASS*(obj: pointer): PProgressClass = 
-  result = cast[PProgressClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS()))
-
-proc show_text*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_show_text) shr
-      bp_TGtkProgress_show_text
-
-proc set_show_text*(a: PProgress, `show_text`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`show_text` shl bp_TGtkProgress_show_text) and
-      bm_TGtkProgress_show_text)
-
-proc activity_mode*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_activity_mode) shr
-      bp_TGtkProgress_activity_mode
-
-proc set_activity_mode*(a: PProgress, `activity_mode`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`activity_mode` shl bp_TGtkProgress_activity_mode) and
-      bm_TGtkProgress_activity_mode)
-
-proc use_text_format*(a: PProgress): guint = 
-  result = (a.Progressflag0 and bm_TGtkProgress_use_text_format) shr
-      bp_TGtkProgress_use_text_format
-
-proc set_use_text_format*(a: PProgress, `use_text_format`: guint) = 
-  a.Progressflag0 = a.Progressflag0 or
-      (int16(`use_text_format` shl bp_TGtkProgress_use_text_format) and
-      bm_TGtkProgress_use_text_format)
-
-proc TYPE_PROGRESS_BAR*(): GType = 
-  result = progress_bar_get_type()
-
-proc PROGRESS_BAR*(obj: pointer): PProgressBar = 
-  result = cast[PProgressBar](CHECK_CAST(obj, TYPE_PROGRESS_BAR()))
-
-proc PROGRESS_BAR_CLASS*(klass: pointer): PProgressBarClass = 
-  result = cast[PProgressBarClass](CHECK_CLASS_CAST(klass, TYPE_PROGRESS_BAR()))
-
-proc IS_PROGRESS_BAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_PROGRESS_BAR())
-
-proc IS_PROGRESS_BAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_PROGRESS_BAR())
-
-proc PROGRESS_BAR_GET_CLASS*(obj: pointer): PProgressBarClass = 
-  result = cast[PProgressBarClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS_BAR()))
-
-proc activity_dir*(a: PProgressBar): guint = 
-  result = (a.ProgressBarflag0 and bm_TGtkProgressBar_activity_dir) shr
-      bp_TGtkProgressBar_activity_dir
-
-proc set_activity_dir*(a: PProgressBar, `activity_dir`: guint) = 
-  a.ProgressBarflag0 = a.ProgressBarflag0 or
-      (int16(`activity_dir` shl bp_TGtkProgressBar_activity_dir) and
-      bm_TGtkProgressBar_activity_dir)
-
-proc TYPE_RADIO_BUTTON*(): GType = 
-  result = radio_button_get_type()
-
-proc RADIO_BUTTON*(obj: pointer): PRadioButton = 
-  result = cast[PRadioButton](CHECK_CAST(obj, TYPE_RADIO_BUTTON()))
-
-proc RADIO_BUTTON_CLASS*(klass: pointer): PRadioButtonClass = 
-  result = cast[PRadioButtonClass](CHECK_CLASS_CAST(klass, TYPE_RADIO_BUTTON()))
-
-proc IS_RADIO_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RADIO_BUTTON())
-
-proc IS_RADIO_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RADIO_BUTTON())
-
-proc RADIO_BUTTON_GET_CLASS*(obj: pointer): PRadioButtonClass = 
-  result = cast[PRadioButtonClass](CHECK_GET_CLASS(obj, TYPE_RADIO_BUTTON()))
-
-proc TYPE_RADIO_MENU_ITEM*(): GType = 
-  result = radio_menu_item_get_type()
-
-proc RADIO_MENU_ITEM*(obj: pointer): PRadioMenuItem = 
-  result = cast[PRadioMenuItem](CHECK_CAST(obj, TYPE_RADIO_MENU_ITEM()))
-
-proc RADIO_MENU_ITEM_CLASS*(klass: pointer): PRadioMenuItemClass = 
-  result = cast[PRadioMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_RADIO_MENU_ITEM()))
-
-proc IS_RADIO_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_RADIO_MENU_ITEM())
-
-proc IS_RADIO_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_RADIO_MENU_ITEM())
-
-proc RADIO_MENU_ITEM_GET_CLASS*(obj: pointer): PRadioMenuItemClass = 
-  result = cast[PRadioMenuItemClass](CHECK_GET_CLASS(obj, TYPE_RADIO_MENU_ITEM()))
-
-proc TYPE_SCROLLED_WINDOW*(): GType = 
-  result = scrolled_window_get_type()
-
-proc SCROLLED_WINDOW*(obj: pointer): PScrolledWindow = 
-  result = cast[PScrolledWindow](CHECK_CAST(obj, TYPE_SCROLLED_WINDOW()))
-
-proc SCROLLED_WINDOW_CLASS*(klass: pointer): PScrolledWindowClass = 
-  result = cast[PScrolledWindowClass](CHECK_CLASS_CAST(klass, 
-      TYPE_SCROLLED_WINDOW()))
-
-proc IS_SCROLLED_WINDOW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SCROLLED_WINDOW())
-
-proc IS_SCROLLED_WINDOW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SCROLLED_WINDOW())
-
-proc SCROLLED_WINDOW_GET_CLASS*(obj: pointer): PScrolledWindowClass = 
-  result = cast[PScrolledWindowClass](CHECK_GET_CLASS(obj, 
-      TYPE_SCROLLED_WINDOW()))
-
-proc hscrollbar_policy*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_hscrollbar_policy) shr
-      bp_TGtkScrolledWindow_hscrollbar_policy
-
-proc set_hscrollbar_policy*(a: PScrolledWindow, `hscrollbar_policy`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`hscrollbar_policy` shl bp_TGtkScrolledWindow_hscrollbar_policy) and
-      bm_TGtkScrolledWindow_hscrollbar_policy)
-
-proc vscrollbar_policy*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_vscrollbar_policy) shr
-      bp_TGtkScrolledWindow_vscrollbar_policy
-
-proc set_vscrollbar_policy*(a: PScrolledWindow, `vscrollbar_policy`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`vscrollbar_policy` shl bp_TGtkScrolledWindow_vscrollbar_policy) and
-      bm_TGtkScrolledWindow_vscrollbar_policy)
-
-proc hscrollbar_visible*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and
-      bm_TGtkScrolledWindow_hscrollbar_visible) shr
-      bp_TGtkScrolledWindow_hscrollbar_visible
-
-proc set_hscrollbar_visible*(a: PScrolledWindow, `hscrollbar_visible`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`hscrollbar_visible` shl
-      bp_TGtkScrolledWindow_hscrollbar_visible) and
-      bm_TGtkScrolledWindow_hscrollbar_visible)
-
-proc vscrollbar_visible*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and
-      bm_TGtkScrolledWindow_vscrollbar_visible) shr
-      bp_TGtkScrolledWindow_vscrollbar_visible
-
-proc set_vscrollbar_visible*(a: PScrolledWindow, `vscrollbar_visible`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      int16((`vscrollbar_visible` shl
-      bp_TGtkScrolledWindow_vscrollbar_visible) and
-      bm_TGtkScrolledWindow_vscrollbar_visible)
-
-proc window_placement*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_window_placement) shr
-      bp_TGtkScrolledWindow_window_placement
-
-proc set_window_placement*(a: PScrolledWindow, `window_placement`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`window_placement` shl bp_TGtkScrolledWindow_window_placement) and
-      bm_TGtkScrolledWindow_window_placement)
-
-proc focus_out*(a: PScrolledWindow): guint = 
-  result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_focus_out) shr
-      bp_TGtkScrolledWindow_focus_out
-
-proc set_focus_out*(a: PScrolledWindow, `focus_out`: guint) = 
-  a.ScrolledWindowflag0 = a.ScrolledWindowflag0 or
-      (int16(`focus_out` shl bp_TGtkScrolledWindow_focus_out) and
-      bm_TGtkScrolledWindow_focus_out)
-
-proc TYPE_SELECTION_DATA*(): GType = 
-  result = selection_data_get_type()
-
-proc TYPE_SEPARATOR_MENU_ITEM*(): GType = 
-  result = separator_menu_item_get_type()
-
-proc SEPARATOR_MENU_ITEM*(obj: pointer): PSeparatorMenuItem = 
-  result = cast[PSeparatorMenuItem](CHECK_CAST(obj, TYPE_SEPARATOR_MENU_ITEM()))
-
-proc SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): PSeparatorMenuItemClass = 
-  result = cast[PSeparatorMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_SEPARATOR_MENU_ITEM()))
-
-proc IS_SEPARATOR_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SEPARATOR_MENU_ITEM())
-
-proc IS_SEPARATOR_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SEPARATOR_MENU_ITEM())
-
-proc SEPARATOR_MENU_ITEM_GET_CLASS*(obj: pointer): PSeparatorMenuItemClass = 
-  result = cast[PSeparatorMenuItemClass](CHECK_GET_CLASS(obj, 
-      TYPE_SEPARATOR_MENU_ITEM()))
-
-proc signal_lookup*(name: cstring, object_type: GType): guint = 
-  result = g_signal_lookup(name, object_type)
-
-proc signal_name*(signal_id: guint): cstring = 
-  result = g_signal_name(signal_id)
-
-proc signal_emit_stop*(instance: gpointer, signal_id: guint, detail: TGQuark) = 
-  if detail != 0'i32: g_signal_stop_emission(instance, signal_id, 0)
-  
-proc signal_connect_full*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                          unknown1: pointer, func_data: gpointer, 
-                          unknown2: pointer, unknown3, unknown4: int): gulong{.
-    importc: "gtk_signal_connect_full", cdecl, dynlib: lib.}
-proc signal_compat_matched*(anObject: PObject, fun: TSignalFunc, 
-                            data: gpointer, m: TGSignalMatchType, u: int){.
-    importc: "gtk_signal_compat_matched", cdecl, dynlib: lib.}
-proc signal_connect*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                     func_data: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, func_data, nil, 0, 0)
-
-proc signal_connect_after*(anObject: PObject, name: cstring, fun: TSignalFunc, 
-                           func_data: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, func_data, nil, 0, 1)
-
-proc signal_connect_object*(anObject: PObject, name: cstring, 
-                            fun: TSignalFunc, slot_object: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, slot_object, nil, 1, 
-                               0)
-
-proc signal_connect_object_after*(anObject: PObject, name: cstring, 
-                                  fun: TSignalFunc, slot_object: gpointer): gulong = 
-  result = signal_connect_full(anObject, name, fun, nil, slot_object, nil, 1, 
-                               1)
-
-proc signal_disconnect*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_disconnect(anObject, handler_id)
-
-proc signal_handler_block*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_block(anObject, handler_id)
-
-proc signal_handler_unblock*(anObject: gpointer, handler_id: gulong) = 
-  g_signal_handler_unblock(anObject, handler_id)
-
-proc signal_disconnect_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 0)
-
-proc signal_disconnect_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, cast[TGSignalMatchType](G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_block_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                   data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, TGSignalMatchType(
-      G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_block_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 1)
-
-proc signal_handler_unblock_by_func*(anObject: PObject, fun: TSignalFunc, 
-                                     data: gpointer) = 
-  signal_compat_matched(anObject, fun, data, cast[TGSignalMatchType](G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA), 0)
-
-proc signal_handler_unblock_by_data*(anObject: PObject, data: gpointer) = 
-  signal_compat_matched(anObject, nil, data, G_SIGNAL_MATCH_DATA, 2)
-
-proc signal_handler_pending*(anObject: PObject, signal_id: guint, 
-                             may_be_blocked: gboolean): gboolean = 
-  Result = g_signal_has_handler_pending(anObject, signal_id, 0, may_be_blocked)
-
-proc signal_handler_pending_by_func*(anObject: PObject, signal_id: guint, 
-                                     may_be_blocked: gboolean, 
-                                     fun: TSignalFunc, 
-                                     data: gpointer): gboolean = 
-  var T: TGSignalMatchType
-  t = cast[TGSignalMatchType](G_SIGNAL_MATCH_ID or G_SIGNAL_MATCH_FUNC or
-      G_SIGNAL_MATCH_DATA)
-  if not may_be_blocked: 
-    t = t or cast[TGSignalMatchType](G_SIGNAL_MATCH_UNBLOCKED)
-  Result = g_signal_handler_find(anObject, t, signal_id, 0, nil, fun, data) !=
-      0
-
-proc TYPE_SIZE_GROUP*(): GType = 
-  result = size_group_get_type()
-
-proc SIZE_GROUP*(obj: pointer): PSizeGroup = 
-  result = cast[PSizeGroup](CHECK_CAST(obj, TYPE_SIZE_GROUP()))
-
-proc SIZE_GROUP_CLASS*(klass: pointer): PSizeGroupClass = 
-  result = cast[PSizeGroupClass](CHECK_CLASS_CAST(klass, TYPE_SIZE_GROUP()))
-
-proc IS_SIZE_GROUP*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SIZE_GROUP())
-
-proc IS_SIZE_GROUP_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SIZE_GROUP())
-
-proc SIZE_GROUP_GET_CLASS*(obj: pointer): PSizeGroupClass = 
-  result = cast[PSizeGroupClass](CHECK_GET_CLASS(obj, TYPE_SIZE_GROUP()))
-
-proc have_width*(a: PSizeGroup): guint = 
-  result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_width) shr
-      bp_TGtkSizeGroup_have_width
-
-proc set_have_width*(a: PSizeGroup, `have_width`: guint) = 
-  a.SizeGroupflag0 = a.SizeGroupflag0 or
-      (int16(`have_width` shl bp_TGtkSizeGroup_have_width) and
-      bm_TGtkSizeGroup_have_width)
-
-proc have_height*(a: PSizeGroup): guint = 
-  result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_height) shr
-      bp_TGtkSizeGroup_have_height
-
-proc set_have_height*(a: PSizeGroup, `have_height`: guint) = 
-  a.SizeGroupflag0 = a.SizeGroupflag0 or
-      (int16(`have_height` shl bp_TGtkSizeGroup_have_height) and
-      bm_TGtkSizeGroup_have_height)
-
-proc TYPE_SOCKET*(): GType = 
-  result = socket_get_type()
-
-proc SOCKET*(obj: pointer): PSocket = 
-  result = cast[PSocket](CHECK_CAST(obj, TYPE_SOCKET()))
-
-proc SOCKET_CLASS*(klass: pointer): PSocketClass = 
-  result = cast[PSocketClass](CHECK_CLASS_CAST(klass, TYPE_SOCKET()))
-
-proc IS_SOCKET*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SOCKET())
-
-proc IS_SOCKET_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SOCKET())
-
-proc SOCKET_GET_CLASS*(obj: pointer): PSocketClass = 
-  result = cast[PSocketClass](CHECK_GET_CLASS(obj, TYPE_SOCKET()))
-
-proc same_app*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_same_app) shr
-      bp_TGtkSocket_same_app
-
-proc set_same_app*(a: PSocket, `same_app`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`same_app` shl bp_TGtkSocket_same_app) and
-      bm_TGtkSocket_same_app)
-
-proc focus_in*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_focus_in) shr
-      bp_TGtkSocket_focus_in
-
-proc set_focus_in*(a: PSocket, `focus_in`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`focus_in` shl bp_TGtkSocket_focus_in) and
-      bm_TGtkSocket_focus_in)
-
-proc have_size*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_have_size) shr
-      bp_TGtkSocket_have_size
-
-proc set_have_size*(a: PSocket, `have_size`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`have_size` shl bp_TGtkSocket_have_size) and
-      bm_TGtkSocket_have_size)
-
-proc need_map*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_need_map) shr
-      bp_TGtkSocket_need_map
-
-proc set_need_map*(a: PSocket, `need_map`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`need_map` shl bp_TGtkSocket_need_map) and
-      bm_TGtkSocket_need_map)
-
-proc is_mapped*(a: PSocket): guint = 
-  result = (a.Socketflag0 and bm_TGtkSocket_is_mapped) shr
-      bp_TGtkSocket_is_mapped
-
-proc set_is_mapped*(a: PSocket, `is_mapped`: guint) = 
-  a.Socketflag0 = a.Socketflag0 or
-      (int16(`is_mapped` shl bp_TGtkSocket_is_mapped) and
-      bm_TGtkSocket_is_mapped)
-
-proc TYPE_SPIN_BUTTON*(): GType = 
-  result = spin_button_get_type()
-
-proc SPIN_BUTTON*(obj: pointer): PSpinButton = 
-  result = cast[PSpinButton](CHECK_CAST(obj, TYPE_SPIN_BUTTON()))
-
-proc SPIN_BUTTON_CLASS*(klass: pointer): PSpinButtonClass = 
-  result = cast[PSpinButtonClass](CHECK_CLASS_CAST(klass, TYPE_SPIN_BUTTON()))
-
-proc IS_SPIN_BUTTON*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_SPIN_BUTTON())
-
-proc IS_SPIN_BUTTON_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_SPIN_BUTTON())
-
-proc SPIN_BUTTON_GET_CLASS*(obj: pointer): PSpinButtonClass = 
-  result = cast[PSpinButtonClass](CHECK_GET_CLASS(obj, TYPE_SPIN_BUTTON()))
-
-proc in_child*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_in_child) shr
-      bp_TGtkSpinButton_in_child
-
-proc set_in_child*(a: PSpinButton, `in_child`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`in_child` shl bp_TGtkSpinButton_in_child) and
-      bm_TGtkSpinButton_in_child)
-
-proc click_child*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_click_child) shr
-      bp_TGtkSpinButton_click_child
-
-proc set_click_child*(a: PSpinButton, `click_child`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`click_child` shl bp_TGtkSpinButton_click_child) and
-      bm_TGtkSpinButton_click_child)
-
-proc button*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_button) shr
-      bp_TGtkSpinButton_button
-
-proc set_button*(a: PSpinButton, `button`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`button` shl bp_TGtkSpinButton_button) and bm_TGtkSpinButton_button)
-
-proc need_timer*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_need_timer) shr
-      bp_TGtkSpinButton_need_timer
-
-proc set_need_timer*(a: PSpinButton, `need_timer`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`need_timer` shl bp_TGtkSpinButton_need_timer) and
-      bm_TGtkSpinButton_need_timer)
-
-proc timer_calls*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_timer_calls) shr
-      bp_TGtkSpinButton_timer_calls
-
-proc set_timer_calls*(a: PSpinButton, `timer_calls`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`timer_calls` shl bp_TGtkSpinButton_timer_calls) and
-      bm_TGtkSpinButton_timer_calls)
-
-proc digits*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_digits) shr
-      bp_TGtkSpinButton_digits
-
-proc set_digits*(a: PSpinButton, `digits`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`digits` shl bp_TGtkSpinButton_digits) and bm_TGtkSpinButton_digits)
-
-proc numeric*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_numeric) shr
-      bp_TGtkSpinButton_numeric
-
-proc set_numeric*(a: PSpinButton, `numeric`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`numeric` shl bp_TGtkSpinButton_numeric) and
-      bm_TGtkSpinButton_numeric)
-
-proc wrap*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_wrap) shr
-      bp_TGtkSpinButton_wrap
-
-proc set_wrap*(a: PSpinButton, `wrap`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`wrap` shl bp_TGtkSpinButton_wrap) and bm_TGtkSpinButton_wrap)
-
-proc snap_to_ticks*(a: PSpinButton): guint = 
-  result = (a.SpinButtonflag0 and bm_TGtkSpinButton_snap_to_ticks) shr
-      bp_TGtkSpinButton_snap_to_ticks
-
-proc set_snap_to_ticks*(a: PSpinButton, `snap_to_ticks`: guint) = 
-  a.SpinButtonflag0 = a.SpinButtonflag0 or
-      ((`snap_to_ticks` shl bp_TGtkSpinButton_snap_to_ticks) and
-      bm_TGtkSpinButton_snap_to_ticks)
-
-proc TYPE_STATUSBAR*(): GType = 
-  result = statusbar_get_type()
-
-proc STATUSBAR*(obj: pointer): PStatusbar = 
-  result = cast[PStatusbar](CHECK_CAST(obj, TYPE_STATUSBAR()))
-
-proc STATUSBAR_CLASS*(klass: pointer): PStatusbarClass = 
-  result = cast[PStatusbarClass](CHECK_CLASS_CAST(klass, TYPE_STATUSBAR()))
-
-proc IS_STATUSBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_STATUSBAR())
-
-proc IS_STATUSBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_STATUSBAR())
-
-proc STATUSBAR_GET_CLASS*(obj: pointer): PStatusbarClass = 
-  result = cast[PStatusbarClass](CHECK_GET_CLASS(obj, TYPE_STATUSBAR()))
-
-proc has_resize_grip*(a: PStatusbar): guint = 
-  result = (a.Statusbarflag0 and bm_TGtkStatusbar_has_resize_grip) shr
-      bp_TGtkStatusbar_has_resize_grip
-
-proc set_has_resize_grip*(a: PStatusbar, `has_resize_grip`: guint) = 
-  a.Statusbarflag0 = a.Statusbarflag0 or
-      (int16(`has_resize_grip` shl bp_TGtkStatusbar_has_resize_grip) and
-      bm_TGtkStatusbar_has_resize_grip)
-
-proc TYPE_TABLE*(): GType = 
-  result = gtk2.table_get_type()
-
-proc TABLE*(obj: pointer): PTable = 
-  result = cast[PTable](CHECK_CAST(obj, gtk2.TYPE_TABLE()))
-
-proc TABLE_CLASS*(klass: pointer): PTableClass = 
-  result = cast[PTableClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_TABLE()))
-
-proc IS_TABLE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_TABLE())
-
-proc IS_TABLE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_TABLE())
-
-proc TABLE_GET_CLASS*(obj: pointer): PTableClass = 
-  result = cast[PTableClass](CHECK_GET_CLASS(obj, gtk2.TYPE_TABLE()))
-
-proc homogeneous*(a: PTable): guint = 
-  result = (a.Tableflag0 and bm_TGtkTable_homogeneous) shr
-      bp_TGtkTable_homogeneous
-
-proc set_homogeneous*(a: PTable, `homogeneous`: guint) = 
-  a.Tableflag0 = a.Tableflag0 or
-      (int16(`homogeneous` shl bp_TGtkTable_homogeneous) and
-      bm_TGtkTable_homogeneous)
-
-proc xexpand*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xexpand) shr
-      bp_TGtkTableChild_xexpand
-
-proc set_xexpand*(a: PTableChild, `xexpand`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xexpand` shl bp_TGtkTableChild_xexpand) and
-      bm_TGtkTableChild_xexpand)
-
-proc yexpand*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yexpand) shr
-      bp_TGtkTableChild_yexpand
-
-proc set_yexpand*(a: PTableChild, `yexpand`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yexpand` shl bp_TGtkTableChild_yexpand) and
-      bm_TGtkTableChild_yexpand)
-
-proc xshrink*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xshrink) shr
-      bp_TGtkTableChild_xshrink
-
-proc set_xshrink*(a: PTableChild, `xshrink`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xshrink` shl bp_TGtkTableChild_xshrink) and
-      bm_TGtkTableChild_xshrink)
-
-proc yshrink*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yshrink) shr
-      bp_TGtkTableChild_yshrink
-
-proc set_yshrink*(a: PTableChild, `yshrink`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yshrink` shl bp_TGtkTableChild_yshrink) and
-      bm_TGtkTableChild_yshrink)
-
-proc xfill*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_xfill) shr
-      bp_TGtkTableChild_xfill
-
-proc set_xfill*(a: PTableChild, `xfill`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`xfill` shl bp_TGtkTableChild_xfill) and bm_TGtkTableChild_xfill)
-
-proc yfill*(a: PTableChild): guint = 
-  result = (a.TableChildflag0 and bm_TGtkTableChild_yfill) shr
-      bp_TGtkTableChild_yfill
-
-proc set_yfill*(a: PTableChild, `yfill`: guint) = 
-  a.TableChildflag0 = a.TableChildflag0 or
-      (int16(`yfill` shl bp_TGtkTableChild_yfill) and bm_TGtkTableChild_yfill)
-
-proc need_expand*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_need_expand) shr
-      bp_TGtkTableRowCol_need_expand
-
-proc set_need_expand*(a: PTableRowCol, `need_expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`need_expand` shl bp_TGtkTableRowCol_need_expand) and
-      bm_TGtkTableRowCol_need_expand)
-
-proc need_shrink*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_need_shrink) shr
-      bp_TGtkTableRowCol_need_shrink
-
-proc set_need_shrink*(a: PTableRowCol, `need_shrink`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`need_shrink` shl bp_TGtkTableRowCol_need_shrink) and
-      bm_TGtkTableRowCol_need_shrink)
-
-proc expand*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_expand) shr
-      bp_TGtkTableRowCol_expand
-
-proc set_expand*(a: PTableRowCol, `expand`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`expand` shl bp_TGtkTableRowCol_expand) and
-      bm_TGtkTableRowCol_expand)
-
-proc shrink*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_shrink) shr
-      bp_TGtkTableRowCol_shrink
-
-proc set_shrink*(a: PTableRowCol, `shrink`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`shrink` shl bp_TGtkTableRowCol_shrink) and
-      bm_TGtkTableRowCol_shrink)
-
-proc empty*(a: PTableRowCol): guint = 
-  result = (a.flag0 and bm_TGtkTableRowCol_empty) shr
-      bp_TGtkTableRowCol_empty
-
-proc set_empty*(a: PTableRowCol, `empty`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`empty` shl bp_TGtkTableRowCol_empty) and
-      bm_TGtkTableRowCol_empty)
-
-proc TYPE_TEAROFF_MENU_ITEM*(): GType = 
-  result = tearoff_menu_item_get_type()
-
-proc TEAROFF_MENU_ITEM*(obj: pointer): PTearoffMenuItem = 
-  result = cast[PTearoffMenuItem](CHECK_CAST(obj, TYPE_TEAROFF_MENU_ITEM()))
-
-proc TEAROFF_MENU_ITEM_CLASS*(klass: pointer): PTearoffMenuItemClass = 
-  result = cast[PTearoffMenuItemClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TEAROFF_MENU_ITEM()))
-
-proc IS_TEAROFF_MENU_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TEAROFF_MENU_ITEM())
-
-proc IS_TEAROFF_MENU_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TEAROFF_MENU_ITEM())
-
-proc TEAROFF_MENU_ITEM_GET_CLASS*(obj: pointer): PTearoffMenuItemClass = 
-  result = cast[PTearoffMenuItemClass](CHECK_GET_CLASS(obj, 
-      TYPE_TEAROFF_MENU_ITEM()))
-
-proc torn_off*(a: PTearoffMenuItem): guint = 
-  result = (a.TearoffMenuItemflag0 and bm_TGtkTearoffMenuItem_torn_off) shr
-      bp_TGtkTearoffMenuItem_torn_off
-
-proc set_torn_off*(a: PTearoffMenuItem, `torn_off`: guint) = 
-  a.TearoffMenuItemflag0 = a.TearoffMenuItemflag0 or
-      (int16(`torn_off` shl bp_TGtkTearoffMenuItem_torn_off) and
-      bm_TGtkTearoffMenuItem_torn_off)
-
-proc TYPE_TEXT*(): GType = 
-  result = gtk2.text_get_type()
-
-proc TEXT*(obj: pointer): PText = 
-  result = cast[PText](CHECK_CAST(obj, gtk2.TYPE_TEXT()))
-
-proc TEXT_CLASS*(klass: pointer): PTextClass = 
-  result = cast[PTextClass](CHECK_CLASS_CAST(klass, gtk2.TYPE_TEXT()))
-
-proc IS_TEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, gtk2.TYPE_TEXT())
-
-proc IS_TEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, gtk2.TYPE_TEXT())
-
-proc TEXT_GET_CLASS*(obj: pointer): PTextClass = 
-  result = cast[PTextClass](CHECK_GET_CLASS(obj, gtk2.TYPE_TEXT()))
-
-proc line_wrap*(a: PText): guint = 
-  result = (a.Textflag0 and bm_TGtkText_line_wrap) shr bp_TGtkText_line_wrap
-
-proc set_line_wrap*(a: PText, `line_wrap`: guint) = 
-  a.Textflag0 = a.Textflag0 or
-      (int16(`line_wrap` shl bp_TGtkText_line_wrap) and bm_TGtkText_line_wrap)
-
-proc word_wrap*(a: PText): guint = 
-  result = (a.Textflag0 and bm_TGtkText_word_wrap) shr bp_TGtkText_word_wrap
-
-proc set_word_wrap*(a: PText, `word_wrap`: guint) = 
-  a.Textflag0 = a.Textflag0 or
-      (int16(`word_wrap` shl bp_TGtkText_word_wrap) and bm_TGtkText_word_wrap)
-
-proc use_wchar*(a: PText): gboolean = 
-  result = ((a.Textflag0 and bm_TGtkText_use_wchar) shr bp_TGtkText_use_wchar) >
-      0'i16
-
-proc set_use_wchar*(a: PText, `use_wchar`: gboolean) = 
-  if `use_wchar`: 
-    a.Textflag0 = a.Textflag0 or bm_TGtkText_use_wchar
-  else: 
-    a.Textflag0 = a.Textflag0 and not bm_TGtkText_use_wchar
-
-proc INDEX_WCHAR*(t: PText, index: guint): guint32 = 
-  nil
-
-proc INDEX_UCHAR*(t: PText, index: guint): GUChar = 
-  nil
-
-proc TYPE_TEXT_ITER*(): GType = 
-  result = text_iter_get_type()
-
-proc TYPE_TEXT_TAG*(): GType = 
-  result = text_tag_get_type()
-
-proc TEXT_TAG*(obj: pointer): PTextTag = 
-  result = cast[PTextTag](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_TAG()))
-
-proc TEXT_TAG_CLASS*(klass: pointer): PTextTagClass = 
-  result = cast[PTextTagClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_TEXT_TAG()))
-
-proc IS_TEXT_TAG*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_TAG())
-
-proc IS_TEXT_TAG_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_TAG())
-
-proc TEXT_TAG_GET_CLASS*(obj: pointer): PTextTagClass = 
-  result = cast[PTextTagClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_TEXT_TAG()))
-
-proc TYPE_TEXT_ATTRIBUTES*(): GType = 
-  result = text_attributes_get_type()
-
-proc bg_color_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_color_set) shr
-      bp_TGtkTextTag_bg_color_set
-
-proc set_bg_color_set*(a: PTextTag, `bg_color_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_color_set` shl bp_TGtkTextTag_bg_color_set) and
-      bm_TGtkTextTag_bg_color_set)
-
-proc bg_stipple_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_stipple_set) shr
-      bp_TGtkTextTag_bg_stipple_set
-
-proc set_bg_stipple_set*(a: PTextTag, `bg_stipple_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_stipple_set` shl bp_TGtkTextTag_bg_stipple_set) and
-      bm_TGtkTextTag_bg_stipple_set)
-
-proc fg_color_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_fg_color_set) shr
-      bp_TGtkTextTag_fg_color_set
-
-proc set_fg_color_set*(a: PTextTag, `fg_color_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`fg_color_set` shl bp_TGtkTextTag_fg_color_set) and
-      bm_TGtkTextTag_fg_color_set)
-
-proc scale_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_scale_set) shr
-      bp_TGtkTextTag_scale_set
-
-proc set_scale_set*(a: PTextTag, `scale_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`scale_set` shl bp_TGtkTextTag_scale_set) and
-      bm_TGtkTextTag_scale_set)
-
-proc fg_stipple_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_fg_stipple_set) shr
-      bp_TGtkTextTag_fg_stipple_set
-
-proc set_fg_stipple_set*(a: PTextTag, `fg_stipple_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`fg_stipple_set` shl bp_TGtkTextTag_fg_stipple_set) and
-      bm_TGtkTextTag_fg_stipple_set)
-
-proc justification_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_justification_set) shr
-      bp_TGtkTextTag_justification_set
-
-proc set_justification_set*(a: PTextTag, `justification_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`justification_set` shl bp_TGtkTextTag_justification_set) and
-      bm_TGtkTextTag_justification_set)
-
-proc left_margin_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_left_margin_set) shr
-      bp_TGtkTextTag_left_margin_set
-
-proc set_left_margin_set*(a: PTextTag, `left_margin_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`left_margin_set` shl bp_TGtkTextTag_left_margin_set) and
-      bm_TGtkTextTag_left_margin_set)
-
-proc indent_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_indent_set) shr
-      bp_TGtkTextTag_indent_set
-
-proc set_indent_set*(a: PTextTag, `indent_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`indent_set` shl bp_TGtkTextTag_indent_set) and
-      bm_TGtkTextTag_indent_set)
-
-proc rise_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_rise_set) shr
-      bp_TGtkTextTag_rise_set
-
-proc set_rise_set*(a: PTextTag, `rise_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`rise_set` shl bp_TGtkTextTag_rise_set) and bm_TGtkTextTag_rise_set)
-
-proc strikethrough_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_strikethrough_set) shr
-      bp_TGtkTextTag_strikethrough_set
-
-proc set_strikethrough_set*(a: PTextTag, `strikethrough_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`strikethrough_set` shl bp_TGtkTextTag_strikethrough_set) and
-      bm_TGtkTextTag_strikethrough_set)
-
-proc right_margin_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_right_margin_set) shr
-      bp_TGtkTextTag_right_margin_set
-
-proc set_right_margin_set*(a: PTextTag, `right_margin_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`right_margin_set` shl bp_TGtkTextTag_right_margin_set) and
-      bm_TGtkTextTag_right_margin_set)
-
-proc pixels_above_lines_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_above_lines_set) shr
-      bp_TGtkTextTag_pixels_above_lines_set
-
-proc set_pixels_above_lines_set*(a: PTextTag, 
-                                 `pixels_above_lines_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_above_lines_set` shl bp_TGtkTextTag_pixels_above_lines_set) and
-      bm_TGtkTextTag_pixels_above_lines_set)
-
-proc pixels_below_lines_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_below_lines_set) shr
-      bp_TGtkTextTag_pixels_below_lines_set
-
-proc set_pixels_below_lines_set*(a: PTextTag, 
-                                 `pixels_below_lines_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_below_lines_set` shl bp_TGtkTextTag_pixels_below_lines_set) and
-      bm_TGtkTextTag_pixels_below_lines_set)
-
-proc pixels_inside_wrap_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pixels_inside_wrap_set) shr
-      bp_TGtkTextTag_pixels_inside_wrap_set
-
-proc set_pixels_inside_wrap_set*(a: PTextTag, 
-                                 `pixels_inside_wrap_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pixels_inside_wrap_set` shl bp_TGtkTextTag_pixels_inside_wrap_set) and
-      bm_TGtkTextTag_pixels_inside_wrap_set)
-
-proc tabs_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_tabs_set) shr
-      bp_TGtkTextTag_tabs_set
-
-proc set_tabs_set*(a: PTextTag, `tabs_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`tabs_set` shl bp_TGtkTextTag_tabs_set) and bm_TGtkTextTag_tabs_set)
-
-proc underline_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_underline_set) shr
-      bp_TGtkTextTag_underline_set
-
-proc set_underline_set*(a: PTextTag, `underline_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`underline_set` shl bp_TGtkTextTag_underline_set) and
-      bm_TGtkTextTag_underline_set)
-
-proc wrap_mode_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_wrap_mode_set) shr
-      bp_TGtkTextTag_wrap_mode_set
-
-proc set_wrap_mode_set*(a: PTextTag, `wrap_mode_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`wrap_mode_set` shl bp_TGtkTextTag_wrap_mode_set) and
-      bm_TGtkTextTag_wrap_mode_set)
-
-proc bg_full_height_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_bg_full_height_set) shr
-      bp_TGtkTextTag_bg_full_height_set
-
-proc set_bg_full_height_set*(a: PTextTag, `bg_full_height_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`bg_full_height_set` shl bp_TGtkTextTag_bg_full_height_set) and
-      bm_TGtkTextTag_bg_full_height_set)
-
-proc invisible_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_invisible_set) shr
-      bp_TGtkTextTag_invisible_set
-
-proc set_invisible_set*(a: PTextTag, `invisible_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`invisible_set` shl bp_TGtkTextTag_invisible_set) and
-      bm_TGtkTextTag_invisible_set)
-
-proc editable_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_editable_set) shr
-      bp_TGtkTextTag_editable_set
-
-proc set_editable_set*(a: PTextTag, `editable_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`editable_set` shl bp_TGtkTextTag_editable_set) and
-      bm_TGtkTextTag_editable_set)
-
-proc language_set*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_language_set) shr
-      bp_TGtkTextTag_language_set
-
-proc set_language_set*(a: PTextTag, `language_set`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`language_set` shl bp_TGtkTextTag_language_set) and
-      bm_TGtkTextTag_language_set)
-
-proc pad1*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad1) shr bp_TGtkTextTag_pad1
-
-proc set_pad1*(a: PTextTag, `pad1`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad1` shl bp_TGtkTextTag_pad1) and bm_TGtkTextTag_pad1)
-
-proc pad2*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad2) shr bp_TGtkTextTag_pad2
-
-proc set_pad2*(a: PTextTag, `pad2`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad2` shl bp_TGtkTextTag_pad2) and bm_TGtkTextTag_pad2)
-
-proc pad3*(a: PTextTag): guint = 
-  result = (a.TextTagflag0 and bm_TGtkTextTag_pad3) shr bp_TGtkTextTag_pad3
-
-proc set_pad3*(a: PTextTag, `pad3`: guint) = 
-  a.TextTagflag0 = a.TextTagflag0 or
-      ((`pad3` shl bp_TGtkTextTag_pad3) and bm_TGtkTextTag_pad3)
-
-proc underline*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_underline) shr
-      bp_TGtkTextAppearance_underline
-
-proc set_underline*(a: PTextAppearance, `underline`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`underline` shl bp_TGtkTextAppearance_underline) and
-      bm_TGtkTextAppearance_underline)
-
-proc strikethrough*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_strikethrough) shr
-      bp_TGtkTextAppearance_strikethrough
-
-proc set_strikethrough*(a: PTextAppearance, `strikethrough`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`strikethrough` shl bp_TGtkTextAppearance_strikethrough) and
-      bm_TGtkTextAppearance_strikethrough)
-
-proc draw_bg*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_draw_bg) shr
-      bp_TGtkTextAppearance_draw_bg
-
-proc set_draw_bg*(a: PTextAppearance, `draw_bg`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`draw_bg` shl bp_TGtkTextAppearance_draw_bg) and
-      bm_TGtkTextAppearance_draw_bg)
-
-proc inside_selection*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_inside_selection) shr
-      bp_TGtkTextAppearance_inside_selection
-
-proc set_inside_selection*(a: PTextAppearance, `inside_selection`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`inside_selection` shl bp_TGtkTextAppearance_inside_selection) and
-      bm_TGtkTextAppearance_inside_selection)
-
-proc is_text*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_is_text) shr
-      bp_TGtkTextAppearance_is_text
-
-proc set_is_text*(a: PTextAppearance, `is_text`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_text` shl bp_TGtkTextAppearance_is_text) and
-      bm_TGtkTextAppearance_is_text)
-
-proc pad1*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad1) shr
-      bp_TGtkTextAppearance_pad1
-
-proc set_pad1*(a: PTextAppearance, `pad1`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad1` shl bp_TGtkTextAppearance_pad1) and
-      bm_TGtkTextAppearance_pad1)
-
-proc pad2*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad2) shr
-      bp_TGtkTextAppearance_pad2
-
-proc set_pad2*(a: PTextAppearance, `pad2`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad2` shl bp_TGtkTextAppearance_pad2) and
-      bm_TGtkTextAppearance_pad2)
-
-proc pad3*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad3) shr
-      bp_TGtkTextAppearance_pad3
-
-proc set_pad3*(a: PTextAppearance, `pad3`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad3` shl bp_TGtkTextAppearance_pad3) and
-      bm_TGtkTextAppearance_pad3)
-
-proc pad4*(a: PTextAppearance): guint = 
-  result = (a.flag0 and bm_TGtkTextAppearance_pad4) shr
-      bp_TGtkTextAppearance_pad4
-
-proc set_pad4*(a: PTextAppearance, `pad4`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad4` shl bp_TGtkTextAppearance_pad4) and
-      bm_TGtkTextAppearance_pad4)
-
-proc invisible*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_invisible) shr
-      bp_TGtkTextAttributes_invisible
-
-proc set_invisible*(a: PTextAttributes, `invisible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`invisible` shl bp_TGtkTextAttributes_invisible) and
-      bm_TGtkTextAttributes_invisible)
-
-proc bg_full_height*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_bg_full_height) shr
-      bp_TGtkTextAttributes_bg_full_height
-
-proc set_bg_full_height*(a: PTextAttributes, `bg_full_height`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`bg_full_height` shl bp_TGtkTextAttributes_bg_full_height) and
-      bm_TGtkTextAttributes_bg_full_height)
-
-proc editable*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_editable) shr
-      bp_TGtkTextAttributes_editable
-
-proc set_editable*(a: PTextAttributes, `editable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`editable` shl bp_TGtkTextAttributes_editable) and
-      bm_TGtkTextAttributes_editable)
-
-proc realized*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_realized) shr
-      bp_TGtkTextAttributes_realized
-
-proc set_realized*(a: PTextAttributes, `realized`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`realized` shl bp_TGtkTextAttributes_realized) and
-      bm_TGtkTextAttributes_realized)
-
-proc pad1*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad1) shr
-      bp_TGtkTextAttributes_pad1
-
-proc set_pad1*(a: PTextAttributes, `pad1`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad1` shl bp_TGtkTextAttributes_pad1) and
-      bm_TGtkTextAttributes_pad1)
-
-proc pad2*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad2) shr
-      bp_TGtkTextAttributes_pad2
-
-proc set_pad2*(a: PTextAttributes, `pad2`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad2` shl bp_TGtkTextAttributes_pad2) and
-      bm_TGtkTextAttributes_pad2)
-
-proc pad3*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad3) shr
-      bp_TGtkTextAttributes_pad3
-
-proc set_pad3*(a: PTextAttributes, `pad3`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad3` shl bp_TGtkTextAttributes_pad3) and
-      bm_TGtkTextAttributes_pad3)
-
-proc pad4*(a: PTextAttributes): guint = 
-  result = (a.flag0 and bm_TGtkTextAttributes_pad4) shr
-      bp_TGtkTextAttributes_pad4
-
-proc set_pad4*(a: PTextAttributes, `pad4`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`pad4` shl bp_TGtkTextAttributes_pad4) and
-      bm_TGtkTextAttributes_pad4)
-
-proc TYPE_TEXT_TAG_TABLE*(): GType = 
-  result = text_tag_table_get_type()
-
-proc TEXT_TAG_TABLE*(obj: pointer): PTextTagTable = 
-  result = cast[PTextTagTable](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc TEXT_TAG_TABLE_CLASS*(klass: pointer): PTextTagTableClass = 
-  result = cast[PTextTagTableClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc IS_TEXT_TAG_TABLE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_TAG_TABLE())
-
-proc IS_TEXT_TAG_TABLE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_TAG_TABLE())
-
-proc TEXT_TAG_TABLE_GET_CLASS*(obj: pointer): PTextTagTableClass = 
-  result = cast[PTextTagTableClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_TAG_TABLE()))
-
-proc TYPE_TEXT_MARK*(): GType = 
-  result = text_mark_get_type()
-
-proc TEXT_MARK*(anObject: pointer): PTextMark = 
-  result = cast[PTextMark](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_TEXT_MARK()))
-
-proc TEXT_MARK_CLASS*(klass: pointer): PTextMarkClass = 
-  result = cast[PTextMarkClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_TEXT_MARK()))
-
-proc IS_TEXT_MARK*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_TEXT_MARK())
-
-proc IS_TEXT_MARK_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_MARK())
-
-proc TEXT_MARK_GET_CLASS*(obj: pointer): PTextMarkClass = 
-  result = cast[PTextMarkClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_TEXT_MARK()))
-
-proc visible*(a: PTextMarkBody): guint = 
-  result = (a.flag0 and bm_TGtkTextMarkBody_visible) shr
-      bp_TGtkTextMarkBody_visible
-
-proc set_visible*(a: PTextMarkBody, `visible`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`visible` shl bp_TGtkTextMarkBody_visible) and
-      bm_TGtkTextMarkBody_visible)
-
-proc not_deleteable*(a: PTextMarkBody): guint = 
-  result = (a.flag0 and bm_TGtkTextMarkBody_not_deleteable) shr
-      bp_TGtkTextMarkBody_not_deleteable
-
-proc set_not_deleteable*(a: PTextMarkBody, `not_deleteable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`not_deleteable` shl bp_TGtkTextMarkBody_not_deleteable) and
-      bm_TGtkTextMarkBody_not_deleteable)
-
-proc TYPE_TEXT_CHILD_ANCHOR*(): GType = 
-  result = text_child_anchor_get_type()
-
-proc TEXT_CHILD_ANCHOR*(anObject: pointer): PTextChildAnchor = 
-  result = cast[PTextChildAnchor](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): PTextChildAnchorClass = 
-  result = cast[PTextChildAnchorClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc IS_TEXT_CHILD_ANCHOR*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_TEXT_CHILD_ANCHOR())
-
-proc IS_TEXT_CHILD_ANCHOR_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_CHILD_ANCHOR())
-
-proc TEXT_CHILD_ANCHOR_GET_CLASS*(obj: pointer): PTextChildAnchorClass = 
-  result = cast[PTextChildAnchorClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_CHILD_ANCHOR()))
-
-proc width*(a: PTextLineData): gint = 
-  result = a.flag0 and bm_TGtkTextLineData_width
-
-proc set_width*(a: PTextLineData, NewWidth: gint) = 
-  a.flag0 = (bm_TGtkTextLineData_width and NewWidth) or a.flag0
-
-proc valid*(a: PTextLineData): gint = 
-  result = (a.flag0 and bm_TGtkTextLineData_valid) shr
-      bp_TGtkTextLineData_valid
-
-proc set_valid*(a: PTextLineData, `valid`: gint) = 
-  a.flag0 = a.flag0 or
-      ((`valid` shl bp_TGtkTextLineData_valid) and bm_TGtkTextLineData_valid)
-
-proc TYPE_TEXT_BUFFER*(): GType = 
-  result = text_buffer_get_type()
-
-proc TEXT_BUFFER*(obj: pointer): PTextBuffer = 
-  result = cast[PTextBuffer](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_BUFFER()))
-
-proc TEXT_BUFFER_CLASS*(klass: pointer): PTextBufferClass = 
-  result = cast[PTextBufferClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_BUFFER()))
-
-proc IS_TEXT_BUFFER*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_BUFFER())
-
-proc IS_TEXT_BUFFER_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_BUFFER())
-
-proc TEXT_BUFFER_GET_CLASS*(obj: pointer): PTextBufferClass = 
-  result = cast[PTextBufferClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_BUFFER()))
-
-proc modified*(a: PTextBuffer): guint = 
-  result = (a.TextBufferflag0 and bm_TGtkTextBuffer_modified) shr
-      bp_TGtkTextBuffer_modified
-
-proc set_modified*(a: PTextBuffer, `modified`: guint) = 
-  a.TextBufferflag0 = a.TextBufferflag0 or
-      (int16(`modified` shl bp_TGtkTextBuffer_modified) and
-      bm_TGtkTextBuffer_modified)
-
-proc TYPE_TEXT_LAYOUT*(): GType = 
-  result = text_layout_get_type()
-
-proc TEXT_LAYOUT*(obj: pointer): PTextLayout = 
-  result = cast[PTextLayout](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_TEXT_LAYOUT()))
-
-proc TEXT_LAYOUT_CLASS*(klass: pointer): PTextLayoutClass = 
-  result = cast[PTextLayoutClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_TEXT_LAYOUT()))
-
-proc IS_TEXT_LAYOUT*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TEXT_LAYOUT())
-
-proc IS_TEXT_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_TEXT_LAYOUT())
-
-proc TEXT_LAYOUT_GET_CLASS*(obj: pointer): PTextLayoutClass = 
-  result = cast[PTextLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_TEXT_LAYOUT()))
-
-proc cursor_visible*(a: PTextLayout): guint = 
-  result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_visible) shr
-      bp_TGtkTextLayout_cursor_visible
-
-proc set_cursor_visible*(a: PTextLayout, `cursor_visible`: guint) = 
-  a.TextLayoutflag0 = a.TextLayoutflag0 or
-      (int16(`cursor_visible` shl bp_TGtkTextLayout_cursor_visible) and
-      bm_TGtkTextLayout_cursor_visible)
-
-proc cursor_direction*(a: PTextLayout): gint = 
-  result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_direction) shr
-      bp_TGtkTextLayout_cursor_direction
-
-proc set_cursor_direction*(a: PTextLayout, `cursor_direction`: gint) = 
-  a.TextLayoutflag0 = a.TextLayoutflag0 or
-      (int16(`cursor_direction` shl bp_TGtkTextLayout_cursor_direction) and
-      bm_TGtkTextLayout_cursor_direction)
-
-proc is_strong*(a: PTextCursorDisplay): guint = 
-  result = (a.flag0 and bm_TGtkTextCursorDisplay_is_strong) shr
-      bp_TGtkTextCursorDisplay_is_strong
-
-proc set_is_strong*(a: PTextCursorDisplay, `is_strong`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_strong` shl bp_TGtkTextCursorDisplay_is_strong) and
-      bm_TGtkTextCursorDisplay_is_strong)
-
-proc is_weak*(a: PTextCursorDisplay): guint = 
-  result = (a.flag0 and bm_TGtkTextCursorDisplay_is_weak) shr
-      bp_TGtkTextCursorDisplay_is_weak
-
-proc set_is_weak*(a: PTextCursorDisplay, `is_weak`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`is_weak` shl bp_TGtkTextCursorDisplay_is_weak) and
-      bm_TGtkTextCursorDisplay_is_weak)
-
-proc TYPE_TEXT_VIEW*(): GType = 
-  result = text_view_get_type()
-
-proc TEXT_VIEW*(obj: pointer): PTextView = 
-  result = cast[PTextView](CHECK_CAST(obj, TYPE_TEXT_VIEW()))
-
-proc TEXT_VIEW_CLASS*(klass: pointer): PTextViewClass = 
-  result = cast[PTextViewClass](CHECK_CLASS_CAST(klass, TYPE_TEXT_VIEW()))
-
-proc IS_TEXT_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TEXT_VIEW())
-
-proc IS_TEXT_VIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TEXT_VIEW())
-
-proc TEXT_VIEW_GET_CLASS*(obj: pointer): PTextViewClass = 
-  result = cast[PTextViewClass](CHECK_GET_CLASS(obj, TYPE_TEXT_VIEW()))
-
-proc editable*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_editable) shr
-      bp_TGtkTextView_editable
-
-proc set_editable*(a: PTextView, `editable`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`editable` shl bp_TGtkTextView_editable) and
-      bm_TGtkTextView_editable)
-
-proc overwrite_mode*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_overwrite_mode) shr
-      bp_TGtkTextView_overwrite_mode
-
-proc set_overwrite_mode*(a: PTextView, `overwrite_mode`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`overwrite_mode` shl bp_TGtkTextView_overwrite_mode) and
-      bm_TGtkTextView_overwrite_mode)
-
-proc cursor_visible*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_cursor_visible) shr
-      bp_TGtkTextView_cursor_visible
-
-proc set_cursor_visible*(a: PTextView, `cursor_visible`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`cursor_visible` shl bp_TGtkTextView_cursor_visible) and
-      bm_TGtkTextView_cursor_visible)
-
-proc need_im_reset*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_need_im_reset) shr
-      bp_TGtkTextView_need_im_reset
-
-proc set_need_im_reset*(a: PTextView, `need_im_reset`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`need_im_reset` shl bp_TGtkTextView_need_im_reset) and
-      bm_TGtkTextView_need_im_reset)
-
-proc just_selected_element*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_just_selected_element) shr
-      bp_TGtkTextView_just_selected_element
-
-proc set_just_selected_element*(a: PTextView, `just_selected_element`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`just_selected_element` shl
-      bp_TGtkTextView_just_selected_element) and
-      bm_TGtkTextView_just_selected_element)
-
-proc disable_scroll_on_focus*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_disable_scroll_on_focus) shr
-      bp_TGtkTextView_disable_scroll_on_focus
-
-proc set_disable_scroll_on_focus*(a: PTextView, 
-                                  `disable_scroll_on_focus`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`disable_scroll_on_focus` shl
-      bp_TGtkTextView_disable_scroll_on_focus) and
-      bm_TGtkTextView_disable_scroll_on_focus)
-
-proc onscreen_validated*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_onscreen_validated) shr
-      bp_TGtkTextView_onscreen_validated
-
-proc set_onscreen_validated*(a: PTextView, `onscreen_validated`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`onscreen_validated` shl bp_TGtkTextView_onscreen_validated) and
-      bm_TGtkTextView_onscreen_validated)
-
-proc mouse_cursor_obscured*(a: PTextView): guint = 
-  result = (a.TextViewflag0 and bm_TGtkTextView_mouse_cursor_obscured) shr
-      bp_TGtkTextView_mouse_cursor_obscured
-
-proc set_mouse_cursor_obscured*(a: PTextView, `mouse_cursor_obscured`: guint) = 
-  a.TextViewflag0 = a.TextViewflag0 or
-      (int16(`mouse_cursor_obscured` shl
-      bp_TGtkTextView_mouse_cursor_obscured) and
-      bm_TGtkTextView_mouse_cursor_obscured)
-
-proc TYPE_TIPS_QUERY*(): GType = 
-  result = tips_query_get_type()
-
-proc TIPS_QUERY*(obj: pointer): PTipsQuery = 
-  result = cast[PTipsQuery](CHECK_CAST(obj, TYPE_TIPS_QUERY()))
-
-proc TIPS_QUERY_CLASS*(klass: pointer): PTipsQueryClass = 
-  result = cast[PTipsQueryClass](CHECK_CLASS_CAST(klass, TYPE_TIPS_QUERY()))
-
-proc IS_TIPS_QUERY*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TIPS_QUERY())
-
-proc IS_TIPS_QUERY_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TIPS_QUERY())
-
-proc TIPS_QUERY_GET_CLASS*(obj: pointer): PTipsQueryClass = 
-  result = cast[PTipsQueryClass](CHECK_GET_CLASS(obj, TYPE_TIPS_QUERY()))
-
-proc emit_always*(a: PTipsQuery): guint = 
-  result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_emit_always) shr
-      bp_TGtkTipsQuery_emit_always
-
-proc set_emit_always*(a: PTipsQuery, `emit_always`: guint) = 
-  a.TipsQueryflag0 = a.TipsQueryflag0 or
-      (int16(`emit_always` shl bp_TGtkTipsQuery_emit_always) and
-      bm_TGtkTipsQuery_emit_always)
-
-proc in_query*(a: PTipsQuery): guint = 
-  result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_in_query) shr
-      bp_TGtkTipsQuery_in_query
-
-proc set_in_query*(a: PTipsQuery, `in_query`: guint) = 
-  a.TipsQueryflag0 = a.TipsQueryflag0 or
-      (int16(`in_query` shl bp_TGtkTipsQuery_in_query) and
-      bm_TGtkTipsQuery_in_query)
-
-proc TYPE_TOOLTIPS*(): GType = 
-  result = tooltips_get_type()
-
-proc TOOLTIPS*(obj: pointer): PTooltips = 
-  result = cast[PTooltips](CHECK_CAST(obj, TYPE_TOOLTIPS()))
-
-proc TOOLTIPS_CLASS*(klass: pointer): PTooltipsClass = 
-  result = cast[PTooltipsClass](CHECK_CLASS_CAST(klass, TYPE_TOOLTIPS()))
-
-proc IS_TOOLTIPS*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOOLTIPS())
-
-proc IS_TOOLTIPS_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOOLTIPS())
-
-proc TOOLTIPS_GET_CLASS*(obj: pointer): PTooltipsClass = 
-  result = cast[PTooltipsClass](CHECK_GET_CLASS(obj, TYPE_TOOLTIPS()))
-
-proc delay*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_delay) shr
-      bp_TGtkTooltips_delay
-
-proc set_delay*(a: PTooltips, `delay`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`delay` shl bp_TGtkTooltips_delay) and bm_TGtkTooltips_delay)
-
-proc enabled*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_enabled) shr
-      bp_TGtkTooltips_enabled
-
-proc set_enabled*(a: PTooltips, `enabled`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`enabled` shl bp_TGtkTooltips_enabled) and bm_TGtkTooltips_enabled)
-
-proc have_grab*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_have_grab) shr
-      bp_TGtkTooltips_have_grab
-
-proc set_have_grab*(a: PTooltips, `have_grab`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`have_grab` shl bp_TGtkTooltips_have_grab) and
-      bm_TGtkTooltips_have_grab)
-
-proc use_sticky_delay*(a: PTooltips): guint = 
-  result = (a.Tooltipsflag0 and bm_TGtkTooltips_use_sticky_delay) shr
-      bp_TGtkTooltips_use_sticky_delay
-
-proc set_use_sticky_delay*(a: PTooltips, `use_sticky_delay`: guint) = 
-  a.Tooltipsflag0 = a.Tooltipsflag0 or
-      ((`use_sticky_delay` shl bp_TGtkTooltips_use_sticky_delay) and
-      bm_TGtkTooltips_use_sticky_delay)
-
-proc TYPE_TOOLBAR*(): GType = 
-  result = toolbar_get_type()
-
-proc TOOLBAR*(obj: pointer): PToolbar = 
-  result = cast[PToolbar](CHECK_CAST(obj, TYPE_TOOLBAR()))
-
-proc TOOLBAR_CLASS*(klass: pointer): PToolbarClass = 
-  result = cast[PToolbarClass](CHECK_CLASS_CAST(klass, TYPE_TOOLBAR()))
-
-proc IS_TOOLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TOOLBAR())
-
-proc IS_TOOLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TOOLBAR())
-
-proc TOOLBAR_GET_CLASS*(obj: pointer): PToolbarClass = 
-  result = cast[PToolbarClass](CHECK_GET_CLASS(obj, TYPE_TOOLBAR()))
-
-proc style_set*(a: PToolbar): guint = 
-  result = (a.Toolbarflag0 and bm_TGtkToolbar_style_set) shr
-      bp_TGtkToolbar_style_set
-
-proc set_style_set*(a: PToolbar, `style_set`: guint) = 
-  a.Toolbarflag0 = a.Toolbarflag0 or
-      (int16(`style_set` shl bp_TGtkToolbar_style_set) and
-      bm_TGtkToolbar_style_set)
-
-proc icon_size_set*(a: PToolbar): guint = 
-  result = (a.Toolbarflag0 and bm_TGtkToolbar_icon_size_set) shr
-      bp_TGtkToolbar_icon_size_set
-
-proc set_icon_size_set*(a: PToolbar, `icon_size_set`: guint) = 
-  a.Toolbarflag0 = a.Toolbarflag0 or
-      (int16(`icon_size_set` shl bp_TGtkToolbar_icon_size_set) and
-      bm_TGtkToolbar_icon_size_set)
-
-proc TYPE_TREE*(): GType = 
-  result = tree_get_type()
-
-proc TREE*(obj: pointer): PTree = 
-  result = cast[PTree](CHECK_CAST(obj, TYPE_TREE()))
-
-proc TREE_CLASS*(klass: pointer): PTreeClass = 
-  result = cast[PTreeClass](CHECK_CLASS_CAST(klass, TYPE_TREE()))
-
-proc IS_TREE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE())
-
-proc IS_TREE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE())
-
-proc TREE_GET_CLASS*(obj: pointer): PTreeClass = 
-  result = cast[PTreeClass](CHECK_GET_CLASS(obj, TYPE_TREE()))
-
-proc IS_ROOT_TREE*(obj: pointer): bool = 
-  result = (cast[PObject]((TREE(obj)).root_tree)) == (cast[PObject](obj))
-
-proc TREE_ROOT_TREE*(obj: pointer): PTree = 
-  result = TREE(obj).root_tree
-
-proc TREE_SELECTION_OLD*(obj: pointer): PGList = 
-  result = (TREE_ROOT_TREE(obj)).selection
-
-proc selection_mode*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_selection_mode) shr
-      bp_TGtkTree_selection_mode
-
-proc set_selection_mode*(a: PTree, `selection_mode`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`selection_mode` shl bp_TGtkTree_selection_mode) and
-      bm_TGtkTree_selection_mode)
-
-proc view_mode*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_view_mode) shr bp_TGtkTree_view_mode
-
-proc set_view_mode*(a: PTree, `view_mode`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`view_mode` shl bp_TGtkTree_view_mode) and bm_TGtkTree_view_mode)
-
-proc view_line*(a: PTree): guint = 
-  result = (a.Treeflag0 and bm_TGtkTree_view_line) shr bp_TGtkTree_view_line
-
-proc set_view_line*(a: PTree, `view_line`: guint) = 
-  a.Treeflag0 = a.Treeflag0 or
-      (int16(`view_line` shl bp_TGtkTree_view_line) and bm_TGtkTree_view_line)
-
-proc TYPE_TREE_DRAG_SOURCE*(): GType = 
-  result = tree_drag_source_get_type()
-
-proc TREE_DRAG_SOURCE*(obj: pointer): PTreeDragSource = 
-  result = cast[PTreeDragSource](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_DRAG_SOURCE()))
-
-proc IS_TREE_DRAG_SOURCE*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_DRAG_SOURCE())
-
-proc TREE_DRAG_SOURCE_GET_IFACE*(obj: pointer): PTreeDragSourceIface = 
-  result = cast[PTreeDragSourceIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_DRAG_SOURCE()))
-
-proc TYPE_TREE_DRAG_DEST*(): GType = 
-  result = tree_drag_dest_get_type()
-
-proc TREE_DRAG_DEST*(obj: pointer): PTreeDragDest = 
-  result = cast[PTreeDragDest](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_TREE_DRAG_DEST()))
-
-proc IS_TREE_DRAG_DEST*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_TREE_DRAG_DEST())
-
-proc TREE_DRAG_DEST_GET_IFACE*(obj: pointer): PTreeDragDestIface = 
-  result = cast[PTreeDragDestIface](G_TYPE_INSTANCE_GET_INTERFACE(obj, 
-      TYPE_TREE_DRAG_DEST()))
-
-proc TYPE_TREE_ITEM*(): GType = 
-  result = tree_item_get_type()
-
-proc TREE_ITEM*(obj: pointer): PTreeItem = 
-  result = cast[PTreeItem](CHECK_CAST(obj, TYPE_TREE_ITEM()))
-
-proc TREE_ITEM_CLASS*(klass: pointer): PTreeItemClass = 
-  result = cast[PTreeItemClass](CHECK_CLASS_CAST(klass, TYPE_TREE_ITEM()))
-
-proc IS_TREE_ITEM*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_ITEM())
-
-proc IS_TREE_ITEM_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_ITEM())
-
-proc TREE_ITEM_GET_CLASS*(obj: pointer): PTreeItemClass = 
-  result = cast[PTreeItemClass](CHECK_GET_CLASS(obj, TYPE_TREE_ITEM()))
-
-proc TREE_ITEM_SUBTREE*(obj: pointer): PWidget = 
-  result = (TREE_ITEM(obj)).subtree
-
-proc expanded*(a: PTreeItem): guint = 
-  result = (a.TreeItemflag0 and bm_TGtkTreeItem_expanded) shr
-      bp_TGtkTreeItem_expanded
-
-proc set_expanded*(a: PTreeItem, `expanded`: guint) = 
-  a.TreeItemflag0 = a.TreeItemflag0 or
-      (int16(`expanded` shl bp_TGtkTreeItem_expanded) and
-      bm_TGtkTreeItem_expanded)
-
-proc TYPE_TREE_SELECTION*(): GType = 
-  result = tree_selection_get_type()
-
-proc TREE_SELECTION*(obj: pointer): PTreeSelection = 
-  result = cast[PTreeSelection](CHECK_CAST(obj, TYPE_TREE_SELECTION()))
-
-proc TREE_SELECTION_CLASS*(klass: pointer): PTreeSelectionClass = 
-  result = cast[PTreeSelectionClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_SELECTION()))
-
-proc IS_TREE_SELECTION*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_SELECTION())
-
-proc IS_TREE_SELECTION_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_SELECTION())
-
-proc TREE_SELECTION_GET_CLASS*(obj: pointer): PTreeSelectionClass = 
-  result = cast[PTreeSelectionClass](CHECK_GET_CLASS(obj, TYPE_TREE_SELECTION()))
-
-proc TYPE_TREE_STORE*(): GType = 
-  result = tree_store_get_type()
-
-proc TREE_STORE*(obj: pointer): PTreeStore = 
-  result = cast[PTreeStore](CHECK_CAST(obj, TYPE_TREE_STORE()))
-
-proc TREE_STORE_CLASS*(klass: pointer): PTreeStoreClass = 
-  result = cast[PTreeStoreClass](CHECK_CLASS_CAST(klass, TYPE_TREE_STORE()))
-
-proc IS_TREE_STORE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_STORE())
-
-proc IS_TREE_STORE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_STORE())
-
-proc TREE_STORE_GET_CLASS*(obj: pointer): PTreeStoreClass = 
-  result = cast[PTreeStoreClass](CHECK_GET_CLASS(obj, TYPE_TREE_STORE()))
-
-proc columns_dirty*(a: PTreeStore): guint = 
-  result = (a.TreeStoreflag0 and bm_TGtkTreeStore_columns_dirty) shr
-      bp_TGtkTreeStore_columns_dirty
-
-proc set_columns_dirty*(a: PTreeStore, `columns_dirty`: guint) = 
-  a.TreeStoreflag0 = a.TreeStoreflag0 or
-      (int16(`columns_dirty` shl bp_TGtkTreeStore_columns_dirty) and
-      bm_TGtkTreeStore_columns_dirty)
-
-proc TYPE_TREE_VIEW_COLUMN*(): GType = 
-  result = tree_view_column_get_type()
-
-proc TREE_VIEW_COLUMN*(obj: pointer): PTreeViewColumn = 
-  result = cast[PTreeViewColumn](CHECK_CAST(obj, TYPE_TREE_VIEW_COLUMN()))
-
-proc TREE_VIEW_COLUMN_CLASS*(klass: pointer): PTreeViewColumnClass = 
-  result = cast[PTreeViewColumnClass](CHECK_CLASS_CAST(klass, 
-      TYPE_TREE_VIEW_COLUMN()))
-
-proc IS_TREE_VIEW_COLUMN*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_VIEW_COLUMN())
-
-proc IS_TREE_VIEW_COLUMN_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_VIEW_COLUMN())
-
-proc TREE_VIEW_COLUMN_GET_CLASS*(obj: pointer): PTreeViewColumnClass = 
-  result = cast[PTreeViewColumnClass](CHECK_GET_CLASS(obj, 
-      TYPE_TREE_VIEW_COLUMN()))
-
-proc visible*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_visible) shr
-      bp_TGtkTreeViewColumn_visible
-
-proc set_visible*(a: PTreeViewColumn, `visible`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`visible` shl bp_TGtkTreeViewColumn_visible) and
-      bm_TGtkTreeViewColumn_visible)
-
-proc resizable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_resizable) shr
-      bp_TGtkTreeViewColumn_resizable
-
-proc set_resizable*(a: PTreeViewColumn, `resizable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`resizable` shl bp_TGtkTreeViewColumn_resizable) and
-      bm_TGtkTreeViewColumn_resizable)
-
-proc clickable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_clickable) shr
-      bp_TGtkTreeViewColumn_clickable
-
-proc set_clickable*(a: PTreeViewColumn, `clickable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`clickable` shl bp_TGtkTreeViewColumn_clickable) and
-      bm_TGtkTreeViewColumn_clickable)
-
-proc dirty*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_dirty) shr
-      bp_TGtkTreeViewColumn_dirty
-
-proc set_dirty*(a: PTreeViewColumn, `dirty`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`dirty` shl bp_TGtkTreeViewColumn_dirty) and
-      bm_TGtkTreeViewColumn_dirty)
-
-proc show_sort_indicator*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and
-      bm_TGtkTreeViewColumn_show_sort_indicator) shr
-      bp_TGtkTreeViewColumn_show_sort_indicator
-
-proc set_show_sort_indicator*(a: PTreeViewColumn, 
-                              `show_sort_indicator`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`show_sort_indicator` shl
-      bp_TGtkTreeViewColumn_show_sort_indicator) and
-      bm_TGtkTreeViewColumn_show_sort_indicator)
-
-proc maybe_reordered*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_maybe_reordered) shr
-      bp_TGtkTreeViewColumn_maybe_reordered
-
-proc set_maybe_reordered*(a: PTreeViewColumn, `maybe_reordered`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`maybe_reordered` shl bp_TGtkTreeViewColumn_maybe_reordered) and
-      bm_TGtkTreeViewColumn_maybe_reordered)
-
-proc reorderable*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_reorderable) shr
-      bp_TGtkTreeViewColumn_reorderable
-
-proc set_reorderable*(a: PTreeViewColumn, `reorderable`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`reorderable` shl bp_TGtkTreeViewColumn_reorderable) and
-      bm_TGtkTreeViewColumn_reorderable)
-
-proc use_resized_width*(a: PTreeViewColumn): guint = 
-  result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_use_resized_width) shr
-      bp_TGtkTreeViewColumn_use_resized_width
-
-proc set_use_resized_width*(a: PTreeViewColumn, `use_resized_width`: guint) = 
-  a.TreeViewColumnflag0 = a.TreeViewColumnflag0 or
-      (int16(`use_resized_width` shl bp_TGtkTreeViewColumn_use_resized_width) and
-      bm_TGtkTreeViewColumn_use_resized_width)
-
-proc flags*(a: PRBNode): guint = 
-  result = (a.flag0 and bm_TGtkRBNode_flags) shr bp_TGtkRBNode_flags
-
-proc set_flags*(a: PRBNode, `flags`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`flags` shl bp_TGtkRBNode_flags) and bm_TGtkRBNode_flags)
-
-proc parity*(a: PRBNode): guint = 
-  result = (a.flag0 and bm_TGtkRBNode_parity) shr bp_TGtkRBNode_parity
-
-proc set_parity*(a: PRBNode, `parity`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`parity` shl bp_TGtkRBNode_parity) and bm_TGtkRBNode_parity)
-
-proc GET_COLOR*(node: PRBNode): guint = 
-  if node == nil: 
-    Result = RBNODE_BLACK
-  elif (int(flags(node)) and RBNODE_RED) == RBNODE_RED: 
-    Result = RBNODE_RED
-  else: 
-    Result = RBNODE_BLACK
-
-proc SET_COLOR*(node: PRBNode, color: guint) = 
-  if node == nil: 
-    return 
-  if ((flags(node) and (color)) != color): 
-    set_flags(node, flags(node) xor cint(RBNODE_RED or RBNODE_BLACK))
-
-proc GET_HEIGHT*(node: PRBNode): gint = 
-  var if_local1: gint
-  if node.children != nil: 
-    if_local1 = node.children.root.offset
-  else: 
-    if_local1 = 0
-  result = node.offset -
-      ((node.left.offset) + node.right.offset + if_local1)
-
-proc FLAG_SET*(node: PRBNode, flag: guint): bool = 
-  result = (node != nil) and ((flags(node) and (flag)) == flag)
-
-proc SET_FLAG*(node: PRBNode, flag: guint16) = 
-  set_flags(node, (flag) or flags(node))
-
-proc UNSET_FLAG*(node: PRBNode, flag: guint16) = 
-  set_flags(node, (not (flag)) and flags(node))
-
-proc FLAG_SET*(tree_view: PTreeView, flag: guint): bool = 
-  result = ((tree_view.priv.flags) and (flag)) == flag
-
-proc HEADER_HEIGHT*(tree_view: PTreeView): int32 = 
-  var if_local1: int32
-  if FLAG_SET(tree_view, TREE_VIEW_HEADERS_VISIBLE): 
-    if_local1 = tree_view.priv.header_height
-  else: 
-    if_local1 = 0
-  result = if_local1
-
-proc COLUMN_REQUESTED_WIDTH*(column: PTreeViewColumn): int32 = 
-  var MinWidth, MaxWidth: int
-  if column.min_width != - 1'i32: 
-    MinWidth = column.min_width
-  else: 
-    MinWidth = column.requested_width
-  if column.max_width != - 1'i32: 
-    MaxWidth = column.max_width
-  else: 
-    MaxWidth = column.requested_width
-  result = CLAMP(column.requested_width, MinWidth, MaxWidth).int32
-
-proc DRAW_EXPANDERS*(tree_view: PTreeView): bool = 
-  result = (not (FLAG_SET(tree_view, TREE_VIEW_IS_LIST))) and
-      (FLAG_SET(tree_view, TREE_VIEW_SHOW_EXPANDERS))
-
-proc COLUMN_DRAG_DEAD_MULTIPLIER*(tree_view: PTreeView): int32 = 
-  result = 10'i32 * (HEADER_HEIGHT(tree_view))
-
-proc scroll_to_use_align*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_scroll_to_use_align) shr
-      bp_TGtkTreeViewPrivate_scroll_to_use_align
-
-proc set_scroll_to_use_align*(a: PTreeViewPrivate, 
-                              `scroll_to_use_align`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`scroll_to_use_align` shl
-      bp_TGtkTreeViewPrivate_scroll_to_use_align) and
-      bm_TGtkTreeViewPrivate_scroll_to_use_align)
-
-proc fixed_height_check*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_fixed_height_check) shr
-      bp_TGtkTreeViewPrivate_fixed_height_check
-
-proc set_fixed_height_check*(a: PTreeViewPrivate, 
-                             `fixed_height_check`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`fixed_height_check` shl
-      bp_TGtkTreeViewPrivate_fixed_height_check) and
-      bm_TGtkTreeViewPrivate_fixed_height_check)
-
-proc reorderable*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_reorderable) shr
-      bp_TGtkTreeViewPrivate_reorderable
-
-proc set_reorderable*(a: PTreeViewPrivate, `reorderable`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`reorderable` shl bp_TGtkTreeViewPrivate_reorderable) and
-      bm_TGtkTreeViewPrivate_reorderable)
-
-proc header_has_focus*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_header_has_focus) shr
-      bp_TGtkTreeViewPrivate_header_has_focus
-
-proc set_header_has_focus*(a: PTreeViewPrivate, `header_has_focus`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`header_has_focus` shl bp_TGtkTreeViewPrivate_header_has_focus) and
-      bm_TGtkTreeViewPrivate_header_has_focus)
-
-proc drag_column_window_state*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_drag_column_window_state) shr
-      bp_TGtkTreeViewPrivate_drag_column_window_state
-
-proc set_drag_column_window_state*(a: PTreeViewPrivate, 
-                                   `drag_column_window_state`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`drag_column_window_state` shl
-      bp_TGtkTreeViewPrivate_drag_column_window_state) and
-      bm_TGtkTreeViewPrivate_drag_column_window_state)
-
-proc has_rules*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_has_rules) shr
-      bp_TGtkTreeViewPrivate_has_rules
-
-proc set_has_rules*(a: PTreeViewPrivate, `has_rules`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`has_rules` shl bp_TGtkTreeViewPrivate_has_rules) and
-      bm_TGtkTreeViewPrivate_has_rules)
-
-proc mark_rows_col_dirty*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_mark_rows_col_dirty) shr
-      bp_TGtkTreeViewPrivate_mark_rows_col_dirty
-
-proc set_mark_rows_col_dirty*(a: PTreeViewPrivate, 
-                              `mark_rows_col_dirty`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`mark_rows_col_dirty` shl
-      bp_TGtkTreeViewPrivate_mark_rows_col_dirty) and
-      bm_TGtkTreeViewPrivate_mark_rows_col_dirty)
-
-proc enable_search*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_enable_search) shr
-      bp_TGtkTreeViewPrivate_enable_search
-
-proc set_enable_search*(a: PTreeViewPrivate, `enable_search`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`enable_search` shl bp_TGtkTreeViewPrivate_enable_search) and
-      bm_TGtkTreeViewPrivate_enable_search)
-
-proc disable_popdown*(a: PTreeViewPrivate): guint = 
-  result = (a.flag0 and bm_TGtkTreeViewPrivate_disable_popdown) shr
-      bp_TGtkTreeViewPrivate_disable_popdown
-
-proc set_disable_popdown*(a: PTreeViewPrivate, `disable_popdown`: guint) = 
-  a.flag0 = a.flag0 or
-      (int16(`disable_popdown` shl bp_TGtkTreeViewPrivate_disable_popdown) and
-      bm_TGtkTreeViewPrivate_disable_popdown)
-
-proc SET_FLAG*(tree_view: PTreeView, flag: guint) = 
-  tree_view.priv.flags = tree_view.priv.flags or (flag)
-
-proc UNSET_FLAG*(tree_view: PTreeView, flag: guint) = 
-  tree_view.priv.flags = tree_view.priv.flags and not (flag)
-
-proc TYPE_TREE_VIEW*(): GType = 
-  result = tree_view_get_type()
-
-proc TREE_VIEW*(obj: pointer): PTreeView = 
-  result = cast[PTreeView](CHECK_CAST(obj, TYPE_TREE_VIEW()))
-
-proc TREE_VIEW_CLASS*(klass: pointer): PTreeViewClass = 
-  result = cast[PTreeViewClass](CHECK_CLASS_CAST(klass, TYPE_TREE_VIEW()))
-
-proc IS_TREE_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_TREE_VIEW())
-
-proc IS_TREE_VIEW_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_TREE_VIEW())
-
-proc TREE_VIEW_GET_CLASS*(obj: pointer): PTreeViewClass = 
-  result = cast[PTreeViewClass](CHECK_GET_CLASS(obj, TYPE_TREE_VIEW()))
-
-proc TYPE_VBUTTON_BOX*(): GType = 
-  result = vbutton_box_get_type()
-
-proc VBUTTON_BOX*(obj: pointer): PVButtonBox = 
-  result = cast[PVButtonBox](CHECK_CAST(obj, TYPE_VBUTTON_BOX()))
-
-proc VBUTTON_BOX_CLASS*(klass: pointer): PVButtonBoxClass = 
-  result = cast[PVButtonBoxClass](CHECK_CLASS_CAST(klass, TYPE_VBUTTON_BOX()))
-
-proc IS_VBUTTON_BOX*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VBUTTON_BOX())
-
-proc IS_VBUTTON_BOX_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VBUTTON_BOX())
-
-proc VBUTTON_BOX_GET_CLASS*(obj: pointer): PVButtonBoxClass = 
-  result = cast[PVButtonBoxClass](CHECK_GET_CLASS(obj, TYPE_VBUTTON_BOX()))
-
-proc TYPE_VIEWPORT*(): GType = 
-  result = viewport_get_type()
-
-proc VIEWPORT*(obj: pointer): PViewport = 
-  result = cast[PViewport](CHECK_CAST(obj, TYPE_VIEWPORT()))
-
-proc VIEWPORT_CLASS*(klass: pointer): PViewportClass = 
-  result = cast[PViewportClass](CHECK_CLASS_CAST(klass, TYPE_VIEWPORT()))
-
-proc IS_VIEWPORT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VIEWPORT())
-
-proc IS_VIEWPORT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VIEWPORT())
-
-proc VIEWPORT_GET_CLASS*(obj: pointer): PViewportClass = 
-  result = cast[PViewportClass](CHECK_GET_CLASS(obj, TYPE_VIEWPORT()))
-
-proc TYPE_VPANED*(): GType = 
-  result = vpaned_get_type()
-
-proc VPANED*(obj: pointer): PVPaned = 
-  result = cast[PVPaned](CHECK_CAST(obj, TYPE_VPANED()))
-
-proc VPANED_CLASS*(klass: pointer): PVPanedClass = 
-  result = cast[PVPanedClass](CHECK_CLASS_CAST(klass, TYPE_VPANED()))
-
-proc IS_VPANED*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VPANED())
-
-proc IS_VPANED_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VPANED())
-
-proc VPANED_GET_CLASS*(obj: pointer): PVPanedClass = 
-  result = cast[PVPanedClass](CHECK_GET_CLASS(obj, TYPE_VPANED()))
-
-proc TYPE_VRULER*(): GType = 
-  result = vruler_get_type()
-
-proc VRULER*(obj: pointer): PVRuler = 
-  result = cast[PVRuler](CHECK_CAST(obj, TYPE_VRULER()))
-
-proc VRULER_CLASS*(klass: pointer): PVRulerClass = 
-  result = cast[PVRulerClass](CHECK_CLASS_CAST(klass, TYPE_VRULER()))
-
-proc IS_VRULER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VRULER())
-
-proc IS_VRULER_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VRULER())
-
-proc VRULER_GET_CLASS*(obj: pointer): PVRulerClass = 
-  result = cast[PVRulerClass](CHECK_GET_CLASS(obj, TYPE_VRULER()))
-
-proc TYPE_VSCALE*(): GType = 
-  result = vscale_get_type()
-
-proc VSCALE*(obj: pointer): PVScale = 
-  result = cast[PVScale](CHECK_CAST(obj, TYPE_VSCALE()))
-
-proc VSCALE_CLASS*(klass: pointer): PVScaleClass = 
-  result = cast[PVScaleClass](CHECK_CLASS_CAST(klass, TYPE_VSCALE()))
-
-proc IS_VSCALE*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSCALE())
-
-proc IS_VSCALE_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSCALE())
-
-proc VSCALE_GET_CLASS*(obj: pointer): PVScaleClass = 
-  result = cast[PVScaleClass](CHECK_GET_CLASS(obj, TYPE_VSCALE()))
-
-proc TYPE_VSCROLLBAR*(): GType = 
-  result = vscrollbar_get_type()
-
-proc VSCROLLBAR*(obj: pointer): PVScrollbar = 
-  result = cast[PVScrollbar](CHECK_CAST(obj, TYPE_VSCROLLBAR()))
-
-proc VSCROLLBAR_CLASS*(klass: pointer): PVScrollbarClass = 
-  result = cast[PVScrollbarClass](CHECK_CLASS_CAST(klass, TYPE_VSCROLLBAR()))
-
-proc IS_VSCROLLBAR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSCROLLBAR())
-
-proc IS_VSCROLLBAR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSCROLLBAR())
-
-proc VSCROLLBAR_GET_CLASS*(obj: pointer): PVScrollbarClass = 
-  result = cast[PVScrollbarClass](CHECK_GET_CLASS(obj, TYPE_VSCROLLBAR()))
-
-proc TYPE_VSEPARATOR*(): GType = 
-  result = vseparator_get_type()
-
-proc VSEPARATOR*(obj: pointer): PVSeparator = 
-  result = cast[PVSeparator](CHECK_CAST(obj, TYPE_VSEPARATOR()))
-
-proc VSEPARATOR_CLASS*(klass: pointer): PVSeparatorClass = 
-  result = cast[PVSeparatorClass](CHECK_CLASS_CAST(klass, TYPE_VSEPARATOR()))
-
-proc IS_VSEPARATOR*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, TYPE_VSEPARATOR())
-
-proc IS_VSEPARATOR_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, TYPE_VSEPARATOR())
-
-proc VSEPARATOR_GET_CLASS*(obj: pointer): PVSeparatorClass = 
-  # these were missing:
-  result = cast[PVSeparatorClass](CHECK_GET_CLASS(obj, TYPE_VSEPARATOR()))
-
-type 
-  Tcelllayout {.pure, final.} = object
-
-  PCellLayout* = tcelllayout
-  PPGtkCellLayout* = ptr PCellLayout
-  PSignalRunType* = ptr TSignalRunType
-  TSignalRunType* = int32
-  PFileChooserAction* = ptr TFileChooserAction
-  TFileChooserAction* = enum 
-    FILE_CHOOSER_ACTION_OPEN, FILE_CHOOSER_ACTION_SAVE, 
-    FILE_CHOOSER_ACTION_SELECT_FOLDER, FILE_CHOOSER_ACTION_CREATE_FOLDER
-  PFileChooserError* = ptr TFileChooserError
-  TFileChooserError* = enum 
-    FILE_CHOOSER_ERROR_NONEXISTENT, FILE_CHOOSER_ERROR_BAD_FILENAME
-
-  TFileChooser = object of TDialog
-  PFileChooser* = ptr TFileChooser
-  PPFileChooser* = ptr PFileChooser
-
-
-const 
-  ARG_READWRITE* = ARG_READABLE or ARG_WRITABLE
-
-proc entry_add_signal*(binding_set: PBindingSet, keyval: guint, 
-                               modifiers: gdk2.TModifierType, 
-                               signal_name: cstring, n_args: guint){.varargs, 
-    importc: "gtk_binding_entry_add_signal", cdecl, dynlib: lib.}
-proc clist_new_with_titles*(columns: gint): PCList{.varargs, cdecl, 
-    importc: "gtk_clist_new_with_titles", dynlib: lib.}
-proc prepend*(clist: PCList): gint{.importc: "gtk_clist_prepend", varargs, 
-    cdecl, dynlib: lib.}
-proc append*(clist: PCList): gint{.importc: "gtk_clist_append", varargs, 
-    cdecl, dynlib: lib.}
-proc insert*(clist: PCList, row: gint): gint{.varargs, cdecl, 
-    importc: "gtk_clist_insert", dynlib: lib.}
-proc set_attributes*(cell_layout: PCellLayout, cell: PCellRenderer){.
-    cdecl, varargs, importc: "gtk_cell_layout_set_attributes", dynlib: lib, 
-    importc: "gtk_cell_layout_set_attributes".}
-proc add_with_properties*(container: PContainer, widget: PWidget, 
-                                    first_prop_name: cstring){.varargs, 
-    importc: "gtk_container_add_with_properties", cdecl, dynlib: lib.}
-proc child_set*(container: PContainer, child: PWidget, 
-                          first_prop_name: cstring){.varargs, cdecl, 
-    importc: "gtk_container_child_set", dynlib: lib.}
-proc child_get*(container: PContainer, child: PWidget, 
-                          first_prop_name: cstring){.varargs, cdecl, 
-    importc: "gtk_container_child_get", dynlib: lib.}
-proc child_set_valist*(container: PContainer, child: PWidget, 
-                                 first_property_name: cstring){.varargs, 
-    importc: "gtk_container_child_set_valist", cdecl, dynlib: lib.}
-proc child_get_valist*(container: PContainer, child: PWidget, 
-                                 first_property_name: cstring){.varargs, 
-    importc: "gtk_container_child_get_valist", cdecl, dynlib: lib.}
-proc ctree_new_with_titles*(columns: gint, tree_column: gint): PCTree{.
-    importc: "gtk_ctree_new_with_titles", varargs, cdecl, dynlib: lib.}
-proc get_vector*(curve: PCurve, veclen: int32){.varargs, cdecl, 
-    importc: "gtk_curve_get_vector", dynlib: lib.}
-proc set_vector*(curve: PCurve, veclen: int32){.varargs, cdecl, 
-    importc: "gtk_curve_set_vector", dynlib: lib.}
-proc add_buttons*(dialog: PDialog, first_button_text: cstring){.varargs, 
-    cdecl, importc: "gtk_dialog_add_buttons", dynlib: lib.}
-proc dialog_new_with_buttons*(title: cstring, parent: PWindow, 
-                              flags: TDialogFlags, first_button_text: cstring): PDialog{.
-    varargs, cdecl, importc: "gtk_dialog_new_with_buttons", dynlib: lib.}
-proc list_store_new*(n_columns: gint): PListStore{.varargs, cdecl, 
-    importc: "gtk_list_store_new", dynlib: lib.}
-proc set*(list_store: PListStore, iter: PTreeIter){.varargs, cdecl, 
-    importc: "gtk_list_store_set", dynlib: lib.}
-proc set_valist*(list_store: PListStore, iter: PTreeIter){.varargs, 
-    cdecl, importc: "gtk_list_store_set_valist", dynlib: lib.}
-proc message_dialog_new*(parent: PWindow, flags: TDialogFlags, 
-                         thetype: TMessageType, buttons: TButtonsType, 
-                         message_format: cstring): PMessageDialog{.varargs, 
-    cdecl, importc: "gtk_message_dialog_new", dynlib: lib.}
-proc set_markup*(msgDialog: PMessageDialog, str: cstring) {.cdecl,
-    importc: "gtk_message_dialog_set_markup", dynlib: lib.}
-
-proc signal_new*(name: cstring, signal_flags: TSignalRunType, 
-                 object_type: TType, function_offset: guint, 
-                 marshaller: TSignalMarshaller, return_val: TType, n_args: guint): guint{.
-    varargs, importc: "gtk_signal_new", cdecl, dynlib: lib.}
-proc signal_emit*(anObject: PObject, signal_id: guint){.varargs, cdecl, 
-    importc: "gtk_signal_emit", dynlib: lib.}
-proc signal_emit_by_name*(anObject: PObject, name: cstring){.varargs, cdecl, 
-    importc: "gtk_signal_emit_by_name", dynlib: lib.}
-proc insert_with_tags*(buffer: PTextBuffer, iter: PTextIter, 
-                                   text: cstring, length: gint, 
-                                   first_tag: PTextTag){.varargs, 
-    importc: "gtk_text_buffer_insert_with_tags", cdecl, dynlib: lib.}
-proc insert_with_tags_by_name*(buffer: PTextBuffer, iter: PTextIter, 
-    text: cstring, length: gint, first_tag_name: cstring){.varargs, 
-    importc: "gtk_text_buffer_insert_with_tags_by_name", cdecl, dynlib: lib.}
-proc create_tag*(buffer: PTextBuffer, tag_name: cstring, 
-                             first_property_name: cstring): PTextTag{.varargs, 
-    importc: "gtk_text_buffer_create_tag", cdecl, dynlib: lib.}
-proc get*(tree_model: PTreeModel, iter: PTreeIter){.varargs, 
-    importc: "gtk_tree_model_get", cdecl, dynlib: lib.}
-proc get_valist*(tree_model: PTreeModel, iter: PTreeIter){.varargs, 
-    importc: "gtk_tree_model_get_valist", cdecl, dynlib: lib.}
-proc tree_store_new*(n_columns: gint): PTreeStore{.varargs, cdecl, 
-    importc: "gtk_tree_store_new", dynlib: lib.}
-proc set*(tree_store: PTreeStore, iter: PTreeIter){.varargs, cdecl, 
-    importc: "gtk_tree_store_set", dynlib: lib.}
-proc set_valist*(tree_store: PTreeStore, iter: PTreeIter){.varargs, 
-    cdecl, importc: "gtk_tree_store_set_valist", dynlib: lib.}
-proc iter_is_valid*(tree_store: PTreeStore, iter: PTreeIter): gboolean{.
-    cdecl, importc: "gtk_tree_store_iter_is_valid", dynlib: lib.}
-proc reorder*(tree_store: PTreeStore, parent: PTreeIter, 
-                         new_order: pgint){.cdecl, 
-    importc: "gtk_tree_store_reorder", dynlib: lib.}
-proc swap*(tree_store: PTreeStore, a: PTreeIter, b: PTreeIter){.
-    cdecl, importc: "gtk_tree_store_swap", dynlib: lib.}
-proc move_before*(tree_store: PTreeStore, iter: PTreeIter, 
-                             position: PTreeIter){.cdecl, 
-    importc: "gtk_tree_store_move_before", dynlib: lib.}
-proc move_after*(tree_store: PTreeStore, iter: PTreeIter, 
-                            position: PTreeIter){.cdecl, 
-    importc: "gtk_tree_store_move_after", dynlib: lib.}
-proc insert_column_with_attributes*(tree_view: PTreeView, 
-    position: gint, title: cstring, cell: PCellRenderer): gint{.varargs, 
-    importc: "gtk_tree_view_insert_column_with_attributes", cdecl, dynlib: lib.}
-proc tree_view_column_new_with_attributes*(title: cstring, cell: PCellRenderer): PTreeViewColumn{.
-    importc: "gtk_tree_view_column_new_with_attributes", varargs, cdecl, 
-    dynlib: lib.}
-proc column_set_attributes*(tree_column: PTreeViewColumn, 
-                                      cell_renderer: PCellRenderer){.
-    importc: "gtk_tree_view_column_set_attributes", varargs, cdecl, dynlib: lib.}
-proc widget_new*(thetype: TType, first_property_name: cstring): PWidget{.
-    importc: "gtk_widget_new", varargs, cdecl, dynlib: lib.}
-proc set*(widget: PWidget, first_property_name: cstring){.varargs, 
-    importc: "gtk_widget_set", cdecl, dynlib: lib.}
-proc queue_clear*(widget: PWidget){.importc: "gtk_widget_queue_clear", 
-    cdecl, dynlib: lib.}
-proc queue_clear_area*(widget: PWidget, x: gint, y: gint, width: gint, 
-                              height: gint){.cdecl, 
-    importc: "gtk_widget_queue_clear_area", dynlib: lib.}
-proc draw*(widget: PWidget, area: gdk2.PRectangle){.cdecl, 
-    importc: "gtk_widget_draw", dynlib: lib.}
-proc style_get_valist*(widget: PWidget, first_property_name: cstring){.
-    varargs, cdecl, importc: "gtk_widget_style_get_valist", dynlib: lib.}
-proc style_get*(widget: PWidget, first_property_name: cstring){.varargs, 
-    cdecl, importc: "gtk_widget_style_get", dynlib: lib.}
-proc file_chooser_dialog_new*(title: cstring, parent: PWindow, 
-                              action: TFileChooserAction, 
-                              first_button_text: cstring): PFileChooser{.cdecl, 
-    varargs, dynlib: lib, importc: "gtk_file_chooser_dialog_new".}
-        
-proc file_chooser_dialog_new_with_backend*(title: cstring, parent: PWindow, 
-    action: TFileChooserAction, backend: cstring, first_button_text: cstring): PFileChooser{.
-    varargs, cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_dialog_new_with_backend".}
-proc reference*(anObject: PObject): PObject{.cdecl, importc: "gtk_object_ref", 
-    dynlib: lib.}
-proc unref*(anObject: PObject){.cdecl, importc: "gtk_object_unref", 
-                                       dynlib: lib.}
-proc weakref*(anObject: PObject, notify: TDestroyNotify, data: gpointer){.
-    cdecl, importc: "gtk_object_weakref", dynlib: lib.}
-proc weakunref*(anObject: PObject, notify: TDestroyNotify, data: gpointer){.
-    cdecl, importc: "gtk_object_weakunref", dynlib: lib.}
-proc set_data*(anObject: PObject, key: cstring, data: gpointer){.cdecl, 
-    importc: "gtk_object_set_data", dynlib: lib.}
-proc set_data_full*(anObject: PObject, key: cstring, data: gpointer, 
-                           destroy: TDestroyNotify){.
-    importc: "gtk_object_set_data_full", cdecl, dynlib: lib.}
-proc remove_data*(anObject: PObject, key: cstring){.cdecl, 
-    importc: "gtk_object_remove_data", dynlib: lib.}
-proc get_data*(anObject: PObject, key: cstring): gpointer{.cdecl, 
-    importc: "gtk_object_get_data", dynlib: lib.}
-proc remove_no_notify*(anObject: PObject, key: cstring){.cdecl, 
-    importc: "gtk_object_remove_no_notify", dynlib: lib.}
-proc set_user_data*(anObject: PObject, data: gpointer){.cdecl, 
-    importc: "gtk_object_set_user_data", dynlib: lib.}
-proc get_user_data*(anObject: PObject): gpointer{.cdecl, 
-    importc: "gtk_object_get_user_data", dynlib: lib.}
-proc set_data_by_id*(anObject: PObject, data_id: TGQuark, data: gpointer){.
-    cdecl, importc: "gtk_object_set_data_by_id", dynlib: lib.}
-proc set_data_by_id_full*(anObject: PObject, data_id: TGQuark, 
-                                 data: gpointer, destroy: TDestroyNotify){.
-    cdecl, importc: "gtk_object_set_data_by_id_full", dynlib: lib.}
-proc get_data_by_id*(anObject: PObject, data_id: TGQuark): gpointer{.
-    cdecl, importc: "gtk_object_get_data_by_id", dynlib: lib.}
-proc remove_data_by_id*(anObject: PObject, data_id: TGQuark){.cdecl, 
-    importc: "gtk_object_remove_data_by_id", dynlib: lib.}
-proc remove_no_notify_by_id*(anObject: PObject, key_id: TGQuark){.cdecl, 
-    importc: "gtk_object_remove_no_notify_by_id", dynlib: lib.}
-proc object_data_try_key*(str: cstring): TGQuark{.cdecl, 
-    importc: "gtk_object_data_try_key", dynlib: lib.}
-proc object_data_force_id*(str: cstring): TGQuark{.cdecl, 
-    importc: "gtk_object_data_force_id", dynlib: lib.}
-proc get*(anObject: PObject, first_property_name: cstring){.cdecl, 
-    importc: "gtk_object_get", varargs, dynlib: lib.}
-proc set*(anObject: PObject, first_property_name: cstring){.cdecl, 
-    importc: "gtk_object_set", varargs, dynlib: lib.}
-proc object_add_arg_type*(arg_name: cstring, arg_type: TType, arg_flags: guint, 
-                          arg_id: guint){.cdecl, 
-    importc: "gtk_object_add_arg_type", dynlib: lib.}
-
-type 
-  TFileFilter {.pure, final.} = object
-  PFileFilter* = ptr TFileFilter
-  PPGtkFileFilter* = ptr PFileFilter
-  PFileFilterFlags* = ptr TFileFilterFlags
-  TFileFilterFlags* = enum 
-    FILE_FILTER_FILENAME = 1 shl 0, FILE_FILTER_URI = 1 shl 1, 
-    FILE_FILTER_DISPLAY_NAME = 1 shl 2, FILE_FILTER_MIME_TYPE = 1 shl 3
-  PFileFilterInfo* = ptr TFileFilterInfo
-  TFileFilterInfo*{.final, pure.} = object 
-    contains*: TFileFilterFlags
-    filename*: cstring
-    uri*: cstring
-    display_name*: cstring
-    mime_type*: cstring
-
-  TFileFilterFunc* = proc (filter_info: PFileFilterInfo, data: gpointer): gboolean{.
-      cdecl.}
-
-proc TYPE_FILE_FILTER*(): GType
-proc FILE_FILTER*(obj: pointer): PFileFilter
-proc IS_FILE_FILTER*(obj: pointer): gboolean
-proc file_filter_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "gtk_file_filter_get_type".}
-proc file_filter_new*(): PFileFilter{.cdecl, dynlib: lib, 
-                                      importc: "gtk_file_filter_new".}
-proc set_name*(filter: PFileFilter, name: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_set_name".}
-proc get_name*(filter: PFileFilter): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_file_filter_get_name".}
-proc add_mime_type*(filter: PFileFilter, mime_type: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_add_mime_type".}
-proc add_pattern*(filter: PFileFilter, pattern: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_add_pattern".}
-proc add_custom*(filter: PFileFilter, needed: TFileFilterFlags, 
-                             func: TFileFilterFunc, data: gpointer, 
-                             notify: TGDestroyNotify){.cdecl, dynlib: lib, 
-    importc: "gtk_file_filter_add_custom".}
-proc get_needed*(filter: PFileFilter): TFileFilterFlags{.cdecl, 
-    dynlib: lib, importc: "gtk_file_filter_get_needed".}
-proc filter*(filter: PFileFilter, filter_info: PFileFilterInfo): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_filter_filter".}
-proc TYPE_FILE_FILTER(): GType = 
-  result = file_filter_get_type()
-
-proc FILE_FILTER(obj: pointer): PFileFilter = 
-  result = cast[PFileFilter](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_FILE_FILTER()))
-
-proc IS_FILE_FILTER(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_FILE_FILTER())
-
-proc file_chooser_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "gtk_file_chooser_get_type".}
-proc file_chooser_error_quark*(): TGQuark{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_error_quark".}
-proc TYPE_FILE_CHOOSER*(): GType = 
-  result = file_chooser_get_type()
-
-proc FILE_CHOOSER*(obj: pointer): PFileChooser = 
-  result = cast[PFileChooser](G_TYPE_CHECK_INSTANCE_CAST(obj, 
-      TYPE_FILE_CHOOSER()))
-
-proc IS_FILE_CHOOSER*(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_FILE_CHOOSER())
-
-proc set_action*(chooser: PFileChooser, action: TFileChooserAction){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_action".}
-proc get_action*(chooser: PFileChooser): TFileChooserAction{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_action".}
-proc set_local_only*(chooser: PFileChooser, local_only: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_local_only".}
-proc get_local_only*(chooser: PFileChooser): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_local_only".}
-proc set_select_multiple*(chooser: PFileChooser, 
-                                       select_multiple: gboolean){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_set_select_multiple".}
-proc get_select_multiple*(chooser: PFileChooser): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_select_multiple".}
-proc set_current_name*(chooser: PFileChooser, name: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_name".}
-proc get_filename*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filename".}
-proc set_filename*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_filename".}
-proc select_filename*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_select_filename".}
-proc unselect_filename*(chooser: PFileChooser, filename: cstring){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_unselect_filename".}
-proc select_all*(chooser: PFileChooser){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_select_all".}
-proc unselect_all*(chooser: PFileChooser){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_unselect_all".}
-proc get_filenames*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filenames".}
-proc set_current_folder*(chooser: PFileChooser, filename: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_folder".}
-proc get_current_folder*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_current_folder".}
-proc get_uri*(chooser: PFileChooser): cstring{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_get_uri".}
-proc set_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_uri".}
-proc select_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_select_uri".}
-proc unselect_uri*(chooser: PFileChooser, uri: cstring){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_unselect_uri".}
-proc get_uris*(chooser: PFileChooser): PGSList{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_get_uris".}
-proc set_current_folder_uri*(chooser: PFileChooser, uri: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_current_folder_uri".}
-proc get_current_folder_uri*(chooser: PFileChooser): cstring{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_current_folder_uri".}
-proc set_preview_widget*(chooser: PFileChooser, 
-                                      preview_widget: PWidget){.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_set_preview_widget".}
-proc get_preview_widget*(chooser: PFileChooser): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_widget".}
-proc set_preview_widget_active*(chooser: PFileChooser, 
-    active: gboolean){.cdecl, dynlib: lib, 
-                       importc: "gtk_file_chooser_set_preview_widget_active".}
-proc get_preview_widget_active*(chooser: PFileChooser): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_preview_widget_active".}
-proc set_use_preview_label*(chooser: PFileChooser, 
-    use_label: gboolean){.cdecl, dynlib: lib, 
-                          importc: "gtk_file_chooser_set_use_preview_label".}
-proc get_use_preview_label*(chooser: PFileChooser): gboolean{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_get_use_preview_label".}
-proc get_preview_filename*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_filename".}
-proc get_preview_uri*(chooser: PFileChooser): cstring{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_preview_uri".}
-proc set_extra_widget*(chooser: PFileChooser, extra_widget: PWidget){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_extra_widget".}
-proc get_extra_widget*(chooser: PFileChooser): PWidget{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_extra_widget".}
-proc add_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_add_filter".}
-proc remove_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_remove_filter".}
-proc list_filters*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_list_filters".}
-proc set_filter*(chooser: PFileChooser, filter: PFileFilter){.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_set_filter".}
-proc get_filter*(chooser: PFileChooser): PFileFilter{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_get_filter".}
-proc add_shortcut_folder*(chooser: PFileChooser, folder: cstring, 
-                                       error: pointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_add_shortcut_folder".}
-proc remove_shortcut_folder*(chooser: PFileChooser, 
-    folder: cstring, error: pointer): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_remove_shortcut_folder".}
-proc list_shortcut_folders*(chooser: PFileChooser): PGSList{.cdecl, 
-    dynlib: lib, importc: "gtk_file_chooser_list_shortcut_folders".}
-proc add_shortcut_folder_uri*(chooser: PFileChooser, uri: cstring, 
-    error: pointer): gboolean{.cdecl, dynlib: lib, importc: "gtk_file_chooser_add_shortcut_folder_uri".}
-proc remove_shortcut_folder_uri*(chooser: PFileChooser, 
-    uri: cstring, error: pointer): gboolean{.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_remove_shortcut_folder_uri".}
-proc list_shortcut_folder_uris*(chooser: PFileChooser): PGSList{.
-    cdecl, dynlib: lib, importc: "gtk_file_chooser_list_shortcut_folder_uris".}
-proc set_do_overwrite_confirmation*(chooser: PFileChooser, 
-    do_overwrite_confirmation: gboolean){.cdecl, dynlib: lib, 
-    importc: "gtk_file_chooser_set_do_overwrite_confirmation".}
-
-proc get_realized*(w: PWidget): gboolean {.cdecl, dynlib: lib,
-                                           importc: "gtk_widget_get_realized".}
-
-proc set_skip_taskbar_hint*(window: PWindow, setting: gboolean){.cdecl,
-  dynlib: lib, importc: "gtk_window_set_skip_taskbar_hint".}
-
-type
-  TTooltip* {.pure, final.} = object
-  PTooltip* = ptr TTooltip
-
-proc set_tooltip_text*(w: PWidget, t: cstring){.cdecl,
-  dynlib: lib, importc: "gtk_widget_set_tooltip_text".}
-
-proc get_tooltip_text*(w: PWidget): cstring{.cdecl,
-  dynlib: lib, importc: "gtk_widget_get_tooltip_text".}
-
-proc set_tooltip_markup*(w: PWidget, m: cstring) {.cdecl, dynlib: lib,
-  importc: "gtk_widget_set_tooltip_markup".}
-
-proc get_tooltip_markup*(w: PWidget): cstring {.cdecl, dynlib: lib,
-  importc: "gtk_widget_get_tooltip_markup".}
-
-proc set_tooltip_column*(w: PTreeview, column: gint){.cdecl,
-  dynlib: lib, importc: "gtk_tree_view_set_tooltip_column".}
-
-proc trigger_tooltip_query*(widg: PWidget){.cdecl, dynlib: lib, 
-  importc: "gtk_widget_trigger_tooltip_query".}
-
-proc trigger_tooltip_query*(widg: PTooltip){.cdecl, dynlib: lib, 
-  importc: "gtk_tooltip_trigger_tooltip_query".}
-
-proc set_has_tooltip*(widget: PWidget, b: gboolean){.cdecl, dynlib: lib, 
-  importc: "gtk_widget_set_has_tooltip".}
-
-proc get_has_tooltip*(widget: PWidget): gboolean{.cdecl, dynlib: lib, 
-  importc: "gtk_widget_get_has_tooltip".}
-
-proc set_markup*(tp: PTooltip, mk: cstring){.cdecl, dynlib: lib, 
-  importc: "gtk_tooltip_set_markup".}
-
-proc set_visible_window*(evBox: PEventBox, v: gboolean){.cdecl, dynlib: lib,
-  importc: "gtk_event_box_set_visible_window".}
-
-proc get_vadjustment*(scrolled_window: PTextView): PAdjustment{.
-    cdecl, dynlib: lib, importc: "gtk_text_view_get_vadjustment".}
-
-type
-  TInfoBar* = object of THBox
-  PInfoBar* = ptr TInfoBar
-
-proc info_bar_new*(): PInfoBar{.cdecl, dynlib: lib, importc: "gtk_info_bar_new".}
-proc info_bar_new_with_buttons*(first_button_text: cstring): PInfoBar {.cdecl, dynlib:lib,
-    varargs, importc: "gtk_info_bar_new_with_buttons".}
-proc add_action_widget*(infobar: PInfoBar, child: PWidget, respID: gint) {.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_add_action_widget".}
-proc add_button*(infobar: PInfoBar, btnText: cstring, respID: gint): PWidget{.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_add_button".}
-proc set_response_sensitive*(infobar: PInfoBar, respID: gint, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "gtk_info_bar_set_response_sensitive".}
-proc set_default_response*(infobar: PInfoBar, respID: gint){.cdecl,
-    dynlib: lib, importc: "gtk_info_bar_set_default_response".}
-proc response*(infobar: PInfoBar, respID: gint){.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_response".}
-proc set_message_type*(infobar: PInfoBar, messageType: TMessageType){.cdecl,
-    dynlib: lib, importc: "gtk_info_bar_set_message_type".}
-proc get_message_type*(infobar: PInfoBar): TMessageType{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_message_type".}
-proc get_action_area*(infobar: PInfoBar): PWidget{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_action_area".}
-proc get_content_area*(infobar: PInfoBar): PContainer{.cdecl, dynlib: lib,
-    importc: "gtk_info_bar_get_content_area".}
-
-type
-  TComboBox* = object of TWidget
-  PComboBox* = ptr TComboBox
-
-proc comboBoxNew*(): PComboBox{.cdecl, importc: "gtk_combo_box_new", dynlib: lib.}
-proc comboBox_new_with_entry*(): PComboBox{.cdecl, 
-                                       importc: "gtk_combo_box_new_with_entry", 
-                                       dynlib: lib.}
-proc comboBox_new_with_model*(model: PTreeModel): PComboBox{.cdecl, 
-    importc: "gtk_combo_box_new_with_model", dynlib: lib.}
-proc comboBox_new_with_model_and_entry*(model: PTreeModel): PComboBox{.cdecl, 
-    importc: "gtk_combo_box_new_with_model_and_entry", dynlib: lib.}
-
-proc get_wrap_width*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_wrap_width", dynlib: lib.}
-proc set_wrap_width*(combo_box: PComboBox; width: gint){.cdecl, 
-    importc: "gtk_combo_box_set_wrap_width", dynlib: lib.}
-proc get_row_span_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_row_span_column", dynlib: lib.}
-proc set_row_span_column*(combo_box: PComboBox; row_span: gint){.cdecl, 
-    importc: "gtk_combo_box_set_row_span_column", dynlib: lib.}
-proc get_column_span_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_column_span_column", dynlib: lib.}
-proc set_column_span_column*(combo_box: PComboBox; column_span: gint){.
-    cdecl, importc: "gtk_combo_box_set_column_span_column", dynlib: lib.}
-proc get_add_tearoffs*(combo_box: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_add_tearoffs", dynlib: lib.}
-proc set_add_tearoffs*(combo_box: PComboBox; add_tearoffs: gboolean){.
-    cdecl, importc: "gtk_combo_box_set_add_tearoffs", dynlib: lib.}
-proc get_title*(combo_box: PComboBox): ptr gchar{.cdecl, 
-    importc: "gtk_combo_box_get_title", dynlib: lib.}
-proc set_title*(combo_box: PComboBox; title: ptr gchar){.cdecl, 
-    importc: "gtk_combo_box_set_title", dynlib: lib.}
-proc get_focus_on_click*(combo: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_focus_on_click", dynlib: lib.}
-proc set_focus_on_click*(combo: PComboBox; focus_on_click: gboolean){.
-    cdecl, importc: "gtk_combo_box_set_focus_on_click", dynlib: lib.}
-
-proc get_active*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_active", dynlib: lib.}
-proc set_active*(combo_box: PComboBox; index: gint){.cdecl, 
-    importc: "gtk_combo_box_set_active", dynlib: lib.}
-proc get_active_iter*(combo_box: PComboBox; iter: PTreeIter): gboolean{.
-    cdecl, importc: "gtk_combo_box_get_active_iter", dynlib: lib.}
-proc set_active_iter*(combo_box: PComboBox; iter: PTreeIter){.cdecl, 
-    importc: "gtk_combo_box_set_active_iter", dynlib: lib.}
-
-proc set_model*(combo_box: PComboBox; model: PTreeModel){.cdecl, 
-    importc: "gtk_combo_box_set_model", dynlib: lib.}
-proc get_model*(combo_box: PComboBox): PTreeModel{.cdecl, 
-    importc: "gtk_combo_box_get_model", dynlib: lib.}
-discard """proc get_row_separator_func*(combo_box: PComboBox): GtkTreeViewRowSeparatorFunc{.
-    cdecl, importc: "gtk_combo_box_get_row_separator_func", dynlib: lib.}
-proc set_row_separator_func*(combo_box: PComboBox; 
-                             func: GtkTreeViewRowSeparatorFunc; data: gpointer; 
-                             destroy: GDestroyNotify){.cdecl, 
-    importc: "gtk_combo_box_set_row_separator_func", dynlib: lib.}"""
-discard """proc set_button_sensitivity*(combo_box: PComboBox; 
-                             sensitivity: GtkSensitivityType){.cdecl, 
-    importc: "gtk_combo_box_set_button_sensitivity", dynlib: lib.}
-proc get_button_sensitivity*(combo_box: PComboBox): GtkSensitivityType{.
-    cdecl, importc: "gtk_combo_box_get_button_sensitivity", dynlib: lib.}"""
-proc get_has_entry*(combo_box: PComboBox): gboolean{.cdecl, 
-    importc: "gtk_combo_box_get_has_entry", dynlib: lib.}
-proc set_entry_text_column*(combo_box: PComboBox; text_column: gint){.
-    cdecl, importc: "gtk_combo_box_set_entry_text_column", dynlib: lib.}
-proc get_entry_text_column*(combo_box: PComboBox): gint{.cdecl, 
-    importc: "gtk_combo_box_get_entry_text_column", dynlib: lib.}
-
-proc popup*(combo_box: PComboBox){.cdecl, importc: "gtk_combo_box_popup", 
-    dynlib: lib.}
-proc popdown*(combo_box: PComboBox){.cdecl, 
-    importc: "gtk_combo_box_popdown", dynlib: lib.}
-discard """proc get_popup_accessible*(combo_box: PComboBox): ptr AtkObject{.cdecl, 
-    importc: "gtk_combo_box_get_popup_accessible", dynlib: lib.}"""
-
-type
-  TComboBoxText* = object of TComboBox
-  PComboBoxText* = ptr TComboBoxText
-
-proc combo_box_text_new*(): PComboBoxText{.cdecl, importc: "gtk_combo_box_text_new", 
-                                 dynlib: lib.}
-proc combo_box_text_new_with_entry*(): PComboBoxText{.cdecl, 
-    importc: "gtk_combo_box_text_new_with_entry", dynlib: lib.}
-proc append_text*(combo_box: PComboBoxText; text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_append_text", dynlib: lib.}
-proc insert_text*(combo_box: PComboBoxText; position: gint; 
-                       text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_insert_text", dynlib: lib.}
-proc prepend_text*(combo_box: PComboBoxText; text: cstring){.cdecl, 
-    importc: "gtk_combo_box_text_prepend_text", dynlib: lib.}
-proc remove*(combo_box: PComboBoxText; position: gint){.cdecl, 
-    importc: "gtk_combo_box_text_remove", dynlib: lib.}
-proc get_active_text*(combo_box: PComboBoxText): cstring{.cdecl, 
-    importc: "gtk_combo_box_text_get_active_text", dynlib: lib.}
-proc is_active*(win: PWindow): gboolean{.cdecl,
-    importc: "gtk_window_is_active", dynlib: lib.}
-proc has_toplevel_focus*(win: PWindow): gboolean{.cdecl,
-    importc: "gtk_window_has_toplevel_focus", dynlib: lib.}
-
-proc nimrod_init*() =
-  var
-    cmdLine{.importc: "cmdLine".}: array[0..255, cstring]
-    cmdCount{.importc: "cmdCount".}: cint
-  init(addr(cmdLine), addr(cmdCount))
diff --git a/lib/wrappers/gtk/gtkglext.nim b/lib/wrappers/gtk/gtkglext.nim
deleted file mode 100644
index b3f5647bd..000000000
--- a/lib/wrappers/gtk/gtkglext.nim
+++ /dev/null
@@ -1,53 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  Glib2, Gdk2, gtk2, GdkGLExt
-
-when defined(windows):
-  const 
-    GLExtLib* = "libgtkglext-win32-1.0-0.dll" 
-elif defined(macosx):
-  const
-    GLExtLib* = "libgtkglext-x11-1.0.dylib"
-else:
-  const
-    GLExtLib* = "libgtkglext-x11-1.0.so"
-
-const 
-  HEADER_GTKGLEXT_MAJOR_VERSION* = 1
-  HEADER_GTKGLEXT_MINOR_VERSION* = 0
-  HEADER_GTKGLEXT_MICRO_VERSION* = 6
-  HEADER_GTKGLEXT_INTERFACE_AGE* = 4
-  HEADER_GTKGLEXT_BINARY_AGE* = 6
-
-proc gl_parse_args*(argc: ptr int32, argv: PPPChar): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_gl_parse_args".}
-proc gl_init_check*(argc: ptr int32, argv: PPPChar): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_gl_init_check".}
-proc gl_init*(argc: ptr int32, argv: PPPChar){.cdecl, dynlib: GLExtLib, 
-    importc: "gtk_gl_init".}
-proc set_gl_capability*(widget: PWidget, glconfig: PGLConfig, 
-                               share_list: PGLContext, direct: gboolean, 
-                               render_type: int): gboolean{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_set_gl_capability".}
-proc is_gl_capable*(widget: PWidget): gboolean{.cdecl, dynlib: GLExtLib, 
-    importc: "gtk_widget_is_gl_capable".}
-proc get_gl_config*(widget: PWidget): PGLConfig{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_config".}
-proc create_gl_context*(widget: PWidget, share_list: PGLContext, 
-                               direct: gboolean, render_type: int): PGLContext{.
-    cdecl, dynlib: GLExtLib, importc: "gtk_widget_create_gl_context".}
-proc get_gl_context*(widget: PWidget): PGLContext{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_context".}
-proc get_gl_window*(widget: PWidget): PGLWindow{.cdecl, 
-    dynlib: GLExtLib, importc: "gtk_widget_get_gl_window".}
-
-proc HEADER_GTKGLEXT_CHECK_VERSION*(major, minor, micro: guint): bool = 
-  result = (HEADER_GTKGLEXT_MAJOR_VERSION > major) or
-      ((HEADER_GTKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GTKGLEXT_MINOR_VERSION > minor)) or
-      ((HEADER_GTKGLEXT_MAJOR_VERSION == major) and
-      (HEADER_GTKGLEXT_MINOR_VERSION == minor) and
-      (HEADER_GTKGLEXT_MICRO_VERSION >= micro))
-
-proc get_gl_drawable*(widget: PWidget): PGLDrawable = 
-  result = GL_DRAWABLE(get_gl_window(widget))
diff --git a/lib/wrappers/gtk/gtkhtml.nim b/lib/wrappers/gtk/gtkhtml.nim
deleted file mode 100644
index 92496c03b..000000000
--- a/lib/wrappers/gtk/gtkhtml.nim
+++ /dev/null
@@ -1,523 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  gtk2, glib2, atk, pango, gdk2pixbuf, gdk2
-
-when defined(windows): 
-  const 
-    htmllib = "libgtkhtml-win32-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    htmllib = "libgtkhtml-2.dylib"
-else: 
-  const 
-    htmllib = "libgtkhtml-2.so"
-const 
-  DOM_UNSPECIFIED_EVENT_TYPE_ERR* = 0
-  DOM_INDEX_SIZE_ERR* = 1
-  DOM_DOMSTRING_SIZE_ERR* = 2
-  DOM_HIERARCHY_REQUEST_ERR* = 3
-  DOM_WRONG_DOCUMENT_ERR* = 4
-  DOM_INVALID_CHARACTER_ERR* = 5
-  DOM_NO_DATA_ALLOWED_ERR* = 6
-  DOM_NO_MODIFICATION_ALLOWED_ERR* = 7
-  DOM_NOT_FOUND_ERR* = 8
-  DOM_NOT_SUPPORTED_ERR* = 9
-  DOM_INUSE_ATTRIBUTE_ERR* = 10
-  DOM_INVALID_STATE_ERR* = 11
-  DOM_SYNTAX_ERR* = 12
-  DOM_INVALID_MODIFICATION_ERR* = 13
-  DOM_NAMESPACE_ERR* = 14
-  DOM_INVALID_ACCESS_ERR* = 15
-  DOM_NO_EXCEPTION* = 255
-  DOM_ELEMENT_NODE* = 1
-  DOM_ATTRIBUTE_NODE* = 2
-  DOM_TEXT_NODE* = 3
-  DOM_CDATA_SECTION_NODE* = 4
-  DOM_ENTITY_REFERENCE_NODE* = 5
-  DOM_ENTITY_NODE* = 6
-  DOM_PROCESSING_INSTRUCTION_NODE* = 7
-  DOM_COMMENT_NODE* = 8
-  DOM_DOCUMENT_NODE* = 9
-  DOM_DOCUMENT_TYPE_NODE* = 10
-  DOM_DOCUMENT_FRAGMENT_NODE* = 11
-  DOM_NOTATION_NODE* = 12
-  bm_HtmlFontSpecification_weight* = 0x0000000F
-  bp_HtmlFontSpecification_weight* = 0
-  bm_HtmlFontSpecification_style* = 0x00000030
-  bp_HtmlFontSpecification_style* = 4
-  bm_HtmlFontSpecification_variant* = 0x000000C0
-  bp_HtmlFontSpecification_variant* = 6
-  bm_HtmlFontSpecification_stretch* = 0x00000F00
-  bp_HtmlFontSpecification_stretch* = 8
-  bm_HtmlFontSpecification_decoration* = 0x00007000
-  bp_HtmlFontSpecification_decoration* = 12
-
-type 
-  TDomString* = gchar
-  PDomString* = cstring
-  TDomBoolean* = gboolean
-  TDomException* = gushort
-  TDomTimeStamp* = guint64
-  PDomNode* = ptr TDomNode
-  TDomNode* = object of TGObject
-    xmlnode*: pointer
-    style*: pointer
-
-  PDomException* = ptr TDomException
-
-  PDomNodeClass* = ptr TDomNodeClass
-  TDomNodeClass* = object of TGObjectClass
-    `get_nodeName`*: proc (node: PDomNode): PDomString{.cdecl.}
-    `get_nodeValue`*: proc (node: PDomNode, exc: PDomException): PDomString{.
-        cdecl.}
-    `set_nodeValue`*: proc (node: PDomNode, value: PDomString, 
-                            exc: PDomException): PDomString{.cdecl.}
-
-  PDomDocument* = ptr TDomDocument
-  TDomDocument*{.final, pure.} = object 
-    parent*: PDomNode
-    iterators*: PGSList
-
-  PDomDocumentClass* = ptr TDomDocumentClass
-  TDomDocumentClass*{.final, pure.} = object 
-    parent_class*: PDomNodeClass
-
-  PHtmlFocusIterator* = ptr THtmlFocusIterator
-  THtmlFocusIterator* = object of TGObject
-    document*: PDomDocument
-    current_node*: PDomNode
-
-  PHtmlFocusIteratorClass* = ptr THtmlFocusIteratorClass
-  THtmlFocusIteratorClass* = object of TGObjectClass
-  THtmlParserType* = enum 
-    HTML_PARSER_TYPE_HTML, HTML_PARSER_TYPE_XML
-  PHtmlParser* = ptr THtmlParser
-  THtmlParser* = object of TGObject
-    parser_type*: THtmlParserType
-    document*: PHtmlDocument
-    stream*: PHtmlStream
-    xmlctxt*: pointer
-    res*: int32
-    chars*: array[0..9, char]
-    blocking*: gboolean
-    blocking_node*: PDomNode
-
-  PHtmlParserClass* = ptr THtmlParserClass
-  THtmlParserClass* = object of gtk2.TObjectClass
-    done_parsing*: proc (parser: PHtmlParser){.cdecl.}
-    new_node*: proc (parser: PHtmlParser, node: PDomNode)
-    parsed_document_node*: proc (parser: PHtmlParser, document: PDomDocument)
-
-  PHtmlStream* = ptr THtmlStream
-  THtmlStreamCloseFunc* = proc (stream: PHtmlStream, user_data: gpointer){.cdecl.}
-  THtmlStreamWriteFunc* = proc (stream: PHtmlStream, buffer: cstring, 
-                                size: guint, user_data: gpointer){.cdecl.}
-  THtmlStreamCancelFunc* = proc (stream: PHtmlStream, user_data: gpointer, 
-                                 cancel_data: gpointer){.cdecl.}
-  THtmlStream* = object of TGObject
-    write_func*: THtmlStreamWriteFunc
-    close_func*: THtmlStreamCloseFunc
-    cancel_func*: THtmlStreamCancelFunc
-    user_data*: gpointer
-    cancel_data*: gpointer
-    written*: gint
-    mime_type*: cstring
-
-  PHtmlStreamClass* = ptr THtmlStreamClass
-  THtmlStreamClass* = object of TGObjectClass
-  THtmlStreamBufferCloseFunc* = proc (str: cstring, len: gint, 
-                                      user_data: gpointer){.cdecl.}
-  PHtmlContext* = ptr THtmlContext
-  THtmlContext* = object of TGObject
-    documents*: PGSList
-    standard_font*: PHtmlFontSpecification
-    fixed_font*: PHtmlFontSpecification
-    debug_painting*: gboolean
-    
-  PHtmlFontSpecification* = ptr THtmlFontSpecification
-  THtmlFontSpecification {.final, pure.} = object
-
-  PHtmlContextClass* = ptr THtmlContextClass
-  THtmlContextClass* = object of TGObjectClass
-  THtmlDocumentState* = enum 
-    HTML_DOCUMENT_STATE_DONE, HTML_DOCUMENT_STATE_PARSING
-  PHtmlDocument* = ptr THtmlDocument
-  THtmlDocument* = object of TGObject
-    stylesheets*: PGSList
-    current_stream*: PHtmlStream
-    state*: THtmlDocumentState
-
-  PHtmlDocumentClass* = ptr THtmlDocumentClass
-  THtmlDocumentClass* = object of TGObjectClass
-    request_url*: proc (document: PHtmlDocument, url: cstring, 
-                        stream: PHtmlStream){.cdecl.}
-    link_clicked*: proc (document: PHtmlDocument, url: cstring){.cdecl.}
-    set_base*: proc (document: PHtmlDocument, url: cstring){.cdecl.}
-    title_changed*: proc (document: PHtmlDocument, new_title: cstring){.cdecl.}
-    submit*: proc (document: PHtmlDocument, `method`: cstring, url: cstring, 
-                   encoding: cstring){.cdecl.}
-
-  PHtmlView* = ptr THtmlView
-  THtmlView* = object of gtk2.TLayout
-    document*: PHtmlDocument
-    node_table*: PGHashTable
-    relayout_idle_id*: guint
-    relayout_timeout_id*: guint
-    mouse_down_x*: gint
-    mouse_down_y*: gint
-    mouse_detail*: gint
-    sel_start_ypos*: gint
-    sel_start_index*: gint
-    sel_end_ypos*: gint
-    sel_end_index*: gint
-    sel_flag*: gboolean
-    sel_backwards*: gboolean
-    sel_start_found*: gboolean
-    sel_list*: PGSList
-    jump_to_anchor*: cstring
-    magnification*: gdouble
-    magnification_modified*: gboolean
-    on_url*: gboolean
-
-  PHtmlViewClass* = ptr THtmlViewClass
-  THtmlViewClass* = object of gtk2.TLayoutClass
-    move_cursor*: proc (html_view: PHtmlView, step: TMovementStep, count: gint, 
-                        extend_selection: gboolean){.cdecl.}
-    on_url*: proc (html_view: PHtmlView, url: cstring)
-    activate*: proc (html_view: PHtmlView)
-    move_focus_out*: proc (html_view: PHtmlView, direction: TDirectionType)
-    
-  PDomNodeList* = ptr TDomNodeList
-  TDomNodeList {.pure, final.} = object
-  
-  PDomNamedNodeMap* = ptr TDomNamedNodeMap
-  TDomNamedNodeMap {.pure, final.} = object
-  
-  PDomDocumentType* = ptr TDomDocumentType
-  TDomDocumentType {.pure, final.} = object
-  
-  PDomElement* = ptr TDomElement
-  TDomElement = object of TDomNode
-  
-  PDomText* = ptr TDomText
-  TDomText = object of TDomNode
-
-  PDomComment* = ptr TDomComment
-  TDomComment = object of TDomNode
- 
-  THtmlBox {.pure, final.} = object
-  PHtmlBox* = ptr THtmlBox
-
-
-proc DOM_TYPE_NODE*(): GType
-proc DOM_NODE*(theobject: pointer): PDomNode
-proc DOM_NODE_CLASS*(klass: pointer): PDomNodeClass
-proc DOM_IS_NODE*(theobject: pointer): bool
-proc DOM_IS_NODE_CLASS*(klass: pointer): bool
-proc DOM_NODE_GET_CLASS*(obj: pointer): int32
-proc dom_node_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                  importc: "dom_node_get_type".}
-proc dom_Node_mkref*(node: pointer): PDomNode{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node_mkref".}
-proc get_childNodes*(node: PDomNode): PDomNodeList{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_childNodes".}
-proc removeChild*(node: PDomNode, oldChild: PDomNode, 
-                           exc: PDomException): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_removeChild".}
-proc get_nodeValue*(node: PDomNode, exc: PDomException): PDomString{.
-    cdecl, dynlib: htmllib, importc: "dom_Node__get_nodeValue".}
-proc get_firstChild*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_firstChild".}
-proc get_nodeName*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_nodeName".}
-proc get_attributes*(node: PDomNode): PDomNamedNodeMap{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_attributes".}
-proc get_doctype*(doc: PDomDocument): PDomDocumentType{.cdecl, 
-    dynlib: htmllib, importc: "dom_Document__get_doctype".}
-proc hasChildNodes*(node: PDomNode): bool{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_hasChildNodes".}
-proc get_parentNode*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_parentNode".}
-proc get_nextSibling*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_nextSibling".}
-proc get_nodeType*(node: PDomNode): gushort{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__get_nodeType".}
-
-proc cloneNode*(node: PDomNode, deep: bool): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_cloneNode".}
-proc appendChild*(node: PDomNode, newChild: PDomNode, 
-                           exc: PDomException): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node_appendChild".}
-proc get_localName*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_localName".}
-proc get_namespaceURI*(node: PDomNode): PDomString{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_namespaceURI".}
-proc get_previousSibling*(node: PDomNode): PDomNode{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_previousSibling".}
-proc get_lastChild*(node: PDomNode): PDomNode{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__get_lastChild".}
-proc set_nodeValue*(node: PDomNode, value: PDomString, 
-                              exc: PDomException){.cdecl, dynlib: htmllib, 
-    importc: "dom_Node__set_nodeValue".}
-proc get_ownerDocument*(node: PDomNode): PDomDocument{.cdecl, 
-    dynlib: htmllib, importc: "dom_Node__get_ownerDocument".}
-proc hasAttributes*(node: PDomNode): gboolean{.cdecl, dynlib: htmllib, 
-    importc: "dom_Node_hasAttributes".}
-proc DOM_TYPE_DOCUMENT*(): GType
-proc DOM_DOCUMENT*(theobject: pointer): PDomDocument
-proc DOM_DOCUMENT_CLASS*(klass: pointer): PDomDocumentClass
-proc DOM_IS_DOCUMENT*(theobject: pointer): bool
-proc DOM_IS_DOCUMENT_CLASS*(klass: pointer): bool
-proc DOM_DOCUMENT_GET_CLASS*(obj: pointer): PDomDocumentClass
-proc dom_document_get_type*(): GType
-proc get_documentElement*(doc: PDomDocument): PDomElement
-proc createElement*(doc: PDomDocument, tagName: PDomString): PDomElement
-proc createTextNode*(doc: PDomDocument, data: PDomString): PDomText
-proc createComment*(doc: PDomDocument, data: PDomString): PDomComment
-proc importNode*(doc: PDomDocument, importedNode: PDomNode, 
-                              deep: bool, exc: PDomException): PDomNode
-proc HTML_TYPE_FOCUS_ITERATOR*(): GType
-proc HTML_FOCUS_ITERATOR*(theobject: pointer): PHtmlFocusIterator
-proc HTML_FOCUS_ITERATOR_CLASS*(klass: pointer): PHtmlFocusIteratorClass
-proc HTML_IS_FOCUS_ITERATOR*(theobject: pointer): bool
-proc HTML_IS_FOCUS_ITERATOR_CLASS*(klass: pointer): bool
-proc HTML_FOCUS_ITERATOR_GET_CLASS*(obj: pointer): PHtmlFocusIteratorClass
-proc html_focus_iterator_next_element*(document: PDomDocument, 
-                                       element: PDomElement): PDomElement{.
-    cdecl, dynlib: htmllib, importc: "html_focus_iterator_next_element".}
-proc html_focus_iterator_prev_element*(document: PDomDocument, 
-                                       element: PDomElement): PDomElement{.
-    cdecl, dynlib: htmllib, importc: "html_focus_iterator_prev_element".}
-proc HTML_PARSER_TYPE*(): GType
-proc HTML_PARSER*(obj: pointer): PHtmlParser
-proc HTML_PARSER_CLASS*(klass: pointer): PHtmlParserClass
-proc HTML_IS_PARSER*(obj: pointer): bool
-proc html_parser_get_type*(): GType
-proc parser_new*(document: PHtmlDocument, parser_type: THtmlParserType): PHtmlParser
-proc HTML_TYPE_STREAM*(): GType
-proc HTML_STREAM*(obj: pointer): PHtmlStream
-proc HTML_STREAM_CLASS*(klass: pointer): PHtmlStreamClass
-proc HTML_IS_STREAM*(obj: pointer): bool
-proc HTML_IS_STREAM_CLASS*(klass: pointer): bool
-proc HTML_STREAM_GET_CLASS*(obj: pointer): PHtmlStreamClass
-proc html_stream_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                     importc: "html_stream_get_type".}
-proc html_stream_new*(write_func: THtmlStreamWriteFunc, 
-                      close_func: THtmlStreamCloseFunc, user_data: gpointer): PHtmlStream{.
-    cdecl, dynlib: htmllib, importc: "html_stream_new".}
-proc write*(stream: PHtmlStream, buffer: cstring, size: guint){.
-    cdecl, dynlib: htmllib, importc: "html_stream_write".}
-proc close*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_close".}
-proc destroy*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_destroy".}
-proc get_written*(stream: PHtmlStream): gint{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_get_written".}
-proc cancel*(stream: PHtmlStream){.cdecl, dynlib: htmllib, 
-    importc: "html_stream_cancel".}
-proc set_cancel_func*(stream: PHtmlStream, 
-                                  abort_func: THtmlStreamCancelFunc, 
-                                  cancel_data: gpointer){.cdecl, 
-    dynlib: htmllib, importc: "html_stream_set_cancel_func".}
-proc get_mime_type*(stream: PHtmlStream): cstring{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_get_mime_type".}
-proc set_mime_type*(stream: PHtmlStream, mime_type: cstring){.cdecl, 
-    dynlib: htmllib, importc: "html_stream_set_mime_type".}
-proc html_stream_buffer_new*(close_func: THtmlStreamBufferCloseFunc, 
-                             user_data: gpointer): PHtmlStream{.cdecl, 
-    dynlib: htmllib, importc: "html_stream_buffer_new".}
-proc event_mouse_move*(view: PHtmlView, event: Gdk2.PEventMotion){.cdecl, 
-    dynlib: htmllib, importc: "html_event_mouse_move".}
-proc event_button_press*(view: PHtmlView, button: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_event_button_press".}
-proc event_button_release*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_event_button_release".}
-proc event_activate*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_event_activate".}
-proc event_key_press*(view: PHtmlView, event: Gdk2.PEventKey): gboolean{.
-    cdecl, dynlib: htmllib, importc: "html_event_key_press".}
-proc event_find_root_box*(self: PHtmlBox, x: gint, y: gint): PHtmlBox{.
-    cdecl, dynlib: htmllib, importc: "html_event_find_root_box".}
-proc selection_start*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_start".}
-proc selection_end*(view: PHtmlView, event: Gdk2.PEventButton){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_end".}
-proc selection_update*(view: PHtmlView, event: Gdk2.PEventMotion){.cdecl, 
-    dynlib: htmllib, importc: "html_selection_update".}
-proc selection_clear*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_selection_clear".}
-proc selection_set*(view: PHtmlView, start: PDomNode, offset: int32, 
-                         len: int32){.cdecl, dynlib: htmllib, 
-                                      importc: "html_selection_set".}
-proc HTML_CONTEXT_TYPE*(): GType
-proc HTML_CONTEXT*(obj: pointer): PHtmlContext
-proc HTML_CONTEXT_CLASS*(klass: pointer): PHtmlContextClass
-proc HTML_IS_CONTEXT*(obj: pointer): bool
-proc HTML_IS_CONTEXT_CLASS*(klass: pointer): bool
-proc html_context_get_type*(): GType
-proc html_context_get*(): PHtmlContext
-proc HTML_TYPE_DOCUMENT*(): GType
-proc HTML_DOCUMENT*(obj: pointer): PHtmlDocument
-proc HTML_DOCUMENT_CLASS*(klass: pointer): PHtmlDocumentClass
-proc HTML_IS_DOCUMENT*(obj: pointer): bool
-proc html_document_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                       importc: "html_document_get_type".}
-proc html_document_new*(): PHtmlDocument{.cdecl, dynlib: htmllib, 
-    importc: "html_document_new".}
-proc open_stream*(document: PHtmlDocument, mime_type: cstring): gboolean{.
-    cdecl, dynlib: htmllib, importc: "html_document_open_stream".}
-proc write_stream*(document: PHtmlDocument, buffer: cstring, 
-                                 len: gint){.cdecl, dynlib: htmllib, 
-    importc: "html_document_write_stream".}
-proc close_stream*(document: PHtmlDocument){.cdecl, 
-    dynlib: htmllib, importc: "html_document_close_stream".}
-proc clear*(document: PHtmlDocument){.cdecl, dynlib: htmllib, 
-    importc: "html_document_clear".}
-proc HTML_TYPE_VIEW*(): GType
-proc HTML_VIEW*(obj: pointer): PHtmlView
-proc HTML_VIEW_CLASS*(klass: pointer): PHtmlViewClass
-proc HTML_IS_VIEW*(obj: pointer): bool
-proc html_view_get_type*(): GType{.cdecl, dynlib: htmllib, 
-                                   importc: "html_view_get_type".}
-proc html_view_new*(): PWidget{.cdecl, dynlib: htmllib, importc: "html_view_new".}
-proc set_document*(view: PHtmlView, document: PHtmlDocument){.cdecl, 
-    dynlib: htmllib, importc: "html_view_set_document".}
-proc jump_to_anchor*(view: PHtmlView, anchor: cstring){.cdecl, 
-    dynlib: htmllib, importc: "html_view_jump_to_anchor".}
-proc get_magnification*(view: PHtmlView): gdouble{.cdecl, 
-    dynlib: htmllib, importc: "html_view_get_magnification".}
-proc set_magnification*(view: PHtmlView, magnification: gdouble){.
-    cdecl, dynlib: htmllib, importc: "html_view_set_magnification".}
-proc zoom_in*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_in".}
-proc zoom_out*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_out".}
-proc zoom_reset*(view: PHtmlView){.cdecl, dynlib: htmllib, 
-    importc: "html_view_zoom_reset".}
-
-proc DOM_TYPE_NODE*(): GType = 
-  result = dom_node_get_type()
-
-proc DOM_NODE*(theobject: pointer): PDomNode = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, DOM_TYPE_NODE())
-
-proc DOM_NODE_CLASS*(klass: pointer): PDomNodeClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, DOM_TYPE_NODE(), TDomNodeClass)
-
-proc DOM_IS_NODE*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, DOM_TYPE_NODE())
-
-proc DOM_IS_NODE_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, DOM_TYPE_NODE())
-
-proc DOM_NODE_GET_CLASS*(obj: pointer): PDomNodeClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, DOM_TYPE_NODE(), TDomNodeClass)
-
-proc DOM_TYPE_DOCUMENT*(): GType = 
-  result = dom_document_get_type()
-
-proc DOM_DOCUMENT*(theobject: pointer): PDomDocument = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, DOM_TYPE_DOCUMENT(), 
-                                      TDomDocument)
-
-proc DOM_DOCUMENT_CLASS*(klass: pointer): PDomDocumentClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, DOM_TYPE_DOCUMENT(), TDomDocumentClass)
-
-proc DOM_IS_DOCUMENT*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, DOM_TYPE_DOCUMENT())
-
-proc DOM_IS_DOCUMENT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, DOM_TYPE_DOCUMENT())
-
-proc DOM_DOCUMENT_GET_CLASS*(obj: pointer): PDomDocumentClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, DOM_TYPE_DOCUMENT(), TDomDocumentClass)
-
-proc HTML_TYPE_FOCUS_ITERATOR*(): GType = 
-  result = html_focus_iterator_get_type()
-
-proc HTML_FOCUS_ITERATOR*(theobject: pointer): PHtmlFocusIterator = 
-  result = G_TYPE_CHECK_INSTANCE_CAST(theobject, HTML_TYPE_FOCUS_ITERATOR(), 
-                                      HtmlFocusIterator)
-
-proc HTML_FOCUS_ITERATOR_CLASS*(klass: pointer): PHtmlFocusIteratorClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, HTML_TYPE_FOCUS_ITERATOR(), 
-                                   HtmlFocusIteratorClass)
-
-proc HTML_IS_FOCUS_ITERATOR*(theobject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(theobject, HTML_TYPE_FOCUS_ITERATOR())
-
-proc HTML_IS_FOCUS_ITERATOR_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, HTML_TYPE_FOCUS_ITERATOR())
-
-proc HTML_FOCUS_ITERATOR_GET_CLASS*(obj: pointer): PHtmlFocusIteratorClass = 
-  result = G_TYPE_INSTANCE_GET_CLASS(obj, HTML_TYPE_FOCUS_ITERATOR(), 
-                                     HtmlFocusIteratorClass)
-
-proc HTML_PARSER_TYPE*(): GType = 
-  result = html_parser_get_type()
-
-proc HTML_PARSER*(obj: pointer): PHtmlParser = 
-  result = CHECK_CAST(obj, HTML_PARSER_TYPE(), THtmlParser)
-
-proc HTML_PARSER_CLASS*(klass: pointer): PHtmlParserClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_PARSER_TYPE(), THtmlParserClass)
-
-proc HTML_IS_PARSER*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_PARSER_TYPE())
-
-proc HTML_TYPE_STREAM*(): GType = 
-  result = html_stream_get_type()
-
-proc HTML_STREAM*(obj: pointer): PHtmlStream = 
-  result = PHtmlStream(G_TYPE_CHECK_INSTANCE_CAST(obj, HTML_TYPE_STREAM()))
-
-proc HTML_STREAM_CLASS*(klass: pointer): PHtmlStreamClass = 
-  result = G_TYPE_CHECK_CLASS_CAST(klass, HTML_TYPE_STREAM())
-
-proc HTML_IS_STREAM*(obj: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, HTML_TYPE_STREAM())
-
-proc HTML_IS_STREAM_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, HTML_TYPE_STREAM())
-
-proc HTML_STREAM_GET_CLASS*(obj: pointer): PHtmlStreamClass = 
-  result = PHtmlStreamClass(G_TYPE_INSTANCE_GET_CLASS(obj, HTML_TYPE_STREAM()))
-
-proc HTML_CONTEXT_TYPE*(): GType = 
-  result = html_context_get_type()
-
-proc HTML_CONTEXT*(obj: pointer): PHtmlContext = 
-  result = CHECK_CAST(obj, HTML_CONTEXT_TYPE(), THtmlContext)
-
-proc HTML_CONTEXT_CLASS*(klass: pointer): PHtmlContextClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_CONTEXT_TYPE(), THtmlContextClass)
-
-proc HTML_IS_CONTEXT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_CONTEXT_TYPE())
-
-proc HTML_IS_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = CHECK_CLASS_TYPE(klass, HTML_CONTEXT_TYPE())
-
-proc HTML_TYPE_DOCUMENT*(): GType = 
-  result = html_document_get_type()
-
-proc HTML_DOCUMENT*(obj: pointer): PHtmlDocument = 
-  result = PHtmlDocument(CHECK_CAST(obj, HTML_TYPE_DOCUMENT()))
-
-proc HTML_DOCUMENT_CLASS*(klass: pointer): PHtmlDocumentClass = 
-  result = CHECK_CLASS_CAST(klass, HTML_TYPE_DOCUMENT())
-
-proc HTML_IS_DOCUMENT*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_TYPE_DOCUMENT())
-
-proc HTML_TYPE_VIEW*(): GType = 
-  result = html_view_get_type()
-
-proc HTML_VIEW*(obj: pointer): PHtmlView = 
-  result = PHtmlView(CHECK_CAST(obj, HTML_TYPE_VIEW()))
-
-proc HTML_VIEW_CLASS*(klass: pointer): PHtmlViewClass = 
-  result = PHtmlViewClass(CHECK_CLASS_CAST(klass, HTML_TYPE_VIEW()))
-
-proc HTML_IS_VIEW*(obj: pointer): bool = 
-  result = CHECK_TYPE(obj, HTML_TYPE_VIEW())
diff --git a/lib/wrappers/gtk/libglade2.nim b/lib/wrappers/gtk/libglade2.nim
deleted file mode 100644
index 6dda3364e..000000000
--- a/lib/wrappers/gtk/libglade2.nim
+++ /dev/null
@@ -1,111 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, gtk2
-
-when defined(win32): 
-  const 
-    LibGladeLib = "libglade-2.0-0.dll"
-elif defined(macosx): 
-  const 
-    LibGladeLib = "libglade-2.0.dylib"
-else: 
-  const 
-    LibGladeLib = "libglade-2.0.so"
-type 
-  PLongint* = ptr int32
-  PSmallInt* = ptr int16
-  PByte* = ptr int8
-  PWord* = ptr int16
-  PDWord* = ptr int32
-  PDouble* = ptr float64
-
-proc init*(){.cdecl, dynlib: LibGladeLib, importc: "glade_init".}
-proc require*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
-                                    importc: "glade_require".}
-proc provide*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
-                                    importc: "glade_provide".}
-type 
-  PXMLPrivate* = pointer
-  PXML* = ptr TXML
-  TXML* = object of TGObject
-    filename*: cstring
-    priv*: PXMLPrivate
-
-  PXMLClass* = ptr TXMLClass
-  TXMLClass* = object of TGObjectClass
-  TXMLConnectFunc* = proc (handler_name: cstring, anObject: PGObject, 
-                           signal_name: cstring, signal_data: cstring, 
-                           connect_object: PGObject, after: gboolean, 
-                           user_data: gpointer){.cdecl.}
-
-proc TYPE_XML*(): GType
-proc XML*(obj: pointer): PXML
-proc XML_CLASS*(klass: pointer): PXMLClass
-proc IS_XML*(obj: pointer): gboolean
-proc IS_XML_CLASS*(klass: pointer): gboolean
-proc XML_GET_CLASS*(obj: pointer): PXMLClass
-proc xml_get_type*(): GType{.cdecl, dynlib: LibGladeLib, 
-                             importc: "glade_xml_get_type".}
-proc xml_new*(fname: cstring, root: cstring, domain: cstring): PXML{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_new".}
-proc xml_new_from_buffer*(buffer: cstring, size: int32, root: cstring, 
-                          domain: cstring): PXML{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_xml_new_from_buffer".}
-proc construct*(self: PXML, fname: cstring, root: cstring, domain: cstring): gboolean{.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_construct".}
-proc signal_connect*(self: PXML, handlername: cstring, func: TGCallback){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect".}
-proc signal_connect_data*(self: PXML, handlername: cstring, 
-                              func: TGCallback, user_data: gpointer){.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_signal_connect_data".}
-proc signal_autoconnect*(self: PXML){.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_xml_signal_autoconnect".}
-proc signal_connect_full*(self: PXML, handler_name: cstring, 
-                              func: TXMLConnectFunc, user_data: gpointer){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect_full".}
-proc signal_autoconnect_full*(self: PXML, func: TXMLConnectFunc, 
-                                  user_data: gpointer){.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_signal_autoconnect_full".}
-proc get_widget*(self: PXML, name: cstring): gtk2.PWidget{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_get_widget".}
-proc get_widget_prefix*(self: PXML, name: cstring): PGList{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_get_widget_prefix".}
-proc relative_file*(self: PXML, filename: cstring): cstring{.cdecl, 
-    dynlib: LibGladeLib, importc: "glade_xml_relative_file".}
-proc get_widget_name*(widget: gtk2.PWidget): cstring{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_get_widget_name".}
-proc get_widget_tree*(widget: gtk2.PWidget): PXML{.cdecl, dynlib: LibGladeLib, 
-    importc: "glade_get_widget_tree".}
-type 
-  PXMLCustomWidgetHandler* = ptr TXMLCustomWidgetHandler
-  TXMLCustomWidgetHandler* = gtk2.TWidget
-
-proc set_custom_handler*(handler: TXMLCustomWidgetHandler, user_data: gpointer){.
-    cdecl, dynlib: LibGladeLib, importc: "glade_set_custom_handler".}
-proc gnome_init*() = 
-  init()
-
-proc bonobo_init*() = 
-  init()
-
-proc xml_new_from_memory*(buffer: cstring, size: int32, root: cstring, 
-                          domain: cstring): PXML = 
-  result = xml_new_from_buffer(buffer, size, root, domain)
-
-proc TYPE_XML*(): GType = 
-  result = xml_get_type()
-
-proc XML*(obj: pointer): PXML = 
-  result = cast[PXML](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_XML()))
-
-proc XML_CLASS*(klass: pointer): PXMLClass = 
-  result = cast[PXMLClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_XML()))
-
-proc IS_XML*(obj: pointer): gboolean = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_XML())
-
-proc IS_XML_CLASS*(klass: pointer): gboolean = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_XML())
-
-proc XML_GET_CLASS*(obj: pointer): PXMLClass = 
-  result = cast[PXMLClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_XML()))
diff --git a/lib/wrappers/gtk/pango.nim b/lib/wrappers/gtk/pango.nim
deleted file mode 100644
index 5d9fcd96f..000000000
--- a/lib/wrappers/gtk/pango.nim
+++ /dev/null
@@ -1,1160 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2
-
-when defined(win32): 
-  const 
-    lib* = "libpango-1.0-0.dll"
-elif defined(macosx): 
-  const 
-    lib* = "libpango-1.0.dylib"
-else: 
-  const 
-    lib* = "libpango-1.0.so.0"
-type 
-  TFont* {.pure, final.} = object
-  PFont* = ptr TFont
-  TFontFamily* {.pure, final.} = object
-  PFontFamily* = ptr TFontFamily
-  TFontSet* {.pure, final.} = object
-  PFontset* = ptr TFontset
-  TFontMetrics* {.pure, final.} = object
-  PFontMetrics* = ptr TFontMetrics
-  TFontFace* {.pure, final.} = object
-  PFontFace* = ptr TFontFace
-  TFontMap* {.pure, final.} = object
-  PFontMap* = ptr TFontMap
-  TFontsetClass {.pure, final.} = object
-  PFontsetClass* = ptr TFontSetClass
-  TFontFamilyClass* {.pure, final.} = object
-  PFontFamilyClass* = ptr TFontFamilyClass
-  TFontFaceClass* {.pure, final.} = object
-  PFontFaceClass* = ptr TFontFaceClass
-  TFontClass* {.pure, final.} = object
-  PFontClass* = ptr TFontClass
-  TFontMapClass* {.pure, final.} = object
-  PFontMapClass* = ptr TFontMapClass
-  PFontDescription* = ptr TFontDescription
-  TFontDescription* {.pure, final.} = object
-  PAttrList* = ptr TAttrList
-  TAttrList* {.pure, final.} = object
-  PAttrIterator* = ptr TAttrIterator
-  TAttrIterator* {.pure, final.} = object
-  PLayout* = ptr TLayout
-  TLayout* {.pure, final.} = object
-  PLayoutClass* = ptr TLayoutClass
-  TLayoutClass* {.pure, final.} = object
-  PLayoutIter* = ptr TLayoutIter
-  TLayoutIter* {.pure, final.} = object
-  PContext* = ptr TContext
-  TContext* {.pure, final.} = object
-  PContextClass* = ptr TContextClass
-  TContextClass* {.pure, final.} = object
-  PFontsetSimple* = ptr TFontsetSimple
-  TFontsetSimple* {.pure, final.} = object
-  PTabArray* = ptr TTabArray
-  TTabArray* {.pure, final.} = object
-  PGlyphString* = ptr TGlyphString
-  PAnalysis* = ptr TAnalysis
-  PItem* = ptr TItem
-  PLanguage* = ptr TLanguage
-  TLanguage* {.pure, final.} = object
-  PGlyph* = ptr TGlyph
-  TGlyph* = guint32
-  PRectangle* = ptr TRectangle
-  TRectangle*{.final, pure.} = object 
-    x*: int32
-    y*: int32
-    width*: int32
-    height*: int32
-
-  PDirection* = ptr TDirection
-  TDirection* = enum 
-    DIRECTION_LTR, DIRECTION_RTL, DIRECTION_TTB_LTR, DIRECTION_TTB_RTL
-  PColor* = ptr TColor
-  TColor*{.final, pure.} = object 
-    red*: guint16
-    green*: guint16
-    blue*: guint16
-
-  PAttrType* = ptr TAttrType
-  TAttrType* = int32
-  PUnderline* = ptr TUnderline
-  TUnderline* = int32
-  PAttribute* = ptr TAttribute
-  PAttrClass* = ptr TAttrClass
-  TAttribute*{.final, pure.} = object 
-    klass*: PAttrClass
-    start_index*: int
-    end_index*: int
-
-  TAttrClass*{.final, pure.} = object 
-    `type`*: TAttrType
-    copy*: proc (attr: PAttribute): PAttribute{.cdecl.}
-    destroy*: proc (attr: PAttribute){.cdecl.}
-    equal*: proc (attr1: PAttribute, attr2: PAttribute): gboolean{.cdecl.}
-
-  PAttrString* = ptr TAttrString
-  TAttrString*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: cstring
-
-  PAttrLanguage* = ptr TAttrLanguage
-  TAttrLanguage*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: PLanguage
-
-  PAttrInt* = ptr TAttrInt
-  TAttrInt*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: int32
-
-  PAttrFloat* = ptr TAttrFloat
-  TAttrFloat*{.final, pure.} = object 
-    attr*: TAttribute
-    value*: gdouble
-
-  PAttrColor* = ptr TAttrColor
-  TAttrColor*{.final, pure.} = object 
-    attr*: TAttribute
-    color*: TColor
-
-  PAttrShape* = ptr TAttrShape
-  TAttrShape*{.final, pure.} = object 
-    attr*: TAttribute
-    ink_rect*: TRectangle
-    logical_rect*: TRectangle
-
-  PAttrFontDesc* = ptr TAttrFontDesc
-  TAttrFontDesc*{.final, pure.} = object 
-    attr*: TAttribute
-    desc*: PFontDescription
-
-  PLogAttr* = ptr TLogAttr
-  TLogAttr*{.final, pure.} = object 
-    flag0*: guint16
-
-  PCoverageLevel* = ptr TCoverageLevel
-  TCoverageLevel* = enum 
-    COVERAGE_NONE, COVERAGE_FALLBACK, COVERAGE_APPROXIMATE, COVERAGE_EXACT
-  PBlockInfo* = ptr TBlockInfo
-  TBlockInfo*{.final, pure.} = object 
-    data*: Pguchar
-    level*: TCoverageLevel
-
-  PCoverage* = ptr TCoverage
-  TCoverage*{.final, pure.} = object 
-    ref_count*: int
-    n_blocks*: int32
-    data_size*: int32
-    blocks*: PBlockInfo
-
-  PEngineRange* = ptr TEngineRange
-  TEngineRange*{.final, pure.} = object 
-    start*: int32
-    theEnd*: int32
-    langs*: cstring
-
-  PEngineInfo* = ptr TEngineInfo
-  TEngineInfo*{.final, pure.} = object 
-    id*: cstring
-    engine_type*: cstring
-    render_type*: cstring
-    ranges*: PEngineRange
-    n_ranges*: gint
-
-  PEngine* = ptr TEngine
-  TEngine*{.final, pure.} = object 
-    id*: cstring
-    `type`*: cstring
-    length*: gint
-
-  TEngineLangScriptBreak* = proc (text: cstring, len: int32, 
-                                  analysis: PAnalysis, attrs: PLogAttr, 
-                                  attrs_len: int32){.cdecl.}
-  PEngineLang* = ptr TEngineLang
-  TEngineLang*{.final, pure.} = object 
-    engine*: TEngine
-    script_break*: TEngineLangScriptBreak
-
-  TEngineShapeScript* = proc (font: PFont, text: cstring, length: int32, 
-                              analysis: PAnalysis, glyphs: PGlyphString){.cdecl.}
-  TEngineShapeGetCoverage* = proc (font: PFont, language: PLanguage): PCoverage{.
-      cdecl.}
-  PEngineShape* = ptr TEngineShape
-  TEngineShape*{.final, pure.} = object 
-    engine*: TEngine
-    script_shape*: TEngineShapeScript
-    get_coverage*: TEngineShapeGetCoverage
-
-  PStyle* = ptr TStyle
-  TStyle* = gint
-  PVariant* = ptr TVariant
-  TVariant* = gint
-  PWeight* = ptr TWeight
-  TWeight* = gint
-  PStretch* = ptr TStretch
-  TStretch* = gint
-  PFontMask* = ptr TFontMask
-  TFontMask* = int32
-  PGlyphUnit* = ptr TGlyphUnit
-  TGlyphUnit* = gint32
-  PGlyphGeometry* = ptr TGlyphGeometry
-  TGlyphGeometry*{.final, pure.} = object 
-    width*: TGlyphUnit
-    x_offset*: TGlyphUnit
-    y_offset*: TGlyphUnit
-
-  PGlyphVisAttr* = ptr TGlyphVisAttr
-  TGlyphVisAttr*{.final, pure.} = object 
-    flag0*: int16
-
-  PGlyphInfo* = ptr TGlyphInfo
-  TGlyphInfo*{.final, pure.} = object 
-    glyph*: TGlyph
-    geometry*: TGlyphGeometry
-    attr*: TGlyphVisAttr
-
-  TGlyphString*{.final, pure.} = object 
-    num_glyphs*: gint
-    glyphs*: PGlyphInfo
-    log_clusters*: Pgint
-    space*: gint
-
-  TAnalysis*{.final, pure.} = object 
-    shape_engine*: PEngineShape
-    lang_engine*: PEngineLang
-    font*: PFont
-    level*: guint8
-    language*: PLanguage
-    extra_attrs*: PGSList
-
-  TItem*{.final, pure.} = object 
-    offset*: gint
-    length*: gint
-    num_chars*: gint
-    analysis*: TAnalysis
-
-  PAlignment* = ptr TAlignment
-  TAlignment* = enum 
-    ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT
-  PWrapMode* = ptr TWrapMode
-  TWrapMode* = enum 
-    WRAP_WORD, WRAP_CHAR
-  PLayoutLine* = ptr TLayoutLine
-  TLayoutLine*{.final, pure.} = object 
-    layout*: PLayout
-    start_index*: gint
-    length*: gint
-    runs*: PGSList
-
-  PLayoutRun* = ptr TLayoutRun
-  TLayoutRun*{.final, pure.} = object 
-    item*: PItem
-    glyphs*: PGlyphString
-
-  PTabAlign* = ptr TTabAlign
-  TTabAlign* = enum 
-    TAB_LEFT
-
-const 
-  SCALE* = 1024
-
-proc PIXELS*(d: int): int
-proc ASCENT*(rect: TRectangle): int32
-proc DESCENT*(rect: TRectangle): int32
-proc LBEARING*(rect: TRectangle): int32
-proc RBEARING*(rect: TRectangle): int32
-proc TYPE_LANGUAGE*(): GType
-proc language_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "pango_language_get_type".}
-proc language_from_string*(language: cstring): PLanguage{.cdecl, dynlib: lib, 
-    importc: "pango_language_from_string".}
-proc to_string*(language: PLanguage): cstring
-proc matches*(language: PLanguage, range_list: cstring): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_language_matches".}
-const 
-  ATTR_INVALID* = 0
-  ATTR_LANGUAGE* = 1
-  ATTR_FAMILY* = 2
-  ATTR_STYLE* = 3
-  ATTR_WEIGHT* = 4
-  ATTR_VARIANT* = 5
-  ATTR_STRETCH* = 6
-  ATTR_SIZE* = 7
-  ATTR_FONT_DESC* = 8
-  ATTR_FOREGROUND* = 9
-  ATTR_BACKGROUND* = 10
-  ATTR_UNDERLINE* = 11
-  ATTR_STRIKETHROUGH* = 12
-  ATTR_RISE* = 13
-  ATTR_SHAPE* = 14
-  ATTR_SCALE* = 15
-  UNDERLINE_NONE* = 0
-  UNDERLINE_SINGLE* = 1
-  UNDERLINE_DOUBLE* = 2
-  UNDERLINE_LOW* = 3
-
-proc TYPE_COLOR*(): GType
-proc color_get_type*(): GType{.cdecl, dynlib: lib, 
-                               importc: "pango_color_get_type".}
-proc copy*(src: PColor): PColor{.cdecl, dynlib: lib, 
-                                       importc: "pango_color_copy".}
-proc free*(color: PColor){.cdecl, dynlib: lib, importc: "pango_color_free".}
-proc parse*(color: PColor, spec: cstring): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_color_parse".}
-proc TYPE_ATTR_LIST*(): GType
-proc attr_type_register*(name: cstring): TAttrType{.cdecl, dynlib: lib, 
-    importc: "pango_attr_type_register".}
-proc copy*(attr: PAttribute): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attribute_copy".}
-proc destroy*(attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attribute_destroy".}
-proc equal*(attr1: PAttribute, attr2: PAttribute): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_attribute_equal".}
-proc attr_language_new*(language: PLanguage): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_language_new".}
-proc attr_family_new*(family: cstring): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_family_new".}
-proc attr_foreground_new*(red: guint16, green: guint16, blue: guint16): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_foreground_new".}
-proc attr_background_new*(red: guint16, green: guint16, blue: guint16): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_background_new".}
-proc attr_size_new*(size: int32): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_size_new".}
-proc attr_style_new*(style: TStyle): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_style_new".}
-proc attr_weight_new*(weight: TWeight): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_weight_new".}
-proc attr_variant_new*(variant: TVariant): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_variant_new".}
-proc attr_stretch_new*(stretch: TStretch): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_stretch_new".}
-proc attr_font_desc_new*(desc: PFontDescription): PAttribute{.cdecl, 
-    dynlib: lib, importc: "pango_attr_font_desc_new".}
-proc attr_underline_new*(underline: TUnderline): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_underline_new".}
-proc attr_strikethrough_new*(strikethrough: gboolean): PAttribute{.cdecl, 
-    dynlib: lib, importc: "pango_attr_strikethrough_new".}
-proc attr_rise_new*(rise: int32): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_rise_new".}
-proc attr_shape_new*(ink_rect: PRectangle, logical_rect: PRectangle): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_shape_new".}
-proc attr_scale_new*(scale_factor: gdouble): PAttribute{.cdecl, dynlib: lib, 
-    importc: "pango_attr_scale_new".}
-proc attr_list_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_attr_list_get_type".}
-proc attr_list_new*(): PAttrList{.cdecl, dynlib: lib, 
-                                  importc: "pango_attr_list_new".}
-proc reference*(list: PAttrList){.cdecl, dynlib: lib, 
-                                      importc: "pango_attr_list_ref".}
-proc unref*(list: PAttrList){.cdecl, dynlib: lib, 
-                                        importc: "pango_attr_list_unref".}
-proc copy*(list: PAttrList): PAttrList{.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_copy".}
-proc insert*(list: PAttrList, attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_insert".}
-proc insert_before*(list: PAttrList, attr: PAttribute){.cdecl, 
-    dynlib: lib, importc: "pango_attr_list_insert_before".}
-proc change*(list: PAttrList, attr: PAttribute){.cdecl, dynlib: lib, 
-    importc: "pango_attr_list_change".}
-proc splice*(list: PAttrList, other: PAttrList, pos: gint, len: gint){.
-    cdecl, dynlib: lib, importc: "pango_attr_list_splice".}
-proc get_iterator*(list: PAttrList): PAttrIterator{.cdecl, 
-    dynlib: lib, importc: "pango_attr_list_get_iterator".}
-proc attr_iterator_range*(`iterator`: PAttrIterator, start: Pgint, theEnd: Pgint){.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_range".}
-proc attr_iterator_next*(`iterator`: PAttrIterator): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_attr_iterator_next".}
-proc attr_iterator_copy*(`iterator`: PAttrIterator): PAttrIterator{.cdecl, 
-    dynlib: lib, importc: "pango_attr_iterator_copy".}
-proc attr_iterator_destroy*(`iterator`: PAttrIterator){.cdecl, dynlib: lib, 
-    importc: "pango_attr_iterator_destroy".}
-proc attr_iterator_get*(`iterator`: PAttrIterator, `type`: TAttrType): PAttribute{.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_get".}
-proc attr_iterator_get_font*(`iterator`: PAttrIterator, desc: PFontDescription, 
-                             language: var PLanguage, extra_attrs: PPGSList){.
-    cdecl, dynlib: lib, importc: "pango_attr_iterator_get_font".}
-proc parse_markup*(markup_text: cstring, length: int32, accel_marker: gunichar, 
-                   attr_list: var PAttrList, text: PPchar, 
-                   accel_char: Pgunichar, error: pointer): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_parse_markup".}
-const 
-  bm_TPangoLogAttr_is_line_break* = 0x0001'i16
-  bp_TPangoLogAttr_is_line_break* = 0'i16
-  bm_TPangoLogAttr_is_mandatory_break* = 0x0002'i16
-  bp_TPangoLogAttr_is_mandatory_break* = 1'i16
-  bm_TPangoLogAttr_is_char_break* = 0x0004'i16
-  bp_TPangoLogAttr_is_char_break* = 2'i16
-  bm_TPangoLogAttr_is_white* = 0x0008'i16
-  bp_TPangoLogAttr_is_white* = 3'i16
-  bm_TPangoLogAttr_is_cursor_position* = 0x0010'i16
-  bp_TPangoLogAttr_is_cursor_position* = 4'i16
-  bm_TPangoLogAttr_is_word_start* = 0x0020'i16
-  bp_TPangoLogAttr_is_word_start* = 5'i16
-  bm_TPangoLogAttr_is_word_end* = 0x0040'i16
-  bp_TPangoLogAttr_is_word_end* = 6'i16
-  bm_TPangoLogAttr_is_sentence_boundary* = 0x0080'i16
-  bp_TPangoLogAttr_is_sentence_boundary* = 7'i16
-  bm_TPangoLogAttr_is_sentence_start* = 0x0100'i16
-  bp_TPangoLogAttr_is_sentence_start* = 8'i16
-  bm_TPangoLogAttr_is_sentence_end* = 0x0200'i16
-  bp_TPangoLogAttr_is_sentence_end* = 9'i16
-
-proc is_line_break*(a: PLogAttr): guint
-proc set_is_line_break*(a: PLogAttr, `is_line_break`: guint)
-proc is_mandatory_break*(a: PLogAttr): guint
-proc set_is_mandatory_break*(a: PLogAttr, `is_mandatory_break`: guint)
-proc is_char_break*(a: PLogAttr): guint
-proc set_is_char_break*(a: PLogAttr, `is_char_break`: guint)
-proc is_white*(a: PLogAttr): guint
-proc set_is_white*(a: PLogAttr, `is_white`: guint)
-proc is_cursor_position*(a: PLogAttr): guint
-proc set_is_cursor_position*(a: PLogAttr, `is_cursor_position`: guint)
-proc is_word_start*(a: PLogAttr): guint
-proc set_is_word_start*(a: PLogAttr, `is_word_start`: guint)
-proc is_word_end*(a: PLogAttr): guint
-proc set_is_word_end*(a: PLogAttr, `is_word_end`: guint)
-proc is_sentence_boundary*(a: PLogAttr): guint
-proc set_is_sentence_boundary*(a: PLogAttr, `is_sentence_boundary`: guint)
-proc is_sentence_start*(a: PLogAttr): guint
-proc set_is_sentence_start*(a: PLogAttr, `is_sentence_start`: guint)
-proc is_sentence_end*(a: PLogAttr): guint
-proc set_is_sentence_end*(a: PLogAttr, `is_sentence_end`: guint)
-proc `break`*(text: cstring, length: int32, analysis: PAnalysis, attrs: PLogAttr, 
-            attrs_len: int32){.cdecl, dynlib: lib, importc: "pango_break".}
-proc find_paragraph_boundary*(text: cstring, length: gint, 
-                              paragraph_delimiter_index: Pgint, 
-                              next_paragraph_start: Pgint){.cdecl, dynlib: lib, 
-    importc: "pango_find_paragraph_boundary".}
-proc get_log_attrs*(text: cstring, length: int32, level: int32, 
-                    language: PLanguage, log_attrs: PLogAttr, attrs_len: int32){.
-    cdecl, dynlib: lib, importc: "pango_get_log_attrs".}
-proc TYPE_CONTEXT*(): GType
-proc CONTEXT*(anObject: pointer): PContext
-proc CONTEXT_CLASS*(klass: pointer): PContextClass
-proc IS_CONTEXT*(anObject: pointer): bool
-proc IS_CONTEXT_CLASS*(klass: pointer): bool
-proc GET_CLASS*(obj: PContext): PContextClass
-proc context_get_type*(): GType{.cdecl, dynlib: lib, 
-                                 importc: "pango_context_get_type".}
-proc list_families*(context: PContext, 
-                            families: openarray[ptr PFontFamily]){.cdecl, 
-    dynlib: lib, importc: "pango_context_list_families".}
-proc load_font*(context: PContext, desc: PFontDescription): PFont{.
-    cdecl, dynlib: lib, importc: "pango_context_load_font".}
-proc load_fontset*(context: PContext, desc: PFontDescription, 
-                           language: PLanguage): PFontset{.cdecl, dynlib: lib, 
-    importc: "pango_context_load_fontset".}
-proc get_metrics*(context: PContext, desc: PFontDescription, 
-                          language: PLanguage): PFontMetrics{.cdecl, 
-    dynlib: lib, importc: "pango_context_get_metrics".}
-proc set_font_description*(context: PContext, desc: PFontDescription){.
-    cdecl, dynlib: lib, importc: "pango_context_set_font_description".}
-proc get_font_description*(context: PContext): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_context_get_font_description".}
-proc get_language*(context: PContext): PLanguage{.cdecl, dynlib: lib, 
-    importc: "pango_context_get_language".}
-proc set_language*(context: PContext, language: PLanguage){.cdecl, 
-    dynlib: lib, importc: "pango_context_set_language".}
-proc set_base_dir*(context: PContext, direction: TDirection){.cdecl, 
-    dynlib: lib, importc: "pango_context_set_base_dir".}
-proc get_base_dir*(context: PContext): TDirection{.cdecl, dynlib: lib, 
-    importc: "pango_context_get_base_dir".}
-proc itemize*(context: PContext, text: cstring, start_index: int32, 
-              length: int32, attrs: PAttrList, cached_iter: PAttrIterator): PGList{.
-    cdecl, dynlib: lib, importc: "pango_itemize".}
-proc coverage_new*(): PCoverage{.cdecl, dynlib: lib, 
-                                 importc: "pango_coverage_new".}
-proc reference*(coverage: PCoverage): PCoverage{.cdecl, dynlib: lib, 
-    importc: "pango_coverage_ref".}
-proc unref*(coverage: PCoverage){.cdecl, dynlib: lib, 
-    importc: "pango_coverage_unref".}
-proc copy*(coverage: PCoverage): PCoverage{.cdecl, dynlib: lib, 
-    importc: "pango_coverage_copy".}
-proc get*(coverage: PCoverage, index: int32): TCoverageLevel{.cdecl, 
-    dynlib: lib, importc: "pango_coverage_get".}
-proc set*(coverage: PCoverage, index: int32, level: TCoverageLevel){.
-    cdecl, dynlib: lib, importc: "pango_coverage_set".}
-proc max*(coverage: PCoverage, other: PCoverage){.cdecl, dynlib: lib, 
-    importc: "pango_coverage_max".}
-proc to_bytes*(coverage: PCoverage, bytes: PPguchar, n_bytes: var int32){.
-    cdecl, dynlib: lib, importc: "pango_coverage_to_bytes".}
-proc coverage_from_bytes*(bytes: Pguchar, n_bytes: int32): PCoverage{.cdecl, 
-    dynlib: lib, importc: "pango_coverage_from_bytes".}
-proc TYPE_FONTSET*(): GType
-proc FONTSET*(anObject: pointer): PFontset
-proc IS_FONTSET*(anObject: pointer): bool
-proc fontset_get_type*(): GType{.cdecl, dynlib: lib, 
-                                 importc: "pango_fontset_get_type".}
-proc get_font*(fontset: PFontset, wc: guint): PFont{.cdecl, dynlib: lib, 
-    importc: "pango_fontset_get_font".}
-proc get_metrics*(fontset: PFontset): PFontMetrics{.cdecl, dynlib: lib, 
-    importc: "pango_fontset_get_metrics".}
-const 
-  STYLE_NORMAL* = 0
-  STYLE_OBLIQUE* = 1
-  STYLE_ITALIC* = 2
-  VARIANT_NORMAL* = 0
-  VARIANT_SMALL_CAPS* = 1
-  WEIGHT_ULTRALIGHT* = 200
-  WEIGHT_LIGHT* = 300
-  WEIGHT_NORMAL* = 400
-  WEIGHT_BOLD* = 700
-  WEIGHT_ULTRABOLD* = 800
-  WEIGHT_HEAVY* = 900
-  STRETCH_ULTRA_CONDENSED* = 0
-  STRETCH_EXTRA_CONDENSED* = 1
-  STRETCH_CONDENSED* = 2
-  STRETCH_SEMI_CONDENSED* = 3
-  STRETCH_NORMAL* = 4
-  STRETCH_SEMI_EXPANDED* = 5
-  STRETCH_EXPANDED* = 6
-  STRETCH_EXTRA_EXPANDED* = 7
-  STRETCH_ULTRA_EXPANDED* = 8
-  FONT_MASK_FAMILY* = 1 shl 0
-  FONT_MASK_STYLE* = 1 shl 1
-  FONT_MASK_VARIANT* = 1 shl 2
-  FONT_MASK_WEIGHT* = 1 shl 3
-  FONT_MASK_STRETCH* = 1 shl 4
-  FONT_MASK_SIZE* = 1 shl 5
-  SCALE_XX_SMALL* = 0.578704
-  SCALE_X_SMALL* = 0.644444
-  SCALE_SMALL* = 0.833333
-  SCALE_MEDIUM* = 1.00000
-  SCALE_LARGE* = 1.20000
-  SCALE_X_LARGE* = 1.44000
-  SCALE_XX_LARGE* = 1.72800
-
-proc TYPE_FONT_DESCRIPTION*(): GType
-proc font_description_get_type*(): GType{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_get_type".}
-proc font_description_new*(): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_new".}
-proc copy*(desc: PFontDescription): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_copy".}
-proc copy_static*(desc: PFontDescription): PFontDescription{.
-    cdecl, dynlib: lib, importc: "pango_font_description_copy_static".}
-proc hash*(desc: PFontDescription): guint{.cdecl, dynlib: lib, 
-    importc: "pango_font_description_hash".}
-proc equal*(desc1: PFontDescription, desc2: PFontDescription): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_font_description_equal".}
-proc free*(desc: PFontDescription){.cdecl, dynlib: lib, 
-    importc: "pango_font_description_free".}
-proc font_descriptions_free*(descs: var PFontDescription, n_descs: int32){.
-    cdecl, dynlib: lib, importc: "pango_font_descriptions_free".}
-proc set_family*(desc: PFontDescription, family: cstring){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_family".}
-proc set_family_static*(desc: PFontDescription, family: cstring){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_family_static".}
-proc get_family*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_family".}
-proc set_style*(desc: PFontDescription, style: TStyle){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_set_style".}
-proc get_style*(desc: PFontDescription): TStyle{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_style".}
-proc set_variant*(desc: PFontDescription, variant: TVariant){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_variant".}
-proc get_variant*(desc: PFontDescription): TVariant{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_variant".}
-proc set_weight*(desc: PFontDescription, weight: TWeight){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_weight".}
-proc get_weight*(desc: PFontDescription): TWeight{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_weight".}
-proc set_stretch*(desc: PFontDescription, stretch: TStretch){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_stretch".}
-proc get_stretch*(desc: PFontDescription): TStretch{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_stretch".}
-proc set_size*(desc: PFontDescription, size: gint){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_set_size".}
-proc get_size*(desc: PFontDescription): gint{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_size".}
-proc set_absolute_size*(desc: PFontDescription, size: float64){.
-    cdecl, dynlib: lib, importc: "pango_font_description_set_absolute_size".}
-proc get_size_is_absolute*(desc: PFontDescription, 
-    size: float64): gboolean{.cdecl, dynlib: lib, importc: "pango_font_description_get_size_is_absolute".}
-proc get_set_fields*(desc: PFontDescription): TFontMask{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_get_set_fields".}
-proc unset_fields*(desc: PFontDescription, to_unset: TFontMask){.
-    cdecl, dynlib: lib, importc: "pango_font_description_unset_fields".}
-proc merge*(desc: PFontDescription, 
-                             desc_to_merge: PFontDescription, 
-                             replace_existing: gboolean){.cdecl, dynlib: lib, 
-    importc: "pango_font_description_merge".}
-proc merge_static*(desc: PFontDescription, 
-                                    desc_to_merge: PFontDescription, 
-                                    replace_existing: gboolean){.cdecl, 
-    dynlib: lib, importc: "pango_font_description_merge_static".}
-proc better_match*(desc: PFontDescription, 
-                                    old_match: PFontDescription, 
-                                    new_match: PFontDescription): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_font_description_better_match".}
-proc font_description_from_string*(str: cstring): PFontDescription{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_from_string".}
-proc to_string*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_to_string".}
-proc to_filename*(desc: PFontDescription): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_font_description_to_filename".}
-proc TYPE_FONT_METRICS*(): GType
-proc font_metrics_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "pango_font_metrics_get_type".}
-proc reference*(metrics: PFontMetrics): PFontMetrics{.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_ref".}
-proc unref*(metrics: PFontMetrics){.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_unref".}
-proc get_ascent*(metrics: PFontMetrics): int32{.cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_get_ascent".}
-proc get_descent*(metrics: PFontMetrics): int32{.cdecl, 
-    dynlib: lib, importc: "pango_font_metrics_get_descent".}
-proc get_approximate_char_width*(metrics: PFontMetrics): int32{.
-    cdecl, dynlib: lib, importc: "pango_font_metrics_get_approximate_char_width".}
-proc get_approximate_digit_width*(metrics: PFontMetrics): int32{.
-    cdecl, dynlib: lib, 
-    importc: "pango_font_metrics_get_approximate_digit_width".}
-proc TYPE_FONT_FAMILY*(): GType
-proc FONT_FAMILY*(anObject: Pointer): PFontFamily
-proc IS_FONT_FAMILY*(anObject: Pointer): bool
-proc font_family_get_type*(): GType{.cdecl, dynlib: lib, 
-                                     importc: "pango_font_family_get_type".}
-proc list_faces*(family: PFontFamily, 
-                             faces: var openarray[ptr PFontFace]){.cdecl, 
-    dynlib: lib, importc: "pango_font_family_list_faces".}
-proc get_name*(family: PFontFamily): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_font_family_get_name".}
-proc TYPE_FONT_FACE*(): GType
-proc FONT_FACE*(anObject: pointer): PFontFace
-proc IS_FONT_FACE*(anObject: pointer): bool
-proc font_face_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_font_face_get_type".}
-proc describe*(face: PFontFace): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_face_describe".}
-proc get_face_name*(face: PFontFace): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_font_face_get_face_name".}
-proc TYPE_FONT*(): GType
-proc FONT*(anObject: pointer): PFont
-proc IS_FONT*(anObject: pointer): bool
-proc font_get_type*(): GType{.cdecl, dynlib: lib, importc: "pango_font_get_type".}
-proc describe*(font: PFont): PFontDescription{.cdecl, dynlib: lib, 
-    importc: "pango_font_describe".}
-proc get_coverage*(font: PFont, language: PLanguage): PCoverage{.cdecl, 
-    dynlib: lib, importc: "pango_font_get_coverage".}
-proc find_shaper*(font: PFont, language: PLanguage, ch: guint32): PEngineShape{.
-    cdecl, dynlib: lib, importc: "pango_font_find_shaper".}
-proc get_metrics*(font: PFont, language: PLanguage): PFontMetrics{.cdecl, 
-    dynlib: lib, importc: "pango_font_get_metrics".}
-proc get_glyph_extents*(font: PFont, glyph: TGlyph, ink_rect: PRectangle, 
-                             logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_font_get_glyph_extents".}
-proc TYPE_FONT_MAP*(): GType
-proc FONT_MAP*(anObject: pointer): PFontMap
-proc IS_FONT_MAP*(anObject: pointer): bool
-proc font_map_get_type*(): GType{.cdecl, dynlib: lib, 
-                                  importc: "pango_font_map_get_type".}
-proc load_font*(fontmap: PFontMap, context: PContext, 
-                         desc: PFontDescription): PFont{.cdecl, dynlib: lib, 
-    importc: "pango_font_map_load_font".}
-proc load_fontset*(fontmap: PFontMap, context: PContext, 
-                            desc: PFontDescription, language: PLanguage): PFontset{.
-    cdecl, dynlib: lib, importc: "pango_font_map_load_fontset".}
-proc list_families*(fontmap: PFontMap, 
-                             families: var openarray[ptr PFontFamily]){.cdecl, 
-    dynlib: lib, importc: "pango_font_map_list_families".}
-const 
-  bm_TPangoGlyphVisAttr_is_cluster_start* = 0x0001'i16
-  bp_TPangoGlyphVisAttr_is_cluster_start* = 0'i16
-
-proc is_cluster_start*(a: PGlyphVisAttr): guint
-proc set_is_cluster_start*(a: PGlyphVisAttr, `is_cluster_start`: guint)
-proc TYPE_GLYPH_STRING*(): GType
-proc glyph_string_new*(): PGlyphString{.cdecl, dynlib: lib, 
-                                        importc: "pango_glyph_string_new".}
-proc glyph_string_set_size*(`string`: PGlyphString, new_len: gint){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_set_size".}
-proc glyph_string_get_type*(): GType{.cdecl, dynlib: lib, 
-                                      importc: "pango_glyph_string_get_type".}
-proc glyph_string_copy*(`string`: PGlyphString): PGlyphString{.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_copy".}
-proc glyph_string_free*(`string`: PGlyphString){.cdecl, dynlib: lib, 
-    importc: "pango_glyph_string_free".}
-proc extents*(glyphs: PGlyphString, font: PFont, 
-                           ink_rect: PRectangle, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_glyph_string_extents".}
-proc extents_range*(glyphs: PGlyphString, start: int32, 
-                                 theEnd: int32, font: PFont, 
-                                 ink_rect: PRectangle, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_glyph_string_extents_range".}
-proc get_logical_widths*(glyphs: PGlyphString, text: cstring, 
-                                      length: int32, embedding_level: int32, 
-                                      logical_widths: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_get_logical_widths".}
-proc index_to_x*(glyphs: PGlyphString, text: cstring, 
-                              length: int32, analysis: PAnalysis, index: int32, 
-                              trailing: gboolean, x_pos: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_glyph_string_index_to_x".}
-proc x_to_index*(glyphs: PGlyphString, text: cstring, 
-                              length: int32, analysis: PAnalysis, x_pos: int32, 
-                              index, trailing: var int32){.cdecl, dynlib: lib, 
-    importc: "pango_glyph_string_x_to_index".}
-proc shape*(text: cstring, length: gint, analysis: PAnalysis, 
-            glyphs: PGlyphString){.cdecl, dynlib: lib, importc: "pango_shape".}
-proc reorder_items*(logical_items: PGList): PGList{.cdecl, dynlib: lib, 
-    importc: "pango_reorder_items".}
-proc item_new*(): PItem{.cdecl, dynlib: lib, importc: "pango_item_new".}
-proc copy*(item: PItem): PItem{.cdecl, dynlib: lib, 
-                                     importc: "pango_item_copy".}
-proc free*(item: PItem){.cdecl, dynlib: lib, importc: "pango_item_free".}
-proc split*(orig: PItem, split_index: int32, split_offset: int32): PItem{.
-    cdecl, dynlib: lib, importc: "pango_item_split".}
-proc TYPE_LAYOUT*(): GType
-proc LAYOUT*(anObject: pointer): PLayout
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass
-proc IS_LAYOUT*(anObject: pointer): bool
-proc IS_LAYOUT_CLASS*(klass: pointer): bool
-proc GET_CLASS*(obj: PLayout): PLayoutClass
-proc layout_get_type*(): GType{.cdecl, dynlib: lib, 
-                                importc: "pango_layout_get_type".}
-proc layout_new*(context: PContext): PLayout{.cdecl, dynlib: lib, 
-    importc: "pango_layout_new".}
-proc copy*(src: PLayout): PLayout{.cdecl, dynlib: lib, 
-    importc: "pango_layout_copy".}
-proc get_context*(layout: PLayout): PContext{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_context".}
-proc set_attributes*(layout: PLayout, attrs: PAttrList){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_attributes".}
-proc get_attributes*(layout: PLayout): PAttrList{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_attributes".}
-proc set_text*(layout: PLayout, text: cstring, length: int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_text".}
-proc get_text*(layout: PLayout): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_text".}
-proc set_markup*(layout: PLayout, markup: cstring, length: int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_markup".}
-proc set_markup*(layout: PLayout, markup: cstring, 
-                                   length: int32, accel_marker: gunichar, 
-                                   accel_char: Pgunichar){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_markup_with_accel".}
-proc set_font_description*(layout: PLayout, desc: PFontDescription){.
-    cdecl, dynlib: lib, importc: "pango_layout_set_font_description".}
-proc set_width*(layout: PLayout, width: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_width".}
-proc get_width*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_width".}
-proc set_wrap*(layout: PLayout, wrap: TWrapMode){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_wrap".}
-proc get_wrap*(layout: PLayout): TWrapMode{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_wrap".}
-proc set_indent*(layout: PLayout, indent: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_indent".}
-proc get_indent*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_indent".}
-proc set_spacing*(layout: PLayout, spacing: int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_spacing".}
-proc get_spacing*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_spacing".}
-proc set_justify*(layout: PLayout, justify: gboolean){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_justify".}
-proc get_justify*(layout: PLayout): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_justify".}
-proc set_alignment*(layout: PLayout, alignment: TAlignment){.cdecl, 
-    dynlib: lib, importc: "pango_layout_set_alignment".}
-proc get_alignment*(layout: PLayout): TAlignment{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_alignment".}
-proc set_tabs*(layout: PLayout, tabs: PTabArray){.cdecl, dynlib: lib, 
-    importc: "pango_layout_set_tabs".}
-proc get_tabs*(layout: PLayout): PTabArray{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_tabs".}
-proc set_single_paragraph_mode*(layout: PLayout, setting: gboolean){.
-    cdecl, dynlib: lib, importc: "pango_layout_set_single_paragraph_mode".}
-proc get_single_paragraph_mode*(layout: PLayout): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_layout_get_single_paragraph_mode".}
-proc context_changed*(layout: PLayout){.cdecl, dynlib: lib, 
-    importc: "pango_layout_context_changed".}
-proc get_log_attrs*(layout: PLayout, attrs: var PLogAttr, n_attrs: Pgint){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_log_attrs".}
-proc index_to_pos*(layout: PLayout, index: int32, pos: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_index_to_pos".}
-proc get_cursor_pos*(layout: PLayout, index: int32, 
-                            strong_pos: PRectangle, weak_pos: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_cursor_pos".}
-proc move_cursor_visually*(layout: PLayout, strong: gboolean, 
-                                  old_index: int32, old_trailing: int32, 
-                                  direction: int32, 
-                                  new_index, new_trailing: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_move_cursor_visually".}
-proc xy_to_index*(layout: PLayout, x: int32, y: int32, 
-                         index, trailing: var int32): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_layout_xy_to_index".}
-proc get_extents*(layout: PLayout, ink_rect: PRectangle, 
-                         logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_extents".}
-proc get_pixel_extents*(layout: PLayout, ink_rect: PRectangle, 
-                               logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_pixel_extents".}
-proc get_size*(layout: PLayout, width: var int32, height: var int32){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_size".}
-proc get_pixel_size*(layout: PLayout, width: var int32, height: var int32){.
-    cdecl, dynlib: lib, importc: "pango_layout_get_pixel_size".}
-proc get_line_count*(layout: PLayout): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_line_count".}
-proc get_line*(layout: PLayout, line: int32): PLayoutLine{.cdecl, 
-    dynlib: lib, importc: "pango_layout_get_line".}
-proc get_lines*(layout: PLayout): PGSList{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_lines".}
-proc reference*(line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_ref".}
-proc unref*(line: PLayoutLine){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_unref".}
-proc x_to_index*(line: PLayoutLine, x_pos: int32, index: var int32, 
-                             trailing: var int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_x_to_index".}
-proc index_to_x*(line: PLayoutLine, index: int32, 
-                             trailing: gboolean, x_pos: var int32){.cdecl, 
-    dynlib: lib, importc: "pango_layout_line_index_to_x".}
-proc get_extents*(line: PLayoutLine, ink_rect: PRectangle, 
-                              logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_line_get_extents".}
-proc get_pixel_extents*(layout_line: PLayoutLine, 
-                                    ink_rect: PRectangle, 
-                                    logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_line_get_pixel_extents".}
-proc get_iter*(layout: PLayout): PLayoutIter{.cdecl, dynlib: lib, 
-    importc: "pango_layout_get_iter".}
-proc free*(iter: PLayoutIter){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_free".}
-proc get_index*(iter: PLayoutIter): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_index".}
-proc get_run*(iter: PLayoutIter): PLayoutRun{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_run".}
-proc get_line*(iter: PLayoutIter): PLayoutLine{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_line".}
-proc at_last_line*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_at_last_line".}
-proc next_char*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_char".}
-proc next_cluster*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_cluster".}
-proc next_run*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_run".}
-proc next_line*(iter: PLayoutIter): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_next_line".}
-proc get_char_extents*(iter: PLayoutIter, logical_rect: PRectangle){.
-    cdecl, dynlib: lib, importc: "pango_layout_iter_get_char_extents".}
-proc get_cluster_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                      logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_cluster_extents".}
-proc get_run_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                  logical_rect: PRectangle){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_run_extents".}
-proc get_line_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                   logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_line_extents".}
-proc get_line_yrange*(iter: PLayoutIter, y0: var int32, 
-                                  y1: var int32){.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_line_yrange".}
-proc get_layout_extents*(iter: PLayoutIter, ink_rect: PRectangle, 
-                                     logical_rect: PRectangle){.cdecl, 
-    dynlib: lib, importc: "pango_layout_iter_get_layout_extents".}
-proc get_baseline*(iter: PLayoutIter): int32{.cdecl, dynlib: lib, 
-    importc: "pango_layout_iter_get_baseline".}
-proc TYPE_TAB_ARRAY*(): GType
-proc tab_array_new*(initial_size: gint, positions_in_pixels: gboolean): PTabArray{.
-    cdecl, dynlib: lib, importc: "pango_tab_array_new".}
-proc tab_array_get_type*(): GType{.cdecl, dynlib: lib, 
-                                   importc: "pango_tab_array_get_type".}
-proc copy*(src: PTabArray): PTabArray{.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_copy".}
-proc free*(tab_array: PTabArray){.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_free".}
-proc get_size*(tab_array: PTabArray): gint{.cdecl, dynlib: lib, 
-    importc: "pango_tab_array_get_size".}
-proc resize*(tab_array: PTabArray, new_size: gint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_resize".}
-proc set_tab*(tab_array: PTabArray, tab_index: gint, 
-                        alignment: TTabAlign, location: gint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_set_tab".}
-proc get_tab*(tab_array: PTabArray, tab_index: gint, 
-                        alignment: PTabAlign, location: Pgint){.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_get_tab".}
-proc get_positions_in_pixels*(tab_array: PTabArray): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_tab_array_get_positions_in_pixels".}
-proc ASCENT*(rect: TRectangle): int32 = 
-  result = -rect.y
-
-proc DESCENT*(rect: TRectangle): int32 = 
-  result = (rect.y) + (rect.height)
-
-proc LBEARING*(rect: TRectangle): int32 = 
-  result = rect.x
-
-proc RBEARING*(rect: TRectangle): int32 = 
-  result = (rect.x) + (rect.width)
-
-proc TYPE_LANGUAGE*(): GType = 
-  result = language_get_type()
-
-proc to_string*(language: PLanguage): cstring = 
-  result = cast[cstring](language)
-
-proc PIXELS*(d: int): int = 
-  if d >= 0: 
-    result = (d + (SCALE div 2)) div SCALE
-  else: 
-    result = (d - (SCALE div 2)) div SCALE
-
-proc TYPE_COLOR*(): GType = 
-  result = color_get_type()
-
-proc TYPE_ATTR_LIST*(): GType = 
-  result = attr_list_get_type()
-
-proc is_line_break*(a: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_line_break) shr
-      bp_TPangoLogAttr_is_line_break
-
-proc set_is_line_break*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_mandatory_break) shr
-      bp_TPangoLogAttr_is_mandatory_break
-
-proc set_is_mandatory_break*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_char_break) shr
-      bp_TPangoLogAttr_is_char_break
-
-proc set_is_char_break*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_white) shr
-      bp_TPangoLogAttr_is_white
-
-proc set_is_white*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_cursor_position) shr
-      bp_TPangoLogAttr_is_cursor_position
-
-proc set_is_cursor_position*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_word_start) shr
-      bp_TPangoLogAttr_is_word_start
-
-proc set_is_word_start*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_word_end) shr
-      bp_TPangoLogAttr_is_word_end
-
-proc set_is_word_end*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_boundary) shr
-      bp_TPangoLogAttr_is_sentence_boundary
-
-proc set_is_sentence_boundary*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_start) shr
-      bp_TPangoLogAttr_is_sentence_start
-
-proc set_is_sentence_start*(a: PLogAttr, `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: PLogAttr): guint = 
-  result = (a.flag0 and bm_TPangoLogAttr_is_sentence_end) shr
-      bp_TPangoLogAttr_is_sentence_end
-
-proc set_is_sentence_end*(a: PLogAttr, `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 TYPE_CONTEXT*(): GType = 
-  result = context_get_type()
-
-proc CONTEXT*(anObject: pointer): PContext = 
-  result = cast[PContext](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_CONTEXT()))
-
-proc CONTEXT_CLASS*(klass: pointer): PContextClass = 
-  result = cast[PContextClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_CONTEXT()))
-
-proc IS_CONTEXT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_CONTEXT())
-
-proc IS_CONTEXT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_CONTEXT())
-
-proc GET_CLASS*(obj: PContext): PContextClass = 
-  result = cast[PContextClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_CONTEXT()))
-
-proc TYPE_FONTSET*(): GType = 
-  result = fontset_get_type()
-
-proc FONTSET*(anObject: pointer): PFontset = 
-  result = cast[PFontset](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONTSET()))
-
-proc IS_FONTSET*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONTSET())
-
-proc FONTSET_CLASS*(klass: pointer): PFontsetClass = 
-  result = cast[PFontsetClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONTSET()))
-
-proc IS_FONTSET_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONTSET())
-
-proc GET_CLASS*(obj: PFontset): PFontsetClass = 
-  result = cast[PFontsetClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONTSET()))
-
-proc fontset_simple_get_type(): GType{.importc: "pango_fontset_simple_get_type", 
-                                       cdecl, dynlib: lib.}
-proc TYPE_FONTSET_SIMPLE*(): GType = 
-  result = fontset_simple_get_type()
-
-proc FONTSET_SIMPLE*(anObject: pointer): PFontsetSimple = 
-  result = cast[PFontsetSimple](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_FONTSET_SIMPLE()))
-
-proc IS_FONTSET_SIMPLE*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONTSET_SIMPLE())
-
-proc TYPE_FONT_DESCRIPTION*(): GType = 
-  result = font_description_get_type()
-
-proc TYPE_FONT_METRICS*(): GType = 
-  result = font_metrics_get_type()
-
-proc TYPE_FONT_FAMILY*(): GType = 
-  result = font_family_get_type()
-
-proc FONT_FAMILY*(anObject: pointer): PFontFamily = 
-  result = cast[PFontFamily](G_TYPE_CHECK_INSTANCE_CAST(anObject, 
-      TYPE_FONT_FAMILY()))
-
-proc IS_FONT_FAMILY*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_FAMILY())
-
-proc FONT_FAMILY_CLASS*(klass: Pointer): PFontFamilyClass = 
-  result = cast[PFontFamilyClass](G_TYPE_CHECK_CLASS_CAST(klass, 
-      TYPE_FONT_FAMILY()))
-
-proc IS_FONT_FAMILY_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_FAMILY())
-
-proc GET_CLASS*(obj: PFontFamily): PFontFamilyClass = 
-  result = cast[PFontFamilyClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
-      TYPE_FONT_FAMILY()))
-
-proc TYPE_FONT_FACE*(): GType = 
-  result = font_face_get_type()
-
-proc FONT_FACE*(anObject: Pointer): PFontFace = 
-  result = cast[PFontFace](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT_FACE()))
-
-proc IS_FONT_FACE*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_FACE())
-
-proc FONT_FACE_CLASS*(klass: Pointer): PFontFaceClass = 
-  result = cast[PFontFaceClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT_FACE()))
-
-proc IS_FONT_FACE_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_FACE())
-
-proc FONT_FACE_GET_CLASS*(obj: Pointer): PFontFaceClass = 
-  result = cast[PFontFaceClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT_FACE()))
-
-proc TYPE_FONT*(): GType = 
-  result = font_get_type()
-
-proc FONT*(anObject: Pointer): PFont = 
-  result = cast[PFont](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT()))
-
-proc IS_FONT*(anObject: Pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT())
-
-proc FONT_CLASS*(klass: Pointer): PFontClass = 
-  result = cast[PFontClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT()))
-
-proc IS_FONT_CLASS*(klass: Pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT())
-
-proc GET_CLASS*(obj: PFont): PFontClass = 
-  result = cast[PFontClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT()))
-
-proc TYPE_FONT_MAP*(): GType = 
-  result = font_map_get_type()
-
-proc FONT_MAP*(anObject: pointer): PFontmap = 
-  result = cast[PFontmap](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_FONT_MAP()))
-
-proc IS_FONT_MAP*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_FONT_MAP())
-
-proc FONT_MAP_CLASS*(klass: pointer): PFontMapClass = 
-  result = cast[PFontMapClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_FONT_MAP()))
-
-proc IS_FONT_MAP_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_FONT_MAP())
-
-proc GET_CLASS*(obj: PFontMap): PFontMapClass = 
-  result = cast[PFontMapClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_FONT_MAP()))
-
-proc is_cluster_start*(a: PGlyphVisAttr): guint = 
-  result = (a.flag0 and bm_TPangoGlyphVisAttr_is_cluster_start) shr
-      bp_TPangoGlyphVisAttr_is_cluster_start
-
-proc set_is_cluster_start*(a: PGlyphVisAttr, `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 TYPE_GLYPH_STRING*(): GType = 
-  result = glyph_string_get_type()
-
-proc TYPE_LAYOUT*(): GType = 
-  result = layout_get_type()
-
-proc LAYOUT*(anObject: pointer): PLayout = 
-  result = cast[PLayout](G_TYPE_CHECK_INSTANCE_CAST(anObject, TYPE_LAYOUT()))
-
-proc LAYOUT_CLASS*(klass: pointer): PLayoutClass = 
-  result = cast[PLayoutClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_LAYOUT()))
-
-proc IS_LAYOUT*(anObject: pointer): bool = 
-  result = G_TYPE_CHECK_INSTANCE_TYPE(anObject, TYPE_LAYOUT())
-
-proc IS_LAYOUT_CLASS*(klass: pointer): bool = 
-  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_LAYOUT())
-
-proc GET_CLASS*(obj: PLayout): PLayoutClass = 
-  result = cast[PLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_LAYOUT()))
-
-proc TYPE_TAB_ARRAY*(): GType = 
-  result = tab_array_get_type()
diff --git a/lib/wrappers/gtk/pangoutils.nim b/lib/wrappers/gtk/pangoutils.nim
deleted file mode 100644
index 240273b11..000000000
--- a/lib/wrappers/gtk/pangoutils.nim
+++ /dev/null
@@ -1,42 +0,0 @@
-{.deadCodeElim: on.}
-import 
-  glib2, pango
-
-proc split_file_list*(str: cstring): PPchar{.cdecl, dynlib: lib, 
-    importc: "pango_split_file_list".}
-proc trim_string*(str: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_trim_string".}
-proc read_line*(stream: TFile, str: PGString): gint{.cdecl, dynlib: lib, 
-    importc: "pango_read_line".}
-proc skip_space*(pos: PPchar): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_skip_space".}
-proc scan_word*(pos: PPchar, OutStr: PGString): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_word".}
-proc scan_string*(pos: PPchar, OutStr: PGString): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_string".}
-proc scan_int*(pos: PPchar, OutInt: ptr int32): gboolean{.cdecl, dynlib: lib, 
-    importc: "pango_scan_int".}
-proc config_key_get*(key: cstring): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_config_key_get".}
-proc lookup_aliases*(fontname: cstring, families: PPPchar, n_families: ptr int32){.
-    cdecl, dynlib: lib, importc: "pango_lookup_aliases".}
-proc parse_style*(str: cstring, style: PStyle, warn: gboolean): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_parse_style".}
-proc parse_variant*(str: cstring, variant: PVariant, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_variant".}
-proc parse_weight*(str: cstring, weight: PWeight, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_weight".}
-proc parse_stretch*(str: cstring, stretch: PStretch, warn: gboolean): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_parse_stretch".}
-proc get_sysconf_subdirectory*(): cstring{.cdecl, dynlib: lib, 
-    importc: "pango_get_sysconf_subdirectory".}
-proc get_lib_subdirectory*(): cstring{.cdecl, dynlib: lib, 
-                                      importc: "pango_get_lib_subdirectory".}
-proc log2vis_get_embedding_levels*(str: Pgunichar, len: int32, 
-                                   pbase_dir: PDirection, 
-                                   embedding_level_list: Pguint8): gboolean{.
-    cdecl, dynlib: lib, importc: "pango_log2vis_get_embedding_levels".}
-proc get_mirror_char*(ch: gunichar, mirrored_ch: Pgunichar): gboolean{.cdecl, 
-    dynlib: lib, importc: "pango_get_mirror_char".}
-proc get_sample_string*(language: PLanguage): cstring{.cdecl, 
-    dynlib: lib, importc: "pango_language_get_sample_string".}
diff --git a/lib/wrappers/lua/lauxlib.nim b/lib/wrappers/lua/lauxlib.nim
deleted file mode 100644
index b985858d3..000000000
--- a/lib/wrappers/lua/lauxlib.nim
+++ /dev/null
@@ -1,208 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lauxlib.pas                                                  *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Lua auxiliary library                                        *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lauxlib.h,v 1.59 2003/03/18 12:25:32 roberto Exp $
-#** Auxiliary functions for building Lua libraries
-#** See Copyright Notice in lua.h
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Notes :
-#**    - Pointers type was prefixed with 'P'
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-import 
-  lua
-
-proc pushstring*(L: PState, s: string)
-  # compatibilty macros
-proc getn*(L: PState, n: cint): cint
-  # calls lua_objlen
-proc setn*(L: PState, t, n: cint)
-  # does nothing!
-type 
-  Treg*{.final.} = object 
-    name*: cstring
-    func*: CFunction
-
-  Preg* = ptr Treg
-
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-{.push importc: "luaL_$1".}
-
-proc openlib*(L: PState, libname: cstring, lr: Preg, nup: cint)
-proc register*(L: PState, libname: cstring, lr: Preg)
-
-proc getmetafield*(L: PState, obj: cint, e: cstring): cint
-proc callmeta*(L: PState, obj: cint, e: cstring): cint
-proc typerror*(L: PState, narg: cint, tname: cstring): cint
-proc argerror*(L: PState, numarg: cint, extramsg: cstring): cint
-proc checklstring*(L: PState, numArg: cint, len: ptr int): cstring
-proc optlstring*(L: PState, numArg: cint, def: cstring, len: ptr cint): cstring
-proc checknumber*(L: PState, numArg: cint): Number
-proc optnumber*(L: PState, nArg: cint, def: Number): Number
-proc checkinteger*(L: PState, numArg: cint): Integer
-proc optinteger*(L: PState, nArg: cint, def: Integer): Integer
-proc checkstack*(L: PState, sz: cint, msg: cstring)
-proc checktype*(L: PState, narg, t: cint)
-
-proc checkany*(L: PState, narg: cint)
-proc newmetatable*(L: PState, tname: cstring): cint
-
-proc checkudata*(L: PState, ud: cint, tname: cstring): Pointer
-proc where*(L: PState, lvl: cint)
-proc error*(L: PState, fmt: cstring): cint{.varargs.}
-proc checkoption*(L: PState, narg: cint, def: cstring, lst: cstringArray): cint
-
-proc unref*(L: PState, t, theref: cint)
-proc loadfile*(L: PState, filename: cstring): cint
-proc loadbuffer*(L: PState, buff: cstring, size: cint, name: cstring): cint
-proc loadstring*(L: PState, s: cstring): cint
-proc newstate*(): PState
-
-{.pop.}
-proc reference*(L: PState, t: cint): cint{.importc: "luaL_ref".}
-
-{.pop.}
-
-proc open*(): PState
-  # compatibility; moved from unit lua to lauxlib because it needs luaL_newstate
-  #
-  #** ===============================================================
-  #** some useful macros
-  #** ===============================================================
-  #
-proc argcheck*(L: PState, cond: bool, numarg: cint, extramsg: cstring)
-proc checkstring*(L: PState, n: cint): cstring
-proc optstring*(L: PState, n: cint, d: cstring): cstring
-proc checkint*(L: PState, n: cint): cint
-proc checklong*(L: PState, n: cint): clong
-proc optint*(L: PState, n: cint, d: float64): cint
-proc optlong*(L: PState, n: cint, d: float64): clong
-proc dofile*(L: PState, filename: cstring): cint
-proc dostring*(L: PState, str: cstring): cint
-proc getmetatable*(L: PState, tname: cstring)
-  # not translated:
-  # #define luaL_opt(L,f,n,d)  (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
-  #
-  #** =======================================================
-  #** Generic Buffer manipulation
-  #** =======================================================
-  #
-const                         # note: this is just arbitrary, as it related to the BUFSIZ defined in stdio.h ...
-  BUFFERSIZE* = 4096
-
-type 
-  Buffer*{.final.} = object 
-    p*: cstring               # current position in buffer 
-    lvl*: cint                 # number of strings in the stack (level) 
-    L*: PState
-    buffer*: array[0..BUFFERSIZE - 1, Char] # warning: see note above about LUAL_BUFFERSIZE
-  
-  PBuffer* = ptr Buffer
-
-proc addchar*(B: PBuffer, c: Char)
-  # warning: see note above about LUAL_BUFFERSIZE
-  # compatibility only (alias for luaL_addchar) 
-proc putchar*(B: PBuffer, c: Char)
-  # warning: see note above about LUAL_BUFFERSIZE
-proc addsize*(B: PBuffer, n: cint)
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME, importc: "luaL_$1".}
-proc buffinit*(L: PState, B: PBuffer)
-proc prepbuffer*(B: PBuffer): cstring
-proc addlstring*(B: PBuffer, s: cstring, L: cint)
-proc addstring*(B: PBuffer, s: cstring)
-proc addvalue*(B: PBuffer)
-proc pushresult*(B: PBuffer)
-proc gsub*(L: PState, s, p, r: cstring): cstring
-proc findtable*(L: PState, idx: cint, fname: cstring, szhint: cint): cstring
-  # compatibility with ref system 
-  # pre-defined references 
-{.pop.}
-
-const 
-  NOREF* = - 2
-  REFNIL* = - 1
-
-proc unref*(L: PState, theref: cint)
-proc getref*(L: PState, theref: cint)
-  #
-  #** Compatibility macros and functions
-  #
-# implementation
-
-proc pushstring(L: PState, s: string) = 
-  pushlstring(L, cstring(s), s.len.cint)
-
-proc getn(L: PState, n: cint): cint = 
-  Result = objlen(L, n)
-
-proc setn(L: PState, t, n: cint) = 
-  # does nothing as this operation is deprecated
-  nil
-
-proc open(): PState = 
-  Result = newstate()
-
-proc dofile(L: PState, filename: cstring): cint = 
-  Result = loadfile(L, filename)
-  if Result == 0: Result = pcall(L, 0, MULTRET, 0)
-  
-proc dostring(L: PState, str: cstring): cint = 
-  Result = loadstring(L, str)
-  if Result == 0: Result = pcall(L, 0, MULTRET, 0)
-  
-proc getmetatable(L: PState, tname: cstring) = 
-  getfield(L, REGISTRYINDEX, tname)
-
-proc argcheck(L: PState, cond: bool, numarg: cint, extramsg: cstring) = 
-  if not cond: 
-    discard argerror(L, numarg, extramsg)
-
-proc checkstring(L: PState, n: cint): cstring = 
-  Result = checklstring(L, n, nil)
-
-proc optstring(L: PState, n: cint, d: cstring): cstring = 
-  Result = optlstring(L, n, d, nil)
-
-proc checkint(L: PState, n: cint): cint = 
-  Result = cint(checknumber(L, n))
-
-proc checklong(L: PState, n: cint): clong = 
-  Result = int32(ToInt(checknumber(L, n)))
-
-proc optint(L: PState, n: cint, d: float64): cint = 
-  Result = optnumber(L, n, d).cint
-
-proc optlong(L: PState, n: cint, d: float64): clong = 
-  Result = int32(ToInt(optnumber(L, n, d)))
-
-proc addchar(B: PBuffer, c: Char) = 
-  if cast[int](addr((B.p))) < (cast[int](addr((B.buffer[0]))) + BUFFERSIZE): 
-    discard prepbuffer(B)
-  B.p[1] = c
-  B.p = cast[cstring](cast[int](B.p) + 1)
-
-proc putchar(B: PBuffer, c: Char) = 
-  addchar(B, c)
-
-proc addsize(B: PBuffer, n: cint) = 
-  B.p = cast[cstring](cast[int](B.p) + n)
-
-proc unref(L: PState, theref: cint) = 
-  unref(L, REGISTRYINDEX, theref)
-
-proc getref(L: PState, theref: cint) = 
-  rawgeti(L, REGISTRYINDEX, theref)
diff --git a/lib/wrappers/lua/lua.nim b/lib/wrappers/lua/lua.nim
deleted file mode 100644
index 153714cee..000000000
--- a/lib/wrappers/lua/lua.nim
+++ /dev/null
@@ -1,364 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lua.pas                                                      *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Basic Lua library                                            *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lua.h,v 1.175 2003/03/18 12:31:39 roberto Exp $
-#** Lua - An Extensible Extension Language
-#** TeCGraf: Computer Graphics Technology Group, PUC-Rio, Brazil
-#** http://www.lua.org   mailto:info@lua.org
-#** See Copyright Notice at the end of this file
-#
-#
-#** Updated to Lua 5.1.1 by Bram Kuijvenhoven (bram at kuijvenhoven dot net),
-#**   Hexis BV (http://www.hexis.nl), the Netherlands
-#** Notes:
-#**    - Only tested with FPC (FreePascal Compiler)
-#**    - Using LuaBinaries styled DLL/SO names, which include version names
-#**    - LUA_YIELD was suffixed by '_' for avoiding name collision
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Notes :
-#**    - Pointers type was prefixed with 'P'
-#**    - lua_upvalueindex constant was transformed to function
-#**    - Some compatibility function was isolated because with it you must have
-#**      lualib.
-#**    - LUA_VERSION was suffixed by '_' for avoiding name collision.
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-when defined(useLuajit):
-  when defined(MACOSX):
-    const
-      NAME* = "libluajit.dylib"
-      LIB_NAME* = "libluajit.dylib"
-  elif defined(UNIX):
-    const
-      NAME* = "libluajit.so(|.0)"
-      LIB_NAME* = "libluajit.so(|.0)"
-  else:
-    const
-      NAME* = "luajit.dll"
-      LIB_NAME* = "luajit.dll"
-else:
-  when defined(MACOSX):
-    const
-      NAME* = "liblua(|5.1|5.0).dylib"
-      LIB_NAME* = "liblua(|5.1|5.0).dylib"
-  elif defined(UNIX):
-    const
-      NAME* = "liblua(|5.1|5.0).so(|.0)"
-      LIB_NAME* = "liblua(|5.1|5.0).so(|.0)"
-  else:
-    const 
-      NAME* = "lua(|5.1|5.0).dll"
-      LIB_NAME* = "lua(|5.1|5.0).dll"
-
-const 
-  VERSION* = "Lua 5.1"
-  RELEASE* = "Lua 5.1.1"
-  VERSION_NUM* = 501
-  COPYRIGHT* = "Copyright (C) 1994-2006 Lua.org, PUC-Rio"
-  AUTHORS* = "R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
-  # option for multiple returns in `lua_pcall' and `lua_call' 
-  MULTRET* = - 1              #
-                              #** pseudo-indices
-                              #
-  REGISTRYINDEX* = - 10000
-  ENVIRONINDEX* = - 10001
-  GLOBALSINDEX* = - 10002
-
-proc upvalueindex*(I: cint): cint
-const                         # thread status; 0 is OK 
-  constYIELD* = 1
-  ERRRUN* = 2
-  ERRSYNTAX* = 3
-  ERRMEM* = 4
-  ERRERR* = 5
-
-type 
-  PState* = Pointer
-  CFunction* = proc (L: PState): cint{.cdecl.}
-
-#
-#** functions that read/write blocks when loading/dumping Lua chunks
-#
-
-type 
-  Reader* = proc (L: PState, ud: Pointer, sz: ptr cint): cstring{.cdecl.}
-  Writer* = proc (L: PState, p: Pointer, sz: cint, ud: Pointer): cint{.cdecl.}
-  Alloc* = proc (ud, theptr: Pointer, osize, nsize: cint){.cdecl.}
-
-const 
-  TNONE* = - 1
-  TNIL* = 0
-  TBOOLEAN* = 1
-  TLIGHTUSERDATA* = 2
-  TNUMBER* = 3
-  TSTRING* = 4
-  TTABLE* = 5
-  TFUNCTION* = 6
-  TUSERDATA* = 7
-  TTHREAD* = 8                # minimum Lua stack available to a C function 
-  MINSTACK* = 20
-
-type                          # Type of Numbers in Lua 
-  Number* = float
-  Integer* = cint
-
-{.pragma: ilua, importc: "lua_$1".}
-
-{.push callConv: cdecl, dynlib: LibName.}
-#{.push importc: "lua_$1".}
-
-proc newstate*(f: Alloc, ud: Pointer): PState {.ilua.}
-
-proc close*(L: PState){.ilua.}
-proc newthread*(L: PState): PState{.ilua.}
-proc atpanic*(L: PState, panicf: CFunction): CFunction{.ilua.}
-
-proc gettop*(L: PState): cint{.ilua.}
-proc settop*(L: PState, idx: cint){.ilua.}
-proc pushvalue*(L: PState, Idx: cint){.ilua.}
-proc remove*(L: PState, idx: cint){.ilua.}
-proc insert*(L: PState, idx: cint){.ilua.}
-proc replace*(L: PState, idx: cint){.ilua.}
-proc checkstack*(L: PState, sz: cint): cint{.ilua.}
-proc xmove*(`from`, `to`: PState, n: cint){.ilua.}
-proc isnumber*(L: PState, idx: cint): cint{.ilua.}
-proc isstring*(L: PState, idx: cint): cint{.ilua.}
-proc iscfunction*(L: PState, idx: cint): cint{.ilua.}
-proc isuserdata*(L: PState, idx: cint): cint{.ilua.}
-proc luatype*(L: PState, idx: cint): cint{.importc: "lua_type".}
-proc typename*(L: PState, tp: cint): cstring{.ilua.}
-proc equal*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc rawequal*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc lessthan*(L: PState, idx1, idx2: cint): cint{.ilua.}
-proc tonumber*(L: PState, idx: cint): Number{.ilua.}
-proc tointeger*(L: PState, idx: cint): Integer{.ilua.}
-proc toboolean*(L: PState, idx: cint): cint{.ilua.}
-proc tolstring*(L: PState, idx: cint, length: ptr cint): cstring{.ilua.}
-proc objlen*(L: PState, idx: cint): cint{.ilua.}
-proc tocfunction*(L: PState, idx: cint): CFunction{.ilua.}
-proc touserdata*(L: PState, idx: cint): Pointer{.ilua.}
-proc tothread*(L: PState, idx: cint): PState{.ilua.}
-proc topointer*(L: PState, idx: cint): Pointer{.ilua.}
-proc pushnil*(L: PState){.ilua.}
-proc pushnumber*(L: PState, n: Number){.ilua.}
-proc pushinteger*(L: PState, n: Integer){.ilua.}
-proc pushlstring*(L: PState, s: cstring, len: cint){.ilua.}
-proc pushstring*(L: PState, s: cstring){.ilua.}
-proc pushvfstring*(L: PState, fmt: cstring, argp: Pointer): cstring{.ilua.}
-proc pushfstring*(L: PState, fmt: cstring): cstring{.varargs,ilua.}
-proc pushcclosure*(L: PState, fn: CFunction, n: cint){.ilua.}
-proc pushboolean*(L: PState, b: cint){.ilua.}
-proc pushlightuserdata*(L: PState, p: Pointer){.ilua.}
-proc pushthread*(L: PState){.ilua.}
-proc gettable*(L: PState, idx: cint){.ilua.}
-proc getfield*(L: Pstate, idx: cint, k: cstring){.ilua.}
-proc rawget*(L: PState, idx: cint){.ilua.}
-proc rawgeti*(L: PState, idx, n: cint){.ilua.}
-proc createtable*(L: PState, narr, nrec: cint){.ilua.}
-proc newuserdata*(L: PState, sz: cint): Pointer{.ilua.}
-proc getmetatable*(L: PState, objindex: cint): cint{.ilua.}
-proc getfenv*(L: PState, idx: cint){.ilua.}
-proc settable*(L: PState, idx: cint){.ilua.}
-proc setfield*(L: PState, idx: cint, k: cstring){.ilua.}
-proc rawset*(L: PState, idx: cint){.ilua.}
-proc rawseti*(L: PState, idx, n: cint){.ilua.}
-proc setmetatable*(L: PState, objindex: cint): cint{.ilua.}
-proc setfenv*(L: PState, idx: cint): cint{.ilua.}
-proc call*(L: PState, nargs, nresults: cint){.ilua.}
-proc pcall*(L: PState, nargs, nresults, errf: cint): cint{.ilua.}
-proc cpcall*(L: PState, func: CFunction, ud: Pointer): cint{.ilua.}
-proc load*(L: PState, reader: Reader, dt: Pointer, chunkname: cstring): cint{.ilua.}
-proc dump*(L: PState, writer: Writer, data: Pointer): cint{.ilua.}
-proc luayield*(L: PState, nresults: cint): cint{.importc: "lua_yield".}
-proc resume*(L: PState, narg: cint): cint{.ilua.}
-proc status*(L: PState): cint{.ilua.}
-proc gc*(L: PState, what, data: cint): cint{.ilua.}
-proc error*(L: PState): cint{.ilua.}
-proc next*(L: PState, idx: cint): cint{.ilua.}
-proc concat*(L: PState, n: cint){.ilua.}
-proc getallocf*(L: PState, ud: ptr Pointer): Alloc{.ilua.}
-proc setallocf*(L: PState, f: Alloc, ud: Pointer){.ilua.}
-{.pop.}
-
-#
-#** Garbage-collection functions and options
-#
-
-const 
-  GCSTOP* = 0
-  GCRESTART* = 1
-  GCCOLLECT* = 2
-  GCCOUNT* = 3
-  GCCOUNTB* = 4
-  GCSTEP* = 5
-  GCSETPAUSE* = 6
-  GCSETSTEPMUL* = 7
-
-#
-#** ===============================================================
-#** some useful macros
-#** ===============================================================
-#
-
-proc pop*(L: PState, n: cint)
-proc newtable*(L: Pstate)
-proc register*(L: PState, n: cstring, f: CFunction)
-proc pushcfunction*(L: PState, f: CFunction)
-proc strlen*(L: Pstate, i: cint): cint
-proc isfunction*(L: PState, n: cint): bool
-proc istable*(L: PState, n: cint): bool
-proc islightuserdata*(L: PState, n: cint): bool
-proc isnil*(L: PState, n: cint): bool
-proc isboolean*(L: PState, n: cint): bool
-proc isthread*(L: PState, n: cint): bool
-proc isnone*(L: PState, n: cint): bool
-proc isnoneornil*(L: PState, n: cint): bool
-proc pushliteral*(L: PState, s: cstring)
-proc setglobal*(L: PState, s: cstring)
-proc getglobal*(L: PState, s: cstring)
-proc tostring*(L: PState, i: cint): cstring
-#
-#** compatibility macros and functions
-#
-
-proc getregistry*(L: PState)
-proc getgccount*(L: PState): cint
-type 
-  Chunkreader* = Reader
-  Chunkwriter* = Writer
-
-#
-#** ======================================================================
-#** Debug API
-#** ======================================================================
-#
-
-const 
-  HOOKCALL* = 0
-  HOOKRET* = 1
-  HOOKLINE* = 2
-  HOOKCOUNT* = 3
-  HOOKTAILRET* = 4
-
-const 
-  MASKCALL* = 1 shl Ord(HOOKCALL)
-  MASKRET* = 1 shl Ord(HOOKRET)
-  MASKLINE* = 1 shl Ord(HOOKLINE)
-  MASKCOUNT* = 1 shl Ord(HOOKCOUNT)
-
-const 
-  IDSIZE* = 60
-
-type 
-  TDebug*{.final.} = object    # activation record 
-    event*: cint
-    name*: cstring            # (n) 
-    namewhat*: cstring        # (n) `global', `local', `field', `method' 
-    what*: cstring            # (S) `Lua', `C', `main', `tail'
-    source*: cstring          # (S) 
-    currentline*: cint         # (l) 
-    nups*: cint                # (u) number of upvalues 
-    linedefined*: cint         # (S) 
-    lastlinedefined*: cint     # (S) 
-    short_src*: array[0.. <IDSIZE, Char] # (S) \ 
-                               # private part 
-    i_ci*: cint                # active function 
-  
-  PDebug* = ptr TDebug
-  Hook* = proc (L: PState, ar: PDebug){.cdecl.}
-
-#
-#** ======================================================================
-#** Debug API
-#** ======================================================================
-#
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-
-proc getstack*(L: PState, level: cint, ar: PDebug): cint{.ilua.}
-proc getinfo*(L: PState, what: cstring, ar: PDebug): cint{.ilua.}
-proc getlocal*(L: PState, ar: PDebug, n: cint): cstring{.ilua.}
-proc setlocal*(L: PState, ar: PDebug, n: cint): cstring{.ilua.}
-proc getupvalue*(L: PState, funcindex: cint, n: cint): cstring{.ilua.}
-proc setupvalue*(L: PState, funcindex: cint, n: cint): cstring{.ilua.}
-proc sethook*(L: PState, func: Hook, mask: cint, count: cint): cint{.ilua.}
-proc gethook*(L: PState): Hook{.ilua.}
-proc gethookmask*(L: PState): cint{.ilua.}
-proc gethookcount*(L: PState): cint{.ilua.}
-
-{.pop.}
-
-# implementation
-
-proc upvalueindex(I: cint): cint = 
-  Result = GLOBALSINDEX - i
-
-proc pop(L: PState, n: cint) = 
-  settop(L, - n - 1)
-
-proc newtable(L: PState) = 
-  createtable(L, 0, 0)
-
-proc register(L: PState, n: cstring, f: CFunction) = 
-  pushcfunction(L, f)
-  setglobal(L, n)
-
-proc pushcfunction(L: PState, f: CFunction) = 
-  pushcclosure(L, f, 0)
-
-proc strlen(L: PState, i: cint): cint = 
-  Result = objlen(L, i)
-
-proc isfunction(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TFUNCTION
-
-proc istable(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TTABLE
-
-proc islightuserdata(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TLIGHTUSERDATA
-
-proc isnil(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TNIL
-
-proc isboolean(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TBOOLEAN
-
-proc isthread(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TTHREAD
-
-proc isnone(L: PState, n: cint): bool = 
-  Result = luatype(L, n) == TNONE
-
-proc isnoneornil(L: PState, n: cint): bool = 
-  Result = luatype(L, n) <= 0
-
-proc pushliteral(L: PState, s: cstring) = 
-  pushlstring(L, s, s.len.cint)
-
-proc setglobal(L: PState, s: cstring) = 
-  setfield(L, GLOBALSINDEX, s)
-
-proc getglobal(L: PState, s: cstring) = 
-  getfield(L, GLOBALSINDEX, s)
-
-proc tostring(L: PState, i: cint): cstring = 
-  Result = tolstring(L, i, nil)
-
-proc getregistry(L: PState) = 
-  pushvalue(L, REGISTRYINDEX)
-
-proc getgccount(L: PState): cint = 
-  Result = gc(L, GCCOUNT, 0)
diff --git a/lib/wrappers/lua/lualib.nim b/lib/wrappers/lua/lualib.nim
deleted file mode 100644
index 8c1237dde..000000000
--- a/lib/wrappers/lua/lualib.nim
+++ /dev/null
@@ -1,64 +0,0 @@
-#*****************************************************************************
-# *                                                                            *
-# *  File:        lualib.pas                                                   *
-# *  Authors:     TeCGraf           (C headers + actual Lua libraries)         *
-# *               Lavergne Thomas   (original translation to Pascal)           *
-# *               Bram Kuijvenhoven (update to Lua 5.1.1 for FreePascal)       *
-# *  Description: Standard Lua libraries                                       *
-# *                                                                            *
-# *****************************************************************************
-#
-#** $Id: lualib.h,v 1.28 2003/03/18 12:24:26 roberto Exp $
-#** Lua standard libraries
-#** See Copyright Notice in lua.h
-#
-#
-#** Translated to pascal by Lavergne Thomas
-#** Bug reports :
-#**    - thomas.lavergne@laposte.net
-#**   In french or in english
-#
-
-import 
-  lua
-
-const 
-  COLIBNAME* = "coroutine"
-  TABLIBNAME* = "table"
-  IOLIBNAME* = "io"
-  OSLIBNAME* = "os"
-  STRLINAME* = "string"
-  MATHLIBNAME* = "math"
-  DBLIBNAME* = "debug"
-  LOADLIBNAME* = "package"
-
-{.pragma: ilua, importc: "lua$1".}
-
-{.push callConv: cdecl, dynlib: lua.LIB_NAME.}
-proc open_base*(L: PState): cint{.ilua.}
-proc open_table*(L: PState): cint{.ilua.}
-proc open_io*(L: PState): cint{.ilua.}
-proc open_string*(L: PState): cint{.ilua.}
-proc open_math*(L: PState): cint{.ilua.}
-proc open_debug*(L: PState): cint{.ilua.}
-proc open_package*(L: PState): cint{.ilua.}
-proc openlibs*(L: PState){.importc: "luaL_openlibs".}
-{.pop.}
-
-proc baselibopen*(L: PState): Bool = 
-  open_base(L) != 0'i32
-
-proc tablibopen*(L: PState): Bool = 
-  open_table(L) != 0'i32
-
-proc iolibopen*(L: PState): Bool = 
-  open_io(L) != 0'i32
-
-proc strlibopen*(L: PState): Bool = 
-  open_string(L) != 0'i32
-
-proc mathlibopen*(L: PState): Bool = 
-  open_math(L) != 0'i32
-
-proc dblibopen*(L: PState): Bool = 
-  open_debug(L) != 0'i32
diff --git a/lib/wrappers/opengl/gl.nim b/lib/wrappers/opengl/gl.nim
deleted file mode 100644
index 9387b5bc9..000000000
--- a/lib/wrappers/opengl/gl.nim
+++ /dev/null
@@ -1,1536 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)                        
-# For the latest updates, visit Delphi3D: http://www.delphi3d.net              
-#******************************************************************************
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-when defined(windows): 
-  const 
-    dllname* = "opengl32.dll"
-elif defined(macosx): 
-  const 
-    dllname* = "/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib"
-else: 
-  const 
-    dllname* = "libGL.so.1"
-type 
-  PGLenum* = ptr TGLenum
-  PGLboolean* = ptr TGLboolean
-  PGLbitfield* = ptr TGLbitfield
-  TGLbyte* = int8
-  PGLbyte* = ptr TGlbyte
-  PGLshort* = ptr TGLshort
-  PGLint* = ptr TGLint
-  PGLsizei* = ptr TGLsizei
-  PGLubyte* = ptr TGLubyte
-  PGLushort* = ptr TGLushort
-  PGLuint* = ptr TGLuint
-  PGLfloat* = ptr TGLfloat
-  PGLclampf* = ptr TGLclampf
-  PGLdouble* = ptr TGLdouble
-  PGLclampd* = ptr TGLclampd
-  PGLvoid* = Pointer
-  PPGLvoid* = ptr PGLvoid
-  TGLenum* = cint
-  TGLboolean* = bool
-  TGLbitfield* = cint
-  TGLshort* = int16
-  TGLint* = cint
-  TGLsizei* = int
-  TGLubyte* = int8
-  TGLushort* = int16
-  TGLuint* = cint
-  TGLfloat* = float32
-  TGLclampf* = float32
-  TGLdouble* = float
-  TGLclampd* = float
-
-const                         # Version
-  GL_VERSION_1_1* = 1         # AccumOp
-  constGL_ACCUM* = 0x00000100
-  GL_LOAD* = 0x00000101
-  GL_RETURN* = 0x00000102
-  GL_MULT* = 0x00000103
-  GL_ADD* = 0x00000104        # AlphaFunction
-  GL_NEVER* = 0x00000200
-  GL_LESS* = 0x00000201
-  GL_EQUAL* = 0x00000202
-  GL_LEQUAL* = 0x00000203
-  GL_GREATER* = 0x00000204
-  GL_NOTEQUAL* = 0x00000205
-  GL_GEQUAL* = 0x00000206
-  GL_ALWAYS* = 0x00000207     # AttribMask
-  GL_CURRENT_BIT* = 0x00000001
-  GL_POINT_BIT* = 0x00000002
-  GL_LINE_BIT* = 0x00000004
-  GL_POLYGON_BIT* = 0x00000008
-  GL_POLYGON_STIPPLE_BIT* = 0x00000010
-  GL_PIXEL_MODE_BIT* = 0x00000020
-  GL_LIGHTING_BIT* = 0x00000040
-  GL_FOG_BIT* = 0x00000080
-  GL_DEPTH_BUFFER_BIT* = 0x00000100
-  GL_ACCUM_BUFFER_BIT* = 0x00000200
-  GL_STENCIL_BUFFER_BIT* = 0x00000400
-  GL_VIEWPORT_BIT* = 0x00000800
-  GL_TRANSFORM_BIT* = 0x00001000
-  GL_ENABLE_BIT* = 0x00002000
-  GL_COLOR_BUFFER_BIT* = 0x00004000
-  GL_HINT_BIT* = 0x00008000
-  GL_EVAL_BIT* = 0x00010000
-  GL_LIST_BIT* = 0x00020000
-  GL_TEXTURE_BIT* = 0x00040000
-  GL_SCISSOR_BIT* = 0x00080000
-  GL_ALL_ATTRIB_BITS* = 0x000FFFFF # BeginMode
-  GL_POINTS* = 0x00000000
-  GL_LINES* = 0x00000001
-  GL_LINE_LOOP* = 0x00000002
-  GL_LINE_STRIP* = 0x00000003
-  GL_TRIANGLES* = 0x00000004
-  GL_TRIANGLE_STRIP* = 0x00000005
-  GL_TRIANGLE_FAN* = 0x00000006
-  GL_QUADS* = 0x00000007
-  GL_QUAD_STRIP* = 0x00000008
-  GL_POLYGON* = 0x00000009    # BlendingFactorDest
-  GL_ZERO* = 0
-  GL_ONE* = 1
-  GL_SRC_COLOR* = 0x00000300
-  GL_ONE_MINUS_SRC_COLOR* = 0x00000301
-  GL_SRC_ALPHA* = 0x00000302
-  GL_ONE_MINUS_SRC_ALPHA* = 0x00000303
-  GL_DST_ALPHA* = 0x00000304
-  GL_ONE_MINUS_DST_ALPHA* = 0x00000305 # BlendingFactorSrc
-                                       #      GL_ZERO
-                                       #      GL_ONE
-  GL_DST_COLOR* = 0x00000306
-  GL_ONE_MINUS_DST_COLOR* = 0x00000307
-  GL_SRC_ALPHA_SATURATE* = 0x00000308 #      GL_SRC_ALPHA
-                                      #      GL_ONE_MINUS_SRC_ALPHA
-                                      #      GL_DST_ALPHA
-                                      #      GL_ONE_MINUS_DST_ALPHA
-                                      # Boolean
-  GL_TRUE* = 1
-  GL_FALSE* = 0               # ClearBufferMask
-                              #      GL_COLOR_BUFFER_BIT
-                              #      GL_ACCUM_BUFFER_BIT
-                              #      GL_STENCIL_BUFFER_BIT
-                              #      GL_DEPTH_BUFFER_BIT
-                              # ClientArrayType
-                              #      GL_VERTEX_ARRAY
-                              #      GL_NORMAL_ARRAY
-                              #      GL_COLOR_ARRAY
-                              #      GL_INDEX_ARRAY
-                              #      GL_TEXTURE_COORD_ARRAY
-                              #      GL_EDGE_FLAG_ARRAY
-                              # ClipPlaneName
-  GL_CLIP_PLANE0* = 0x00003000
-  GL_CLIP_PLANE1* = 0x00003001
-  GL_CLIP_PLANE2* = 0x00003002
-  GL_CLIP_PLANE3* = 0x00003003
-  GL_CLIP_PLANE4* = 0x00003004
-  GL_CLIP_PLANE5* = 0x00003005 # ColorMaterialFace
-                               #      GL_FRONT
-                               #      GL_BACK
-                               #      GL_FRONT_AND_BACK
-                               # ColorMaterialParameter
-                               #      GL_AMBIENT
-                               #      GL_DIFFUSE
-                               #      GL_SPECULAR
-                               #      GL_EMISSION
-                               #      GL_AMBIENT_AND_DIFFUSE
-                               # ColorPointerType
-                               #      GL_BYTE
-                               #      GL_UNSIGNED_BYTE
-                               #      GL_SHORT
-                               #      GL_UNSIGNED_SHORT
-                               #      GL_INT
-                               #      GL_UNSIGNED_INT
-                               #      GL_FLOAT
-                               #      GL_DOUBLE
-                               # CullFaceMode
-                               #      GL_FRONT
-                               #      GL_BACK
-                               #      GL_FRONT_AND_BACK
-                               # DataType
-  GL_BYTE* = 0x00001400
-  GL_UNSIGNED_BYTE* = 0x00001401
-  GL_SHORT* = 0x00001402
-  GL_UNSIGNED_SHORT* = 0x00001403
-  GL_INT* = 0x00001404
-  GL_UNSIGNED_INT* = 0x00001405
-  GL_FLOAT* = 0x00001406
-  GL_2_BYTES* = 0x00001407
-  GL_3_BYTES* = 0x00001408
-  GL_4_BYTES* = 0x00001409
-  GL_DOUBLE* = 0x0000140A     # DepthFunction
-                              #      GL_NEVER
-                              #      GL_LESS
-                              #      GL_EQUAL
-                              #      GL_LEQUAL
-                              #      GL_GREATER
-                              #      GL_NOTEQUAL
-                              #      GL_GEQUAL
-                              #      GL_ALWAYS
-                              # DrawBufferMode
-  GL_NONE* = 0
-  GL_FRONT_LEFT* = 0x00000400
-  GL_FRONT_RIGHT* = 0x00000401
-  GL_BACK_LEFT* = 0x00000402
-  GL_BACK_RIGHT* = 0x00000403
-  GL_FRONT* = 0x00000404
-  GL_BACK* = 0x00000405
-  GL_LEFT* = 0x00000406
-  GL_RIGHT* = 0x00000407
-  GL_FRONT_AND_BACK* = 0x00000408
-  GL_AUX0* = 0x00000409
-  GL_AUX1* = 0x0000040A
-  GL_AUX2* = 0x0000040B
-  GL_AUX3* = 0x0000040C       # Enable
-                              #      GL_FOG
-                              #      GL_LIGHTING
-                              #      GL_TEXTURE_1D
-                              #      GL_TEXTURE_2D
-                              #      GL_LINE_STIPPLE
-                              #      GL_POLYGON_STIPPLE
-                              #      GL_CULL_FACE
-                              #      GL_ALPHA_TEST
-                              #      GL_BLEND
-                              #      GL_INDEX_LOGIC_OP
-                              #      GL_COLOR_LOGIC_OP
-                              #      GL_DITHER
-                              #      GL_STENCIL_TEST
-                              #      GL_DEPTH_TEST
-                              #      GL_CLIP_PLANE0
-                              #      GL_CLIP_PLANE1
-                              #      GL_CLIP_PLANE2
-                              #      GL_CLIP_PLANE3
-                              #      GL_CLIP_PLANE4
-                              #      GL_CLIP_PLANE5
-                              #      GL_LIGHT0
-                              #      GL_LIGHT1
-                              #      GL_LIGHT2
-                              #      GL_LIGHT3
-                              #      GL_LIGHT4
-                              #      GL_LIGHT5
-                              #      GL_LIGHT6
-                              #      GL_LIGHT7
-                              #      GL_TEXTURE_GEN_S
-                              #      GL_TEXTURE_GEN_T
-                              #      GL_TEXTURE_GEN_R
-                              #      GL_TEXTURE_GEN_Q
-                              #      GL_MAP1_VERTEX_3
-                              #      GL_MAP1_VERTEX_4
-                              #      GL_MAP1_COLOR_4
-                              #      GL_MAP1_INDEX
-                              #      GL_MAP1_NORMAL
-                              #      GL_MAP1_TEXTURE_COORD_1
-                              #      GL_MAP1_TEXTURE_COORD_2
-                              #      GL_MAP1_TEXTURE_COORD_3
-                              #      GL_MAP1_TEXTURE_COORD_4
-                              #      GL_MAP2_VERTEX_3
-                              #      GL_MAP2_VERTEX_4
-                              #      GL_MAP2_COLOR_4
-                              #      GL_MAP2_INDEX
-                              #      GL_MAP2_NORMAL
-                              #      GL_MAP2_TEXTURE_COORD_1
-                              #      GL_MAP2_TEXTURE_COORD_2
-                              #      GL_MAP2_TEXTURE_COORD_3
-                              #      GL_MAP2_TEXTURE_COORD_4
-                              #      GL_POINT_SMOOTH
-                              #      GL_LINE_SMOOTH
-                              #      GL_POLYGON_SMOOTH
-                              #      GL_SCISSOR_TEST
-                              #      GL_COLOR_MATERIAL
-                              #      GL_NORMALIZE
-                              #      GL_AUTO_NORMAL
-                              #      GL_VERTEX_ARRAY
-                              #      GL_NORMAL_ARRAY
-                              #      GL_COLOR_ARRAY
-                              #      GL_INDEX_ARRAY
-                              #      GL_TEXTURE_COORD_ARRAY
-                              #      GL_EDGE_FLAG_ARRAY
-                              #      GL_POLYGON_OFFSET_POINT
-                              #      GL_POLYGON_OFFSET_LINE
-                              #      GL_POLYGON_OFFSET_FILL
-                              # ErrorCode
-  GL_NO_ERROR* = 0
-  GL_INVALID_ENUM* = 0x00000500
-  GL_INVALID_VALUE* = 0x00000501
-  GL_INVALID_OPERATION* = 0x00000502
-  GL_STACK_OVERFLOW* = 0x00000503
-  GL_STACK_UNDERFLOW* = 0x00000504
-  GL_OUT_OF_MEMORY* = 0x00000505 # FeedBackMode
-  GL_2D* = 0x00000600
-  GL_3D* = 0x00000601
-  GL_3D_COLOR* = 0x00000602
-  GL_3D_COLOR_TEXTURE* = 0x00000603
-  GL_4D_COLOR_TEXTURE* = 0x00000604 # FeedBackToken
-  GL_PASS_THROUGH_TOKEN* = 0x00000700
-  GL_POINT_TOKEN* = 0x00000701
-  GL_LINE_TOKEN* = 0x00000702
-  GL_POLYGON_TOKEN* = 0x00000703
-  GL_BITMAP_TOKEN* = 0x00000704
-  GL_DRAW_PIXEL_TOKEN* = 0x00000705
-  GL_COPY_PIXEL_TOKEN* = 0x00000706
-  GL_LINE_RESET_TOKEN* = 0x00000707 # FogMode
-                                    #      GL_LINEAR
-  GL_EXP* = 0x00000800
-  GL_EXP2* = 0x00000801       # FogParameter
-                              #      GL_FOG_COLOR
-                              #      GL_FOG_DENSITY
-                              #      GL_FOG_END
-                              #      GL_FOG_INDEX
-                              #      GL_FOG_MODE
-                              #      GL_FOG_START
-                              # FrontFaceDirection
-  GL_CW* = 0x00000900
-  GL_CCW* = 0x00000901        # GetMapTarget
-  GL_COEFF* = 0x00000A00
-  GL_ORDER* = 0x00000A01
-  GL_DOMAIN* = 0x00000A02     # GetPixelMap
-                              #      GL_PIXEL_MAP_I_TO_I
-                              #      GL_PIXEL_MAP_S_TO_S
-                              #      GL_PIXEL_MAP_I_TO_R
-                              #      GL_PIXEL_MAP_I_TO_G
-                              #      GL_PIXEL_MAP_I_TO_B
-                              #      GL_PIXEL_MAP_I_TO_A
-                              #      GL_PIXEL_MAP_R_TO_R
-                              #      GL_PIXEL_MAP_G_TO_G
-                              #      GL_PIXEL_MAP_B_TO_B
-                              #      GL_PIXEL_MAP_A_TO_A
-                              # GetPointerTarget
-                              #      GL_VERTEX_ARRAY_POINTER
-                              #      GL_NORMAL_ARRAY_POINTER
-                              #      GL_COLOR_ARRAY_POINTER
-                              #      GL_INDEX_ARRAY_POINTER
-                              #      GL_TEXTURE_COORD_ARRAY_POINTER
-                              #      GL_EDGE_FLAG_ARRAY_POINTER
-                              # GetTarget
-  GL_CURRENT_COLOR* = 0x00000B00
-  GL_CURRENT_INDEX* = 0x00000B01
-  GL_CURRENT_NORMAL* = 0x00000B02
-  GL_CURRENT_TEXTURE_COORDS* = 0x00000B03
-  GL_CURRENT_RASTER_COLOR* = 0x00000B04
-  GL_CURRENT_RASTER_INDEX* = 0x00000B05
-  GL_CURRENT_RASTER_TEXTURE_COORDS* = 0x00000B06
-  GL_CURRENT_RASTER_POSITION* = 0x00000B07
-  GL_CURRENT_RASTER_POSITION_VALID* = 0x00000B08
-  GL_CURRENT_RASTER_DISTANCE* = 0x00000B09
-  GL_POINT_SMOOTH* = 0x00000B10
-  constGL_POINT_SIZE* = 0x00000B11
-  GL_POINT_SIZE_RANGE* = 0x00000B12
-  GL_POINT_SIZE_GRANULARITY* = 0x00000B13
-  GL_LINE_SMOOTH* = 0x00000B20
-  constGL_LINE_WIDTH* = 0x00000B21
-  GL_LINE_WIDTH_RANGE* = 0x00000B22
-  GL_LINE_WIDTH_GRANULARITY* = 0x00000B23
-  constGL_LINE_STIPPLE* = 0x00000B24
-  GL_LINE_STIPPLE_PATTERN* = 0x00000B25
-  GL_LINE_STIPPLE_REPEAT* = 0x00000B26
-  GL_LIST_MODE* = 0x00000B30
-  GL_MAX_LIST_NESTING* = 0x00000B31
-  constGL_LIST_BASE* = 0x00000B32
-  GL_LIST_INDEX* = 0x00000B33
-  constGL_POLYGON_MODE* = 0x00000B40
-  GL_POLYGON_SMOOTH* = 0x00000B41
-  constGL_POLYGON_STIPPLE* = 0x00000B42
-  constGL_EDGE_FLAG* = 0x00000B43
-  constGL_CULL_FACE* = 0x00000B44
-  GL_CULL_FACE_MODE* = 0x00000B45
-  constGL_FRONT_FACE* = 0x00000B46
-  GL_LIGHTING* = 0x00000B50
-  GL_LIGHT_MODEL_LOCAL_VIEWER* = 0x00000B51
-  GL_LIGHT_MODEL_TWO_SIDE* = 0x00000B52
-  GL_LIGHT_MODEL_AMBIENT* = 0x00000B53
-  constGL_SHADE_MODEL* = 0x00000B54
-  GL_COLOR_MATERIAL_FACE* = 0x00000B55
-  GL_COLOR_MATERIAL_PARAMETER* = 0x00000B56
-  constGL_COLOR_MATERIAL* = 0x00000B57
-  GL_FOG* = 0x00000B60
-  GL_FOG_INDEX* = 0x00000B61
-  GL_FOG_DENSITY* = 0x00000B62
-  GL_FOG_START* = 0x00000B63
-  GL_FOG_END* = 0x00000B64
-  GL_FOG_MODE* = 0x00000B65
-  GL_FOG_COLOR* = 0x00000B66
-  constGL_DEPTH_RANGE* = 0x00000B70
-  GL_DEPTH_TEST* = 0x00000B71
-  GL_DEPTH_WRITEMASK* = 0x00000B72
-  GL_DEPTH_CLEAR_VALUE* = 0x00000B73
-  constGL_DEPTH_FUNC* = 0x00000B74
-  GL_ACCUM_CLEAR_VALUE* = 0x00000B80
-  GL_STENCIL_TEST* = 0x00000B90
-  GL_STENCIL_CLEAR_VALUE* = 0x00000B91
-  constGL_STENCIL_FUNC* = 0x00000B92
-  GL_STENCIL_VALUE_MASK* = 0x00000B93
-  GL_STENCIL_FAIL* = 0x00000B94
-  GL_STENCIL_PASS_DEPTH_FAIL* = 0x00000B95
-  GL_STENCIL_PASS_DEPTH_PASS* = 0x00000B96
-  GL_STENCIL_REF* = 0x00000B97
-  GL_STENCIL_WRITEMASK* = 0x00000B98
-  constGL_MATRIX_MODE* = 0x00000BA0
-  GL_NORMALIZE* = 0x00000BA1
-  constGL_VIEWPORT* = 0x00000BA2
-  GL_MODELVIEW_STACK_DEPTH* = 0x00000BA3
-  GL_PROJECTION_STACK_DEPTH* = 0x00000BA4
-  GL_TEXTURE_STACK_DEPTH* = 0x00000BA5
-  GL_MODELVIEW_MATRIX* = 0x00000BA6
-  GL_PROJECTION_MATRIX* = 0x00000BA7
-  GL_TEXTURE_MATRIX* = 0x00000BA8
-  GL_ATTRIB_STACK_DEPTH* = 0x00000BB0
-  GL_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000BB1
-  GL_ALPHA_TEST* = 0x00000BC0
-  GL_ALPHA_TEST_FUNC* = 0x00000BC1
-  GL_ALPHA_TEST_REF* = 0x00000BC2
-  GL_DITHER* = 0x00000BD0
-  GL_BLEND_DST* = 0x00000BE0
-  GL_BLEND_SRC* = 0x00000BE1
-  GL_BLEND* = 0x00000BE2
-  GL_LOGIC_OP_MODE* = 0x00000BF0
-  GL_INDEX_LOGIC_OP* = 0x00000BF1
-  GL_COLOR_LOGIC_OP* = 0x00000BF2
-  GL_AUX_BUFFERS* = 0x00000C00
-  constGL_DRAW_BUFFER* = 0x00000C01
-  constGL_READ_BUFFER* = 0x00000C02
-  GL_SCISSOR_BOX* = 0x00000C10
-  GL_SCISSOR_TEST* = 0x00000C11
-  GL_INDEX_CLEAR_VALUE* = 0x00000C20
-  GL_INDEX_WRITEMASK* = 0x00000C21
-  GL_COLOR_CLEAR_VALUE* = 0x00000C22
-  GL_COLOR_WRITEMASK* = 0x00000C23
-  GL_INDEX_MODE* = 0x00000C30
-  GL_RGBA_MODE* = 0x00000C31
-  GL_DOUBLEBUFFER* = 0x00000C32
-  GL_STEREO* = 0x00000C33
-  constGL_RENDER_MODE* = 0x00000C40
-  GL_PERSPECTIVE_CORRECTION_HINT* = 0x00000C50
-  GL_POINT_SMOOTH_HINT* = 0x00000C51
-  GL_LINE_SMOOTH_HINT* = 0x00000C52
-  GL_POLYGON_SMOOTH_HINT* = 0x00000C53
-  GL_FOG_HINT* = 0x00000C54
-  GL_TEXTURE_GEN_S* = 0x00000C60
-  GL_TEXTURE_GEN_T* = 0x00000C61
-  GL_TEXTURE_GEN_R* = 0x00000C62
-  GL_TEXTURE_GEN_Q* = 0x00000C63
-  GL_PIXEL_MAP_I_TO_I* = 0x00000C70
-  GL_PIXEL_MAP_S_TO_S* = 0x00000C71
-  GL_PIXEL_MAP_I_TO_R* = 0x00000C72
-  GL_PIXEL_MAP_I_TO_G* = 0x00000C73
-  GL_PIXEL_MAP_I_TO_B* = 0x00000C74
-  GL_PIXEL_MAP_I_TO_A* = 0x00000C75
-  GL_PIXEL_MAP_R_TO_R* = 0x00000C76
-  GL_PIXEL_MAP_G_TO_G* = 0x00000C77
-  GL_PIXEL_MAP_B_TO_B* = 0x00000C78
-  GL_PIXEL_MAP_A_TO_A* = 0x00000C79
-  GL_PIXEL_MAP_I_TO_I_SIZE* = 0x00000CB0
-  GL_PIXEL_MAP_S_TO_S_SIZE* = 0x00000CB1
-  GL_PIXEL_MAP_I_TO_R_SIZE* = 0x00000CB2
-  GL_PIXEL_MAP_I_TO_G_SIZE* = 0x00000CB3
-  GL_PIXEL_MAP_I_TO_B_SIZE* = 0x00000CB4
-  GL_PIXEL_MAP_I_TO_A_SIZE* = 0x00000CB5
-  GL_PIXEL_MAP_R_TO_R_SIZE* = 0x00000CB6
-  GL_PIXEL_MAP_G_TO_G_SIZE* = 0x00000CB7
-  GL_PIXEL_MAP_B_TO_B_SIZE* = 0x00000CB8
-  GL_PIXEL_MAP_A_TO_A_SIZE* = 0x00000CB9
-  GL_UNPACK_SWAP_BYTES* = 0x00000CF0
-  GL_UNPACK_LSB_FIRST* = 0x00000CF1
-  GL_UNPACK_ROW_LENGTH* = 0x00000CF2
-  GL_UNPACK_SKIP_ROWS* = 0x00000CF3
-  GL_UNPACK_SKIP_PIXELS* = 0x00000CF4
-  GL_UNPACK_ALIGNMENT* = 0x00000CF5
-  GL_PACK_SWAP_BYTES* = 0x00000D00
-  GL_PACK_LSB_FIRST* = 0x00000D01
-  GL_PACK_ROW_LENGTH* = 0x00000D02
-  GL_PACK_SKIP_ROWS* = 0x00000D03
-  GL_PACK_SKIP_PIXELS* = 0x00000D04
-  GL_PACK_ALIGNMENT* = 0x00000D05
-  GL_MAP_COLOR* = 0x00000D10
-  GL_MAP_STENCIL* = 0x00000D11
-  GL_INDEX_SHIFT* = 0x00000D12
-  GL_INDEX_OFFSET* = 0x00000D13
-  GL_RED_SCALE* = 0x00000D14
-  GL_RED_BIAS* = 0x00000D15
-  GL_ZOOM_X* = 0x00000D16
-  GL_ZOOM_Y* = 0x00000D17
-  GL_GREEN_SCALE* = 0x00000D18
-  GL_GREEN_BIAS* = 0x00000D19
-  GL_BLUE_SCALE* = 0x00000D1A
-  GL_BLUE_BIAS* = 0x00000D1B
-  GL_ALPHA_SCALE* = 0x00000D1C
-  GL_ALPHA_BIAS* = 0x00000D1D
-  GL_DEPTH_SCALE* = 0x00000D1E
-  GL_DEPTH_BIAS* = 0x00000D1F
-  GL_MAX_EVAL_ORDER* = 0x00000D30
-  GL_MAX_LIGHTS* = 0x00000D31
-  GL_MAX_CLIP_PLANES* = 0x00000D32
-  GL_MAX_TEXTURE_SIZE* = 0x00000D33
-  GL_MAX_PIXEL_MAP_TABLE* = 0x00000D34
-  GL_MAX_ATTRIB_STACK_DEPTH* = 0x00000D35
-  GL_MAX_MODELVIEW_STACK_DEPTH* = 0x00000D36
-  GL_MAX_NAME_STACK_DEPTH* = 0x00000D37
-  GL_MAX_PROJECTION_STACK_DEPTH* = 0x00000D38
-  GL_MAX_TEXTURE_STACK_DEPTH* = 0x00000D39
-  GL_MAX_VIEWPORT_DIMS* = 0x00000D3A
-  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000D3B
-  GL_SUBPIXEL_BITS* = 0x00000D50
-  GL_INDEX_BITS* = 0x00000D51
-  GL_RED_BITS* = 0x00000D52
-  GL_GREEN_BITS* = 0x00000D53
-  GL_BLUE_BITS* = 0x00000D54
-  GL_ALPHA_BITS* = 0x00000D55
-  GL_DEPTH_BITS* = 0x00000D56
-  GL_STENCIL_BITS* = 0x00000D57
-  GL_ACCUM_RED_BITS* = 0x00000D58
-  GL_ACCUM_GREEN_BITS* = 0x00000D59
-  GL_ACCUM_BLUE_BITS* = 0x00000D5A
-  GL_ACCUM_ALPHA_BITS* = 0x00000D5B
-  GL_NAME_STACK_DEPTH* = 0x00000D70
-  GL_AUTO_NORMAL* = 0x00000D80
-  GL_MAP1_COLOR_4* = 0x00000D90
-  GL_MAP1_INDEX* = 0x00000D91
-  GL_MAP1_NORMAL* = 0x00000D92
-  GL_MAP1_TEXTURE_COORD_1* = 0x00000D93
-  GL_MAP1_TEXTURE_COORD_2* = 0x00000D94
-  GL_MAP1_TEXTURE_COORD_3* = 0x00000D95
-  GL_MAP1_TEXTURE_COORD_4* = 0x00000D96
-  GL_MAP1_VERTEX_3* = 0x00000D97
-  GL_MAP1_VERTEX_4* = 0x00000D98
-  GL_MAP2_COLOR_4* = 0x00000DB0
-  GL_MAP2_INDEX* = 0x00000DB1
-  GL_MAP2_NORMAL* = 0x00000DB2
-  GL_MAP2_TEXTURE_COORD_1* = 0x00000DB3
-  GL_MAP2_TEXTURE_COORD_2* = 0x00000DB4
-  GL_MAP2_TEXTURE_COORD_3* = 0x00000DB5
-  GL_MAP2_TEXTURE_COORD_4* = 0x00000DB6
-  GL_MAP2_VERTEX_3* = 0x00000DB7
-  GL_MAP2_VERTEX_4* = 0x00000DB8
-  GL_MAP1_GRID_DOMAIN* = 0x00000DD0
-  GL_MAP1_GRID_SEGMENTS* = 0x00000DD1
-  GL_MAP2_GRID_DOMAIN* = 0x00000DD2
-  GL_MAP2_GRID_SEGMENTS* = 0x00000DD3
-  GL_TEXTURE_1D* = 0x00000DE0
-  GL_TEXTURE_2D* = 0x00000DE1
-  GL_FEEDBACK_BUFFER_POINTER* = 0x00000DF0
-  GL_FEEDBACK_BUFFER_SIZE* = 0x00000DF1
-  GL_FEEDBACK_BUFFER_TYPE* = 0x00000DF2
-  GL_SELECTION_BUFFER_POINTER* = 0x00000DF3
-  GL_SELECTION_BUFFER_SIZE* = 0x00000DF4 #      GL_TEXTURE_BINDING_1D
-                                         #      GL_TEXTURE_BINDING_2D
-                                         #      GL_VERTEX_ARRAY
-                                         #      GL_NORMAL_ARRAY
-                                         #      GL_COLOR_ARRAY
-                                         #      GL_INDEX_ARRAY
-                                         #      GL_TEXTURE_COORD_ARRAY
-                                         #      GL_EDGE_FLAG_ARRAY
-                                         #      GL_VERTEX_ARRAY_SIZE
-                                         #      GL_VERTEX_ARRAY_TYPE
-                                         #      GL_VERTEX_ARRAY_STRIDE
-                                         #      GL_NORMAL_ARRAY_TYPE
-                                         #      GL_NORMAL_ARRAY_STRIDE
-                                         #      GL_COLOR_ARRAY_SIZE
-                                         #      GL_COLOR_ARRAY_TYPE
-                                         #      GL_COLOR_ARRAY_STRIDE
-                                         #      GL_INDEX_ARRAY_TYPE
-                                         #      GL_INDEX_ARRAY_STRIDE
-                                         #      GL_TEXTURE_COORD_ARRAY_SIZE
-                                         #      GL_TEXTURE_COORD_ARRAY_TYPE
-                                         #      GL_TEXTURE_COORD_ARRAY_STRIDE
-                                         #      GL_EDGE_FLAG_ARRAY_STRIDE
-                                         #      GL_POLYGON_OFFSET_FACTOR
-                                         #      GL_POLYGON_OFFSET_UNITS
-                                         # GetTextureParameter
-                                         #      GL_TEXTURE_MAG_FILTER
-                                         #      GL_TEXTURE_MIN_FILTER
-                                         #      GL_TEXTURE_WRAP_S
-                                         #      GL_TEXTURE_WRAP_T
-  GL_TEXTURE_WIDTH* = 0x00001000
-  GL_TEXTURE_HEIGHT* = 0x00001001
-  GL_TEXTURE_INTERNAL_FORMAT* = 0x00001003
-  GL_TEXTURE_BORDER_COLOR* = 0x00001004
-  GL_TEXTURE_BORDER* = 0x00001005 #      GL_TEXTURE_RED_SIZE
-                                  #      GL_TEXTURE_GREEN_SIZE
-                                  #      GL_TEXTURE_BLUE_SIZE
-                                  #      GL_TEXTURE_ALPHA_SIZE
-                                  #      GL_TEXTURE_LUMINANCE_SIZE
-                                  #      GL_TEXTURE_INTENSITY_SIZE
-                                  #      GL_TEXTURE_PRIORITY
-                                  #      GL_TEXTURE_RESIDENT
-                                  # HintMode
-  GL_DONT_CARE* = 0x00001100
-  GL_FASTEST* = 0x00001101
-  GL_NICEST* = 0x00001102     # HintTarget
-                              #      GL_PERSPECTIVE_CORRECTION_HINT
-                              #      GL_POINT_SMOOTH_HINT
-                              #      GL_LINE_SMOOTH_HINT
-                              #      GL_POLYGON_SMOOTH_HINT
-                              #      GL_FOG_HINT
-                              # IndexPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # LightModelParameter
-                              #      GL_LIGHT_MODEL_AMBIENT
-                              #      GL_LIGHT_MODEL_LOCAL_VIEWER
-                              #      GL_LIGHT_MODEL_TWO_SIDE
-                              # LightName
-  GL_LIGHT0* = 0x00004000
-  GL_LIGHT1* = 0x00004001
-  GL_LIGHT2* = 0x00004002
-  GL_LIGHT3* = 0x00004003
-  GL_LIGHT4* = 0x00004004
-  GL_LIGHT5* = 0x00004005
-  GL_LIGHT6* = 0x00004006
-  GL_LIGHT7* = 0x00004007     # LightParameter
-  GL_AMBIENT* = 0x00001200
-  GL_DIFFUSE* = 0x00001201
-  GL_SPECULAR* = 0x00001202
-  GL_POSITION* = 0x00001203
-  GL_SPOT_DIRECTION* = 0x00001204
-  GL_SPOT_EXPONENT* = 0x00001205
-  GL_SPOT_CUTOFF* = 0x00001206
-  GL_CONSTANT_ATTENUATION* = 0x00001207
-  GL_LINEAR_ATTENUATION* = 0x00001208
-  GL_QUADRATIC_ATTENUATION* = 0x00001209 # InterleavedArrays
-                                         #      GL_V2F
-                                         #      GL_V3F
-                                         #      GL_C4UB_V2F
-                                         #      GL_C4UB_V3F
-                                         #      GL_C3F_V3F
-                                         #      GL_N3F_V3F
-                                         #      GL_C4F_N3F_V3F
-                                         #      GL_T2F_V3F
-                                         #      GL_T4F_V4F
-                                         #      GL_T2F_C4UB_V3F
-                                         #      GL_T2F_C3F_V3F
-                                         #      GL_T2F_N3F_V3F
-                                         #      GL_T2F_C4F_N3F_V3F
-                                         #      GL_T4F_C4F_N3F_V4F
-                                         # ListMode
-  GL_COMPILE* = 0x00001300
-  GL_COMPILE_AND_EXECUTE* = 0x00001301 # ListNameType
-                                       #      GL_BYTE
-                                       #      GL_UNSIGNED_BYTE
-                                       #      GL_SHORT
-                                       #      GL_UNSIGNED_SHORT
-                                       #      GL_INT
-                                       #      GL_UNSIGNED_INT
-                                       #      GL_FLOAT
-                                       #      GL_2_BYTES
-                                       #      GL_3_BYTES
-                                       #      GL_4_BYTES
-                                       # LogicOp
-  constGL_CLEAR* = 0x00001500
-  GL_AND* = 0x00001501
-  GL_AND_REVERSE* = 0x00001502
-  GL_COPY* = 0x00001503
-  GL_AND_INVERTED* = 0x00001504
-  GL_NOOP* = 0x00001505
-  GL_XOR* = 0x00001506
-  GL_OR* = 0x00001507
-  GL_NOR* = 0x00001508
-  GL_EQUIV* = 0x00001509
-  GL_INVERT* = 0x0000150A
-  GL_OR_REVERSE* = 0x0000150B
-  GL_COPY_INVERTED* = 0x0000150C
-  GL_OR_INVERTED* = 0x0000150D
-  GL_NAND* = 0x0000150E
-  GL_SET* = 0x0000150F        # MapTarget
-                              #      GL_MAP1_COLOR_4
-                              #      GL_MAP1_INDEX
-                              #      GL_MAP1_NORMAL
-                              #      GL_MAP1_TEXTURE_COORD_1
-                              #      GL_MAP1_TEXTURE_COORD_2
-                              #      GL_MAP1_TEXTURE_COORD_3
-                              #      GL_MAP1_TEXTURE_COORD_4
-                              #      GL_MAP1_VERTEX_3
-                              #      GL_MAP1_VERTEX_4
-                              #      GL_MAP2_COLOR_4
-                              #      GL_MAP2_INDEX
-                              #      GL_MAP2_NORMAL
-                              #      GL_MAP2_TEXTURE_COORD_1
-                              #      GL_MAP2_TEXTURE_COORD_2
-                              #      GL_MAP2_TEXTURE_COORD_3
-                              #      GL_MAP2_TEXTURE_COORD_4
-                              #      GL_MAP2_VERTEX_3
-                              #      GL_MAP2_VERTEX_4
-                              # MaterialFace
-                              #      GL_FRONT
-                              #      GL_BACK
-                              #      GL_FRONT_AND_BACK
-                              # MaterialParameter
-  GL_EMISSION* = 0x00001600
-  GL_SHININESS* = 0x00001601
-  GL_AMBIENT_AND_DIFFUSE* = 0x00001602
-  GL_COLOR_INDEXES* = 0x00001603 #      GL_AMBIENT
-                                 #      GL_DIFFUSE
-                                 #      GL_SPECULAR
-                                 # MatrixMode
-  GL_MODELVIEW* = 0x00001700
-  GL_PROJECTION* = 0x00001701
-  GL_TEXTURE* = 0x00001702    # MeshMode1
-                              #      GL_POINT
-                              #      GL_LINE
-                              # MeshMode2
-                              #      GL_POINT
-                              #      GL_LINE
-                              #      GL_FILL
-                              # NormalPointerType
-                              #      GL_BYTE
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # PixelCopyType
-  GL_COLOR* = 0x00001800
-  GL_DEPTH* = 0x00001801
-  GL_STENCIL* = 0x00001802    # PixelFormat
-  GL_COLOR_INDEX* = 0x00001900
-  GL_STENCIL_INDEX* = 0x00001901
-  GL_DEPTH_COMPONENT* = 0x00001902
-  GL_RED* = 0x00001903
-  GL_GREEN* = 0x00001904
-  GL_BLUE* = 0x00001905
-  GL_ALPHA* = 0x00001906
-  GL_RGB* = 0x00001907
-  GL_RGBA* = 0x00001908
-  GL_LUMINANCE* = 0x00001909
-  GL_LUMINANCE_ALPHA* = 0x0000190A # PixelMap
-                                   #      GL_PIXEL_MAP_I_TO_I
-                                   #      GL_PIXEL_MAP_S_TO_S
-                                   #      GL_PIXEL_MAP_I_TO_R
-                                   #      GL_PIXEL_MAP_I_TO_G
-                                   #      GL_PIXEL_MAP_I_TO_B
-                                   #      GL_PIXEL_MAP_I_TO_A
-                                   #      GL_PIXEL_MAP_R_TO_R
-                                   #      GL_PIXEL_MAP_G_TO_G
-                                   #      GL_PIXEL_MAP_B_TO_B
-                                   #      GL_PIXEL_MAP_A_TO_A
-                                   # PixelStore
-                                   #      GL_UNPACK_SWAP_BYTES
-                                   #      GL_UNPACK_LSB_FIRST
-                                   #      GL_UNPACK_ROW_LENGTH
-                                   #      GL_UNPACK_SKIP_ROWS
-                                   #      GL_UNPACK_SKIP_PIXELS
-                                   #      GL_UNPACK_ALIGNMENT
-                                   #      GL_PACK_SWAP_BYTES
-                                   #      GL_PACK_LSB_FIRST
-                                   #      GL_PACK_ROW_LENGTH
-                                   #      GL_PACK_SKIP_ROWS
-                                   #      GL_PACK_SKIP_PIXELS
-                                   #      GL_PACK_ALIGNMENT
-                                   # PixelTransfer
-                                   #      GL_MAP_COLOR
-                                   #      GL_MAP_STENCIL
-                                   #      GL_INDEX_SHIFT
-                                   #      GL_INDEX_OFFSET
-                                   #      GL_RED_SCALE
-                                   #      GL_RED_BIAS
-                                   #      GL_GREEN_SCALE
-                                   #      GL_GREEN_BIAS
-                                   #      GL_BLUE_SCALE
-                                   #      GL_BLUE_BIAS
-                                   #      GL_ALPHA_SCALE
-                                   #      GL_ALPHA_BIAS
-                                   #      GL_DEPTH_SCALE
-                                   #      GL_DEPTH_BIAS
-                                   # PixelType
-  constGL_BITMAP* = 0x00001A00
-  GL_POINT* = 0x00001B00
-  GL_LINE* = 0x00001B01
-  GL_FILL* = 0x00001B02       # ReadBufferMode
-                              #      GL_FRONT_LEFT
-                              #      GL_FRONT_RIGHT
-                              #      GL_BACK_LEFT
-                              #      GL_BACK_RIGHT
-                              #      GL_FRONT
-                              #      GL_BACK
-                              #      GL_LEFT
-                              #      GL_RIGHT
-                              #      GL_AUX0
-                              #      GL_AUX1
-                              #      GL_AUX2
-                              #      GL_AUX3
-                              # RenderingMode
-  GL_RENDER* = 0x00001C00
-  GL_FEEDBACK* = 0x00001C01
-  GL_SELECT* = 0x00001C02     # ShadingModel
-  GL_FLAT* = 0x00001D00
-  GL_SMOOTH* = 0x00001D01     # StencilFunction
-                              #      GL_NEVER
-                              #      GL_LESS
-                              #      GL_EQUAL
-                              #      GL_LEQUAL
-                              #      GL_GREATER
-                              #      GL_NOTEQUAL
-                              #      GL_GEQUAL
-                              #      GL_ALWAYS
-                              # StencilOp
-                              #      GL_ZERO
-  GL_KEEP* = 0x00001E00
-  GL_REPLACE* = 0x00001E01
-  GL_INCR* = 0x00001E02
-  GL_DECR* = 0x00001E03       #      GL_INVERT
-                              # StringName
-  GL_VENDOR* = 0x00001F00
-  GL_RENDERER* = 0x00001F01
-  GL_VERSION* = 0x00001F02
-  GL_EXTENSIONS* = 0x00001F03 # TextureCoordName
-  GL_S* = 0x00002000
-  GL_T* = 0x00002001
-  GL_R* = 0x00002002
-  GL_Q* = 0x00002003          # TexCoordPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # TextureEnvMode
-  GL_MODULATE* = 0x00002100
-  GL_DECAL* = 0x00002101      #      GL_BLEND
-                              #      GL_REPLACE
-                              # TextureEnvParameter
-  GL_TEXTURE_ENV_MODE* = 0x00002200
-  GL_TEXTURE_ENV_COLOR* = 0x00002201 # TextureEnvTarget
-  GL_TEXTURE_ENV* = 0x00002300 # TextureGenMode
-  GL_EYE_LINEAR* = 0x00002400
-  GL_OBJECT_LINEAR* = 0x00002401
-  GL_SPHERE_MAP* = 0x00002402 # TextureGenParameter
-  GL_TEXTURE_GEN_MODE* = 0x00002500
-  GL_OBJECT_PLANE* = 0x00002501
-  GL_EYE_PLANE* = 0x00002502  # TextureMagFilter
-  GL_NEAREST* = 0x00002600
-  GL_LINEAR* = 0x00002601     # TextureMinFilter
-                              #      GL_NEAREST
-                              #      GL_LINEAR
-  GL_NEAREST_MIPMAP_NEAREST* = 0x00002700
-  GL_LINEAR_MIPMAP_NEAREST* = 0x00002701
-  GL_NEAREST_MIPMAP_LINEAR* = 0x00002702
-  GL_LINEAR_MIPMAP_LINEAR* = 0x00002703 # TextureParameterName
-  GL_TEXTURE_MAG_FILTER* = 0x00002800
-  GL_TEXTURE_MIN_FILTER* = 0x00002801
-  GL_TEXTURE_WRAP_S* = 0x00002802
-  GL_TEXTURE_WRAP_T* = 0x00002803 #      GL_TEXTURE_BORDER_COLOR
-                                  #      GL_TEXTURE_PRIORITY
-                                  # TextureTarget
-                                  #      GL_TEXTURE_1D
-                                  #      GL_TEXTURE_2D
-                                  #      GL_PROXY_TEXTURE_1D
-                                  #      GL_PROXY_TEXTURE_2D
-                                  # TextureWrapMode
-  GL_CLAMP* = 0x00002900
-  GL_REPEAT* = 0x00002901     # VertexPointerType
-                              #      GL_SHORT
-                              #      GL_INT
-                              #      GL_FLOAT
-                              #      GL_DOUBLE
-                              # ClientAttribMask
-  GL_CLIENT_PIXEL_STORE_BIT* = 0x00000001
-  GL_CLIENT_VERTEX_ARRAY_BIT* = 0x00000002
-  GL_CLIENT_ALL_ATTRIB_BITS* = 0xFFFFFFFF # polygon_offset
-  GL_POLYGON_OFFSET_FACTOR* = 0x00008038
-  GL_POLYGON_OFFSET_UNITS* = 0x00002A00
-  GL_POLYGON_OFFSET_POINT* = 0x00002A01
-  GL_POLYGON_OFFSET_LINE* = 0x00002A02
-  GL_POLYGON_OFFSET_FILL* = 0x00008037 # texture
-  GL_ALPHA4* = 0x0000803B
-  GL_ALPHA8* = 0x0000803C
-  GL_ALPHA12* = 0x0000803D
-  GL_ALPHA16* = 0x0000803E
-  GL_LUMINANCE4* = 0x0000803F
-  GL_LUMINANCE8* = 0x00008040
-  GL_LUMINANCE12* = 0x00008041
-  GL_LUMINANCE16* = 0x00008042
-  GL_LUMINANCE4_ALPHA4* = 0x00008043
-  GL_LUMINANCE6_ALPHA2* = 0x00008044
-  GL_LUMINANCE8_ALPHA8* = 0x00008045
-  GL_LUMINANCE12_ALPHA4* = 0x00008046
-  GL_LUMINANCE12_ALPHA12* = 0x00008047
-  GL_LUMINANCE16_ALPHA16* = 0x00008048
-  GL_INTENSITY* = 0x00008049
-  GL_INTENSITY4* = 0x0000804A
-  GL_INTENSITY8* = 0x0000804B
-  GL_INTENSITY12* = 0x0000804C
-  GL_INTENSITY16* = 0x0000804D
-  GL_R3_G3_B2* = 0x00002A10
-  GL_RGB4* = 0x0000804F
-  GL_RGB5* = 0x00008050
-  GL_RGB8* = 0x00008051
-  GL_RGB10* = 0x00008052
-  GL_RGB12* = 0x00008053
-  GL_RGB16* = 0x00008054
-  GL_RGBA2* = 0x00008055
-  GL_RGBA4* = 0x00008056
-  GL_RGB5_A1* = 0x00008057
-  GL_RGBA8* = 0x00008058
-  GL_RGB10_A2* = 0x00008059
-  GL_RGBA12* = 0x0000805A
-  GL_RGBA16* = 0x0000805B
-  GL_TEXTURE_RED_SIZE* = 0x0000805C
-  GL_TEXTURE_GREEN_SIZE* = 0x0000805D
-  GL_TEXTURE_BLUE_SIZE* = 0x0000805E
-  GL_TEXTURE_ALPHA_SIZE* = 0x0000805F
-  GL_TEXTURE_LUMINANCE_SIZE* = 0x00008060
-  GL_TEXTURE_INTENSITY_SIZE* = 0x00008061
-  GL_PROXY_TEXTURE_1D* = 0x00008063
-  GL_PROXY_TEXTURE_2D* = 0x00008064 # texture_object
-  GL_TEXTURE_PRIORITY* = 0x00008066
-  GL_TEXTURE_RESIDENT* = 0x00008067
-  GL_TEXTURE_BINDING_1D* = 0x00008068
-  GL_TEXTURE_BINDING_2D* = 0x00008069 # vertex_array
-  GL_VERTEX_ARRAY* = 0x00008074
-  GL_NORMAL_ARRAY* = 0x00008075
-  GL_COLOR_ARRAY* = 0x00008076
-  GL_INDEX_ARRAY* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY* = 0x00008078
-  GL_EDGE_FLAG_ARRAY* = 0x00008079
-  GL_VERTEX_ARRAY_SIZE* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE* = 0x0000807C
-  GL_NORMAL_ARRAY_TYPE* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE* = 0x0000807F
-  GL_COLOR_ARRAY_SIZE* = 0x00008081
-  GL_COLOR_ARRAY_TYPE* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE* = 0x00008083
-  GL_INDEX_ARRAY_TYPE* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE* = 0x00008086
-  GL_TEXTURE_COORD_ARRAY_SIZE* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE* = 0x0000808A
-  GL_EDGE_FLAG_ARRAY_STRIDE* = 0x0000808C
-  GL_VERTEX_ARRAY_POINTER* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER* = 0x00008090
-  GL_INDEX_ARRAY_POINTER* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER* = 0x00008093
-  GL_V2F* = 0x00002A20
-  GL_V3F* = 0x00002A21
-  GL_C4UB_V2F* = 0x00002A22
-  GL_C4UB_V3F* = 0x00002A23
-  GL_C3F_V3F* = 0x00002A24
-  GL_N3F_V3F* = 0x00002A25
-  GL_C4F_N3F_V3F* = 0x00002A26
-  GL_T2F_V3F* = 0x00002A27
-  GL_T4F_V4F* = 0x00002A28
-  GL_T2F_C4UB_V3F* = 0x00002A29
-  GL_T2F_C3F_V3F* = 0x00002A2A
-  GL_T2F_N3F_V3F* = 0x00002A2B
-  GL_T2F_C4F_N3F_V3F* = 0x00002A2C
-  GL_T4F_C4F_N3F_V4F* = 0x00002A2D # Extensions
-  GL_EXT_vertex_array* = 1
-  GL_WIN_swap_hint* = 1
-  GL_EXT_bgra* = 1
-  GL_EXT_paletted_texture* = 1 # EXT_vertex_array
-  GL_VERTEX_ARRAY_EXT* = 0x00008074
-  GL_NORMAL_ARRAY_EXT* = 0x00008075
-  GL_COLOR_ARRAY_EXT* = 0x00008076
-  GL_INDEX_ARRAY_EXT* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078
-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079
-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE_EXT* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C
-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D
-  GL_NORMAL_ARRAY_TYPE_EXT* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F
-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080
-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081
-  GL_COLOR_ARRAY_TYPE_EXT* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083
-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084
-  GL_INDEX_ARRAY_TYPE_EXT* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086
-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D
-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090
-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093
-  GL_DOUBLE_EXT* = GL_DOUBLE  # EXT_bgra
-  GL_BGR_EXT* = 0x000080E0
-  GL_BGRA_EXT* = 0x000080E1   # EXT_paletted_texture
-                              # These must match the GL_COLOR_TABLE_*_SGI enumerants
-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF
-  GL_COLOR_INDEX1_EXT* = 0x000080E2
-  GL_COLOR_INDEX2_EXT* = 0x000080E3
-  GL_COLOR_INDEX4_EXT* = 0x000080E4
-  GL_COLOR_INDEX8_EXT* = 0x000080E5
-  GL_COLOR_INDEX12_EXT* = 0x000080E6
-  GL_COLOR_INDEX16_EXT* = 0x000080E7 # For compatibility with OpenGL v1.0
-  constGL_LOGIC_OP* = GL_INDEX_LOGIC_OP
-  GL_TEXTURE_COMPONENTS* = GL_TEXTURE_INTERNAL_FORMAT
-
-proc glAccum*(op: TGLenum, value: TGLfloat){.dynlib: dllname, importc: "glAccum".}
-proc glAlphaFunc*(func: TGLenum, theref: TGLclampf){.dynlib: dllname, 
-    importc: "glAlphaFunc".}
-proc glAreTexturesResident*(n: TGLsizei, textures: PGLuint, 
-                            residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreTexturesResident".}
-proc glArrayElement*(i: TGLint){.dynlib: dllname, importc: "glArrayElement".}
-proc glBegin*(mode: TGLenum){.dynlib: dllname, importc: "glBegin".}
-proc glBindTexture*(target: TGLenum, texture: TGLuint){.dynlib: dllname, 
-    importc: "glBindTexture".}
-proc glBitmap*(width, height: TGLsizei, xorig, yorig: TGLfloat, 
-               xmove, ymove: TGLfloat, bitmap: PGLubyte){.dynlib: dllname, 
-    importc: "glBitmap".}
-proc glBlendFunc*(sfactor, dfactor: TGLenum){.dynlib: dllname, 
-    importc: "glBlendFunc".}
-proc glCallList*(list: TGLuint){.dynlib: dllname, importc: "glCallList".}
-proc glCallLists*(n: TGLsizei, atype: TGLenum, lists: Pointer){.dynlib: dllname, 
-    importc: "glCallLists".}
-proc glClear*(mask: TGLbitfield){.dynlib: dllname, importc: "glClear".}
-proc glClearAccum*(red, green, blue, alpha: TGLfloat){.dynlib: dllname, 
-    importc: "glClearAccum".}
-proc glClearColor*(red, green, blue, alpha: TGLclampf){.dynlib: dllname, 
-    importc: "glClearColor".}
-proc glClearDepth*(depth: TGLclampd){.dynlib: dllname, importc: "glClearDepth".}
-proc glClearIndex*(c: TGLfloat){.dynlib: dllname, importc: "glClearIndex".}
-proc glClearStencil*(s: TGLint){.dynlib: dllname, importc: "glClearStencil".}
-proc glClipPlane*(plane: TGLenum, equation: PGLdouble){.dynlib: dllname, 
-    importc: "glClipPlane".}
-proc glColor3b*(red, green, blue: TGlbyte){.dynlib: dllname, 
-    importc: "glColor3b".}
-proc glColor3bv*(v: PGLbyte){.dynlib: dllname, importc: "glColor3bv".}
-proc glColor3d*(red, green, blue: TGLdouble){.dynlib: dllname, 
-    importc: "glColor3d".}
-proc glColor3dv*(v: PGLdouble){.dynlib: dllname, importc: "glColor3dv".}
-proc glColor3f*(red, green, blue: TGLfloat){.dynlib: dllname, 
-    importc: "glColor3f".}
-proc glColor3fv*(v: PGLfloat){.dynlib: dllname, importc: "glColor3fv".}
-proc glColor3i*(red, green, blue: TGLint){.dynlib: dllname, importc: "glColor3i".}
-proc glColor3iv*(v: PGLint){.dynlib: dllname, importc: "glColor3iv".}
-proc glColor3s*(red, green, blue: TGLshort){.dynlib: dllname, 
-    importc: "glColor3s".}
-proc glColor3sv*(v: PGLshort){.dynlib: dllname, importc: "glColor3sv".}
-proc glColor3ub*(red, green, blue: TGLubyte){.dynlib: dllname, 
-    importc: "glColor3ub".}
-proc glColor3ubv*(v: PGLubyte){.dynlib: dllname, importc: "glColor3ubv".}
-proc glColor3ui*(red, green, blue: TGLuint){.dynlib: dllname, 
-    importc: "glColor3ui".}
-proc glColor3uiv*(v: PGLuint){.dynlib: dllname, importc: "glColor3uiv".}
-proc glColor3us*(red, green, blue: TGLushort){.dynlib: dllname, 
-    importc: "glColor3us".}
-proc glColor3usv*(v: PGLushort){.dynlib: dllname, importc: "glColor3usv".}
-proc glColor4b*(red, green, blue, alpha: TGlbyte){.dynlib: dllname, 
-    importc: "glColor4b".}
-proc glColor4bv*(v: PGLbyte){.dynlib: dllname, importc: "glColor4bv".}
-proc glColor4d*(red, green, blue, alpha: TGLdouble){.dynlib: dllname, 
-    importc: "glColor4d".}
-proc glColor4dv*(v: PGLdouble){.dynlib: dllname, importc: "glColor4dv".}
-proc glColor4f*(red, green, blue, alpha: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4f".}
-proc glColor4fv*(v: PGLfloat){.dynlib: dllname, importc: "glColor4fv".}
-proc glColor4i*(red, green, blue, alpha: TGLint){.dynlib: dllname, 
-    importc: "glColor4i".}
-proc glColor4iv*(v: PGLint){.dynlib: dllname, importc: "glColor4iv".}
-proc glColor4s*(red, green, blue, alpha: TGLshort){.dynlib: dllname, 
-    importc: "glColor4s".}
-proc glColor4sv*(v: PGLshort){.dynlib: dllname, importc: "glColor4sv".}
-proc glColor4ub*(red, green, blue, alpha: TGLubyte){.dynlib: dllname, 
-    importc: "glColor4ub".}
-proc glColor4ubv*(v: PGLubyte){.dynlib: dllname, importc: "glColor4ubv".}
-proc glColor4ui*(red, green, blue, alpha: TGLuint){.dynlib: dllname, 
-    importc: "glColor4ui".}
-proc glColor4uiv*(v: PGLuint){.dynlib: dllname, importc: "glColor4uiv".}
-proc glColor4us*(red, green, blue, alpha: TGLushort){.dynlib: dllname, 
-    importc: "glColor4us".}
-proc glColor4usv*(v: PGLushort){.dynlib: dllname, importc: "glColor4usv".}
-proc glColorMask*(red, green, blue, alpha: TGLboolean){.dynlib: dllname, 
-    importc: "glColorMask".}
-proc glColorMaterial*(face, mode: TGLenum){.dynlib: dllname, 
-    importc: "glColorMaterial".}
-proc glColorPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                     pointer: Pointer){.dynlib: dllname, 
-                                        importc: "glColorPointer".}
-proc glCopyPixels*(x, y: TGLint, width, height: TGLsizei, atype: TGLenum){.
-    dynlib: dllname, importc: "glCopyPixels".}
-proc glCopyTexImage1D*(target: TGLenum, level: TGLint, internalFormat: TGLenum, 
-                       x, y: TGLint, width: TGLsizei, border: TGLint){.
-    dynlib: dllname, importc: "glCopyTexImage1D".}
-proc glCopyTexImage2D*(target: TGLenum, level: TGLint, internalFormat: TGLenum, 
-                       x, y: TGLint, width, height: TGLsizei, border: TGLint){.
-    dynlib: dllname, importc: "glCopyTexImage2D".}
-proc glCopyTexSubImage1D*(target: TGLenum, level, xoffset, x, y: TGLint, 
-                          width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyTexSubImage1D".}
-proc glCopyTexSubImage2D*(target: TGLenum, 
-                          level, xoffset, yoffset, x, y: TGLint, 
-                          width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyTexSubImage2D".}
-proc glCullFace*(mode: TGLenum){.dynlib: dllname, importc: "glCullFace".}
-proc glDeleteLists*(list: TGLuint, range: TGLsizei){.dynlib: dllname, 
-    importc: "glDeleteLists".}
-proc glDeleteTextures*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteTextures".}
-proc glDepthFunc*(func: TGLenum){.dynlib: dllname, importc: "glDepthFunc".}
-proc glDepthMask*(flag: TGLboolean){.dynlib: dllname, importc: "glDepthMask".}
-proc glDepthRange*(zNear, zFar: TGLclampd){.dynlib: dllname, 
-    importc: "glDepthRange".}
-proc glDisable*(cap: TGLenum){.dynlib: dllname, importc: "glDisable".}
-proc glDisableClientState*(aarray: TGLenum){.dynlib: dllname, 
-    importc: "glDisableClientState".}
-proc glDrawArrays*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawArrays".}
-proc glDrawBuffer*(mode: TGLenum){.dynlib: dllname, importc: "glDrawBuffer".}
-proc glDrawElements*(mode: TGLenum, count: TGLsizei, atype: TGLenum, 
-                     indices: Pointer){.dynlib: dllname, 
-                                        importc: "glDrawElements".}
-proc glDrawPixels*(width, height: TGLsizei, format, atype: TGLenum, 
-                   pixels: Pointer){.dynlib: dllname, importc: "glDrawPixels".}
-proc glEdgeFlag*(flag: TGLboolean){.dynlib: dllname, importc: "glEdgeFlag".}
-proc glEdgeFlagPointer*(stride: TGLsizei, pointer: Pointer){.dynlib: dllname, 
-    importc: "glEdgeFlagPointer".}
-proc glEdgeFlagv*(flag: PGLboolean){.dynlib: dllname, importc: "glEdgeFlagv".}
-proc glEnable*(cap: TGLenum){.dynlib: dllname, importc: "glEnable".}
-proc glEnableClientState*(aarray: TGLenum){.dynlib: dllname, 
-    importc: "glEnableClientState".}
-proc glEnd*(){.dynlib: dllname, importc: "glEnd".}
-proc glEndList*(){.dynlib: dllname, importc: "glEndList".}
-proc glEvalCoord1d*(u: TGLdouble){.dynlib: dllname, importc: "glEvalCoord1d".}
-proc glEvalCoord1dv*(u: PGLdouble){.dynlib: dllname, importc: "glEvalCoord1dv".}
-proc glEvalCoord1f*(u: TGLfloat){.dynlib: dllname, importc: "glEvalCoord1f".}
-proc glEvalCoord1fv*(u: PGLfloat){.dynlib: dllname, importc: "glEvalCoord1fv".}
-proc glEvalCoord2d*(u, v: TGLdouble){.dynlib: dllname, importc: "glEvalCoord2d".}
-proc glEvalCoord2dv*(u: PGLdouble){.dynlib: dllname, importc: "glEvalCoord2dv".}
-proc glEvalCoord2f*(u, v: TGLfloat){.dynlib: dllname, importc: "glEvalCoord2f".}
-proc glEvalCoord2fv*(u: PGLfloat){.dynlib: dllname, importc: "glEvalCoord2fv".}
-proc glEvalMesh1*(mode: TGLenum, i1, i2: TGLint){.dynlib: dllname, 
-    importc: "glEvalMesh1".}
-proc glEvalMesh2*(mode: TGLenum, i1, i2, j1, j2: TGLint){.dynlib: dllname, 
-    importc: "glEvalMesh2".}
-proc glEvalPoint1*(i: TGLint){.dynlib: dllname, importc: "glEvalPoint1".}
-proc glEvalPoint2*(i, j: TGLint){.dynlib: dllname, importc: "glEvalPoint2".}
-proc glFeedbackBuffer*(size: TGLsizei, atype: TGLenum, buffer: PGLfloat){.
-    dynlib: dllname, importc: "glFeedbackBuffer".}
-proc glFinish*(){.dynlib: dllname, importc: "glFinish".}
-proc glFlush*(){.dynlib: dllname, importc: "glFlush".}
-proc glFogf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glFogf".}
-proc glFogfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glFogfv".}
-proc glFogi*(pname: TGLenum, param: TGLint){.dynlib: dllname, importc: "glFogi".}
-proc glFogiv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glFogiv".}
-proc glFrontFace*(mode: TGLenum){.dynlib: dllname, importc: "glFrontFace".}
-proc glFrustum*(left, right, bottom, top, zNear, zFar: TGLdouble){.
-    dynlib: dllname, importc: "glFrustum".}
-proc glGenLists*(range: TGLsizei): TGLuint{.dynlib: dllname, 
-    importc: "glGenLists".}
-proc glGenTextures*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glGenTextures".}
-proc glGetBooleanv*(pname: TGLenum, params: PGLboolean){.dynlib: dllname, 
-    importc: "glGetBooleanv".}
-proc glGetClipPlane*(plane: TGLenum, equation: PGLdouble){.dynlib: dllname, 
-    importc: "glGetClipPlane".}
-proc glGetDoublev*(pname: TGLenum, params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetDoublev".}
-proc glGetError*(): TGLenum{.dynlib: dllname, importc: "glGetError".}
-proc glGetFloatv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetFloatv".}
-proc glGetIntegerv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetIntegerv".}
-proc glGetLightfv*(light, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetLightfv".}
-proc glGetLightiv*(light, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetLightiv".}
-proc glGetMapdv*(target, query: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glGetMapdv".}
-proc glGetMapfv*(target, query: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMapfv".}
-proc glGetMapiv*(target, query: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glGetMapiv".}
-proc glGetMaterialfv*(face, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMaterialfv".}
-proc glGetMaterialiv*(face, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetMaterialiv".}
-proc glGetPixelMapfv*(map: TGLenum, values: PGLfloat){.dynlib: dllname, 
-    importc: "glGetPixelMapfv".}
-proc glGetPixelMapuiv*(map: TGLenum, values: PGLuint){.dynlib: dllname, 
-    importc: "glGetPixelMapuiv".}
-proc glGetPixelMapusv*(map: TGLenum, values: PGLushort){.dynlib: dllname, 
-    importc: "glGetPixelMapusv".}
-proc glGetPointerv*(pname: TGLenum, params: Pointer){.dynlib: dllname, 
-    importc: "glGetPointerv".}
-proc glGetPolygonStipple*(mask: PGLubyte){.dynlib: dllname, 
-    importc: "glGetPolygonStipple".}
-proc glGetString*(name: TGLenum): cstring{.dynlib: dllname, 
-    importc: "glGetString".}
-proc glGetTexEnvfv*(target, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetTexEnvfv".}
-proc glGetTexEnviv*(target, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexEnviv".}
-proc glGetTexGendv*(coord, pname: TGLenum, params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetTexGendv".}
-proc glGetTexGenfv*(coord, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetTexGenfv".}
-proc glGetTexGeniv*(coord, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexGeniv".}
-proc glGetTexImage*(target: TGLenum, level: TGLint, format: TGLenum, 
-                    atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glGetTexImage".}
-proc glGetTexLevelParameterfv*(target: TGLenum, level: TGLint, pname: TGLenum, 
-                               params: Pointer){.dynlib: dllname, 
-    importc: "glGetTexLevelParameterfv".}
-proc glGetTexLevelParameteriv*(target: TGLenum, level: TGLint, pname: TGLenum, 
-                               params: PGLint){.dynlib: dllname, 
-    importc: "glGetTexLevelParameteriv".}
-proc glGetTexParameterfv*(target, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetTexParameterfv".}
-proc glGetTexParameteriv*(target, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetTexParameteriv".}
-proc glHint*(target, mode: TGLenum){.dynlib: dllname, importc: "glHint".}
-proc glIndexMask*(mask: TGLuint){.dynlib: dllname, importc: "glIndexMask".}
-proc glIndexPointer*(atype: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glIndexPointer".}
-proc glIndexd*(c: TGLdouble){.dynlib: dllname, importc: "glIndexd".}
-proc glIndexdv*(c: PGLdouble){.dynlib: dllname, importc: "glIndexdv".}
-proc glIndexf*(c: TGLfloat){.dynlib: dllname, importc: "glIndexf".}
-proc glIndexfv*(c: PGLfloat){.dynlib: dllname, importc: "glIndexfv".}
-proc glIndexi*(c: TGLint){.dynlib: dllname, importc: "glIndexi".}
-proc glIndexiv*(c: PGLint){.dynlib: dllname, importc: "glIndexiv".}
-proc glIndexs*(c: TGLshort){.dynlib: dllname, importc: "glIndexs".}
-proc glIndexsv*(c: PGLshort){.dynlib: dllname, importc: "glIndexsv".}
-proc glIndexub*(c: TGLubyte){.dynlib: dllname, importc: "glIndexub".}
-proc glIndexubv*(c: PGLubyte){.dynlib: dllname, importc: "glIndexubv".}
-proc glInitNames*(){.dynlib: dllname, importc: "glInitNames".}
-proc glInterleavedArrays*(format: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glInterleavedArrays".}
-proc glIsEnabled*(cap: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glIsEnabled".}
-proc glIsList*(list: TGLuint): TGLboolean{.dynlib: dllname, importc: "glIsList".}
-proc glIsTexture*(texture: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsTexture".}
-proc glLightModelf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glLightModelf".}
-proc glLightModelfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glLightModelfv".}
-proc glLightModeli*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glLightModeli".}
-proc glLightModeliv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glLightModeliv".}
-proc glLightf*(light, pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glLightf".}
-proc glLightfv*(light, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glLightfv".}
-proc glLighti*(light, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glLighti".}
-proc glLightiv*(light, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glLightiv".}
-proc glLineStipple*(factor: TGLint, pattern: TGLushort){.dynlib: dllname, 
-    importc: "glLineStipple".}
-proc glLineWidth*(width: TGLfloat){.dynlib: dllname, importc: "glLineWidth".}
-proc glListBase*(base: TGLuint){.dynlib: dllname, importc: "glListBase".}
-proc glLoadIdentity*(){.dynlib: dllname, importc: "glLoadIdentity".}
-proc glLoadMatrixd*(m: PGLdouble){.dynlib: dllname, importc: "glLoadMatrixd".}
-proc glLoadMatrixf*(m: PGLfloat){.dynlib: dllname, importc: "glLoadMatrixf".}
-proc glLoadName*(name: TGLuint){.dynlib: dllname, importc: "glLoadName".}
-proc glLogicOp*(opcode: TGLenum){.dynlib: dllname, importc: "glLogicOp".}
-proc glMap1d*(target: TGLenum, u1, u2: TGLdouble, stride, order: TGLint, 
-              points: PGLdouble){.dynlib: dllname, importc: "glMap1d".}
-proc glMap1f*(target: TGLenum, u1, u2: TGLfloat, stride, order: TGLint, 
-              points: PGLfloat){.dynlib: dllname, importc: "glMap1f".}
-proc glMap2d*(target: TGLenum, u1, u2: TGLdouble, ustride, uorder: TGLint, 
-              v1, v2: TGLdouble, vstride, vorder: TGLint, points: PGLdouble){.
-    dynlib: dllname, importc: "glMap2d".}
-proc glMap2f*(target: TGLenum, u1, u2: TGLfloat, ustride, uorder: TGLint, 
-              v1, v2: TGLfloat, vstride, vorder: TGLint, points: PGLfloat){.
-    dynlib: dllname, importc: "glMap2f".}
-proc glMapGrid1d*(un: TGLint, u1, u2: TGLdouble){.dynlib: dllname, 
-    importc: "glMapGrid1d".}
-proc glMapGrid1f*(un: TGLint, u1, u2: TGLfloat){.dynlib: dllname, 
-    importc: "glMapGrid1f".}
-proc glMapGrid2d*(un: TGLint, u1, u2: TGLdouble, vn: TGLint, v1, v2: TGLdouble){.
-    dynlib: dllname, importc: "glMapGrid2d".}
-proc glMapGrid2f*(un: TGLint, u1, u2: TGLfloat, vn: TGLint, v1, v2: TGLfloat){.
-    dynlib: dllname, importc: "glMapGrid2f".}
-proc glMaterialf*(face, pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glMaterialf".}
-proc glMaterialfv*(face, pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glMaterialfv".}
-proc glMateriali*(face, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glMateriali".}
-proc glMaterialiv*(face, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glMaterialiv".}
-proc glMatrixMode*(mode: TGLenum){.dynlib: dllname, importc: "glMatrixMode".}
-proc glMultMatrixd*(m: PGLdouble){.dynlib: dllname, importc: "glMultMatrixd".}
-proc glMultMatrixf*(m: PGLfloat){.dynlib: dllname, importc: "glMultMatrixf".}
-proc glNewList*(list: TGLuint, mode: TGLenum){.dynlib: dllname, 
-    importc: "glNewList".}
-proc glNormal3b*(nx, ny, nz: TGlbyte){.dynlib: dllname, importc: "glNormal3b".}
-proc glNormal3bv*(v: PGLbyte){.dynlib: dllname, importc: "glNormal3bv".}
-proc glNormal3d*(nx, ny, nz: TGLdouble){.dynlib: dllname, importc: "glNormal3d".}
-proc glNormal3dv*(v: PGLdouble){.dynlib: dllname, importc: "glNormal3dv".}
-proc glNormal3f*(nx, ny, nz: TGLfloat){.dynlib: dllname, importc: "glNormal3f".}
-proc glNormal3fv*(v: PGLfloat){.dynlib: dllname, importc: "glNormal3fv".}
-proc glNormal3i*(nx, ny, nz: TGLint){.dynlib: dllname, importc: "glNormal3i".}
-proc glNormal3iv*(v: PGLint){.dynlib: dllname, importc: "glNormal3iv".}
-proc glNormal3s*(nx, ny, nz: TGLshort){.dynlib: dllname, importc: "glNormal3s".}
-proc glNormal3sv*(v: PGLshort){.dynlib: dllname, importc: "glNormal3sv".}
-proc glNormalPointer*(atype: TGLenum, stride: TGLsizei, pointer: Pointer){.
-    dynlib: dllname, importc: "glNormalPointer".}
-proc glOrtho*(left, right, bottom, top, zNear, zFar: TGLdouble){.
-    dynlib: dllname, importc: "glOrtho".}
-proc glPassThrough*(token: TGLfloat){.dynlib: dllname, importc: "glPassThrough".}
-proc glPixelMapfv*(map: TGLenum, mapsize: TGLsizei, values: PGLfloat){.
-    dynlib: dllname, importc: "glPixelMapfv".}
-proc glPixelMapuiv*(map: TGLenum, mapsize: TGLsizei, values: PGLuint){.
-    dynlib: dllname, importc: "glPixelMapuiv".}
-proc glPixelMapusv*(map: TGLenum, mapsize: TGLsizei, values: PGLushort){.
-    dynlib: dllname, importc: "glPixelMapusv".}
-proc glPixelStoref*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelStoref".}
-proc glPixelStorei*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPixelStorei".}
-proc glPixelTransferf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelTransferf".}
-proc glPixelTransferi*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPixelTransferi".}
-proc glPixelZoom*(xfactor, yfactor: TGLfloat){.dynlib: dllname, 
-    importc: "glPixelZoom".}
-proc glPointSize*(size: TGLfloat){.dynlib: dllname, importc: "glPointSize".}
-proc glPolygonMode*(face, mode: TGLenum){.dynlib: dllname, 
-    importc: "glPolygonMode".}
-proc glPolygonOffset*(factor, units: TGLfloat){.dynlib: dllname, 
-    importc: "glPolygonOffset".}
-proc glPolygonStipple*(mask: PGLubyte){.dynlib: dllname, 
-                                        importc: "glPolygonStipple".}
-proc glPopAttrib*(){.dynlib: dllname, importc: "glPopAttrib".}
-proc glPopClientAttrib*(){.dynlib: dllname, importc: "glPopClientAttrib".}
-proc glPopMatrix*(){.dynlib: dllname, importc: "glPopMatrix".}
-proc glPopName*(){.dynlib: dllname, importc: "glPopName".}
-proc glPrioritizeTextures*(n: TGLsizei, textures: PGLuint, priorities: PGLclampf){.
-    dynlib: dllname, importc: "glPrioritizeTextures".}
-proc glPushAttrib*(mask: TGLbitfield){.dynlib: dllname, importc: "glPushAttrib".}
-proc glPushClientAttrib*(mask: TGLbitfield){.dynlib: dllname, 
-    importc: "glPushClientAttrib".}
-proc glPushMatrix*(){.dynlib: dllname, importc: "glPushMatrix".}
-proc glPushName*(name: TGLuint){.dynlib: dllname, importc: "glPushName".}
-proc glRasterPos2d*(x, y: TGLdouble){.dynlib: dllname, importc: "glRasterPos2d".}
-proc glRasterPos2dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos2dv".}
-proc glRasterPos2f*(x, y: TGLfloat){.dynlib: dllname, importc: "glRasterPos2f".}
-proc glRasterPos2fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos2fv".}
-proc glRasterPos2i*(x, y: TGLint){.dynlib: dllname, importc: "glRasterPos2i".}
-proc glRasterPos2iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos2iv".}
-proc glRasterPos2s*(x, y: TGLshort){.dynlib: dllname, importc: "glRasterPos2s".}
-proc glRasterPos2sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos2sv".}
-proc glRasterPos3d*(x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "glRasterPos3d".}
-proc glRasterPos3dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos3dv".}
-proc glRasterPos3f*(x, y, z: TGLfloat){.dynlib: dllname, 
-                                        importc: "glRasterPos3f".}
-proc glRasterPos3fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos3fv".}
-proc glRasterPos3i*(x, y, z: TGLint){.dynlib: dllname, importc: "glRasterPos3i".}
-proc glRasterPos3iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos3iv".}
-proc glRasterPos3s*(x, y, z: TGLshort){.dynlib: dllname, 
-                                        importc: "glRasterPos3s".}
-proc glRasterPos3sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos3sv".}
-proc glRasterPos4d*(x, y, z, w: TGLdouble){.dynlib: dllname, 
-    importc: "glRasterPos4d".}
-proc glRasterPos4dv*(v: PGLdouble){.dynlib: dllname, importc: "glRasterPos4dv".}
-proc glRasterPos4f*(x, y, z, w: TGLfloat){.dynlib: dllname, 
-    importc: "glRasterPos4f".}
-proc glRasterPos4fv*(v: PGLfloat){.dynlib: dllname, importc: "glRasterPos4fv".}
-proc glRasterPos4i*(x, y, z, w: TGLint){.dynlib: dllname, 
-    importc: "glRasterPos4i".}
-proc glRasterPos4iv*(v: PGLint){.dynlib: dllname, importc: "glRasterPos4iv".}
-proc glRasterPos4s*(x, y, z, w: TGLshort){.dynlib: dllname, 
-    importc: "glRasterPos4s".}
-proc glRasterPos4sv*(v: PGLshort){.dynlib: dllname, importc: "glRasterPos4sv".}
-proc glReadBuffer*(mode: TGLenum){.dynlib: dllname, importc: "glReadBuffer".}
-proc glReadPixels*(x, y: TGLint, width, height: TGLsizei, 
-                   format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glReadPixels".}
-proc glRectd*(x1, y1, x2, y2: TGLdouble){.dynlib: dllname, importc: "glRectd".}
-proc glRectdv*(v1: PGLdouble, v2: PGLdouble){.dynlib: dllname, 
-    importc: "glRectdv".}
-proc glRectf*(x1, y1, x2, y2: TGLfloat){.dynlib: dllname, importc: "glRectf".}
-proc glRectfv*(v1: PGLfloat, v2: PGLfloat){.dynlib: dllname, importc: "glRectfv".}
-proc glRecti*(x1, y1, x2, y2: TGLint){.dynlib: dllname, importc: "glRecti".}
-proc glRectiv*(v1: PGLint, v2: PGLint){.dynlib: dllname, importc: "glRectiv".}
-proc glRects*(x1, y1, x2, y2: TGLshort){.dynlib: dllname, importc: "glRects".}
-proc glRectsv*(v1: PGLshort, v2: PGLshort){.dynlib: dllname, importc: "glRectsv".}
-proc glRenderMode*(mode: TGLint): TGLint{.dynlib: dllname, 
-    importc: "glRenderMode".}
-proc glRotated*(angle, x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "glRotated".}
-proc glRotatef*(angle, x, y, z: TGLfloat){.dynlib: dllname, importc: "glRotatef".}
-proc glScaled*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glScaled".}
-proc glScalef*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glScalef".}
-proc glScissor*(x, y: TGLint, width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glScissor".}
-proc glSelectBuffer*(size: TGLsizei, buffer: PGLuint){.dynlib: dllname, 
-    importc: "glSelectBuffer".}
-proc glShadeModel*(mode: TGLenum){.dynlib: dllname, importc: "glShadeModel".}
-proc glStencilFunc*(func: TGLenum, theref: TGLint, mask: TGLuint){.
-    dynlib: dllname, importc: "glStencilFunc".}
-proc glStencilMask*(mask: TGLuint){.dynlib: dllname, importc: "glStencilMask".}
-proc glStencilOp*(fail, zfail, zpass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOp".}
-proc glTexCoord1d*(s: TGLdouble){.dynlib: dllname, importc: "glTexCoord1d".}
-proc glTexCoord1dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord1dv".}
-proc glTexCoord1f*(s: TGLfloat){.dynlib: dllname, importc: "glTexCoord1f".}
-proc glTexCoord1fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord1fv".}
-proc glTexCoord1i*(s: TGLint){.dynlib: dllname, importc: "glTexCoord1i".}
-proc glTexCoord1iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord1iv".}
-proc glTexCoord1s*(s: TGLshort){.dynlib: dllname, importc: "glTexCoord1s".}
-proc glTexCoord1sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord1sv".}
-proc glTexCoord2d*(s, t: TGLdouble){.dynlib: dllname, importc: "glTexCoord2d".}
-proc glTexCoord2dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord2dv".}
-proc glTexCoord2f*(s, t: TGLfloat){.dynlib: dllname, importc: "glTexCoord2f".}
-proc glTexCoord2fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord2fv".}
-proc glTexCoord2i*(s, t: TGLint){.dynlib: dllname, importc: "glTexCoord2i".}
-proc glTexCoord2iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord2iv".}
-proc glTexCoord2s*(s, t: TGLshort){.dynlib: dllname, importc: "glTexCoord2s".}
-proc glTexCoord2sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord2sv".}
-proc glTexCoord3d*(s, t, r: TGLdouble){.dynlib: dllname, importc: "glTexCoord3d".}
-proc glTexCoord3dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord3dv".}
-proc glTexCoord3f*(s, t, r: TGLfloat){.dynlib: dllname, importc: "glTexCoord3f".}
-proc glTexCoord3fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord3fv".}
-proc glTexCoord3i*(s, t, r: TGLint){.dynlib: dllname, importc: "glTexCoord3i".}
-proc glTexCoord3iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord3iv".}
-proc glTexCoord3s*(s, t, r: TGLshort){.dynlib: dllname, importc: "glTexCoord3s".}
-proc glTexCoord3sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord3sv".}
-proc glTexCoord4d*(s, t, r, q: TGLdouble){.dynlib: dllname, 
-    importc: "glTexCoord4d".}
-proc glTexCoord4dv*(v: PGLdouble){.dynlib: dllname, importc: "glTexCoord4dv".}
-proc glTexCoord4f*(s, t, r, q: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4f".}
-proc glTexCoord4fv*(v: PGLfloat){.dynlib: dllname, importc: "glTexCoord4fv".}
-proc glTexCoord4i*(s, t, r, q: TGLint){.dynlib: dllname, importc: "glTexCoord4i".}
-proc glTexCoord4iv*(v: PGLint){.dynlib: dllname, importc: "glTexCoord4iv".}
-proc glTexCoord4s*(s, t, r, q: TGLshort){.dynlib: dllname, 
-    importc: "glTexCoord4s".}
-proc glTexCoord4sv*(v: PGLshort){.dynlib: dllname, importc: "glTexCoord4sv".}
-proc glTexCoordPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                        pointer: Pointer){.dynlib: dllname, 
-    importc: "glTexCoordPointer".}
-proc glTexEnvf*(target: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexEnvf".}
-proc glTexEnvfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexEnvfv".}
-proc glTexEnvi*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glTexEnvi".}
-proc glTexEnviv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexEnviv".}
-proc glTexGend*(coord: TGLenum, pname: TGLenum, param: TGLdouble){.
-    dynlib: dllname, importc: "glTexGend".}
-proc glTexGendv*(coord: TGLenum, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glTexGendv".}
-proc glTexGenf*(coord: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexGenf".}
-proc glTexGenfv*(coord: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexGenfv".}
-proc glTexGeni*(coord: TGLenum, pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glTexGeni".}
-proc glTexGeniv*(coord: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexGeniv".}
-proc glTexImage1D*(target: TGLenum, level, internalformat: TGLint, 
-                   width: TGLsizei, border: TGLint, format, atype: TGLenum, 
-                   pixels: Pointer){.dynlib: dllname, importc: "glTexImage1D".}
-proc glTexImage2D*(target: TGLenum, level, internalformat: TGLint, 
-                   width, height: TGLsizei, border: TGLint, 
-                   format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glTexImage2D".}
-proc glTexParameterf*(target: TGLenum, pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glTexParameterf".}
-proc glTexParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glTexParameterfv".}
-proc glTexParameteri*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glTexParameteri".}
-proc glTexParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glTexParameteriv".}
-proc glTexSubImage1D*(target: TGLenum, level, xoffset: TGLint, width: TGLsizei, 
-                      format, atype: TGLenum, pixels: Pointer){.dynlib: dllname, 
-    importc: "glTexSubImage1D".}
-proc glTexSubImage2D*(target: TGLenum, level, xoffset, yoffset: TGLint, 
-                      width, height: TGLsizei, format, atype: TGLenum, 
-                      pixels: Pointer){.dynlib: dllname, 
-                                        importc: "glTexSubImage2D".}
-proc glTranslated*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glTranslated".}
-proc glTranslatef*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glTranslatef".}
-proc glVertex2d*(x, y: TGLdouble){.dynlib: dllname, importc: "glVertex2d".}
-proc glVertex2dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex2dv".}
-proc glVertex2f*(x, y: TGLfloat){.dynlib: dllname, importc: "glVertex2f".}
-proc glVertex2fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex2fv".}
-proc glVertex2i*(x, y: TGLint){.dynlib: dllname, importc: "glVertex2i".}
-proc glVertex2iv*(v: PGLint){.dynlib: dllname, importc: "glVertex2iv".}
-proc glVertex2s*(x, y: TGLshort){.dynlib: dllname, importc: "glVertex2s".}
-proc glVertex2sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex2sv".}
-proc glVertex3d*(x, y, z: TGLdouble){.dynlib: dllname, importc: "glVertex3d".}
-proc glVertex3dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex3dv".}
-proc glVertex3f*(x, y, z: TGLfloat){.dynlib: dllname, importc: "glVertex3f".}
-proc glVertex3fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex3fv".}
-proc glVertex3i*(x, y, z: TGLint){.dynlib: dllname, importc: "glVertex3i".}
-proc glVertex3iv*(v: PGLint){.dynlib: dllname, importc: "glVertex3iv".}
-proc glVertex3s*(x, y, z: TGLshort){.dynlib: dllname, importc: "glVertex3s".}
-proc glVertex3sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex3sv".}
-proc glVertex4d*(x, y, z, w: TGLdouble){.dynlib: dllname, importc: "glVertex4d".}
-proc glVertex4dv*(v: PGLdouble){.dynlib: dllname, importc: "glVertex4dv".}
-proc glVertex4f*(x, y, z, w: TGLfloat){.dynlib: dllname, importc: "glVertex4f".}
-proc glVertex4fv*(v: PGLfloat){.dynlib: dllname, importc: "glVertex4fv".}
-proc glVertex4i*(x, y, z, w: TGLint){.dynlib: dllname, importc: "glVertex4i".}
-proc glVertex4iv*(v: PGLint){.dynlib: dllname, importc: "glVertex4iv".}
-proc glVertex4s*(x, y, z, w: TGLshort){.dynlib: dllname, importc: "glVertex4s".}
-proc glVertex4sv*(v: PGLshort){.dynlib: dllname, importc: "glVertex4sv".}
-proc glVertexPointer*(size: TGLint, atype: TGLenum, stride: TGLsizei, 
-                      pointer: Pointer){.dynlib: dllname, 
-    importc: "glVertexPointer".}
-proc glViewport*(x, y: TGLint, width, height: TGLsizei){.dynlib: dllname, 
-    importc: "glViewport".}
-type 
-  PFN_GLARRAY_ELEMENT_EXTPROC* = proc (i: TGLint)
-  PFN_GLDRAW_ARRAYS_EXTPROC* = proc (mode: TGLenum, first: TGLint, 
-                                     count: TGLsizei)
-  PFN_GLVERTEX_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-                                        stride, count: TGLsizei, 
-                                        pointer: Pointer)
-  PFN_GLNORMAL_POINTER_EXTPROC* = proc (atype: TGLenum, stride, count: TGLsizei, 
-                                        pointer: Pointer)
-  PFN_GLCOLOR_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-                                       stride, count: TGLsizei, pointer: Pointer)
-  PFN_GLINDEX_POINTER_EXTPROC* = proc (atype: TGLenum, stride, count: TGLsizei, 
-                                       pointer: Pointer)
-  PFN_GLTEXCOORD_POINTER_EXTPROC* = proc (size: TGLint, atype: TGLenum, 
-      stride, count: TGLsizei, pointer: Pointer)
-  PFN_GLEDGEFLAG_POINTER_EXTPROC* = proc (stride, count: TGLsizei, 
-      pointer: PGLboolean)
-  PFN_GLGET_POINTER_VEXT_PROC* = proc (pname: TGLenum, params: Pointer)
-  PFN_GLARRAY_ELEMENT_ARRAY_EXTPROC* = proc (mode: TGLenum, count: TGLsizei, 
-      pi: Pointer)            # WIN_swap_hint
-  PFN_GLADDSWAPHINT_RECT_WINPROC* = proc (x, y: TGLint, width, height: TGLsizei)
-  PFN_GLCOLOR_TABLE_EXTPROC* = proc (target, internalFormat: TGLenum, 
-                                     width: TGLsizei, format, atype: TGLenum, 
-                                     data: Pointer)
-  PFN_GLCOLOR_SUBTABLE_EXTPROC* = proc (target: TGLenum, start, count: TGLsizei, 
-                                        format, atype: TGLenum, data: Pointer)
-  PFN_GLGETCOLOR_TABLE_EXTPROC* = proc (target, format, atype: TGLenum, 
-                                        data: Pointer)
-  PFN_GLGETCOLOR_TABLE_PARAMETER_IVEXTPROC* = proc (target, pname: TGLenum, 
-      params: PGLint)
-  PFN_GLGETCOLOR_TABLE_PARAMETER_FVEXTPROC* = proc (target, pname: TGLenum, 
-      params: PGLfloat)
-
-{.pop.}
-# implementation
diff --git a/lib/wrappers/opengl/glext.nim b/lib/wrappers/opengl/glext.nim
deleted file mode 100644
index 32871df0e..000000000
--- a/lib/wrappers/opengl/glext.nim
+++ /dev/null
@@ -1,4673 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-#
-
-#*************************************************
-# *        OpenGL extension loading library        *
-# * Generated by MetaGLext, written by Tom Nuydens *
-# *  (tom@delphi3d.net -- http://www.delphi3d.net  *
-# *************************************************
-#*** Generated on 10/11/2002
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-import 
-  gl
-
-type 
-  GLcharARB* = Char
-  TGLcharARB* = GLcharARB
-  PGLcharARB* = ptr GLcharARB
-  GLhandleARB* = int
-  TGLhandleARB* = GLhandleARB
-  PGLhandleARB* = ptr GLhandleARB
-  GLintptr* = int
-  TGLintptr* = GLintptr
-  PGLintptr* = ptr GLintptr
-  GLsizeiptr* = int
-  TGLsizeiptr* = GLsizeiptr
-  PGLsizeiptr* = ptr GLsizeiptr
-  GLchar* = Char
-  TGLchar* = GLchar
-  PGLchar* = cstring          #***** GL_version_1_2 *****//
-
-const 
-  GL_UNSIGNED_BYTE_3_3_2* = 0x00008032
-  GL_UNSIGNED_SHORT_4_4_4_4* = 0x00008033
-  GL_UNSIGNED_SHORT_5_5_5_1* = 0x00008034
-  GL_UNSIGNED_INT_8_8_8_8* = 0x00008035
-  GL_UNSIGNED_INT_10_10_10_2* = 0x00008036
-  GL_RESCALE_NORMAL* = 0x0000803A
-  GL_UNSIGNED_BYTE_2_3_3_REV* = 0x00008362
-  GL_UNSIGNED_SHORT_5_6_5* = 0x00008363
-  GL_UNSIGNED_SHORT_5_6_5_REV* = 0x00008364
-  GL_UNSIGNED_SHORT_4_4_4_4_REV* = 0x00008365
-  GL_UNSIGNED_SHORT_1_5_5_5_REV* = 0x00008366
-  GL_UNSIGNED_INT_8_8_8_8_REV* = 0x00008367
-  GL_UNSIGNED_INT_2_10_10_10_REV* = 0x00008368
-  GL_BGR* = 0x000080E0
-  GL_BGRA* = 0x000080E1
-  GL_MAX_ELEMENTS_VERTICES* = 0x000080E8
-  GL_MAX_ELEMENTS_INDICES* = 0x000080E9
-  GL_CLAMP_TO_EDGE* = 0x0000812F
-  GL_TEXTURE_MIN_LOD* = 0x0000813A
-  GL_TEXTURE_MAX_LOD* = 0x0000813B
-  GL_TEXTURE_BASE_LEVEL* = 0x0000813C
-  GL_TEXTURE_MAX_LEVEL* = 0x0000813D
-  GL_LIGHT_MODEL_COLOR_CONTROL* = 0x000081F8
-  GL_SINGLE_COLOR* = 0x000081F9
-  GL_SEPARATE_SPECULAR_COLOR* = 0x000081FA
-  GL_SMOOTH_POINT_SIZE_RANGE* = 0x00000B12
-  GL_SMOOTH_POINT_SIZE_GRANULARITY* = 0x00000B13
-  GL_SMOOTH_LINE_WIDTH_RANGE* = 0x00000B22
-  GL_SMOOTH_LINE_WIDTH_GRANULARITY* = 0x00000B23
-  GL_ALIASED_POINT_SIZE_RANGE* = 0x0000846D
-  GL_ALIASED_LINE_WIDTH_RANGE* = 0x0000846E
-  GL_PACK_SKIP_IMAGES* = 0x0000806B
-  GL_PACK_IMAGE_HEIGHT* = 0x0000806C
-  GL_UNPACK_SKIP_IMAGES* = 0x0000806D
-  GL_UNPACK_IMAGE_HEIGHT* = 0x0000806E
-  GL_TEXTURE_3D* = 0x0000806F
-  GL_PROXY_TEXTURE_3D* = 0x00008070
-  GL_TEXTURE_DEPTH* = 0x00008071
-  GL_TEXTURE_WRAP_R* = 0x00008072
-  GL_MAX_3D_TEXTURE_SIZE* = 0x00008073
-
-proc glBlendColor*(red: TGLclampf, green: TGLclampf, blue: TGLclampf, 
-                   alpha: TGLclampf){.dynlib: dllname, importc: "glBlendColor".}
-proc glBlendEquation*(mode: TGLenum){.dynlib: dllname, 
-                                      importc: "glBlendEquation".}
-proc glDrawRangeElements*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                          count: TGLsizei, thetype: TGLenum, indices: PGLvoid){.
-    dynlib: dllname, importc: "glDrawRangeElements".}
-proc glColorTable*(target: TGLenum, internalformat: TGLenum, width: TGLsizei, 
-                   format: TGLenum, thetype: TGLenum, table: PGLvoid){.
-    dynlib: dllname, importc: "glColorTable".}
-proc glColorTableParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glColorTableParameterfv".}
-proc glColorTableParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glColorTableParameteriv".}
-proc glCopyColorTable*(target: TGLenum, internalformat: TGLenum, x: TGLint, 
-                       y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorTable".}
-proc glGetColorTable*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                      table: PGLvoid){.dynlib: dllname, 
-                                       importc: "glGetColorTable".}
-proc glGetColorTableParameterfv*(target: TGLenum, pname: TGLenum, 
-                                 params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfv".}
-proc glGetColorTableParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetColorTableParameteriv".}
-proc glColorSubTable*(target: TGLenum, start: TGLsizei, count: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorSubTable".}
-proc glCopyColorSubTable*(target: TGLenum, start: TGLsizei, x: TGLint, 
-                          y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorSubTable".}
-proc glConvolutionFilter1D*(target: TGLenum, internalformat: TGLenum, 
-                            width: TGLsizei, format: TGLenum, thetype: TGLenum, 
-                            image: PGLvoid){.dynlib: dllname, 
-    importc: "glConvolutionFilter1D".}
-proc glConvolutionFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                            width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                            thetype: TGLenum, image: PGLvoid){.dynlib: dllname, 
-    importc: "glConvolutionFilter2D".}
-proc glConvolutionParameterf*(target: TGLenum, pname: TGLenum, params: TGLfloat){.
-    dynlib: dllname, importc: "glConvolutionParameterf".}
-proc glConvolutionParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glConvolutionParameterfv".}
-proc glConvolutionParameteri*(target: TGLenum, pname: TGLenum, params: TGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteri".}
-proc glConvolutionParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteriv".}
-proc glCopyConvolutionFilter1D*(target: TGLenum, internalformat: TGLenum, 
-                                x: TGLint, y: TGLint, width: TGLsizei){.
-    dynlib: dllname, importc: "glCopyConvolutionFilter1D".}
-proc glCopyConvolutionFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                                x: TGLint, y: TGLint, width: TGLsizei, 
-                                height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyConvolutionFilter2D".}
-proc glGetConvolutionFilter*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                             image: PGLvoid){.dynlib: dllname, 
-    importc: "glGetConvolutionFilter".}
-proc glGetConvolutionParameterfv*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterfv".}
-proc glGetConvolutionParameteriv*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLint){.dynlib: dllname, 
-    importc: "glGetConvolutionParameteriv".}
-proc glGetSeparableFilter*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                           row: PGLvoid, column: PGLvoid, span: PGLvoid){.
-    dynlib: dllname, importc: "glGetSeparableFilter".}
-proc glSeparableFilter2D*(target: TGLenum, internalformat: TGLenum, 
-                          width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                          thetype: TGLenum, row: PGLvoid, column: PGLvoid){.
-    dynlib: dllname, importc: "glSeparableFilter2D".}
-proc glGetHistogram*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                     thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetHistogram".}
-proc glGetHistogramParameterfv*(target: TGLenum, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetHistogramParameterfv".}
-proc glGetHistogramParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetHistogramParameteriv".}
-proc glGetMinmax*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                  thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetMinmax".}
-proc glGetMinmaxParameterfv*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMinmaxParameterfv".}
-proc glGetMinmaxParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMinmaxParameteriv".}
-proc glHistogram*(target: TGLenum, width: TGLsizei, internalformat: TGLenum, 
-                  sink: TGLboolean){.dynlib: dllname, importc: "glHistogram".}
-proc glMinmax*(target: TGLenum, internalformat: TGLenum, sink: TGLboolean){.
-    dynlib: dllname, importc: "glMinmax".}
-proc glResetHistogram*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetHistogram".}
-proc glResetMinmax*(target: TGLenum){.dynlib: dllname, importc: "glResetMinmax".}
-proc glTexImage3D*(target: TGLenum, level: TGLint, internalformat: TGLint, 
-                   width: TGLsizei, height: TGLsizei, depth: TGLsizei, 
-                   border: TGLint, format: TGLenum, thetype: TGLenum, 
-                   pixels: PGLvoid){.dynlib: dllname, importc: "glTexImage3D".}
-proc glTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                      yoffset: TGLint, zoffset: TGLint, width: TGLsizei, 
-                      height: TGLsizei, depth: TGLsizei, format: TGLenum, 
-                      thetype: TGLenum, pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage3D".}
-proc glCopyTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                          yoffset: TGLint, zoffset: TGLint, x: TGLint, 
-                          y: TGLint, width: TGLsizei, height: TGLsizei){.
-    dynlib: dllname, importc: "glCopyTexSubImage3D".}
-proc glActiveTextureARB*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glActiveTextureARB".}
-proc glClientActiveTextureARB*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveTextureARB".}
-proc glMultiTexCoord1dARB*(target: TGLenum, s: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dARB".}
-proc glMultiTexCoord1dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dvARB".}
-proc glMultiTexCoord1fARB*(target: TGLenum, s: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fARB".}
-proc glMultiTexCoord1fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fvARB".}
-proc glMultiTexCoord1iARB*(target: TGLenum, s: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1iARB".}
-proc glMultiTexCoord1ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1ivARB".}
-proc glMultiTexCoord1sARB*(target: TGLenum, s: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1sARB".}
-proc glMultiTexCoord1svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1svARB".}
-proc glMultiTexCoord2dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble){.
-    dynlib: dllname, importc: "glMultiTexCoord2dARB".}
-proc glMultiTexCoord2dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord2dvARB".}
-proc glMultiTexCoord2fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord2fARB".}
-proc glMultiTexCoord2fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord2fvARB".}
-proc glMultiTexCoord2iARB*(target: TGLenum, s: TGLint, t: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord2iARB".}
-proc glMultiTexCoord2ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2ivARB".}
-proc glMultiTexCoord2sARB*(target: TGLenum, s: TGLshort, t: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord2sARB".}
-proc glMultiTexCoord2svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2svARB".}
-proc glMultiTexCoord3dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                           r: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dARB".}
-proc glMultiTexCoord3dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dvARB".}
-proc glMultiTexCoord3fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat, 
-                           r: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fARB".}
-proc glMultiTexCoord3fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fvARB".}
-proc glMultiTexCoord3iARB*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord3iARB".}
-proc glMultiTexCoord3ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord3ivARB".}
-proc glMultiTexCoord3sARB*(target: TGLenum, s: TGLshort, t: TGLshort, 
-                           r: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3sARB".}
-proc glMultiTexCoord3svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3svARB".}
-proc glMultiTexCoord4dARB*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                           r: TGLdouble, q: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dARB".}
-proc glMultiTexCoord4dvARB*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dvARB".}
-proc glMultiTexCoord4fARB*(target: TGLenum, s: TGLfloat, t: TGLfloat, 
-                           r: TGLfloat, q: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fARB".}
-proc glMultiTexCoord4fvARB*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fvARB".}
-proc glMultiTexCoord4iARB*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint, 
-                           q: TGLint){.dynlib: dllname, 
-                                       importc: "glMultiTexCoord4iARB".}
-proc glMultiTexCoord4ivARB*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord4ivARB".}
-proc glMultiTexCoord4sARB*(target: TGLenum, s: TGLshort, t: TGLshort, 
-                           r: TGLshort, q: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4sARB".}
-proc glMultiTexCoord4svARB*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4svARB".}
-proc glSampleCoverageARB*(value: TGLclampf, invert: TGLboolean){.
-    dynlib: dllname, importc: "glSampleCoverageARB".}
-  #***** GL_ARB_texture_env_add *****//
-proc glWeightbvARB*(size: TGLint, weights: PGLbyte){.dynlib: dllname, 
-    importc: "glWeightbvARB".}
-proc glWeightsvARB*(size: TGLint, weights: PGLshort){.dynlib: dllname, 
-    importc: "glWeightsvARB".}
-proc glWeightivARB*(size: TGLint, weights: PGLint){.dynlib: dllname, 
-    importc: "glWeightivARB".}
-proc glWeightfvARB*(size: TGLint, weights: PGLfloat){.dynlib: dllname, 
-    importc: "glWeightfvARB".}
-proc glWeightdvARB*(size: TGLint, weights: PGLdouble){.dynlib: dllname, 
-    importc: "glWeightdvARB".}
-proc glWeightvARB*(size: TGLint, weights: PGLdouble){.dynlib: dllname, 
-    importc: "glWeightvARB".}
-proc glWeightubvARB*(size: TGLint, weights: PGLubyte){.dynlib: dllname, 
-    importc: "glWeightubvARB".}
-proc glWeightusvARB*(size: TGLint, weights: PGLushort){.dynlib: dllname, 
-    importc: "glWeightusvARB".}
-proc glWeightuivARB*(size: TGLint, weights: PGLuint){.dynlib: dllname, 
-    importc: "glWeightuivARB".}
-proc glWeightPointerARB*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                         pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glWeightPointerARB".}
-proc glVertexBlendARB*(count: TGLint){.dynlib: dllname, 
-                                       importc: "glVertexBlendARB".}
-proc glVertexAttrib1sARB*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sARB".}
-proc glVertexAttrib1fARB*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fARB".}
-proc glVertexAttrib1dARB*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dARB".}
-proc glVertexAttrib2sARB*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2sARB".}
-proc glVertexAttrib2fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2fARB".}
-proc glVertexAttrib2dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2dARB".}
-proc glVertexAttrib3sARB*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3sARB".}
-proc glVertexAttrib3fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3fARB".}
-proc glVertexAttrib3dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                          z: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dARB".}
-proc glVertexAttrib4sARB*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                          w: TGLshort){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4sARB".}
-proc glVertexAttrib4fARB*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                          w: TGLfloat){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4fARB".}
-proc glVertexAttrib4dARB*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                          z: TGLdouble, w: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dARB".}
-proc glVertexAttrib4NubARB*(index: TGLuint, x: TGLubyte, y: TGLubyte, 
-                            z: TGLubyte, w: TGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NubARB".}
-proc glVertexAttrib1svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1svARB".}
-proc glVertexAttrib1fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fvARB".}
-proc glVertexAttrib1dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dvARB".}
-proc glVertexAttrib2svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2svARB".}
-proc glVertexAttrib2fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fvARB".}
-proc glVertexAttrib2dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dvARB".}
-proc glVertexAttrib3svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3svARB".}
-proc glVertexAttrib3fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fvARB".}
-proc glVertexAttrib3dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dvARB".}
-proc glVertexAttrib4bvARB*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4bvARB".}
-proc glVertexAttrib4svARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4svARB".}
-proc glVertexAttrib4ivARB*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4ivARB".}
-proc glVertexAttrib4ubvARB*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubvARB".}
-proc glVertexAttrib4usvARB*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4usvARB".}
-proc glVertexAttrib4uivARB*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4uivARB".}
-proc glVertexAttrib4fvARB*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fvARB".}
-proc glVertexAttrib4dvARB*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dvARB".}
-proc glVertexAttrib4NbvARB*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NbvARB".}
-proc glVertexAttrib4NsvARB*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4NsvARB".}
-proc glVertexAttrib4NivARB*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4NivARB".}
-proc glVertexAttrib4NubvARB*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4NubvARB".}
-proc glVertexAttrib4NusvARB*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4NusvARB".}
-proc glVertexAttrib4NuivARB*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4NuivARB".}
-proc glVertexAttribPointerARB*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                               normalized: TGLboolean, stride: TGLsizei, 
-                               pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexAttribPointerARB".}
-proc glEnableVertexAttribArrayARB*(index: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVertexAttribArrayARB".}
-proc glDisableVertexAttribArrayARB*(index: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVertexAttribArrayARB".}
-proc glProgramStringARB*(target: TGLenum, format: TGLenum, length: TGLsizei, 
-                         str: PGLvoid){.dynlib: dllname, 
-                                        importc: "glProgramStringARB".}
-proc glBindProgramARB*(target: TGLenum, theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glBindProgramARB".}
-proc glDeleteProgramsARB*(n: TGLsizei, programs: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgramsARB".}
-proc glGenProgramsARB*(n: TGLsizei, programs: PGLuint){.dynlib: dllname, 
-    importc: "glGenProgramsARB".}
-proc glProgramEnvParameter4dARB*(target: TGLenum, index: TGLuint, x: TGLdouble, 
-                                 y: TGLdouble, z: TGLdouble, w: TGLdouble){.
-    dynlib: dllname, importc: "glProgramEnvParameter4dARB".}
-proc glProgramEnvParameter4dvARB*(target: TGLenum, index: TGLuint, 
-                                  params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramEnvParameter4dvARB".}
-proc glProgramEnvParameter4fARB*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                                 y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramEnvParameter4fARB".}
-proc glProgramEnvParameter4fvARB*(target: TGLenum, index: TGLuint, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramEnvParameter4fvARB".}
-proc glProgramLocalParameter4dARB*(target: TGLenum, index: TGLuint, 
-                                   x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                                   w: TGLdouble){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4dARB".}
-proc glProgramLocalParameter4dvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4dvARB".}
-proc glProgramLocalParameter4fARB*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                                   y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramLocalParameter4fARB".}
-proc glProgramLocalParameter4fvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramLocalParameter4fvARB".}
-proc glGetProgramEnvParameterdvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramEnvParameterdvARB".}
-proc glGetProgramEnvParameterfvARB*(target: TGLenum, index: TGLuint, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramEnvParameterfvARB".}
-proc glGetProgramLocalParameterdvARB*(target: TGLenum, index: TGLuint, 
-                                      params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramLocalParameterdvARB".}
-proc glGetProgramLocalParameterfvARB*(target: TGLenum, index: TGLuint, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramLocalParameterfvARB".}
-proc glGetProgramivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramivARB".}
-proc glGetProgramStringARB*(target: TGLenum, pname: TGLenum, str: PGLvoid){.
-    dynlib: dllname, importc: "glGetProgramStringARB".}
-proc glGetVertexAttribdvARB*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdvARB".}
-proc glGetVertexAttribfvARB*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfvARB".}
-proc glGetVertexAttribivARB*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribivARB".}
-proc glGetVertexAttribPointervARB*(index: TGLuint, pname: TGLenum, 
-                                   pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glGetVertexAttribPointervARB".}
-proc glIsProgramARB*(theProgram: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgramARB".}
-  #***** GL_ARB_window_pos *****//
-proc glWindowPos2dARB*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2dARB".}
-proc glWindowPos2fARB*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2fARB".}
-proc glWindowPos2iARB*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2iARB".}
-proc glWindowPos2sARB*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2sARB".}
-proc glWindowPos2dvARB*(p: PGLdouble){.dynlib: dllname, 
-                                       importc: "glWindowPos2dvARB".}
-proc glWindowPos2fvARB*(p: PGLfloat){.dynlib: dllname, 
-                                      importc: "glWindowPos2fvARB".}
-proc glWindowPos2ivARB*(p: PGLint){.dynlib: dllname, 
-                                    importc: "glWindowPos2ivARB".}
-proc glWindowPos2svARB*(p: PGLshort){.dynlib: dllname, 
-                                      importc: "glWindowPos2svARB".}
-proc glWindowPos3dARB*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos3dARB".}
-proc glWindowPos3fARB*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3fARB".}
-proc glWindowPos3iARB*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3iARB".}
-proc glWindowPos3sARB*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3sARB".}
-proc glWindowPos3dvARB*(p: PGLdouble){.dynlib: dllname, 
-                                       importc: "glWindowPos3dvARB".}
-proc glWindowPos3fvARB*(p: PGLfloat){.dynlib: dllname, 
-                                      importc: "glWindowPos3fvARB".}
-proc glWindowPos3ivARB*(p: PGLint){.dynlib: dllname, 
-                                    importc: "glWindowPos3ivARB".}
-proc glWindowPos3svARB*(p: PGLshort){.dynlib: dllname, 
-                                      importc: "glWindowPos3svARB".}
-proc glBlendEquationSeparate*(modeRGB: TGLenum, modeAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendEquationSeparate".}
-proc glDrawBuffers*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffers".}
-proc glStencilOpSeparate*(face: TGLenum, sfail: TGLenum, dpfail: TGLenum, 
-                          dppass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOpSeparate".}
-proc glStencilFuncSeparate*(frontfunc: TGLenum, backfunc: TGLenum, 
-                            theRef: TGLint, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilFuncSeparate".}
-proc glStencilMaskSeparate*(face: TGLenum, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilMaskSeparate".}
-proc glAttachShader*(theProgram: TGLuint, shader: TGLuint){.dynlib: dllname, 
-    importc: "glAttachShader".}
-proc glBindAttribLocation*(theProgram: TGLuint, index: TGLuint, name: PGLchar){.
-    dynlib: dllname, importc: "glBindAttribLocation".}
-proc glCompileShader*(shader: TGLuint){.dynlib: dllname, 
-                                        importc: "glCompileShader".}
-proc glCreateProgram*(): TGLuint{.dynlib: dllname, importc: "glCreateProgram".}
-proc glCreateShader*(thetype: TGLenum): TGLuint{.dynlib: dllname, 
-    importc: "glCreateShader".}
-proc glDeleteProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgram".}
-proc glDeleteShader*(shader: TGLuint){.dynlib: dllname, 
-                                       importc: "glDeleteShader".}
-proc glDetachShader*(theProgram: TGLuint, shader: TGLuint){.dynlib: dllname, 
-    importc: "glDetachShader".}
-proc glDisableVertexAttribArray*(index: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVertexAttribArray".}
-proc glEnableVertexAttribArray*(index: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVertexAttribArray".}
-proc glGetActiveAttrib*(theProgram: TGLuint, index: TGLuint, bufSize: TGLsizei, 
-                        len: PGLsizei, size: PGLint, thetype: PGLenum, 
-                        name: PGLchar){.dynlib: dllname, 
-                                        importc: "glGetActiveAttrib".}
-proc glGetActiveUniform*(theProgram: TGLuint, index: TGLuint, bufSize: TGLsizei, 
-                         len: PGLsizei, size: PGLint, thetype: PGLenum, 
-                         name: PGLchar){.dynlib: dllname, 
-    importc: "glGetActiveUniform".}
-proc glGetAttachedShaders*(theProgram: TGLuint, maxCount: TGLsizei, 
-                           count: PGLsizei, obj: PGLuint){.dynlib: dllname, 
-    importc: "glGetAttachedShaders".}
-proc glGetAttribLocation*(theProgram: TGLuint, name: PGLchar): TGLint{.
-    dynlib: dllname, importc: "glGetAttribLocation".}
-proc glGetProgramiv*(theProgram: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramiv".}
-proc glGetProgramInfoLog*(theProgram: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                          infoLog: PGLchar){.dynlib: dllname, 
-    importc: "glGetProgramInfoLog".}
-proc glGetShaderiv*(shader: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetShaderiv".}
-proc glGetShaderInfoLog*(shader: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                         infoLog: PGLchar){.dynlib: dllname, 
-    importc: "glGetShaderInfoLog".}
-proc glGetShaderSource*(shader: TGLuint, bufSize: TGLsizei, len: PGLsizei, 
-                        source: PGLchar){.dynlib: dllname, 
-    importc: "glGetShaderSource".}
-proc glGetUniformLocation*(theProgram: TGLuint, name: PGLchar): TGLint{.
-    dynlib: dllname, importc: "glGetUniformLocation".}
-proc glGetUniformfv*(theProgram: TGLuint, location: TGLint, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetUniformfv".}
-proc glGetUniformiv*(theProgram: TGLuint, location: TGLint, params: PGLint){.
-    dynlib: dllname, importc: "glGetUniformiv".}
-proc glGetVertexAttribdv*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdv".}
-proc glGetVertexAttribfv*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfv".}
-proc glGetVertexAttribiv*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribiv".}
-proc glGetVertexAttribPointerv*(index: TGLuint, pname: TGLenum, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glGetVertexAttribPointerv".}
-proc glIsProgram*(theProgram: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgram".}
-proc glIsShader*(shader: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsShader".}
-proc glLinkProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glLinkProgram".}
-proc glShaderSource*(shader: TGLuint, count: TGLsizei, str: PGLchar, len: PGLint){.
-    dynlib: dllname, importc: "glShaderSource".}
-proc glUseProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glUseProgram".}
-proc glUniform1f*(location: TGLint, v0: TGLfloat){.dynlib: dllname, 
-    importc: "glUniform1f".}
-proc glUniform2f*(location: TGLint, v0: TGLfloat, v1: TGLfloat){.
-    dynlib: dllname, importc: "glUniform2f".}
-proc glUniform3f*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat){.
-    dynlib: dllname, importc: "glUniform3f".}
-proc glUniform4f*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat, 
-                  v3: TGLfloat){.dynlib: dllname, importc: "glUniform4f".}
-proc glUniform1i*(location: TGLint, v0: TGLint){.dynlib: dllname, 
-    importc: "glUniform1i".}
-proc glUniform2i*(location: TGLint, v0: TGLint, v1: TGLint){.dynlib: dllname, 
-    importc: "glUniform2i".}
-proc glUniform3i*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint){.
-    dynlib: dllname, importc: "glUniform3i".}
-proc glUniform4i*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint, 
-                  v3: TGLint){.dynlib: dllname, importc: "glUniform4i".}
-proc glUniform1fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform1fv".}
-proc glUniform2fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform2fv".}
-proc glUniform3fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform3fv".}
-proc glUniform4fv*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform4fv".}
-proc glUniform1iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform1iv".}
-proc glUniform2iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform2iv".}
-proc glUniform3iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform3iv".}
-proc glUniform4iv*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform4iv".}
-proc glUniformMatrix2fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix2fv".}
-proc glUniformMatrix3fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix3fv".}
-proc glUniformMatrix4fv*(location: TGLint, count: TGLsizei, 
-                         transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix4fv".}
-proc glValidateProgram*(theProgram: TGLuint){.dynlib: dllname, 
-    importc: "glValidateProgram".}
-proc glVertexAttrib1d*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1d".}
-proc glVertexAttrib1dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dv".}
-proc glVertexAttrib1f*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1f".}
-proc glVertexAttrib1fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fv".}
-proc glVertexAttrib1s*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1s".}
-proc glVertexAttrib1sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sv".}
-proc glVertexAttrib2d*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2d".}
-proc glVertexAttrib2dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dv".}
-proc glVertexAttrib2f*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2f".}
-proc glVertexAttrib2fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fv".}
-proc glVertexAttrib2s*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2s".}
-proc glVertexAttrib2sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2sv".}
-proc glVertexAttrib3d*(index: TGLuint, x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib3d".}
-proc glVertexAttrib3dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dv".}
-proc glVertexAttrib3f*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3f".}
-proc glVertexAttrib3fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fv".}
-proc glVertexAttrib3s*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3s".}
-proc glVertexAttrib3sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3sv".}
-proc glVertexAttrib4Nbv*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nbv".}
-proc glVertexAttrib4Niv*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4Niv".}
-proc glVertexAttrib4Nsv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nsv".}
-proc glVertexAttrib4Nub*(index: TGLuint, x: TGLubyte, y: TGLubyte, z: TGLubyte, 
-                         w: TGLubyte){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4Nub".}
-proc glVertexAttrib4Nubv*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nubv".}
-proc glVertexAttrib4Nuiv*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nuiv".}
-proc glVertexAttrib4Nusv*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4Nusv".}
-proc glVertexAttrib4bv*(index: TGLuint, v: PGLbyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4bv".}
-proc glVertexAttrib4d*(index: TGLuint, x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                       w: TGLdouble){.dynlib: dllname, 
-                                      importc: "glVertexAttrib4d".}
-proc glVertexAttrib4dv*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dv".}
-proc glVertexAttrib4f*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                       w: TGLfloat){.dynlib: dllname, 
-                                     importc: "glVertexAttrib4f".}
-proc glVertexAttrib4fv*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fv".}
-proc glVertexAttrib4iv*(index: TGLuint, v: PGLint){.dynlib: dllname, 
-    importc: "glVertexAttrib4iv".}
-proc glVertexAttrib4s*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                       w: TGLshort){.dynlib: dllname, 
-                                     importc: "glVertexAttrib4s".}
-proc glVertexAttrib4sv*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4sv".}
-proc glVertexAttrib4ubv*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubv".}
-proc glVertexAttrib4uiv*(index: TGLuint, v: PGLuint){.dynlib: dllname, 
-    importc: "glVertexAttrib4uiv".}
-proc glVertexAttrib4usv*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4usv".}
-proc glVertexAttribPointer*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                            normalized: TGLboolean, stride: TGLsizei, 
-                            pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexAttribPointer".}
-const 
-  GL_CONSTANT_COLOR* = 0x00008001
-  GL_ONE_MINUS_CONSTANT_COLOR* = 0x00008002
-  GL_CONSTANT_ALPHA* = 0x00008003
-  GL_ONE_MINUS_CONSTANT_ALPHA* = 0x00008004
-  constGL_BLEND_COLOR* = 0x00008005
-  GL_FUNC_ADD* = 0x00008006
-  GL_MIN* = 0x00008007
-  GL_MAX* = 0x00008008
-  constGL_BLEND_EQUATION* = 0x00008009
-  GL_FUNC_SUBTRACT* = 0x0000800A
-  GL_FUNC_REVERSE_SUBTRACT* = 0x0000800B
-  GL_CONVOLUTION_1D* = 0x00008010
-  GL_CONVOLUTION_2D* = 0x00008011
-  GL_SEPARABLE_2D* = 0x00008012
-  GL_CONVOLUTION_BORDER_MODE* = 0x00008013
-  GL_CONVOLUTION_FILTER_SCALE* = 0x00008014
-  GL_CONVOLUTION_FILTER_BIAS* = 0x00008015
-  GL_REDUCE* = 0x00008016
-  GL_CONVOLUTION_FORMAT* = 0x00008017
-  GL_CONVOLUTION_WIDTH* = 0x00008018
-  GL_CONVOLUTION_HEIGHT* = 0x00008019
-  GL_MAX_CONVOLUTION_WIDTH* = 0x0000801A
-  GL_MAX_CONVOLUTION_HEIGHT* = 0x0000801B
-  GL_POST_CONVOLUTION_RED_SCALE* = 0x0000801C
-  GL_POST_CONVOLUTION_GREEN_SCALE* = 0x0000801D
-  GL_POST_CONVOLUTION_BLUE_SCALE* = 0x0000801E
-  GL_POST_CONVOLUTION_ALPHA_SCALE* = 0x0000801F
-  GL_POST_CONVOLUTION_RED_BIAS* = 0x00008020
-  GL_POST_CONVOLUTION_GREEN_BIAS* = 0x00008021
-  GL_POST_CONVOLUTION_BLUE_BIAS* = 0x00008022
-  GL_POST_CONVOLUTION_ALPHA_BIAS* = 0x00008023
-  constGL_HISTOGRAM* = 0x00008024
-  GL_PROXY_HISTOGRAM* = 0x00008025
-  GL_HISTOGRAM_WIDTH* = 0x00008026
-  GL_HISTOGRAM_FORMAT* = 0x00008027
-  GL_HISTOGRAM_RED_SIZE* = 0x00008028
-  GL_HISTOGRAM_GREEN_SIZE* = 0x00008029
-  GL_HISTOGRAM_BLUE_SIZE* = 0x0000802A
-  GL_HISTOGRAM_ALPHA_SIZE* = 0x0000802B
-  GL_HISTOGRAM_LUMINANCE_SIZE* = 0x0000802C
-  GL_HISTOGRAM_SINK* = 0x0000802D
-  constGL_MINMAX* = 0x0000802E
-  GL_MINMAX_FORMAT* = 0x0000802F
-  GL_MINMAX_SINK* = 0x00008030
-  GL_TABLE_TOO_LARGE* = 0x00008031
-  GL_COLOR_MATRIX* = 0x000080B1
-  GL_COLOR_MATRIX_STACK_DEPTH* = 0x000080B2
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH* = 0x000080B3
-  GL_POST_COLOR_MATRIX_RED_SCALE* = 0x000080B4
-  GL_POST_COLOR_MATRIX_GREEN_SCALE* = 0x000080B5
-  GL_POST_COLOR_MATRIX_BLUE_SCALE* = 0x000080B6
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE* = 0x000080B7
-  GL_POST_COLOR_MATRIX_RED_BIAS* = 0x000080B8
-  GL_POST_COLOR_MATRIX_GREEN_BIAS* = 0x000080B9
-  GL_POST_COLOR_MATRIX_BLUE_BIAS* = 0x000080BA
-  GL_POST_COLOR_MATIX_ALPHA_BIAS* = 0x000080BB
-  constGL_COLOR_TABLE* = 0x000080D0
-  GL_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D1
-  GL_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D2
-  GL_PROXY_COLOR_TABLE* = 0x000080D3
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D4
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D5
-  GL_COLOR_TABLE_SCALE* = 0x000080D6
-  GL_COLOR_TABLE_BIAS* = 0x000080D7
-  GL_COLOR_TABLE_FORMAT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE* = 0x000080DF
-  GL_IGNORE_BORDER* = 0x00008150
-  GL_CONSTANT_BORDER* = 0x00008151
-  GL_WRAP_BORDER* = 0x00008152
-  GL_REPLICATE_BORDER* = 0x00008153
-  GL_CONVOLUTION_BORDER_COLOR* = 0x00008154
-
-proc glActiveTexture*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glActiveTexture".}
-proc glClientActiveTexture*(texture: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveTexture".}
-proc glMultiTexCoord1d*(target: TGLenum, s: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1d".}
-proc glMultiTexCoord1dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord1dv".}
-proc glMultiTexCoord1f*(target: TGLenum, s: TGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1f".}
-proc glMultiTexCoord1fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord1fv".}
-proc glMultiTexCoord1i*(target: TGLenum, s: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1i".}
-proc glMultiTexCoord1iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord1iv".}
-proc glMultiTexCoord1s*(target: TGLenum, s: TGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1s".}
-proc glMultiTexCoord1sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1sv".}
-proc glMultiTexCoord2d*(target: TGLenum, s: TGLdouble, t: TGLdouble){.
-    dynlib: dllname, importc: "glMultiTexCoord2d".}
-proc glMultiTexCoord2dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord2dv".}
-proc glMultiTexCoord2f*(target: TGLenum, s: TGLfloat, t: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord2f".}
-proc glMultiTexCoord2fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord2fv".}
-proc glMultiTexCoord2i*(target: TGLenum, s: TGLint, t: TGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2i".}
-proc glMultiTexCoord2iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord2iv".}
-proc glMultiTexCoord2s*(target: TGLenum, s: TGLshort, t: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord2s".}
-proc glMultiTexCoord2sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2sv".}
-proc glMultiTexCoord3d*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                        r: TGLdouble){.dynlib: dllname, 
-                                       importc: "glMultiTexCoord3d".}
-proc glMultiTexCoord3dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord3dv".}
-proc glMultiTexCoord3f*(target: TGLenum, s: TGLfloat, t: TGLfloat, r: TGLfloat){.
-    dynlib: dllname, importc: "glMultiTexCoord3f".}
-proc glMultiTexCoord3fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord3fv".}
-proc glMultiTexCoord3i*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint){.
-    dynlib: dllname, importc: "glMultiTexCoord3i".}
-proc glMultiTexCoord3iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord3iv".}
-proc glMultiTexCoord3s*(target: TGLenum, s: TGLshort, t: TGLshort, r: TGLshort){.
-    dynlib: dllname, importc: "glMultiTexCoord3s".}
-proc glMultiTexCoord3sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3sv".}
-proc glMultiTexCoord4d*(target: TGLenum, s: TGLdouble, t: TGLdouble, 
-                        r: TGLdouble, q: TGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4d".}
-proc glMultiTexCoord4dv*(target: TGLenum, v: PGLdouble){.dynlib: dllname, 
-    importc: "glMultiTexCoord4dv".}
-proc glMultiTexCoord4f*(target: TGLenum, s: TGLfloat, t: TGLfloat, r: TGLfloat, 
-                        q: TGLfloat){.dynlib: dllname, 
-                                      importc: "glMultiTexCoord4f".}
-proc glMultiTexCoord4fv*(target: TGLenum, v: PGLfloat){.dynlib: dllname, 
-    importc: "glMultiTexCoord4fv".}
-proc glMultiTexCoord4i*(target: TGLenum, s: TGLint, t: TGLint, r: TGLint, 
-                        q: TGLint){.dynlib: dllname, 
-                                    importc: "glMultiTexCoord4i".}
-proc glMultiTexCoord4iv*(target: TGLenum, v: PGLint){.dynlib: dllname, 
-    importc: "glMultiTexCoord4iv".}
-proc glMultiTexCoord4s*(target: TGLenum, s: TGLshort, t: TGLshort, r: TGLshort, 
-                        q: TGLshort){.dynlib: dllname, 
-                                      importc: "glMultiTexCoord4s".}
-proc glMultiTexCoord4sv*(target: TGLenum, v: PGLshort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4sv".}
-proc glLoadTransposeMatrixf*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixf".}
-proc glLoadTransposeMatrixd*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixd".}
-proc glMultTransposeMatrixf*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixf".}
-proc glMultTransposeMatrixd*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixd".}
-proc glSampleCoverage*(value: TGLclampf, invert: TGLboolean){.dynlib: dllname, 
-    importc: "glSampleCoverage".}
-proc glCompressedTexImage3D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             height: TGLsizei, depth: TGLsizei, border: TGLint, 
-                             imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage3D".}
-proc glCompressedTexImage2D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             height: TGLsizei, border: TGLint, 
-                             imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage2D".}
-proc glCompressedTexImage1D*(target: TGLenum, level: TGLint, 
-                             internalformat: TGLenum, width: TGLsizei, 
-                             border: TGLint, imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage1D".}
-proc glCompressedTexSubImage3D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                yoffset: TGLint, zoffset: TGLint, 
-                                width: TGLsizei, height: TGLsizei, 
-                                depth: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage3D".}
-proc glCompressedTexSubImage2D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                yoffset: TGLint, width: TGLsizei, 
-                                height: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage2D".}
-proc glCompressedTexSubImage1D*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                                width: TGLsizei, format: TGLenum, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexSubImage1D".}
-proc glGetCompressedTexImage*(target: TGLenum, level: TGLint, img: PGLvoid){.
-    dynlib: dllname, importc: "glGetCompressedTexImage".}
-  #***** GL_version_1_3 *****//
-const 
-  GL_TEXTURE0* = 0x000084C0
-  GL_TEXTURE1* = 0x000084C1
-  GL_TEXTURE2* = 0x000084C2
-  GL_TEXTURE3* = 0x000084C3
-  GL_TEXTURE4* = 0x000084C4
-  GL_TEXTURE5* = 0x000084C5
-  GL_TEXTURE6* = 0x000084C6
-  GL_TEXTURE7* = 0x000084C7
-  GL_TEXTURE8* = 0x000084C8
-  GL_TEXTURE9* = 0x000084C9
-  GL_TEXTURE10* = 0x000084CA
-  GL_TEXTURE11* = 0x000084CB
-  GL_TEXTURE12* = 0x000084CC
-  GL_TEXTURE13* = 0x000084CD
-  GL_TEXTURE14* = 0x000084CE
-  GL_TEXTURE15* = 0x000084CF
-  GL_TEXTURE16* = 0x000084D0
-  GL_TEXTURE17* = 0x000084D1
-  GL_TEXTURE18* = 0x000084D2
-  GL_TEXTURE19* = 0x000084D3
-  GL_TEXTURE20* = 0x000084D4
-  GL_TEXTURE21* = 0x000084D5
-  GL_TEXTURE22* = 0x000084D6
-  GL_TEXTURE23* = 0x000084D7
-  GL_TEXTURE24* = 0x000084D8
-  GL_TEXTURE25* = 0x000084D9
-  GL_TEXTURE26* = 0x000084DA
-  GL_TEXTURE27* = 0x000084DB
-  GL_TEXTURE28* = 0x000084DC
-  GL_TEXTURE29* = 0x000084DD
-  GL_TEXTURE30* = 0x000084DE
-  GL_TEXTURE31* = 0x000084DF
-  constGL_ACTIVE_TEXTURE* = 0x000084E0
-  constGL_CLIENT_ACTIVE_TEXTURE* = 0x000084E1
-  GL_MAX_TEXTURE_UNITS* = 0x000084E2
-  GL_TRANSPOSE_MODELVIEW_MATRIX* = 0x000084E3
-  GL_TRANSPOSE_PROJECTION_MATRIX* = 0x000084E4
-  GL_TRANSPOSE_TEXTURE_MATRIX* = 0x000084E5
-  GL_TRANSPOSE_COLOR_MATRIX* = 0x000084E6
-  GL_MULTISAMPLE* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_COVERAGE* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE* = 0x0000809F
-  constGL_SAMPLE_COVERAGE* = 0x000080A0
-  GL_SAMPLE_BUFFERS* = 0x000080A8
-  GL_SAMPLES* = 0x000080A9
-  GL_SAMPLE_COVERAGE_VALUE* = 0x000080AA
-  GL_SAMPLE_COVERAGE_INVERT* = 0x000080AB
-  GL_MULTISAMPLE_BIT* = 0x20000000
-  GL_NORMAL_MAP* = 0x00008511
-  GL_REFLECTION_MAP* = 0x00008512
-  GL_TEXTURE_CUBE_MAP* = 0x00008513
-  GL_TEXTURE_BINDING_CUBE_MAP* = 0x00008514
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X* = 0x00008515
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X* = 0x00008516
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y* = 0x00008517
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y* = 0x00008518
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z* = 0x00008519
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z* = 0x0000851A
-  GL_PROXY_TEXTURE_CUBE_MAP* = 0x0000851B
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE* = 0x0000851C
-  GL_COMPRESSED_ALPHA* = 0x000084E9
-  GL_COMPRESSED_LUMINANCE* = 0x000084EA
-  GL_COMPRESSED_LUMINANCE_ALPHA* = 0x000084EB
-  GL_COMPRESSED_INTENSITY* = 0x000084EC
-  GL_COMPRESSED_RGB* = 0x000084ED
-  GL_COMPRESSED_RGBA* = 0x000084EE
-  GL_TEXTURE_COMPRESSION_HINT* = 0x000084EF
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE* = 0x000086A0
-  GL_TEXTURE_COMPRESSED* = 0x000086A1
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS* = 0x000086A2
-  GL_COMPRESSED_TEXTURE_FORMATS* = 0x000086A3
-  GL_CLAMP_TO_BORDER* = 0x0000812D
-  GL_CLAMP_TO_BORDER_SGIS* = 0x0000812D
-  GL_COMBINE* = 0x00008570
-  GL_COMBINE_RGB* = 0x00008571
-  GL_COMBINE_ALPHA* = 0x00008572
-  GL_SOURCE0_RGB* = 0x00008580
-  GL_SOURCE1_RGB* = 0x00008581
-  GL_SOURCE2_RGB* = 0x00008582
-  GL_SOURCE0_ALPHA* = 0x00008588
-  GL_SOURCE1_ALPHA* = 0x00008589
-  GL_SOURCE2_ALPHA* = 0x0000858A
-  GL_OPERAND0_RGB* = 0x00008590
-  GL_OPERAND1_RGB* = 0x00008591
-  GL_OPERAND2_RGB* = 0x00008592
-  GL_OPERAND0_ALPHA* = 0x00008598
-  GL_OPERAND1_ALPHA* = 0x00008599
-  GL_OPERAND2_ALPHA* = 0x0000859A
-  GL_RGB_SCALE* = 0x00008573
-  GL_ADD_SIGNED* = 0x00008574
-  GL_INTERPOLATE* = 0x00008575
-  GL_SUBTRACT* = 0x000084E7
-  GL_CONSTANT* = 0x00008576
-  GL_PRIMARY_COLOR* = 0x00008577
-  GL_PREVIOUS* = 0x00008578
-  GL_DOT3_RGB* = 0x000086AE
-  GL_DOT3_RGBA* = 0x000086AF
-
-const 
-  GL_TEXTURE0_ARB* = 0x000084C0
-  GL_TEXTURE1_ARB* = 0x000084C1
-  GL_TEXTURE2_ARB* = 0x000084C2
-  GL_TEXTURE3_ARB* = 0x000084C3
-  GL_TEXTURE4_ARB* = 0x000084C4
-  GL_TEXTURE5_ARB* = 0x000084C5
-  GL_TEXTURE6_ARB* = 0x000084C6
-  GL_TEXTURE7_ARB* = 0x000084C7
-  GL_TEXTURE8_ARB* = 0x000084C8
-  GL_TEXTURE9_ARB* = 0x000084C9
-  GL_TEXTURE10_ARB* = 0x000084CA
-  GL_TEXTURE11_ARB* = 0x000084CB
-  GL_TEXTURE12_ARB* = 0x000084CC
-  GL_TEXTURE13_ARB* = 0x000084CD
-  GL_TEXTURE14_ARB* = 0x000084CE
-  GL_TEXTURE15_ARB* = 0x000084CF
-  GL_TEXTURE16_ARB* = 0x000084D0
-  GL_TEXTURE17_ARB* = 0x000084D1
-  GL_TEXTURE18_ARB* = 0x000084D2
-  GL_TEXTURE19_ARB* = 0x000084D3
-  GL_TEXTURE20_ARB* = 0x000084D4
-  GL_TEXTURE21_ARB* = 0x000084D5
-  GL_TEXTURE22_ARB* = 0x000084D6
-  GL_TEXTURE23_ARB* = 0x000084D7
-  GL_TEXTURE24_ARB* = 0x000084D8
-  GL_TEXTURE25_ARB* = 0x000084D9
-  GL_TEXTURE26_ARB* = 0x000084DA
-  GL_TEXTURE27_ARB* = 0x000084DB
-  GL_TEXTURE28_ARB* = 0x000084DC
-  GL_TEXTURE29_ARB* = 0x000084DD
-  GL_TEXTURE30_ARB* = 0x000084DE
-  GL_TEXTURE31_ARB* = 0x000084DF
-  constGL_ACTIVE_TEXTURE_ARB* = 0x000084E0
-  constGL_CLIENT_ACTIVE_TEXTURE_ARB* = 0x000084E1
-  GL_MAX_TEXTURE_UNITS_ARB* = 0x000084E2
-  #***** GL_ARB_transpose_matrix *****//
-
-const 
-  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB* = 0x000084E3
-  GL_TRANSPOSE_PROJECTION_MATRIX_ARB* = 0x000084E4
-  GL_TRANSPOSE_TEXTURE_MATRIX_ARB* = 0x000084E5
-  GL_TRANSPOSE_COLOR_MATRIX_ARB* = 0x000084E6
-
-proc glLoadTransposeMatrixfARB*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixfARB".}
-proc glLoadTransposeMatrixdARB*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glLoadTransposeMatrixdARB".}
-proc glMultTransposeMatrixfARB*(m: PGLfloat){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixfARB".}
-proc glMultTransposeMatrixdARB*(m: PGLdouble){.dynlib: dllname, 
-    importc: "glMultTransposeMatrixdARB".}
-const 
-  WGL_SAMPLE_BUFFERS_ARB* = 0x00002041
-  WGL_SAMPLES_ARB* = 0x00002042
-  GL_MULTISAMPLE_ARB* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE_ARB* = 0x0000809F
-  constGL_SAMPLE_COVERAGE_ARB* = 0x000080A0
-  GL_MULTISAMPLE_BIT_ARB* = 0x20000000
-  GL_SAMPLE_BUFFERS_ARB* = 0x000080A8
-  GL_SAMPLES_ARB* = 0x000080A9
-  GL_SAMPLE_COVERAGE_VALUE_ARB* = 0x000080AA
-  GL_SAMPLE_COVERAGE_INVERT_ARB* = 0x000080AB
-
-const 
-  GL_NORMAL_MAP_ARB* = 0x00008511
-  GL_REFLECTION_MAP_ARB* = 0x00008512
-  GL_TEXTURE_CUBE_MAP_ARB* = 0x00008513
-  GL_TEXTURE_BINDING_CUBE_MAP_ARB* = 0x00008514
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x00008515
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x00008516
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x00008517
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00008518
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00008519
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x0000851A
-  GL_PROXY_TEXTURE_CUBE_MAP_ARB* = 0x0000851B
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB* = 0x0000851C
-
-const 
-  GL_DEPTH_COMPONENT16_ARB* = 0x000081A5
-  GL_DEPTH_COMPONENT24_ARB* = 0x000081A6
-  GL_DEPTH_COMPONENT32_ARB* = 0x000081A7
-  GL_TEXTURE_DEPTH_SIZE_ARB* = 0x0000884A
-  GL_DEPTH_TEXTURE_MODE_ARB* = 0x0000884B
-  #***** GL_ARB_point_parameters *****//
-
-const 
-  GL_POINT_SIZE_MIN_ARB* = 0x00008126
-  GL_POINT_SIZE_MAX_ARB* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE_ARB* = 0x00008128
-  GL_POINT_DISTANCE_ATTENUATION_ARB* = 0x00008129
-
-proc glPointParameterfARB*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfARB".}
-proc glPointParameterfvARB*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfvARB".}
-const 
-  GL_TEXTURE_COMPARE_MODE_ARB* = 0x0000884C
-  GL_TEXTURE_COMPARE_FUNC_ARB* = 0x0000884D
-  GL_COMPARE_R_TO_TEXTURE_ARB* = 0x0000884E
-
-const 
-  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB* = 0x000080BF
-  GL_CLAMP_TO_BORDER_ARB* = 0x0000812D
-
-const 
-  GL_COMPRESSED_ALPHA_ARB* = 0x000084E9
-  GL_COMPRESSED_LUMINANCE_ARB* = 0x000084EA
-  GL_COMPRESSED_LUMINANCE_ALPHA_ARB* = 0x000084EB
-  GL_COMPRESSED_INTENSITY_ARB* = 0x000084EC
-  GL_COMPRESSED_RGB_ARB* = 0x000084ED
-  GL_COMPRESSED_RGBA_ARB* = 0x000084EE
-  GL_TEXTURE_COMPRESSION_HINT_ARB* = 0x000084EF
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB* = 0x000086A0
-  GL_TEXTURE_COMPRESSED_ARB* = 0x000086A1
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A2
-  GL_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A3
-
-proc glCompressedTexImage3DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                height: TGLsizei, depth: TGLsizei, 
-                                border: TGLint, imageSize: TGLsizei, 
-                                data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexImage3DARB".}
-proc glCompressedTexImage2DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                height: TGLsizei, border: TGLint, 
-                                imageSize: TGLsizei, data: PGLvoid){.
-    dynlib: dllname, importc: "glCompressedTexImage2DARB".}
-proc glCompressedTexImage1DARB*(target: TGLenum, level: TGLint, 
-                                internalformat: TGLenum, width: TGLsizei, 
-                                border: TGLint, imageSize: TGLsizei, 
-                                data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexImage1DARB".}
-proc glCompressedTexSubImage3DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, yoffset: TGLint, 
-                                   zoffset: TGLint, width: TGLsizei, 
-                                   height: TGLsizei, depth: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage3DARB".}
-proc glCompressedTexSubImage2DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, yoffset: TGLint, 
-                                   width: TGLsizei, height: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage2DARB".}
-proc glCompressedTexSubImage1DARB*(target: TGLenum, level: TGLint, 
-                                   xoffset: TGLint, width: TGLsizei, 
-                                   format: TGLenum, imageSize: TGLsizei, 
-                                   data: PGLvoid){.dynlib: dllname, 
-    importc: "glCompressedTexSubImage1DARB".}
-proc glGetCompressedTexImageARB*(target: TGLenum, lod: TGLint, img: PGLvoid){.
-    dynlib: dllname, importc: "glGetCompressedTexImageARB".}
-  #***** GL_ARB_texture_env_combine *****//
-const 
-  GL_COMBINE_ARB* = 0x00008570
-  GL_COMBINE_RGB_ARB* = 0x00008571
-  GL_COMBINE_ALPHA_ARB* = 0x00008572
-  GL_SOURCE0_RGB_ARB* = 0x00008580
-  GL_SOURCE1_RGB_ARB* = 0x00008581
-  GL_SOURCE2_RGB_ARB* = 0x00008582
-  GL_SOURCE0_ALPHA_ARB* = 0x00008588
-  GL_SOURCE1_ALPHA_ARB* = 0x00008589
-  GL_SOURCE2_ALPHA_ARB* = 0x0000858A
-  GL_OPERAND0_RGB_ARB* = 0x00008590
-  GL_OPERAND1_RGB_ARB* = 0x00008591
-  GL_OPERAND2_RGB_ARB* = 0x00008592
-  GL_OPERAND0_ALPHA_ARB* = 0x00008598
-  GL_OPERAND1_ALPHA_ARB* = 0x00008599
-  GL_OPERAND2_ALPHA_ARB* = 0x0000859A
-  GL_RGB_SCALE_ARB* = 0x00008573
-  GL_ADD_SIGNED_ARB* = 0x00008574
-  GL_INTERPOLATE_ARB* = 0x00008575
-  GL_SUBTRACT_ARB* = 0x000084E7
-  GL_CONSTANT_ARB* = 0x00008576
-  GL_PRIMARY_COLOR_ARB* = 0x00008577
-  GL_PREVIOUS_ARB* = 0x00008578
-  #***** GL_ARB_texture_env_crossbar *****//
-  #***** GL_ARB_texture_env_dot3 *****//
-
-const 
-  GL_DOT3_RGB_ARB* = 0x000086AE
-  GL_DOT3_RGBA_ARB* = 0x000086AF
-  #***** GL_ARB_texture_mirrored_repeat *****//
-
-const 
-  GL_MIRRORED_REPEAT_ARB* = 0x00008370
-  #***** GL_ARB_vertex_blend *****//
-
-const 
-  GL_MAX_VERTEX_UNITS_ARB* = 0x000086A4
-  GL_ACTIVE_VERTEX_UNITS_ARB* = 0x000086A5
-  GL_WEIGHT_SUM_UNITY_ARB* = 0x000086A6
-  constGL_VERTEX_BLEND_ARB* = 0x000086A7
-  GL_MODELVIEW0_ARB* = 0x00001700
-  GL_MODELVIEW1_ARB* = 0x0000850A
-  GL_MODELVIEW2_ARB* = 0x00008722
-  GL_MODELVIEW3_ARB* = 0x00008723
-  GL_MODELVIEW4_ARB* = 0x00008724
-  GL_MODELVIEW5_ARB* = 0x00008725
-  GL_MODELVIEW6_ARB* = 0x00008726
-  GL_MODELVIEW7_ARB* = 0x00008727
-  GL_MODELVIEW8_ARB* = 0x00008728
-  GL_MODELVIEW9_ARB* = 0x00008729
-  GL_MODELVIEW10_ARB* = 0x0000872A
-  GL_MODELVIEW11_ARB* = 0x0000872B
-  GL_MODELVIEW12_ARB* = 0x0000872C
-  GL_MODELVIEW13_ARB* = 0x0000872D
-  GL_MODELVIEW14_ARB* = 0x0000872E
-  GL_MODELVIEW15_ARB* = 0x0000872F
-  GL_MODELVIEW16_ARB* = 0x00008730
-  GL_MODELVIEW17_ARB* = 0x00008731
-  GL_MODELVIEW18_ARB* = 0x00008732
-  GL_MODELVIEW19_ARB* = 0x00008733
-  GL_MODELVIEW20_ARB* = 0x00008734
-  GL_MODELVIEW21_ARB* = 0x00008735
-  GL_MODELVIEW22_ARB* = 0x00008736
-  GL_MODELVIEW23_ARB* = 0x00008737
-  GL_MODELVIEW24_ARB* = 0x00008738
-  GL_MODELVIEW25_ARB* = 0x00008739
-  GL_MODELVIEW26_ARB* = 0x0000873A
-  GL_MODELVIEW27_ARB* = 0x0000873B
-  GL_MODELVIEW28_ARB* = 0x0000873C
-  GL_MODELVIEW29_ARB* = 0x0000873D
-  GL_MODELVIEW30_ARB* = 0x0000873E
-  GL_MODELVIEW31_ARB* = 0x0000873F
-  GL_CURRENT_WEIGHT_ARB* = 0x000086A8
-  GL_WEIGHT_ARRAY_TYPE_ARB* = 0x000086A9
-  GL_WEIGHT_ARRAY_STRIDE_ARB* = 0x000086AA
-  GL_WEIGHT_ARRAY_SIZE_ARB* = 0x000086AB
-  GL_WEIGHT_ARRAY_POINTER_ARB* = 0x000086AC
-  GL_WEIGHT_ARRAY_ARB* = 0x000086AD
-
-const 
-  GL_VERTEX_PROGRAM_ARB* = 0x00008620
-  GL_VERTEX_PROGRAM_POINT_SIZE_ARB* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE_ARB* = 0x00008643
-  GL_COLOR_SUM_ARB* = 0x00008458
-  GL_PROGRAM_FORMAT_ASCII_ARB* = 0x00008875
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB* = 0x00008622
-  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB* = 0x00008623
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB* = 0x00008624
-  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB* = 0x00008625
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB* = 0x0000886A
-  GL_CURRENT_VERTEX_ATTRIB_ARB* = 0x00008626
-  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB* = 0x00008645
-  GL_PROGRAM_LENGTH_ARB* = 0x00008627
-  GL_PROGRAM_FORMAT_ARB* = 0x00008876
-  GL_PROGRAM_BINDING_ARB* = 0x00008677
-  GL_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A0
-  GL_MAX_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A1
-  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A2
-  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A3
-  GL_PROGRAM_TEMPORARIES_ARB* = 0x000088A4
-  GL_MAX_PROGRAM_TEMPORARIES_ARB* = 0x000088A5
-  GL_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A6
-  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A7
-  GL_PROGRAM_PARAMETERS_ARB* = 0x000088A8
-  GL_MAX_PROGRAM_PARAMETERS_ARB* = 0x000088A9
-  GL_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AA
-  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AB
-  GL_PROGRAM_ATTRIBS_ARB* = 0x000088AC
-  GL_MAX_PROGRAM_ATTRIBS_ARB* = 0x000088AD
-  GL_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AE
-  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AF
-  GL_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B0
-  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B1
-  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B2
-  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B3
-  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB* = 0x000088B4
-  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB* = 0x000088B5
-  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB* = 0x000088B6
-  constGL_PROGRAM_STRING_ARB* = 0x00008628
-  GL_PROGRAM_ERROR_POSITION_ARB* = 0x0000864B
-  GL_CURRENT_MATRIX_ARB* = 0x00008641
-  GL_TRANSPOSE_CURRENT_MATRIX_ARB* = 0x000088B7
-  GL_CURRENT_MATRIX_STACK_DEPTH_ARB* = 0x00008640
-  GL_MAX_VERTEX_ATTRIBS_ARB* = 0x00008869
-  GL_MAX_PROGRAM_MATRICES_ARB* = 0x0000862F
-  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB* = 0x0000862E
-  GL_PROGRAM_ERROR_STRING_ARB* = 0x00008874
-  GL_MATRIX0_ARB* = 0x000088C0
-  GL_MATRIX1_ARB* = 0x000088C1
-  GL_MATRIX2_ARB* = 0x000088C2
-  GL_MATRIX3_ARB* = 0x000088C3
-  GL_MATRIX4_ARB* = 0x000088C4
-  GL_MATRIX5_ARB* = 0x000088C5
-  GL_MATRIX6_ARB* = 0x000088C6
-  GL_MATRIX7_ARB* = 0x000088C7
-  GL_MATRIX8_ARB* = 0x000088C8
-  GL_MATRIX9_ARB* = 0x000088C9
-  GL_MATRIX10_ARB* = 0x000088CA
-  GL_MATRIX11_ARB* = 0x000088CB
-  GL_MATRIX12_ARB* = 0x000088CC
-  GL_MATRIX13_ARB* = 0x000088CD
-  GL_MATRIX14_ARB* = 0x000088CE
-  GL_MATRIX15_ARB* = 0x000088CF
-  GL_MATRIX16_ARB* = 0x000088D0
-  GL_MATRIX17_ARB* = 0x000088D1
-  GL_MATRIX18_ARB* = 0x000088D2
-  GL_MATRIX19_ARB* = 0x000088D3
-  GL_MATRIX20_ARB* = 0x000088D4
-  GL_MATRIX21_ARB* = 0x000088D5
-  GL_MATRIX22_ARB* = 0x000088D6
-  GL_MATRIX23_ARB* = 0x000088D7
-  GL_MATRIX24_ARB* = 0x000088D8
-  GL_MATRIX25_ARB* = 0x000088D9
-  GL_MATRIX26_ARB* = 0x000088DA
-  GL_MATRIX27_ARB* = 0x000088DB
-  GL_MATRIX28_ARB* = 0x000088DC
-  GL_MATRIX29_ARB* = 0x000088DD
-  GL_MATRIX30_ARB* = 0x000088DE
-  GL_MATRIX31_ARB* = 0x000088DF
-
-const 
-  GL_422_EXT* = 0x000080CC
-  GL_422_REV_EXT* = 0x000080CD
-  GL_422_AVERAGE_EXT* = 0x000080CE
-  GL_422_REV_AVERAGE_EXT* = 0x000080CF
-  #***** GL_EXT_abgr *****//
-
-const 
-  GL_ABGR_EXT* = 0x00008000
-  #***** GL_EXT_bgra *****//
-
-const 
-  GL_BGR_EXT* = 0x000080E0
-  GL_BGRA_EXT* = 0x000080E1
-  #***** GL_EXT_blend_color *****//
-
-const 
-  GL_CONSTANT_COLOR_EXT* = 0x00008001
-  GL_ONE_MINUS_CONSTANT_COLOR_EXT* = 0x00008002
-  GL_CONSTANT_ALPHA_EXT* = 0x00008003
-  GL_ONE_MINUS_CONSTANT_ALPHA_EXT* = 0x00008004
-  constGL_BLEND_COLOR_EXT* = 0x00008005
-
-proc glBlendColorEXT*(red: TGLclampf, green: TGLclampf, blue: TGLclampf, 
-                      alpha: TGLclampf){.dynlib: dllname, 
-    importc: "glBlendColorEXT".}
-  #***** GL_EXT_blend_func_separate *****//
-const 
-  GL_BLEND_DST_RGB_EXT* = 0x000080C8
-  GL_BLEND_SRC_RGB_EXT* = 0x000080C9
-  GL_BLEND_DST_ALPHA_EXT* = 0x000080CA
-  GL_BLEND_SRC_ALPHA_EXT* = 0x000080CB
-
-proc glBlendFuncSeparateEXT*(sfactorRGB: TGLenum, dfactorRGB: TGLenum, 
-                             sfactorAlpha: TGLenum, dfactorAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendFuncSeparateEXT".}
-  #***** GL_EXT_blend_logic_op *****//
-  #***** GL_EXT_blend_minmax *****//
-const 
-  GL_FUNC_ADD_EXT* = 0x00008006
-  GL_MIN_EXT* = 0x00008007
-  GL_MAX_EXT* = 0x00008008
-  constGL_BLEND_EQUATION_EXT* = 0x00008009
-
-proc glBlendEquationEXT*(mode: TGLenum){.dynlib: dllname, 
-    importc: "glBlendEquationEXT".}
-  #***** GL_EXT_blend_subtract *****//
-const 
-  GL_FUNC_SUBTRACT_EXT* = 0x0000800A
-  GL_FUNC_REVERSE_SUBTRACT_EXT* = 0x0000800B
-  #***** GL_EXT_clip_volume_hint *****//
-
-const 
-  GL_CLIP_VOLUME_CLIPPING_HINT_EXT* = 0x000080F0
-  #***** GL_EXT_color_subtable *****//
-
-proc glColorSubTableEXT*(target: TGLenum, start: TGLsizei, count: TGLsizei, 
-                         format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorSubTableEXT".}
-proc glCopyColorSubTableEXT*(target: TGLenum, start: TGLsizei, x: TGLint, 
-                             y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorSubTableEXT".}
-  #***** GL_EXT_compiled_vertex_array *****//
-const 
-  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT* = 0x000081A8
-  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT* = 0x000081A9
-
-proc glLockArraysEXT*(first: TGLint, count: TGLsizei){.dynlib: dllname, 
-    importc: "glLockArraysEXT".}
-proc glUnlockArraysEXT*(){.dynlib: dllname, importc: "glUnlockArraysEXT".}
-  #***** GL_EXT_convolution *****//
-const 
-  GL_CONVOLUTION_1D_EXT* = 0x00008010
-  GL_CONVOLUTION_2D_EXT* = 0x00008011
-  GL_SEPARABLE_2D_EXT* = 0x00008012
-  GL_CONVOLUTION_BORDER_MODE_EXT* = 0x00008013
-  GL_CONVOLUTION_FILTER_SCALE_EXT* = 0x00008014
-  GL_CONVOLUTION_FILTER_BIAS_EXT* = 0x00008015
-  GL_REDUCE_EXT* = 0x00008016
-  GL_CONVOLUTION_FORMAT_EXT* = 0x00008017
-  GL_CONVOLUTION_WIDTH_EXT* = 0x00008018
-  GL_CONVOLUTION_HEIGHT_EXT* = 0x00008019
-  GL_MAX_CONVOLUTION_WIDTH_EXT* = 0x0000801A
-  GL_MAX_CONVOLUTION_HEIGHT_EXT* = 0x0000801B
-  GL_POST_CONVOLUTION_RED_SCALE_EXT* = 0x0000801C
-  GL_POST_CONVOLUTION_GREEN_SCALE_EXT* = 0x0000801D
-  GL_POST_CONVOLUTION_BLUE_SCALE_EXT* = 0x0000801E
-  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT* = 0x0000801F
-  GL_POST_CONVOLUTION_RED_BIAS_EXT* = 0x00008020
-  GL_POST_CONVOLUTION_GREEN_BIAS_EXT* = 0x00008021
-  GL_POST_CONVOLUTION_BLUE_BIAS_EXT* = 0x00008022
-  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT* = 0x00008023
-
-proc glConvolutionFilter1DEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, format: TGLenum, 
-                               thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glConvolutionFilter1DEXT".}
-proc glConvolutionFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, height: TGLsizei, 
-                               format: TGLenum, thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glConvolutionFilter2DEXT".}
-proc glCopyConvolutionFilter1DEXT*(target: TGLenum, internalformat: TGLenum, 
-                                   x: TGLint, y: TGLint, width: TGLsizei){.
-    dynlib: dllname, importc: "glCopyConvolutionFilter1DEXT".}
-proc glCopyConvolutionFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                                   x: TGLint, y: TGLint, width: TGLsizei, 
-                                   height: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyConvolutionFilter2DEXT".}
-proc glGetConvolutionFilterEXT*(target: TGLenum, format: TGLenum, 
-                                thetype: TGLenum, image: PGLvoid){.
-    dynlib: dllname, importc: "glGetConvolutionFilterEXT".}
-proc glSeparableFilter2DEXT*(target: TGLenum, internalformat: TGLenum, 
-                             width: TGLsizei, height: TGLsizei, format: TGLenum, 
-                             thetype: TGLenum, row: PGLvoid, column: PGLvoid){.
-    dynlib: dllname, importc: "glSeparableFilter2DEXT".}
-proc glGetSeparableFilterEXT*(target: TGLenum, format: TGLenum, 
-                              thetype: TGLenum, row: PGLvoid, column: PGLvoid, 
-                              span: PGLvoid){.dynlib: dllname, 
-    importc: "glGetSeparableFilterEXT".}
-proc glConvolutionParameteriEXT*(target: TGLenum, pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glConvolutionParameteriEXT".}
-proc glConvolutionParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLint){.dynlib: dllname, 
-    importc: "glConvolutionParameterivEXT".}
-proc glConvolutionParameterfEXT*(target: TGLenum, pname: TGLenum, 
-                                 param: TGLfloat){.dynlib: dllname, 
-    importc: "glConvolutionParameterfEXT".}
-proc glConvolutionParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                  params: PGLfloat){.dynlib: dllname, 
-    importc: "glConvolutionParameterfvEXT".}
-proc glGetConvolutionParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                     params: PGLint){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterivEXT".}
-proc glGetConvolutionParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                     params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetConvolutionParameterfvEXT".}
-  #***** GL_EXT_fog_coord *****//
-const 
-  GL_FOG_COORDINATE_SOURCE_EXT* = 0x00008450
-  GL_FOG_COORDINATE_EXT* = 0x00008451
-  GL_FRAGMENT_DEPTH_EXT* = 0x00008452
-  GL_CURRENT_FOG_COORDINATE_EXT* = 0x00008453
-  GL_FOG_COORDINATE_ARRAY_TYPE_EXT* = 0x00008454
-  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT* = 0x00008455
-  GL_FOG_COORDINATE_ARRAY_POINTER_EXT* = 0x00008456
-  GL_FOG_COORDINATE_ARRAY_EXT* = 0x00008457
-
-proc glFogCoordfEXfloat*(coord: TGLfloat){.dynlib: dllname, 
-    importc: "glFogCoordfEXfloat".}
-proc glFogCoorddEXdouble*(coord: TGLdouble){.dynlib: dllname, 
-    importc: "glFogCoorddEXdouble".}
-proc glFogCoordfvEXfloat*(coord: TGLfloat){.dynlib: dllname, 
-    importc: "glFogCoordfvEXfloat".}
-proc glFogCoorddvEXdouble*(coord: TGLdouble){.dynlib: dllname, 
-    importc: "glFogCoorddvEXdouble".}
-proc glFogCoordPointerEXT*(thetype: TGLenum, stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFogCoordPointerEXT".}
-  #***** GL_EXT_histogram *****//
-const 
-  constGL_HISTOGRAM_EXT* = 0x00008024
-  GL_PROXY_HISTOGRAM_EXT* = 0x00008025
-  GL_HISTOGRAM_WIDTH_EXT* = 0x00008026
-  GL_HISTOGRAM_FORMAT_EXT* = 0x00008027
-  GL_HISTOGRAM_RED_SIZE_EXT* = 0x00008028
-  GL_HISTOGRAM_GREEN_SIZE_EXT* = 0x00008029
-  GL_HISTOGRAM_BLUE_SIZE_EXT* = 0x0000802A
-  GL_HISTOGRAM_ALPHA_SIZE_EXT* = 0x0000802B
-  GL_HISTOGRAM_LUMINANCE_SIZE_EXT* = 0x0000802C
-  GL_HISTOGRAM_SINK_EXT* = 0x0000802D
-  constGL_MINMAX_EXT* = 0x0000802E
-  GL_MINMAX_FORMAT_EXT* = 0x0000802F
-  GL_MINMAX_SINK_EXT* = 0x00008030
-
-proc glHistogramEXT*(target: TGLenum, width: TGLsizei, internalformat: TGLenum, 
-                     sink: TGLboolean){.dynlib: dllname, 
-                                        importc: "glHistogramEXT".}
-proc glResetHistogramEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetHistogramEXT".}
-proc glGetHistogramEXT*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                        thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetHistogramEXT".}
-proc glGetHistogramParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                   params: PGLint){.dynlib: dllname, 
-    importc: "glGetHistogramParameterivEXT".}
-proc glGetHistogramParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                   params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetHistogramParameterfvEXT".}
-proc glMinmaxEXT*(target: TGLenum, internalformat: TGLenum, sink: TGLboolean){.
-    dynlib: dllname, importc: "glMinmaxEXT".}
-proc glResetMinmaxEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glResetMinmaxEXT".}
-proc glGetMinmaxEXT*(target: TGLenum, reset: TGLboolean, format: TGLenum, 
-                     thetype: TGLenum, values: PGLvoid){.dynlib: dllname, 
-    importc: "glGetMinmaxEXT".}
-proc glGetMinmaxParameterivEXT*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMinmaxParameterivEXT".}
-proc glGetMinmaxParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetMinmaxParameterfvEXT".}
-  #***** GL_EXT_multi_draw_arrays *****//
-proc glMultiDrawArraysEXT*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                           primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawArraysEXT".}
-proc glMultiDrawElementsEXT*(mode: TGLenum, count: PGLsizei, thetype: TGLenum, 
-                             indices: PGLvoid, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElementsEXT".}
-  #***** GL_EXT_packed_pixels *****//
-const 
-  GL_UNSIGNED_BYTE_3_3_2_EXT* = 0x00008032
-  GL_UNSIGNED_SHORT_4_4_4_4_EXT* = 0x00008033
-  GL_UNSIGNED_SHORT_5_5_5_1_EXT* = 0x00008034
-  GL_UNSIGNED_INT_8_8_8_8_EXT* = 0x00008035
-  GL_UNSIGNED_INT_10_10_10_2_EXT* = 0x00008036
-  #***** GL_EXT_paletted_texture *****//
-
-const 
-  GL_COLOR_INDEX1_EXT* = 0x000080E2
-  GL_COLOR_INDEX2_EXT* = 0x000080E3
-  GL_COLOR_INDEX4_EXT* = 0x000080E4
-  GL_COLOR_INDEX8_EXT* = 0x000080E5
-  GL_COLOR_INDEX12_EXT* = 0x000080E6
-  GL_COLOR_INDEX16_EXT* = 0x000080E7
-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF
-  GL_TEXTURE_INDEX_SIZE_EXT* = 0x000080ED
-  GL_TEXTURE_1D* = 0x00000DE0
-  GL_TEXTURE_2D* = 0x00000DE1
-  GL_TEXTURE_3D_EXT* = 0x0000806F # GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-  GL_PROXY_TEXTURE_1D* = 0x00008063
-  GL_PROXY_TEXTURE_2D* = 0x00008064
-  GL_PROXY_TEXTURE_3D_EXT* = 0x00008070 # GL_PROXY_TEXTURE_CUBE_MAP_ARB  { already defined }
-                                        # GL_TEXTURE_1D  { already defined }
-                                        # GL_TEXTURE_2D  { already defined }
-                                        # GL_TEXTURE_3D_EXT  { already defined }
-                                        # GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-
-proc glColorTableEXT*(target: TGLenum, internalFormat: TGLenum, width: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glColorTableEXT".}
-  # glColorSubTableEXT  { already defined }
-proc glGetColorTableEXT*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetColorTableEXT".}
-proc glGetColorTableParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLint){.dynlib: dllname, 
-    importc: "glGetColorTableParameterivEXT".}
-proc glGetColorTableParameterfvEXT*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfvEXT".}
-  #***** GL_EXT_point_parameters *****//
-const 
-  GL_POINT_SIZE_MIN_EXT* = 0x00008126
-  GL_POINT_SIZE_MAX_EXT* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE_EXT* = 0x00008128
-  GL_DISTANCE_ATTENUATION_EXT* = 0x00008129
-
-proc glPointParameterfEXT*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfEXT".}
-proc glPointParameterfvEXT*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfvEXT".}
-  #***** GL_EXT_polygon_offset *****//
-const 
-  constGL_POLYGON_OFFSET_EXT* = 0x00008037
-  GL_POLYGON_OFFSET_FACTOR_EXT* = 0x00008038
-  GL_POLYGON_OFFSET_BIAS_EXT* = 0x00008039
-
-proc glPolygonOffsetEXT*(factor: TGLfloat, bias: TGLfloat){.dynlib: dllname, 
-    importc: "glPolygonOffsetEXT".}
-  #***** GL_EXT_secondary_color *****//
-const 
-  GL_COLOR_SUM_EXT* = 0x00008458
-  GL_CURRENT_SECONDARY_COLOR_EXT* = 0x00008459
-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT* = 0x0000845A
-  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT* = 0x0000845B
-  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT* = 0x0000845C
-  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT* = 0x0000845D
-  GL_SECONDARY_COLOR_ARRAY_EXT* = 0x0000845E
-
-proc glSecondaryColor3bEXT*(components: TGLbyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3bEXT".}
-proc glSecondaryColor3sEXT*(components: TGLshort){.dynlib: dllname, 
-    importc: "glSecondaryColor3sEXT".}
-proc glSecondaryColor3iEXT*(components: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColor3iEXT".}
-proc glSecondaryColor3fEXT*(components: TGLfloat){.dynlib: dllname, 
-    importc: "glSecondaryColor3fEXT".}
-proc glSecondaryColor3dEXT*(components: TGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dEXT".}
-proc glSecondaryColor3ubEXT*(components: TGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubEXT".}
-proc glSecondaryColor3usEXT*(components: TGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usEXT".}
-proc glSecondaryColor3uiEXT*(components: TGLuint){.dynlib: dllname, 
-    importc: "glSecondaryColor3uiEXT".}
-proc glSecondaryColor3bvEXT*(components: TGLbyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3bvEXT".}
-proc glSecondaryColor3svEXT*(components: TGLshort){.dynlib: dllname, 
-    importc: "glSecondaryColor3svEXT".}
-proc glSecondaryColor3ivEXT*(components: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColor3ivEXT".}
-proc glSecondaryColor3fvEXT*(components: TGLfloat){.dynlib: dllname, 
-    importc: "glSecondaryColor3fvEXT".}
-proc glSecondaryColor3dvEXT*(components: TGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dvEXT".}
-proc glSecondaryColor3ubvEXT*(components: TGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubvEXT".}
-proc glSecondaryColor3usvEXT*(components: TGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usvEXT".}
-proc glSecondaryColor3uivEXT*(components: TGLuint){.dynlib: dllname, 
-    importc: "glSecondaryColor3uivEXT".}
-proc glSecondaryColorPointerEXT*(size: TGLint, thetype: TGLenum, 
-                                 stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glSecondaryColorPointerEXT".}
-  #***** GL_EXT_separate_specular_color *****//
-const 
-  GL_LIGHT_MODEL_COLOR_CONTROL_EXT* = 0x000081F8
-  GL_SINGLE_COLOR_EXT* = 0x000081F9
-  GL_SEPARATE_SPECULAR_COLOR_EXT* = 0x000081FA
-  #***** GL_EXT_shadow_funcs *****//
-  #***** GL_EXT_shared_texture_palette *****//
-
-const 
-  GL_SHARED_TEXTURE_PALETTE_EXT* = 0x000081FB
-  #***** GL_EXT_stencil_two_side *****//
-
-const 
-  GL_STENCIL_TEST_TWO_SIDE_EXT* = 0x00008910
-  constGL_ACTIVE_STENCIL_FACE_EXT* = 0x00008911
-
-proc glActiveStencilFaceEXT*(face: TGLenum){.dynlib: dllname, 
-    importc: "glActiveStencilFaceEXT".}
-  #***** GL_EXT_stencil_wrap *****//
-const 
-  GL_INCR_WRAP_EXT* = 0x00008507
-  GL_DECR_WRAP_EXT* = 0x00008508
-  #***** GL_EXT_subtexture *****//
-
-proc glTexSubImage1DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         width: TGLsizei, format: TGLenum, thetype: TGLenum, 
-                         pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage1DEXT".}
-proc glTexSubImage2DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         yoffset: TGLint, width: TGLsizei, height: TGLsizei, 
-                         format: TGLenum, thetype: TGLenum, pixels: PGLvoid){.
-    dynlib: dllname, importc: "glTexSubImage2DEXT".}
-proc glTexSubImage3DEXT*(target: TGLenum, level: TGLint, xoffset: TGLint, 
-                         yoffset: TGLint, zoffset: TGLint, width: TGLsizei, 
-                         height: TGLsizei, depth: TGLsizei, format: TGLenum, 
-                         thetype: TGLenum, pixels: PGLvoid){.dynlib: dllname, 
-    importc: "glTexSubImage3DEXT".}
-  #***** GL_EXT_texture3D *****//
-const 
-  GL_PACK_SKIP_IMAGES_EXT* = 0x0000806B
-  GL_PACK_IMAGE_HEIGHT_EXT* = 0x0000806C
-  GL_UNPACK_SKIP_IMAGES_EXT* = 0x0000806D
-  GL_UNPACK_IMAGE_HEIGHT_EXT* = 0x0000806E # GL_TEXTURE_3D_EXT  { already defined }
-                                           # GL_PROXY_TEXTURE_3D_EXT  { already defined }
-  GL_TEXTURE_DEPTH_EXT* = 0x00008071
-  GL_TEXTURE_WRAP_R_EXT* = 0x00008072
-  GL_MAX_3D_TEXTURE_SIZE_EXT* = 0x00008073
-
-proc glTexImage3DEXT*(target: TGLenum, level: TGLint, internalformat: TGLenum, 
-                      width: TGLsizei, height: TGLsizei, depth: TGLsizei, 
-                      border: TGLint, format: TGLenum, thetype: TGLenum, 
-                      pixels: PGLvoid){.dynlib: dllname, 
-                                        importc: "glTexImage3DEXT".}
-  #***** GL_EXT_texture_compression_s3tc *****//
-const 
-  GL_COMPRESSED_RGB_S3TC_DXT1_EXT* = 0x000083F0
-  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT* = 0x000083F1
-  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT* = 0x000083F2
-  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT* = 0x000083F3
-  #***** GL_EXT_texture_env_add *****//
-  #***** GL_EXT_texture_env_combine *****//
-
-const 
-  GL_COMBINE_EXT* = 0x00008570
-  GL_COMBINE_RGB_EXT* = 0x00008571
-  GL_COMBINE_ALPHA_EXT* = 0x00008572
-  GL_SOURCE0_RGB_EXT* = 0x00008580
-  GL_SOURCE1_RGB_EXT* = 0x00008581
-  GL_SOURCE2_RGB_EXT* = 0x00008582
-  GL_SOURCE0_ALPHA_EXT* = 0x00008588
-  GL_SOURCE1_ALPHA_EXT* = 0x00008589
-  GL_SOURCE2_ALPHA_EXT* = 0x0000858A
-  GL_OPERAND0_RGB_EXT* = 0x00008590
-  GL_OPERAND1_RGB_EXT* = 0x00008591
-  GL_OPERAND2_RGB_EXT* = 0x00008592
-  GL_OPERAND0_ALPHA_EXT* = 0x00008598
-  GL_OPERAND1_ALPHA_EXT* = 0x00008599
-  GL_OPERAND2_ALPHA_EXT* = 0x0000859A
-  GL_RGB_SCALE_EXT* = 0x00008573
-  GL_ADD_SIGNED_EXT* = 0x00008574
-  GL_INTERPOLATE_EXT* = 0x00008575
-  GL_CONSTANT_EXT* = 0x00008576
-  GL_PRIMARY_COLOR_EXT* = 0x00008577
-  GL_PREVIOUS_EXT* = 0x00008578
-  #***** GL_EXT_texture_env_dot3 *****//
-
-const 
-  GL_DOT3_RGB_EXT* = 0x00008740
-  GL_DOT3_RGBA_EXT* = 0x00008741
-  #***** GL_EXT_texture_filter_anisotropic *****//
-
-const 
-  GL_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FE
-  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FF
-  #***** GL_EXT_texture_lod_bias *****//
-
-const 
-  GL_TEXTURE_FILTER_CONTROL_EXT* = 0x00008500
-  GL_TEXTURE_LOD_BIAS_EXT* = 0x00008501
-  GL_MAX_TEXTURE_LOD_BIAS_EXT* = 0x000084FD
-  #***** GL_EXT_texture_object *****//
-
-const 
-  GL_TEXTURE_PRIORITY_EXT* = 0x00008066
-  GL_TEXTURE_RESIDENT_EXT* = 0x00008067
-  GL_TEXTURE_1D_BINDING_EXT* = 0x00008068
-  GL_TEXTURE_2D_BINDING_EXT* = 0x00008069
-  GL_TEXTURE_3D_BINDING_EXT* = 0x0000806A
-
-proc glGenTexturesEXT*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glGenTexturesEXT".}
-proc glDeleteTexturesEXT*(n: TGLsizei, textures: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteTexturesEXT".}
-proc glBindTextureEXT*(target: TGLenum, texture: TGLuint){.dynlib: dllname, 
-    importc: "glBindTextureEXT".}
-proc glPrioritizeTexturesEXT*(n: TGLsizei, textures: PGLuint, 
-                              priorities: PGLclampf){.dynlib: dllname, 
-    importc: "glPrioritizeTexturesEXT".}
-proc glAreTexturesResidentEXT*(n: TGLsizei, textures: PGLuint, 
-                               residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreTexturesResidentEXT".}
-proc glIsTextureEXT*(texture: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsTextureEXT".}
-  #***** GL_EXT_vertex_array *****//
-const 
-  GL_VERTEX_ARRAY_EXT* = 0x00008074
-  GL_NORMAL_ARRAY_EXT* = 0x00008075
-  GL_COLOR_ARRAY_EXT* = 0x00008076
-  GL_INDEX_ARRAY_EXT* = 0x00008077
-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078
-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079
-  GL_DOUBLE_EXT* = 0x0000140A
-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A
-  GL_VERTEX_ARRAY_TYPE_EXT* = 0x0000807B
-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C
-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D
-  GL_NORMAL_ARRAY_TYPE_EXT* = 0x0000807E
-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F
-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080
-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081
-  GL_COLOR_ARRAY_TYPE_EXT* = 0x00008082
-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083
-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084
-  GL_INDEX_ARRAY_TYPE_EXT* = 0x00008085
-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086
-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT* = 0x00008089
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D
-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E
-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F
-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090
-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093
-
-proc glArrayElementEXT*(i: TGLint){.dynlib: dllname, 
-                                    importc: "glArrayElementEXT".}
-proc glDrawArraysEXT*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawArraysEXT".}
-proc glVertexPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                         count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexPointerEXT".}
-proc glNormalPointerEXT*(thetype: TGLenum, stride: TGLsizei, count: TGLsizei, 
-                         pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glNormalPointerEXT".}
-proc glColorPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                        count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glColorPointerEXT".}
-proc glIndexPointerEXT*(thetype: TGLenum, stride: TGLsizei, count: TGLsizei, 
-                        pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glIndexPointerEXT".}
-proc glTexCoordPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                           count: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glTexCoordPointerEXT".}
-proc glEdgeFlagPointerEXT*(stride: TGLsizei, count: TGLsizei, 
-                           pointer: PGLboolean){.dynlib: dllname, 
-    importc: "glEdgeFlagPointerEXT".}
-proc glGetPointervEXT*(pname: TGLenum, params: PGLvoid){.dynlib: dllname, 
-    importc: "glGetPointervEXT".}
-  #***** GL_EXT_vertex_shader *****//
-const 
-  GL_VERTEX_SHADER_EXT* = 0x00008780
-  GL_VARIANT_VALUE_EXT* = 0x000087E4
-  GL_VARIANT_DATATYPE_EXT* = 0x000087E5
-  GL_VARIANT_ARRAY_STRIDE_EXT* = 0x000087E6
-  GL_VARIANT_ARRAY_TYPE_EXT* = 0x000087E7
-  GL_VARIANT_ARRAY_EXT* = 0x000087E8
-  GL_VARIANT_ARRAY_POINTER_EXT* = 0x000087E9
-  GL_INVARIANT_VALUE_EXT* = 0x000087EA
-  GL_INVARIANT_DATATYPE_EXT* = 0x000087EB
-  GL_LOCAL_CONSTANT_VALUE_EXT* = 0x000087EC
-  GL_LOCAL_CONSTANT_DATATYPE_EXT* = 0x000087ED
-  GL_OP_INDEX_EXT* = 0x00008782
-  GL_OP_NEGATE_EXT* = 0x00008783
-  GL_OP_DOT3_EXT* = 0x00008784
-  GL_OP_DOT4_EXT* = 0x00008785
-  GL_OP_MUL_EXT* = 0x00008786
-  GL_OP_ADD_EXT* = 0x00008787
-  GL_OP_MADD_EXT* = 0x00008788
-  GL_OP_FRAC_EXT* = 0x00008789
-  GL_OP_MAX_EXT* = 0x0000878A
-  GL_OP_MIN_EXT* = 0x0000878B
-  GL_OP_SET_GE_EXT* = 0x0000878C
-  GL_OP_SET_LT_EXT* = 0x0000878D
-  GL_OP_CLAMP_EXT* = 0x0000878E
-  GL_OP_FLOOR_EXT* = 0x0000878F
-  GL_OP_ROUND_EXT* = 0x00008790
-  GL_OP_EXP_BASE_2_EXT* = 0x00008791
-  GL_OP_LOG_BASE_2_EXT* = 0x00008792
-  GL_OP_POWER_EXT* = 0x00008793
-  GL_OP_RECIP_EXT* = 0x00008794
-  GL_OP_RECIP_SQRT_EXT* = 0x00008795
-  GL_OP_SUB_EXT* = 0x00008796
-  GL_OP_CROSS_PRODUCT_EXT* = 0x00008797
-  GL_OP_MULTIPLY_MATRIX_EXT* = 0x00008798
-  GL_OP_MOV_EXT* = 0x00008799
-  GL_OUTPUT_VERTEX_EXT* = 0x0000879A
-  GL_OUTPUT_COLOR0_EXT* = 0x0000879B
-  GL_OUTPUT_COLOR1_EXT* = 0x0000879C
-  GL_OUTPUT_TEXTURE_COORD0_EXT* = 0x0000879D
-  GL_OUTPUT_TEXTURE_COORD1_EXT* = 0x0000879E
-  GL_OUTPUT_TEXTURE_COORD2_EXT* = 0x0000879F
-  GL_OUTPUT_TEXTURE_COORD3_EXT* = 0x000087A0
-  GL_OUTPUT_TEXTURE_COORD4_EXT* = 0x000087A1
-  GL_OUTPUT_TEXTURE_COORD5_EXT* = 0x000087A2
-  GL_OUTPUT_TEXTURE_COORD6_EXT* = 0x000087A3
-  GL_OUTPUT_TEXTURE_COORD7_EXT* = 0x000087A4
-  GL_OUTPUT_TEXTURE_COORD8_EXT* = 0x000087A5
-  GL_OUTPUT_TEXTURE_COORD9_EXT* = 0x000087A6
-  GL_OUTPUT_TEXTURE_COORD10_EXT* = 0x000087A7
-  GL_OUTPUT_TEXTURE_COORD11_EXT* = 0x000087A8
-  GL_OUTPUT_TEXTURE_COORD12_EXT* = 0x000087A9
-  GL_OUTPUT_TEXTURE_COORD13_EXT* = 0x000087AA
-  GL_OUTPUT_TEXTURE_COORD14_EXT* = 0x000087AB
-  GL_OUTPUT_TEXTURE_COORD15_EXT* = 0x000087AC
-  GL_OUTPUT_TEXTURE_COORD16_EXT* = 0x000087AD
-  GL_OUTPUT_TEXTURE_COORD17_EXT* = 0x000087AE
-  GL_OUTPUT_TEXTURE_COORD18_EXT* = 0x000087AF
-  GL_OUTPUT_TEXTURE_COORD19_EXT* = 0x000087B0
-  GL_OUTPUT_TEXTURE_COORD20_EXT* = 0x000087B1
-  GL_OUTPUT_TEXTURE_COORD21_EXT* = 0x000087B2
-  GL_OUTPUT_TEXTURE_COORD22_EXT* = 0x000087B3
-  GL_OUTPUT_TEXTURE_COORD23_EXT* = 0x000087B4
-  GL_OUTPUT_TEXTURE_COORD24_EXT* = 0x000087B5
-  GL_OUTPUT_TEXTURE_COORD25_EXT* = 0x000087B6
-  GL_OUTPUT_TEXTURE_COORD26_EXT* = 0x000087B7
-  GL_OUTPUT_TEXTURE_COORD27_EXT* = 0x000087B8
-  GL_OUTPUT_TEXTURE_COORD28_EXT* = 0x000087B9
-  GL_OUTPUT_TEXTURE_COORD29_EXT* = 0x000087BA
-  GL_OUTPUT_TEXTURE_COORD30_EXT* = 0x000087BB
-  GL_OUTPUT_TEXTURE_COORD31_EXT* = 0x000087BC
-  GL_OUTPUT_FOG_EXT* = 0x000087BD
-  GL_SCALAR_EXT* = 0x000087BE
-  GL_VECTOR_EXT* = 0x000087BF
-  GL_MATRIX_EXT* = 0x000087C0
-  GL_VARIANT_EXT* = 0x000087C1
-  GL_INVARIANT_EXT* = 0x000087C2
-  GL_LOCAL_CONSTANT_EXT* = 0x000087C3
-  GL_LOCAL_EXT* = 0x000087C4
-  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087C5
-  GL_MAX_VERTEX_SHADER_VARIANTS_EXT* = 0x000087C6
-  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087C7
-  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087C8
-  GL_MAX_VERTEX_SHADER_LOCALS_EXT* = 0x000087C9
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CA
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT* = 0x000087CB
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087CC
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087CD
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT* = 0x000087CE
-  GL_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CF
-  GL_VERTEX_SHADER_VARIANTS_EXT* = 0x000087D0
-  GL_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087D1
-  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087D2
-  GL_VERTEX_SHADER_LOCALS_EXT* = 0x000087D3
-  GL_VERTEX_SHADER_BINDING_EXT* = 0x00008781
-  GL_VERTEX_SHADER_OPTIMIZED_EXT* = 0x000087D4
-  GL_X_EXT* = 0x000087D5
-  GL_Y_EXT* = 0x000087D6
-  GL_Z_EXT* = 0x000087D7
-  GL_W_EXT* = 0x000087D8
-  GL_NEGATIVE_X_EXT* = 0x000087D9
-  GL_NEGATIVE_Y_EXT* = 0x000087DA
-  GL_NEGATIVE_Z_EXT* = 0x000087DB
-  GL_NEGATIVE_W_EXT* = 0x000087DC
-  GL_ZERO_EXT* = 0x000087DD
-  GL_ONE_EXT* = 0x000087DE
-  GL_NEGATIVE_ONE_EXT* = 0x000087DF
-  GL_NORMALIZED_RANGE_EXT* = 0x000087E0
-  GL_FULL_RANGE_EXT* = 0x000087E1
-  GL_CURRENT_VERTEX_EXT* = 0x000087E2
-  GL_MVP_MATRIX_EXT* = 0x000087E3
-
-proc glBeginVertexShaderEXT*(){.dynlib: dllname, 
-                                importc: "glBeginVertexShaderEXT".}
-proc glEndVertexShaderEXT*(){.dynlib: dllname, importc: "glEndVertexShaderEXT".}
-proc glBindVertexShaderEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBindVertexShaderEXT".}
-proc glGenVertexShadersEXT*(range: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenVertexShadersEXT".}
-proc glDeleteVertexShaderEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteVertexShaderEXT".}
-proc glShaderOp1EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint){.dynlib: dllname, 
-    importc: "glShaderOp1EXT".}
-proc glShaderOp2EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint, arg2: TGLuint){.
-    dynlib: dllname, importc: "glShaderOp2EXT".}
-proc glShaderOp3EXT*(op: TGLenum, res: TGLuint, arg1: TGLuint, arg2: TGLuint, 
-                     arg3: TGLuint){.dynlib: dllname, importc: "glShaderOp3EXT".}
-proc glSwizzleEXT*(res: TGLuint, theIn: TGLuint, outX: TGLenum, outY: TGLenum, 
-                   outZ: TGLenum, outW: TGLenum){.dynlib: dllname, 
-    importc: "glSwizzleEXT".}
-proc glWriteMaskEXT*(res: TGLuint, theIn: TGLuint, outX: TGLenum, outY: TGLenum, 
-                     outZ: TGLenum, outW: TGLenum){.dynlib: dllname, 
-    importc: "glWriteMaskEXT".}
-proc glInsertComponentEXT*(res: TGLuint, src: TGLuint, num: TGLuint){.
-    dynlib: dllname, importc: "glInsertComponentEXT".}
-proc glExtractComponentEXT*(res: TGLuint, src: TGLuint, num: TGLuint){.
-    dynlib: dllname, importc: "glExtractComponentEXT".}
-proc glGenSymbolsEXT*(datatype: TGLenum, storagetype: TGLenum, range: TGLenum, 
-                      components: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenSymbolsEXT".}
-proc glSetInvariantEXT*(id: TGLuint, thetype: TGLenum, address: PGLvoid){.
-    dynlib: dllname, importc: "glSetInvariantEXT".}
-proc glSetLocalConstantEXT*(id: TGLuint, thetype: TGLenum, address: PGLvoid){.
-    dynlib: dllname, importc: "glSetLocalConstantEXT".}
-proc glVariantbvEXT*(id: TGLuint, address: PGLbyte){.dynlib: dllname, 
-    importc: "glVariantbvEXT".}
-proc glVariantsvEXT*(id: TGLuint, address: PGLshort){.dynlib: dllname, 
-    importc: "glVariantsvEXT".}
-proc glVariantivEXT*(id: TGLuint, address: PGLint){.dynlib: dllname, 
-    importc: "glVariantivEXT".}
-proc glVariantfvEXT*(id: TGLuint, address: PGLfloat){.dynlib: dllname, 
-    importc: "glVariantfvEXT".}
-proc glVariantdvEXT*(id: TGLuint, address: PGLdouble){.dynlib: dllname, 
-    importc: "glVariantdvEXT".}
-proc glVariantubvEXT*(id: TGLuint, address: PGLubyte){.dynlib: dllname, 
-    importc: "glVariantubvEXT".}
-proc glVariantusvEXT*(id: TGLuint, address: PGLushort){.dynlib: dllname, 
-    importc: "glVariantusvEXT".}
-proc glVariantuivEXT*(id: TGLuint, address: PGLuint){.dynlib: dllname, 
-    importc: "glVariantuivEXT".}
-proc glVariantPointerEXT*(id: TGLuint, thetype: TGLenum, stride: TGLuint, 
-                          address: PGLvoid){.dynlib: dllname, 
-    importc: "glVariantPointerEXT".}
-proc glEnableVariantClientStateEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glEnableVariantClientStateEXT".}
-proc glDisableVariantClientStateEXT*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDisableVariantClientStateEXT".}
-proc glBindLightParameterEXT*(light: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindLightParameterEXT".}
-proc glBindMaterialParameterEXT*(face: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindMaterialParameterEXT".}
-proc glBindTexGenParameterEXT*(theunit: TGLenum, coord: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindTexGenParameterEXT".}
-proc glBindTextureUnitParameterEXT*(theunit: TGLenum, value: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glBindTextureUnitParameterEXT".}
-proc glBindParameterEXT*(value: TGLenum): TGLuint{.dynlib: dllname, 
-    importc: "glBindParameterEXT".}
-proc glIsVariantEnabledEXT*(id: TGLuint, cap: TGLenum): TGLboolean{.
-    dynlib: dllname, importc: "glIsVariantEnabledEXT".}
-proc glGetVariantBooleanvEXT*(id: TGLuint, value: TGLenum, data: PGLboolean){.
-    dynlib: dllname, importc: "glGetVariantBooleanvEXT".}
-proc glGetVariantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetVariantIntegervEXT".}
-proc glGetVariantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetVariantFloatvEXT".}
-proc glGetVariantPointervEXT*(id: TGLuint, value: TGLenum, data: PGLvoid){.
-    dynlib: dllname, importc: "glGetVariantPointervEXT".}
-proc glGetInvariantBooleanvEXT*(id: TGLuint, value: TGLenum, data: PGLboolean){.
-    dynlib: dllname, importc: "glGetInvariantBooleanvEXT".}
-proc glGetInvariantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetInvariantIntegervEXT".}
-proc glGetInvariantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetInvariantFloatvEXT".}
-proc glGetLocalConstantBooleanvEXT*(id: TGLuint, value: TGLenum, 
-                                    data: PGLboolean){.dynlib: dllname, 
-    importc: "glGetLocalConstantBooleanvEXT".}
-proc glGetLocalConstantIntegervEXT*(id: TGLuint, value: TGLenum, data: PGLint){.
-    dynlib: dllname, importc: "glGetLocalConstantIntegervEXT".}
-proc glGetLocalConstantFloatvEXT*(id: TGLuint, value: TGLenum, data: PGLfloat){.
-    dynlib: dllname, importc: "glGetLocalConstantFloatvEXT".}
-  #***** GL_EXT_vertex_weighting *****//
-const 
-  GL_VERTEX_WEIGHTING_EXT* = 0x00008509
-  GL_MODELVIEW0_EXT* = 0x00001700
-  GL_MODELVIEW1_EXT* = 0x0000850A
-  GL_MODELVIEW0_MATRIX_EXT* = 0x00000BA6
-  GL_MODELVIEW1_MATRIX_EXT* = 0x00008506
-  GL_CURRENT_VERTEX_WEIGHT_EXT* = 0x0000850B
-  GL_VERTEX_WEIGHT_ARRAY_EXT* = 0x0000850C
-  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT* = 0x0000850D
-  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT* = 0x0000850E
-  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT* = 0x0000850F
-  GL_MODELVIEW0_STACK_DEPTH_EXT* = 0x00000BA3
-  GL_MODELVIEW1_STACK_DEPTH_EXT* = 0x00008502
-  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT* = 0x00008510
-
-proc glVertexWeightfEXT*(weight: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexWeightfEXT".}
-proc glVertexWeightfvEXT*(weight: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexWeightfvEXT".}
-proc glVertexWeightPointerEXT*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                               pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexWeightPointerEXT".}
-  #***** GL_HP_occlusion_test *****//
-const 
-  GL_OCCLUSION_TEST_HP* = 0x00008165
-  GL_OCCLUSION_TEST_RESULT_HP* = 0x00008166
-  #***** GL_NV_blend_square *****//
-  #***** GL_NV_copy_depth_to_color *****//
-
-const 
-  GL_DEPTH_STENCIL_TO_RGBA_NV* = 0x0000886E
-  GL_DEPTH_STENCIL_TO_BGRA_NV* = 0x0000886F
-  #***** GL_NV_depth_clamp *****//
-
-const 
-  GL_DEPTH_CLAMP_NV* = 0x0000864F
-  #***** GL_NV_evaluators *****//
-
-const 
-  GL_EVAL_2D_NV* = 0x000086C0
-  GL_EVAL_TRIANGULAR_2D_NV* = 0x000086C1
-  GL_MAP_TESSELLATION_NV* = 0x000086C2
-  GL_MAP_ATTRIB_U_ORDER_NV* = 0x000086C3
-  GL_MAP_ATTRIB_V_ORDER_NV* = 0x000086C4
-  GL_EVAL_FRACTIONAL_TESSELLATION_NV* = 0x000086C5
-  GL_EVAL_VERTEX_ATTRIB0_NV* = 0x000086C6
-  GL_EVAL_VERTEX_ATTRIB1_NV* = 0x000086C7
-  GL_EVAL_VERTEX_ATTRIB2_NV* = 0x000086C8
-  GL_EVAL_VERTEX_ATTRIB3_NV* = 0x000086C9
-  GL_EVAL_VERTEX_ATTRIB4_NV* = 0x000086CA
-  GL_EVAL_VERTEX_ATTRIB5_NV* = 0x000086CB
-  GL_EVAL_VERTEX_ATTRIB6_NV* = 0x000086CC
-  GL_EVAL_VERTEX_ATTRIB7_NV* = 0x000086CD
-  GL_EVAL_VERTEX_ATTRIB8_NV* = 0x000086CE
-  GL_EVAL_VERTEX_ATTRIB9_NV* = 0x000086CF
-  GL_EVAL_VERTEX_ATTRIB10_NV* = 0x000086D0
-  GL_EVAL_VERTEX_ATTRIB11_NV* = 0x000086D1
-  GL_EVAL_VERTEX_ATTRIB12_NV* = 0x000086D2
-  GL_EVAL_VERTEX_ATTRIB13_NV* = 0x000086D3
-  GL_EVAL_VERTEX_ATTRIB14_NV* = 0x000086D4
-  GL_EVAL_VERTEX_ATTRIB15_NV* = 0x000086D5
-  GL_MAX_MAP_TESSELLATION_NV* = 0x000086D6
-  GL_MAX_RATIONAL_EVAL_ORDER_NV* = 0x000086D7
-
-proc glMapControlPointsNV*(target: TGLenum, index: TGLuint, thetype: TGLenum, 
-                           ustride: TGLsizei, vstride: TGLsizei, uorder: TGLint, 
-                           vorder: TGLint, thepacked: TGLboolean, 
-                           points: PGLvoid){.dynlib: dllname, 
-    importc: "glMapControlPointsNV".}
-proc glMapParameterivNV*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glMapParameterivNV".}
-proc glMapParameterfvNV*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glMapParameterfvNV".}
-proc glGetMapControlPointsNV*(target: TGLenum, index: TGLuint, thetype: TGLenum, 
-                              ustride: TGLsizei, vstride: TGLsizei, 
-                              thepacked: TGLboolean, points: PGLvoid){.
-    dynlib: dllname, importc: "glGetMapControlPointsNV".}
-proc glGetMapParameterivNV*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMapParameterivNV".}
-proc glGetMapParameterfvNV*(target: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMapParameterfvNV".}
-proc glGetMapAttribParameterivNV*(target: TGLenum, index: TGLuint, 
-                                  pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetMapAttribParameterivNV".}
-proc glGetMapAttribParameterfvNV*(target: TGLenum, index: TGLuint, 
-                                  pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetMapAttribParameterfvNV".}
-proc glEvalMapsNV*(target: TGLenum, mode: TGLenum){.dynlib: dllname, 
-    importc: "glEvalMapsNV".}
-  #***** GL_NV_fence *****//
-const 
-  GL_ALL_COMPLETED_NV* = 0x000084F2
-  GL_FENCE_STATUS_NV* = 0x000084F3
-  GL_FENCE_CONDITION_NV* = 0x000084F4
-
-proc glGenFencesNV*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glGenFencesNV".}
-proc glDeleteFencesNV*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteFencesNV".}
-proc glSetFenceNV*(fence: TGLuint, condition: TGLenum){.dynlib: dllname, 
-    importc: "glSetFenceNV".}
-proc glTestFenceNV*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glTestFenceNV".}
-proc glFinishFenceNV*(fence: TGLuint){.dynlib: dllname, 
-                                       importc: "glFinishFenceNV".}
-proc glIsFenceNV*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFenceNV".}
-proc glGetFenceivNV*(fence: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetFenceivNV".}
-  #***** GL_NV_fog_distance *****//
-const 
-  GL_FOG_DISTANCE_MODE_NV* = 0x0000855A
-  GL_EYE_RADIAL_NV* = 0x0000855B
-  GL_EYE_PLANE_ABSOLUTE_NV* = 0x0000855C
-  #***** GL_NV_light_max_exponent *****//
-
-const 
-  GL_MAX_SHININESS_NV* = 0x00008504
-  GL_MAX_SPOT_EXPONENT_NV* = 0x00008505
-  #***** GL_NV_multisample_filter_hint *****//
-
-const 
-  GL_MULTISAMPLE_FILTER_HINT_NV* = 0x00008534
-  #***** GL_NV_occlusion_query *****//
-  # GL_OCCLUSION_TEST_HP  { already defined }
-  # GL_OCCLUSION_TEST_RESULT_HP  { already defined }
-
-const 
-  GL_PIXEL_COUNTER_BITS_NV* = 0x00008864
-  GL_CURRENT_OCCLUSION_QUERY_ID_NV* = 0x00008865
-  GL_PIXEL_COUNT_NV* = 0x00008866
-  GL_PIXEL_COUNT_AVAILABLE_NV* = 0x00008867
-
-proc glGenOcclusionQueriesNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenOcclusionQueriesNV".}
-proc glDeleteOcclusionQueriesNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteOcclusionQueriesNV".}
-proc glIsOcclusionQueryNV*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsOcclusionQueryNV".}
-proc glBeginOcclusionQueryNV*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginOcclusionQueryNV".}
-proc glEndOcclusionQueryNV*(){.dynlib: dllname, importc: "glEndOcclusionQueryNV".}
-proc glGetOcclusionQueryivNV*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetOcclusionQueryivNV".}
-proc glGetOcclusionQueryuivNV*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetOcclusionQueryuivNV".}
-  #***** GL_NV_packed_depth_stencil *****//
-const 
-  GL_DEPTH_STENCIL_NV* = 0x000084F9
-  GL_UNSIGNED_INT_24_8_NV* = 0x000084FA
-  #***** GL_NV_point_sprite *****//
-
-const 
-  GL_POINT_SPRITE_NV* = 0x00008861
-  GL_COORD_REPLACE_NV* = 0x00008862
-  GL_POINT_SPRITE_R_MODE_NV* = 0x00008863
-
-proc glPointParameteriNV*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPointParameteriNV".}
-proc glPointParameterivNV*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glPointParameterivNV".}
-  #***** GL_NV_register_combiners *****//
-const 
-  GL_REGISTER_COMBINERS_NV* = 0x00008522
-  GL_COMBINER0_NV* = 0x00008550
-  GL_COMBINER1_NV* = 0x00008551
-  GL_COMBINER2_NV* = 0x00008552
-  GL_COMBINER3_NV* = 0x00008553
-  GL_COMBINER4_NV* = 0x00008554
-  GL_COMBINER5_NV* = 0x00008555
-  GL_COMBINER6_NV* = 0x00008556
-  GL_COMBINER7_NV* = 0x00008557
-  GL_VARIABLE_A_NV* = 0x00008523
-  GL_VARIABLE_B_NV* = 0x00008524
-  GL_VARIABLE_C_NV* = 0x00008525
-  GL_VARIABLE_D_NV* = 0x00008526
-  GL_VARIABLE_E_NV* = 0x00008527
-  GL_VARIABLE_F_NV* = 0x00008528
-  GL_VARIABLE_G_NV* = 0x00008529
-  GL_CONSTANT_COLOR0_NV* = 0x0000852A
-  GL_CONSTANT_COLOR1_NV* = 0x0000852B
-  GL_PRIMARY_COLOR_NV* = 0x0000852C
-  GL_SECONDARY_COLOR_NV* = 0x0000852D
-  GL_SPARE0_NV* = 0x0000852E
-  GL_SPARE1_NV* = 0x0000852F
-  GL_UNSIGNED_IDENTITY_NV* = 0x00008536
-  GL_UNSIGNED_INVERT_NV* = 0x00008537
-  GL_EXPAND_NORMAL_NV* = 0x00008538
-  GL_EXPAND_NEGATE_NV* = 0x00008539
-  GL_HALF_BIAS_NORMAL_NV* = 0x0000853A
-  GL_HALF_BIAS_NEGATE_NV* = 0x0000853B
-  GL_SIGNED_IDENTITY_NV* = 0x0000853C
-  GL_SIGNED_NEGATE_NV* = 0x0000853D
-  GL_E_TIMES_F_NV* = 0x00008531
-  GL_SPARE0_PLUS_SECONDARY_COLOR_NV* = 0x00008532
-  GL_SCALE_BY_TWO_NV* = 0x0000853E
-  GL_SCALE_BY_FOUR_NV* = 0x0000853F
-  GL_SCALE_BY_ONE_HALF_NV* = 0x00008540
-  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV* = 0x00008541
-  GL_DISCARD_NV* = 0x00008530
-  constGL_COMBINER_INPUT_NV* = 0x00008542
-  GL_COMBINER_MAPPING_NV* = 0x00008543
-  GL_COMBINER_COMPONENT_USAGE_NV* = 0x00008544
-  GL_COMBINER_AB_DOT_PRODUCT_NV* = 0x00008545
-  GL_COMBINER_CD_DOT_PRODUCT_NV* = 0x00008546
-  GL_COMBINER_MUX_SUM_NV* = 0x00008547
-  GL_COMBINER_SCALE_NV* = 0x00008548
-  GL_COMBINER_BIAS_NV* = 0x00008549
-  GL_COMBINER_AB_OUTPUT_NV* = 0x0000854A
-  GL_COMBINER_CD_OUTPUT_NV* = 0x0000854B
-  GL_COMBINER_SUM_OUTPUT_NV* = 0x0000854C
-  GL_NUM_GENERAL_COMBINERS_NV* = 0x0000854E
-  GL_COLOR_SUM_CLAMP_NV* = 0x0000854F
-  GL_MAX_GENERAL_COMBINERS_NV* = 0x0000854D
-
-proc glCombinerParameterfvNV*(pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glCombinerParameterfvNV".}
-proc glCombinerParameterivNV*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glCombinerParameterivNV".}
-proc glCombinerParameterfNV*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glCombinerParameterfNV".}
-proc glCombinerParameteriNV*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glCombinerParameteriNV".}
-proc glCombinerInputNV*(stage: TGLenum, portion: TGLenum, variable: TGLenum, 
-                        input: TGLenum, mapping: TGLenum, 
-                        componentUsage: TGLenum){.dynlib: dllname, 
-    importc: "glCombinerInputNV".}
-proc glCombinerOutputNV*(stage: TGLenum, portion: TGLenum, abOutput: TGLenum, 
-                         cdOutput: TGLenum, sumOutput: TGLenum, scale: TGLenum, 
-                         bias: TGLenum, abDotProduct: TGLboolean, 
-                         cdDotProduct: TGLboolean, muxSum: TGLboolean){.
-    dynlib: dllname, importc: "glCombinerOutputNV".}
-proc glFinalCombinerInputNV*(variable: TGLenum, input: TGLenum, 
-                             mapping: TGLenum, componentUsage: TGLenum){.
-    dynlib: dllname, importc: "glFinalCombinerInputNV".}
-proc glGetCombinerInputParameterfvNV*(stage: TGLenum, portion: TGLenum, 
-                                      variable: TGLenum, pname: TGLenum, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetCombinerInputParameterfvNV".}
-proc glGetCombinerInputParameterivNV*(stage: TGLenum, portion: TGLenum, 
-                                      variable: TGLenum, pname: TGLenum, 
-                                      params: PGLint){.dynlib: dllname, 
-    importc: "glGetCombinerInputParameterivNV".}
-proc glGetCombinerOutputParameterfvNV*(stage: TGLenum, portion: TGLenum, 
-                                       pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetCombinerOutputParameterfvNV".}
-proc glGetCombinerOutputParameterivNV*(stage: TGLenum, portion: TGLenum, 
-                                       pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetCombinerOutputParameterivNV".}
-proc glGetFinalCombinerInputParameterfvNV*(variable: TGLenum, pname: TGLenum, 
-    params: PGLfloat){.dynlib: dllname, 
-                       importc: "glGetFinalCombinerInputParameterfvNV".}
-proc glGetFinalCombinerInputParameterivNV*(variable: TGLenum, pname: TGLenum, 
-    params: PGLint){.dynlib: dllname, 
-                     importc: "glGetFinalCombinerInputParameterivNV".}
-  #***** GL_NV_register_combiners2 *****//
-const 
-  GL_PER_STAGE_CONSTANTS_NV* = 0x00008535
-
-proc glCombinerStageParameterfvNV*(stage: TGLenum, pname: TGLenum, 
-                                   params: PGLfloat){.dynlib: dllname, 
-    importc: "glCombinerStageParameterfvNV".}
-proc glGetCombinerStageParameterfvNV*(stage: TGLenum, pname: TGLenum, 
-                                      params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetCombinerStageParameterfvNV".}
-  #***** GL_NV_texgen_emboss *****//
-const 
-  GL_EMBOSS_MAP_NV* = 0x0000855F
-  GL_EMBOSS_LIGHT_NV* = 0x0000855D
-  GL_EMBOSS_CONSTANT_NV* = 0x0000855E
-  #***** GL_NV_texgen_reflection *****//
-
-const 
-  GL_NORMAL_MAP_NV* = 0x00008511
-  GL_REFLECTION_MAP_NV* = 0x00008512
-  #***** GL_NV_texture_compression_vtc *****//
-  # GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  { already defined }
-  #***** GL_NV_texture_env_combine4 *****//
-
-const 
-  GL_COMBINE4_NV* = 0x00008503
-  GL_SOURCE3_RGB_NV* = 0x00008583
-  GL_SOURCE3_ALPHA_NV* = 0x0000858B
-  GL_OPERAND3_RGB_NV* = 0x00008593
-  GL_OPERAND3_ALPHA_NV* = 0x0000859B
-  #***** GL_NV_texture_rectangle *****//
-
-const 
-  GL_TEXTURE_RECTANGLE_NV* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_NV* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_NV* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV* = 0x000084F8
-  #***** GL_NV_texture_shader *****//
-
-const 
-  GL_TEXTURE_SHADER_NV* = 0x000086DE
-  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV* = 0x000086D9
-  GL_SHADER_OPERATION_NV* = 0x000086DF
-  GL_CULL_MODES_NV* = 0x000086E0
-  GL_OFFSET_TEXTURE_MATRIX_NV* = 0x000086E1
-  GL_OFFSET_TEXTURE_SCALE_NV* = 0x000086E2
-  GL_OFFSET_TEXTURE_BIAS_NV* = 0x000086E3
-  GL_PREVIOUS_TEXTURE_INPUT_NV* = 0x000086E4
-  GL_CONST_EYE_NV* = 0x000086E5
-  GL_SHADER_CONSISTENT_NV* = 0x000086DD
-  GL_PASS_THROUGH_NV* = 0x000086E6
-  GL_CULL_FRAGMENT_NV* = 0x000086E7
-  GL_OFFSET_TEXTURE_2D_NV* = 0x000086E8
-  GL_OFFSET_TEXTURE_RECTANGLE_NV* = 0x0000864C
-  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV* = 0x0000864D
-  GL_DEPENDENT_AR_TEXTURE_2D_NV* = 0x000086E9
-  GL_DEPENDENT_GB_TEXTURE_2D_NV* = 0x000086EA
-  GL_DOT_PRODUCT_NV* = 0x000086EC
-  GL_DOT_PRODUCT_DEPTH_REPLACE_NV* = 0x000086ED
-  GL_DOT_PRODUCT_TEXTURE_2D_NV* = 0x000086EE
-  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV* = 0x0000864E
-  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV* = 0x000086F0
-  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV* = 0x000086F1
-  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV* = 0x000086F2
-  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV* = 0x000086F3
-  GL_HILO_NV* = 0x000086F4
-  GL_DSDT_NV* = 0x000086F5
-  GL_DSDT_MAG_NV* = 0x000086F6
-  GL_DSDT_MAG_VIB_NV* = 0x000086F7
-  GL_UNSIGNED_INT_S8_S8_8_8_NV* = 0x000086DA
-  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV* = 0x000086DB
-  GL_SIGNED_RGBA_NV* = 0x000086FB
-  GL_SIGNED_RGBA8_NV* = 0x000086FC
-  GL_SIGNED_RGB_NV* = 0x000086FE
-  GL_SIGNED_RGB8_NV* = 0x000086FF
-  GL_SIGNED_LUMINANCE_NV* = 0x00008701
-  GL_SIGNED_LUMINANCE8_NV* = 0x00008702
-  GL_SIGNED_LUMINANCE_ALPHA_NV* = 0x00008703
-  GL_SIGNED_LUMINANCE8_ALPHA8_NV* = 0x00008704
-  GL_SIGNED_ALPHA_NV* = 0x00008705
-  GL_SIGNED_ALPHA8_NV* = 0x00008706
-  GL_SIGNED_INTENSITY_NV* = 0x00008707
-  GL_SIGNED_INTENSITY8_NV* = 0x00008708
-  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV* = 0x0000870C
-  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV* = 0x0000870D
-  GL_HILO16_NV* = 0x000086F8
-  GL_SIGNED_HILO_NV* = 0x000086F9
-  GL_SIGNED_HILO16_NV* = 0x000086FA
-  GL_DSDT8_NV* = 0x00008709
-  GL_DSDT8_MAG8_NV* = 0x0000870A
-  GL_DSDT_MAG_INTENSITY_NV* = 0x000086DC
-  GL_DSDT8_MAG8_INTENSITY8_NV* = 0x0000870B
-  GL_HI_SCALE_NV* = 0x0000870E
-  GL_LO_SCALE_NV* = 0x0000870F
-  GL_DS_SCALE_NV* = 0x00008710
-  GL_DT_SCALE_NV* = 0x00008711
-  GL_MAGNITUDE_SCALE_NV* = 0x00008712
-  GL_VIBRANCE_SCALE_NV* = 0x00008713
-  GL_HI_BIAS_NV* = 0x00008714
-  GL_LO_BIAS_NV* = 0x00008715
-  GL_DS_BIAS_NV* = 0x00008716
-  GL_DT_BIAS_NV* = 0x00008717
-  GL_MAGNITUDE_BIAS_NV* = 0x00008718
-  GL_VIBRANCE_BIAS_NV* = 0x00008719
-  GL_TEXTURE_BORDER_VALUES_NV* = 0x0000871A
-  GL_TEXTURE_HI_SIZE_NV* = 0x0000871B
-  GL_TEXTURE_LO_SIZE_NV* = 0x0000871C
-  GL_TEXTURE_DS_SIZE_NV* = 0x0000871D
-  GL_TEXTURE_DT_SIZE_NV* = 0x0000871E
-  GL_TEXTURE_MAG_SIZE_NV* = 0x0000871F
-  #***** GL_NV_texture_shader2 *****//
-
-const 
-  GL_DOT_PRODUCT_TEXTURE_3D_NV* = 0x000086EF # GL_HILO_NV  { already defined }
-                                             # GL_DSDT_NV  { already defined }
-                                             # GL_DSDT_MAG_NV  { already defined }
-                                             # GL_DSDT_MAG_VIB_NV  { already defined }
-                                             # GL_UNSIGNED_INT_S8_S8_8_8_NV  { already defined }
-                                             # GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  { already defined }
-                                             # GL_SIGNED_RGBA_NV  { already defined }
-                                             # GL_SIGNED_RGBA8_NV  { already defined }
-                                             # GL_SIGNED_RGB_NV  { already defined }
-                                             # GL_SIGNED_RGB8_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE8_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_LUMINANCE8_ALPHA8_NV  { already defined }
-                                             # GL_SIGNED_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_ALPHA8_NV  { already defined }
-                                             # GL_SIGNED_INTENSITY_NV  { already defined }
-                                             # GL_SIGNED_INTENSITY8_NV  { already defined }
-                                             # GL_SIGNED_RGB_UNSIGNED_ALPHA_NV  { already defined }
-                                             # GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV  { already defined }
-                                             # GL_HILO16_NV  { already defined }
-                                             # GL_SIGNED_HILO_NV  { already defined }
-                                             # GL_SIGNED_HILO16_NV  { already defined }
-                                             # GL_DSDT8_NV  { already defined }
-                                             # GL_DSDT8_MAG8_NV  { already defined }
-                                             # GL_DSDT_MAG_INTENSITY_NV  { already defined }
-                                             # GL_DSDT8_MAG8_INTENSITY8_NV  { already defined }
-  #***** GL_NV_texture_shader3 *****//
-
-const 
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV* = 0x00008850
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV* = 0x00008851
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008852
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV* = 0x00008853
-  GL_OFFSET_HILO_TEXTURE_2D_NV* = 0x00008854
-  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV* = 0x00008855
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV* = 0x00008856
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008857
-  GL_DEPENDENT_HILO_TEXTURE_2D_NV* = 0x00008858
-  GL_DEPENDENT_RGB_TEXTURE_3D_NV* = 0x00008859
-  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV* = 0x0000885A
-  GL_DOT_PRODUCT_PASS_THROUGH_NV* = 0x0000885B
-  GL_DOT_PRODUCT_TEXTURE_1D_NV* = 0x0000885C
-  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV* = 0x0000885D
-  GL_HILO8_NV* = 0x0000885E
-  GL_SIGNED_HILO8_NV* = 0x0000885F
-  GL_FORCE_BLUE_TO_ONE_NV* = 0x00008860
-  #***** GL_NV_vertex_array_range *****//
-
-const 
-  constGL_VERTEX_ARRAY_RANGE_NV* = 0x0000851D
-  GL_VERTEX_ARRAY_RANGE_LENGTH_NV* = 0x0000851E
-  GL_VERTEX_ARRAY_RANGE_VALID_NV* = 0x0000851F
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV* = 0x00008520
-  GL_VERTEX_ARRAY_RANGE_POINTER_NV* = 0x00008521
-
-proc glVertexArrayRangeNV*(len: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexArrayRangeNV".}
-proc glFlushVertexArrayRangeNV*(){.dynlib: dllname, 
-                                   importc: "glFlushVertexArrayRangeNV".}
-  #***** GL_NV_vertex_array_range2 *****//
-const 
-  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV* = 0x00008533
-  #***** GL_NV_vertex_program *****//
-
-const 
-  GL_VERTEX_PROGRAM_NV* = 0x00008620
-  GL_VERTEX_PROGRAM_POINT_SIZE_NV* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE_NV* = 0x00008643
-  GL_VERTEX_STATE_PROGRAM_NV* = 0x00008621
-  GL_ATTRIB_ARRAY_SIZE_NV* = 0x00008623
-  GL_ATTRIB_ARRAY_STRIDE_NV* = 0x00008624
-  GL_ATTRIB_ARRAY_TYPE_NV* = 0x00008625
-  GL_CURRENT_ATTRIB_NV* = 0x00008626
-  GL_PROGRAM_PARAMETER_NV* = 0x00008644
-  GL_ATTRIB_ARRAY_POINTER_NV* = 0x00008645
-  GL_PROGRAM_TARGET_NV* = 0x00008646
-  GL_PROGRAM_LENGTH_NV* = 0x00008627
-  GL_PROGRAM_RESIDENT_NV* = 0x00008647
-  GL_PROGRAM_STRING_NV* = 0x00008628
-  constGL_TRACK_MATRIX_NV* = 0x00008648
-  GL_TRACK_MATRIX_TRANSFORM_NV* = 0x00008649
-  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV* = 0x0000862E
-  GL_MAX_TRACK_MATRICES_NV* = 0x0000862F
-  GL_CURRENT_MATRIX_STACK_DEPTH_NV* = 0x00008640
-  GL_CURRENT_MATRIX_NV* = 0x00008641
-  GL_VERTEX_PROGRAM_BINDING_NV* = 0x0000864A
-  GL_PROGRAM_ERROR_POSITION_NV* = 0x0000864B
-  GL_MODELVIEW_PROJECTION_NV* = 0x00008629
-  GL_MATRIX0_NV* = 0x00008630
-  GL_MATRIX1_NV* = 0x00008631
-  GL_MATRIX2_NV* = 0x00008632
-  GL_MATRIX3_NV* = 0x00008633
-  GL_MATRIX4_NV* = 0x00008634
-  GL_MATRIX5_NV* = 0x00008635
-  GL_MATRIX6_NV* = 0x00008636
-  GL_MATRIX7_NV* = 0x00008637
-  GL_IDENTITY_NV* = 0x0000862A
-  GL_INVERSE_NV* = 0x0000862B
-  GL_TRANSPOSE_NV* = 0x0000862C
-  GL_INVERSE_TRANSPOSE_NV* = 0x0000862D
-  GL_VERTEX_ATTRIB_ARRAY0_NV* = 0x00008650
-  GL_VERTEX_ATTRIB_ARRAY1_NV* = 0x00008651
-  GL_VERTEX_ATTRIB_ARRAY2_NV* = 0x00008652
-  GL_VERTEX_ATTRIB_ARRAY3_NV* = 0x00008653
-  GL_VERTEX_ATTRIB_ARRAY4_NV* = 0x00008654
-  GL_VERTEX_ATTRIB_ARRAY5_NV* = 0x00008655
-  GL_VERTEX_ATTRIB_ARRAY6_NV* = 0x00008656
-  GL_VERTEX_ATTRIB_ARRAY7_NV* = 0x00008657
-  GL_VERTEX_ATTRIB_ARRAY8_NV* = 0x00008658
-  GL_VERTEX_ATTRIB_ARRAY9_NV* = 0x00008659
-  GL_VERTEX_ATTRIB_ARRAY10_NV* = 0x0000865A
-  GL_VERTEX_ATTRIB_ARRAY11_NV* = 0x0000865B
-  GL_VERTEX_ATTRIB_ARRAY12_NV* = 0x0000865C
-  GL_VERTEX_ATTRIB_ARRAY13_NV* = 0x0000865D
-  GL_VERTEX_ATTRIB_ARRAY14_NV* = 0x0000865E
-  GL_VERTEX_ATTRIB_ARRAY15_NV* = 0x0000865F
-  GL_MAP1_VERTEX_ATTRIB0_4_NV* = 0x00008660
-  GL_MAP1_VERTEX_ATTRIB1_4_NV* = 0x00008661
-  GL_MAP1_VERTEX_ATTRIB2_4_NV* = 0x00008662
-  GL_MAP1_VERTEX_ATTRIB3_4_NV* = 0x00008663
-  GL_MAP1_VERTEX_ATTRIB4_4_NV* = 0x00008664
-  GL_MAP1_VERTEX_ATTRIB5_4_NV* = 0x00008665
-  GL_MAP1_VERTEX_ATTRIB6_4_NV* = 0x00008666
-  GL_MAP1_VERTEX_ATTRIB7_4_NV* = 0x00008667
-  GL_MAP1_VERTEX_ATTRIB8_4_NV* = 0x00008668
-  GL_MAP1_VERTEX_ATTRIB9_4_NV* = 0x00008669
-  GL_MAP1_VERTEX_ATTRIB10_4_NV* = 0x0000866A
-  GL_MAP1_VERTEX_ATTRIB11_4_NV* = 0x0000866B
-  GL_MAP1_VERTEX_ATTRIB12_4_NV* = 0x0000866C
-  GL_MAP1_VERTEX_ATTRIB13_4_NV* = 0x0000866D
-  GL_MAP1_VERTEX_ATTRIB14_4_NV* = 0x0000866E
-  GL_MAP1_VERTEX_ATTRIB15_4_NV* = 0x0000866F
-  GL_MAP2_VERTEX_ATTRIB0_4_NV* = 0x00008670
-  GL_MAP2_VERTEX_ATTRIB1_4_NV* = 0x00008671
-  GL_MAP2_VERTEX_ATTRIB2_4_NV* = 0x00008672
-  GL_MAP2_VERTEX_ATTRIB3_4_NV* = 0x00008673
-  GL_MAP2_VERTEX_ATTRIB4_4_NV* = 0x00008674
-  GL_MAP2_VERTEX_ATTRIB5_4_NV* = 0x00008675
-  GL_MAP2_VERTEX_ATTRIB6_4_NV* = 0x00008676
-  GL_MAP2_VERTEX_ATTRIB7_4_NV* = 0x00008677
-  GL_MAP2_VERTEX_ATTRIB8_4_NV* = 0x00008678
-  GL_MAP2_VERTEX_ATTRIB9_4_NV* = 0x00008679
-  GL_MAP2_VERTEX_ATTRIB10_4_NV* = 0x0000867A
-  GL_MAP2_VERTEX_ATTRIB11_4_NV* = 0x0000867B
-  GL_MAP2_VERTEX_ATTRIB12_4_NV* = 0x0000867C
-  GL_MAP2_VERTEX_ATTRIB13_4_NV* = 0x0000867D
-  GL_MAP2_VERTEX_ATTRIB14_4_NV* = 0x0000867E
-  GL_MAP2_VERTEX_ATTRIB15_4_NV* = 0x0000867F
-
-proc glBindProgramNV*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBindProgramNV".}
-proc glDeleteProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteProgramsNV".}
-proc glExecuteProgramNV*(target: TGLenum, id: TGLuint, params: PGLfloat){.
-    dynlib: dllname, importc: "glExecuteProgramNV".}
-proc glGenProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenProgramsNV".}
-proc glAreProgramsResidentNV*(n: TGLsizei, ids: PGLuint, residences: PGLboolean): TGLboolean{.
-    dynlib: dllname, importc: "glAreProgramsResidentNV".}
-proc glRequestResidentProgramsNV*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glRequestResidentProgramsNV".}
-proc glGetProgramParameterfvNV*(target: TGLenum, index: TGLuint, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetProgramParameterfvNV".}
-proc glGetProgramParameterdvNV*(target: TGLenum, index: TGLuint, pname: TGLenum, 
-                                params: PGLdouble){.dynlib: dllname, 
-    importc: "glGetProgramParameterdvNV".}
-proc glGetProgramivNV*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetProgramivNV".}
-proc glGetProgramStringNV*(id: TGLuint, pname: TGLenum, theProgram: PGLubyte){.
-    dynlib: dllname, importc: "glGetProgramStringNV".}
-proc glGetTrackMatrixivNV*(target: TGLenum, address: TGLuint, pname: TGLenum, 
-                           params: PGLint){.dynlib: dllname, 
-    importc: "glGetTrackMatrixivNV".}
-proc glGetVertexAttribdvNV*(index: TGLuint, pname: TGLenum, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetVertexAttribdvNV".}
-proc glGetVertexAttribfvNV*(index: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVertexAttribfvNV".}
-proc glGetVertexAttribivNV*(index: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVertexAttribivNV".}
-proc glGetVertexAttribPointervNV*(index: TGLuint, pname: TGLenum, 
-                                  pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glGetVertexAttribPointervNV".}
-proc glIsProgramNV*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsProgramNV".}
-proc glLoadProgramNV*(target: TGLenum, id: TGLuint, length: TGLsizei, 
-                      theProgram: PGLubyte){.dynlib: dllname, 
-    importc: "glLoadProgramNV".}
-proc glProgramParameter4fNV*(target: TGLenum, index: TGLuint, x: TGLfloat, 
-                             y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glProgramParameter4fNV".}
-proc glProgramParameter4fvNV*(target: TGLenum, index: TGLuint, params: PGLfloat){.
-    dynlib: dllname, importc: "glProgramParameter4fvNV".}
-proc glProgramParameters4dvNV*(target: TGLenum, index: TGLuint, num: TGLuint, 
-                               params: PGLdouble){.dynlib: dllname, 
-    importc: "glProgramParameters4dvNV".}
-proc glProgramParameters4fvNV*(target: TGLenum, index: TGLuint, num: TGLuint, 
-                               params: PGLfloat){.dynlib: dllname, 
-    importc: "glProgramParameters4fvNV".}
-proc glTrackMatrixNV*(target: TGLenum, address: TGLuint, matrix: TGLenum, 
-                      transform: TGLenum){.dynlib: dllname, 
-    importc: "glTrackMatrixNV".}
-proc glVertexAttribPointerNV*(index: TGLuint, size: TGLint, thetype: TGLenum, 
-                              stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glVertexAttribPointerNV".}
-proc glVertexAttrib1sNV*(index: TGLuint, x: TGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1sNV".}
-proc glVertexAttrib1fNV*(index: TGLuint, x: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fNV".}
-proc glVertexAttrib1dNV*(index: TGLuint, x: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dNV".}
-proc glVertexAttrib2sNV*(index: TGLuint, x: TGLshort, y: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib2sNV".}
-proc glVertexAttrib2fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib2fNV".}
-proc glVertexAttrib2dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble){.
-    dynlib: dllname, importc: "glVertexAttrib2dNV".}
-proc glVertexAttrib3sNV*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort){.
-    dynlib: dllname, importc: "glVertexAttrib3sNV".}
-proc glVertexAttrib3fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glVertexAttrib3fNV".}
-proc glVertexAttrib3dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                         z: TGLdouble){.dynlib: dllname, 
-                                        importc: "glVertexAttrib3dNV".}
-proc glVertexAttrib4sNV*(index: TGLuint, x: TGLshort, y: TGLshort, z: TGLshort, 
-                         w: TGLshort){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4sNV".}
-proc glVertexAttrib4fNV*(index: TGLuint, x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                         w: TGLfloat){.dynlib: dllname, 
-                                       importc: "glVertexAttrib4fNV".}
-proc glVertexAttrib4dNV*(index: TGLuint, x: TGLdouble, y: TGLdouble, 
-                         z: TGLdouble, w: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dNV".}
-proc glVertexAttrib4ubNV*(index: TGLuint, x: TGLubyte, y: TGLubyte, z: TGLubyte, 
-                          w: TGLubyte){.dynlib: dllname, 
-                                        importc: "glVertexAttrib4ubNV".}
-proc glVertexAttrib1svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib1svNV".}
-proc glVertexAttrib1fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib1fvNV".}
-proc glVertexAttrib1dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib1dvNV".}
-proc glVertexAttrib2svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib2svNV".}
-proc glVertexAttrib2fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib2fvNV".}
-proc glVertexAttrib2dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib2dvNV".}
-proc glVertexAttrib3svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib3svNV".}
-proc glVertexAttrib3fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib3fvNV".}
-proc glVertexAttrib3dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib3dvNV".}
-proc glVertexAttrib4svNV*(index: TGLuint, v: PGLshort){.dynlib: dllname, 
-    importc: "glVertexAttrib4svNV".}
-proc glVertexAttrib4fvNV*(index: TGLuint, v: PGLfloat){.dynlib: dllname, 
-    importc: "glVertexAttrib4fvNV".}
-proc glVertexAttrib4dvNV*(index: TGLuint, v: PGLdouble){.dynlib: dllname, 
-    importc: "glVertexAttrib4dvNV".}
-proc glVertexAttrib4ubvNV*(index: TGLuint, v: PGLubyte){.dynlib: dllname, 
-    importc: "glVertexAttrib4ubvNV".}
-proc glVertexAttribs1svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs1svNV".}
-proc glVertexAttribs1fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs1fvNV".}
-proc glVertexAttribs1dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs1dvNV".}
-proc glVertexAttribs2svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs2svNV".}
-proc glVertexAttribs2fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs2fvNV".}
-proc glVertexAttribs2dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs2dvNV".}
-proc glVertexAttribs3svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs3svNV".}
-proc glVertexAttribs3fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs3fvNV".}
-proc glVertexAttribs3dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs3dvNV".}
-proc glVertexAttribs4svNV*(index: TGLuint, n: TGLsizei, v: PGLshort){.
-    dynlib: dllname, importc: "glVertexAttribs4svNV".}
-proc glVertexAttribs4fvNV*(index: TGLuint, n: TGLsizei, v: PGLfloat){.
-    dynlib: dllname, importc: "glVertexAttribs4fvNV".}
-proc glVertexAttribs4dvNV*(index: TGLuint, n: TGLsizei, v: PGLdouble){.
-    dynlib: dllname, importc: "glVertexAttribs4dvNV".}
-proc glVertexAttribs4ubvNV*(index: TGLuint, n: TGLsizei, v: PGLubyte){.
-    dynlib: dllname, importc: "glVertexAttribs4ubvNV".}
-  #***** GL_NV_vertex_program1_1 *****//
-  #***** GL_ATI_element_array *****//
-const 
-  GL_ELEMENT_ARRAY_ATI* = 0x00008768
-  GL_ELEMENT_ARRAY_TYPE_ATI* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_ATI* = 0x0000876A
-
-proc glElementPointerATI*(thetype: TGLenum, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glElementPointerATI".}
-proc glDrawElementArrayATI*(mode: TGLenum, count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawElementArrayATI".}
-proc glDrawRangeElementArrayATI*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                                 count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawRangeElementArrayATI".}
-  #***** GL_ATI_envmap_bumpmap *****//
-const 
-  GL_BUMP_ROT_MATRIX_ATI* = 0x00008775
-  GL_BUMP_ROT_MATRIX_SIZE_ATI* = 0x00008776
-  GL_BUMP_NUM_TEX_UNITS_ATI* = 0x00008777
-  GL_BUMP_TEX_UNITS_ATI* = 0x00008778
-  GL_DUDV_ATI* = 0x00008779
-  GL_DU8DV8_ATI* = 0x0000877A
-  GL_BUMP_ENVMAP_ATI* = 0x0000877B
-  GL_BUMP_TARGET_ATI* = 0x0000877C
-
-proc glTexBumpParameterivATI*(pname: TGLenum, param: PGLint){.dynlib: dllname, 
-    importc: "glTexBumpParameterivATI".}
-proc glTexBumpParameterfvATI*(pname: TGLenum, param: PGLfloat){.dynlib: dllname, 
-    importc: "glTexBumpParameterfvATI".}
-proc glGetTexBumpParameterivATI*(pname: TGLenum, param: PGLint){.
-    dynlib: dllname, importc: "glGetTexBumpParameterivATI".}
-proc glGetTexBumpParameterfvATI*(pname: TGLenum, param: PGLfloat){.
-    dynlib: dllname, importc: "glGetTexBumpParameterfvATI".}
-  #***** GL_ATI_fragment_shader *****//
-const 
-  GL_FRAGMENT_SHADER_ATI* = 0x00008920
-  GL_REG_0_ATI* = 0x00008921
-  GL_REG_1_ATI* = 0x00008922
-  GL_REG_2_ATI* = 0x00008923
-  GL_REG_3_ATI* = 0x00008924
-  GL_REG_4_ATI* = 0x00008925
-  GL_REG_5_ATI* = 0x00008926
-  GL_CON_0_ATI* = 0x00008941
-  GL_CON_1_ATI* = 0x00008942
-  GL_CON_2_ATI* = 0x00008943
-  GL_CON_3_ATI* = 0x00008944
-  GL_CON_4_ATI* = 0x00008945
-  GL_CON_5_ATI* = 0x00008946
-  GL_CON_6_ATI* = 0x00008947
-  GL_CON_7_ATI* = 0x00008948
-  GL_MOV_ATI* = 0x00008961
-  GL_ADD_ATI* = 0x00008963
-  GL_MUL_ATI* = 0x00008964
-  GL_SUB_ATI* = 0x00008965
-  GL_DOT3_ATI* = 0x00008966
-  GL_DOT4_ATI* = 0x00008967
-  GL_MAD_ATI* = 0x00008968
-  GL_LERP_ATI* = 0x00008969
-  GL_CND_ATI* = 0x0000896A
-  GL_CND0_ATI* = 0x0000896B
-  GL_DOT2_ADD_ATI* = 0x0000896C
-  GL_SECONDARY_INTERPOLATOR_ATI* = 0x0000896D
-  GL_SWIZZLE_STR_ATI* = 0x00008976
-  GL_SWIZZLE_STQ_ATI* = 0x00008977
-  GL_SWIZZLE_STR_DR_ATI* = 0x00008978
-  GL_SWIZZLE_STQ_DQ_ATI* = 0x00008979
-  GL_RED_BIT_ATI* = 0x00000001
-  GL_GREEN_BIT_ATI* = 0x00000002
-  GL_BLUE_BIT_ATI* = 0x00000004
-  GL_2X_BIT_ATI* = 0x00000001
-  GL_4X_BIT_ATI* = 0x00000002
-  GL_8X_BIT_ATI* = 0x00000004
-  GL_HALF_BIT_ATI* = 0x00000008
-  GL_QUARTER_BIT_ATI* = 0x00000010
-  GL_EIGHTH_BIT_ATI* = 0x00000020
-  GL_SATURATE_BIT_ATI* = 0x00000040 # GL_2X_BIT_ATI  { already defined }
-  GL_COMP_BIT_ATI* = 0x00000002
-  GL_NEGATE_BIT_ATI* = 0x00000004
-  GL_BIAS_BIT_ATI* = 0x00000008
-
-proc glGenFragmentShadersATI*(range: TGLuint): TGLuint{.dynlib: dllname, 
-    importc: "glGenFragmentShadersATI".}
-proc glBindFragmentShaderATI*(id: TGLuint){.dynlib: dllname, 
-    importc: "glBindFragmentShaderATI".}
-proc glDeleteFragmentShaderATI*(id: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteFragmentShaderATI".}
-proc glBeginFragmentShaderATI*(){.dynlib: dllname, 
-                                  importc: "glBeginFragmentShaderATI".}
-proc glEndFragmentShaderATI*(){.dynlib: dllname, 
-                                importc: "glEndFragmentShaderATI".}
-proc glPassTexCoordATI*(dst: TGLuint, coord: TGLuint, swizzle: TGLenum){.
-    dynlib: dllname, importc: "glPassTexCoordATI".}
-proc glSampleMapATI*(dst: TGLuint, interp: TGLuint, swizzle: TGLenum){.
-    dynlib: dllname, importc: "glSampleMapATI".}
-proc glColorFragmentOp1ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp1ATI".}
-proc glColorFragmentOp2ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint, arg2: TGLuint, arg2Rep: TGLuint, 
-                            arg2Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp2ATI".}
-proc glColorFragmentOp3ATI*(op: TGLenum, dst: TGLuint, dstMask: TGLuint, 
-                            dstMod: TGLuint, arg1: TGLuint, arg1Rep: TGLuint, 
-                            arg1Mod: TGLuint, arg2: TGLuint, arg2Rep: TGLuint, 
-                            arg2Mod: TGLuint, arg3: TGLuint, arg3Rep: TGLuint, 
-                            arg3Mod: TGLuint){.dynlib: dllname, 
-    importc: "glColorFragmentOp3ATI".}
-proc glAlphaFragmentOp1ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp1ATI".}
-proc glAlphaFragmentOp2ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint, 
-                            arg2: TGLuint, arg2Rep: TGLuint, arg2Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp2ATI".}
-proc glAlphaFragmentOp3ATI*(op: TGLenum, dst: TGLuint, dstMod: TGLuint, 
-                            arg1: TGLuint, arg1Rep: TGLuint, arg1Mod: TGLuint, 
-                            arg2: TGLuint, arg2Rep: TGLuint, arg2Mod: TGLuint, 
-                            arg3: TGLuint, arg3Rep: TGLuint, arg3Mod: TGLuint){.
-    dynlib: dllname, importc: "glAlphaFragmentOp3ATI".}
-proc glSetFragmentShaderConstantATI*(dst: TGLuint, value: PGLfloat){.
-    dynlib: dllname, importc: "glSetFragmentShaderConstantATI".}
-  #***** GL_ATI_pn_triangles *****//
-const 
-  GL_PN_TRIANGLES_ATI* = 0x000087F0
-  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F1
-  GL_PN_TRIANGLES_POINT_MODE_ATI* = 0x000087F2
-  GL_PN_TRIANGLES_NORMAL_MODE_ATI* = 0x000087F3
-  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F4
-  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI* = 0x000087F5
-  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI* = 0x000087F6
-  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI* = 0x000087F7
-  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI* = 0x000087F8
-
-proc glPNTrianglesiATI*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPNTrianglesiATI".}
-proc glPNTrianglesfATI*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPNTrianglesfATI".}
-  #***** GL_ATI_texture_mirror_once *****//
-const 
-  GL_MIRROR_CLAMP_ATI* = 0x00008742
-  GL_MIRROR_CLAMP_TO_EDGE_ATI* = 0x00008743
-  #***** GL_ATI_vertex_array_object *****//
-
-const 
-  GL_STATIC_ATI* = 0x00008760
-  GL_DYNAMIC_ATI* = 0x00008761
-  GL_PRESERVE_ATI* = 0x00008762
-  GL_DISCARD_ATI* = 0x00008763
-  GL_OBJECT_BUFFER_SIZE_ATI* = 0x00008764
-  GL_OBJECT_BUFFER_USAGE_ATI* = 0x00008765
-  GL_ARRAY_OBJECT_BUFFER_ATI* = 0x00008766
-  GL_ARRAY_OBJECT_OFFSET_ATI* = 0x00008767
-
-proc glNewObjectBufferATI*(size: TGLsizei, pointer: PGLvoid, usage: TGLenum): TGLuint{.
-    dynlib: dllname, importc: "glNewObjectBufferATI".}
-proc glIsObjectBufferATI*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsObjectBufferATI".}
-proc glUpdateObjectBufferATI*(buffer: TGLuint, offset: TGLuint, size: TGLsizei, 
-                              pointer: PGLvoid, preserve: TGLenum){.
-    dynlib: dllname, importc: "glUpdateObjectBufferATI".}
-proc glGetObjectBufferfvATI*(buffer: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetObjectBufferfvATI".}
-proc glGetObjectBufferivATI*(buffer: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetObjectBufferivATI".}
-proc glDeleteObjectBufferATI*(buffer: TGLuint){.dynlib: dllname, 
-    importc: "glDeleteObjectBufferATI".}
-proc glArrayObjectATI*(thearray: TGLenum, size: TGLint, thetype: TGLenum, 
-                       stride: TGLsizei, buffer: TGLuint, offset: TGLuint){.
-    dynlib: dllname, importc: "glArrayObjectATI".}
-proc glGetArrayObjectfvATI*(thearray: TGLenum, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetArrayObjectfvATI".}
-proc glGetArrayObjectivATI*(thearray: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetArrayObjectivATI".}
-proc glVariantArrayObjectATI*(id: TGLuint, thetype: TGLenum, stride: TGLsizei, 
-                              buffer: TGLuint, offset: TGLuint){.
-    dynlib: dllname, importc: "glVariantArrayObjectATI".}
-proc glGetVariantArrayObjectfvATI*(id: TGLuint, pname: TGLenum, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetVariantArrayObjectfvATI".}
-proc glGetVariantArrayObjectivATI*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetVariantArrayObjectivATI".}
-  #***** GL_ATI_vertex_streams *****//
-const 
-  GL_MAX_VERTEX_STREAMS_ATI* = 0x0000876B
-  GL_VERTEX_STREAM0_ATI* = 0x0000876C
-  GL_VERTEX_STREAM1_ATI* = 0x0000876D
-  GL_VERTEX_STREAM2_ATI* = 0x0000876E
-  GL_VERTEX_STREAM3_ATI* = 0x0000876F
-  GL_VERTEX_STREAM4_ATI* = 0x00008770
-  GL_VERTEX_STREAM5_ATI* = 0x00008771
-  GL_VERTEX_STREAM6_ATI* = 0x00008772
-  GL_VERTEX_STREAM7_ATI* = 0x00008773
-  GL_VERTEX_SOURCE_ATI* = 0x00008774
-
-proc glVertexStream1s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream1s".}
-proc glVertexStream1i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream1i".}
-proc glVertexStream1f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream1f".}
-proc glVertexStream1d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream1d".}
-proc glVertexStream1sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream1sv".}
-proc glVertexStream1iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream1iv".}
-proc glVertexStream1fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream1fv".}
-proc glVertexStream1dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream1dv".}
-proc glVertexStream2s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream2s".}
-proc glVertexStream2i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream2i".}
-proc glVertexStream2f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream2f".}
-proc glVertexStream2d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream2d".}
-proc glVertexStream2sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream2sv".}
-proc glVertexStream2iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream2iv".}
-proc glVertexStream2fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream2fv".}
-proc glVertexStream2dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream2dv".}
-proc glVertexStream3s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream3s".}
-proc glVertexStream3i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream3i".}
-proc glVertexStream3f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream3f".}
-proc glVertexStream3d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream3d".}
-proc glVertexStream3sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream3sv".}
-proc glVertexStream3iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream3iv".}
-proc glVertexStream3fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream3fv".}
-proc glVertexStream3dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream3dv".}
-proc glVertexStream4s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream4s".}
-proc glVertexStream4i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream4i".}
-proc glVertexStream4f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream4f".}
-proc glVertexStream4d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream4d".}
-proc glVertexStream4sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glVertexStream4sv".}
-proc glVertexStream4iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glVertexStream4iv".}
-proc glVertexStream4fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexStream4fv".}
-proc glVertexStream4dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glVertexStream4dv".}
-proc glNormalStream3b*(stream: TGLenum, coords: TGLByte){.dynlib: dllname, 
-    importc: "glNormalStream3b".}
-proc glNormalStream3s*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glNormalStream3s".}
-proc glNormalStream3i*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glNormalStream3i".}
-proc glNormalStream3f*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glNormalStream3f".}
-proc glNormalStream3d*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glNormalStream3d".}
-proc glNormalStream3bv*(stream: TGLenum, coords: TGLByte){.dynlib: dllname, 
-    importc: "glNormalStream3bv".}
-proc glNormalStream3sv*(stream: TGLenum, coords: TGLshort){.dynlib: dllname, 
-    importc: "glNormalStream3sv".}
-proc glNormalStream3iv*(stream: TGLenum, coords: TGLint){.dynlib: dllname, 
-    importc: "glNormalStream3iv".}
-proc glNormalStream3fv*(stream: TGLenum, coords: TGLfloat){.dynlib: dllname, 
-    importc: "glNormalStream3fv".}
-proc glNormalStream3dv*(stream: TGLenum, coords: TGLdouble){.dynlib: dllname, 
-    importc: "glNormalStream3dv".}
-proc glClientActiveVertexStream*(stream: TGLenum){.dynlib: dllname, 
-    importc: "glClientActiveVertexStream".}
-proc glVertexBlendEnvi*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glVertexBlendEnvi".}
-proc glVertexBlendEnvf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glVertexBlendEnvf".}
-  #***** GL_3DFX_texture_compression_FXT1 *****//
-const 
-  GL_COMPRESSED_RGB_FXT1_3DFX* = 0x000086B0
-  GL_COMPRESSED_RGBA_FXT1_3DFX* = 0x000086B1
-  #***** GL_IBM_cull_vertex *****//
-
-const 
-  GL_CULL_VERTEX_IBM* = 0x0001928A
-  #***** GL_IBM_multimode_draw_arrays *****//
-
-proc glMultiModeDrawArraysIBM*(mode: PGLenum, first: PGLint, count: PGLsizei, 
-                               primcount: TGLsizei, modestride: TGLint){.
-    dynlib: dllname, importc: "glMultiModeDrawArraysIBM".}
-proc glMultiModeDrawElementsIBM*(mode: PGLenum, count: PGLsizei, 
-                                 thetype: TGLenum, indices: PGLvoid, 
-                                 primcount: TGLsizei, modestride: TGLint){.
-    dynlib: dllname, importc: "glMultiModeDrawElementsIBM".}
-  #***** GL_IBM_raster_pos_clip *****//
-const 
-  GL_RASTER_POSITION_UNCLIPPED_IBM* = 0x00019262
-  #***** GL_IBM_texture_mirrored_repeat *****//
-
-const 
-  GL_MIRRORED_REPEAT_IBM* = 0x00008370
-  #***** GL_IBM_vertex_array_lists *****//
-
-const 
-  GL_VERTEX_ARRAY_LIST_IBM* = 0x0001929E
-  GL_NORMAL_ARRAY_LIST_IBM* = 0x0001929F
-  GL_COLOR_ARRAY_LIST_IBM* = 0x000192A0
-  GL_INDEX_ARRAY_LIST_IBM* = 0x000192A1
-  GL_TEXTURE_COORD_ARRAY_LIST_IBM* = 0x000192A2
-  GL_EDGE_FLAG_ARRAY_LIST_IBM* = 0x000192A3
-  GL_FOG_COORDINATE_ARRAY_LIST_IBM* = 0x000192A4
-  GL_SECONDARY_COLOR_ARRAY_LIST_IBM* = 0x000192A5
-  GL_VERTEX_ARRAY_LIST_STRIDE_IBM* = 0x000192A8
-  GL_NORMAL_ARRAY_LIST_STRIDE_IBM* = 0x000192A9
-  GL_COLOR_ARRAY_LIST_STRIDE_IBM* = 0x000192AA
-  GL_INDEX_ARRAY_LIST_STRIDE_IBM* = 0x000192AB
-  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM* = 0x000192AC
-  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM* = 0x000192AD
-  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM* = 0x000192AE
-  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM* = 0x000192AF
-
-proc glColorPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                            pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glColorPointerListIBM".}
-proc glSecondaryColorPointerListIBM*(size: TGLint, thetype: TGLenum, 
-                                     stride: TGLint, pointer: PGLvoid, 
-                                     ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glSecondaryColorPointerListIBM".}
-proc glEdgeFlagPointerListIBM*(stride: TGLint, pointer: PGLboolean, 
-                               ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glEdgeFlagPointerListIBM".}
-proc glFogCoordPointerListIBM*(thetype: TGLenum, stride: TGLint, 
-                               pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glFogCoordPointerListIBM".}
-proc glNormalPointerListIBM*(thetype: TGLenum, stride: TGLint, pointer: PGLvoid, 
-                             ptrstride: TGLint){.dynlib: dllname, 
-    importc: "glNormalPointerListIBM".}
-proc glTexCoordPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                               pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glTexCoordPointerListIBM".}
-proc glVertexPointerListIBM*(size: TGLint, thetype: TGLenum, stride: TGLint, 
-                             pointer: PGLvoid, ptrstride: TGLint){.
-    dynlib: dllname, importc: "glVertexPointerListIBM".}
-  #***** GL_MESA_resize_buffers *****//
-proc glResizeBuffersMESA*(){.dynlib: dllname, importc: "glResizeBuffersMESA".}
-  #***** GL_MESA_window_pos *****//
-proc glWindowPos2dMESA*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2dMESA".}
-proc glWindowPos2fMESA*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2fMESA".}
-proc glWindowPos2iMESA*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2iMESA".}
-proc glWindowPos2sMESA*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2sMESA".}
-proc glWindowPos2ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos2ivMESA".}
-proc glWindowPos2svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos2svMESA".}
-proc glWindowPos2fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos2fvMESA".}
-proc glWindowPos2dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos2dvMESA".}
-proc glWindowPos3iMESA*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3iMESA".}
-proc glWindowPos3sMESA*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3sMESA".}
-proc glWindowPos3fMESA*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3fMESA".}
-proc glWindowPos3dMESA*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos3dMESA".}
-proc glWindowPos3ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos3ivMESA".}
-proc glWindowPos3svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos3svMESA".}
-proc glWindowPos3fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos3fvMESA".}
-proc glWindowPos3dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos3dvMESA".}
-proc glWindowPos4iMESA*(x: TGLint, y: TGLint, z: TGLint, w: TGLint){.
-    dynlib: dllname, importc: "glWindowPos4iMESA".}
-proc glWindowPos4sMESA*(x: TGLshort, y: TGLshort, z: TGLshort, w: TGLshort){.
-    dynlib: dllname, importc: "glWindowPos4sMESA".}
-proc glWindowPos4fMESA*(x: TGLfloat, y: TGLfloat, z: TGLfloat, w: TGLfloat){.
-    dynlib: dllname, importc: "glWindowPos4fMESA".}
-proc glWindowPos4dMESA*(x: TGLdouble, y: TGLdouble, z: TGLdouble, w: TGLdouble){.
-    dynlib: dllname, importc: "glWindowPos4dMESA".}
-proc glWindowPos4ivMESA*(p: PGLint){.dynlib: dllname, 
-                                     importc: "glWindowPos4ivMESA".}
-proc glWindowPos4svMESA*(p: PGLshort){.dynlib: dllname, 
-                                       importc: "glWindowPos4svMESA".}
-proc glWindowPos4fvMESA*(p: PGLfloat){.dynlib: dllname, 
-                                       importc: "glWindowPos4fvMESA".}
-proc glWindowPos4dvMESA*(p: PGLdouble){.dynlib: dllname, 
-                                        importc: "glWindowPos4dvMESA".}
-  #***** GL_OML_interlace *****//
-const 
-  GL_INTERLACE_OML* = 0x00008980
-  GL_INTERLACE_READ_OML* = 0x00008981
-  #***** GL_OML_resample *****//
-
-const 
-  GL_PACK_RESAMPLE_OML* = 0x00008984
-  GL_UNPACK_RESAMPLE_OML* = 0x00008985
-  GL_RESAMPLE_REPLICATE_OML* = 0x00008986
-  GL_RESAMPLE_ZERO_FILL_OML* = 0x00008987
-  GL_RESAMPLE_AVERAGE_OML* = 0x00008988
-  GL_RESAMPLE_DECIMATE_OML* = 0x00008989 # GL_RESAMPLE_AVERAGE_OML  { already defined }
-  #***** GL_OML_subsample *****//
-
-const 
-  GL_FORMAT_SUBSAMPLE_24_24_OML* = 0x00008982
-  GL_FORMAT_SUBSAMPLE_244_244_OML* = 0x00008983
-  #***** GL_SGIS_generate_mipmap *****//
-
-const 
-  GL_GENERATE_MIPMAP_SGIS* = 0x00008191
-  GL_GENERATE_MIPMAP_HINT_SGIS* = 0x00008192
-  #***** GL_SGIS_multisample *****//
-
-const 
-  GLX_SAMPLE_BUFFERS_SGIS* = 0x000186A0
-  GLX_SAMPLES_SGIS* = 0x000186A1
-  GL_MULTISAMPLE_SGIS* = 0x0000809D
-  GL_SAMPLE_ALPHA_TO_MASK_SGIS* = 0x0000809E
-  GL_SAMPLE_ALPHA_TO_ONE_SGIS* = 0x0000809F
-  constGL_SAMPLE_MASK_SGIS* = 0x000080A0
-  GL_MULTISAMPLE_BIT_EXT* = 0x20000000
-  GL_1PASS_SGIS* = 0x000080A1
-  GL_2PASS_0_SGIS* = 0x000080A2
-  GL_2PASS_1_SGIS* = 0x000080A3
-  GL_4PASS_0_SGIS* = 0x000080A4
-  GL_4PASS_1_SGIS* = 0x000080A5
-  GL_4PASS_2_SGIS* = 0x000080A6
-  GL_4PASS_3_SGIS* = 0x000080A7
-  GL_SAMPLE_BUFFERS_SGIS* = 0x000080A8
-  GL_SAMPLES_SGIS* = 0x000080A9
-  GL_SAMPLE_MASK_VALUE_SGIS* = 0x000080AA
-  GL_SAMPLE_MASK_INVERT_SGIS* = 0x000080AB
-  constGL_SAMPLE_PATTERN_SGIS* = 0x000080AC
-
-proc glSampleMaskSGIS*(value: TGLclampf, invert: TGLboolean){.dynlib: dllname, 
-    importc: "glSampleMaskSGIS".}
-proc glSamplePatternSGIS*(pattern: TGLenum){.dynlib: dllname, 
-    importc: "glSamplePatternSGIS".}
-  #***** GL_SGIS_pixel_texture *****//
-const 
-  GL_PIXEL_TEXTURE_SGIS* = 0x00008353
-  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS* = 0x00008354
-  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS* = 0x00008355
-  GL_PIXEL_GROUP_COLOR_SGIS* = 0x00008356
-
-proc glPixelTexGenParameteriSGIS*(pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glPixelTexGenParameteriSGIS".}
-proc glPixelTexGenParameterfSGIS*(pname: TGLenum, param: TGLfloat){.
-    dynlib: dllname, importc: "glPixelTexGenParameterfSGIS".}
-proc glGetPixelTexGenParameterivSGIS*(pname: TGLenum, params: TGLint){.
-    dynlib: dllname, importc: "glGetPixelTexGenParameterivSGIS".}
-proc glGetPixelTexGenParameterfvSGIS*(pname: TGLenum, params: TGLfloat){.
-    dynlib: dllname, importc: "glGetPixelTexGenParameterfvSGIS".}
-  #***** GL_SGIS_texture_border_clamp *****//
-  # GL_CLAMP_TO_BORDER_SGIS  { already defined }
-  #***** GL_SGIS_texture_color_mask *****//
-const 
-  GL_TEXTURE_COLOR_WRITEMASK_SGIS* = 0x000081EF
-
-proc glTextureColorMaskSGIS*(r: TGLboolean, g: TGLboolean, b: TGLboolean, 
-                             a: TGLboolean){.dynlib: dllname, 
-    importc: "glTextureColorMaskSGIS".}
-  #***** GL_SGIS_texture_edge_clamp *****//
-const 
-  GL_CLAMP_TO_EDGE_SGIS* = 0x0000812F
-  #***** GL_SGIS_texture_lod *****//
-
-const 
-  GL_TEXTURE_MIN_LOD_SGIS* = 0x0000813A
-  GL_TEXTURE_MAX_LOD_SGIS* = 0x0000813B
-  GL_TEXTURE_BASE_LEVEL_SGIS* = 0x0000813C
-  GL_TEXTURE_MAX_LEVEL_SGIS* = 0x0000813D
-  #***** GL_SGIS_depth_texture *****//
-
-const 
-  GL_DEPTH_COMPONENT16_SGIX* = 0x000081A5
-  GL_DEPTH_COMPONENT24_SGIX* = 0x000081A6
-  GL_DEPTH_COMPONENT32_SGIX* = 0x000081A7
-  #***** GL_SGIX_fog_offset *****//
-
-const 
-  GL_FOG_OFFSET_SGIX* = 0x00008198
-  GL_FOG_OFFSET_VALUE_SGIX* = 0x00008199
-  #***** GL_SGIX_interlace *****//
-
-const 
-  GL_INTERLACE_SGIX* = 0x00008094
-  #***** GL_SGIX_shadow_ambient *****//
-
-const 
-  GL_SHADOW_AMBIENT_SGIX* = 0x000080BF
-  #***** GL_SGI_color_matrix *****//
-
-const 
-  GL_COLOR_MATRIX_SGI* = 0x000080B1
-  GL_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B2
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B3
-  GL_POST_COLOR_MATRIX_RED_SCALE_SGI* = 0x000080B4
-  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI* = 0x000080B5
-  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI* = 0x000080B6
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI* = 0x000080B7
-  GL_POST_COLOR_MATRIX_RED_BIAS_SGI* = 0x000080B8
-  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI* = 0x000080B9
-  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI* = 0x000080BA
-  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI* = 0x000080BB
-  #***** GL_SGI_color_table *****//
-
-const 
-  constGL_COLOR_TABLE_SGI* = 0x000080D0
-  GL_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D1
-  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D2
-  GL_PROXY_COLOR_TABLE_SGI* = 0x000080D3
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D4
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D5
-  GL_COLOR_TABLE_SCALE_SGI* = 0x000080D6
-  GL_COLOR_TABLE_BIAS_SGI* = 0x000080D7
-  GL_COLOR_TABLE_FORMAT_SGI* = 0x000080D8
-  GL_COLOR_TABLE_WIDTH_SGI* = 0x000080D9
-  GL_COLOR_TABLE_RED_SIZE_SGI* = 0x000080DA
-  GL_COLOR_TABLE_GREEN_SIZE_SGI* = 0x000080DB
-  GL_COLOR_TABLE_BLUE_SIZE_SGI* = 0x000080DC
-  GL_COLOR_TABLE_ALPHA_SIZE_SGI* = 0x000080DD
-  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI* = 0x000080DE
-  GL_COLOR_TABLE_INTENSITY_SIZE_SGI* = 0x000080DF
-
-proc glColorTableSGI*(target: TGLenum, internalformat: TGLenum, width: TGLsizei, 
-                      format: TGLenum, thetype: TGLenum, table: PGLvoid){.
-    dynlib: dllname, importc: "glColorTableSGI".}
-proc glCopyColorTableSGI*(target: TGLenum, internalformat: TGLenum, x: TGLint, 
-                          y: TGLint, width: TGLsizei){.dynlib: dllname, 
-    importc: "glCopyColorTableSGI".}
-proc glColorTableParameterivSGI*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glColorTableParameterivSGI".}
-proc glColorTableParameterfvSGI*(target: TGLenum, pname: TGLenum, 
-                                 params: PGLfloat){.dynlib: dllname, 
-    importc: "glColorTableParameterfvSGI".}
-proc glGetColorTableSGI*(target: TGLenum, format: TGLenum, thetype: TGLenum, 
-                         table: PGLvoid){.dynlib: dllname, 
-    importc: "glGetColorTableSGI".}
-proc glGetColorTableParameterivSGI*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLint){.dynlib: dllname, 
-    importc: "glGetColorTableParameterivSGI".}
-proc glGetColorTableParameterfvSGI*(target: TGLenum, pname: TGLenum, 
-                                    params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetColorTableParameterfvSGI".}
-  #***** GL_SGI_texture_color_table *****//
-const 
-  GL_TEXTURE_COLOR_TABLE_SGI* = 0x000080BC
-  GL_PROXY_TEXTURE_COLOR_TABLE_SGI* = 0x000080BD
-  #***** GL_SUN_vertex *****//
-
-proc glColor4ubVertex2fSUN*(r: TGLubyte, g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                            x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex2fSUN".}
-proc glColor4ubVertex2fvSUN*(c: PGLubyte, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex2fvSUN".}
-proc glColor4ubVertex3fSUN*(r: TGLubyte, g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                            x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glColor4ubVertex3fSUN".}
-proc glColor4ubVertex3fvSUN*(c: PGLubyte, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor4ubVertex3fvSUN".}
-proc glColor3fVertex3fSUN*(r: TGLfloat, g: TGLfloat, b: TGLfloat, x: TGLfloat, 
-                           y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glColor3fVertex3fSUN".}
-proc glColor3fVertex3fvSUN*(c: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glColor3fVertex3fvSUN".}
-proc glNormal3fVertex3fSUN*(nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, 
-                            x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glNormal3fVertex3fSUN".}
-proc glNormal3fVertex3fvSUN*(n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glNormal3fVertex3fvSUN".}
-proc glColor4fNormal3fVertex3fSUN*(r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-                                   a: TGLfloat, nx: TGLfloat, ny: TGLfloat, 
-                                   nz: TGLfloat, x: TGLfloat, y: TGLfloat, 
-                                   z: TGLfloat){.dynlib: dllname, 
-    importc: "glColor4fNormal3fVertex3fSUN".}
-proc glColor4fNormal3fVertex3fvSUN*(c: PGLfloat, n: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glColor4fNormal3fVertex3fvSUN".}
-proc glTexCoord2fVertex3fSUN*(s: TGLfloat, t: TGLfloat, x: TGLfloat, 
-                              y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fVertex3fSUN".}
-proc glTexCoord2fVertex3fvSUN*(tc: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fVertex3fvSUN".}
-proc glTexCoord4fVertex4fSUN*(s: TGLfloat, t: TGLfloat, p: TGLfloat, 
-                              q: TGLfloat, x: TGLfloat, y: TGLfloat, 
-                              z: TGLfloat, w: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fVertex4fSUN".}
-proc glTexCoord4fVertex4fvSUN*(tc: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fVertex4fvSUN".}
-proc glTexCoord2fColor4ubVertex3fSUN*(s: TGLfloat, t: TGLfloat, r: TGLubyte, 
-                                      g: TGLubyte, b: TGLubyte, a: TGLubyte, 
-                                      x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4ubVertex3fSUN".}
-proc glTexCoord2fColor4ubVertex3fvSUN*(tc: PGLfloat, c: PGLubyte, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4ubVertex3fvSUN".}
-proc glTexCoord2fColor3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, r: TGLfloat, 
-                                     g: TGLfloat, b: TGLfloat, x: TGLfloat, 
-                                     y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord2fColor3fVertex3fSUN".}
-proc glTexCoord2fColor3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor3fVertex3fvSUN".}
-proc glTexCoord2fNormal3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, nx: TGLfloat, 
-                                      ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-                                      y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fNormal3fVertex3fSUN".}
-proc glTexCoord2fNormal3fVertex3fvSUN*(tc: PGLfloat, n: PGLfloat, v: PGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fNormal3fVertex3fvSUN".}
-proc glTexCoord2fColor4fNormal3fVertex3fSUN*(s: TGLfloat, t: TGLfloat, 
-    r: TGLfloat, g: TGLfloat, b: TGLfloat, a: TGLfloat, nx: TGLfloat, 
-    ny: TGLfloat, nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glTexCoord2fColor4fNormal3fVertex3fSUN".}
-proc glTexCoord2fColor4fNormal3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glTexCoord2fColor4fNormal3fVertex3fvSUN".}
-proc glTexCoord4fColor4fNormal3fVertex4fSUN*(s: TGLfloat, t: TGLfloat, 
-    p: TGLfloat, q: TGLfloat, r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-    a: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat, w: TGLfloat){.dynlib: dllname, 
-    importc: "glTexCoord4fColor4fNormal3fVertex4fSUN".}
-proc glTexCoord4fColor4fNormal3fVertex4fvSUN*(tc: PGLfloat, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glTexCoord4fColor4fNormal3fVertex4fvSUN".}
-proc glReplacementCodeuiVertex3fSUN*(rc: TGLuint, x: TGLfloat, y: TGLfloat, 
-                                     z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiVertex3fSUN".}
-proc glReplacementCodeuiVertex3fvSUN*(rc: PGLuint, v: PGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiVertex3fvSUN".}
-proc glReplacementCodeuiColor4ubVertex3fSUN*(rc: TGLuint, r: TGLubyte, 
-    g: TGLubyte, b: TGLubyte, a: TGLubyte, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiColor4ubVertex3fSUN".}
-proc glReplacementCodeuiColor4ubVertex3fvSUN*(rc: PGLuint, c: PGLubyte, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiColor4ubVertex3fvSUN".}
-proc glReplacementCodeuiColor3fVertex3fSUN*(rc: TGLuint, r: TGLfloat, 
-    g: TGLfloat, b: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiColor3fVertex3fSUN".}
-proc glReplacementCodeuiColor3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiColor3fVertex3fvSUN".}
-proc glReplacementCodeuiNormal3fVertex3fSUN*(rc: TGLuint, nx: TGLfloat, 
-    ny: TGLfloat, nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.
-    dynlib: dllname, importc: "glReplacementCodeuiNormal3fVertex3fSUN".}
-proc glReplacementCodeuiNormal3fVertex3fvSUN*(rc: PGLuint, n: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiColor4fNormal3fVertex3fSUN*(rc: TGLuint, r: TGLfloat, 
-    g: TGLfloat, b: TGLfloat, a: TGLfloat, nx: TGLfloat, ny: TGLfloat, 
-    nz: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiColor4fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiColor4fNormal3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 
-    n: PGLfloat, v: PGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiColor4fNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fVertex3fSUN*(rc: TGLuint, s: TGLfloat, 
-    t: TGLfloat, x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fVertex3fvSUN*(rc: PGLuint, tc: PGLfloat, 
-    v: PGLfloat){.dynlib: dllname, 
-                  importc: "glReplacementCodeuiTexCoord2fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN*(rc: TGLuint, s: TGLfloat, 
-    t: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN*(rc: PGLuint, 
-    tc: PGLfloat, n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN".}
-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN*(rc: TGLuint, 
-    s: TGLfloat, t: TGLfloat, r: TGLfloat, g: TGLfloat, b: TGLfloat, 
-    a: TGLfloat, nx: TGLfloat, ny: TGLfloat, nz: TGLfloat, x: TGLfloat, 
-    y: TGLfloat, z: TGLfloat){.dynlib: dllname, importc: "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN".}
-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN*(rc: PGLuint, 
-    tc: PGLfloat, c: PGLfloat, n: PGLfloat, v: PGLfloat){.dynlib: dllname, 
-    importc: "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN".}
-  #***** GL_ARB_fragment_program *****//
-const 
-  GL_FRAGMENT_PROGRAM_ARB* = 0x00008804 # GL_PROGRAM_FORMAT_ASCII_ARB  { already defined }
-                                        # GL_PROGRAM_LENGTH_ARB  { already defined }
-                                        # GL_PROGRAM_FORMAT_ARB  { already defined }
-                                        # GL_PROGRAM_BINDING_ARB  { already defined }
-                                        # GL_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-                                        # GL_PROGRAM_TEMPORARIES_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_TEMPORARIES_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-                                        # GL_PROGRAM_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_ATTRIBS_ARB  { already defined }
-                                        # GL_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB  { already defined }
-                                        # GL_MAX_PROGRAM_ENV_PARAMETERS_ARB  { already defined }
-                                        # GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB  { already defined }
-  GL_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x00008805
-  GL_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x00008806
-  GL_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x00008807
-  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x00008808
-  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x00008809
-  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x0000880A
-  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x0000880B
-  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x0000880C
-  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x0000880D
-  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x0000880E
-  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x0000880F
-  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x00008810 # GL_PROGRAM_STRING_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_PROGRAM_ERROR_POSITION_ARB  { already defined }
-                                                           # GL_CURRENT_MATRIX_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_TRANSPOSE_CURRENT_MATRIX_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_CURRENT_MATRIX_STACK_DEPTH_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_MAX_PROGRAM_MATRICES_ARB  { already defined }
-                                                           # 
-                                                           # 
-                                                           # GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB  { already defined }
-  GL_MAX_TEXTURE_COORDS_ARB* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008872 # GL_PROGRAM_ERROR_STRING_ARB  { already defined }
-                                               # GL_MATRIX0_ARB  { already defined }
-                                               # GL_MATRIX1_ARB  { already defined }
-                                               # GL_MATRIX2_ARB  { already defined }
-                                               # GL_MATRIX3_ARB  { already defined }
-                                               # GL_MATRIX4_ARB  { already defined }
-                                               # GL_MATRIX5_ARB  { already defined }
-                                               # GL_MATRIX6_ARB  { already defined }
-                                               # GL_MATRIX7_ARB  { already defined }
-                                               # GL_MATRIX8_ARB  { already defined }
-                                               # GL_MATRIX9_ARB  { already defined }
-                                               # GL_MATRIX10_ARB  { already defined }
-                                               # GL_MATRIX11_ARB  { already defined }
-                                               # GL_MATRIX12_ARB  { already defined }
-                                               # GL_MATRIX13_ARB  { already defined }
-                                               # GL_MATRIX14_ARB  { already defined }
-                                               # GL_MATRIX15_ARB  { already defined }
-                                               # GL_MATRIX16_ARB  { already defined }
-                                               # GL_MATRIX17_ARB  { already defined }
-                                               # GL_MATRIX18_ARB  { already defined }
-                                               # GL_MATRIX19_ARB  { already defined }
-                                               # GL_MATRIX20_ARB  { already defined }
-                                               # GL_MATRIX21_ARB  { already defined }
-                                               # GL_MATRIX22_ARB  { already defined }
-                                               # GL_MATRIX23_ARB  { already defined }
-                                               # GL_MATRIX24_ARB  { already defined }
-                                               # GL_MATRIX25_ARB  { already defined }
-                                               # GL_MATRIX26_ARB  { already defined }
-                                               # GL_MATRIX27_ARB  { already defined }
-                                               # GL_MATRIX28_ARB  { already defined }
-                                               # GL_MATRIX29_ARB  { already defined }
-                                               # GL_MATRIX30_ARB  { already defined }
-                                               # GL_MATRIX31_ARB  { already defined }
-                                               # glProgramStringARB  { already defined }
-                                               # glBindProgramARB  { already defined }
-                                               # glDeleteProgramsARB  { already defined }
-                                               # glGenProgramsARB  { already defined }
-                                               # glProgramEnvParameter4dARB  { already defined }
-                                               # glProgramEnvParameter4dvARB  { already defined }
-                                               # glProgramEnvParameter4fARB  { already defined }
-                                               # glProgramEnvParameter4fvARB  { already defined }
-                                               # glProgramLocalParameter4dARB  { already defined }
-                                               # glProgramLocalParameter4dvARB  { already defined }
-                                               # glProgramLocalParameter4fARB  { already defined }
-                                               # glProgramLocalParameter4fvARB  { already defined }
-                                               # glGetProgramEnvParameterdvARB  { already defined }
-                                               # glGetProgramEnvParameterfvARB  { already defined }
-                                               # glGetProgramLocalParameterdvARB  { already defined }
-                                               # glGetProgramLocalParameterfvARB  { already defined }
-                                               # glGetProgramivARB  { already defined }
-                                               # glGetProgramStringARB  { already defined }
-                                               # glIsProgramARB  { already defined }
-  #***** GL_ATI_text_fragment_shader *****
-
-const 
-  GL_TEXT_FRAGMENT_SHADER_ATI* = 0x00008200 #***** GL_ARB_vertex_buffer_object *****
-
-const 
-  GL_BUFFER_SIZE_ARB* = 0x00008764
-  GL_BUFFER_USAGE_ARB* = 0x00008765
-  GL_ARRAY_BUFFER_ARB* = 0x00008892
-  GL_ELEMENT_ARRAY_BUFFER_ARB* = 0x00008893
-  GL_ARRAY_BUFFER_BINDING_ARB* = 0x00008894
-  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB* = 0x00008895
-  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008896
-  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB* = 0x00008897
-  GL_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x00008898
-  GL_INDEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008899
-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB* = 0x0000889A
-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB* = 0x0000889B
-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x0000889C
-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB* = 0x0000889D
-  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB* = 0x0000889E
-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB* = 0x0000889F
-  GL_READ_ONLY_ARB* = 0x000088B8
-  GL_WRITE_ONLY_ARB* = 0x000088B9
-  GL_READ_WRITE_ARB* = 0x000088BA
-  GL_BUFFER_ACCESS_ARB* = 0x000088BB
-  GL_BUFFER_MAPPED_ARB* = 0x000088BC
-  GL_BUFFER_MAP_POINTER_ARB* = 0x000088BD
-  GL_STREAM_DRAW_ARB* = 0x000088E0
-  GL_STREAM_READ_ARB* = 0x000088E1
-  GL_STREAM_COPY_ARB* = 0x000088E2
-  GL_STATIC_DRAW_ARB* = 0x000088E4
-  GL_STATIC_READ_ARB* = 0x000088E5
-  GL_STATIC_COPY_ARB* = 0x000088E6
-  GL_DYNAMIC_DRAW_ARB* = 0x000088E8
-  GL_DYNAMIC_READ_ARB* = 0x000088E9
-  GL_DYNAMIC_COPY_ARB* = 0x000088EA
-
-proc glBindBufferARB*(target: TGLenum, buffer: TGLuint){.dynlib: dllname, 
-    importc: "glBindBufferARB".}
-proc glDeleteBuffersARB*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteBuffersARB".}
-proc glGenBuffersARB*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenBuffersARB".}
-proc glIsBufferARB*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsBufferARB".}
-proc glBufferDataARB*(target: TGLenum, size: TGLsizei, data: PGLvoid, 
-                      usage: TGLenum){.dynlib: dllname, 
-                                       importc: "glBufferDataARB".}
-proc glBufferSubDataARB*(target: TGLenum, offset: TGLint, size: TGLsizei, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glBufferSubDataARB".}
-proc glGetBufferSubDataARB*(target: TGLenum, offset: TGLint, size: TGLsizei, 
-                            data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetBufferSubDataARB".}
-proc glMapBufferARB*(target: TGLenum, access: TGLenum): PGLvoid{.
-    dynlib: dllname, importc: "glMapBufferARB".}
-proc glUnmapBufferARB*(target: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glUnmapBufferARB".}
-proc glGetBufferParameterivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetBufferParameterivARB".}
-proc glGetBufferPointervARB*(target: TGLenum, pname: TGLenum, params: PPGLvoid){.
-    dynlib: dllname, importc: "glGetBufferPointervARB".}
-  #***** GL_APPLE_client_storage *****//
-const 
-  GL_UNPACK_CLIENT_STORAGE_APPLE* = 0x000085B2
-  #***** GL_APPLE_element_array *****//
-
-const 
-  GL_ELEMENT_ARRAY_APPLE* = 0x00008768
-  GL_ELEMENT_ARRAY_TYPE_APPLE* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_APPLE* = 0x0000876A
-
-proc glElementPointerAPPLE*(thetype: TGLenum, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glElementPointerAPPLE".}
-proc glDrawElementArrayAPPLE*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawElementArrayAPPLE".}
-proc glDrawRangeElementArrayAPPLE*(mode: TGLenum, start: TGLuint, 
-                                   theend: TGLuint, first: TGLint, 
-                                   count: TGLsizei){.dynlib: dllname, 
-    importc: "glDrawRangeElementArrayAPPLE".}
-proc glMultiDrawElementArrayAPPLE*(mode: TGLenum, first: PGLint, 
-                                   count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElementArrayAPPLE".}
-proc glMultiDrawRangeElementArrayAPPLE*(mode: TGLenum, start: TGLuint, 
-                                        theend: TGLuint, first: PGLint, 
-                                        count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawRangeElementArrayAPPLE".}
-  #***** GL_APPLE_fence *****//
-const 
-  GL_DRAW_PIXELS_APPLE* = 0x00008A0A
-  GL_FENCE_APPLE* = 0x00008A0B
-
-proc glGenFencesAPPLE*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glGenFencesAPPLE".}
-proc glDeleteFencesAPPLE*(n: TGLsizei, fences: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteFencesAPPLE".}
-proc glSetFenceAPPLE*(fence: TGLuint){.dynlib: dllname, 
-                                       importc: "glSetFenceAPPLE".}
-proc glIsFenceAPPLE*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFenceAPPLE".}
-proc glTestFenceAPPLE*(fence: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glTestFenceAPPLE".}
-proc glFinishFenceAPPLE*(fence: TGLuint){.dynlib: dllname, 
-    importc: "glFinishFenceAPPLE".}
-proc glTestObjectAPPLE*(theobject: TGLenum, name: TGLuint): TGLboolean{.
-    dynlib: dllname, importc: "glTestObjectAPPLE".}
-proc glFinishObjectAPPLE*(theobject: TGLenum, name: TGLint){.dynlib: dllname, 
-    importc: "glFinishObjectAPPLE".}
-  #***** GL_APPLE_vertex_array_object *****//
-const 
-  GL_VERTEX_ARRAY_BINDING_APPLE* = 0x000085B5
-
-proc glBindVertexArrayAPPLE*(thearray: TGLuint){.dynlib: dllname, 
-    importc: "glBindVertexArrayAPPLE".}
-proc glDeleteVertexArraysAPPLE*(n: TGLsizei, arrays: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteVertexArraysAPPLE".}
-proc glGenVertexArraysAPPLE*(n: TGLsizei, arrays: PGLuint){.dynlib: dllname, 
-    importc: "glGenVertexArraysAPPLE".}
-proc glIsVertexArrayAPPLE*(thearray: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsVertexArrayAPPLE".}
-  #***** GL_APPLE_vertex_array_range *****//
-const 
-  constGL_VERTEX_ARRAY_RANGE_APPLE* = 0x0000851D
-  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE* = 0x0000851E
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE* = 0x00008520
-  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE* = 0x00008521
-  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE* = 0x0000851F
-  GL_STORAGE_CACHED_APPLE* = 0x000085BE
-  GL_STORAGE_SHARED_APPLE* = 0x000085BF
-
-proc glVertexArrayRangeAPPLE*(len: TGLsizei, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glVertexArrayRangeAPPLE".}
-proc glFlushVertexArrayRangeAPPLE*(len: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFlushVertexArrayRangeAPPLE".}
-proc glVertexArrayParameteriAPPLE*(pname: TGLenum, param: TGLint){.
-    dynlib: dllname, importc: "glVertexArrayParameteriAPPLE".}
-  #***** GL_ARB_matrix_palette *****//
-const 
-  GL_MATRIX_PALETTE_ARB* = 0x00008840
-  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB* = 0x00008841
-  GL_MAX_PALETTE_MATRICES_ARB* = 0x00008842
-  constGL_CURRENT_PALETTE_MATRIX_ARB* = 0x00008843
-  GL_MATRIX_INDEX_ARRAY_ARB* = 0x00008844
-  GL_CURRENT_MATRIX_INDEX_ARB* = 0x00008845
-  GL_MATRIX_INDEX_ARRAY_SIZE_ARB* = 0x00008846
-  GL_MATRIX_INDEX_ARRAY_TYPE_ARB* = 0x00008847
-  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB* = 0x00008848
-  GL_MATRIX_INDEX_ARRAY_POINTER_ARB* = 0x00008849
-
-proc glCurrentPaletteMatrixARB*(index: TGLint){.dynlib: dllname, 
-    importc: "glCurrentPaletteMatrixARB".}
-proc glMatrixIndexubvARB*(size: TGLint, indices: PGLubyte){.dynlib: dllname, 
-    importc: "glMatrixIndexubvARB".}
-proc glMatrixIndexusvARB*(size: TGLint, indices: PGLushort){.dynlib: dllname, 
-    importc: "glMatrixIndexusvARB".}
-proc glMatrixIndexuivARB*(size: TGLint, indices: PGLuint){.dynlib: dllname, 
-    importc: "glMatrixIndexuivARB".}
-proc glMatrixIndexPointerARB*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                              pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glMatrixIndexPointerARB".}
-  #***** GL_NV_element_array *****//
-const 
-  GL_ELEMENT_ARRAY_TYPE_NV* = 0x00008769
-  GL_ELEMENT_ARRAY_POINTER_NV* = 0x0000876A
-
-proc glElementPointerNV*(thetype: TGLenum, pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glElementPointerNV".}
-proc glDrawElementArrayNV*(mode: TGLenum, first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawElementArrayNV".}
-proc glDrawRangeElementArrayNV*(mode: TGLenum, start: TGLuint, theend: TGLuint, 
-                                first: TGLint, count: TGLsizei){.
-    dynlib: dllname, importc: "glDrawRangeElementArrayNV".}
-proc glMultiDrawElementArrayNV*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                                primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawElementArrayNV".}
-proc glMultiDrawRangeElementArrayNV*(mode: TGLenum, start: TGLuint, 
-                                     theend: TGLuint, first: PGLint, 
-                                     count: PGLsizei, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawRangeElementArrayNV".}
-  #***** GL_NV_float_buffer *****//
-const 
-  GL_FLOAT_R_NV* = 0x00008880
-  GL_FLOAT_RG_NV* = 0x00008881
-  GL_FLOAT_RGB_NV* = 0x00008882
-  GL_FLOAT_RGBA_NV* = 0x00008883
-  GL_FLOAT_R16_NV* = 0x00008884
-  GL_FLOAT_R32_NV* = 0x00008885
-  GL_FLOAT_RG16_NV* = 0x00008886
-  GL_FLOAT_RG32_NV* = 0x00008887
-  GL_FLOAT_RGB16_NV* = 0x00008888
-  GL_FLOAT_RGB32_NV* = 0x00008889
-  GL_FLOAT_RGBA16_NV* = 0x0000888A
-  GL_FLOAT_RGBA32_NV* = 0x0000888B
-  GL_TEXTURE_FLOAT_COMPONENTS_NV* = 0x0000888C
-  GL_FLOAT_CLEAR_COLOR_VALUE_NV* = 0x0000888D
-  GL_FLOAT_RGBA_MODE_NV* = 0x0000888E
-  #***** GL_NV_fragment_program *****//
-
-const 
-  GL_FRAGMENT_PROGRAM_NV* = 0x00008870
-  GL_MAX_TEXTURE_COORDS_NV* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS_NV* = 0x00008872
-  GL_FRAGMENT_PROGRAM_BINDING_NV* = 0x00008873
-  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV* = 0x00008868
-  GL_PROGRAM_ERROR_STRING_NV* = 0x00008874
-
-proc glProgramNamedParameter4fNV*(id: TGLuint, length: TGLsizei, name: PGLubyte, 
-                                  x: TGLfloat, y: TGLfloat, z: TGLfloat, 
-                                  w: TGLfloat){.dynlib: dllname, 
-    importc: "glProgramNamedParameter4fNV".}
-proc glProgramNamedParameter4dNV*(id: TGLuint, length: TGLsizei, name: PGLubyte, 
-                                  x: TGLdouble, y: TGLdouble, z: TGLdouble, 
-                                  w: TGLdouble){.dynlib: dllname, 
-    importc: "glProgramNamedParameter4dNV".}
-proc glGetProgramNamedParameterfvNV*(id: TGLuint, length: TGLsizei, 
-                                     name: PGLubyte, params: PGLfloat){.
-    dynlib: dllname, importc: "glGetProgramNamedParameterfvNV".}
-proc glGetProgramNamedParameterdvNV*(id: TGLuint, length: TGLsizei, 
-                                     name: PGLubyte, params: PGLdouble){.
-    dynlib: dllname, importc: "glGetProgramNamedParameterdvNV".}
-  # glProgramLocalParameter4dARB  { already defined }
-  # glProgramLocalParameter4dvARB  { already defined }
-  # glProgramLocalParameter4fARB  { already defined }
-  # glProgramLocalParameter4fvARB  { already defined }
-  # glGetProgramLocalParameterdvARB  { already defined }
-  # glGetProgramLocalParameterfvARB  { already defined }
-  #***** GL_NV_primitive_restart *****//
-const 
-  constGL_PRIMITIVE_RESTART_NV* = 0x00008558
-  constGL_PRIMITIVE_RESTART_INDEX_NV* = 0x00008559
-
-proc glPrimitiveRestartNV*(){.dynlib: dllname, importc: "glPrimitiveRestartNV".}
-proc glPrimitiveRestartIndexNV*(index: TGLuint){.dynlib: dllname, 
-    importc: "glPrimitiveRestartIndexNV".}
-  #***** GL_NV_vertex_program2 *****//
-  #***** GL_NV_pixel_data_range *****//
-const 
-  GL_WRITE_PIXEL_DATA_RANGE_NV* = 0x00008878
-  GL_READ_PIXEL_DATA_RANGE_NV* = 0x00008879
-  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887A
-  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887B
-  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887C
-  GL_READ_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887D
-
-proc glPixelDataRangeNV*(target: TGLenum, len: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glPixelDataRangeNV".}
-proc glFlushPixelDataRangeNV*(target: TGLenum){.dynlib: dllname, 
-    importc: "glFlushPixelDataRangeNV".}
-  # wglAllocateMemoryNV  { already defined }
-  # wglFreeMemoryNV  { already defined }
-  #***** GL_EXT_texture_rectangle *****//
-const 
-  GL_TEXTURE_RECTANGLE_EXT* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_EXT* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_EXT* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT* = 0x000084F8
-  #***** GL_S3_s3tc *****//
-
-const 
-  GL_RGB_S3TC* = 0x000083A0
-  GL_RGB4_S3TC* = 0x000083A1
-  GL_RGBA_S3TC* = 0x000083A2
-  GL_RGBA4_S3TC* = 0x000083A3
-  #***** GL_ATI_draw_buffers *****//
-
-const 
-  GL_MAX_DRAW_BUFFERS_ATI* = 0x00008824
-  GL_DRAW_BUFFER0_ATI* = 0x00008825
-  GL_DRAW_BUFFER1_ATI* = 0x00008826
-  GL_DRAW_BUFFER2_ATI* = 0x00008827
-  GL_DRAW_BUFFER3_ATI* = 0x00008828
-  GL_DRAW_BUFFER4_ATI* = 0x00008829
-  GL_DRAW_BUFFER5_ATI* = 0x0000882A
-  GL_DRAW_BUFFER6_ATI* = 0x0000882B
-  GL_DRAW_BUFFER7_ATI* = 0x0000882C
-  GL_DRAW_BUFFER8_ATI* = 0x0000882D
-  GL_DRAW_BUFFER9_ATI* = 0x0000882E
-  GL_DRAW_BUFFER10_ATI* = 0x0000882F
-  GL_DRAW_BUFFER11_ATI* = 0x00008830
-  GL_DRAW_BUFFER12_ATI* = 0x00008831
-  GL_DRAW_BUFFER13_ATI* = 0x00008832
-  GL_DRAW_BUFFER14_ATI* = 0x00008833
-  GL_DRAW_BUFFER15_ATI* = 0x00008834
-
-proc glDrawBuffersATI*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffersATI".}
-  #***** GL_ATI_texture_env_combine3 *****//
-const 
-  GL_MODULATE_ADD_ATI* = 0x00008744
-  GL_MODULATE_SIGNED_ADD_ATI* = 0x00008745
-  GL_MODULATE_SUBTRACT_ATI* = 0x00008746
-  #***** GL_ATI_texture_float *****//
-
-const 
-  GL_RGBA_FLOAT32_ATI* = 0x00008814
-  GL_RGB_FLOAT32_ATI* = 0x00008815
-  GL_ALPHA_FLOAT32_ATI* = 0x00008816
-  GL_INTENSITY_FLOAT32_ATI* = 0x00008817
-  GL_LUMINANCE_FLOAT32_ATI* = 0x00008818
-  GL_LUMINANCE_ALPHA_FLOAT32_ATI* = 0x00008819
-  GL_RGBA_FLOAT16_ATI* = 0x0000881A
-  GL_RGB_FLOAT16_ATI* = 0x0000881B
-  GL_ALPHA_FLOAT16_ATI* = 0x0000881C
-  GL_INTENSITY_FLOAT16_ATI* = 0x0000881D
-  GL_LUMINANCE_FLOAT16_ATI* = 0x0000881E
-  GL_LUMINANCE_ALPHA_FLOAT16_ATI* = 0x0000881F
-  #***** GL_NV_texture_expand_normal *****//
-
-const 
-  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV* = 0x0000888F
-  #***** GL_NV_half_float *****//
-
-const 
-  GL_HALF_FLOAT_NV* = 0x0000140B
-
-proc glVertex2hNV*(x: TGLushort, y: TGLushort){.dynlib: dllname, 
-    importc: "glVertex2hNV".}
-proc glVertex2hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex2hvNV".}
-proc glVertex3hNV*(x: TGLushort, y: TGLushort, z: TGLushort){.dynlib: dllname, 
-    importc: "glVertex3hNV".}
-proc glVertex3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex3hvNV".}
-proc glVertex4hNV*(x: TGLushort, y: TGLushort, z: TGLushort, w: TGLushort){.
-    dynlib: dllname, importc: "glVertex4hNV".}
-proc glVertex4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glVertex4hvNV".}
-proc glNormal3hNV*(nx: TGLushort, ny: TGLushort, nz: TGLushort){.
-    dynlib: dllname, importc: "glNormal3hNV".}
-proc glNormal3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glNormal3hvNV".}
-proc glColor3hNV*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glColor3hNV".}
-proc glColor3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glColor3hvNV".}
-proc glColor4hNV*(red: TGLushort, green: TGLushort, blue: TGLushort, 
-                  alpha: TGLushort){.dynlib: dllname, importc: "glColor4hNV".}
-proc glColor4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glColor4hvNV".}
-proc glTexCoord1hNV*(s: TGLushort){.dynlib: dllname, importc: "glTexCoord1hNV".}
-proc glTexCoord1hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord1hvNV".}
-proc glTexCoord2hNV*(s: TGLushort, t: TGLushort){.dynlib: dllname, 
-    importc: "glTexCoord2hNV".}
-proc glTexCoord2hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord2hvNV".}
-proc glTexCoord3hNV*(s: TGLushort, t: TGLushort, r: TGLushort){.dynlib: dllname, 
-    importc: "glTexCoord3hNV".}
-proc glTexCoord3hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord3hvNV".}
-proc glTexCoord4hNV*(s: TGLushort, t: TGLushort, r: TGLushort, q: TGLushort){.
-    dynlib: dllname, importc: "glTexCoord4hNV".}
-proc glTexCoord4hvNV*(v: PGLushort){.dynlib: dllname, importc: "glTexCoord4hvNV".}
-proc glMultiTexCoord1hNV*(target: TGLenum, s: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1hNV".}
-proc glMultiTexCoord1hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord1hvNV".}
-proc glMultiTexCoord2hNV*(target: TGLenum, s: TGLushort, t: TGLushort){.
-    dynlib: dllname, importc: "glMultiTexCoord2hNV".}
-proc glMultiTexCoord2hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord2hvNV".}
-proc glMultiTexCoord3hNV*(target: TGLenum, s: TGLushort, t: TGLushort, 
-                          r: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3hNV".}
-proc glMultiTexCoord3hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord3hvNV".}
-proc glMultiTexCoord4hNV*(target: TGLenum, s: TGLushort, t: TGLushort, 
-                          r: TGLushort, q: TGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4hNV".}
-proc glMultiTexCoord4hvNV*(target: TGLenum, v: PGLushort){.dynlib: dllname, 
-    importc: "glMultiTexCoord4hvNV".}
-proc glFogCoordhNV*(fog: TGLushort){.dynlib: dllname, importc: "glFogCoordhNV".}
-proc glFogCoordhvNV*(fog: PGLushort){.dynlib: dllname, importc: "glFogCoordhvNV".}
-proc glSecondaryColor3hNV*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glSecondaryColor3hNV".}
-proc glSecondaryColor3hvNV*(v: PGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3hvNV".}
-proc glVertexWeighthNV*(weight: TGLushort){.dynlib: dllname, 
-    importc: "glVertexWeighthNV".}
-proc glVertexWeighthvNV*(weight: PGLushort){.dynlib: dllname, 
-    importc: "glVertexWeighthvNV".}
-proc glVertexAttrib1hNV*(index: TGLuint, x: TGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib1hNV".}
-proc glVertexAttrib1hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib1hvNV".}
-proc glVertexAttrib2hNV*(index: TGLuint, x: TGLushort, y: TGLushort){.
-    dynlib: dllname, importc: "glVertexAttrib2hNV".}
-proc glVertexAttrib2hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib2hvNV".}
-proc glVertexAttrib3hNV*(index: TGLuint, x: TGLushort, y: TGLushort, 
-                         z: TGLushort){.dynlib: dllname, 
-                                        importc: "glVertexAttrib3hNV".}
-proc glVertexAttrib3hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib3hvNV".}
-proc glVertexAttrib4hNV*(index: TGLuint, x: TGLushort, y: TGLushort, 
-                         z: TGLushort, w: TGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4hNV".}
-proc glVertexAttrib4hvNV*(index: TGLuint, v: PGLushort){.dynlib: dllname, 
-    importc: "glVertexAttrib4hvNV".}
-proc glVertexAttribs1hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs1hvNV".}
-proc glVertexAttribs2hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs2hvNV".}
-proc glVertexAttribs3hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs3hvNV".}
-proc glVertexAttribs4hvNV*(index: TGLuint, n: TGLsizei, v: PGLushort){.
-    dynlib: dllname, importc: "glVertexAttribs4hvNV".}
-  #***** GL_ATI_map_object_buffer *****//
-proc glMapObjectBufferATI*(buffer: TGLuint): PGLvoid{.dynlib: dllname, 
-    importc: "glMapObjectBufferATI".}
-proc glUnmapObjectBufferATI*(buffer: TGLuint){.dynlib: dllname, 
-    importc: "glUnmapObjectBufferATI".}
-  #***** GL_ATI_separate_stencil *****//
-const 
-  GL_KEEP* = 0x00001E00
-  GL_ZERO* = 0x00000000
-  GL_REPLACE* = 0x00001E01
-  GL_INCR* = 0x00001E02
-  GL_DECR* = 0x00001E03
-  GL_INVERT* = 0x0000150A
-  GL_NEVER* = 0x00000200
-  GL_LESS* = 0x00000201
-  GL_LEQUAL* = 0x00000203
-  GL_GREATER* = 0x00000204
-  GL_GEQUAL* = 0x00000206
-  GL_EQUAL* = 0x00000202
-  GL_NOTEQUAL* = 0x00000205
-  GL_ALWAYS* = 0x00000207
-  GL_FRONT* = 0x00000404
-  GL_BACK* = 0x00000405
-  GL_FRONT_AND_BACK* = 0x00000408
-  GL_STENCIL_BACK_FUNC_ATI* = 0x00008800
-  GL_STENCIL_BACK_FAIL_ATI* = 0x00008801
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI* = 0x00008802
-  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI* = 0x00008803
-
-proc glStencilOpSeparateATI*(face: TGLenum, sfail: TGLenum, dpfail: TGLenum, 
-                             dppass: TGLenum){.dynlib: dllname, 
-    importc: "glStencilOpSeparateATI".}
-proc glStencilFuncSeparateATI*(frontfunc: TGLenum, backfunc: TGLenum, 
-                               theRef: TGLint, mask: TGLuint){.dynlib: dllname, 
-    importc: "glStencilFuncSeparateATI".}
-  #***** GL_ATI_vertex_attrib_array_object *****//
-proc glVertexAttribArrayObjectATI*(index: TGLuint, size: TGLint, 
-                                   thetype: TGLenum, normalized: TGLboolean, 
-                                   stride: TGLsizei, buffer: TGLuint, 
-                                   offset: TGLuint){.dynlib: dllname, 
-    importc: "glVertexAttribArrayObjectATI".}
-proc glGetVertexAttribArrayObjectfvATI*(index: TGLuint, pname: TGLenum, 
-                                        params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetVertexAttribArrayObjectfvATI".}
-proc glGetVertexAttribArrayObjectivATI*(index: TGLuint, pname: TGLenum, 
-                                        params: PGLint){.dynlib: dllname, 
-    importc: "glGetVertexAttribArrayObjectivATI".}
-  #***** GL_ARB_occlusion_query *****//
-const 
-  GL_SAMPLES_PASSED_ARB* = 0x00008914
-  GL_QUERY_COUNTER_BITS_ARB* = 0x00008864
-  GL_CURRENT_QUERY_ARB* = 0x00008865
-  GL_QUERY_RESULT_ARB* = 0x00008866
-  GL_QUERY_RESULT_AVAILABLE_ARB* = 0x00008867
-
-proc glGenQueriesARB*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenQueriesARB".}
-proc glDeleteQueriesARB*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteQueriesARB".}
-proc glIsQueryARB*(id: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsQueryARB".}
-proc glBeginQueryARB*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginQueryARB".}
-proc glEndQueryARB*(target: TGLenum){.dynlib: dllname, importc: "glEndQueryARB".}
-proc glGetQueryivARB*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryivARB".}
-proc glGetQueryObjectivARB*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryObjectivARB".}
-proc glGetQueryObjectuivARB*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetQueryObjectuivARB".}
-  #***** GL_ARB_shader_objects *****//
-const 
-  GL_PROGRAM_OBJECT_ARB* = 0x00008B40
-  GL_OBJECT_TYPE_ARB* = 0x00008B4E
-  GL_OBJECT_SUBTYPE_ARB* = 0x00008B4F
-  GL_OBJECT_DELETE_STATUS_ARB* = 0x00008B80
-  GL_OBJECT_COMPILE_STATUS_ARB* = 0x00008B81
-  GL_OBJECT_LINK_STATUS_ARB* = 0x00008B82
-  GL_OBJECT_VALIDATE_STATUS_ARB* = 0x00008B83
-  GL_OBJECT_INFO_LOG_LENGTH_ARB* = 0x00008B84
-  GL_OBJECT_ATTACHED_OBJECTS_ARB* = 0x00008B85
-  GL_OBJECT_ACTIVE_UNIFORMS_ARB* = 0x00008B86
-  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB* = 0x00008B87
-  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB* = 0x00008B88
-  GL_SHADER_OBJECT_ARB* = 0x00008B48
-  GL_FLOAT* = 0x00001406
-  GL_FLOAT_VEC2_ARB* = 0x00008B50
-  GL_FLOAT_VEC3_ARB* = 0x00008B51
-  GL_FLOAT_VEC4_ARB* = 0x00008B52
-  GL_INT* = 0x00001404
-  GL_INT_VEC2_ARB* = 0x00008B53
-  GL_INT_VEC3_ARB* = 0x00008B54
-  GL_INT_VEC4_ARB* = 0x00008B55
-  GL_BOOL_ARB* = 0x00008B56
-  GL_BOOL_VEC2_ARB* = 0x00008B57
-  GL_BOOL_VEC3_ARB* = 0x00008B58
-  GL_BOOL_VEC4_ARB* = 0x00008B59
-  GL_FLOAT_MAT2_ARB* = 0x00008B5A
-  GL_FLOAT_MAT3_ARB* = 0x00008B5B
-  GL_FLOAT_MAT4_ARB* = 0x00008B5C
-
-proc glDeleteObjectARB*(obj: GLhandleARB){.dynlib: dllname, 
-    importc: "glDeleteObjectARB".}
-proc glGetHandleARB*(pname: TGLenum): GLhandleARB{.dynlib: dllname, 
-    importc: "glGetHandleARB".}
-proc glDetachObjectARB*(containerObj: GLhandleARB, attachedObj: GLhandleARB){.
-    dynlib: dllname, importc: "glDetachObjectARB".}
-proc glCreateShaderObjectARB*(shaderType: TGLenum): GLhandleARB{.
-    dynlib: dllname, importc: "glCreateShaderObjectARB".}
-proc glShaderSourceARB*(shaderObj: GLhandleARB, count: TGLsizei, str: PGLvoid, 
-                        len: PGLint){.dynlib: dllname, 
-                                      importc: "glShaderSourceARB".}
-proc glCompileShaderARB*(shaderObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glCompileShaderARB".}
-proc glCreateProgramObjectARB*(): GLhandleARB{.dynlib: dllname, 
-    importc: "glCreateProgramObjectARB".}
-proc glAttachObjectARB*(containerObj: GLhandleARB, obj: GLhandleARB){.
-    dynlib: dllname, importc: "glAttachObjectARB".}
-proc glLinkProgramARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glLinkProgramARB".}
-proc glUseProgramObjectARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glUseProgramObjectARB".}
-proc glValidateProgramARB*(programObj: GLhandleARB){.dynlib: dllname, 
-    importc: "glValidateProgramARB".}
-proc glUniform1fARB*(location: TGLint, v0: TGLfloat){.dynlib: dllname, 
-    importc: "glUniform1fARB".}
-proc glUniform2fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat){.
-    dynlib: dllname, importc: "glUniform2fARB".}
-proc glUniform3fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat){.
-    dynlib: dllname, importc: "glUniform3fARB".}
-proc glUniform4fARB*(location: TGLint, v0: TGLfloat, v1: TGLfloat, v2: TGLfloat, 
-                     v3: TGLfloat){.dynlib: dllname, importc: "glUniform4fARB".}
-proc glUniform1iARB*(location: TGLint, v0: TGLint){.dynlib: dllname, 
-    importc: "glUniform1iARB".}
-proc glUniform2iARB*(location: TGLint, v0: TGLint, v1: TGLint){.dynlib: dllname, 
-    importc: "glUniform2iARB".}
-proc glUniform3iARB*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint){.
-    dynlib: dllname, importc: "glUniform3iARB".}
-proc glUniform4iARB*(location: TGLint, v0: TGLint, v1: TGLint, v2: TGLint, 
-                     v3: TGLint){.dynlib: dllname, importc: "glUniform4iARB".}
-proc glUniform1fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform1fvARB".}
-proc glUniform2fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform2fvARB".}
-proc glUniform3fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform3fvARB".}
-proc glUniform4fvARB*(location: TGLint, count: TGLsizei, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniform4fvARB".}
-proc glUniform1ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform1ivARB".}
-proc glUniform2ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform2ivARB".}
-proc glUniform3ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform3ivARB".}
-proc glUniform4ivARB*(location: TGLint, count: TGLsizei, value: PGLint){.
-    dynlib: dllname, importc: "glUniform4ivARB".}
-proc glUniformMatrix2fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix2fvARB".}
-proc glUniformMatrix3fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix3fvARB".}
-proc glUniformMatrix4fvARB*(location: TGLint, count: TGLsizei, 
-                            transpose: TGLboolean, value: PGLfloat){.
-    dynlib: dllname, importc: "glUniformMatrix4fvARB".}
-proc glGetObjectParameterfvARB*(obj: GLhandleARB, pname: TGLenum, 
-                                params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetObjectParameterfvARB".}
-proc glGetObjectParameterivARB*(obj: GLhandleARB, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetObjectParameterivARB".}
-proc glGetInfoLogARB*(obj: GLhandleARB, maxLength: TGLsizei, len: PGLsizei, 
-                      infoLog: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetInfoLogARB".}
-proc glGetAttachedObjectsARB*(containerObj: GLhandleARB, maxCount: TGLsizei, 
-                              count: PGLsizei, obj: PGLhandleARB){.
-    dynlib: dllname, importc: "glGetAttachedObjectsARB".}
-proc glGetUniformLocationARB*(programObj: GLhandleARB, name: PGLcharARB): TGLint{.
-    dynlib: dllname, importc: "glGetUniformLocationARB".}
-proc glGetActiveUniformARB*(programObj: GLhandleARB, index: TGLuint, 
-                            maxLength: TGLsizei, len: PGLsizei, size: PGLint, 
-                            thetype: PGLenum, name: PGLcharARB){.
-    dynlib: dllname, importc: "glGetActiveUniformARB".}
-proc glGetUniformfvARB*(programObj: GLhandleARB, location: TGLint, 
-                        params: PGLfloat){.dynlib: dllname, 
-    importc: "glGetUniformfvARB".}
-proc glGetUniformivARB*(programObj: GLhandleARB, location: TGLint, 
-                        params: PGLint){.dynlib: dllname, 
-    importc: "glGetUniformivARB".}
-proc glGetShaderSourceARB*(obj: GLhandleARB, maxLength: TGLsizei, len: PGLsizei, 
-                           source: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetShaderSourceARB".}
-const 
-  GL_VERTEX_SHADER_ARB* = 0x00008B31
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB* = 0x00008B4A
-  GL_MAX_VARYING_FLOATS_ARB* = 0x00008B4B # GL_MAX_VERTEX_ATTRIBS_ARB  { already defined }
-                                          # GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4D # 
-                                                        # 
-                                                        # GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-                                                        # 
-                                                        # 
-                                                        # GL_VERTEX_PROGRAM_POINT_SIZE_ARB  { already defined }
-                                                        # 
-                                                        # 
-                                                        # GL_VERTEX_PROGRAM_TWO_SIDE_ARB  { already defined }
-                                                        # GL_OBJECT_TYPE_ARB  { already defined }
-                                                        # GL_OBJECT_SUBTYPE_ARB  { already defined }
-  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB* = 0x00008B89
-  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB* = 0x00008B8A # GL_SHADER_OBJECT_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_CURRENT_VERTEX_ATTRIB_ARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB  { already defined }
-                                                          # GL_FLOAT  { already defined }
-                                                          # GL_FLOAT_VEC2_ARB  { already defined }
-                                                          # GL_FLOAT_VEC3_ARB  { already defined }
-                                                          # GL_FLOAT_VEC4_ARB  { already defined }
-                                                          # GL_FLOAT_MAT2_ARB  { already defined }
-                                                          # GL_FLOAT_MAT3_ARB  { already defined }
-                                                          # GL_FLOAT_MAT4_ARB  { already defined }
-                                                          # glVertexAttrib1fARB  { already defined }
-                                                          # glVertexAttrib1sARB  { already defined }
-                                                          # glVertexAttrib1dARB  { already defined }
-                                                          # glVertexAttrib2fARB  { already defined }
-                                                          # glVertexAttrib2sARB  { already defined }
-                                                          # glVertexAttrib2dARB  { already defined }
-                                                          # glVertexAttrib3fARB  { already defined }
-                                                          # glVertexAttrib3sARB  { already defined }
-                                                          # glVertexAttrib3dARB  { already defined }
-                                                          # glVertexAttrib4fARB  { already defined }
-                                                          # glVertexAttrib4sARB  { already defined }
-                                                          # glVertexAttrib4dARB  { already defined }
-                                                          # glVertexAttrib4NubARB  { already defined }
-                                                          # glVertexAttrib1fvARB  { already defined }
-                                                          # glVertexAttrib1svARB  { already defined }
-                                                          # glVertexAttrib1dvARB  { already defined }
-                                                          # glVertexAttrib2fvARB  { already defined }
-                                                          # glVertexAttrib2svARB  { already defined }
-                                                          # glVertexAttrib2dvARB  { already defined }
-                                                          # glVertexAttrib3fvARB  { already defined }
-                                                          # glVertexAttrib3svARB  { already defined }
-                                                          # glVertexAttrib3dvARB  { already defined }
-                                                          # glVertexAttrib4fvARB  { already defined }
-                                                          # glVertexAttrib4svARB  { already defined }
-                                                          # glVertexAttrib4dvARB  { already defined }
-                                                          # glVertexAttrib4ivARB  { already defined }
-                                                          # glVertexAttrib4bvARB  { already defined }
-                                                          # glVertexAttrib4ubvARB  { already defined }
-                                                          # glVertexAttrib4usvARB  { already defined }
-                                                          # glVertexAttrib4uivARB  { already defined }
-                                                          # glVertexAttrib4NbvARB  { already defined }
-                                                          # glVertexAttrib4NsvARB  { already defined }
-                                                          # glVertexAttrib4NivARB  { already defined }
-                                                          # glVertexAttrib4NubvARB  { already defined }
-                                                          # glVertexAttrib4NusvARB  { already defined }
-                                                          # glVertexAttrib4NuivARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glVertexAttribPointerARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glEnableVertexAttribArrayARB  { already defined }
-                                                          # 
-                                                          # 
-                                                          # glDisableVertexAttribArrayARB  { already defined }
-
-proc glBindAttribLocationARB*(programObj: GLhandleARB, index: TGLuint, 
-                              name: PGLcharARB){.dynlib: dllname, 
-    importc: "glBindAttribLocationARB".}
-proc glGetActiveAttribARB*(programObj: GLhandleARB, index: TGLuint, 
-                           maxLength: TGLsizei, len: PGLsizei, size: PGLint, 
-                           thetype: PGLenum, name: PGLcharARB){.dynlib: dllname, 
-    importc: "glGetActiveAttribARB".}
-proc glGetAttribLocationARB*(programObj: GLhandleARB, name: PGLcharARB): TGLint{.
-    dynlib: dllname, importc: "glGetAttribLocationARB".}
-  # glGetVertexAttribdvARB  { already defined }
-  # glGetVertexAttribfvARB  { already defined }
-  # glGetVertexAttribivARB  { already defined }
-  # glGetVertexAttribPointervARB  { already defined }
-  #***** GL_ARB_fragment_shader *****//
-const 
-  GL_FRAGMENT_SHADER_ARB* = 0x00008B30
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB* = 0x00008B49 # GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-                                                       # 
-                                                       # 
-                                                       # GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-                                                       # GL_OBJECT_TYPE_ARB  { already defined }
-                                                       # GL_OBJECT_SUBTYPE_ARB  { already defined }
-                                                       # GL_SHADER_OBJECT_ARB  { already defined }
-  #***** GL_ARB_shading_language_100 *****//
-  #***** GL_ARB_texture_non_power_of_two *****//
-  #***** GL_ARB_point_sprite *****//
-
-const 
-  GL_POINT_SPRITE_ARB* = 0x00008861
-  GL_COORD_REPLACE_ARB* = 0x00008862
-  #***** GL_EXT_depth_bounds_test *****//
-
-const 
-  constGL_DEPTH_BOUNDS_TEST_EXT* = 0x00008890
-  constGL_DEPTH_BOUNDS_EXT* = 0x00008891
-
-proc glDepthBoundsEXT*(zmin: TGLclampd, zmax: TGLclampd){.dynlib: dllname, 
-    importc: "glDepthBoundsEXT".}
-  #***** GL_EXT_texture_mirror_clamp *****//
-const 
-  GL_MIRROR_CLAMP_EXT* = 0x00008742
-  GL_MIRROR_CLAMP_TO_EDGE_EXT* = 0x00008743
-  GL_MIRROR_CLAMP_TO_BORDER_EXT* = 0x00008912
-  #***** GL_EXT_blend_equation_separate *****//
-
-const 
-  GL_BLEND_EQUATION_RGB_EXT* = 0x00008009
-  GL_BLEND_EQUATION_ALPHA_EXT* = 0x0000883D
-
-proc glBlendEquationSeparateEXT*(modeRGB: TGLenum, modeAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendEquationSeparateEXT".}
-  #***** GL_MESA_pack_invert *****//
-const 
-  GL_PACK_INVERT_MESA* = 0x00008758
-  #***** GL_MESA_ycbcr_texture *****//
-
-const 
-  GL_YCBCR_MESA* = 0x00008757
-  GL_UNSIGNED_SHORT_8_8_MESA* = 0x000085BA
-  GL_UNSIGNED_SHORT_8_8_REV_MESA* = 0x000085BB
-  #***** GL_ARB_fragment_program_shadow *****//
-  #***** GL_NV_fragment_program_option *****//
-  #***** GL_EXT_pixel_buffer_object *****//
-
-const 
-  GL_PIXEL_PACK_BUFFER_EXT* = 0x000088EB
-  GL_PIXEL_UNPACK_BUFFER_EXT* = 0x000088EC
-  GL_PIXEL_PACK_BUFFER_BINDING_EXT* = 0x000088ED
-  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT* = 0x000088EF
-  #***** GL_NV_fragment_program2 *****//
-
-const 
-  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV* = 0x000088F4
-  GL_MAX_PROGRAM_CALL_DEPTH_NV* = 0x000088F5
-  GL_MAX_PROGRAM_IF_DEPTH_NV* = 0x000088F6
-  GL_MAX_PROGRAM_LOOP_DEPTH_NV* = 0x000088F7
-  GL_MAX_PROGRAM_LOOP_COUNT_NV* = 0x000088F8
-  #***** GL_NV_vertex_program2_option *****//
-  # GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV  { already defined }
-  # GL_MAX_PROGRAM_CALL_DEPTH_NV  { already defined }
-  #***** GL_NV_vertex_program3 *****//
-  # GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  #***** GL_ARB_draw_buffers *****//
-
-const 
-  GL_MAX_DRAW_BUFFERS_ARB* = 0x00008824
-  GL_DRAW_BUFFER0_ARB* = 0x00008825
-  GL_DRAW_BUFFER1_ARB* = 0x00008826
-  GL_DRAW_BUFFER2_ARB* = 0x00008827
-  GL_DRAW_BUFFER3_ARB* = 0x00008828
-  GL_DRAW_BUFFER4_ARB* = 0x00008829
-  GL_DRAW_BUFFER5_ARB* = 0x0000882A
-  GL_DRAW_BUFFER6_ARB* = 0x0000882B
-  GL_DRAW_BUFFER7_ARB* = 0x0000882C
-  GL_DRAW_BUFFER8_ARB* = 0x0000882D
-  GL_DRAW_BUFFER9_ARB* = 0x0000882E
-  GL_DRAW_BUFFER10_ARB* = 0x0000882F
-  GL_DRAW_BUFFER11_ARB* = 0x00008830
-  GL_DRAW_BUFFER12_ARB* = 0x00008831
-  GL_DRAW_BUFFER13_ARB* = 0x00008832
-  GL_DRAW_BUFFER14_ARB* = 0x00008833
-  GL_DRAW_BUFFER15_ARB* = 0x00008834
-
-proc glDrawBuffersARB*(n: TGLsizei, bufs: PGLenum){.dynlib: dllname, 
-    importc: "glDrawBuffersARB".}
-  #***** GL_ARB_texture_rectangle *****//
-const 
-  GL_TEXTURE_RECTANGLE_ARB* = 0x000084F5
-  GL_TEXTURE_BINDING_RECTANGLE_ARB* = 0x000084F6
-  GL_PROXY_TEXTURE_RECTANGLE_ARB* = 0x000084F7
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB* = 0x000084F8
-  #***** GL_ARB_color_buffer_float *****//
-
-const 
-  GL_RGBA_FLOAT_MODE_ARB* = 0x00008820
-  GL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A
-  GL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B
-  GL_CLAMP_READ_COLOR_ARB* = 0x0000891C
-  GL_FIXED_ONLY_ARB* = 0x0000891D
-  WGL_TYPE_RGBA_FLOAT_ARB* = 0x000021A0
-
-proc glClampColorARB*(target: TGLenum, clamp: TGLenum){.dynlib: dllname, 
-    importc: "glClampColorARB".}
-  #***** GL_ARB_half_float_pixel *****//
-const 
-  GL_HALF_FLOAT_ARB* = 0x0000140B
-  #***** GL_ARB_texture_float *****//
-
-const 
-  GL_TEXTURE_RED_TYPE_ARB* = 0x00008C10
-  GL_TEXTURE_GREEN_TYPE_ARB* = 0x00008C11
-  GL_TEXTURE_BLUE_TYPE_ARB* = 0x00008C12
-  GL_TEXTURE_ALPHA_TYPE_ARB* = 0x00008C13
-  GL_TEXTURE_LUMINANCE_TYPE_ARB* = 0x00008C14
-  GL_TEXTURE_INTENSITY_TYPE_ARB* = 0x00008C15
-  GL_TEXTURE_DEPTH_TYPE_ARB* = 0x00008C16
-  GL_UNSIGNED_NORMALIZED_ARB* = 0x00008C17
-  GL_RGBA32F_ARB* = 0x00008814
-  GL_RGB32F_ARB* = 0x00008815
-  GL_ALPHA32F_ARB* = 0x00008816
-  GL_INTENSITY32F_ARB* = 0x00008817
-  GL_LUMINANCE32F_ARB* = 0x00008818
-  GL_LUMINANCE_ALPHA32F_ARB* = 0x00008819
-  GL_RGBA16F_ARB* = 0x0000881A
-  GL_RGB16F_ARB* = 0x0000881B
-  GL_ALPHA16F_ARB* = 0x0000881C
-  GL_INTENSITY16F_ARB* = 0x0000881D
-  GL_LUMINANCE16F_ARB* = 0x0000881E
-  GL_LUMINANCE_ALPHA16F_ARB* = 0x0000881F
-  #***** GL_EXT_texture_compression_dxt1 *****//
-  # GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  # GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-  #***** GL_ARB_pixel_buffer_object *****//
-
-const 
-  GL_PIXEL_PACK_BUFFER_ARB* = 0x000088EB
-  GL_PIXEL_UNPACK_BUFFER_ARB* = 0x000088EC
-  GL_PIXEL_PACK_BUFFER_BINDING_ARB* = 0x000088ED
-  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB* = 0x000088EF
-  #***** GL_EXT_framebuffer_object *****//
-
-const 
-  GL_FRAMEBUFFER_EXT* = 0x00008D40
-  GL_RENDERBUFFER_EXT* = 0x00008D41
-  GL_STENCIL_INDEX_EXT* = 0x00008D45
-  GL_STENCIL_INDEX1_EXT* = 0x00008D46
-  GL_STENCIL_INDEX4_EXT* = 0x00008D47
-  GL_STENCIL_INDEX8_EXT* = 0x00008D48
-  GL_STENCIL_INDEX16_EXT* = 0x00008D49
-  GL_RENDERBUFFER_WIDTH_EXT* = 0x00008D42
-  GL_RENDERBUFFER_HEIGHT_EXT* = 0x00008D43
-  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT* = 0x00008D44
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT* = 0x00008CD0
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT* = 0x00008CD1
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT* = 0x00008CD2
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT* = 0x00008CD3
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT* = 0x00008CD4
-  GL_COLOR_ATTACHMENT0_EXT* = 0x00008CE0
-  GL_COLOR_ATTACHMENT1_EXT* = 0x00008CE1
-  GL_COLOR_ATTACHMENT2_EXT* = 0x00008CE2
-  GL_COLOR_ATTACHMENT3_EXT* = 0x00008CE3
-  GL_COLOR_ATTACHMENT4_EXT* = 0x00008CE4
-  GL_COLOR_ATTACHMENT5_EXT* = 0x00008CE5
-  GL_COLOR_ATTACHMENT6_EXT* = 0x00008CE6
-  GL_COLOR_ATTACHMENT7_EXT* = 0x00008CE7
-  GL_COLOR_ATTACHMENT8_EXT* = 0x00008CE8
-  GL_COLOR_ATTACHMENT9_EXT* = 0x00008CE9
-  GL_COLOR_ATTACHMENT10_EXT* = 0x00008CEA
-  GL_COLOR_ATTACHMENT11_EXT* = 0x00008CEB
-  GL_COLOR_ATTACHMENT12_EXT* = 0x00008CEC
-  GL_COLOR_ATTACHMENT13_EXT* = 0x00008CED
-  GL_COLOR_ATTACHMENT14_EXT* = 0x00008CEE
-  GL_COLOR_ATTACHMENT15_EXT* = 0x00008CEF
-  GL_DEPTH_ATTACHMENT_EXT* = 0x00008D00
-  GL_STENCIL_ATTACHMENT_EXT* = 0x00008D20
-  GL_FRAMEBUFFER_COMPLETE_EXT* = 0x00008CD5
-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT* = 0x00008CD6
-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT* = 0x00008CD7
-  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT* = 0x00008CD8
-  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT* = 0x00008CD9
-  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT* = 0x00008CDA
-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT* = 0x00008CDB
-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT* = 0x00008CDC
-  GL_FRAMEBUFFER_UNSUPPORTED_EXT* = 0x00008CDD
-  GL_FRAMEBUFFER_STATUS_ERROR_EXT* = 0x00008CDE
-  GL_FRAMEBUFFER_BINDING_EXT* = 0x00008CA6
-  GL_RENDERBUFFER_BINDING_EXT* = 0x00008CA7
-  GL_MAX_COLOR_ATTACHMENTS_EXT* = 0x00008CDF
-  GL_MAX_RENDERBUFFER_SIZE_EXT* = 0x000084E8
-  GL_INVALID_FRAMEBUFFER_OPERATION_EXT* = 0x00000506
-
-proc glIsRenderbufferEXT*(renderbuffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsRenderbufferEXT".}
-proc glBindRenderbufferEXT*(target: TGLenum, renderbuffer: TGLuint){.
-    dynlib: dllname, importc: "glBindRenderbufferEXT".}
-proc glDeleteRenderbuffersEXT*(n: TGLsizei, renderbuffers: PGLuint){.
-    dynlib: dllname, importc: "glDeleteRenderbuffersEXT".}
-proc glGenRenderbuffersEXT*(n: TGLsizei, renderbuffers: PGLuint){.
-    dynlib: dllname, importc: "glGenRenderbuffersEXT".}
-proc glRenderbufferStorageEXT*(target: TGLenum, internalformat: TGLenum, 
-                               width: TGLsizei, height: TGLsizei){.
-    dynlib: dllname, importc: "glRenderbufferStorageEXT".}
-proc glGetRenderbufferParameterivEXT*(target: TGLenum, pname: TGLenum, 
-                                      params: PGLint){.dynlib: dllname, 
-    importc: "glGetRenderbufferParameterivEXT".}
-proc glIsFramebufferEXT*(framebuffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsFramebufferEXT".}
-proc glBindFramebufferEXT*(target: TGLenum, framebuffer: TGLuint){.
-    dynlib: dllname, importc: "glBindFramebufferEXT".}
-proc glDeleteFramebuffersEXT*(n: TGLsizei, framebuffers: PGLuint){.
-    dynlib: dllname, importc: "glDeleteFramebuffersEXT".}
-proc glGenFramebuffersEXT*(n: TGLsizei, framebuffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenFramebuffersEXT".}
-proc glCheckFramebufferStatusEXT*(target: TGLenum): TGLenum{.dynlib: dllname, 
-    importc: "glCheckFramebufferStatusEXT".}
-proc glFramebufferTexture1DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint){.dynlib: dllname, 
-    importc: "glFramebufferTexture1DEXT".}
-proc glFramebufferTexture2DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint){.dynlib: dllname, 
-    importc: "glFramebufferTexture2DEXT".}
-proc glFramebufferTexture3DEXT*(target: TGLenum, attachment: TGLenum, 
-                                textarget: TGLenum, texture: TGLuint, 
-                                level: TGLint, zoffset: TGLint){.
-    dynlib: dllname, importc: "glFramebufferTexture3DEXT".}
-proc glFramebufferRenderbufferEXT*(target: TGLenum, attachment: TGLenum, 
-                                   renderbuffertarget: TGLenum, 
-                                   renderbuffer: TGLuint){.dynlib: dllname, 
-    importc: "glFramebufferRenderbufferEXT".}
-proc glGetFramebufferAttachmentParameterivEXT*(target: TGLenum, 
-    attachment: TGLenum, pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glGetFramebufferAttachmentParameterivEXT".}
-proc glGenerateMipmapEXT*(target: TGLenum){.dynlib: dllname, 
-    importc: "glGenerateMipmapEXT".}
-  #***** GL_version_1_4 *****//
-const 
-  GL_BLEND_DST_RGB* = 0x000080C8
-  GL_BLEND_SRC_RGB* = 0x000080C9
-  GL_BLEND_DST_ALPHA* = 0x000080CA
-  GL_BLEND_SRC_ALPHA* = 0x000080CB
-  GL_POINT_SIZE_MIN* = 0x00008126
-  GL_POINT_SIZE_MAX* = 0x00008127
-  GL_POINT_FADE_THRESHOLD_SIZE* = 0x00008128
-  GL_POINT_DISTANCE_ATTENUATION* = 0x00008129
-  GL_GENERATE_MIPMAP* = 0x00008191
-  GL_GENERATE_MIPMAP_HINT* = 0x00008192
-  GL_DEPTH_COMPONENT16* = 0x000081A5
-  GL_DEPTH_COMPONENT24* = 0x000081A6
-  GL_DEPTH_COMPONENT32* = 0x000081A7
-  GL_MIRRORED_REPEAT* = 0x00008370
-  GL_FOG_COORDINATE_SOURCE* = 0x00008450
-  GL_FOG_COORDINATE* = 0x00008451
-  GL_FRAGMENT_DEPTH* = 0x00008452
-  GL_CURRENT_FOG_COORDINATE* = 0x00008453
-  GL_FOG_COORDINATE_ARRAY_TYPE* = 0x00008454
-  GL_FOG_COORDINATE_ARRAY_STRIDE* = 0x00008455
-  GL_FOG_COORDINATE_ARRAY_POINTER* = 0x00008456
-  GL_FOG_COORDINATE_ARRAY* = 0x00008457
-  GL_COLOR_SUM* = 0x00008458
-  GL_CURRENT_SECONDARY_COLOR* = 0x00008459
-  GL_SECONDARY_COLOR_ARRAY_SIZE* = 0x0000845A
-  GL_SECONDARY_COLOR_ARRAY_TYPE* = 0x0000845B
-  GL_SECONDARY_COLOR_ARRAY_STRIDE* = 0x0000845C
-  GL_SECONDARY_COLOR_ARRAY_POINTER* = 0x0000845D
-  GL_SECONDARY_COLOR_ARRAY* = 0x0000845E
-  GL_MAX_TEXTURE_LOD_BIAS* = 0x000084FD
-  GL_TEXTURE_FILTER_CONTROL* = 0x00008500
-  GL_TEXTURE_LOD_BIAS* = 0x00008501
-  GL_INCR_WRAP* = 0x00008507
-  GL_DECR_WRAP* = 0x00008508
-  GL_TEXTURE_DEPTH_SIZE* = 0x0000884A
-  GL_DEPTH_TEXTURE_MODE* = 0x0000884B
-  GL_TEXTURE_COMPARE_MODE* = 0x0000884C
-  GL_TEXTURE_COMPARE_FUNC* = 0x0000884D
-  GL_COMPARE_R_TO_TEXTURE* = 0x0000884E
-
-proc glBlendFuncSeparate*(sfactorRGB: TGLenum, dfactorRGB: TGLenum, 
-                          sfactorAlpha: TGLenum, dfactorAlpha: TGLenum){.
-    dynlib: dllname, importc: "glBlendFuncSeparate".}
-proc glFogCoordf*(coord: TGLfloat){.dynlib: dllname, importc: "glFogCoordf".}
-proc glFogCoordfv*(coord: PGLfloat){.dynlib: dllname, importc: "glFogCoordfv".}
-proc glFogCoordd*(coord: TGLdouble){.dynlib: dllname, importc: "glFogCoordd".}
-proc glFogCoorddv*(coord: PGLdouble){.dynlib: dllname, importc: "glFogCoorddv".}
-proc glFogCoordPointer*(thetype: TGLenum, stride: TGLsizei, pointer: PGLvoid){.
-    dynlib: dllname, importc: "glFogCoordPointer".}
-proc glMultiDrawArrays*(mode: TGLenum, first: PGLint, count: PGLsizei, 
-                        primcount: TGLsizei){.dynlib: dllname, 
-    importc: "glMultiDrawArrays".}
-proc glMultiDrawElements*(mode: TGLenum, count: PGLsizei, thetype: TGLenum, 
-                          indices: PGLvoid, primcount: TGLsizei){.
-    dynlib: dllname, importc: "glMultiDrawElements".}
-proc glPointParameterf*(pname: TGLenum, param: TGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterf".}
-proc glPointParameterfv*(pname: TGLenum, params: PGLfloat){.dynlib: dllname, 
-    importc: "glPointParameterfv".}
-proc glPointParameteri*(pname: TGLenum, param: TGLint){.dynlib: dllname, 
-    importc: "glPointParameteri".}
-proc glPointParameteriv*(pname: TGLenum, params: PGLint){.dynlib: dllname, 
-    importc: "glPointParameteriv".}
-proc glSecondaryColor3b*(red: TGLByte, green: TGLByte, blue: TGLByte){.
-    dynlib: dllname, importc: "glSecondaryColor3b".}
-proc glSecondaryColor3bv*(v: PGLbyte){.dynlib: dllname, 
-                                       importc: "glSecondaryColor3bv".}
-proc glSecondaryColor3d*(red: TGLdouble, green: TGLdouble, blue: TGLdouble){.
-    dynlib: dllname, importc: "glSecondaryColor3d".}
-proc glSecondaryColor3dv*(v: PGLdouble){.dynlib: dllname, 
-    importc: "glSecondaryColor3dv".}
-proc glSecondaryColor3f*(red: TGLfloat, green: TGLfloat, blue: TGLfloat){.
-    dynlib: dllname, importc: "glSecondaryColor3f".}
-proc glSecondaryColor3fv*(v: PGLfloat){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3fv".}
-proc glSecondaryColor3i*(red: TGLint, green: TGLint, blue: TGLint){.
-    dynlib: dllname, importc: "glSecondaryColor3i".}
-proc glSecondaryColor3iv*(v: PGLint){.dynlib: dllname, 
-                                      importc: "glSecondaryColor3iv".}
-proc glSecondaryColor3s*(red: TGLshort, green: TGLshort, blue: TGLshort){.
-    dynlib: dllname, importc: "glSecondaryColor3s".}
-proc glSecondaryColor3sv*(v: PGLshort){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3sv".}
-proc glSecondaryColor3ub*(red: TGLubyte, green: TGLubyte, blue: TGLubyte){.
-    dynlib: dllname, importc: "glSecondaryColor3ub".}
-proc glSecondaryColor3ubv*(v: PGLubyte){.dynlib: dllname, 
-    importc: "glSecondaryColor3ubv".}
-proc glSecondaryColor3ui*(red: TGLuint, green: TGLuint, blue: TGLuint){.
-    dynlib: dllname, importc: "glSecondaryColor3ui".}
-proc glSecondaryColor3uiv*(v: PGLuint){.dynlib: dllname, 
-                                        importc: "glSecondaryColor3uiv".}
-proc glSecondaryColor3us*(red: TGLushort, green: TGLushort, blue: TGLushort){.
-    dynlib: dllname, importc: "glSecondaryColor3us".}
-proc glSecondaryColor3usv*(v: PGLushort){.dynlib: dllname, 
-    importc: "glSecondaryColor3usv".}
-proc glSecondaryColorPointer*(size: TGLint, thetype: TGLenum, stride: TGLsizei, 
-                              pointer: PGLvoid){.dynlib: dllname, 
-    importc: "glSecondaryColorPointer".}
-proc glWindowPos2d*(x: TGLdouble, y: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos2d".}
-proc glWindowPos2dv*(v: PGLdouble){.dynlib: dllname, importc: "glWindowPos2dv".}
-proc glWindowPos2f*(x: TGLfloat, y: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos2f".}
-proc glWindowPos2fv*(v: PGLfloat){.dynlib: dllname, importc: "glWindowPos2fv".}
-proc glWindowPos2i*(x: TGLint, y: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos2i".}
-proc glWindowPos2iv*(v: PGLint){.dynlib: dllname, importc: "glWindowPos2iv".}
-proc glWindowPos2s*(x: TGLshort, y: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos2s".}
-proc glWindowPos2sv*(v: PGLshort){.dynlib: dllname, importc: "glWindowPos2sv".}
-proc glWindowPos3d*(x: TGLdouble, y: TGLdouble, z: TGLdouble){.dynlib: dllname, 
-    importc: "glWindowPos3d".}
-proc glWindowPos3dv*(v: PGLdouble){.dynlib: dllname, importc: "glWindowPos3dv".}
-proc glWindowPos3f*(x: TGLfloat, y: TGLfloat, z: TGLfloat){.dynlib: dllname, 
-    importc: "glWindowPos3f".}
-proc glWindowPos3fv*(v: PGLfloat){.dynlib: dllname, importc: "glWindowPos3fv".}
-proc glWindowPos3i*(x: TGLint, y: TGLint, z: TGLint){.dynlib: dllname, 
-    importc: "glWindowPos3i".}
-proc glWindowPos3iv*(v: PGLint){.dynlib: dllname, importc: "glWindowPos3iv".}
-proc glWindowPos3s*(x: TGLshort, y: TGLshort, z: TGLshort){.dynlib: dllname, 
-    importc: "glWindowPos3s".}
-proc glWindowPos3sv*(v: PGLshort){.dynlib: dllname, importc: "glWindowPos3sv".}
-  #***** GL_version_1_5 *****//
-const 
-  GL_BUFFER_SIZE* = 0x00008764
-  GL_BUFFER_USAGE* = 0x00008765
-  GL_QUERY_COUNTER_BITS* = 0x00008864
-  GL_CURRENT_QUERY* = 0x00008865
-  GL_QUERY_RESULT* = 0x00008866
-  GL_QUERY_RESULT_AVAILABLE* = 0x00008867
-  GL_ARRAY_BUFFER* = 0x00008892
-  GL_ELEMENT_ARRAY_BUFFER* = 0x00008893
-  GL_ARRAY_BUFFER_BINDING* = 0x00008894
-  GL_ELEMENT_ARRAY_BUFFER_BINDING* = 0x00008895
-  GL_VERTEX_ARRAY_BUFFER_BINDING* = 0x00008896
-  GL_NORMAL_ARRAY_BUFFER_BINDING* = 0x00008897
-  GL_COLOR_ARRAY_BUFFER_BINDING* = 0x00008898
-  GL_INDEX_ARRAY_BUFFER_BINDING* = 0x00008899
-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING* = 0x0000889A
-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING* = 0x0000889B
-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING* = 0x0000889C
-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING* = 0x0000889D
-  GL_WEIGHT_ARRAY_BUFFER_BINDING* = 0x0000889E
-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING* = 0x0000889F
-  GL_READ_ONLY* = 0x000088B8
-  GL_WRITE_ONLY* = 0x000088B9
-  GL_READ_WRITE* = 0x000088BA
-  GL_BUFFER_ACCESS* = 0x000088BB
-  GL_BUFFER_MAPPED* = 0x000088BC
-  GL_BUFFER_MAP_POINTER* = 0x000088BD
-  GL_STREAM_DRAW* = 0x000088E0
-  GL_STREAM_READ* = 0x000088E1
-  GL_STREAM_COPY* = 0x000088E2
-  GL_STATIC_DRAW* = 0x000088E4
-  GL_STATIC_READ* = 0x000088E5
-  GL_STATIC_COPY* = 0x000088E6
-  GL_DYNAMIC_DRAW* = 0x000088E8
-  GL_DYNAMIC_READ* = 0x000088E9
-  GL_DYNAMIC_COPY* = 0x000088EA
-  GL_SAMPLES_PASSED* = 0x00008914
-  GL_FOG_COORD_SRC* = 0x00008450
-  GL_FOG_COORD* = 0x00008451
-  GL_CURRENT_FOG_COORD* = 0x00008453
-  GL_FOG_COORD_ARRAY_TYPE* = 0x00008454
-  GL_FOG_COORD_ARRAY_STRIDE* = 0x00008455
-  GL_FOG_COORD_ARRAY_POINTER* = 0x00008456
-  GL_FOG_COORD_ARRAY* = 0x00008457
-  GL_FOG_COORD_ARRAY_BUFFER_BINDING* = 0x0000889D
-  GL_SRC0_RGB* = 0x00008580
-  GL_SRC1_RGB* = 0x00008581
-  GL_SRC2_RGB* = 0x00008582
-  GL_SRC0_ALPHA* = 0x00008588
-  GL_SRC1_ALPHA* = 0x00008589
-  GL_SRC2_ALPHA* = 0x0000858A
-
-proc glGenQueries*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glGenQueries".}
-proc glDeleteQueries*(n: TGLsizei, ids: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteQueries".}
-proc glIsQuery*(id: TGLuint): TGLboolean{.dynlib: dllname, importc: "glIsQuery".}
-proc glBeginQuery*(target: TGLenum, id: TGLuint){.dynlib: dllname, 
-    importc: "glBeginQuery".}
-proc glEndQuery*(target: TGLenum){.dynlib: dllname, importc: "glEndQuery".}
-proc glGetQueryiv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryiv".}
-proc glGetQueryObjectiv*(id: TGLuint, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetQueryObjectiv".}
-proc glGetQueryObjectuiv*(id: TGLuint, pname: TGLenum, params: PGLuint){.
-    dynlib: dllname, importc: "glGetQueryObjectuiv".}
-proc glBindBuffer*(target: TGLenum, buffer: TGLuint){.dynlib: dllname, 
-    importc: "glBindBuffer".}
-proc glDeleteBuffers*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glDeleteBuffers".}
-proc glGenBuffers*(n: TGLsizei, buffers: PGLuint){.dynlib: dllname, 
-    importc: "glGenBuffers".}
-proc glIsBuffer*(buffer: TGLuint): TGLboolean{.dynlib: dllname, 
-    importc: "glIsBuffer".}
-proc glBufferData*(target: TGLenum, size: GLsizeiptr, data: PGLvoid, 
-                   usage: TGLenum){.dynlib: dllname, importc: "glBufferData".}
-proc glBufferSubData*(target: TGLenum, offset: GLintptr, size: GLsizeiptr, 
-                      data: PGLvoid){.dynlib: dllname, 
-                                      importc: "glBufferSubData".}
-proc glGetBufferSubData*(target: TGLenum, offset: GLintptr, size: GLsizeiptr, 
-                         data: PGLvoid){.dynlib: dllname, 
-    importc: "glGetBufferSubData".}
-proc glMapBuffer*(target: TGLenum, access: TGLenum): PGLvoid{.dynlib: dllname, 
-    importc: "glMapBuffer".}
-proc glUnmapBuffer*(target: TGLenum): TGLboolean{.dynlib: dllname, 
-    importc: "glUnmapBuffer".}
-proc glGetBufferParameteriv*(target: TGLenum, pname: TGLenum, params: PGLint){.
-    dynlib: dllname, importc: "glGetBufferParameteriv".}
-proc glGetBufferPointerv*(target: TGLenum, pname: TGLenum, params: PGLvoid){.
-    dynlib: dllname, importc: "glGetBufferPointerv".}
-  #***** GL_version_2_0 *****//
-const 
-  GL_BLEND_EQUATION_RGB* = 0x00008009
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED* = 0x00008622
-  GL_VERTEX_ATTRIB_ARRAY_SIZE* = 0x00008623
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE* = 0x00008624
-  GL_VERTEX_ATTRIB_ARRAY_TYPE* = 0x00008625
-  GL_CURRENT_VERTEX_ATTRIB* = 0x00008626
-  GL_VERTEX_PROGRAM_POINT_SIZE* = 0x00008642
-  GL_VERTEX_PROGRAM_TWO_SIDE* = 0x00008643
-  GL_VERTEX_ATTRIB_ARRAY_POINTER* = 0x00008645
-  GL_STENCIL_BACK_FUNC* = 0x00008800
-  GL_STENCIL_BACK_FAIL* = 0x00008801
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL* = 0x00008802
-  GL_STENCIL_BACK_PASS_DEPTH_PASS* = 0x00008803
-  GL_MAX_DRAW_BUFFERS* = 0x00008824
-  GL_DRAW_BUFFER0* = 0x00008825
-  GL_DRAW_BUFFER1* = 0x00008826
-  GL_DRAW_BUFFER2* = 0x00008827
-  GL_DRAW_BUFFER3* = 0x00008828
-  GL_DRAW_BUFFER4* = 0x00008829
-  GL_DRAW_BUFFER5* = 0x0000882A
-  GL_DRAW_BUFFER6* = 0x0000882B
-  GL_DRAW_BUFFER7* = 0x0000882C
-  GL_DRAW_BUFFER8* = 0x0000882D
-  GL_DRAW_BUFFER9* = 0x0000882E
-  GL_DRAW_BUFFER10* = 0x0000882F
-  GL_DRAW_BUFFER11* = 0x00008830
-  GL_DRAW_BUFFER12* = 0x00008831
-  GL_DRAW_BUFFER13* = 0x00008832
-  GL_DRAW_BUFFER14* = 0x00008833
-  GL_DRAW_BUFFER15* = 0x00008834
-  GL_BLEND_EQUATION_ALPHA* = 0x0000883D
-  GL_POINT_SPRITE* = 0x00008861
-  GL_COORD_REPLACE* = 0x00008862
-  GL_MAX_VERTEX_ATTRIBS* = 0x00008869
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED* = 0x0000886A
-  GL_MAX_TEXTURE_COORDS* = 0x00008871
-  GL_MAX_TEXTURE_IMAGE_UNITS* = 0x00008872
-  GL_FRAGMENT_SHADER* = 0x00008B30
-  GL_VERTEX_SHADER* = 0x00008B31
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008B49
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS* = 0x00008B4A
-  GL_MAX_VARYING_FLOATS* = 0x00008B4B
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS* = 0x00008B4C
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS* = 0x00008B4D
-  GL_SHADER_TYPE* = 0x00008B4F
-  GL_FLOAT_VEC2* = 0x00008B50
-  GL_FLOAT_VEC3* = 0x00008B51
-  GL_FLOAT_VEC4* = 0x00008B52
-  GL_INT_VEC2* = 0x00008B53
-  GL_INT_VEC3* = 0x00008B54
-  GL_INT_VEC4* = 0x00008B55
-  GL_BOOL* = 0x00008B56
-  GL_BOOL_VEC2* = 0x00008B57
-  GL_BOOL_VEC3* = 0x00008B58
-  GL_BOOL_VEC4* = 0x00008B59
-  GL_FLOAT_MAT2* = 0x00008B5A
-  GL_FLOAT_MAT3* = 0x00008B5B
-  GL_FLOAT_MAT4* = 0x00008B5C
-  GL_SAMPLER_1D* = 0x00008B5D
-  GL_SAMPLER_2D* = 0x00008B5E
-  GL_SAMPLER_3D* = 0x00008B5F
-  GL_SAMPLER_CUBE* = 0x00008B60
-  GL_SAMPLER_1D_SHADOW* = 0x00008B61
-  GL_SAMPLER_2D_SHADOW* = 0x00008B62
-  GL_DELETE_STATUS* = 0x00008B80
-  GL_COMPILE_STATUS* = 0x00008B81
-  GL_LINK_STATUS* = 0x00008B82
-  GL_VALIDATE_STATUS* = 0x00008B83
-  GL_INFO_LOG_LENGTH* = 0x00008B84
-  GL_ATTACHED_SHADERS* = 0x00008B85
-  GL_ACTIVE_UNIFORMS* = 0x00008B86
-  GL_ACTIVE_UNIFORM_MAX_LENGTH* = 0x00008B87
-  GL_SHADER_SOURCE_LENGTH* = 0x00008B88
-  GL_ACTIVE_ATTRIBUTES* = 0x00008B89
-  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH* = 0x00008B8A
-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT* = 0x00008B8B
-  GL_SHADING_LANGUAGE_VERSION* = 0x00008B8C
-  GL_CURRENT_PROGRAM* = 0x00008B8D
-  GL_POINT_SPRITE_COORD_ORIGIN* = 0x00008CA0
-  GL_LOWER_LEFT* = 0x00008CA1
-  GL_UPPER_LEFT* = 0x00008CA2
-  GL_STENCIL_BACK_REF* = 0x00008CA3
-  GL_STENCIL_BACK_VALUE_MASK* = 0x00008CA4
-  GL_STENCIL_BACK_WRITEMASK* = 0x00008CA5
-
-{.pop.}
\ No newline at end of file
diff --git a/lib/wrappers/opengl/glu.nim b/lib/wrappers/opengl/glu.nim
deleted file mode 100644
index e00120d83..000000000
--- a/lib/wrappers/opengl/glu.nim
+++ /dev/null
@@ -1,335 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)                        
-# For the latest updates, visit Delphi3D: http://www.delphi3d.net              
-#******************************************************************************
-
-import 
-  GL
-
-when defined(windows): 
-  {.push, callconv: stdcall.}
-else: 
-  {.push, callconv: cdecl.}
-
-when defined(windows): 
-  const 
-    dllname = "glu32.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib"
-else: 
-  const 
-    dllname = "libGLU.so.1"
-type 
-  TViewPortArray* = array[0..3, TGLint]
-  T16dArray* = array[0..15, TGLdouble]
-  TCallBack* = proc ()
-  T3dArray* = array[0..2, TGLdouble]
-  T4pArray* = array[0..3, Pointer]
-  T4fArray* = array[0..3, TGLfloat]
-  PPointer* = ptr Pointer
-
-type 
-  GLUnurbs*{.final.} = object 
-  PGLUnurbs* = ptr GLUnurbs
-  GLUquadric*{.final.} = object 
-  PGLUquadric* = ptr GLUquadric
-  GLUtesselator*{.final.} = object 
-  PGLUtesselator* = ptr GLUtesselator # backwards compatibility:
-  GLUnurbsObj* = GLUnurbs
-  PGLUnurbsObj* = PGLUnurbs
-  GLUquadricObj* = GLUquadric
-  PGLUquadricObj* = PGLUquadric
-  GLUtesselatorObj* = GLUtesselator
-  PGLUtesselatorObj* = PGLUtesselator
-  GLUtriangulatorObj* = GLUtesselator
-  PGLUtriangulatorObj* = PGLUtesselator
-  TGLUnurbs* = GLUnurbs
-  TGLUquadric* = GLUquadric
-  TGLUtesselator* = GLUtesselator
-  TGLUnurbsObj* = GLUnurbsObj
-  TGLUquadricObj* = GLUquadricObj
-  TGLUtesselatorObj* = GLUtesselatorObj
-  TGLUtriangulatorObj* = GLUtriangulatorObj
-
-proc gluErrorString*(errCode: TGLenum): cstring{.dynlib: dllname, 
-    importc: "gluErrorString".}
-proc gluErrorUnicodeStringEXT*(errCode: TGLenum): ptr int16{.dynlib: dllname, 
-    importc: "gluErrorUnicodeStringEXT".}
-proc gluGetString*(name: TGLenum): cstring{.dynlib: dllname, 
-    importc: "gluGetString".}
-proc gluOrtho2D*(left, right, bottom, top: TGLdouble){.dynlib: dllname, 
-    importc: "gluOrtho2D".}
-proc gluPerspective*(fovy, aspect, zNear, zFar: TGLdouble){.dynlib: dllname, 
-    importc: "gluPerspective".}
-proc gluPickMatrix*(x, y, width, height: TGLdouble, viewport: var TViewPortArray){.
-    dynlib: dllname, importc: "gluPickMatrix".}
-proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: TGLdouble){.
-    dynlib: dllname, importc: "gluLookAt".}
-proc gluProject*(objx, objy, objz: TGLdouble, 
-                 modelMatrix, projMatrix: var T16dArray, 
-                 viewport: var TViewPortArray, winx, winy, winz: PGLdouble): int{.
-    dynlib: dllname, importc: "gluProject".}
-proc gluUnProject*(winx, winy, winz: TGLdouble, 
-                   modelMatrix, projMatrix: var T16dArray, 
-                   viewport: var TViewPortArray, objx, objy, objz: PGLdouble): int{.
-    dynlib: dllname, importc: "gluUnProject".}
-proc gluScaleImage*(format: TGLenum, widthin, heightin: TGLint, typein: TGLenum, 
-                    datain: Pointer, widthout, heightout: TGLint, 
-                    typeout: TGLenum, dataout: Pointer): int{.dynlib: dllname, 
-    importc: "gluScaleImage".}
-proc gluBuild1DMipmaps*(target: TGLenum, components, width: TGLint, 
-                        format, atype: TGLenum, data: Pointer): int{.
-    dynlib: dllname, importc: "gluBuild1DMipmaps".}
-proc gluBuild2DMipmaps*(target: TGLenum, components, width, height: TGLint, 
-                        format, atype: TGLenum, data: Pointer): int{.
-    dynlib: dllname, importc: "gluBuild2DMipmaps".}
-proc gluNewQuadric*(): PGLUquadric{.dynlib: dllname, importc: "gluNewQuadric".}
-proc gluDeleteQuadric*(state: PGLUquadric){.dynlib: dllname, 
-    importc: "gluDeleteQuadric".}
-proc gluQuadricNormals*(quadObject: PGLUquadric, normals: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricNormals".}
-proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: TGLboolean){.
-    dynlib: dllname, importc: "gluQuadricTexture".}
-proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricOrientation".}
-proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: TGLenum){.
-    dynlib: dllname, importc: "gluQuadricDrawStyle".}
-proc gluCylinder*(qobj: PGLUquadric, baseRadius, topRadius, height: TGLdouble, 
-                  slices, stacks: TGLint){.dynlib: dllname, 
-    importc: "gluCylinder".}
-proc gluDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble, 
-              slices, loops: TGLint){.dynlib: dllname, importc: "gluDisk".}
-proc gluPartialDisk*(qobj: PGLUquadric, innerRadius, outerRadius: TGLdouble, 
-                     slices, loops: TGLint, startAngle, sweepAngle: TGLdouble){.
-    dynlib: dllname, importc: "gluPartialDisk".}
-proc gluSphere*(qobj: PGLuquadric, radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "gluSphere".}
-proc gluQuadricCallback*(qobj: PGLUquadric, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluQuadricCallback".}
-proc gluNewTess*(): PGLUtesselator{.dynlib: dllname, importc: "gluNewTess".}
-proc gluDeleteTess*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluDeleteTess".}
-proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: Pointer){.
-    dynlib: dllname, importc: "gluTessBeginPolygon".}
-proc gluTessBeginContour*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessBeginContour".}
-proc gluTessVertex*(tess: PGLUtesselator, coords: var T3dArray, data: Pointer){.
-    dynlib: dllname, importc: "gluTessVertex".}
-proc gluTessEndContour*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessEndContour".}
-proc gluTessEndPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluTessEndPolygon".}
-proc gluTessProperty*(tess: PGLUtesselator, which: TGLenum, value: TGLdouble){.
-    dynlib: dllname, importc: "gluTessProperty".}
-proc gluTessNormal*(tess: PGLUtesselator, x, y, z: TGLdouble){.dynlib: dllname, 
-    importc: "gluTessNormal".}
-proc gluTessCallback*(tess: PGLUtesselator, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluTessCallback".}
-proc gluGetTessProperty*(tess: PGLUtesselator, which: TGLenum, value: PGLdouble){.
-    dynlib: dllname, importc: "gluGetTessProperty".}
-proc gluNewNurbsRenderer*(): PGLUnurbs{.dynlib: dllname, 
-                                        importc: "gluNewNurbsRenderer".}
-proc gluDeleteNurbsRenderer*(nobj: PGLUnurbs){.dynlib: dllname, 
-    importc: "gluDeleteNurbsRenderer".}
-proc gluBeginSurface*(nobj: PGLUnurbs){.dynlib: dllname, 
-                                        importc: "gluBeginSurface".}
-proc gluBeginCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginCurve".}
-proc gluEndCurve*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndCurve".}
-proc gluEndSurface*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndSurface".}
-proc gluBeginTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluBeginTrim".}
-proc gluEndTrim*(nobj: PGLUnurbs){.dynlib: dllname, importc: "gluEndTrim".}
-proc gluPwlCurve*(nobj: PGLUnurbs, count: TGLint, aarray: PGLfloat, 
-                  stride: TGLint, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluPwlCurve".}
-proc gluNurbsCurve*(nobj: PGLUnurbs, nknots: TGLint, knot: PGLfloat, 
-                    stride: TGLint, ctlarray: PGLfloat, order: TGLint, 
-                    atype: TGLenum){.dynlib: dllname, importc: "gluNurbsCurve".}
-proc gluNurbsSurface*(nobj: PGLUnurbs, sknot_count: TGLint, sknot: PGLfloat, 
-                      tknot_count: TGLint, tknot: PGLfloat, 
-                      s_stride, t_stride: TGLint, ctlarray: PGLfloat, 
-                      sorder, torder: TGLint, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluNurbsSurface".}
-proc gluLoadSamplingMatrices*(nobj: PGLUnurbs, 
-                              modelMatrix, projMatrix: var T16dArray, 
-                              viewport: var TViewPortArray){.dynlib: dllname, 
-    importc: "gluLoadSamplingMatrices".}
-proc gluNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: TGLfloat){.
-    dynlib: dllname, importc: "gluNurbsProperty".}
-proc gluGetNurbsProperty*(nobj: PGLUnurbs, aproperty: TGLenum, value: PGLfloat){.
-    dynlib: dllname, importc: "gluGetNurbsProperty".}
-proc gluNurbsCallback*(nobj: PGLUnurbs, which: TGLenum, fn: TCallBack){.
-    dynlib: dllname, importc: "gluNurbsCallback".}
-  #*** Callback function prototypes ***
-type                          # gluQuadricCallback
-  GLUquadricErrorProc* = proc (p: TGLenum) # gluTessCallback
-  GLUtessBeginProc* = proc (p: TGLenum)
-  GLUtessEdgeFlagProc* = proc (p: TGLboolean)
-  GLUtessVertexProc* = proc (p: Pointer)
-  GLUtessEndProc* = proc ()
-  GLUtessErrorProc* = proc (p: TGLenum)
-  GLUtessCombineProc* = proc (p1: var T3dArray, p2: T4pArray, p3: T4fArray, 
-                              p4: PPointer)
-  GLUtessBeginDataProc* = proc (p1: TGLenum, p2: Pointer)
-  GLUtessEdgeFlagDataProc* = proc (p1: TGLboolean, p2: Pointer)
-  GLUtessVertexDataProc* = proc (p1, p2: Pointer)
-  GLUtessEndDataProc* = proc (p: Pointer)
-  GLUtessErrorDataProc* = proc (p1: TGLenum, p2: Pointer)
-  GLUtessCombineDataProc* = proc (p1: var T3dArray, p2: var T4pArray, 
-                                  p3: var T4fArray, p4: PPointer, p5: Pointer) # 
-                                                                               # 
-                                                                               # gluNurbsCallback
-  GLUnurbsErrorProc* = proc (p: TGLenum) #***           Generic constants               ****/
-
-const                         # Version
-  GLU_VERSION_1_1* = 1
-  GLU_VERSION_1_2* = 1        # Errors: (return value 0 = no error)
-  GLU_INVALID_ENUM* = 100900
-  GLU_INVALID_VALUE* = 100901
-  GLU_OUT_OF_MEMORY* = 100902
-  GLU_INCOMPATIBLE_GL_VERSION* = 100903 # StringName
-  GLU_VERSION* = 100800
-  GLU_EXTENSIONS* = 100801    # Boolean
-  GLU_TRUE* = GL_TRUE
-  GLU_FALSE* = GL_FALSE #***           Quadric constants               ****/
-                        # QuadricNormal
-  GLU_SMOOTH* = 100000
-  GLU_FLAT* = 100001
-  GLU_NONE* = 100002          # QuadricDrawStyle
-  GLU_POINT* = 100010
-  GLU_LINE* = 100011
-  GLU_FILL* = 100012
-  GLU_SILHOUETTE* = 100013    # QuadricOrientation
-  GLU_OUTSIDE* = 100020
-  GLU_INSIDE* = 100021        # Callback types:
-                              #      GLU_ERROR       = 100103;
-                              #***           Tesselation constants           ****/
-  GLU_TESS_MAX_COORD* = 1.00000e+150 # TessProperty
-  GLU_TESS_WINDING_RULE* = 100140
-  GLU_TESS_BOUNDARY_ONLY* = 100141
-  GLU_TESS_TOLERANCE* = 100142 # TessWinding
-  GLU_TESS_WINDING_ODD* = 100130
-  GLU_TESS_WINDING_NONZERO* = 100131
-  GLU_TESS_WINDING_POSITIVE* = 100132
-  GLU_TESS_WINDING_NEGATIVE* = 100133
-  GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134 # TessCallback
-  GLU_TESS_BEGIN* = 100100    # void (CALLBACK*)(TGLenum    type)
-  constGLU_TESS_VERTEX* = 100101 # void (CALLBACK*)(void      *data)
-  GLU_TESS_END* = 100102      # void (CALLBACK*)(void)
-  GLU_TESS_ERROR* = 100103    # void (CALLBACK*)(TGLenum    errno)
-  GLU_TESS_EDGE_FLAG* = 100104 # void (CALLBACK*)(TGLboolean boundaryEdge)
-  GLU_TESS_COMBINE* = 100105 # void (CALLBACK*)(TGLdouble  coords[3],
-                             #                                                            void      *data[4],
-                             #                                                            TGLfloat   weight[4],
-                             #                                                            void      **dataOut) 
-  GLU_TESS_BEGIN_DATA* = 100106 # void (CALLBACK*)(TGLenum    type,
-                                #                                                            void      *polygon_data) 
-  GLU_TESS_VERTEX_DATA* = 100107 # void (CALLBACK*)(void      *data,
-                                 #                                                            void      *polygon_data) 
-  GLU_TESS_END_DATA* = 100108 # void (CALLBACK*)(void      *polygon_data)
-  GLU_TESS_ERROR_DATA* = 100109 # void (CALLBACK*)(TGLenum    errno,
-                                #                                                            void      *polygon_data) 
-  GLU_TESS_EDGE_FLAG_DATA* = 100110 # void (CALLBACK*)(TGLboolean boundaryEdge,
-                                    #                                                            void      *polygon_data) 
-  GLU_TESS_COMBINE_DATA* = 100111 # void (CALLBACK*)(TGLdouble  coords[3],
-                                  #                                                            void      *data[4],
-                                  #                                                            TGLfloat   weight[4],
-                                  #                                                            void      **dataOut,
-                                  #                                                            void      *polygon_data) 
-                                  # TessError
-  GLU_TESS_ERROR1* = 100151
-  GLU_TESS_ERROR2* = 100152
-  GLU_TESS_ERROR3* = 100153
-  GLU_TESS_ERROR4* = 100154
-  GLU_TESS_ERROR5* = 100155
-  GLU_TESS_ERROR6* = 100156
-  GLU_TESS_ERROR7* = 100157
-  GLU_TESS_ERROR8* = 100158
-  GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1
-  GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2
-  GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3
-  GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4
-  GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5
-  GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6 #***           NURBS constants                 ****/
-                                                    # NurbsProperty
-  GLU_AUTO_LOAD_MATRIX* = 100200
-  GLU_CULLING* = 100201
-  GLU_SAMPLING_TOLERANCE* = 100203
-  GLU_DISPLAY_MODE* = 100204
-  GLU_PARAMETRIC_TOLERANCE* = 100202
-  GLU_SAMPLING_METHOD* = 100205
-  GLU_U_STEP* = 100206
-  GLU_V_STEP* = 100207        # NurbsSampling
-  GLU_PATH_LENGTH* = 100215
-  GLU_PARAMETRIC_ERROR* = 100216
-  GLU_DOMAIN_DISTANCE* = 100217 # NurbsTrim
-  GLU_MAP1_TRIM_2* = 100210
-  GLU_MAP1_TRIM_3* = 100211   # NurbsDisplay
-                              #      GLU_FILL                = 100012;
-  GLU_OUTLINE_POLYGON* = 100240
-  GLU_OUTLINE_PATCH* = 100241 # NurbsCallback
-                              #      GLU_ERROR               = 100103;
-                              # NurbsErrors
-  GLU_NURBS_ERROR1* = 100251
-  GLU_NURBS_ERROR2* = 100252
-  GLU_NURBS_ERROR3* = 100253
-  GLU_NURBS_ERROR4* = 100254
-  GLU_NURBS_ERROR5* = 100255
-  GLU_NURBS_ERROR6* = 100256
-  GLU_NURBS_ERROR7* = 100257
-  GLU_NURBS_ERROR8* = 100258
-  GLU_NURBS_ERROR9* = 100259
-  GLU_NURBS_ERROR10* = 100260
-  GLU_NURBS_ERROR11* = 100261
-  GLU_NURBS_ERROR12* = 100262
-  GLU_NURBS_ERROR13* = 100263
-  GLU_NURBS_ERROR14* = 100264
-  GLU_NURBS_ERROR15* = 100265
-  GLU_NURBS_ERROR16* = 100266
-  GLU_NURBS_ERROR17* = 100267
-  GLU_NURBS_ERROR18* = 100268
-  GLU_NURBS_ERROR19* = 100269
-  GLU_NURBS_ERROR20* = 100270
-  GLU_NURBS_ERROR21* = 100271
-  GLU_NURBS_ERROR22* = 100272
-  GLU_NURBS_ERROR23* = 100273
-  GLU_NURBS_ERROR24* = 100274
-  GLU_NURBS_ERROR25* = 100275
-  GLU_NURBS_ERROR26* = 100276
-  GLU_NURBS_ERROR27* = 100277
-  GLU_NURBS_ERROR28* = 100278
-  GLU_NURBS_ERROR29* = 100279
-  GLU_NURBS_ERROR30* = 100280
-  GLU_NURBS_ERROR31* = 100281
-  GLU_NURBS_ERROR32* = 100282
-  GLU_NURBS_ERROR33* = 100283
-  GLU_NURBS_ERROR34* = 100284
-  GLU_NURBS_ERROR35* = 100285
-  GLU_NURBS_ERROR36* = 100286
-  GLU_NURBS_ERROR37* = 100287 #***           Backwards compatibility for old tesselator           ****/
-
-proc gluBeginPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluBeginPolygon".}
-proc gluNextContour*(tess: PGLUtesselator, atype: TGLenum){.dynlib: dllname, 
-    importc: "gluNextContour".}
-proc gluEndPolygon*(tess: PGLUtesselator){.dynlib: dllname, 
-    importc: "gluEndPolygon".}
-const                         # Contours types -- obsolete!
-  GLU_CW* = 100120
-  GLU_CCW* = 100121
-  GLU_INTERIOR* = 100122
-  GLU_EXTERIOR* = 100123
-  GLU_UNKNOWN* = 100124       # Names without "TESS_" prefix
-  GLU_BEGIN* = GLU_TESS_BEGIN
-  GLU_VERTEX* = constGLU_TESS_VERTEX
-  GLU_END* = GLU_TESS_END
-  GLU_ERROR* = GLU_TESS_ERROR
-  GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG
-
-{.pop.}
-# implementation
diff --git a/lib/wrappers/opengl/glut.nim b/lib/wrappers/opengl/glut.nim
deleted file mode 100644
index ff157c327..000000000
--- a/lib/wrappers/opengl/glut.nim
+++ /dev/null
@@ -1,438 +0,0 @@
-#
-#
-#  Adaption of the delphi3d.net OpenGL units to FreePascal
-#  Sebastian Guenther (sg@freepascal.org) in 2002
-#  These units are free to use
-#
-
-# Copyright (c) Mark J. Kilgard, 1994, 1995, 1996.
-# This program is freely distributable without licensing fees  and is
-#   provided without guarantee or warrantee expressed or  implied. This
-#   program is -not- in the public domain.
-#******************************************************************************
-# Converted to Delphi by Tom Nuydens (tom@delphi3d.net)
-#   Contributions by Igor Karpov (glygrik@hotbox.ru)
-#   For the latest updates, visit Delphi3D: http://www.delphi3d.net
-#******************************************************************************
-
-import 
-  GL
-
-when defined(windows): 
-  const 
-    dllname = "glut32.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/System/Library/Frameworks/GLUT.framework/GLUT"
-else: 
-  const 
-    dllname = "libglut.so.3"
-type
-  TGlutVoidCallback* = proc (){.cdecl.}
-  TGlut1IntCallback* = proc (value: cint){.cdecl.}
-  TGlut2IntCallback* = proc (v1, v2: cint){.cdecl.}
-  TGlut3IntCallback* = proc (v1, v2, v3: cint){.cdecl.}
-  TGlut4IntCallback* = proc (v1, v2, v3, v4: cint){.cdecl.}
-  TGlut1Char2IntCallback* = proc (c: int8, v1, v2: cint){.cdecl.}
-  TGlut1UInt3IntCallback* = proc (u, v1, v2, v3: cint){.cdecl.}
-
-const 
-  GLUT_API_VERSION* = 3
-  GLUT_XLIB_IMPLEMENTATION* = 12 # Display mode bit masks.
-  GLUT_RGB* = 0
-  GLUT_RGBA* = GLUT_RGB
-  GLUT_INDEX* = 1
-  GLUT_SINGLE* = 0
-  GLUT_DOUBLE* = 2
-  GLUT_ACCUM* = 4
-  GLUT_ALPHA* = 8
-  GLUT_DEPTH* = 16
-  GLUT_STENCIL* = 32
-  GLUT_MULTISAMPLE* = 128
-  GLUT_STEREO* = 256
-  GLUT_LUMINANCE* = 512       # Mouse buttons.
-  GLUT_LEFT_BUTTON* = 0
-  GLUT_MIDDLE_BUTTON* = 1
-  GLUT_RIGHT_BUTTON* = 2      # Mouse button state.
-  GLUT_DOWN* = 0
-  GLUT_UP* = 1                # function keys
-  GLUT_KEY_F1* = 1
-  GLUT_KEY_F2* = 2
-  GLUT_KEY_F3* = 3
-  GLUT_KEY_F4* = 4
-  GLUT_KEY_F5* = 5
-  GLUT_KEY_F6* = 6
-  GLUT_KEY_F7* = 7
-  GLUT_KEY_F8* = 8
-  GLUT_KEY_F9* = 9
-  GLUT_KEY_F10* = 10
-  GLUT_KEY_F11* = 11
-  GLUT_KEY_F12* = 12          # directional keys
-  GLUT_KEY_LEFT* = 100
-  GLUT_KEY_UP* = 101
-  GLUT_KEY_RIGHT* = 102
-  GLUT_KEY_DOWN* = 103
-  GLUT_KEY_PAGE_UP* = 104
-  GLUT_KEY_PAGE_DOWN* = 105
-  GLUT_KEY_HOME* = 106
-  GLUT_KEY_END* = 107
-  GLUT_KEY_INSERT* = 108      # Entry/exit  state.
-  GLUT_LEFT* = 0
-  GLUT_ENTERED* = 1           # Menu usage state.
-  GLUT_MENU_NOT_IN_USE* = 0
-  GLUT_MENU_IN_USE* = 1       # Visibility  state.
-  GLUT_NOT_VISIBLE* = 0
-  GLUT_VISIBLE* = 1           # Window status  state.
-  GLUT_HIDDEN* = 0
-  GLUT_FULLY_RETAINED* = 1
-  GLUT_PARTIALLY_RETAINED* = 2
-  GLUT_FULLY_COVERED* = 3     # Color index component selection values.
-  GLUT_RED* = 0
-  GLUT_GREEN* = 1
-  GLUT_BLUE* = 2              # Layers for use.
-  GLUT_NORMAL* = 0
-  GLUT_OVERLAY* = 1
-
-when defined(Windows): 
-  const                       # Stroke font constants (use these in GLUT program).
-    GLUT_STROKE_ROMAN* = cast[Pointer](0)
-    GLUT_STROKE_MONO_ROMAN* = cast[Pointer](1) # Bitmap font constants (use these in GLUT program).
-    GLUT_BITMAP_9_BY_15* = cast[Pointer](2)
-    GLUT_BITMAP_8_BY_13* = cast[Pointer](3)
-    GLUT_BITMAP_TIMES_ROMAN_10* = cast[Pointer](4)
-    GLUT_BITMAP_TIMES_ROMAN_24* = cast[Pointer](5)
-    GLUT_BITMAP_HELVETICA_10* = cast[Pointer](6)
-    GLUT_BITMAP_HELVETICA_12* = cast[Pointer](7)
-    GLUT_BITMAP_HELVETICA_18* = cast[Pointer](8)
-else: 
-  var                         # Stroke font constants (use these in GLUT program).
-    GLUT_STROKE_ROMAN*: Pointer
-    GLUT_STROKE_MONO_ROMAN*: Pointer # Bitmap font constants (use these in GLUT program).
-    GLUT_BITMAP_9_BY_15*: Pointer
-    GLUT_BITMAP_8_BY_13*: Pointer
-    GLUT_BITMAP_TIMES_ROMAN_10*: Pointer
-    GLUT_BITMAP_TIMES_ROMAN_24*: Pointer
-    GLUT_BITMAP_HELVETICA_10*: Pointer
-    GLUT_BITMAP_HELVETICA_12*: Pointer
-    GLUT_BITMAP_HELVETICA_18*: Pointer
-const                         # glutGet parameters.
-  GLUT_WINDOW_X* = 100
-  GLUT_WINDOW_Y* = 101
-  GLUT_WINDOW_WIDTH* = 102
-  GLUT_WINDOW_HEIGHT* = 103
-  GLUT_WINDOW_BUFFER_SIZE* = 104
-  GLUT_WINDOW_STENCIL_SIZE* = 105
-  GLUT_WINDOW_DEPTH_SIZE* = 106
-  GLUT_WINDOW_RED_SIZE* = 107
-  GLUT_WINDOW_GREEN_SIZE* = 108
-  GLUT_WINDOW_BLUE_SIZE* = 109
-  GLUT_WINDOW_ALPHA_SIZE* = 110
-  GLUT_WINDOW_ACCUM_RED_SIZE* = 111
-  GLUT_WINDOW_ACCUM_GREEN_SIZE* = 112
-  GLUT_WINDOW_ACCUM_BLUE_SIZE* = 113
-  GLUT_WINDOW_ACCUM_ALPHA_SIZE* = 114
-  GLUT_WINDOW_DOUBLEBUFFER* = 115
-  GLUT_WINDOW_RGBA* = 116
-  GLUT_WINDOW_PARENT* = 117
-  GLUT_WINDOW_NUM_CHILDREN* = 118
-  GLUT_WINDOW_COLORMAP_SIZE* = 119
-  GLUT_WINDOW_NUM_SAMPLES* = 120
-  GLUT_WINDOW_STEREO* = 121
-  GLUT_WINDOW_CURSOR* = 122
-  GLUT_SCREEN_WIDTH* = 200
-  GLUT_SCREEN_HEIGHT* = 201
-  GLUT_SCREEN_WIDTH_MM* = 202
-  GLUT_SCREEN_HEIGHT_MM* = 203
-  GLUT_MENU_NUM_ITEMS* = 300
-  GLUT_DISPLAY_MODE_POSSIBLE* = 400
-  GLUT_INIT_WINDOW_X* = 500
-  GLUT_INIT_WINDOW_Y* = 501
-  GLUT_INIT_WINDOW_WIDTH* = 502
-  GLUT_INIT_WINDOW_HEIGHT* = 503
-  constGLUT_INIT_DISPLAY_MODE* = 504
-  GLUT_ELAPSED_TIME* = 700
-  GLUT_WINDOW_FORMAT_ID* = 123 # glutDeviceGet parameters.
-  GLUT_HAS_KEYBOARD* = 600
-  GLUT_HAS_MOUSE* = 601
-  GLUT_HAS_SPACEBALL* = 602
-  GLUT_HAS_DIAL_AND_BUTTON_BOX* = 603
-  GLUT_HAS_TABLET* = 604
-  GLUT_NUM_MOUSE_BUTTONS* = 605
-  GLUT_NUM_SPACEBALL_BUTTONS* = 606
-  GLUT_NUM_BUTTON_BOX_BUTTONS* = 607
-  GLUT_NUM_DIALS* = 608
-  GLUT_NUM_TABLET_BUTTONS* = 609
-  GLUT_DEVICE_IGNORE_KEY_REPEAT* = 610
-  GLUT_DEVICE_KEY_REPEAT* = 611
-  GLUT_HAS_JOYSTICK* = 612
-  GLUT_OWNS_JOYSTICK* = 613
-  GLUT_JOYSTICK_BUTTONS* = 614
-  GLUT_JOYSTICK_AXES* = 615
-  GLUT_JOYSTICK_POLL_RATE* = 616 # glutLayerGet parameters.
-  GLUT_OVERLAY_POSSIBLE* = 800
-  GLUT_LAYER_IN_USE* = 801
-  GLUT_HAS_OVERLAY* = 802
-  GLUT_TRANSPARENT_INDEX* = 803
-  GLUT_NORMAL_DAMAGED* = 804
-  GLUT_OVERLAY_DAMAGED* = 805 # glutVideoResizeGet parameters.
-  GLUT_VIDEO_RESIZE_POSSIBLE* = 900
-  GLUT_VIDEO_RESIZE_IN_USE* = 901
-  GLUT_VIDEO_RESIZE_X_DELTA* = 902
-  GLUT_VIDEO_RESIZE_Y_DELTA* = 903
-  GLUT_VIDEO_RESIZE_WIDTH_DELTA* = 904
-  GLUT_VIDEO_RESIZE_HEIGHT_DELTA* = 905
-  GLUT_VIDEO_RESIZE_X* = 906
-  GLUT_VIDEO_RESIZE_Y* = 907
-  GLUT_VIDEO_RESIZE_WIDTH* = 908
-  GLUT_VIDEO_RESIZE_HEIGHT* = 909 # glutGetModifiers return mask.
-  GLUT_ACTIVE_SHIFT* = 1
-  GLUT_ACTIVE_CTRL* = 2
-  GLUT_ACTIVE_ALT* = 4        # glutSetCursor parameters.
-                              # Basic arrows.
-  GLUT_CURSOR_RIGHT_ARROW* = 0
-  GLUT_CURSOR_LEFT_ARROW* = 1 # Symbolic cursor shapes.
-  GLUT_CURSOR_INFO* = 2
-  GLUT_CURSOR_DESTROY* = 3
-  GLUT_CURSOR_HELP* = 4
-  GLUT_CURSOR_CYCLE* = 5
-  GLUT_CURSOR_SPRAY* = 6
-  GLUT_CURSOR_WAIT* = 7
-  GLUT_CURSOR_TEXT* = 8
-  GLUT_CURSOR_CROSSHAIR* = 9  # Directional cursors.
-  GLUT_CURSOR_UP_DOWN* = 10
-  GLUT_CURSOR_LEFT_RIGHT* = 11 # Sizing cursors.
-  GLUT_CURSOR_TOP_SIDE* = 12
-  GLUT_CURSOR_BOTTOM_SIDE* = 13
-  GLUT_CURSOR_LEFT_SIDE* = 14
-  GLUT_CURSOR_RIGHT_SIDE* = 15
-  GLUT_CURSOR_TOP_LEFT_CORNER* = 16
-  GLUT_CURSOR_TOP_RIGHT_CORNER* = 17
-  GLUT_CURSOR_BOTTOM_RIGHT_CORNER* = 18
-  GLUT_CURSOR_BOTTOM_LEFT_CORNER* = 19 # Inherit from parent window.
-  GLUT_CURSOR_INHERIT* = 100  # Blank cursor.
-  GLUT_CURSOR_NONE* = 101     # Fullscreen crosshair (if available).
-  GLUT_CURSOR_FULL_CROSSHAIR* = 102 # GLUT device control sub-API.
-                                    # glutSetKeyRepeat modes.
-  GLUT_KEY_REPEAT_OFF* = 0
-  GLUT_KEY_REPEAT_ON* = 1
-  GLUT_KEY_REPEAT_DEFAULT* = 2 # Joystick button masks.
-  GLUT_JOYSTICK_BUTTON_A* = 1
-  GLUT_JOYSTICK_BUTTON_B* = 2
-  GLUT_JOYSTICK_BUTTON_C* = 4
-  GLUT_JOYSTICK_BUTTON_D* = 8 # GLUT game mode sub-API.
-                              # glutGameModeGet.
-  GLUT_GAME_MODE_ACTIVE* = 0
-  GLUT_GAME_MODE_POSSIBLE* = 1
-  GLUT_GAME_MODE_WIDTH* = 2
-  GLUT_GAME_MODE_HEIGHT* = 3
-  GLUT_GAME_MODE_PIXEL_DEPTH* = 4
-  GLUT_GAME_MODE_REFRESH_RATE* = 5
-  GLUT_GAME_MODE_DISPLAY_CHANGED* = 6 # GLUT initialization sub-API.
-
-proc glutInit*(argcp: ptr cint, argv: pointer){.dynlib: dllname, 
-    importc: "glutInit".}
-
-proc glutInit*() =
-  ## version that passes `argc` and `argc` implicitely.
-  var
-    cmdLine {.importc: "cmdLine".}: array[0..255, cstring]
-    cmdCount {.importc: "cmdCount".}: cint
-  glutInit(addr(cmdCount), addr(cmdLine))
-
-proc glutInitDisplayMode*(mode: int16){.dynlib: dllname, 
-                                        importc: "glutInitDisplayMode".}
-proc glutInitDisplayString*(str: cstring){.dynlib: dllname, 
-    importc: "glutInitDisplayString".}
-proc glutInitWindowPosition*(x, y: int){.dynlib: dllname, 
-    importc: "glutInitWindowPosition".}
-proc glutInitWindowSize*(width, height: int){.dynlib: dllname, 
-    importc: "glutInitWindowSize".}
-proc glutMainLoop*(){.dynlib: dllname, importc: "glutMainLoop".}
-  # GLUT window sub-API.
-proc glutCreateWindow*(title: cstring): int{.dynlib: dllname, 
-    importc: "glutCreateWindow".}
-proc glutCreateSubWindow*(win, x, y, width, height: int): int{.dynlib: dllname, 
-    importc: "glutCreateSubWindow".}
-proc glutDestroyWindow*(win: int){.dynlib: dllname, importc: "glutDestroyWindow".}
-proc glutPostRedisplay*(){.dynlib: dllname, importc: "glutPostRedisplay".}
-proc glutPostWindowRedisplay*(win: int){.dynlib: dllname, 
-    importc: "glutPostWindowRedisplay".}
-proc glutSwapBuffers*(){.dynlib: dllname, importc: "glutSwapBuffers".}
-proc glutGetWindow*(): int{.dynlib: dllname, importc: "glutGetWindow".}
-proc glutSetWindow*(win: int){.dynlib: dllname, importc: "glutSetWindow".}
-proc glutSetWindowTitle*(title: cstring){.dynlib: dllname, 
-    importc: "glutSetWindowTitle".}
-proc glutSetIconTitle*(title: cstring){.dynlib: dllname, 
-                                        importc: "glutSetIconTitle".}
-proc glutPositionWindow*(x, y: int){.dynlib: dllname, 
-                                     importc: "glutPositionWindow".}
-proc glutReshapeWindow*(width, height: int){.dynlib: dllname, 
-    importc: "glutReshapeWindow".}
-proc glutPopWindow*(){.dynlib: dllname, importc: "glutPopWindow".}
-proc glutPushWindow*(){.dynlib: dllname, importc: "glutPushWindow".}
-proc glutIconifyWindow*(){.dynlib: dllname, importc: "glutIconifyWindow".}
-proc glutShowWindow*(){.dynlib: dllname, importc: "glutShowWindow".}
-proc glutHideWindow*(){.dynlib: dllname, importc: "glutHideWindow".}
-proc glutFullScreen*(){.dynlib: dllname, importc: "glutFullScreen".}
-proc glutSetCursor*(cursor: int){.dynlib: dllname, importc: "glutSetCursor".}
-proc glutWarpPointer*(x, y: int){.dynlib: dllname, importc: "glutWarpPointer".}
-  # GLUT overlay sub-API.
-proc glutEstablishOverlay*(){.dynlib: dllname, importc: "glutEstablishOverlay".}
-proc glutRemoveOverlay*(){.dynlib: dllname, importc: "glutRemoveOverlay".}
-proc glutUseLayer*(layer: TGLenum){.dynlib: dllname, importc: "glutUseLayer".}
-proc glutPostOverlayRedisplay*(){.dynlib: dllname, 
-                                  importc: "glutPostOverlayRedisplay".}
-proc glutPostWindowOverlayRedisplay*(win: int){.dynlib: dllname, 
-    importc: "glutPostWindowOverlayRedisplay".}
-proc glutShowOverlay*(){.dynlib: dllname, importc: "glutShowOverlay".}
-proc glutHideOverlay*(){.dynlib: dllname, importc: "glutHideOverlay".}
-  # GLUT menu sub-API.
-proc glutCreateMenu*(callback: TGlut1IntCallback): int{.dynlib: dllname, 
-    importc: "glutCreateMenu".}
-proc glutDestroyMenu*(menu: int){.dynlib: dllname, importc: "glutDestroyMenu".}
-proc glutGetMenu*(): int{.dynlib: dllname, importc: "glutGetMenu".}
-proc glutSetMenu*(menu: int){.dynlib: dllname, importc: "glutSetMenu".}
-proc glutAddMenuEntry*(caption: cstring, value: int){.dynlib: dllname, 
-    importc: "glutAddMenuEntry".}
-proc glutAddSubMenu*(caption: cstring, submenu: int){.dynlib: dllname, 
-    importc: "glutAddSubMenu".}
-proc glutChangeToMenuEntry*(item: int, caption: cstring, value: int){.
-    dynlib: dllname, importc: "glutChangeToMenuEntry".}
-proc glutChangeToSubMenu*(item: int, caption: cstring, submenu: int){.
-    dynlib: dllname, importc: "glutChangeToSubMenu".}
-proc glutRemoveMenuItem*(item: int){.dynlib: dllname, 
-                                     importc: "glutRemoveMenuItem".}
-proc glutAttachMenu*(button: int){.dynlib: dllname, importc: "glutAttachMenu".}
-proc glutDetachMenu*(button: int){.dynlib: dllname, importc: "glutDetachMenu".}
-  # GLUT window callback sub-API.
-proc glutDisplayFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutDisplayFunc".}
-proc glutReshapeFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutReshapeFunc".}
-proc glutKeyboardFunc*(f: TGlut1Char2IntCallback){.dynlib: dllname, 
-    importc: "glutKeyboardFunc".}
-proc glutMouseFunc*(f: TGlut4IntCallback){.dynlib: dllname, 
-    importc: "glutMouseFunc".}
-proc glutMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutMotionFunc".}
-proc glutPassiveMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutPassiveMotionFunc".}
-proc glutEntryFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutEntryFunc".}
-proc glutVisibilityFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutVisibilityFunc".}
-proc glutIdleFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutIdleFunc".}
-proc glutTimerFunc*(millis: int16, f: TGlut1IntCallback, value: int){.
-    dynlib: dllname, importc: "glutTimerFunc".}
-proc glutMenuStateFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutMenuStateFunc".}
-proc glutSpecialFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpecialFunc".}
-proc glutSpaceballMotionFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballMotionFunc".}
-proc glutSpaceballRotateFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballRotateFunc".}
-proc glutSpaceballButtonFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutSpaceballButtonFunc".}
-proc glutButtonBoxFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutButtonBoxFunc".}
-proc glutDialsFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutDialsFunc".}
-proc glutTabletMotionFunc*(f: TGlut2IntCallback){.dynlib: dllname, 
-    importc: "glutTabletMotionFunc".}
-proc glutTabletButtonFunc*(f: TGlut4IntCallback){.dynlib: dllname, 
-    importc: "glutTabletButtonFunc".}
-proc glutMenuStatusFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutMenuStatusFunc".}
-proc glutOverlayDisplayFunc*(f: TGlutVoidCallback){.dynlib: dllname, 
-    importc: "glutOverlayDisplayFunc".}
-proc glutWindowStatusFunc*(f: TGlut1IntCallback){.dynlib: dllname, 
-    importc: "glutWindowStatusFunc".}
-proc glutKeyboardUpFunc*(f: TGlut1Char2IntCallback){.dynlib: dllname, 
-    importc: "glutKeyboardUpFunc".}
-proc glutSpecialUpFunc*(f: TGlut3IntCallback){.dynlib: dllname, 
-    importc: "glutSpecialUpFunc".}
-proc glutJoystickFunc*(f: TGlut1UInt3IntCallback, pollInterval: int){.
-    dynlib: dllname, importc: "glutJoystickFunc".}
-  # GLUT color index sub-API.
-proc glutSetColor*(cell: int, red, green, blue: TGLfloat){.dynlib: dllname, 
-    importc: "glutSetColor".}
-proc glutGetColor*(ndx, component: int): TGLfloat{.dynlib: dllname, 
-    importc: "glutGetColor".}
-proc glutCopyColormap*(win: int){.dynlib: dllname, importc: "glutCopyColormap".}
-  # GLUT state retrieval sub-API.
-proc glutGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutGet".}
-proc glutDeviceGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutDeviceGet".}
-  # GLUT extension support sub-API
-proc glutExtensionSupported*(name: cstring): int{.dynlib: dllname, 
-    importc: "glutExtensionSupported".}
-proc glutGetModifiers*(): int{.dynlib: dllname, importc: "glutGetModifiers".}
-proc glutLayerGet*(t: TGLenum): int{.dynlib: dllname, importc: "glutLayerGet".}
-  # GLUT font sub-API
-proc glutBitmapCharacter*(font: pointer, character: int){.dynlib: dllname, 
-    importc: "glutBitmapCharacter".}
-proc glutBitmapWidth*(font: pointer, character: int): int{.dynlib: dllname, 
-    importc: "glutBitmapWidth".}
-proc glutStrokeCharacter*(font: pointer, character: int){.dynlib: dllname, 
-    importc: "glutStrokeCharacter".}
-proc glutStrokeWidth*(font: pointer, character: int): int{.dynlib: dllname, 
-    importc: "glutStrokeWidth".}
-proc glutBitmapLength*(font: pointer, str: cstring): int{.dynlib: dllname, 
-    importc: "glutBitmapLength".}
-proc glutStrokeLength*(font: pointer, str: cstring): int{.dynlib: dllname, 
-    importc: "glutStrokeLength".}
-  # GLUT pre-built models sub-API
-proc glutWireSphere*(radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutWireSphere".}
-proc glutSolidSphere*(radius: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutSolidSphere".}
-proc glutWireCone*(base, height: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutWireCone".}
-proc glutSolidCone*(base, height: TGLdouble, slices, stacks: TGLint){.
-    dynlib: dllname, importc: "glutSolidCone".}
-proc glutWireCube*(size: TGLdouble){.dynlib: dllname, importc: "glutWireCube".}
-proc glutSolidCube*(size: TGLdouble){.dynlib: dllname, importc: "glutSolidCube".}
-proc glutWireTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint){.
-    dynlib: dllname, importc: "glutWireTorus".}
-proc glutSolidTorus*(innerRadius, outerRadius: TGLdouble, sides, rings: TGLint){.
-    dynlib: dllname, importc: "glutSolidTorus".}
-proc glutWireDodecahedron*(){.dynlib: dllname, importc: "glutWireDodecahedron".}
-proc glutSolidDodecahedron*(){.dynlib: dllname, importc: "glutSolidDodecahedron".}
-proc glutWireTeapot*(size: TGLdouble){.dynlib: dllname, 
-                                       importc: "glutWireTeapot".}
-proc glutSolidTeapot*(size: TGLdouble){.dynlib: dllname, 
-                                        importc: "glutSolidTeapot".}
-proc glutWireOctahedron*(){.dynlib: dllname, importc: "glutWireOctahedron".}
-proc glutSolidOctahedron*(){.dynlib: dllname, importc: "glutSolidOctahedron".}
-proc glutWireTetrahedron*(){.dynlib: dllname, importc: "glutWireTetrahedron".}
-proc glutSolidTetrahedron*(){.dynlib: dllname, importc: "glutSolidTetrahedron".}
-proc glutWireIcosahedron*(){.dynlib: dllname, importc: "glutWireIcosahedron".}
-proc glutSolidIcosahedron*(){.dynlib: dllname, importc: "glutSolidIcosahedron".}
-  # GLUT video resize sub-API.
-proc glutVideoResizeGet*(param: TGLenum): int{.dynlib: dllname, 
-    importc: "glutVideoResizeGet".}
-proc glutSetupVideoResizing*(){.dynlib: dllname, 
-                                importc: "glutSetupVideoResizing".}
-proc glutStopVideoResizing*(){.dynlib: dllname, importc: "glutStopVideoResizing".}
-proc glutVideoResize*(x, y, width, height: int){.dynlib: dllname, 
-    importc: "glutVideoResize".}
-proc glutVideoPan*(x, y, width, height: int){.dynlib: dllname, 
-    importc: "glutVideoPan".}
-  # GLUT debugging sub-API.
-proc glutReportErrors*(){.dynlib: dllname, importc: "glutReportErrors".}
-  # GLUT device control sub-API.
-proc glutIgnoreKeyRepeat*(ignore: int){.dynlib: dllname, 
-                                        importc: "glutIgnoreKeyRepeat".}
-proc glutSetKeyRepeat*(repeatMode: int){.dynlib: dllname, 
-    importc: "glutSetKeyRepeat".}
-proc glutForceJoystickFunc*(){.dynlib: dllname, importc: "glutForceJoystickFunc".}
-  # GLUT game mode sub-API.
-  #example glutGameModeString('1280x1024:32@75');
-proc glutGameModeString*(AString: cstring){.dynlib: dllname, 
-    importc: "glutGameModeString".}
-proc glutEnterGameMode*(): int{.dynlib: dllname, importc: "glutEnterGameMode".}
-proc glutLeaveGameMode*(){.dynlib: dllname, importc: "glutLeaveGameMode".}
-proc glutGameModeGet*(mode: TGLenum): int{.dynlib: dllname, 
-    importc: "glutGameModeGet".}
-# implementation
diff --git a/lib/wrappers/opengl/glx.nim b/lib/wrappers/opengl/glx.nim
deleted file mode 100644
index 76c052d70..000000000
--- a/lib/wrappers/opengl/glx.nim
+++ /dev/null
@@ -1,153 +0,0 @@
-#
-#
-#  Translation of the Mesa GLX headers for FreePascal
-#  Copyright (C) 1999 Sebastian Guenther
-#
-#
-#  Mesa 3-D graphics library
-#  Version:  3.0
-#  Copyright (C) 1995-1998  Brian Paul
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Library General Public
-#  License as published by the Free Software Foundation; either
-#  version 2 of the License, or (at your option) any later version.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Library General Public License for more details.
-#
-#  You should have received a copy of the GNU Library General Public
-#  License along with this library; if not, write to the Free
-#  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-
-import 
-  X, XLib, XUtil, gl
-
-when defined(windows): 
-  const 
-    dllname = "GL.dll"
-elif defined(macosx): 
-  const 
-    dllname = "/usr/X11R6/lib/libGL.dylib"
-else: 
-  const 
-    dllname = "libGL.so"
-const 
-  GLX_USE_GL* = 1
-  GLX_BUFFER_SIZE* = 2
-  GLX_LEVEL* = 3
-  GLX_RGBA* = 4
-  GLX_DOUBLEBUFFER* = 5
-  GLX_STEREO* = 6
-  GLX_AUX_BUFFERS* = 7
-  GLX_RED_SIZE* = 8
-  GLX_GREEN_SIZE* = 9
-  GLX_BLUE_SIZE* = 10
-  GLX_ALPHA_SIZE* = 11
-  GLX_DEPTH_SIZE* = 12
-  GLX_STENCIL_SIZE* = 13
-  GLX_ACCUM_RED_SIZE* = 14
-  GLX_ACCUM_GREEN_SIZE* = 15
-  GLX_ACCUM_BLUE_SIZE* = 16
-  GLX_ACCUM_ALPHA_SIZE* = 17  # GLX_EXT_visual_info extension
-  GLX_X_VISUAL_TYPE_EXT* = 0x00000022
-  GLX_TRANSPARENT_TYPE_EXT* = 0x00000023
-  GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024
-  GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025
-  GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026
-  GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027
-  GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028 # Error codes returned by glXGetConfig:
-  GLX_BAD_SCREEN* = 1
-  GLX_BAD_ATTRIBUTE* = 2
-  GLX_NO_EXTENSION* = 3
-  GLX_BAD_VISUAL* = 4
-  GLX_BAD_CONTEXT* = 5
-  GLX_BAD_VALUE* = 6
-  GLX_BAD_ENUM* = 7           # GLX 1.1 and later:
-  GLX_VENDOR* = 1
-  GLX_VERSION* = 2
-  GLX_EXTENSIONS* = 3         # GLX_visual_info extension
-  GLX_TRUE_COLOR_EXT* = 0x00008002
-  GLX_DIRECT_COLOR_EXT* = 0x00008003
-  GLX_PSEUDO_COLOR_EXT* = 0x00008004
-  GLX_STATIC_COLOR_EXT* = 0x00008005
-  GLX_GRAY_SCALE_EXT* = 0x00008006
-  GLX_STATIC_GRAY_EXT* = 0x00008007
-  GLX_NONE_EXT* = 0x00008000
-  GLX_TRANSPARENT_RGB_EXT* = 0x00008008
-  GLX_TRANSPARENT_INDEX_EXT* = 0x00008009
-
-type                          # From XLib:
-  XPixmap* = TXID
-  XFont* = TXID
-  XColormap* = TXID
-  GLXContext* = Pointer
-  GLXPixmap* = TXID
-  GLXDrawable* = TXID
-  GLXContextID* = TXID
-  TXPixmap* = XPixmap
-  TXFont* = XFont
-  TXColormap* = XColormap
-  TGLXContext* = GLXContext
-  TGLXPixmap* = GLXPixmap
-  TGLXDrawable* = GLXDrawable
-  TGLXContextID* = GLXContextID
-
-proc glXChooseVisual*(dpy: PDisplay, screen: int, attribList: ptr int32): PXVisualInfo{.
-    cdecl, dynlib: dllname, importc: "glXChooseVisual".}
-proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, shareList: GLXContext, 
-                       direct: bool): GLXContext{.cdecl, dynlib: dllname, 
-    importc: "glXCreateContext".}
-proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.cdecl, dynlib: dllname, 
-    importc: "glXDestroyContext".}
-proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): bool{.
-    cdecl, dynlib: dllname, importc: "glXMakeCurrent".}
-proc glXCopyContext*(dpy: PDisplay, src, dst: GLXContext, mask: int32){.cdecl, 
-    dynlib: dllname, importc: "glXCopyContext".}
-proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.cdecl, 
-    dynlib: dllname, importc: "glXSwapBuffers".}
-proc glXCreateGLXPixmap*(dpy: PDisplay, visual: PXVisualInfo, pixmap: XPixmap): GLXPixmap{.
-    cdecl, dynlib: dllname, importc: "glXCreateGLXPixmap".}
-proc glXDestroyGLXPixmap*(dpy: PDisplay, pixmap: GLXPixmap){.cdecl, 
-    dynlib: dllname, importc: "glXDestroyGLXPixmap".}
-proc glXQueryExtension*(dpy: PDisplay, errorb, event: var int): bool{.cdecl, 
-    dynlib: dllname, importc: "glXQueryExtension".}
-proc glXQueryVersion*(dpy: PDisplay, maj, min: var int): bool{.cdecl, 
-    dynlib: dllname, importc: "glXQueryVersion".}
-proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): bool{.cdecl, dynlib: dllname, 
-    importc: "glXIsDirect".}
-proc glXGetConfig*(dpy: PDisplay, visual: PXVisualInfo, attrib: int, 
-                   value: var int): int{.cdecl, dynlib: dllname, 
-    importc: "glXGetConfig".}
-proc glXGetCurrentContext*(): GLXContext{.cdecl, dynlib: dllname, 
-    importc: "glXGetCurrentContext".}
-proc glXGetCurrentDrawable*(): GLXDrawable{.cdecl, dynlib: dllname, 
-    importc: "glXGetCurrentDrawable".}
-proc glXWaitGL*(){.cdecl, dynlib: dllname, importc: "glXWaitGL".}
-proc glXWaitX*(){.cdecl, dynlib: dllname, importc: "glXWaitX".}
-proc glXUseXFont*(font: XFont, first, count, list: int){.cdecl, dynlib: dllname, 
-    importc: "glXUseXFont".}
-  # GLX 1.1 and later
-proc glXQueryExtensionsString*(dpy: PDisplay, screen: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXQueryExtensionsString".}
-proc glXQueryServerString*(dpy: PDisplay, screen, name: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXQueryServerString".}
-proc glXGetClientString*(dpy: PDisplay, name: int): cstring{.cdecl, 
-    dynlib: dllname, importc: "glXGetClientString".}
-  # Mesa GLX Extensions
-proc glXCreateGLXPixmapMESA*(dpy: PDisplay, visual: PXVisualInfo, 
-                             pixmap: XPixmap, cmap: XColormap): GLXPixmap{.
-    cdecl, dynlib: dllname, importc: "glXCreateGLXPixmapMESA".}
-proc glXReleaseBufferMESA*(dpy: PDisplay, d: GLXDrawable): bool{.cdecl, 
-    dynlib: dllname, importc: "glXReleaseBufferMESA".}
-proc glXCopySubBufferMESA*(dpy: PDisplay, drawbale: GLXDrawable, 
-                           x, y, width, height: int){.cdecl, dynlib: dllname, 
-    importc: "glXCopySubBufferMESA".}
-proc glXGetVideoSyncSGI*(counter: var int32): int{.cdecl, dynlib: dllname, 
-    importc: "glXGetVideoSyncSGI".}
-proc glXWaitVideoSyncSGI*(divisor, remainder: int, count: var int32): int{.
-    cdecl, dynlib: dllname, importc: "glXWaitVideoSyncSGI".}
-# implementation
diff --git a/lib/wrappers/opengl/opengl.nim b/lib/wrappers/opengl/opengl.nim
deleted file mode 100644
index 6549cc6f9..000000000
--- a/lib/wrappers/opengl/opengl.nim
+++ /dev/null
@@ -1,9708 +0,0 @@
-#

-#

-#            Nimrod's Runtime Library

-#        (c) Copyright 2012 Andreas Rumpf

-#

-#    See the file "copying.txt", included in this

-#    distribution, for details about the copyright.

-#

-

-## This module is a wrapper around `opengl`:idx:. If you define the symbol

-## ``useGlew`` this wrapper does not use Nimrod's ``dynlib`` mechanism, 

-## but `glew`:idx: instead. However, this shouldn't be necessary anymore; even

-## extension loading for the different operating systems is handled here.

-##

-## You need to call ``loadExtensions`` after a rendering context has been

-## created to load any extension proc that your code uses.

-

-when defined(linux):

-  import X, XLib, XUtil

-elif defined(windows):

-  import winlean, os

-

-when defined(windows): 

-  const 

-    ogldll* = "OpenGL32.dll"

-    gludll* = "GLU32.dll"

-elif defined(macosx): 

-  const 

-    ogldll* = "libGL.dylib"

-    gludll* = "libGLU.dylib"

-else: 

-  const 

-    ogldll* = "libGL.so.1"

-    gludll* = "libGLU.so.1"

-

-when defined(useGlew):

-  {.pragma: ogl, header: "<GL/glew.h>".}

-  {.pragma: oglx, header: "<GL/glxew.h>".}

-  {.pragma: wgl, header: "<GL/wglew.h>".}

-  {.pragma: glu, dynlib: gludll.}

-else:

-  # quite complex ... thanks to extension support for various platforms:

-  import dynlib

-  

-  let oglHandle = LoadLib(ogldll)

-  if isNil(oglHandle): quit("could not load: " & ogldll)

-  

-  when defined(windows):

-    var wglGetProcAddress = cast[proc (s: cstring): pointer {.stdcall.}](

-      symAddr(oglHandle, "wglGetProcAddress"))

-  elif defined(linux):

-    var glXGetProcAddress = cast[proc (s: cstring): pointer {.cdecl.}](

-      symAddr(oglHandle, "glXGetProcAddress"))

-    var glXGetProcAddressARB = cast[proc (s: cstring): pointer {.cdecl.}](

-      symAddr(oglHandle, "glXGetProcAddressARB"))

-

-  proc glGetProc(h: TLibHandle; procName: cstring): pointer =

-    when defined(windows):

-      result = symAddr(h, procname)

-      if result != nil: return

-      if not isNil(wglGetProcAddress): result = wglGetProcAddress(ProcName)

-    elif defined(linux):

-      if not isNil(glXGetProcAddress): result = glXGetProcAddress(ProcName)

-      if result != nil: return 

-      if not isNil(glXGetProcAddressARB): 

-        result = glXGetProcAddressARB(ProcName)

-        if result != nil: return

-      result = symAddr(h, procname)

-    else:

-      result = symAddr(h, procName)

-    if result == nil: raiseInvalidLibrary(procName)

-

-  var gluHandle: TLibHandle

-  

-  proc gluGetProc(procname: cstring): pointer =

-    if gluHandle == nil:

-      gluHandle = LoadLib(gludll)

-      if gluHandle == nil: quit("could not load: " & gludll)

-    result = glGetProc(gluHandle, procname)

-  

-  # undocumented 'dynlib' feature: the string literal is replaced by

-  # the imported proc name:

-  {.pragma: ogl, dynlib: glGetProc(oglHandle, "0").}

-  {.pragma: oglx, dynlib: glGetProc(oglHandle, "0").}

-  {.pragma: wgl, dynlib: glGetProc(oglHandle, "0").}

-  {.pragma: glu, dynlib: gluGetProc("").}

-  

-  proc nimLoadProcs0() {.importc.}

-  

-  template loadExtensions*() =

-    ## call this after your rendering context has been setup if you use

-    ## extensions.

-    bind nimLoadProcs0

-    nimLoadProcs0()

-

-#==============================================================================

-#                                                                              

-#       OpenGL 4.2 - Headertranslation                                         

-#       Version 4.2a                                                           

-#       Date : 26.11.2011                                                      

-#                                                                              

-#       Works with :                                                           

-#        - Delphi 3 and up                                                     

-#        - FreePascal (1.9.3 and up)                                           

-#                                                                              

-#==============================================================================

-#                                                                              

-#       Containts the translations of glext.h, gl_1_1.h, glu.h and weglext.h.  

-#       It also contains some helperfunctions that were inspired by those      

-#       found in Mike Lischke's OpenGL12.pas.                                  

-#                                                                              

-#       Copyright (C) DGL-OpenGL2-Portteam                                     

-#       All Rights Reserved                                                    

-#                                                                              

-#       Obtained through:                                                      

-#       Delphi OpenGL Community(DGL) - www.delphigl.com                        

-#                                                                              

-#       Converted and maintained by DGL's GL2.0-Team :                         

-#         - Sascha Willems             - http://www.saschawillems.de           

-#         - Steffen Xonna (Lossy eX)   - http://www.dev-center.de              

-#       Additional input :                                                     

-#         - Andrey Gruzdev (Mac OS X patch for XE2 / FPC)                      

-#         - Lars Middendorf                                                    

-#         - Martin Waldegger (Mars)                                            

-#         - Benjamin Rosseaux (BeRo)   - http://www.0ok.de                     

-#       Additional thanks:                                                     

-#           sigsegv (libdl.so)                                                 

-#                                                                              

-#                                                                              

-#==============================================================================

-# You may retrieve the latest version of this file at the Delphi OpenGL        

-# Community home page, located at http://www.delphigl.com/                     

-#                                                                              

-# The contents of this file are used with permission, subject to               

-# the Mozilla Public License Version 1.1 (the "License"); you may      

-# not use this file except in compliance with the License. You may             

-# obtain a copy of the License at                                              

-# http://www.mozilla.org/MPL/MPL-1.1.html                                      

-#                                                                              

-# Software distributed under the License is distributed on an                  

-# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or               

-# implied. See the License for the specific language governing                 

-# rights and limitations under the License.                                    

-#                                                                              

-#==============================================================================

-# History :                                                                    

-# Version 1.0    Initial Release                                               

-# Version 1.1    Added PPointer in Tpyessection for compatiblity with Delphi   

-#                versions lower than 7                                    (SW) 

-#                Added a function named RaiseLastOSError including a comment   

-#                on how to make it run under Delphi versions lower than 7 (SW) 

-#                Added some data types according to the GL-Syntax         (SW) 

-# Version 1.2    Fixed some problems with getting the addresses of some        

-#                Extensions (e.g. glTexImage3D) where the EXT/ARB did work     

-#                but not the core-functions                               (SW) 

-# Version 1.3    A second call to ReadimplementationProperties won't           

-#                revert to the default libs anymore                       (MW) 

-#                Libraries now will be released if necessary              (MW) 

-# Version 1.3a   Small fixes for glSlang-functions                        (SW) 

-# Version 1.3b   Fixed a small bug with GL_ARB_shader_objects, that lead       

-#                lead to that extension not loaded correctly              (SW) 

-# Version 1.3c   more GL 1.5 compliance by FOG_COORD_xx and                    

-#                ARB less VBO and occlusion query routines                (MW) 

-# Version 1.3d   Fixed linebreaks (should now be corrected under D5)      (SW) 

-# Version 1.4    Changed header to correspond to the OpenGL-Shading            

-#                Language specification 1.10 :                                 

-#                - Added new GL_SAMPLER*-Constants                            

-#                - Added Constant GL_SHADING_LANGUAGE_VERSION_ARB              

-#                - Added Constant GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB       

-#                - Added Constant GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  (SW) 

-# Version 1.4a   Fixed a missing stdcall for glBindAttribLocationARB      (SW) 

-# Version 1.4b   Fixed declaration for glUniform*(f/i)vARB (added count)  (MW) 

-#                glCompileShaderARB changed from function to procedure    (MW) 

-# Version 1.5    Added support for FreePascal                             (BR) 

-#                Added type TGLVectorf3/TGLVector3f                       (SW) 

-# Version 1.6    Added Extension GL_EXT_framebuffer_object                (SX) 

-# Version 1.7    Added Extension GL_ARB_fragment_program_shadow           (SX) 

-#                Added Extension GL_ARB_draw_buffers                      (SX) 

-#                Added Extension GL_ARB_texture_rectangle                 (SX) 

-#                Added Extension GL_ARB_color_buffer_float                (SX) 

-#                Added Extension GL_ARB_half_float_pixel                  (SX) 

-#                Added Extension GL_ARB_texture_float                     (SX) 

-#                Added Extension GL_ARB_pixel_buffer_object               (SX) 

-#                Added Extension GL_EXT_depth_bounds_test                 (SX) 

-#                Added Extension GL_EXT_texture_mirror_clamp              (SX) 

-#                Added Extension GL_EXT_blend_equation_separate           (SX) 

-#                Added Extension GL_EXT_pixel_buffer_object               (SX) 

-#                Added Extension GL_EXT_texture_compression_dxt1          (SX) 

-#                Added Extension GL_NV_fragment_program_option            (SX) 

-#                Added Extension GL_NV_fragment_program2                  (SX) 

-#                Added Extension GL_NV_vertex_program2_option             (SX) 

-#                Added Extension GL_NV_vertex_program3                    (SX) 

-# Version 1.8    Added explicit delegate type definitions                 (LM) 

-#                Added .Net 1.1 Support                                   (LM) 

-#                Added .Net overloaded functions                          (LM) 

-#                Added delayed extension loading and stubs                (LM) 

-#                Added automatic InitOpenGL call in CreateRenderingContext(LM) 

-#                Added extra Read* function                              (LM) 

-# Version 2.0    fixed some Problem with version string and damn drivers.      

-#                String 1.15 identified as OpenGL 1.5 not as OpenGL 1.1   (SX) 

-#                Removed unexisting extension GL_ARB_texture_mirror_repeat(SX) 

-#                Added Extension WGL_ARB_pixel_format_float               (SX) 

-#                Added Extension GL_EXT_stencil_clear_tag                 (SX) 

-#                Added Extension GL_EXT_texture_rectangle                 (SX) 

-#                Added Extension GL_EXT_texture_edge_clamp                (SX) 

-#                Some 1.5 Core Consts added (now completed)               (SX) 

-#                gluProject need pointer for not .net                     (SX) 

-#                gluUnProject need pointer for not .net                   (SX) 

-#                wglUseFontOutlines* need pointer for not .net            (SX) 

-#                wglSwapMultipleBuffers need pointer for not .net         (SX) 

-#                Bug with wglGetExtensionsStringEXT removed                    

-#                different type for .net                                  (SX) 

-#                Added OpenGL 2.0 Core                                    (SX) 

-# Version 2.0.1  fixed some problems with glGetActiveAttrib in 2.0 Core   (SX) 

-#                fixes some problems with gluProject                      (SX) 

-#                fixes some problems with gluUnProject                    (SX) 

-#                fixes some problems with gluTessVertex                   (SX) 

-#                fixes some problems with gluLoadSamplingMatrices         (SX) 

-# Version 2.1    Removed .NET Support                                     (SX) 

-#                Better support for Linux                                 (SX) 

-#                Better Codeformation                                     (SX) 

-#                Added some more Vector/Matrix types                      (SX) 

-#                Added OpenGL 2.1 Core                                    (SX) 

-#                Added Extension GL_EXT_packed_depth_stencil              (SX) 

-#                Added Extension GL_EXT_texture_sRGB                      (SX) 

-#                Added Extension GL_EXT_framebuffer_blit                  (SX) 

-#                Added Extension GL_EXT_framebuffer_multisample           (SX) 

-#                Added Extension GL_EXT_timer_query                       (SX) 

-#                Added Extension GL_EXT_gpu_program_parameters            (SX) 

-#                Added Extension GL_EXT_bindable_uniform                  (SX) 

-#                Added Extension GL_EXT_draw_buffers2                     (SX) 

-#                Added Extension GL_EXT_draw_instanced                    (SX) 

-#                Added Extension GL_EXT_framebuffer_sRGB                  (SX) 

-#                Added Extension GL_EXT_geometry_shader4                  (SX) 

-#                Added Extension GL_EXT_gpu_shader4                       (SX) 

-#                Added Extension GL_EXT_packed_float                      (SX) 

-#                Added Extension GL_EXT_texture_array                     (SX) 

-#                Added Extension GL_EXT_texture_buffer_object             (SX) 

-#                Added Extension GL_EXT_texture_compression_latc          (SX) 

-#                Added Extension GL_EXT_texture_compression_rgtc          (SX) 

-#                Added Extension GL_EXT_texture_integer                   (SX) 

-#                Added Extension GL_EXT_texture_shared_exponent           (SX) 

-#                Added Extension GL_NV_depth_buffer_float                 (SX) 

-#                Added Extension GL_NV_fragment_program4                  (SX) 

-#                Added Extension GL_NV_framebuffer_multisample_coverage   (SX) 

-#                Added Extension GL_NV_geometry_program4                  (SX) 

-#                Added Extension GL_NV_gpu_program4                       (SX) 

-#                Added Extension GL_NV_parameter_buffer_object            (SX) 

-#                Added Extension GL_NV_transform_feedback                 (SX) 

-#                Added Extension GL_NV_vertex_program4                    (SX) 

-# Version 3.0    fixed some const of GL_EXT_texture_shared_exponent       (SX) 

-#                possible better support for mac                          (SX) 

-#                Added OpenGL 3.0 Core                                    (SX) 

-#                Added Extension GL_ARB_depth_buffer_float                (SX) 

-#                Added Extension GL_ARB_draw_instanced                    (SX) 

-#                Added Extension GL_ARB_framebuffer_object                (SX) 

-#                Added Extension GL_ARB_framebuffer_sRGB                  (SX) 

-#                Added Extension GL_ARB_geometry_shader4                  (SX) 

-#                Added Extension GL_ARB_half_float_vertex                 (SX) 

-#                Added Extension GL_ARB_instanced_arrays                  (SX) 

-#                Added Extension GL_ARB_map_buffer_range                  (SX) 

-#                Added Extension GL_ARB_texture_buffer_object             (SX) 

-#                Added Extension GL_ARB_texture_compression_rgtc          (SX) 

-#                Added Extension GL_ARB_texture_rg                        (SX) 

-#                Added Extension GL_ARB_vertex_array_object               (SX) 

-#                Added Extension GL_NV_conditional_render                 (SX) 

-#                Added Extension GL_NV_present_video                      (SX) 

-#                Added Extension GL_EXT_transform_feedback                (SX) 

-#                Added Extension GL_EXT_direct_state_access               (SX) 

-#                Added Extension GL_EXT_vertex_array_bgra                 (SX) 

-#                Added Extension GL_EXT_texture_swizzle                   (SX) 

-#                Added Extension GL_NV_explicit_multisample               (SX) 

-#                Added Extension GL_NV_transform_feedback2                (SX) 

-#                Added Extension WGL_ARB_create_context                   (SX) 

-#                Added Extension WGL_NV_present_video                     (SX) 

-#                Added Extension WGL_NV_video_out                         (SX) 

-#                Added Extension WGL_NV_swap_group                        (SX) 

-#                Added Extension WGL_NV_gpu_affinity                      (SX) 

-#                Added define DGL_TINY_HEADER to suppress automatic            

-#                function loading                                         (SX) 

-#                glProcedure renamed to dglGetProcAddress and now it's         

-#                visible from outside the unit to custom load functions   (SX) 

-#                dglCheckExtension added to check if an extension exists  (SX) 

-#                Read_GL_ARB_buffer_object renamed to                          

-#                Read_GL_ARB_vertex_buffer_object                         (SX) 

-# Version 3.0.1  fixed an problem with fpc                                (SX) 

-# Version 3.0.2  fixed an problem with WGL_ARB_create_context             (SX) 

-# Version 3.2    Functions from GL_VERSION_3_0 where updated              (SX) 

-#                Functions from GL_ARB_map_buffer_range where updated     (SX) 

-#                Functions from GL_NV_present_video where added           (SX) 

-#                Added consts of GL_ARB_instanced_arrays                  (SX) 

-#                Defines to identify Delphi was changed (prevent for           

-#                feature maintenance)                                     (SX) 

-#                Added Extension GL_ATI_meminfo                           (SX) 

-#                Added Extension GL_AMD_performance_monitor               (SX) 

-#                Added Extension GL_AMD_texture_texture4                  (SX) 

-#                Added Extension GL_AMD_vertex_shader_tesselator          (SX) 

-#                Added Extension GL_EXT_provoking_vertex                  (SX) 

-#                Added Extension WGL_AMD_gpu_association                  (SX) 

-#                Added OpenGL 3.1 Core                                    (SX) 

-#                All deprecated stuff can be disabled if you undef the         

-#                define DGL_DEPRECATED                                    (SX) 

-#                Added Extension GL_ARB_uniform_buffer_object             (SX) 

-#                Added Extension GL_ARB_compatibility                     (SX) 

-#                Added Extension GL_ARB_copy_buffer                       (SX) 

-#                Added Extension GL_ARB_shader_texture_lod                (SX) 

-#                Remove function from GL_NV_present_video                 (SX) 

-#                Added Extension WGL_3DL_stereo_control                   (SX) 

-#                Added Extension GL_EXT_texture_snorm                     (SX) 

-#                Added Extension GL_AMD_draw_buffers_blend                (SX) 

-#                Added Extension GL_APPLE_texture_range                   (SX) 

-#                Added Extension GL_APPLE_float_pixels                    (SX) 

-#                Added Extension GL_APPLE_vertex_program_evaluators       (SX) 

-#                Added Extension GL_APPLE_aux_depth_stencil               (SX) 

-#                Added Extension GL_APPLE_object_purgeable                (SX) 

-#                Added Extension GL_APPLE_row_bytes                       (SX) 

-#                Added OpenGL 3.2 Core                                    (SX) 

-#                Added Extension GL_ARB_depth_clamp                       (SX) 

-#                Added Extension GL_ARB_draw_elements_base_vertex         (SX) 

-#                Added Extension GL_ARB_fragment_coord_conventions        (SX) 

-#                Added Extension GL_ARB_provoking_vertex                  (SX) 

-#                Added Extension GL_ARB_seamless_cube_map                 (SX) 

-#                Added Extension GL_ARB_sync                              (SX) 

-#                Added Extension GL_ARB_texture_multisample               (SX) 

-#                Added Extension GL_ARB_vertex_array_bgra                 (SX) 

-#                Added Extension GL_ARB_draw_buffers_blend                (SX) 

-#                Added Extension GL_ARB_sample_shading                    (SX) 

-#                Added Extension GL_ARB_texture_cube_map_array            (SX) 

-#                Added Extension GL_ARB_texture_gather                    (SX) 

-#                Added Extension GL_ARB_texture_query_lod                 (SX) 

-#                Added Extension WGL_ARB_create_context_profile           (SX) 

-#                Added GLX Core up to Version 1.4                         (SX) 

-#                Added Extension GLX_ARB_multisample                      (SX) 

-#                Added Extension GLX_ARB_fbconfig_float                   (SX) 

-#                Added Extension GLX_ARB_get_proc_address                 (SX) 

-#                Added Extension GLX_ARB_create_context                   (SX) 

-#                Added Extension GLX_ARB_create_context_profile           (SX) 

-#                Added Extension GLX_EXT_visual_info                      (SX) 

-#                Added Extension GLX_EXT_visual_rating                    (SX) 

-#                Added Extension GLX_EXT_import_context                   (SX) 

-#                Added Extension GLX_EXT_fbconfig_packed_float            (SX) 

-#                Added Extension GLX_EXT_framebuffer_sRGB                 (SX) 

-#                Added Extension GLX_EXT_texture_from_pixmap              (SX) 

-# Version 3.2.1  Fixed some problems with Delphi < 6                      (SX) 

-# Version 3.2.2  Added Extension GL_APPLE_rgb_422                         (SX) 

-#                Added Extension GL_EXT_separate_shader_objects           (SX) 

-#                Added Extension GL_NV_video_capture                      (SX) 

-#                Added Extension GL_NV_copy_image                         (SX) 

-#                Added Extension GL_NV_parameter_buffer_object2           (SX) 

-#                Added Extension GL_NV_shader_buffer_load                 (SX) 

-#                Added Extension GL_NV_vertex_buffer_unified_memory       (SX) 

-#                Added Extension GL_NV_texture_barrier                    (SX) 

-#                Variable GL_EXT_texture_snorm will be filled             (SX) 

-#                Variable GL_APPLE_row_bytes will be filled               (SX) 

-#                Added Extension WGL_NV_video_capture                     (SX) 

-#                Added Extension WGL_NV_copy_image                        (SX) 

-#                WGL_NV_video_out now named WGL_NV_video_output           (SX) 

-#                Added Extension GLX_EXT_swap_control                     (SX) 

-# Version 3.2.3  Fixed an Problem with glGetAttribLocation                (SX) 

-#                Added const GL_UNIFORM_BUFFER_EXT                        (SX) 

-#                Functions of GL_NV_texture_barrier now will be loaded    (SX) 

-# Version 4.0    Changes on Extension GL_ARB_texture_gather               (SX) 

-#                Changes on Extension GL_NV_shader_buffer_load            (SX) 

-#                Added OpenGL 3.3 Core                                    (SX) 

-#                Added OpenGL 4.0 Core                                    (SX) 

-#                Added Extension GL_AMD_shader_stencil_export             (SX) 

-#                Added Extension GL_AMD_seamless_cubemap_per_texture      (SX) 

-#                Added Extension GL_ARB_shading_language_include          (SX) 

-#                Added Extension GL_ARB_texture_compression_bptc          (SX) 

-#                Added Extension GL_ARB_blend_func_extended               (SX) 

-#                Added Extension GL_ARB_explicit_attrib_location          (SX) 

-#                Added Extension GL_ARB_occlusion_query2                  (SX) 

-#                Added Extension GL_ARB_sampler_objects                   (SX) 

-#                Added Extension GL_ARB_shader_bit_encoding               (SX) 

-#                Added Extension GL_ARB_texture_rgb10_a2ui                (SX) 

-#                Added Extension GL_ARB_texture_swizzle                   (SX) 

-#                Added Extension GL_ARB_timer_query                       (SX) 

-#                Added Extension GL_ARB_vertextyp_2_10_10_10_rev        (SX) 

-#                Added Extension GL_ARB_draw_indirect                     (SX) 

-#                Added Extension GL_ARB_gpu_shader5                       (SX) 

-#                Added Extension GL_ARB_gpu_shader_fp64                   (SX) 

-#                Added Extension GL_ARB_shader_subroutine                 (SX) 

-#                Added Extension GL_ARB_tessellation_shader               (SX) 

-#                Added Extension GL_ARB_texture_buffer_object_rgb32       (SX) 

-#                Added Extension GL_ARB_transform_feedback2               (SX) 

-#                Added Extension GL_ARB_transform_feedback3               (SX) 

-# Version 4.1    Possible fix some strange linux behavior                 (SX) 

-#                All function uses GL instead of TGL types                (SX) 

-#                GL_AMD_vertex_shader_tesselator will be read now         (SX) 

-#                GL_AMD_draw_buffers_blend will be read now               (SX) 

-#                Changes on glStencilFuncSeparate (GL_2_0)                (SX) 

-#                Changes on GL_VERSION_3_2                                (SX) 

-#                Changes on GL_VERSION_3_3                                (SX) 

-#                Changes on GL_VERSION_4_0                                (SX) 

-#                Changes on GL_ARB_sample_shading                         (SX) 

-#                Changes on GL_ARB_texture_cube_map_array                 (SX) 

-#                Changes on GL_ARB_gpu_shader5                            (SX) 

-#                Changes on GL_ARB_transform_feedback3                    (SX) 

-#                Changes on GL_ARB_sampler_objects                        (SX) 

-#                Changes on GL_ARB_gpu_shader_fp64                        (SX) 

-#                Changes on GL_APPLE_element_array                        (SX) 

-#                Changes on GL_APPLE_vertex_array_range                   (SX) 

-#                Changes on GL_NV_transform_feedback                      (SX) 

-#                Changes on GL_NV_vertex_buffer_unified_memory            (SX) 

-#                Changes on GL_EXT_multi_draw_arrays                      (SX) 

-#                Changes on GL_EXT_direct_state_access                    (SX) 

-#                Changes on GL_AMD_performance_monitor                    (SX) 

-#                Changes on GL_AMD_seamless_cubemap_per_texture           (SX) 

-#                Changes on GL_EXT_geometry_shader4                       (SX) 

-#                Added OpenGL 4.1 Core                                    (SX) 

-#                Added Extension GL_ARB_ES2_compatibility                 (SX) 

-#                Added Extension GL_ARB_get_program_binary                (SX) 

-#                Added Extension GL_ARB_separate_shader_objects           (SX) 

-#                Added Extension GL_ARB_shader_precision                  (SX) 

-#                Added Extension GL_ARB_vertex_attrib_64bit               (SX) 

-#                Added Extension GL_ARB_viewport_array                    (SX) 

-#                Added Extension GL_ARB_cl_event                          (SX) 

-#                Added Extension GL_ARB_debug_output                      (SX) 

-#                Added Extension GL_ARB_robustness                        (SX) 

-#                Added Extension GL_ARB_shader_stencil_export             (SX) 

-#                Added Extension GL_AMD_conservative_depth                (SX) 

-#                Added Extension GL_EXT_shader_image_load_store           (SX) 

-#                Added Extension GL_EXT_vertex_attrib_64bit               (SX) 

-#                Added Extension GL_NV_gpu_program5                       (SX) 

-#                Added Extension GL_NV_gpu_shader5                        (SX) 

-#                Added Extension GL_NV_shader_buffer_store                (SX) 

-#                Added Extension GL_NV_tessellation_program5              (SX) 

-#                Added Extension GL_NV_vertex_attrib_integer_64bit        (SX) 

-#                Added Extension GL_NV_multisample_coverage               (SX) 

-#                Added Extension GL_AMD_name_gen_delete                   (SX) 

-#                Added Extension GL_AMD_debug_output                      (SX) 

-#                Added Extension GL_NV_vdpau_interop                      (SX) 

-#                Added Extension GL_AMD_transform_feedback3_lines_triangles (SX) 

-#                Added Extension GL_AMD_depth_clamp_separate              (SX) 

-#                Added Extension GL_EXT_texture_sRGB_decode               (SX) 

-#                Added Extension WGL_ARB_framebuffer_sRGB                 (SX) 

-#                Added Extension WGL_ARB_create_context_robustness        (SX) 

-#                Added Extension WGL_EXT_create_context_es2_profile       (SX) 

-#                Added Extension WGL_NV_multisample_coverage              (SX) 

-#                Added Extension GLX_ARB_vertex_buffer_object             (SX) 

-#                Added Extension GLX_ARB_framebuffer_sRGB                 (SX) 

-#                Added Extension GLX_ARB_create_context_robustness        (SX) 

-#                Added Extension GLX_EXT_create_context_es2_profile       (SX) 

-# Version 4.1a   Fix for dglGetProcAddress with FPC and linux (def param) (SW) 

-# Version 4.2    Added OpenGL 4.2 Core                                    (SW) 

-#                Added Extension GL_ARB_base_instance                     (SW) 

-#                Added Extension GL_ARB_shading_language_420pack          (SW) 

-#                Added Extension GL_ARB_transform_feedback_instanced      (SW) 

-#                Added Extension GL_ARB_compressed_texture_pixel_storage  (SW) 

-#                Added Extension GL_ARB_conservative_depth                (SW) 

-#                Added Extension GL_ARB_internalformat_query              (SW) 

-#                Added Extension GL_ARB_map_buffer_alignment              (SW) 

-#                Added Extension GL_ARB_shader_atomic_counters            (SW) 

-#                Added Extension GL_ARB_shader_image_load_store           (SW) 

-#                Added Extension GL_ARB_shading_language_packing          (SW) 

-#                Added Extension GL_ARB_texture_storage                   (SW) 

-#                Added Extension WGL_NV_DX_interop                        (SW) 

-#                Added Define for WGL_EXT_create_context_es2_profile      (SW) 

-# Version 4.2a   Added Mac OS X patch by Andrey Gruzdev                   (SW) 

-#==============================================================================

-# Header based on glext.h  rev 72 (2011/08/08)                                 

-# Header based on wglext.h rev 23 (2011/04/13)                                 

-# Header based on glxext.h rev 32 (2010/08/06)  (only Core/ARB/EXT)            

-#                                                                              

-# This is an important notice for maintaining. Dont remove it. And make sure   

-# to keep it up to date                                                        

-#==============================================================================

-

-{.deadCodeElim: on.}

-

-type 

-  PPointer* = ptr Pointer

-  GLenum* = uint32

-  GLboolean* = bool

-  GLbitfield* = uint32

-  GLbyte* = int8

-  GLshort* = int16

-  GLint* = int32

-  GLsizei* = int32

-  GLubyte* = uint8

-  GLushort* = uint16

-  GLuint* = uint32

-  GLfloat* = float32

-  GLclampf* = float32

-  GLdouble* = float64

-  GLclampd* = float64

-  GLvoid* = Pointer

-  GLint64* = Int64

-  GLuint64* = uint64

-  TGLenum* = GLenum

-  TGLboolean* = GLboolean

-  TGLbitfield* = GLbitfield

-  TGLbyte* = GLbyte

-  TGLshort* = GLshort

-  TGLint* = GLint

-  TGLsizei* = GLsizei

-  TGLubyte* = GLubyte

-  TGLushort* = GLushort

-  TGLuint* = GLuint

-  TGLfloat* = GLfloat

-  TGLclampf* = GLclampf

-  TGLdouble* = GLdouble

-  TGLclampd* = GLclampd

-  TGLvoid* = GLvoid

-  TGLint64* = GLint64

-  TGLuint64* = GLuint64

-  PGLboolean* = ptr GLboolean

-  PGLbyte* = ptr GLbyte

-  PGLshort* = ptr GLshort

-  PGLint* = ptr GLint

-  PGLsizei* = ptr GLsizei

-  PGLubyte* = ptr GLubyte

-  PGLushort* = ptr GLushort

-  PGLuint* = ptr GLuint

-  PGLclampf* = ptr GLclampf

-  PGLfloat* = ptr GLfloat

-  PGLdouble* = ptr GLdouble

-  PGLclampd* = ptr GLclampd

-  PGLenum* = ptr GLenum

-  PGLvoid* = Pointer

-  PPGLvoid* = ptr PGLvoid

-  PGLint64* = ptr GLint64

-  PGLuint64* = ptr GLuint64   # GL_NV_half_float

-  GLhalfNV* = int16

-  TGLhalfNV* = GLhalfNV

-  PGLhalfNV* = ptr GLhalfNV   # GL_ARB_shader_objects

-  PGLHandleARB* = ptr GLHandleARB

-  GLHandleARB* = int

-  GLcharARB* = Char

-  PGLcharARB* = cstring

-  PPGLcharARB* = ptr PGLcharARB # GL_VERSION_1_5

-  GLintptr* = GLint

-  GLsizeiptr* = GLsizei       # GL_ARB_vertex_buffer_object

-  GLintptrARB* = GLint

-  GLsizeiptrARB* = GLsizei    # GL_VERSION_2_0

-  GLHandle* = int

-  PGLchar* = cstring

-  PPGLchar* = ptr PGLChar     # GL_EXT_timer_query

-  GLint64EXT* = Int64

-  TGLint64EXT* = GLint64EXT

-  PGLint64EXT* = ptr GLint64EXT

-  GLuint64EXT* = GLuint64

-  TGLuint64EXT* = GLuint64EXT

-  PGLuint64EXT* = ptr GLuint64EXT # WGL_ARB_pbuffer

-  

-  GLsync* = Pointer           # GL_ARB_cl_event

-                              # These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event 

-  Tcl_context*{.final.} = object 

-  Tcl_event*{.final.} = object 

-  p_cl_context* = ptr Tcl_context

-  p_cl_event* = ptr Tcl_event  # GL_ARB_debug_output

-  TglDebugProcARB* = proc (source: GLenum, typ: GLenum, id: GLuint, 

-                           severity: GLenum, len: GLsizei, message: PGLchar, 

-                           userParam: PGLvoid){.stdcall.} # GL_AMD_debug_output

-  TglDebugProcAMD* = proc (id: GLuint, category: GLenum, severity: GLenum, 

-                           len: GLsizei, message: PGLchar, userParam: PGLvoid){.

-      stdcall.}               # GL_NV_vdpau_interop

-  GLvdpauSurfaceNV* = GLintptr

-  PGLvdpauSurfaceNV* = ptr GLvdpauSurfaceNV # GLX

-  

-when defined(windows):

-  type

-    HPBUFFERARB* = THandle      # WGL_EXT_pbuffer

-    HPBUFFEREXT* = THandle      # WGL_NV_present_video

-    PHVIDEOOUTPUTDEVICENV* = ptr HVIDEOOUTPUTDEVICENV

-    HVIDEOOUTPUTDEVICENV* = THandle # WGL_NV_video_output

-    PHPVIDEODEV* = ptr HPVIDEODEV

-    HPVIDEODEV* = THandle       # WGL_NV_gpu_affinity

-    PHPGPUNV* = ptr HPGPUNV

-    PHGPUNV* = ptr HGPUNV       # WGL_NV_video_capture

-    HVIDEOINPUTDEVICENV* = THandle

-    PHVIDEOINPUTDEVICENV* = ptr HVIDEOINPUTDEVICENV

-    HPGPUNV* = THandle

-    HGPUNV* = THandle           # GL_ARB_sync

-

-when defined(LINUX): 

-  type 

-    GLXContext* = Pointer

-    GLXContextID* = TXID

-    GLXDrawable* = TXID

-    GLXFBConfig* = Pointer

-    GLXPbuffer* = TXID

-    GLXPixmap* = TXID

-    GLXWindow* = TXID

-    Window* = TXID

-    Colormap* = TXID

-    Pixmap* = TXID

-    Font* = TXID

-type                          # Datatypes corresponding to GL's types TGL(name)(type)(count)

-  TGLVectorub2* = array[0..1, GLubyte]

-  TGLVectori2* = array[0..1, GLint]

-  TGLVectorf2* = array[0..1, GLfloat]

-  TGLVectord2* = array[0..1, GLdouble]

-  TGLVectorp2* = array[0..1, Pointer]

-  TGLVectorb3* = array[0..2, GLbyte]

-  TGLVectorub3* = array[0..2, GLubyte]

-  TGLVectori3* = array[0..2, GLint]

-  TGLVectorui3* = array[0..2, GLuint]

-  TGLVectorf3* = array[0..2, GLfloat]

-  TGLVectord3* = array[0..2, GLdouble]

-  TGLVectorp3* = array[0..2, Pointer]

-  TGLVectors3* = array[0..2, GLshort]

-  TGLVectorus3* = array[0..2, GLushort]

-  TGLVectorb4* = array[0..3, GLbyte]

-  TGLVectorub4* = array[0..3, GLubyte]

-  TGLVectori4* = array[0..3, GLint]

-  TGLVectorui4* = array[0..3, GLuint]

-  TGLVectorf4* = array[0..3, GLfloat]

-  TGLVectord4* = array[0..3, GLdouble]

-  TGLVectorp4* = array[0..3, Pointer]

-  TGLVectors4* = array[0..3, GLshort]

-  TGLVectorus4* = array[0..3, GLshort]

-  TGLArrayf4* = TGLVectorf4

-  TGLArrayf3* = TGLVectorf3

-  TGLArrayd3* = TGLVectord3

-  TGLArrayi4* = TGLVectori4

-  TGLArrayp4* = TGLVectorp4

-  TGlMatrixub3* = array[0..2, array[0..2, GLubyte]]

-  TGlMatrixi3* = array[0..2, array[0..2, GLint]]

-  TGLMatrixf3* = array[0..2, array[0..2, GLfloat]]

-  TGLMatrixd3* = array[0..2, array[0..2, GLdouble]]

-  TGlMatrixub4* = array[0..3, array[0..3, GLubyte]]

-  TGlMatrixi4* = array[0..3, array[0..3, GLint]]

-  TGLMatrixf4* = array[0..3, array[0..3, GLfloat]]

-  TGLMatrixd4* = array[0..3, array[0..3, GLdouble]]

-  TGLVector3f* = TGLVectorf3  # Datatypes corresponding to OpenGL12.pas for easy porting

-  TVector3d* = TGLVectord3

-  TVector4i* = TGLVectori4

-  TVector4f* = TGLVectorf4

-  TVector4p* = TGLVectorp4

-  TMatrix4f* = TGLMatrixf4

-  TMatrix4d* = TGLMatrixd4

-  PGLMatrixd4* = ptr TGLMatrixd4

-  PVector4i* = ptr TVector4i

-  TRect*{.final.} = object 

-    Left*, Top*, Right*, Bottom*: int32

-

-  PGPU_DEVICE* = ptr GPU_DEVICE

-  GPU_DEVICE*{.final.} = object 

-    cb*: int32

-    DeviceName*: array[0..31, Char]

-    DeviceString*: array[0..127, Char]

-    Flags*: int32

-    rcVirtualScreen*: TRect

-

-

-when defined(windows): 

-  type 

-    PWGLSwap* = ptr TWGLSwap

-    TWGLSWAP*{.final.} = object 

-      hdc*: HDC

-      uiFlags*: int32

-

-type 

-  TGLUNurbs*{.final.} = object 

-  TGLUQuadric*{.final.} = object 

-  TGLUTesselator*{.final.} = object 

-  PGLUNurbs* = ptr TGLUNurbs

-  PGLUQuadric* = ptr TGLUQuadric

-  PGLUTesselator* = ptr TGLUTesselator # backwards compatibility

-  TGLUNurbsObj* = TGLUNurbs

-  TGLUQuadricObj* = TGLUQuadric

-  TGLUTesselatorObj* = TGLUTesselator

-  TGLUTriangulatorObj* = TGLUTesselator

-  PGLUNurbsObj* = PGLUNurbs

-  PGLUQuadricObj* = PGLUQuadric

-  PGLUTesselatorObj* = PGLUTesselator

-  PGLUTriangulatorObj* = PGLUTesselator # GLUQuadricCallback

-

-  TGLUQuadricErrorProc* = proc(errorCode: GLenum){.stdcall.}

-  TGLUTessBeginProc* = proc(AType: GLenum){.stdcall.}

-  TGLUTessEdgeFlagProc* = proc(Flag: GLboolean){.stdcall.}

-  TGLUTessVertexProc* = proc(VertexData: Pointer){.stdcall.}

-  TGLUTessEndProc* = proc(){.stdcall.}

-  TGLUTessErrorProc* = proc(ErrNo: GLenum){.stdcall.}

-  TGLUTessCombineProc* = proc(Coords: TGLArrayd3, VertexData: TGLArrayp4, 

-                         Weight: TGLArrayf4, OutData: PPointer){.stdcall.}

-  TGLUTessBeginDataProc* = proc(AType: GLenum, UserData: Pointer){.stdcall.}

-  TGLUTessEdgeFlagDataProc* = proc(Flag: GLboolean, UserData: Pointer){.stdcall.}

-  TGLUTessVertexDataProc* = proc(VertexData: Pointer, UserData: Pointer){.stdcall.}

-  TGLUTessEndDataProc* = proc(UserData: Pointer){.stdcall.}

-  TGLUTessErrorDataProc* = proc(ErrNo: GLenum, UserData: Pointer){.stdcall.}

-  TGLUTessCombineDataProc* = proc(Coords: TGLArrayd3, VertexData: TGLArrayp4, 

-                             Weight: TGLArrayf4, OutData: PPointer, 

-                             UserData: Pointer){.stdcall.}

-  # GLUNurbsCallback

-  TGLUNurbsErrorProc* = proc(ErrorCode: GLEnum){.stdcall.}

-

-const                         # GL_VERSION_1_1

-                              # AttribMask 

-  GL_DEPTH_BUFFER_BIT* = 0x00000100

-  GL_STENCIL_BUFFER_BIT* = 0x00000400

-  GL_COLOR_BUFFER_BIT* = 0x00004000 # Boolean 

-  GL_TRUE* = 1

-  GL_FALSE* = 0               # BeginMode 

-  GL_POINTS* = 0x00000000

-  GL_LINES* = 0x00000001

-  GL_LINE_LOOP* = 0x00000002

-  GL_LINE_STRIP* = 0x00000003

-  GL_TRIANGLES* = 0x00000004

-  GL_TRIANGLE_STRIP* = 0x00000005

-  GL_TRIANGLE_FAN* = 0x00000006 # AlphaFunction 

-  GL_NEVER* = 0x00000200

-  GL_LESS* = 0x00000201

-  GL_EQUAL* = 0x00000202

-  GL_LEQUAL* = 0x00000203

-  GL_GREATER* = 0x00000204

-  GL_NOTEQUAL* = 0x00000205

-  GL_GEQUAL* = 0x00000206

-  GL_ALWAYS* = 0x00000207     # BlendingFactorDest 

-  GL_ZERO* = 0

-  GL_ONE* = 1

-  GL_SRC_COLOR* = 0x00000300

-  GL_ONE_MINUS_SRC_COLOR* = 0x00000301

-  GL_SRC_ALPHA* = 0x00000302

-  GL_ONE_MINUS_SRC_ALPHA* = 0x00000303

-  GL_DST_ALPHA* = 0x00000304

-  GL_ONE_MINUS_DST_ALPHA* = 0x00000305 # BlendingFactorSrc 

-  GL_DST_COLOR* = 0x00000306

-  GL_ONE_MINUS_DST_COLOR* = 0x00000307

-  GL_SRC_ALPHA_SATURATE* = 0x00000308 # DrawBufferMode 

-  GL_NONE* = 0

-  GL_FRONT_LEFT* = 0x00000400

-  GL_FRONT_RIGHT* = 0x00000401

-  GL_BACK_LEFT* = 0x00000402

-  GL_BACK_RIGHT* = 0x00000403

-  GL_FRONT* = 0x00000404

-  GL_BACK* = 0x00000405

-  GL_LEFT* = 0x00000406

-  GL_RIGHT* = 0x00000407

-  GL_FRONT_AND_BACK* = 0x00000408 # ErrorCode 

-  GL_NO_ERROR* = 0

-  GL_INVALID_ENUM* = 0x00000500

-  GL_INVALID_VALUE* = 0x00000501

-  GL_INVALID_OPERATION* = 0x00000502

-  GL_OUT_OF_MEMORY* = 0x00000505 # FrontFaceDirection 

-  GL_CW* = 0x00000900

-  GL_CCW* = 0x00000901        # GetPName 

-  cGL_POINT_SIZE* = 0x00000B11

-  GL_POINT_SIZE_RANGE* = 0x00000B12

-  GL_POINT_SIZE_GRANULARITY* = 0x00000B13

-  GL_LINE_SMOOTH* = 0x00000B20

-  cGL_LINE_WIDTH* = 0x00000B21

-  GL_LINE_WIDTH_RANGE* = 0x00000B22

-  GL_LINE_WIDTH_GRANULARITY* = 0x00000B23

-  GL_POLYGON_SMOOTH* = 0x00000B41

-  cGL_CULL_FACE* = 0x00000B44

-  GL_CULL_FACE_MODE* = 0x00000B45

-  cGL_FRONT_FACE* = 0x00000B46

-  cGL_DEPTH_RANGE* = 0x00000B70

-  GL_DEPTH_TEST* = 0x00000B71

-  GL_DEPTH_WRITEMASK* = 0x00000B72

-  GL_DEPTH_CLEAR_VALUE* = 0x00000B73

-  cGL_DEPTH_FUNC* = 0x00000B74

-  GL_STENCIL_TEST* = 0x00000B90

-  GL_STENCIL_CLEAR_VALUE* = 0x00000B91

-  cGL_STENCIL_FUNC* = 0x00000B92

-  GL_STENCIL_VALUE_MASK* = 0x00000B93

-  GL_STENCIL_FAIL* = 0x00000B94

-  GL_STENCIL_PASS_DEPTH_FAIL* = 0x00000B95

-  GL_STENCIL_PASS_DEPTH_PASS* = 0x00000B96

-  GL_STENCIL_REF* = 0x00000B97

-  GL_STENCIL_WRITEMASK* = 0x00000B98

-  cGL_VIEWPORT* = 0x00000BA2

-  GL_DITHER* = 0x00000BD0

-  GL_BLEND_DST* = 0x00000BE0

-  GL_BLEND_SRC* = 0x00000BE1

-  GL_BLEND* = 0x00000BE2

-  GL_LOGIC_OP_MODE* = 0x00000BF0

-  GL_COLOR_LOGIC_OP* = 0x00000BF2

-  cGL_DRAW_BUFFER* = 0x00000C01

-  cGL_READ_BUFFER* = 0x00000C02

-  GL_SCISSOR_BOX* = 0x00000C10

-  GL_SCISSOR_TEST* = 0x00000C11

-  GL_COLOR_CLEAR_VALUE* = 0x00000C22

-  GL_COLOR_WRITEMASK* = 0x00000C23

-  GL_DOUBLEBUFFER* = 0x00000C32

-  GL_STEREO* = 0x00000C33

-  GL_LINE_SMOOTH_HINT* = 0x00000C52

-  GL_POLYGON_SMOOTH_HINT* = 0x00000C53

-  GL_UNPACK_SWAP_BYTES* = 0x00000CF0

-  GL_UNPACK_LSB_FIRST* = 0x00000CF1

-  GL_UNPACK_ROW_LENGTH* = 0x00000CF2

-  GL_UNPACK_SKIP_ROWS* = 0x00000CF3

-  GL_UNPACK_SKIP_PIXELS* = 0x00000CF4

-  GL_UNPACK_ALIGNMENT* = 0x00000CF5

-  GL_PACK_SWAP_BYTES* = 0x00000D00

-  GL_PACK_LSB_FIRST* = 0x00000D01

-  GL_PACK_ROW_LENGTH* = 0x00000D02

-  GL_PACK_SKIP_ROWS* = 0x00000D03

-  GL_PACK_SKIP_PIXELS* = 0x00000D04

-  GL_PACK_ALIGNMENT* = 0x00000D05

-  GL_MAX_TEXTURE_SIZE* = 0x00000D33

-  GL_MAX_VIEWPORT_DIMS* = 0x00000D3A

-  GL_SUBPIXEL_BITS* = 0x00000D50

-  GL_TEXTURE_1D* = 0x00000DE0

-  GL_TEXTURE_2D* = 0x00000DE1

-  GL_POLYGON_OFFSET_UNITS* = 0x00002A00

-  GL_POLYGON_OFFSET_POINT* = 0x00002A01

-  GL_POLYGON_OFFSET_LINE* = 0x00002A02

-  GL_POLYGON_OFFSET_FILL* = 0x00008037

-  GL_POLYGON_OFFSET_FACTOR* = 0x00008038

-  GL_TEXTURE_BINDING_1D* = 0x00008068

-  GL_TEXTURE_BINDING_2D* = 0x00008069 # GetTextureParameter 

-  GL_TEXTURE_WIDTH* = 0x00001000

-  GL_TEXTURE_HEIGHT* = 0x00001001

-  GL_TEXTURE_INTERNAL_FORMAT* = 0x00001003

-  GL_TEXTURE_BORDER_COLOR* = 0x00001004

-  GL_TEXTURE_BORDER* = 0x00001005

-  GL_TEXTURE_RED_SIZE* = 0x0000805C

-  GL_TEXTURE_GREEN_SIZE* = 0x0000805D

-  GL_TEXTURE_BLUE_SIZE* = 0x0000805E

-  GL_TEXTURE_ALPHA_SIZE* = 0x0000805F # HintMode 

-  GL_DONT_CARE* = 0x00001100

-  GL_FASTEST* = 0x00001101

-  GL_NICEST* = 0x00001102     # DataType 

-  cGL_BYTE* = 0x00001400

-  cGL_UNSIGNED_BYTE* = 0x00001401

-  cGL_SHORT* = 0x00001402

-  cGL_UNSIGNED_SHORT* = 0x00001403

-  cGL_INT* = 0x00001404

-  cGL_UNSIGNED_INT* = 0x00001405

-  cGL_FLOAT* = 0x00001406

-  cGL_DOUBLE* = 0x0000140A     # LogicOp 

-  cGL_CLEAR* = 0x00001500

-  GL_AND* = 0x00001501

-  GL_AND_REVERSE* = 0x00001502

-  GL_COPY* = 0x00001503

-  GL_AND_INVERTED* = 0x00001504

-  GL_NOOP* = 0x00001505

-  GL_XOR* = 0x00001506

-  GL_OR* = 0x00001507

-  GL_NOR* = 0x00001508

-  GL_EQUIV* = 0x00001509

-  GL_INVERT* = 0x0000150A

-  GL_OR_REVERSE* = 0x0000150B

-  GL_COPY_INVERTED* = 0x0000150C

-  GL_OR_INVERTED* = 0x0000150D

-  GL_NAND* = 0x0000150E

-  GL_SET* = 0x0000150F        # MatrixMode (for gl3.h, FBO attachment type) 

-  GL_TEXTURE* = 0x00001702    # PixelCopyType 

-  GL_COLOR* = 0x00001800

-  GL_DEPTH* = 0x00001801

-  GL_STENCIL* = 0x00001802    # PixelFormat 

-  GL_STENCIL_INDEX* = 0x00001901

-  GL_DEPTH_COMPONENT* = 0x00001902

-  GL_RED* = 0x00001903

-  GL_GREEN* = 0x00001904

-  GL_BLUE* = 0x00001905

-  GL_ALPHA* = 0x00001906

-  GL_RGB* = 0x00001907

-  GL_RGBA* = 0x00001908       # PolygonMode 

-  GL_POINT* = 0x00001B00

-  GL_LINE* = 0x00001B01

-  GL_FILL* = 0x00001B02       # StencilOp 

-  GL_KEEP* = 0x00001E00

-  GL_REPLACE* = 0x00001E01

-  GL_INCR* = 0x00001E02

-  GL_DECR* = 0x00001E03       # StringName 

-  GL_VENDOR* = 0x00001F00

-  GL_RENDERER* = 0x00001F01

-  GL_VERSION* = 0x00001F02

-  GL_EXTENSIONS* = 0x00001F03 # TextureMagFilter 

-  GL_NEAREST* = 0x00002600

-  GL_LINEAR* = 0x00002601     # TextureMinFilter 

-  GL_NEAREST_MIPMAP_NEAREST* = 0x00002700

-  GL_LINEAR_MIPMAP_NEAREST* = 0x00002701

-  GL_NEAREST_MIPMAP_LINEAR* = 0x00002702

-  GL_LINEAR_MIPMAP_LINEAR* = 0x00002703 # TextureParameterName 

-  GL_TEXTURE_MAG_FILTER* = 0x00002800

-  GL_TEXTURE_MIN_FILTER* = 0x00002801

-  GL_TEXTURE_WRAP_S* = 0x00002802

-  GL_TEXTURE_WRAP_T* = 0x00002803 # TextureTarget 

-  GL_PROXY_TEXTURE_1D* = 0x00008063

-  GL_PROXY_TEXTURE_2D* = 0x00008064 # TextureWrapMode 

-  GL_REPEAT* = 0x00002901     # PixelInternalFormat 

-  GL_R3_G3_B2* = 0x00002A10

-  GL_RGB4* = 0x0000804F

-  GL_RGB5* = 0x00008050

-  GL_RGB8* = 0x00008051

-  GL_RGB10* = 0x00008052

-  GL_RGB12* = 0x00008053

-  GL_RGB16* = 0x00008054

-  GL_RGBA2* = 0x00008055

-  GL_RGBA4* = 0x00008056

-  GL_RGB5_A1* = 0x00008057

-  GL_RGBA8* = 0x00008058

-  GL_RGB10_A2* = 0x00008059

-  GL_RGBA12* = 0x0000805A

-  GL_RGBA16* = 0x0000805B

-  cGL_ACCUM* = 0x00000100

-  GL_LOAD* = 0x00000101

-  GL_RETURN* = 0x00000102

-  GL_MULT* = 0x00000103

-  GL_ADD* = 0x00000104

-  GL_CURRENT_BIT* = 0x00000001

-  GL_POINT_BIT* = 0x00000002

-  GL_LINE_BIT* = 0x00000004

-  GL_POLYGON_BIT* = 0x00000008

-  GL_POLYGON_STIPPLE_BIT* = 0x00000010

-  GL_PIXEL_MODE_BIT* = 0x00000020

-  GL_LIGHTING_BIT* = 0x00000040

-  GL_FOG_BIT* = 0x00000080

-  GL_ACCUM_BUFFER_BIT* = 0x00000200

-  GL_VIEWPORT_BIT* = 0x00000800

-  GL_TRANSFORM_BIT* = 0x00001000

-  GL_ENABLE_BIT* = 0x00002000

-  GL_HINT_BIT* = 0x00008000

-  GL_EVAL_BIT* = 0x00010000

-  GL_LIST_BIT* = 0x00020000

-  GL_TEXTURE_BIT* = 0x00040000

-  GL_SCISSOR_BIT* = 0x00080000

-  GL_ALL_ATTRIB_BITS* = 0x000FFFFF

-  GL_QUADS* = 0x00000007

-  GL_QUAD_STRIP* = 0x00000008

-  GL_POLYGON* = 0x00000009

-  GL_CLIP_PLANE0* = 0x00003000

-  GL_CLIP_PLANE1* = 0x00003001

-  GL_CLIP_PLANE2* = 0x00003002

-  GL_CLIP_PLANE3* = 0x00003003

-  GL_CLIP_PLANE4* = 0x00003004

-  GL_CLIP_PLANE5* = 0x00003005

-  GL_2_BYTES* = 0x00001407

-  GL_3_BYTES* = 0x00001408

-  GL_4_BYTES* = 0x00001409

-  GL_AUX0* = 0x00000409

-  GL_AUX1* = 0x0000040A

-  GL_AUX2* = 0x0000040B

-  GL_AUX3* = 0x0000040C

-  GL_STACK_OVERFLOW* = 0x00000503

-  GL_STACK_UNDERFLOW* = 0x00000504

-  GL_2D* = 0x00000600

-  GL_3D* = 0x00000601

-  GL_3D_COLOR* = 0x00000602

-  GL_3D_COLOR_TEXTURE* = 0x00000603

-  GL_4D_COLOR_TEXTURE* = 0x00000604

-  GL_PASS_THROUGH_TOKEN* = 0x00000700

-  GL_POINT_TOKEN* = 0x00000701

-  GL_LINE_TOKEN* = 0x00000702

-  GL_POLYGON_TOKEN* = 0x00000703

-  GL_BITMAP_TOKEN* = 0x00000704

-  GL_DRAW_PIXEL_TOKEN* = 0x00000705

-  GL_COPY_PIXEL_TOKEN* = 0x00000706

-  GL_LINE_RESET_TOKEN* = 0x00000707

-  GL_EXP* = 0x00000800

-  GL_EXP2* = 0x00000801

-  GL_COEFF* = 0x00000A00

-  GL_ORDER* = 0x00000A01

-  GL_DOMAIN* = 0x00000A02

-  GL_CURRENT_COLOR* = 0x00000B00

-  GL_CURRENT_INDEX* = 0x00000B01

-  GL_CURRENT_NORMAL* = 0x00000B02

-  GL_CURRENT_TEXTURE_COORDS* = 0x00000B03

-  GL_CURRENT_RASTER_COLOR* = 0x00000B04

-  GL_CURRENT_RASTER_INDEX* = 0x00000B05

-  GL_CURRENT_RASTER_TEXTURE_COORDS* = 0x00000B06

-  GL_CURRENT_RASTER_POSITION* = 0x00000B07

-  GL_CURRENT_RASTER_POSITION_VALID* = 0x00000B08

-  GL_CURRENT_RASTER_DISTANCE* = 0x00000B09

-  GL_POINT_SMOOTH* = 0x00000B10

-  cGL_LINE_STIPPLE* = 0x00000B24

-  GL_LINE_STIPPLE_PATTERN* = 0x00000B25

-  GL_LINE_STIPPLE_REPEAT* = 0x00000B26

-  GL_LIST_MODE* = 0x00000B30

-  GL_MAX_LIST_NESTING* = 0x00000B31

-  cGL_LIST_BASE* = 0x00000B32

-  GL_LIST_INDEX* = 0x00000B33

-  cGL_POLYGON_MODE* = 0x00000B40

-  cGL_POLYGON_STIPPLE* = 0x00000B42

-  cGL_EDGE_FLAG* = 0x00000B43

-  GL_LIGHTING* = 0x00000B50

-  GL_LIGHT_MODEL_LOCAL_VIEWER* = 0x00000B51

-  GL_LIGHT_MODEL_TWO_SIDE* = 0x00000B52

-  GL_LIGHT_MODEL_AMBIENT* = 0x00000B53

-  cGL_SHADE_MODEL* = 0x00000B54

-  GL_COLOR_MATERIAL_FACE* = 0x00000B55

-  GL_COLOR_MATERIAL_PARAMETER* = 0x00000B56

-  cGL_COLOR_MATERIAL* = 0x00000B57

-  GL_FOG* = 0x00000B60

-  GL_FOG_INDEX* = 0x00000B61

-  GL_FOG_DENSITY* = 0x00000B62

-  GL_FOG_START* = 0x00000B63

-  GL_FOG_END* = 0x00000B64

-  GL_FOG_MODE* = 0x00000B65

-  GL_FOG_COLOR* = 0x00000B66

-  GL_ACCUM_CLEAR_VALUE* = 0x00000B80

-  cGL_MATRIX_MODE* = 0x00000BA0

-  GL_NORMALIZE* = 0x00000BA1

-  GL_MODELVIEW_STACK_DEPTH* = 0x00000BA3

-  GL_PROJECTION_STACK_DEPTH* = 0x00000BA4

-  GL_TEXTURE_STACK_DEPTH* = 0x00000BA5

-  GL_MODELVIEW_MATRIX* = 0x00000BA6

-  GL_PROJECTION_MATRIX* = 0x00000BA7

-  GL_TEXTURE_MATRIX* = 0x00000BA8

-  GL_ATTRIB_STACK_DEPTH* = 0x00000BB0

-  GL_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000BB1

-  GL_ALPHA_TEST* = 0x00000BC0

-  GL_ALPHA_TEST_FUNC* = 0x00000BC1

-  GL_ALPHA_TEST_REF* = 0x00000BC2

-  GL_INDEX_LOGIC_OP* = 0x00000BF1

-  GL_AUX_BUFFERS* = 0x00000C00

-  GL_INDEX_CLEAR_VALUE* = 0x00000C20

-  GL_INDEX_WRITEMASK* = 0x00000C21

-  GL_INDEX_MODE* = 0x00000C30

-  GL_RGBA_MODE* = 0x00000C31

-  cGL_RENDER_MODE* = 0x00000C40

-  GL_PERSPECTIVE_CORRECTION_HINT* = 0x00000C50

-  GL_POINT_SMOOTH_HINT* = 0x00000C51

-  GL_FOG_HINT* = 0x00000C54

-  GL_TEXTURE_GEN_S* = 0x00000C60

-  GL_TEXTURE_GEN_T* = 0x00000C61

-  GL_TEXTURE_GEN_R* = 0x00000C62

-  GL_TEXTURE_GEN_Q* = 0x00000C63

-  GL_PIXEL_MAP_I_TO_I* = 0x00000C70

-  GL_PIXEL_MAP_S_TO_S* = 0x00000C71

-  GL_PIXEL_MAP_I_TO_R* = 0x00000C72

-  GL_PIXEL_MAP_I_TO_G* = 0x00000C73

-  GL_PIXEL_MAP_I_TO_B* = 0x00000C74

-  GL_PIXEL_MAP_I_TO_A* = 0x00000C75

-  GL_PIXEL_MAP_R_TO_R* = 0x00000C76

-  GL_PIXEL_MAP_G_TO_G* = 0x00000C77

-  GL_PIXEL_MAP_B_TO_B* = 0x00000C78

-  GL_PIXEL_MAP_A_TO_A* = 0x00000C79

-  GL_PIXEL_MAP_I_TO_I_SIZE* = 0x00000CB0

-  GL_PIXEL_MAP_S_TO_S_SIZE* = 0x00000CB1

-  GL_PIXEL_MAP_I_TO_R_SIZE* = 0x00000CB2

-  GL_PIXEL_MAP_I_TO_G_SIZE* = 0x00000CB3

-  GL_PIXEL_MAP_I_TO_B_SIZE* = 0x00000CB4

-  GL_PIXEL_MAP_I_TO_A_SIZE* = 0x00000CB5

-  GL_PIXEL_MAP_R_TO_R_SIZE* = 0x00000CB6

-  GL_PIXEL_MAP_G_TO_G_SIZE* = 0x00000CB7

-  GL_PIXEL_MAP_B_TO_B_SIZE* = 0x00000CB8

-  GL_PIXEL_MAP_A_TO_A_SIZE* = 0x00000CB9

-  GL_MAP_COLOR* = 0x00000D10

-  GL_MAP_STENCIL* = 0x00000D11

-  GL_INDEX_SHIFT* = 0x00000D12

-  GL_INDEX_OFFSET* = 0x00000D13

-  GL_RED_SCALE* = 0x00000D14

-  GL_RED_BIAS* = 0x00000D15

-  GL_ZOOM_X* = 0x00000D16

-  GL_ZOOM_Y* = 0x00000D17

-  GL_GREEN_SCALE* = 0x00000D18

-  GL_GREEN_BIAS* = 0x00000D19

-  GL_BLUE_SCALE* = 0x00000D1A

-  GL_BLUE_BIAS* = 0x00000D1B

-  GL_ALPHA_SCALE* = 0x00000D1C

-  GL_ALPHA_BIAS* = 0x00000D1D

-  GL_DEPTH_SCALE* = 0x00000D1E

-  GL_DEPTH_BIAS* = 0x00000D1F

-  GL_MAX_EVAL_ORDER* = 0x00000D30

-  GL_MAX_LIGHTS* = 0x00000D31

-  GL_MAX_CLIP_PLANES* = 0x00000D32

-  GL_MAX_PIXEL_MAP_TABLE* = 0x00000D34

-  GL_MAX_ATTRIB_STACK_DEPTH* = 0x00000D35

-  GL_MAX_MODELVIEW_STACK_DEPTH* = 0x00000D36

-  GL_MAX_NAME_STACK_DEPTH* = 0x00000D37

-  GL_MAX_PROJECTION_STACK_DEPTH* = 0x00000D38

-  GL_MAX_TEXTURE_STACK_DEPTH* = 0x00000D39

-  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH* = 0x00000D3B

-  GL_INDEX_BITS* = 0x00000D51

-  GL_RED_BITS* = 0x00000D52

-  GL_GREEN_BITS* = 0x00000D53

-  GL_BLUE_BITS* = 0x00000D54

-  GL_ALPHA_BITS* = 0x00000D55

-  GL_DEPTH_BITS* = 0x00000D56

-  GL_STENCIL_BITS* = 0x00000D57

-  GL_ACCUM_RED_BITS* = 0x00000D58

-  GL_ACCUM_GREEN_BITS* = 0x00000D59

-  GL_ACCUM_BLUE_BITS* = 0x00000D5A

-  GL_ACCUM_ALPHA_BITS* = 0x00000D5B

-  GL_NAME_STACK_DEPTH* = 0x00000D70

-  GL_AUTO_NORMAL* = 0x00000D80

-  GL_MAP1_COLOR_4* = 0x00000D90

-  GL_MAP1_INDEX* = 0x00000D91

-  GL_MAP1_NORMAL* = 0x00000D92

-  GL_MAP1_TEXTURE_COORD_1* = 0x00000D93

-  GL_MAP1_TEXTURE_COORD_2* = 0x00000D94

-  GL_MAP1_TEXTURE_COORD_3* = 0x00000D95

-  GL_MAP1_TEXTURE_COORD_4* = 0x00000D96

-  GL_MAP1_VERTEX_3* = 0x00000D97

-  GL_MAP1_VERTEX_4* = 0x00000D98

-  GL_MAP2_COLOR_4* = 0x00000DB0

-  GL_MAP2_INDEX* = 0x00000DB1

-  GL_MAP2_NORMAL* = 0x00000DB2

-  GL_MAP2_TEXTURE_COORD_1* = 0x00000DB3

-  GL_MAP2_TEXTURE_COORD_2* = 0x00000DB4

-  GL_MAP2_TEXTURE_COORD_3* = 0x00000DB5

-  GL_MAP2_TEXTURE_COORD_4* = 0x00000DB6

-  GL_MAP2_VERTEX_3* = 0x00000DB7

-  GL_MAP2_VERTEX_4* = 0x00000DB8

-  GL_MAP1_GRID_DOMAIN* = 0x00000DD0

-  GL_MAP1_GRID_SEGMENTS* = 0x00000DD1

-  GL_MAP2_GRID_DOMAIN* = 0x00000DD2

-  GL_MAP2_GRID_SEGMENTS* = 0x00000DD3

-  GL_FEEDBACK_BUFFER_POINTER* = 0x00000DF0

-  GL_FEEDBACK_BUFFER_SIZE* = 0x00000DF1

-  GL_FEEDBACK_BUFFERtyp* = 0x00000DF2

-  GL_SELECTION_BUFFER_POINTER* = 0x00000DF3

-  GL_SELECTION_BUFFER_SIZE* = 0x00000DF4

-  GL_LIGHT0* = 0x00004000

-  GL_LIGHT1* = 0x00004001

-  GL_LIGHT2* = 0x00004002

-  GL_LIGHT3* = 0x00004003

-  GL_LIGHT4* = 0x00004004

-  GL_LIGHT5* = 0x00004005

-  GL_LIGHT6* = 0x00004006

-  GL_LIGHT7* = 0x00004007

-  GL_AMBIENT* = 0x00001200

-  GL_DIFFUSE* = 0x00001201

-  GL_SPECULAR* = 0x00001202

-  GL_POSITION* = 0x00001203

-  GL_SPOT_DIRECTION* = 0x00001204

-  GL_SPOT_EXPONENT* = 0x00001205

-  GL_SPOT_CUTOFF* = 0x00001206

-  GL_CONSTANT_ATTENUATION* = 0x00001207

-  GL_LINEAR_ATTENUATION* = 0x00001208

-  GL_QUADRATIC_ATTENUATION* = 0x00001209

-  GL_COMPILE* = 0x00001300

-  GL_COMPILE_AND_EXECUTE* = 0x00001301

-  GL_EMISSION* = 0x00001600

-  GL_SHININESS* = 0x00001601

-  GL_AMBIENT_AND_DIFFUSE* = 0x00001602

-  GL_COLOR_INDEXES* = 0x00001603

-  GL_MODELVIEW* = 0x00001700

-  GL_PROJECTION* = 0x00001701

-  GL_COLOR_INDEX* = 0x00001900

-  GL_LUMINANCE* = 0x00001909

-  GL_LUMINANCE_ALPHA* = 0x0000190A

-  cGL_BITMAP* = 0x00001A00

-  GL_RENDER* = 0x00001C00

-  GL_FEEDBACK* = 0x00001C01

-  GL_SELECT* = 0x00001C02

-  GL_FLAT* = 0x00001D00

-  GL_SMOOTH* = 0x00001D01

-  GL_S* = 0x00002000

-  GL_T* = 0x00002001

-  GL_R* = 0x00002002

-  GL_Q* = 0x00002003

-  GL_MODULATE* = 0x00002100

-  GL_DECAL* = 0x00002101

-  GL_TEXTURE_ENV_MODE* = 0x00002200

-  GL_TEXTURE_ENV_COLOR* = 0x00002201

-  GL_TEXTURE_ENV* = 0x00002300

-  GL_EYE_LINEAR* = 0x00002400

-  GL_OBJECT_LINEAR* = 0x00002401

-  GL_SPHERE_MAP* = 0x00002402

-  GL_TEXTURE_GEN_MODE* = 0x00002500

-  GL_OBJECT_PLANE* = 0x00002501

-  GL_EYE_PLANE* = 0x00002502

-  GL_CLAMP* = 0x00002900

-  GL_CLIENT_PIXEL_STORE_BIT* = 0x00000001

-  GL_CLIENT_VERTEX_ARRAY_BIT* = 0x00000002

-  GL_CLIENT_ALL_ATTRIB_BITS* = 0xFFFFFFFF

-  GL_ALPHA4* = 0x0000803B

-  GL_ALPHA8* = 0x0000803C

-  GL_ALPHA12* = 0x0000803D

-  GL_ALPHA16* = 0x0000803E

-  GL_LUMINANCE4* = 0x0000803F

-  GL_LUMINANCE8* = 0x00008040

-  GL_LUMINANCE12* = 0x00008041

-  GL_LUMINANCE16* = 0x00008042

-  GL_LUMINANCE4_ALPHA4* = 0x00008043

-  GL_LUMINANCE6_ALPHA2* = 0x00008044

-  GL_LUMINANCE8_ALPHA8* = 0x00008045

-  GL_LUMINANCE12_ALPHA4* = 0x00008046

-  GL_LUMINANCE12_ALPHA12* = 0x00008047

-  GL_LUMINANCE16_ALPHA16* = 0x00008048

-  GL_INTENSITY* = 0x00008049

-  GL_INTENSITY4* = 0x0000804A

-  GL_INTENSITY8* = 0x0000804B

-  GL_INTENSITY12* = 0x0000804C

-  GL_INTENSITY16* = 0x0000804D

-  GL_TEXTURE_LUMINANCE_SIZE* = 0x00008060

-  GL_TEXTURE_INTENSITY_SIZE* = 0x00008061

-  GL_TEXTURE_PRIORITY* = 0x00008066

-  GL_TEXTURE_RESIDENT* = 0x00008067

-  GL_VERTEX_ARRAY* = 0x00008074

-  GL_NORMAL_ARRAY* = 0x00008075

-  GL_COLOR_ARRAY* = 0x00008076

-  GL_INDEX_ARRAY* = 0x00008077

-  GL_TEXTURE_COORD_ARRAY* = 0x00008078

-  GL_EDGE_FLAG_ARRAY* = 0x00008079

-  GL_VERTEX_ARRAY_SIZE* = 0x0000807A

-  GL_VERTEX_ARRAYtyp* = 0x0000807B

-  GL_VERTEX_ARRAY_STRIDE* = 0x0000807C

-  GL_NORMAL_ARRAYtyp* = 0x0000807E

-  GL_NORMAL_ARRAY_STRIDE* = 0x0000807F

-  GL_COLOR_ARRAY_SIZE* = 0x00008081

-  GL_COLOR_ARRAYtyp* = 0x00008082

-  GL_COLOR_ARRAY_STRIDE* = 0x00008083

-  GL_INDEX_ARRAYtyp* = 0x00008085

-  GL_INDEX_ARRAY_STRIDE* = 0x00008086

-  GL_TEXTURE_COORD_ARRAY_SIZE* = 0x00008088

-  GL_TEXTURE_COORD_ARRAYtyp* = 0x00008089

-  GL_TEXTURE_COORD_ARRAY_STRIDE* = 0x0000808A

-  GL_EDGE_FLAG_ARRAY_STRIDE* = 0x0000808C

-  GL_VERTEX_ARRAY_POINTER* = 0x0000808E

-  GL_NORMAL_ARRAY_POINTER* = 0x0000808F

-  GL_COLOR_ARRAY_POINTER* = 0x00008090

-  GL_INDEX_ARRAY_POINTER* = 0x00008091

-  GL_TEXTURE_COORD_ARRAY_POINTER* = 0x00008092

-  GL_EDGE_FLAG_ARRAY_POINTER* = 0x00008093

-  GL_V2F* = 0x00002A20

-  GL_V3F* = 0x00002A21

-  GL_C4UB_V2F* = 0x00002A22

-  GL_C4UB_V3F* = 0x00002A23

-  GL_C3F_V3F* = 0x00002A24

-  GL_N3F_V3F* = 0x00002A25

-  GL_C4F_N3F_V3F* = 0x00002A26

-  GL_T2F_V3F* = 0x00002A27

-  GL_T4F_V4F* = 0x00002A28

-  GL_T2F_C4UB_V3F* = 0x00002A29

-  GL_T2F_C3F_V3F* = 0x00002A2A

-  GL_T2F_N3F_V3F* = 0x00002A2B

-  GL_T2F_C4F_N3F_V3F* = 0x00002A2C

-  GL_T4F_C4F_N3F_V4F* = 0x00002A2D

-  GL_COLOR_TABLE_FORMAT_EXT* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH_EXT* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE_EXT* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE_EXT* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE_EXT* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE_EXT* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT* = 0x000080DF

-  cGL_LOGIC_OP* = GL_INDEX_LOGIC_OP

-  GL_TEXTURE_COMPONENTS* = GL_TEXTURE_INTERNAL_FORMAT # GL_VERSION_1_2

-  GL_UNSIGNED_BYTE_3_3_2* = 0x00008032

-  GL_UNSIGNED_SHORT_4_4_4_4* = 0x00008033

-  GL_UNSIGNED_SHORT_5_5_5_1* = 0x00008034

-  GL_UNSIGNED_INT_8_8_8_8* = 0x00008035

-  GL_UNSIGNED_INT_10_10_10_2* = 0x00008036

-  GL_TEXTURE_BINDING_3D* = 0x0000806A

-  GL_PACK_SKIP_IMAGES* = 0x0000806B

-  GL_PACK_IMAGE_HEIGHT* = 0x0000806C

-  GL_UNPACK_SKIP_IMAGES* = 0x0000806D

-  GL_UNPACK_IMAGE_HEIGHT* = 0x0000806E

-  GL_TEXTURE_3D* = 0x0000806F

-  GL_PROXY_TEXTURE_3D* = 0x00008070

-  GL_TEXTURE_DEPTH* = 0x00008071

-  GL_TEXTURE_WRAP_R* = 0x00008072

-  GL_MAX_3D_TEXTURE_SIZE* = 0x00008073

-  GL_UNSIGNED_BYTE_2_3_3_REV* = 0x00008362

-  GL_UNSIGNED_SHORT_5_6_5* = 0x00008363

-  GL_UNSIGNED_SHORT_5_6_5_REV* = 0x00008364

-  GL_UNSIGNED_SHORT_4_4_4_4_REV* = 0x00008365

-  GL_UNSIGNED_SHORT_1_5_5_5_REV* = 0x00008366

-  GL_UNSIGNED_INT_8_8_8_8_REV* = 0x00008367

-  GL_UNSIGNED_INT_2_10_10_10_REV* = 0x00008368

-  GL_BGR* = 0x000080E0

-  GL_BGRA* = 0x000080E1

-  GL_MAX_ELEMENTS_VERTICES* = 0x000080E8

-  GL_MAX_ELEMENTS_INDICES* = 0x000080E9

-  GL_CLAMP_TO_EDGE* = 0x0000812F

-  GL_TEXTURE_MIN_LOD* = 0x0000813A

-  GL_TEXTURE_MAX_LOD* = 0x0000813B

-  GL_TEXTURE_BASE_LEVEL* = 0x0000813C

-  GL_TEXTURE_MAX_LEVEL* = 0x0000813D

-  GL_SMOOTH_POINT_SIZE_RANGE* = 0x00000B12

-  GL_SMOOTH_POINT_SIZE_GRANULARITY* = 0x00000B13

-  GL_SMOOTH_LINE_WIDTH_RANGE* = 0x00000B22

-  GL_SMOOTH_LINE_WIDTH_GRANULARITY* = 0x00000B23

-  GL_ALIASED_LINE_WIDTH_RANGE* = 0x0000846E

-  GL_RESCALE_NORMAL* = 0x0000803A

-  GL_LIGHT_MODEL_COLOR_CONTROL* = 0x000081F8

-  GL_SINGLE_COLOR* = 0x000081F9

-  GL_SEPARATE_SPECULAR_COLOR* = 0x000081FA

-  GL_ALIASED_POINT_SIZE_RANGE* = 0x0000846D # GL_VERSION_1_3

-  GL_TEXTURE0* = 0x000084C0

-  GL_TEXTURE1* = 0x000084C1

-  GL_TEXTURE2* = 0x000084C2

-  GL_TEXTURE3* = 0x000084C3

-  GL_TEXTURE4* = 0x000084C4

-  GL_TEXTURE5* = 0x000084C5

-  GL_TEXTURE6* = 0x000084C6

-  GL_TEXTURE7* = 0x000084C7

-  GL_TEXTURE8* = 0x000084C8

-  GL_TEXTURE9* = 0x000084C9

-  GL_TEXTURE10* = 0x000084CA

-  GL_TEXTURE11* = 0x000084CB

-  GL_TEXTURE12* = 0x000084CC

-  GL_TEXTURE13* = 0x000084CD

-  GL_TEXTURE14* = 0x000084CE

-  GL_TEXTURE15* = 0x000084CF

-  GL_TEXTURE16* = 0x000084D0

-  GL_TEXTURE17* = 0x000084D1

-  GL_TEXTURE18* = 0x000084D2

-  GL_TEXTURE19* = 0x000084D3

-  GL_TEXTURE20* = 0x000084D4

-  GL_TEXTURE21* = 0x000084D5

-  GL_TEXTURE22* = 0x000084D6

-  GL_TEXTURE23* = 0x000084D7

-  GL_TEXTURE24* = 0x000084D8

-  GL_TEXTURE25* = 0x000084D9

-  GL_TEXTURE26* = 0x000084DA

-  GL_TEXTURE27* = 0x000084DB

-  GL_TEXTURE28* = 0x000084DC

-  GL_TEXTURE29* = 0x000084DD

-  GL_TEXTURE30* = 0x000084DE

-  GL_TEXTURE31* = 0x000084DF

-  cGL_ACTIVE_TEXTURE* = 0x000084E0

-  GL_MULTISAMPLE* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_COVERAGE* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE* = 0x0000809F

-  cGL_SAMPLE_COVERAGE* = 0x000080A0

-  GL_SAMPLE_BUFFERS* = 0x000080A8

-  GL_SAMPLES* = 0x000080A9

-  GL_SAMPLE_COVERAGE_VALUE* = 0x000080AA

-  GL_SAMPLE_COVERAGE_INVERT* = 0x000080AB

-  GL_TEXTURE_CUBE_MAP* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE* = 0x0000851C

-  GL_COMPRESSED_RGB* = 0x000084ED

-  GL_COMPRESSED_RGBA* = 0x000084EE

-  GL_TEXTURE_COMPRESSION_HINT* = 0x000084EF

-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE* = 0x000086A0

-  GL_TEXTURE_COMPRESSED* = 0x000086A1

-  GL_NUM_COMPRESSED_TEXTURE_FORMATS* = 0x000086A2

-  GL_COMPRESSED_TEXTURE_FORMATS* = 0x000086A3

-  GL_CLAMP_TO_BORDER* = 0x0000812D

-  cGL_CLIENT_ACTIVE_TEXTURE* = 0x000084E1

-  GL_MAX_TEXTURE_UNITS* = 0x000084E2

-  GL_TRANSPOSE_MODELVIEW_MATRIX* = 0x000084E3

-  GL_TRANSPOSE_PROJECTION_MATRIX* = 0x000084E4

-  GL_TRANSPOSE_TEXTURE_MATRIX* = 0x000084E5

-  GL_TRANSPOSE_COLOR_MATRIX* = 0x000084E6

-  GL_MULTISAMPLE_BIT* = 0x20000000

-  GL_NORMAL_MAP* = 0x00008511

-  GL_REFLECTION_MAP* = 0x00008512

-  GL_COMPRESSED_ALPHA* = 0x000084E9

-  GL_COMPRESSED_LUMINANCE* = 0x000084EA

-  GL_COMPRESSED_LUMINANCE_ALPHA* = 0x000084EB

-  GL_COMPRESSED_INTENSITY* = 0x000084EC

-  GL_COMBINE* = 0x00008570

-  GL_COMBINE_RGB* = 0x00008571

-  GL_COMBINE_ALPHA* = 0x00008572

-  GL_SOURCE0_RGB* = 0x00008580

-  GL_SOURCE1_RGB* = 0x00008581

-  GL_SOURCE2_RGB* = 0x00008582

-  GL_SOURCE0_ALPHA* = 0x00008588

-  GL_SOURCE1_ALPHA* = 0x00008589

-  GL_SOURCE2_ALPHA* = 0x0000858A

-  GL_OPERAND0_RGB* = 0x00008590

-  GL_OPERAND1_RGB* = 0x00008591

-  GL_OPERAND2_RGB* = 0x00008592

-  GL_OPERAND0_ALPHA* = 0x00008598

-  GL_OPERAND1_ALPHA* = 0x00008599

-  GL_OPERAND2_ALPHA* = 0x0000859A

-  GL_RGB_SCALE* = 0x00008573

-  GL_ADD_SIGNED* = 0x00008574

-  GL_INTERPOLATE* = 0x00008575

-  GL_SUBTRACT* = 0x000084E7

-  GL_CONSTANT* = 0x00008576

-  GL_PRIMARY_COLOR* = 0x00008577

-  GL_PREVIOUS* = 0x00008578

-  GL_DOT3_RGB* = 0x000086AE

-  GL_DOT3_RGBA* = 0x000086AF  # GL_VERSION_1_4

-  GL_BLEND_DST_RGB* = 0x000080C8

-  GL_BLEND_SRC_RGB* = 0x000080C9

-  GL_BLEND_DST_ALPHA* = 0x000080CA

-  GL_BLEND_SRC_ALPHA* = 0x000080CB

-  GL_POINT_FADE_THRESHOLD_SIZE* = 0x00008128

-  GL_DEPTH_COMPONENT16* = 0x000081A5

-  GL_DEPTH_COMPONENT24* = 0x000081A6

-  GL_DEPTH_COMPONENT32* = 0x000081A7

-  GL_MIRRORED_REPEAT* = 0x00008370

-  GL_MAX_TEXTURE_LOD_BIAS* = 0x000084FD

-  GL_TEXTURE_LOD_BIAS* = 0x00008501

-  GL_INCR_WRAP* = 0x00008507

-  GL_DECR_WRAP* = 0x00008508

-  GL_TEXTURE_DEPTH_SIZE* = 0x0000884A

-  GL_TEXTURE_COMPARE_MODE* = 0x0000884C

-  GL_TEXTURE_COMPARE_FUNC* = 0x0000884D

-  GL_POINT_SIZE_MIN* = 0x00008126

-  GL_POINT_SIZE_MAX* = 0x00008127

-  GL_POINT_DISTANCE_ATTENUATION* = 0x00008129

-  cGL_GENERATE_MIPMAP* = 0x00008191

-  GL_GENERATE_MIPMAP_HINT* = 0x00008192

-  GL_FOG_COORDINATE_SOURCE* = 0x00008450

-  GL_FOG_COORDINATE* = 0x00008451

-  GL_FRAGMENT_DEPTH* = 0x00008452

-  GL_CURRENT_FOG_COORDINATE* = 0x00008453

-  GL_FOG_COORDINATE_ARRAYtyp* = 0x00008454

-  GL_FOG_COORDINATE_ARRAY_STRIDE* = 0x00008455

-  GL_FOG_COORDINATE_ARRAY_POINTER* = 0x00008456

-  GL_FOG_COORDINATE_ARRAY* = 0x00008457

-  GL_COLOR_SUM* = 0x00008458

-  GL_CURRENT_SECONDARY_COLOR* = 0x00008459

-  GL_SECONDARY_COLOR_ARRAY_SIZE* = 0x0000845A

-  GL_SECONDARY_COLOR_ARRAYtyp* = 0x0000845B

-  GL_SECONDARY_COLOR_ARRAY_STRIDE* = 0x0000845C

-  GL_SECONDARY_COLOR_ARRAY_POINTER* = 0x0000845D

-  GL_SECONDARY_COLOR_ARRAY* = 0x0000845E

-  GL_TEXTURE_FILTER_CONTROL* = 0x00008500

-  GL_DEPTH_TEXTURE_MODE* = 0x0000884B

-  GL_COMPARE_R_TO_TEXTURE* = 0x0000884E # GL_VERSION_1_5

-  GL_BUFFER_SIZE* = 0x00008764

-  GL_BUFFER_USAGE* = 0x00008765

-  GL_QUERY_COUNTER_BITS* = 0x00008864

-  GL_CURRENT_QUERY* = 0x00008865

-  GL_QUERY_RESULT* = 0x00008866

-  GL_QUERY_RESULT_AVAILABLE* = 0x00008867

-  GL_ARRAY_BUFFER* = 0x00008892

-  GL_ELEMENT_ARRAY_BUFFER* = 0x00008893

-  GL_ARRAY_BUFFER_BINDING* = 0x00008894

-  GL_ELEMENT_ARRAY_BUFFER_BINDING* = 0x00008895

-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING* = 0x0000889F

-  GL_READ_ONLY* = 0x000088B8

-  GL_WRITE_ONLY* = 0x000088B9

-  GL_READ_WRITE* = 0x000088BA

-  GL_BUFFER_ACCESS* = 0x000088BB

-  GL_BUFFER_MAPPED* = 0x000088BC

-  GL_BUFFER_MAP_POINTER* = 0x000088BD

-  GL_STREAM_DRAW* = 0x000088E0

-  GL_STREAM_READ* = 0x000088E1

-  GL_STREAM_COPY* = 0x000088E2

-  GL_STATIC_DRAW* = 0x000088E4

-  GL_STATIC_READ* = 0x000088E5

-  GL_STATIC_COPY* = 0x000088E6

-  GL_DYNAMIC_DRAW* = 0x000088E8

-  GL_DYNAMIC_READ* = 0x000088E9

-  GL_DYNAMIC_COPY* = 0x000088EA

-  GL_SAMPLES_PASSED* = 0x00008914

-  GL_VERTEX_ARRAY_BUFFER_BINDING* = 0x00008896

-  GL_NORMAL_ARRAY_BUFFER_BINDING* = 0x00008897

-  GL_COLOR_ARRAY_BUFFER_BINDING* = 0x00008898

-  GL_INDEX_ARRAY_BUFFER_BINDING* = 0x00008899

-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING* = 0x0000889A

-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING* = 0x0000889B

-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING* = 0x0000889C

-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING* = 0x0000889D

-  GL_WEIGHT_ARRAY_BUFFER_BINDING* = 0x0000889E

-  GL_FOG_COORD_SRC* = 0x00008450

-  GL_FOG_COORD* = 0x00008451

-  GL_CURRENT_FOG_COORD* = 0x00008453

-  GL_FOG_COORD_ARRAYtyp* = 0x00008454

-  GL_FOG_COORD_ARRAY_STRIDE* = 0x00008455

-  GL_FOG_COORD_ARRAY_POINTER* = 0x00008456

-  GL_FOG_COORD_ARRAY* = 0x00008457

-  GL_FOG_COORD_ARRAY_BUFFER_BINDING* = 0x0000889D

-  GL_SRC0_RGB* = 0x00008580

-  GL_SRC1_RGB* = 0x00008581

-  GL_SRC2_RGB* = 0x00008582

-  GL_SRC0_ALPHA* = 0x00008588

-  GL_SRC1_ALPHA* = 0x00008589

-  GL_SRC2_ALPHA* = 0x0000858A # GL_VERSION_2_0

-  GL_BLEND_EQUATION_RGB* = 0x00008009

-  GL_VERTEX_ATTRIB_ARRAY_ENABLED* = 0x00008622

-  GL_VERTEX_ATTRIB_ARRAY_SIZE* = 0x00008623

-  GL_VERTEX_ATTRIB_ARRAY_STRIDE* = 0x00008624

-  GL_VERTEX_ATTRIB_ARRAYtyp* = 0x00008625

-  GL_CURRENT_VERTEX_ATTRIB* = 0x00008626

-  GL_VERTEX_PROGRAM_POINT_SIZE* = 0x00008642

-  GL_VERTEX_ATTRIB_ARRAY_POINTER* = 0x00008645

-  GL_STENCIL_BACK_FUNC* = 0x00008800

-  GL_STENCIL_BACK_FAIL* = 0x00008801

-  GL_STENCIL_BACK_PASS_DEPTH_FAIL* = 0x00008802

-  GL_STENCIL_BACK_PASS_DEPTH_PASS* = 0x00008803

-  GL_MAX_DRAW_BUFFERS* = 0x00008824

-  GL_DRAW_BUFFER0* = 0x00008825

-  GL_DRAW_BUFFER1* = 0x00008826

-  GL_DRAW_BUFFER2* = 0x00008827

-  GL_DRAW_BUFFER3* = 0x00008828

-  GL_DRAW_BUFFER4* = 0x00008829

-  GL_DRAW_BUFFER5* = 0x0000882A

-  GL_DRAW_BUFFER6* = 0x0000882B

-  GL_DRAW_BUFFER7* = 0x0000882C

-  GL_DRAW_BUFFER8* = 0x0000882D

-  GL_DRAW_BUFFER9* = 0x0000882E

-  GL_DRAW_BUFFER10* = 0x0000882F

-  GL_DRAW_BUFFER11* = 0x00008830

-  GL_DRAW_BUFFER12* = 0x00008831

-  GL_DRAW_BUFFER13* = 0x00008832

-  GL_DRAW_BUFFER14* = 0x00008833

-  GL_DRAW_BUFFER15* = 0x00008834

-  GL_BLEND_EQUATION_ALPHA* = 0x0000883D

-  GL_MAX_VERTEX_ATTRIBS* = 0x00008869

-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED* = 0x0000886A

-  GL_MAX_TEXTURE_IMAGE_UNITS* = 0x00008872

-  GL_FRAGMENT_SHADER* = 0x00008B30

-  GL_VERTEX_SHADER* = 0x00008B31

-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008B49

-  GL_MAX_VERTEX_UNIFORM_COMPONENTS* = 0x00008B4A

-  GL_MAX_VARYING_FLOATS* = 0x00008B4B

-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS* = 0x00008B4C

-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS* = 0x00008B4D

-  GL_SHADERtyp* = 0x00008B4F

-  GL_FLOAT_VEC2* = 0x00008B50

-  GL_FLOAT_VEC3* = 0x00008B51

-  GL_FLOAT_VEC4* = 0x00008B52

-  GL_INT_VEC2* = 0x00008B53

-  GL_INT_VEC3* = 0x00008B54

-  GL_INT_VEC4* = 0x00008B55

-  GL_BOOL* = 0x00008B56

-  GL_BOOL_VEC2* = 0x00008B57

-  GL_BOOL_VEC3* = 0x00008B58

-  GL_BOOL_VEC4* = 0x00008B59

-  GL_FLOAT_MAT2* = 0x00008B5A

-  GL_FLOAT_MAT3* = 0x00008B5B

-  GL_FLOAT_MAT4* = 0x00008B5C

-  GL_SAMPLER_1D* = 0x00008B5D

-  GL_SAMPLER_2D* = 0x00008B5E

-  GL_SAMPLER_3D* = 0x00008B5F

-  GL_SAMPLER_CUBE* = 0x00008B60

-  GL_SAMPLER_1D_SHADOW* = 0x00008B61

-  GL_SAMPLER_2D_SHADOW* = 0x00008B62

-  GL_DELETE_STATUS* = 0x00008B80

-  GL_COMPILE_STATUS* = 0x00008B81

-  GL_LINK_STATUS* = 0x00008B82

-  GL_VALIDATE_STATUS* = 0x00008B83

-  GL_INFO_LOG_LENGTH* = 0x00008B84

-  GL_ATTACHED_SHADERS* = 0x00008B85

-  GL_ACTIVE_UNIFORMS* = 0x00008B86

-  GL_ACTIVE_UNIFORM_MAX_LENGTH* = 0x00008B87

-  GL_SHADER_SOURCE_LENGTH* = 0x00008B88

-  GL_ACTIVE_ATTRIBUTES* = 0x00008B89

-  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH* = 0x00008B8A

-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT* = 0x00008B8B

-  GL_SHADING_LANGUAGE_VERSION* = 0x00008B8C

-  GL_CURRENT_PROGRAM* = 0x00008B8D

-  GL_POINT_SPRITE_COORD_ORIGIN* = 0x00008CA0

-  GL_LOWER_LEFT* = 0x00008CA1

-  GL_UPPER_LEFT* = 0x00008CA2

-  GL_STENCIL_BACK_REF* = 0x00008CA3

-  GL_STENCIL_BACK_VALUE_MASK* = 0x00008CA4

-  GL_STENCIL_BACK_WRITEMASK* = 0x00008CA5

-  GL_VERTEX_PROGRAM_TWO_SIDE* = 0x00008643

-  GL_POINT_SPRITE* = 0x00008861

-  GL_COORD_REPLACE* = 0x00008862

-  GL_MAX_TEXTURE_COORDS* = 0x00008871 # GL_VERSION_2_1

-  GL_PIXEL_PACK_BUFFER* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING* = 0x000088EF

-  GL_FLOAT_MAT2x3* = 0x00008B65

-  GL_FLOAT_MAT2x4* = 0x00008B66

-  GL_FLOAT_MAT3x2* = 0x00008B67

-  GL_FLOAT_MAT3x4* = 0x00008B68

-  GL_FLOAT_MAT4x2* = 0x00008B69

-  GL_FLOAT_MAT4x3* = 0x00008B6A

-  GL_SRGB* = 0x00008C40

-  GL_SRGB8* = 0x00008C41

-  GL_SRGB_ALPHA* = 0x00008C42

-  GL_SRGB8_ALPHA8* = 0x00008C43

-  GL_COMPRESSED_SRGB* = 0x00008C48

-  GL_COMPRESSED_SRGB_ALPHA* = 0x00008C49

-  GL_CURRENT_RASTER_SECONDARY_COLOR* = 0x0000845F

-  GL_SLUMINANCE_ALPHA* = 0x00008C44

-  GL_SLUMINANCE8_ALPHA8* = 0x00008C45

-  GL_SLUMINANCE* = 0x00008C46

-  GL_SLUMINANCE8* = 0x00008C47

-  GL_COMPRESSED_SLUMINANCE* = 0x00008C4A

-  GL_COMPRESSED_SLUMINANCE_ALPHA* = 0x00008C4B # GL_VERSION_3_0

-  GL_COMPARE_REF_TO_TEXTURE* = 0x0000884E

-  GL_CLIP_DISTANCE0* = 0x00003000

-  GL_CLIP_DISTANCE1* = 0x00003001

-  GL_CLIP_DISTANCE2* = 0x00003002

-  GL_CLIP_DISTANCE3* = 0x00003003

-  GL_CLIP_DISTANCE4* = 0x00003004

-  GL_CLIP_DISTANCE5* = 0x00003005

-  GL_CLIP_DISTANCE6* = 0x00003006

-  GL_CLIP_DISTANCE7* = 0x00003007

-  GL_MAX_CLIP_DISTANCES* = 0x00000D32

-  GL_MAJOR_VERSION* = 0x0000821B

-  GL_MINOR_VERSION* = 0x0000821C

-  GL_NUM_EXTENSIONS* = 0x0000821D

-  GL_CONTEXT_FLAGS* = 0x0000821E

-  GL_DEPTH_BUFFER* = 0x00008223

-  GL_STENCIL_BUFFER* = 0x00008224

-  GL_COMPRESSED_RED* = 0x00008225

-  GL_COMPRESSED_RG* = 0x00008226

-  GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT* = 0x00000001

-  GL_RGBA32F* = 0x00008814

-  GL_RGB32F* = 0x00008815

-  GL_RGBA16F* = 0x0000881A

-  GL_RGB16F* = 0x0000881B

-  GL_VERTEX_ATTRIB_ARRAY_INTEGER* = 0x000088FD

-  GL_MAX_ARRAY_TEXTURE_LAYERS* = 0x000088FF

-  GL_MIN_PROGRAM_TEXEL_OFFSET* = 0x00008904

-  GL_MAX_PROGRAM_TEXEL_OFFSET* = 0x00008905

-  GL_CLAMP_READ_COLOR* = 0x0000891C

-  GL_FIXED_ONLY* = 0x0000891D

-  GL_MAX_VARYING_COMPONENTS* = 0x00008B4B

-  GL_TEXTURE_1D_ARRAY* = 0x00008C18

-  GL_PROXY_TEXTURE_1D_ARRAY* = 0x00008C19

-  GL_TEXTURE_2D_ARRAY* = 0x00008C1A

-  GL_PROXY_TEXTURE_2D_ARRAY* = 0x00008C1B

-  GL_TEXTURE_BINDING_1D_ARRAY* = 0x00008C1C

-  GL_TEXTURE_BINDING_2D_ARRAY* = 0x00008C1D

-  GL_R11F_G11F_B10F* = 0x00008C3A

-  GL_UNSIGNED_INT_10F_11F_11F_REV* = 0x00008C3B

-  GL_RGB9_E5* = 0x00008C3D

-  GL_UNSIGNED_INT_5_9_9_9_REV* = 0x00008C3E

-  GL_TEXTURE_SHARED_SIZE* = 0x00008C3F

-  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH* = 0x00008C76

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE* = 0x00008C7F

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_VARYINGS* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_START* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE* = 0x00008C85

-  GL_PRIMITIVES_GENERATED* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN* = 0x00008C88

-  GL_RASTERIZER_DISCARD* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS* = 0x00008C8B

-  GL_INTERLEAVED_ATTRIBS* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS* = 0x00008C8D

-  GL_TRANSFORM_FEEDBACK_BUFFER* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING* = 0x00008C8F

-  GL_RGBA32UI* = 0x00008D70

-  GL_RGB32UI* = 0x00008D71

-  GL_RGBA16UI* = 0x00008D76

-  GL_RGB16UI* = 0x00008D77

-  GL_RGBA8UI* = 0x00008D7C

-  GL_RGB8UI* = 0x00008D7D

-  GL_RGBA32I* = 0x00008D82

-  GL_RGB32I* = 0x00008D83

-  GL_RGBA16I* = 0x00008D88

-  GL_RGB16I* = 0x00008D89

-  GL_RGBA8I* = 0x00008D8E

-  GL_RGB8I* = 0x00008D8F

-  GL_RED_INTEGER* = 0x00008D94

-  GL_GREEN_INTEGER* = 0x00008D95

-  GL_BLUE_INTEGER* = 0x00008D96

-  GL_RGB_INTEGER* = 0x00008D98

-  GL_RGBA_INTEGER* = 0x00008D99

-  GL_BGR_INTEGER* = 0x00008D9A

-  GL_BGRA_INTEGER* = 0x00008D9B

-  GL_SAMPLER_1D_ARRAY* = 0x00008DC0

-  GL_SAMPLER_2D_ARRAY* = 0x00008DC1

-  GL_SAMPLER_1D_ARRAY_SHADOW* = 0x00008DC3

-  GL_SAMPLER_2D_ARRAY_SHADOW* = 0x00008DC4

-  GL_SAMPLER_CUBE_SHADOW* = 0x00008DC5

-  GL_UNSIGNED_INT_VEC2* = 0x00008DC6

-  GL_UNSIGNED_INT_VEC3* = 0x00008DC7

-  GL_UNSIGNED_INT_VEC4* = 0x00008DC8

-  GL_INT_SAMPLER_1D* = 0x00008DC9

-  GL_INT_SAMPLER_2D* = 0x00008DCA

-  GL_INT_SAMPLER_3D* = 0x00008DCB

-  GL_INT_SAMPLER_CUBE* = 0x00008DCC

-  GL_INT_SAMPLER_1D_ARRAY* = 0x00008DCE

-  GL_INT_SAMPLER_2D_ARRAY* = 0x00008DCF

-  GL_UNSIGNED_INT_SAMPLER_1D* = 0x00008DD1

-  GL_UNSIGNED_INT_SAMPLER_2D* = 0x00008DD2

-  GL_UNSIGNED_INT_SAMPLER_3D* = 0x00008DD3

-  GL_UNSIGNED_INT_SAMPLER_CUBE* = 0x00008DD4

-  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY* = 0x00008DD6

-  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY* = 0x00008DD7

-  GL_QUERY_WAIT* = 0x00008E13

-  GL_QUERY_NO_WAIT* = 0x00008E14

-  GL_QUERY_BY_REGION_WAIT* = 0x00008E15

-  GL_QUERY_BY_REGION_NO_WAIT* = 0x00008E16

-  GL_BUFFER_ACCESS_FLAGS* = 0x0000911F

-  GL_BUFFER_MAP_LENGTH* = 0x00009120

-  GL_BUFFER_MAP_OFFSET* = 0x00009121

-  GL_CLAMP_VERTEX_COLOR* = 0x0000891A

-  GL_CLAMP_FRAGMENT_COLOR* = 0x0000891B

-  GL_ALPHA_INTEGER* = 0x00008D97 # GL_VERSION_3_1

-  GL_SAMPLER_2D_RECT* = 0x00008B63

-  GL_SAMPLER_2D_RECT_SHADOW* = 0x00008B64

-  GL_SAMPLER_BUFFER* = 0x00008DC2

-  GL_INT_SAMPLER_2D_RECT* = 0x00008DCD

-  GL_INT_SAMPLER_BUFFER* = 0x00008DD0

-  GL_UNSIGNED_INT_SAMPLER_2D_RECT* = 0x00008DD5

-  GL_UNSIGNED_INT_SAMPLER_BUFFER* = 0x00008DD8

-  GL_TEXTURE_BUFFER* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT* = 0x00008C2E

-  GL_TEXTURE_RECTANGLE* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE* = 0x000084F8

-  GL_RED_SNORM* = 0x00008F90

-  GL_RG_SNORM* = 0x00008F91

-  GL_RGB_SNORM* = 0x00008F92

-  GL_RGBA_SNORM* = 0x00008F93

-  GL_R8_SNORM* = 0x00008F94

-  GL_RG8_SNORM* = 0x00008F95

-  GL_RGB8_SNORM* = 0x00008F96

-  GL_RGBA8_SNORM* = 0x00008F97

-  GL_R16_SNORM* = 0x00008F98

-  GL_RG16_SNORM* = 0x00008F99

-  GL_RGB16_SNORM* = 0x00008F9A

-  GL_RGBA16_SNORM* = 0x00008F9B

-  GL_SIGNED_NORMALIZED* = 0x00008F9C

-  GL_PRIMITIVE_RESTART* = 0x00008F9D

-  cGL_PRIMITIVE_RESTART_INDEX* = 0x00008F9E

-  GL_CONTEXT_CORE_PROFILE_BIT* = 0x00000001

-  GL_CONTEXT_COMPATIBILITY_PROFILE_BIT* = 0x00000002

-  GL_LINES_ADJACENCY* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY* = 0x0000000D

-  GL_PROGRAM_POINT_SIZE* = 0x00008642

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS* = 0x00008C29

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED* = 0x00008DA7

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS* = 0x00008DA8

-  GL_GEOMETRY_SHADER* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT* = 0x00008916

-  GL_GEOMETRY_INPUTtyp* = 0x00008917

-  GL_GEOMETRY_OUTPUTtyp* = 0x00008918

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS* = 0x00008DE1

-  GL_MAX_VERTEX_OUTPUT_COMPONENTS* = 0x00009122

-  GL_MAX_GEOMETRY_INPUT_COMPONENTS* = 0x00009123

-  GL_MAX_GEOMETRY_OUTPUT_COMPONENTS* = 0x00009124

-  GL_MAX_FRAGMENT_INPUT_COMPONENTS* = 0x00009125

-  GL_CONTEXT_PROFILE_MASK* = 0x00009126 # GL_VERSION_3_3

-  GL_VERTEX_ATTRIB_ARRAY_DIVISOR* = 0x000088FE # GL_VERSION_4_0

-  GL_SAMPLE_SHADING* = 0x00008C36

-  GL_MIN_SAMPLE_SHADING_VALUE* = 0x00008C37

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET* = 0x00008E5F

-  GL_TEXTURE_CUBE_MAP_ARRAY* = 0x00009009

-  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY* = 0x0000900A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY* = 0x0000900B

-  GL_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900C

-  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW* = 0x0000900D

-  GL_INT_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900E

-  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY* = 0x0000900F # GL_3DFX_multisample

-  GL_MULTISAMPLE_3DFX* = 0x000086B2

-  GL_SAMPLE_BUFFERS_3DFX* = 0x000086B3

-  GL_SAMPLES_3DFX* = 0x000086B4

-  GL_MULTISAMPLE_BIT_3DFX* = 0x20000000 # GL_3DFX_texture_compression_FXT1

-  GL_COMPRESSED_RGB_FXT1_3DFX* = 0x000086B0

-  GL_COMPRESSED_RGBA_FXT1_3DFX* = 0x000086B1 # GL_APPLE_client_storage

-  GL_UNPACK_CLIENT_STORAGE_APPLE* = 0x000085B2 # GL_APPLE_element_array

-  GL_ELEMENT_ARRAY_APPLE* = 0x00008A0C

-  GL_ELEMENT_ARRAYtyp_APPLE* = 0x00008A0D

-  GL_ELEMENT_ARRAY_POINTER_APPLE* = 0x00008A0E # GL_APPLE_fence

-  GL_DRAW_PIXELS_APPLE* = 0x00008A0A

-  GL_FENCE_APPLE* = 0x00008A0B # GL_APPLE_specular_vector

-  GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE* = 0x000085B0 # GL_APPLE_transform_hint

-  GL_TRANSFORM_HINT_APPLE* = 0x000085B1 # GL_APPLE_vertex_array_object

-  GL_VERTEX_ARRAY_BINDING_APPLE* = 0x000085B5 # GL_APPLE_vertex_array_range

-  cGL_VERTEX_ARRAY_RANGE_APPLE* = 0x0000851D

-  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE* = 0x0000851E

-  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE* = 0x0000851F

-  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE* = 0x00008521

-  GL_STORAGE_CLIENT_APPLE* = 0x000085B4

-  GL_STORAGE_CACHED_APPLE* = 0x000085BE

-  GL_STORAGE_SHARED_APPLE* = 0x000085BF # GL_APPLE_ycbcr_422

-  GL_YCBCR_422_APPLE* = 0x000085B9

-  GL_UNSIGNED_SHORT_8_8_APPLE* = 0x000085BA

-  GL_UNSIGNED_SHORT_8_8_REV_APPLE* = 0x000085BB # GL_APPLE_texture_range

-  GL_TEXTURE_RANGE_LENGTH_APPLE* = 0x000085B7

-  GL_TEXTURE_RANGE_POINTER_APPLE* = 0x000085B8

-  GL_TEXTURE_STORAGE_HINT_APPLE* = 0x000085BC

-  GL_STORAGE_PRIVATE_APPLE* = 0x000085BD # reuse GL_STORAGE_CACHED_APPLE 

-                                         # reuse GL_STORAGE_SHARED_APPLE 

-                                         # GL_APPLE_float_pixels

-  GL_HALF_APPLE* = 0x0000140B

-  GL_RGBA_FLOAT32_APPLE* = 0x00008814

-  GL_RGB_FLOAT32_APPLE* = 0x00008815

-  GL_ALPHA_FLOAT32_APPLE* = 0x00008816

-  GL_INTENSITY_FLOAT32_APPLE* = 0x00008817

-  GL_LUMINANCE_FLOAT32_APPLE* = 0x00008818

-  GL_LUMINANCE_ALPHA_FLOAT32_APPLE* = 0x00008819

-  GL_RGBA_FLOAT16_APPLE* = 0x0000881A

-  GL_RGB_FLOAT16_APPLE* = 0x0000881B

-  GL_ALPHA_FLOAT16_APPLE* = 0x0000881C

-  GL_INTENSITY_FLOAT16_APPLE* = 0x0000881D

-  GL_LUMINANCE_FLOAT16_APPLE* = 0x0000881E

-  GL_LUMINANCE_ALPHA_FLOAT16_APPLE* = 0x0000881F

-  GL_COLOR_FLOAT_APPLE* = 0x00008A0F # GL_APPLE_vertex_program_evaluators

-  GL_VERTEX_ATTRIB_MAP1_APPLE* = 0x00008A00

-  GL_VERTEX_ATTRIB_MAP2_APPLE* = 0x00008A01

-  GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE* = 0x00008A02

-  GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE* = 0x00008A03

-  GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE* = 0x00008A04

-  GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE* = 0x00008A05

-  GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE* = 0x00008A06

-  GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE* = 0x00008A07

-  GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE* = 0x00008A08

-  GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE* = 0x00008A09 # GL_APPLE_aux_depth_stencil

-  GL_AUX_DEPTH_STENCIL_APPLE* = 0x00008A14 # GL_APPLE_object_purgeable

-  GL_BUFFER_OBJECT_APPLE* = 0x000085B3

-  GL_RELEASED_APPLE* = 0x00008A19

-  GL_VOLATILE_APPLE* = 0x00008A1A

-  GL_RETAINED_APPLE* = 0x00008A1B

-  GL_UNDEFINED_APPLE* = 0x00008A1C

-  GL_PURGEABLE_APPLE* = 0x00008A1D # GL_APPLE_row_bytes

-  GL_PACK_ROW_BYTES_APPLE* = 0x00008A15

-  GL_UNPACK_ROW_BYTES_APPLE* = 0x00008A16 # GL_APPLE_rgb_422

-                                          # reuse GL_UNSIGNED_SHORT_8_8_APPLE 

-                                          # reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE 

-                                          # GL_ARB_depth_texture

-  GL_DEPTH_COMPONENT16_ARB* = 0x000081A5

-  GL_DEPTH_COMPONENT24_ARB* = 0x000081A6

-  GL_DEPTH_COMPONENT32_ARB* = 0x000081A7

-  GL_TEXTURE_DEPTH_SIZE_ARB* = 0x0000884A

-  GL_DEPTH_TEXTURE_MODE_ARB* = 0x0000884B # GL_ARB_fragment_program

-  GL_FRAGMENT_PROGRAM_ARB* = 0x00008804

-  GL_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x00008805

-  GL_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x00008806

-  GL_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x00008807

-  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x00008808

-  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x00008809

-  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x0000880A

-  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB* = 0x0000880B

-  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB* = 0x0000880C

-  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB* = 0x0000880D

-  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB* = 0x0000880E

-  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB* = 0x0000880F

-  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB* = 0x00008810

-  GL_MAX_TEXTURE_COORDS_ARB* = 0x00008871

-  GL_MAX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008872 # GL_ARB_imaging

-  GL_CONSTANT_COLOR_ARB* = 0x00008001

-  GL_ONE_MINUS_CONSTANT_COLOR* = 0x00008002

-  GL_CONSTANT_ALPHA* = 0x00008003

-  GL_ONE_MINUS_CONSTANT_ALPHA* = 0x00008004

-  cGL_BLEND_COLOR* = 0x00008005

-  GL_FUNC_ADD* = 0x00008006

-  GL_MIN* = 0x00008007

-  GL_MAX* = 0x00008008

-  cGL_BLEND_EQUATION* = 0x00008009

-  GL_FUNC_SUBTRACT* = 0x0000800A

-  GL_FUNC_REVERSE_SUBTRACT* = 0x0000800B

-  GL_CONVOLUTION_1D* = 0x00008010

-  GL_CONVOLUTION_2D* = 0x00008011

-  GL_SEPARABLE_2D* = 0x00008012

-  GL_CONVOLUTION_BORDER_MODE* = 0x00008013

-  GL_CONVOLUTION_FILTER_SCALE* = 0x00008014

-  GL_CONVOLUTION_FILTER_BIAS* = 0x00008015

-  GL_REDUCE* = 0x00008016

-  GL_CONVOLUTION_FORMAT* = 0x00008017

-  GL_CONVOLUTION_WIDTH* = 0x00008018

-  GL_CONVOLUTION_HEIGHT* = 0x00008019

-  GL_MAX_CONVOLUTION_WIDTH* = 0x0000801A

-  GL_MAX_CONVOLUTION_HEIGHT* = 0x0000801B

-  GL_POST_CONVOLUTION_RED_SCALE* = 0x0000801C

-  GL_POST_CONVOLUTION_GREEN_SCALE* = 0x0000801D

-  GL_POST_CONVOLUTION_BLUE_SCALE* = 0x0000801E

-  GL_POST_CONVOLUTION_ALPHA_SCALE* = 0x0000801F

-  GL_POST_CONVOLUTION_RED_BIAS* = 0x00008020

-  GL_POST_CONVOLUTION_GREEN_BIAS* = 0x00008021

-  GL_POST_CONVOLUTION_BLUE_BIAS* = 0x00008022

-  GL_POST_CONVOLUTION_ALPHA_BIAS* = 0x00008023

-  cGL_HISTOGRAM* = 0x00008024

-  GL_PROXY_HISTOGRAM* = 0x00008025

-  GL_HISTOGRAM_WIDTH* = 0x00008026

-  GL_HISTOGRAM_FORMAT* = 0x00008027

-  GL_HISTOGRAM_RED_SIZE* = 0x00008028

-  GL_HISTOGRAM_GREEN_SIZE* = 0x00008029

-  GL_HISTOGRAM_BLUE_SIZE* = 0x0000802A

-  GL_HISTOGRAM_ALPHA_SIZE* = 0x0000802B

-  GL_HISTOGRAM_LUMINANCE_SIZE* = 0x0000802C

-  GL_HISTOGRAM_SINK* = 0x0000802D

-  cGL_MINMAX* = 0x0000802E

-  GL_MINMAX_FORMAT* = 0x0000802F

-  GL_MINMAX_SINK* = 0x00008030

-  GL_TABLE_TOO_LARGE* = 0x00008031

-  GL_COLOR_MATRIX* = 0x000080B1

-  GL_COLOR_MATRIX_STACK_DEPTH* = 0x000080B2

-  GL_MAX_COLOR_MATRIX_STACK_DEPTH* = 0x000080B3

-  GL_POST_COLOR_MATRIX_RED_SCALE* = 0x000080B4

-  GL_POST_COLOR_MATRIX_GREEN_SCALE* = 0x000080B5

-  GL_POST_COLOR_MATRIX_BLUE_SCALE* = 0x000080B6

-  GL_POST_COLOR_MATRIX_ALPHA_SCALE* = 0x000080B7

-  GL_POST_COLOR_MATRIX_RED_BIAS* = 0x000080B8

-  GL_POST_COLOR_MATRIX_GREEN_BIAS* = 0x000080B9

-  GL_POST_COLOR_MATRIX_BLUE_BIAS* = 0x000080BA

-  GL_POST_COLOR_MATRIX_ALPHA_BIAS* = 0x000080BB

-  cGL_COLOR_TABLE* = 0x000080D0

-  GL_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D1

-  GL_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D2

-  GL_PROXY_COLOR_TABLE* = 0x000080D3

-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE* = 0x000080D4

-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE* = 0x000080D5

-  GL_COLOR_TABLE_SCALE* = 0x000080D6

-  GL_COLOR_TABLE_BIAS* = 0x000080D7

-  GL_COLOR_TABLE_FORMAT* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE* = 0x000080DF

-  GL_CONSTANT_BORDER* = 0x00008151

-  GL_REPLICATE_BORDER* = 0x00008153

-  GL_CONVOLUTION_BORDER_COLOR* = 0x00008154 # GL_ARB_matrix_palette

-  GL_MATRIX_PALETTE_ARB* = 0x00008840

-  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB* = 0x00008841

-  GL_MAX_PALETTE_MATRICES_ARB* = 0x00008842

-  cGL_CURRENT_PALETTE_MATRIX_ARB* = 0x00008843

-  GL_MATRIX_INDEX_ARRAY_ARB* = 0x00008844

-  GL_CURRENT_MATRIX_INDEX_ARB* = 0x00008845

-  GL_MATRIX_INDEX_ARRAY_SIZE_ARB* = 0x00008846

-  GL_MATRIX_INDEX_ARRAYtyp_ARB* = 0x00008847

-  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB* = 0x00008848

-  GL_MATRIX_INDEX_ARRAY_POINTER_ARB* = 0x00008849 # GL_ARB_multisample

-  GL_MULTISAMPLE_ARB* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_ARB* = 0x0000809F

-  cGL_SAMPLE_COVERAGE_ARB* = 0x000080A0

-  GL_SAMPLE_BUFFERS_ARB* = 0x000080A8

-  GL_SAMPLES_ARB* = 0x000080A9

-  GL_SAMPLE_COVERAGE_VALUE_ARB* = 0x000080AA

-  GL_SAMPLE_COVERAGE_INVERT_ARB* = 0x000080AB

-  GL_MULTISAMPLE_BIT_ARB* = 0x20000000 # GL_ARB_multitexture

-  GL_TEXTURE0_ARB* = 0x000084C0

-  GL_TEXTURE1_ARB* = 0x000084C1

-  GL_TEXTURE2_ARB* = 0x000084C2

-  GL_TEXTURE3_ARB* = 0x000084C3

-  GL_TEXTURE4_ARB* = 0x000084C4

-  GL_TEXTURE5_ARB* = 0x000084C5

-  GL_TEXTURE6_ARB* = 0x000084C6

-  GL_TEXTURE7_ARB* = 0x000084C7

-  GL_TEXTURE8_ARB* = 0x000084C8

-  GL_TEXTURE9_ARB* = 0x000084C9

-  GL_TEXTURE10_ARB* = 0x000084CA

-  GL_TEXTURE11_ARB* = 0x000084CB

-  GL_TEXTURE12_ARB* = 0x000084CC

-  GL_TEXTURE13_ARB* = 0x000084CD

-  GL_TEXTURE14_ARB* = 0x000084CE

-  GL_TEXTURE15_ARB* = 0x000084CF

-  GL_TEXTURE16_ARB* = 0x000084D0

-  GL_TEXTURE17_ARB* = 0x000084D1

-  GL_TEXTURE18_ARB* = 0x000084D2

-  GL_TEXTURE19_ARB* = 0x000084D3

-  GL_TEXTURE20_ARB* = 0x000084D4

-  GL_TEXTURE21_ARB* = 0x000084D5

-  GL_TEXTURE22_ARB* = 0x000084D6

-  GL_TEXTURE23_ARB* = 0x000084D7

-  GL_TEXTURE24_ARB* = 0x000084D8

-  GL_TEXTURE25_ARB* = 0x000084D9

-  GL_TEXTURE26_ARB* = 0x000084DA

-  GL_TEXTURE27_ARB* = 0x000084DB

-  GL_TEXTURE28_ARB* = 0x000084DC

-  GL_TEXTURE29_ARB* = 0x000084DD

-  GL_TEXTURE30_ARB* = 0x000084DE

-  GL_TEXTURE31_ARB* = 0x000084DF

-  cGL_ACTIVE_TEXTURE_ARB* = 0x000084E0

-  cGL_CLIENT_ACTIVE_TEXTURE_ARB* = 0x000084E1

-  GL_MAX_TEXTURE_UNITS_ARB* = 0x000084E2 # GL_ARB_point_parameters

-  GL_POINT_SIZE_MIN_ARB* = 0x00008126

-  GL_POINT_SIZE_MAX_ARB* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_ARB* = 0x00008128

-  GL_POINT_DISTANCE_ATTENUATION_ARB* = 0x00008129 # GL_ARB_shadow

-  GL_TEXTURE_COMPARE_MODE_ARB* = 0x0000884C

-  GL_TEXTURE_COMPARE_FUNC_ARB* = 0x0000884D

-  GL_COMPARE_R_TO_TEXTURE_ARB* = 0x0000884E # GL_ARB_shadow_ambient

-  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB* = 0x000080BF # GL_ARB_texture_border_clamp

-  GL_CLAMP_TO_BORDER_ARB* = 0x0000812D # GL_ARB_texture_compression

-  GL_COMPRESSED_ALPHA_ARB* = 0x000084E9

-  GL_COMPRESSED_LUMINANCE_ARB* = 0x000084EA

-  GL_COMPRESSED_LUMINANCE_ALPHA_ARB* = 0x000084EB

-  GL_COMPRESSED_INTENSITY_ARB* = 0x000084EC

-  GL_COMPRESSED_RGB_ARB* = 0x000084ED

-  GL_COMPRESSED_RGBA_ARB* = 0x000084EE

-  GL_TEXTURE_COMPRESSION_HINT_ARB* = 0x000084EF

-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB* = 0x000086A0

-  GL_TEXTURE_COMPRESSED_ARB* = 0x000086A1

-  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A2

-  GL_COMPRESSED_TEXTURE_FORMATS_ARB* = 0x000086A3 # GL_ARB_texture_cube_map

-  GL_NORMAL_MAP_ARB* = 0x00008511

-  GL_REFLECTION_MAP_ARB* = 0x00008512

-  GL_TEXTURE_CUBE_MAP_ARB* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP_ARB* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARB* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB* = 0x0000851C # GL_ARB_texture_env_combine

-  GL_COMBINE_ARB* = 0x00008570

-  GL_COMBINE_RGB_ARB* = 0x00008571

-  GL_COMBINE_ALPHA_ARB* = 0x00008572

-  GL_SOURCE0_RGB_ARB* = 0x00008580

-  GL_SOURCE1_RGB_ARB* = 0x00008581

-  GL_SOURCE2_RGB_ARB* = 0x00008582

-  GL_SOURCE0_ALPHA_ARB* = 0x00008588

-  GL_SOURCE1_ALPHA_ARB* = 0x00008589

-  GL_SOURCE2_ALPHA_ARB* = 0x0000858A

-  GL_OPERAND0_RGB_ARB* = 0x00008590

-  GL_OPERAND1_RGB_ARB* = 0x00008591

-  GL_OPERAND2_RGB_ARB* = 0x00008592

-  GL_OPERAND0_ALPHA_ARB* = 0x00008598

-  GL_OPERAND1_ALPHA_ARB* = 0x00008599

-  GL_OPERAND2_ALPHA_ARB* = 0x0000859A

-  GL_RGB_SCALE_ARB* = 0x00008573

-  GL_ADD_SIGNED_ARB* = 0x00008574

-  GL_INTERPOLATE_ARB* = 0x00008575

-  GL_SUBTRACT_ARB* = 0x000084E7

-  GL_CONSTANT_ARB* = 0x00008576

-  GL_PRIMARY_COLOR_ARB* = 0x00008577

-  GL_PREVIOUS_ARB* = 0x00008578 # GL_ARB_texture_env_dot3

-  GL_DOT3_RGB_ARB* = 0x000086AE

-  GL_DOT3_RGBA_ARB* = 0x000086AF # GL_ARB_texture_mirrored_repeat

-  GL_MIRRORED_REPEAT_ARB* = 0x00008370 # GL_ARB_transpose_matrix

-  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB* = 0x000084E3

-  GL_TRANSPOSE_PROJECTION_MATRIX_ARB* = 0x000084E4

-  GL_TRANSPOSE_TEXTURE_MATRIX_ARB* = 0x000084E5

-  GL_TRANSPOSE_COLOR_MATRIX_ARB* = 0x000084E6 # GL_ARB_vertex_blend

-  GL_MAX_VERTEX_UNITS_ARB* = 0x000086A4

-  GL_ACTIVE_VERTEX_UNITS_ARB* = 0x000086A5

-  GL_WEIGHT_SUM_UNITY_ARB* = 0x000086A6

-  cGL_VERTEX_BLEND_ARB* = 0x000086A7

-  GL_CURRENT_WEIGHT_ARB* = 0x000086A8

-  GL_WEIGHT_ARRAYtyp_ARB* = 0x000086A9

-  GL_WEIGHT_ARRAY_STRIDE_ARB* = 0x000086AA

-  GL_WEIGHT_ARRAY_SIZE_ARB* = 0x000086AB

-  GL_WEIGHT_ARRAY_POINTER_ARB* = 0x000086AC

-  GL_WEIGHT_ARRAY_ARB* = 0x000086AD

-  GL_MODELVIEW0_ARB* = 0x00001700

-  GL_MODELVIEW1_ARB* = 0x0000850A

-  GL_MODELVIEW2_ARB* = 0x00008722

-  GL_MODELVIEW3_ARB* = 0x00008723

-  GL_MODELVIEW4_ARB* = 0x00008724

-  GL_MODELVIEW5_ARB* = 0x00008725

-  GL_MODELVIEW6_ARB* = 0x00008726

-  GL_MODELVIEW7_ARB* = 0x00008727

-  GL_MODELVIEW8_ARB* = 0x00008728

-  GL_MODELVIEW9_ARB* = 0x00008729

-  GL_MODELVIEW10_ARB* = 0x0000872A

-  GL_MODELVIEW11_ARB* = 0x0000872B

-  GL_MODELVIEW12_ARB* = 0x0000872C

-  GL_MODELVIEW13_ARB* = 0x0000872D

-  GL_MODELVIEW14_ARB* = 0x0000872E

-  GL_MODELVIEW15_ARB* = 0x0000872F

-  GL_MODELVIEW16_ARB* = 0x00008730

-  GL_MODELVIEW17_ARB* = 0x00008731

-  GL_MODELVIEW18_ARB* = 0x00008732

-  GL_MODELVIEW19_ARB* = 0x00008733

-  GL_MODELVIEW20_ARB* = 0x00008734

-  GL_MODELVIEW21_ARB* = 0x00008735

-  GL_MODELVIEW22_ARB* = 0x00008736

-  GL_MODELVIEW23_ARB* = 0x00008737

-  GL_MODELVIEW24_ARB* = 0x00008738

-  GL_MODELVIEW25_ARB* = 0x00008739

-  GL_MODELVIEW26_ARB* = 0x0000873A

-  GL_MODELVIEW27_ARB* = 0x0000873B

-  GL_MODELVIEW28_ARB* = 0x0000873C

-  GL_MODELVIEW29_ARB* = 0x0000873D

-  GL_MODELVIEW30_ARB* = 0x0000873E

-  GL_MODELVIEW31_ARB* = 0x0000873F # GL_ARB_vertex_buffer_object

-  GL_BUFFER_SIZE_ARB* = 0x00008764

-  GL_BUFFER_USAGE_ARB* = 0x00008765

-  GL_ARRAY_BUFFER_ARB* = 0x00008892

-  GL_ELEMENT_ARRAY_BUFFER_ARB* = 0x00008893

-  GL_ARRAY_BUFFER_BINDING_ARB* = 0x00008894

-  GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB* = 0x00008895

-  GL_VERTEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008896

-  GL_NORMAL_ARRAY_BUFFER_BINDING_ARB* = 0x00008897

-  GL_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x00008898

-  GL_INDEX_ARRAY_BUFFER_BINDING_ARB* = 0x00008899

-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB* = 0x0000889A

-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB* = 0x0000889B

-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB* = 0x0000889C

-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB* = 0x0000889D

-  GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB* = 0x0000889E

-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB* = 0x0000889F

-  GL_READ_ONLY_ARB* = 0x000088B8

-  GL_WRITE_ONLY_ARB* = 0x000088B9

-  GL_READ_WRITE_ARB* = 0x000088BA

-  GL_BUFFER_ACCESS_ARB* = 0x000088BB

-  GL_BUFFER_MAPPED_ARB* = 0x000088BC

-  GL_BUFFER_MAP_POINTER_ARB* = 0x000088BD

-  GL_STREAM_DRAW_ARB* = 0x000088E0

-  GL_STREAM_READ_ARB* = 0x000088E1

-  GL_STREAM_COPY_ARB* = 0x000088E2

-  GL_STATIC_DRAW_ARB* = 0x000088E4

-  GL_STATIC_READ_ARB* = 0x000088E5

-  GL_STATIC_COPY_ARB* = 0x000088E6

-  GL_DYNAMIC_DRAW_ARB* = 0x000088E8

-  GL_DYNAMIC_READ_ARB* = 0x000088E9

-  GL_DYNAMIC_COPY_ARB* = 0x000088EA # GL_ARB_vertex_program

-  GL_COLOR_SUM_ARB* = 0x00008458

-  GL_VERTEX_PROGRAM_ARB* = 0x00008620

-  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB* = 0x00008622

-  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB* = 0x00008623

-  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB* = 0x00008624

-  GL_VERTEX_ATTRIB_ARRAYtyp_ARB* = 0x00008625

-  GL_CURRENT_VERTEX_ATTRIB_ARB* = 0x00008626

-  GL_PROGRAM_LENGTH_ARB* = 0x00008627

-  cGL_PROGRAM_STRING_ARB* = 0x00008628

-  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB* = 0x0000862E

-  GL_MAX_PROGRAM_MATRICES_ARB* = 0x0000862F

-  GL_CURRENT_MATRIX_STACK_DEPTH_ARB* = 0x00008640

-  GL_CURRENT_MATRIX_ARB* = 0x00008641

-  GL_VERTEX_PROGRAM_POINT_SIZE_ARB* = 0x00008642

-  GL_VERTEX_PROGRAM_TWO_SIDE_ARB* = 0x00008643

-  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB* = 0x00008645

-  GL_PROGRAM_ERROR_POSITION_ARB* = 0x0000864B

-  GL_PROGRAM_BINDING_ARB* = 0x00008677

-  GL_MAX_VERTEX_ATTRIBS_ARB* = 0x00008869

-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB* = 0x0000886A

-  GL_PROGRAM_ERROR_STRING_ARB* = 0x00008874

-  GL_PROGRAM_FORMAT_ASCII_ARB* = 0x00008875

-  GL_PROGRAM_FORMAT_ARB* = 0x00008876

-  GL_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A0

-  GL_MAX_PROGRAM_INSTRUCTIONS_ARB* = 0x000088A1

-  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A2

-  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB* = 0x000088A3

-  GL_PROGRAM_TEMPORARIES_ARB* = 0x000088A4

-  GL_MAX_PROGRAM_TEMPORARIES_ARB* = 0x000088A5

-  GL_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A6

-  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB* = 0x000088A7

-  GL_PROGRAM_PARAMETERS_ARB* = 0x000088A8

-  GL_MAX_PROGRAM_PARAMETERS_ARB* = 0x000088A9

-  GL_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AA

-  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB* = 0x000088AB

-  GL_PROGRAM_ATTRIBS_ARB* = 0x000088AC

-  GL_MAX_PROGRAM_ATTRIBS_ARB* = 0x000088AD

-  GL_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AE

-  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB* = 0x000088AF

-  GL_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B0

-  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB* = 0x000088B1

-  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B2

-  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB* = 0x000088B3

-  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB* = 0x000088B4

-  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB* = 0x000088B5

-  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB* = 0x000088B6

-  GL_TRANSPOSE_CURRENT_MATRIX_ARB* = 0x000088B7

-  GL_MATRIX0_ARB* = 0x000088C0

-  GL_MATRIX1_ARB* = 0x000088C1

-  GL_MATRIX2_ARB* = 0x000088C2

-  GL_MATRIX3_ARB* = 0x000088C3

-  GL_MATRIX4_ARB* = 0x000088C4

-  GL_MATRIX5_ARB* = 0x000088C5

-  GL_MATRIX6_ARB* = 0x000088C6

-  GL_MATRIX7_ARB* = 0x000088C7

-  GL_MATRIX8_ARB* = 0x000088C8

-  GL_MATRIX9_ARB* = 0x000088C9

-  GL_MATRIX10_ARB* = 0x000088CA

-  GL_MATRIX11_ARB* = 0x000088CB

-  GL_MATRIX12_ARB* = 0x000088CC

-  GL_MATRIX13_ARB* = 0x000088CD

-  GL_MATRIX14_ARB* = 0x000088CE

-  GL_MATRIX15_ARB* = 0x000088CF

-  GL_MATRIX16_ARB* = 0x000088D0

-  GL_MATRIX17_ARB* = 0x000088D1

-  GL_MATRIX18_ARB* = 0x000088D2

-  GL_MATRIX19_ARB* = 0x000088D3

-  GL_MATRIX20_ARB* = 0x000088D4

-  GL_MATRIX21_ARB* = 0x000088D5

-  GL_MATRIX22_ARB* = 0x000088D6

-  GL_MATRIX23_ARB* = 0x000088D7

-  GL_MATRIX24_ARB* = 0x000088D8

-  GL_MATRIX25_ARB* = 0x000088D9

-  GL_MATRIX26_ARB* = 0x000088DA

-  GL_MATRIX27_ARB* = 0x000088DB

-  GL_MATRIX28_ARB* = 0x000088DC

-  GL_MATRIX29_ARB* = 0x000088DD

-  GL_MATRIX30_ARB* = 0x000088DE

-  GL_MATRIX31_ARB* = 0x000088DF # GL_ARB_draw_buffers

-  GL_MAX_DRAW_BUFFERS_ARB* = 0x00008824

-  GL_DRAW_BUFFER0_ARB* = 0x00008825

-  GL_DRAW_BUFFER1_ARB* = 0x00008826

-  GL_DRAW_BUFFER2_ARB* = 0x00008827

-  GL_DRAW_BUFFER3_ARB* = 0x00008828

-  GL_DRAW_BUFFER4_ARB* = 0x00008829

-  GL_DRAW_BUFFER5_ARB* = 0x0000882A

-  GL_DRAW_BUFFER6_ARB* = 0x0000882B

-  GL_DRAW_BUFFER7_ARB* = 0x0000882C

-  GL_DRAW_BUFFER8_ARB* = 0x0000882D

-  GL_DRAW_BUFFER9_ARB* = 0x0000882E

-  GL_DRAW_BUFFER10_ARB* = 0x0000882F

-  GL_DRAW_BUFFER11_ARB* = 0x00008830

-  GL_DRAW_BUFFER12_ARB* = 0x00008831

-  GL_DRAW_BUFFER13_ARB* = 0x00008832

-  GL_DRAW_BUFFER14_ARB* = 0x00008833

-  GL_DRAW_BUFFER15_ARB* = 0x00008834 # GL_ARB_texture_rectangle

-  GL_TEXTURE_RECTANGLE_ARB* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_ARB* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_ARB* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB* = 0x000084F8 # GL_ARB_color_buffer_float

-  GL_RGBA_FLOAT_MODE_ARB* = 0x00008820

-  GL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A

-  GL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B

-  GL_CLAMP_READ_COLOR_ARB* = 0x0000891C

-  GL_FIXED_ONLY_ARB* = 0x0000891D

-  WGLtyp_RGBA_FLOAT_ARB* = 0x000021A0

-  GLX_RGBA_FLOATtyp* = 0x000020B9

-  GLX_RGBA_FLOAT_BIT* = 0x00000004 # GL_ARB_half_float_pixel

-  GL_HALF_FLOAT_ARB* = 0x0000140B # GL_ARB_texture_float

-  GL_TEXTURE_REDtyp_ARB* = 0x00008C10

-  GL_TEXTURE_GREENtyp_ARB* = 0x00008C11

-  GL_TEXTURE_BLUEtyp_ARB* = 0x00008C12

-  GL_TEXTURE_ALPHAtyp_ARB* = 0x00008C13

-  GL_TEXTURE_LUMINANCEtyp_ARB* = 0x00008C14

-  GL_TEXTURE_INTENSITYtyp_ARB* = 0x00008C15

-  GL_TEXTURE_DEPTHtyp_ARB* = 0x00008C16

-  GL_UNSIGNED_NORMALIZED_ARB* = 0x00008C17

-  GL_RGBA32F_ARB* = 0x00008814

-  GL_RGB32F_ARB* = 0x00008815

-  GL_ALPHA32F_ARB* = 0x00008816

-  GL_INTENSITY32F_ARB* = 0x00008817

-  GL_LUMINANCE32F_ARB* = 0x00008818

-  GL_LUMINANCE_ALPHA32F_ARB* = 0x00008819

-  GL_RGBA16F_ARB* = 0x0000881A

-  GL_RGB16F_ARB* = 0x0000881B

-  GL_ALPHA16F_ARB* = 0x0000881C

-  GL_INTENSITY16F_ARB* = 0x0000881D

-  GL_LUMINANCE16F_ARB* = 0x0000881E

-  GL_LUMINANCE_ALPHA16F_ARB* = 0x0000881F # GL_ARB_pixel_buffer_object

-  GL_PIXEL_PACK_BUFFER_ARB* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER_ARB* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING_ARB* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB* = 0x000088EF # GL_ARB_depth_buffer_float

-  GL_DEPTH_COMPONENT32F* = 0x00008CAC

-  GL_DEPTH32F_STENCIL8* = 0x00008CAD

-  GL_FLOAT_32_UNSIGNED_INT_24_8_REV* = 0x00008DAD # GL_ARB_framebuffer_object

-  GL_INVALID_FRAMEBUFFER_OPERATION* = 0x00000506

-  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING* = 0x00008210

-  GL_FRAMEBUFFER_ATTACHMENT_COMPONENTtyp* = 0x00008211

-  GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE* = 0x00008212

-  GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE* = 0x00008213

-  GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE* = 0x00008214

-  GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE* = 0x00008215

-  GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE* = 0x00008216

-  GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE* = 0x00008217

-  GL_FRAMEBUFFER_DEFAULT* = 0x00008218

-  GL_FRAMEBUFFER_UNDEFINED* = 0x00008219

-  GL_DEPTH_STENCIL_ATTACHMENT* = 0x0000821A

-  GL_MAX_RENDERBUFFER_SIZE* = 0x000084E8

-  GL_DEPTH_STENCIL* = 0x000084F9

-  GL_UNSIGNED_INT_24_8* = 0x000084FA

-  GL_DEPTH24_STENCIL8* = 0x000088F0

-  GL_TEXTURE_STENCIL_SIZE* = 0x000088F1

-  GL_TEXTURE_REDtyp* = 0x00008C10

-  GL_TEXTURE_GREENtyp* = 0x00008C11

-  GL_TEXTURE_BLUEtyp* = 0x00008C12

-  GL_TEXTURE_ALPHAtyp* = 0x00008C13

-  GL_TEXTURE_DEPTHtyp* = 0x00008C16

-  GL_UNSIGNED_NORMALIZED* = 0x00008C17

-  GL_FRAMEBUFFER_BINDING* = 0x00008CA6

-  GL_DRAW_FRAMEBUFFER_BINDING* = GL_FRAMEBUFFER_BINDING

-  GL_RENDERBUFFER_BINDING* = 0x00008CA7

-  GL_READ_FRAMEBUFFER* = 0x00008CA8

-  GL_DRAW_FRAMEBUFFER* = 0x00008CA9

-  GL_READ_FRAMEBUFFER_BINDING* = 0x00008CAA

-  GL_RENDERBUFFER_SAMPLES* = 0x00008CAB

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECTtyp* = 0x00008CD0

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME* = 0x00008CD1

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL* = 0x00008CD2

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE* = 0x00008CD3

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER* = 0x00008CD4

-  GL_FRAMEBUFFER_COMPLETE* = 0x00008CD5

-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT* = 0x00008CD6

-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT* = 0x00008CD7

-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER* = 0x00008CDB

-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER* = 0x00008CDC

-  GL_FRAMEBUFFER_UNSUPPORTED* = 0x00008CDD

-  GL_MAX_COLOR_ATTACHMENTS* = 0x00008CDF

-  GL_COLOR_ATTACHMENT0* = 0x00008CE0

-  GL_COLOR_ATTACHMENT1* = 0x00008CE1

-  GL_COLOR_ATTACHMENT2* = 0x00008CE2

-  GL_COLOR_ATTACHMENT3* = 0x00008CE3

-  GL_COLOR_ATTACHMENT4* = 0x00008CE4

-  GL_COLOR_ATTACHMENT5* = 0x00008CE5

-  GL_COLOR_ATTACHMENT6* = 0x00008CE6

-  GL_COLOR_ATTACHMENT7* = 0x00008CE7

-  GL_COLOR_ATTACHMENT8* = 0x00008CE8

-  GL_COLOR_ATTACHMENT9* = 0x00008CE9

-  GL_COLOR_ATTACHMENT10* = 0x00008CEA

-  GL_COLOR_ATTACHMENT11* = 0x00008CEB

-  GL_COLOR_ATTACHMENT12* = 0x00008CEC

-  GL_COLOR_ATTACHMENT13* = 0x00008CED

-  GL_COLOR_ATTACHMENT14* = 0x00008CEE

-  GL_COLOR_ATTACHMENT15* = 0x00008CEF

-  GL_DEPTH_ATTACHMENT* = 0x00008D00

-  GL_STENCIL_ATTACHMENT* = 0x00008D20

-  GL_FRAMEBUFFER* = 0x00008D40

-  GL_RENDERBUFFER* = 0x00008D41

-  GL_RENDERBUFFER_WIDTH* = 0x00008D42

-  GL_RENDERBUFFER_HEIGHT* = 0x00008D43

-  GL_RENDERBUFFER_INTERNAL_FORMAT* = 0x00008D44

-  GL_STENCIL_INDEX1* = 0x00008D46

-  GL_STENCIL_INDEX4* = 0x00008D47

-  GL_STENCIL_INDEX8* = 0x00008D48

-  GL_STENCIL_INDEX16* = 0x00008D49

-  GL_RENDERBUFFER_RED_SIZE* = 0x00008D50

-  GL_RENDERBUFFER_GREEN_SIZE* = 0x00008D51

-  GL_RENDERBUFFER_BLUE_SIZE* = 0x00008D52

-  GL_RENDERBUFFER_ALPHA_SIZE* = 0x00008D53

-  GL_RENDERBUFFER_DEPTH_SIZE* = 0x00008D54

-  GL_RENDERBUFFER_STENCIL_SIZE* = 0x00008D55

-  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE* = 0x00008D56

-  GL_MAX_SAMPLES* = 0x00008D57

-  GL_INDEX* = 0x00008222

-  GL_TEXTURE_LUMINANCEtyp* = 0x00008C14

-  GL_TEXTURE_INTENSITYtyp* = 0x00008C15 # GL_ARB_framebuffer_sRGB

-  GL_FRAMEBUFFER_SRGB* = 0x00008DB9 # GL_ARB_geometry_shader4

-  GL_LINES_ADJACENCY_ARB* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY_ARB* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY_ARB* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY_ARB* = 0x0000000D

-  GL_PROGRAM_POINT_SIZE_ARB* = 0x00008642

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB* = 0x00008C29

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB* = 0x00008DA7

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB* = 0x00008DA8

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB* = 0x00008DA9

-  GL_GEOMETRY_SHADER_ARB* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT_ARB* = 0x00008DDA

-  GL_GEOMETRY_INPUTtyp_ARB* = 0x00008DDB

-  GL_GEOMETRY_OUTPUTtyp_ARB* = 0x00008DDC

-  GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB* = 0x00008DDD

-  GL_MAX_VERTEX_VARYING_COMPONENTS_ARB* = 0x00008DDE

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB* = 0x00008DE1 # reuse 

-                                                            # GL_MAX_VARYING_COMPONENTS 

-                                                            # reuse 

-                                                            # GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 

-                                                            # 

-                                                            # GL_ARB_half_float_vertex

-  GL_HALF_FLOAT* = 0x0000140B # GL_ARB_instanced_arrays

-  GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB* = 0x000088FE # GL_ARB_map_buffer_range

-  GL_MAP_READ_BIT* = 0x00000001

-  GL_MAP_WRITE_BIT* = 0x00000002

-  GL_MAP_INVALIDATE_RANGE_BIT* = 0x00000004

-  GL_MAP_INVALIDATE_BUFFER_BIT* = 0x00000008

-  GL_MAP_FLUSH_EXPLICIT_BIT* = 0x00000010

-  GL_MAP_UNSYNCHRONIZED_BIT* = 0x00000020 # GL_ARB_texture_buffer_object

-  GL_TEXTURE_BUFFER_ARB* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE_ARB* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER_ARB* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT_ARB* = 0x00008C2E # GL_ARB_texture_compression_rgtc

-  GL_COMPRESSED_RED_RGTC1* = 0x00008DBB

-  GL_COMPRESSED_SIGNED_RED_RGTC1* = 0x00008DBC

-  GL_COMPRESSED_RG_RGTC2* = 0x00008DBD

-  GL_COMPRESSED_SIGNED_RG_RGTC2* = 0x00008DBE # GL_ARB_texture_rg

-  GL_RG* = 0x00008227

-  GL_RG_INTEGER* = 0x00008228

-  GL_R8* = 0x00008229

-  GL_R16* = 0x0000822A

-  GL_RG8* = 0x0000822B

-  GL_RG16* = 0x0000822C

-  GL_R16F* = 0x0000822D

-  GL_R32F* = 0x0000822E

-  GL_RG16F* = 0x0000822F

-  GL_RG32F* = 0x00008230

-  GL_R8I* = 0x00008231

-  GL_R8UI* = 0x00008232

-  GL_R16I* = 0x00008233

-  GL_R16UI* = 0x00008234

-  GL_R32I* = 0x00008235

-  GL_R32UI* = 0x00008236

-  GL_RG8I* = 0x00008237

-  GL_RG8UI* = 0x00008238

-  GL_RG16I* = 0x00008239

-  GL_RG16UI* = 0x0000823A

-  GL_RG32I* = 0x0000823B

-  GL_RG32UI* = 0x0000823C     # GL_ARB_vertex_array_object

-  GL_VERTEX_ARRAY_BINDING* = 0x000085B5 # GL_ARB_uniform_buffer_object

-  GL_UNIFORM_BUFFER* = 0x00008A11

-  GL_UNIFORM_BUFFER_BINDING* = 0x00008A28

-  GL_UNIFORM_BUFFER_START* = 0x00008A29

-  GL_UNIFORM_BUFFER_SIZE* = 0x00008A2A

-  GL_MAX_VERTEX_UNIFORM_BLOCKS* = 0x00008A2B

-  GL_MAX_GEOMETRY_UNIFORM_BLOCKS* = 0x00008A2C

-  GL_MAX_FRAGMENT_UNIFORM_BLOCKS* = 0x00008A2D

-  GL_MAX_COMBINED_UNIFORM_BLOCKS* = 0x00008A2E

-  GL_MAX_UNIFORM_BUFFER_BINDINGS* = 0x00008A2F

-  GL_MAX_UNIFORM_BLOCK_SIZE* = 0x00008A30

-  GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS* = 0x00008A31

-  GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS* = 0x00008A32

-  GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS* = 0x00008A33

-  GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT* = 0x00008A34

-  GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH* = 0x00008A35

-  GL_ACTIVE_UNIFORM_BLOCKS* = 0x00008A36

-  GL_UNIFORMtyp* = 0x00008A37

-  GL_UNIFORM_SIZE* = 0x00008A38

-  GL_UNIFORM_NAME_LENGTH* = 0x00008A39

-  GL_UNIFORM_BLOCK_INDEX* = 0x00008A3A

-  GL_UNIFORM_OFFSET* = 0x00008A3B

-  GL_UNIFORM_ARRAY_STRIDE* = 0x00008A3C

-  GL_UNIFORM_MATRIX_STRIDE* = 0x00008A3D

-  GL_UNIFORM_IS_ROW_MAJOR* = 0x00008A3E

-  cGL_UNIFORM_BLOCK_BINDING* = 0x00008A3F

-  GL_UNIFORM_BLOCK_DATA_SIZE* = 0x00008A40

-  GL_UNIFORM_BLOCK_NAME_LENGTH* = 0x00008A41

-  GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS* = 0x00008A42

-  GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES* = 0x00008A43

-  GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER* = 0x00008A44

-  GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER* = 0x00008A45

-  GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER* = 0x00008A46

-  GL_INVALID_INDEX* = 0xFFFFFFFF # GL_ARB_compatibility

-                                 # ARB_compatibility just defines tokens from core 3.0 

-                                 # GL_ARB_copy_buffer

-  GL_COPY_READ_BUFFER* = 0x00008F36

-  GL_COPY_WRITE_BUFFER* = 0x00008F37 # GL_ARB_depth_clamp

-  GL_DEPTH_CLAMP* = 0x0000864F # GL_ARB_provoking_vertex

-  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION* = 0x00008E4C

-  GL_FIRST_VERTEX_CONVENTION* = 0x00008E4D

-  GL_LAST_VERTEX_CONVENTION* = 0x00008E4E

-  cGL_PROVOKING_VERTEX* = 0x00008E4F # GL_ARB_seamless_cube_map

-  GL_TEXTURE_CUBE_MAP_SEAMLESS* = 0x0000884F # GL_ARB_sync

-  GL_MAX_SERVER_WAIT_TIMEOUT* = 0x00009111

-  GL_OBJECTtyp* = 0x00009112

-  GL_SYNC_CONDITION* = 0x00009113

-  GL_SYNC_STATUS* = 0x00009114

-  GL_SYNC_FLAGS* = 0x00009115

-  GL_SYNC_FENCE* = 0x00009116

-  GL_SYNC_GPU_COMMANDS_COMPLETE* = 0x00009117

-  GL_UNSIGNALED* = 0x00009118

-  GL_SIGNALED* = 0x00009119

-  GL_ALREADY_SIGNALED* = 0x0000911A

-  GL_TIMEOUT_EXPIRED* = 0x0000911B

-  GL_CONDITION_SATISFIED* = 0x0000911C

-  GL_WAIT_FAILED* = 0x0000911D

-  GL_SYNC_FLUSH_COMMANDS_BIT* = 0x00000001

-  GL_TIMEOUT_IGNORED* = int64(- 1) # GL_ARB_texture_multisample

-  GL_SAMPLE_POSITION* = 0x00008E50

-  GL_SAMPLE_MASK* = 0x00008E51

-  GL_SAMPLE_MASK_VALUE* = 0x00008E52

-  GL_MAX_SAMPLE_MASK_WORDS* = 0x00008E59

-  GL_TEXTURE_2D_MULTISAMPLE* = 0x00009100

-  GL_PROXY_TEXTURE_2D_MULTISAMPLE* = 0x00009101

-  GL_TEXTURE_2D_MULTISAMPLE_ARRAY* = 0x00009102

-  GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY* = 0x00009103

-  GL_TEXTURE_BINDING_2D_MULTISAMPLE* = 0x00009104

-  GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY* = 0x00009105

-  GL_TEXTURE_SAMPLES* = 0x00009106

-  GL_TEXTURE_FIXED_SAMPLE_LOCATIONS* = 0x00009107

-  GL_SAMPLER_2D_MULTISAMPLE* = 0x00009108

-  GL_INT_SAMPLER_2D_MULTISAMPLE* = 0x00009109

-  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE* = 0x0000910A

-  GL_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910B

-  GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910C

-  GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY* = 0x0000910D

-  GL_MAX_COLOR_TEXTURE_SAMPLES* = 0x0000910E

-  GL_MAX_DEPTH_TEXTURE_SAMPLES* = 0x0000910F

-  GL_MAX_INTEGER_SAMPLES* = 0x00009110 # GL_ARB_vertex_array_bgra

-                                       # reuse GL_BGRA 

-                                       # GL_ARB_sample_shading

-  GL_SAMPLE_SHADING_ARB* = 0x00008C36

-  GL_MIN_SAMPLE_SHADING_VALUE_ARB* = 0x00008C37 # GL_ARB_texture_cube_map_array

-  GL_TEXTURE_CUBE_MAP_ARRAY_ARB* = 0x00009009

-  GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB* = 0x0000900A

-  GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB* = 0x0000900B

-  GL_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900C

-  GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB* = 0x0000900D

-  GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900E

-  GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB* = 0x0000900F # GL_ARB_texture_gather

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB* = 0x00008E5F # 

-                                                         # GL_ARB_shading_language_include

-  GL_SHADER_INCLUDE_ARB* = 0x00008DAE

-  GL_NAMED_STRING_LENGTH_ARB* = 0x00008DE9

-  GL_NAMED_STRINGtyp_ARB* = 0x00008DEA # GL_ARB_texture_compression_bptc

-  GL_COMPRESSED_RGBA_BPTC_UNORM_ARB* = 0x00008E8C

-  GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB* = 0x00008E8D

-  GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB* = 0x00008E8E

-  GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB* = 0x00008E8F # 

-                                                          # GL_ARB_blend_func_extended

-  GL_SRC1_COLOR* = 0x000088F9 # reuse GL_SRC1_ALPHA 

-  GL_ONE_MINUS_SRC1_COLOR* = 0x000088FA

-  GL_ONE_MINUS_SRC1_ALPHA* = 0x000088FB

-  GL_MAX_DUAL_SOURCE_DRAW_BUFFERS* = 0x000088FC # GL_ARB_occlusion_query2

-  GL_ANY_SAMPLES_PASSED* = 0x00008C2F # GL_ARB_sampler_objects

-  GL_SAMPLER_BINDING* = 0x00008919 # GL_ARB_texture_rgb10_a2ui

-  GL_RGB10_A2UI* = 0x0000906F # GL_ARB_texture_swizzle

-  GL_TEXTURE_SWIZZLE_R* = 0x00008E42

-  GL_TEXTURE_SWIZZLE_G* = 0x00008E43

-  GL_TEXTURE_SWIZZLE_B* = 0x00008E44

-  GL_TEXTURE_SWIZZLE_A* = 0x00008E45

-  GL_TEXTURE_SWIZZLE_RGBA* = 0x00008E46 # GL_ARB_timer_query

-  GL_TIME_ELAPSED* = 0x000088BF

-  GL_TIMESTAMP* = 0x00008E28  # GL_ARB_vertextyp_2_10_10_10_rev

-                              # reuse GL_UNSIGNED_INT_2_10_10_10_REV 

-  GL_INT_2_10_10_10_REV* = 0x00008D9F # GL_ARB_draw_indirect

-  GL_DRAW_INDIRECT_BUFFER* = 0x00008F3F

-  GL_DRAW_INDIRECT_BUFFER_BINDING* = 0x00008F43 # GL_ARB_gpu_shader5

-  GL_GEOMETRY_SHADER_INVOCATIONS* = 0x0000887F

-  GL_MAX_GEOMETRY_SHADER_INVOCATIONS* = 0x00008E5A

-  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET* = 0x00008E5B

-  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET* = 0x00008E5C

-  GL_FRAGMENT_INTERPOLATION_OFFSET_BITS* = 0x00008E5D # reuse GL_MAX_VERTEX_STREAMS 

-                                                      # GL_ARB_gpu_shader_fp64

-                                                      # reuse GL_DOUBLE 

-  GL_DOUBLE_VEC2* = 0x00008FFC

-  GL_DOUBLE_VEC3* = 0x00008FFD

-  GL_DOUBLE_VEC4* = 0x00008FFE

-  GL_DOUBLE_MAT2* = 0x00008F46

-  GL_DOUBLE_MAT3* = 0x00008F47

-  GL_DOUBLE_MAT4* = 0x00008F48

-  GL_DOUBLE_MAT2x3* = 0x00008F49

-  GL_DOUBLE_MAT2x4* = 0x00008F4A

-  GL_DOUBLE_MAT3x2* = 0x00008F4B

-  GL_DOUBLE_MAT3x4* = 0x00008F4C

-  GL_DOUBLE_MAT4x2* = 0x00008F4D

-  GL_DOUBLE_MAT4x3* = 0x00008F4E # GL_ARB_shader_subroutine

-  GL_ACTIVE_SUBROUTINES* = 0x00008DE5

-  GL_ACTIVE_SUBROUTINE_UNIFORMS* = 0x00008DE6

-  GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS* = 0x00008E47

-  GL_ACTIVE_SUBROUTINE_MAX_LENGTH* = 0x00008E48

-  GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH* = 0x00008E49

-  GL_MAX_SUBROUTINES* = 0x00008DE7

-  GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS* = 0x00008DE8

-  GL_NUM_COMPATIBLE_SUBROUTINES* = 0x00008E4A

-  GL_COMPATIBLE_SUBROUTINES* = 0x00008E4B # GL_ARB_tessellation_shader

-  GL_PATCHES* = 0x0000000E

-  GL_PATCH_VERTICES* = 0x00008E72

-  GL_PATCH_DEFAULT_INNER_LEVEL* = 0x00008E73

-  GL_PATCH_DEFAULT_OUTER_LEVEL* = 0x00008E74

-  GL_TESS_CONTROL_OUTPUT_VERTICES* = 0x00008E75

-  GL_TESS_GEN_MODE* = 0x00008E76

-  GL_TESS_GEN_SPACING* = 0x00008E77

-  GL_TESS_GEN_VERTEX_ORDER* = 0x00008E78

-  GL_TESS_GEN_POINT_MODE* = 0x00008E79

-  GL_ISOLINES* = 0x00008E7A   # reuse GL_EQUAL 

-  GL_FRACTIONAL_ODD* = 0x00008E7B

-  GL_FRACTIONAL_EVEN* = 0x00008E7C

-  GL_MAX_PATCH_VERTICES* = 0x00008E7D

-  GL_MAX_TESS_GEN_LEVEL* = 0x00008E7E

-  GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS* = 0x00008E7F

-  GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS* = 0x00008E80

-  GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS* = 0x00008E81

-  GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS* = 0x00008E82

-  GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS* = 0x00008E83

-  GL_MAX_TESS_PATCH_COMPONENTS* = 0x00008E84

-  GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS* = 0x00008E85

-  GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS* = 0x00008E86

-  GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS* = 0x00008E89

-  GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS* = 0x00008E8A

-  GL_MAX_TESS_CONTROL_INPUT_COMPONENTS* = 0x0000886C

-  GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS* = 0x0000886D

-  GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS* = 0x00008E1E

-  GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS* = 0x00008E1F

-  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER* = 0x000084F0

-  GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER* = 0x000084F1

-  GL_TESS_EVALUATION_SHADER* = 0x00008E87

-  GL_TESS_CONTROL_SHADER* = 0x00008E88 # GL_ARB_texture_buffer_object_rgb32

-                                       # GL_ARB_transform_feedback2

-  GL_TRANSFORM_FEEDBACK* = 0x00008E22

-  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED* = 0x00008E23

-  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE* = 0x00008E24

-  GL_TRANSFORM_FEEDBACK_BINDING* = 0x00008E25 # GL_ARB_transform_feedback3

-  GL_MAX_TRANSFORM_FEEDBACK_BUFFERS* = 0x00008E70

-  GL_MAX_VERTEX_STREAMS* = 0x00008E71 # GL_ARB_ES2_compatibility

-  GL_FIXED* = 0x0000140C

-  GL_IMPLEMENTATION_COLOR_READtyp* = 0x00008B9A

-  GL_IMPLEMENTATION_COLOR_READ_FORMAT* = 0x00008B9B

-  GL_LOW_FLOAT* = 0x00008DF0

-  GL_MEDIUM_FLOAT* = 0x00008DF1

-  GL_HIGH_FLOAT* = 0x00008DF2

-  GL_LOW_INT* = 0x00008DF3

-  GL_MEDIUM_INT* = 0x00008DF4

-  GL_HIGH_INT* = 0x00008DF5

-  GL_SHADER_COMPILER* = 0x00008DFA

-  GL_NUM_SHADER_BINARY_FORMATS* = 0x00008DF9

-  GL_MAX_VERTEX_UNIFORM_VECTORS* = 0x00008DFB

-  GL_MAX_VARYING_VECTORS* = 0x00008DFC

-  GL_MAX_FRAGMENT_UNIFORM_VECTORS* = 0x00008DFD # GL_ARB_get_program_binary

-  GL_PROGRAM_BINARY_RETRIEVABLE_HINT* = 0x00008257

-  GL_PROGRAM_BINARY_LENGTH* = 0x00008741

-  GL_NUM_PROGRAM_BINARY_FORMATS* = 0x000087FE

-  GL_PROGRAM_BINARY_FORMATS* = 0x000087FF # GL_ARB_separate_shader_objects

-  GL_VERTEX_SHADER_BIT* = 0x00000001

-  GL_FRAGMENT_SHADER_BIT* = 0x00000002

-  GL_GEOMETRY_SHADER_BIT* = 0x00000004

-  GL_TESS_CONTROL_SHADER_BIT* = 0x00000008

-  GL_TESS_EVALUATION_SHADER_BIT* = 0x00000010

-  GL_ALL_SHADER_BITS* = 0xFFFFFFFF

-  GL_PROGRAM_SEPARABLE* = 0x00008258

-  GL_ACTIVE_PROGRAM* = 0x00008259

-  GL_PROGRAM_PIPELINE_BINDING* = 0x0000825A # GL_ARB_vertex_attrib_64bit

-  GL_MAX_VIEWPORTS* = 0x0000825B

-  GL_VIEWPORT_SUBPIXEL_BITS* = 0x0000825C

-  GL_VIEWPORT_BOUNDS_RANGE* = 0x0000825D

-  GL_LAYER_PROVOKING_VERTEX* = 0x0000825E

-  GL_VIEWPORT_INDEX_PROVOKING_VERTEX* = 0x0000825F

-  GL_UNDEFINED_VERTEX* = 0x00008260 # GL_ARB_cl_event

-  GL_SYNC_CL_EVENT_ARB* = 0x00008240

-  GL_SYNC_CL_EVENT_COMPLETE_ARB* = 0x00008241 # GL_ARB_debug_output

-  GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB* = 0x00008242

-  GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB* = 0x00008243

-  GL_DEBUG_CALLBACK_FUNCTION_ARB* = 0x00008244

-  GL_DEBUG_CALLBACK_USER_PARAM_ARB* = 0x00008245

-  GL_DEBUG_SOURCE_API_ARB* = 0x00008246

-  GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB* = 0x00008247

-  GL_DEBUG_SOURCE_SHADER_COMPILER_ARB* = 0x00008248

-  GL_DEBUG_SOURCE_THIRD_PARTY_ARB* = 0x00008249

-  GL_DEBUG_SOURCE_APPLICATION_ARB* = 0x0000824A

-  GL_DEBUG_SOURCE_OTHER_ARB* = 0x0000824B

-  GL_DEBUGtyp_ERROR_ARB* = 0x0000824C

-  GL_DEBUGtyp_DEPRECATED_BEHAVIOR_ARB* = 0x0000824D

-  GL_DEBUGtyp_UNDEFINED_BEHAVIOR_ARB* = 0x0000824E

-  GL_DEBUGtyp_PORTABILITY_ARB* = 0x0000824F

-  GL_DEBUGtyp_PERFORMANCE_ARB* = 0x00008250

-  GL_DEBUGtyp_OTHER_ARB* = 0x00008251

-  GL_MAX_DEBUG_MESSAGE_LENGTH_ARB* = 0x00009143

-  GL_MAX_DEBUG_LOGGED_MESSAGES_ARB* = 0x00009144

-  GL_DEBUG_LOGGED_MESSAGES_ARB* = 0x00009145

-  GL_DEBUG_SEVERITY_HIGH_ARB* = 0x00009146

-  GL_DEBUG_SEVERITY_MEDIUM_ARB* = 0x00009147

-  GL_DEBUG_SEVERITY_LOW_ARB* = 0x00009148 # GL_ARB_robustness

-                                          # reuse GL_NO_ERROR 

-  GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  GL_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  GL_GUILTY_CONTEXT_RESET_ARB* = 0x00008253

-  GL_INNOCENT_CONTEXT_RESET_ARB* = 0x00008254

-  GL_UNKNOWN_CONTEXT_RESET_ARB* = 0x00008255

-  GL_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  GL_NO_RESET_NOTIFICATION_ARB* = 0x00008261 #  

-                                             #  GL_ARB_compressed_texture_pixel_storage 

-  GL_UNPACK_COMPRESSED_BLOCK_WIDTH* = 0x00009127

-  GL_UNPACK_COMPRESSED_BLOCK_HEIGHT* = 0x00009128

-  GL_UNPACK_COMPRESSED_BLOCK_DEPTH* = 0x00009129

-  GL_UNPACK_COMPRESSED_BLOCK_SIZE* = 0x0000912A

-  GL_PACK_COMPRESSED_BLOCK_WIDTH* = 0x0000912B

-  GL_PACK_COMPRESSED_BLOCK_HEIGHT* = 0x0000912C

-  GL_PACK_COMPRESSED_BLOCK_DEPTH* = 0x0000912D

-  GL_PACK_COMPRESSED_BLOCK_SIZE* = 0x0000912E # GL_ARB_internalformat_query

-  GL_NUM_SAMPLE_COUNTS* = 0x00009380 # GL_ARB_map_buffer_alignment

-  GL_MIN_MAP_BUFFER_ALIGNMENT* = 0x000090BC # GL_ARB_shader_atomic_counters

-  GL_ATOMIC_COUNTER_BUFFER* = 0x000092C0

-  GL_ATOMIC_COUNTER_BUFFER_BINDING* = 0x000092C1

-  GL_ATOMIC_COUNTER_BUFFER_START* = 0x000092C2

-  GL_ATOMIC_COUNTER_BUFFER_SIZE* = 0x000092C3

-  GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE* = 0x000092C4

-  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS* = 0x000092C5

-  GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES* = 0x000092C6

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER* = 0x000092C7

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER* = 0x000092C8

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER* = 0x000092C9

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER* = 0x000092CA

-  GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER* = 0x000092CB

-  GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS* = 0x000092CC

-  GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS* = 0x000092CD

-  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS* = 0x000092CE

-  GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS* = 0x000092CF

-  GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS* = 0x000092D0

-  GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS* = 0x000092D1

-  GL_MAX_VERTEX_ATOMIC_COUNTERS* = 0x000092D2

-  GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS* = 0x000092D3

-  GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS* = 0x000092D4

-  GL_MAX_GEOMETRY_ATOMIC_COUNTERS* = 0x000092D5

-  GL_MAX_FRAGMENT_ATOMIC_COUNTERS* = 0x000092D6

-  GL_MAX_COMBINED_ATOMIC_COUNTERS* = 0x000092D7

-  GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE* = 0x000092D8

-  GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS* = 0x000092DC

-  GL_ACTIVE_ATOMIC_COUNTER_BUFFERS* = 0x000092D9

-  GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX* = 0x000092DA

-  GL_UNSIGNED_INT_ATOMIC_COUNTER* = 0x000092DB # GL_ARB_shader_image_load_store

-  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT* = 0x00000001

-  GL_ELEMENT_ARRAY_BARRIER_BIT* = 0x00000002

-  GL_UNIFORM_BARRIER_BIT* = 0x00000004

-  GL_TEXTURE_FETCH_BARRIER_BIT* = 0x00000008

-  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT* = 0x00000020

-  GL_COMMAND_BARRIER_BIT* = 0x00000040

-  GL_PIXEL_BUFFER_BARRIER_BIT* = 0x00000080

-  GL_TEXTURE_UPDATE_BARRIER_BIT* = 0x00000100

-  GL_BUFFER_UPDATE_BARRIER_BIT* = 0x00000200

-  GL_FRAMEBUFFER_BARRIER_BIT* = 0x00000400

-  GL_TRANSFORM_FEEDBACK_BARRIER_BIT* = 0x00000800

-  GL_ATOMIC_COUNTER_BARRIER_BIT* = 0x00001000

-  GL_ALL_BARRIER_BITS* = 0xFFFFFFFF

-  GL_MAX_IMAGE_UNITS* = 0x00008F38

-  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS* = 0x00008F39

-  GL_IMAGE_BINDING_NAME* = 0x00008F3A

-  GL_IMAGE_BINDING_LEVEL* = 0x00008F3B

-  GL_IMAGE_BINDING_LAYERED* = 0x00008F3C

-  GL_IMAGE_BINDING_LAYER* = 0x00008F3D

-  GL_IMAGE_BINDING_ACCESS* = 0x00008F3E

-  GL_IMAGE_1D* = 0x0000904C

-  GL_IMAGE_2D* = 0x0000904D

-  GL_IMAGE_3D* = 0x0000904E

-  GL_IMAGE_2D_RECT* = 0x0000904F

-  GL_IMAGE_CUBE* = 0x00009050

-  GL_IMAGE_BUFFER* = 0x00009051

-  GL_IMAGE_1D_ARRAY* = 0x00009052

-  GL_IMAGE_2D_ARRAY* = 0x00009053

-  GL_IMAGE_CUBE_MAP_ARRAY* = 0x00009054

-  GL_IMAGE_2D_MULTISAMPLE* = 0x00009055

-  GL_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x00009056

-  GL_INT_IMAGE_1D* = 0x00009057

-  GL_INT_IMAGE_2D* = 0x00009058

-  GL_INT_IMAGE_3D* = 0x00009059

-  GL_INT_IMAGE_2D_RECT* = 0x0000905A

-  GL_INT_IMAGE_CUBE* = 0x0000905B

-  GL_INT_IMAGE_BUFFER* = 0x0000905C

-  GL_INT_IMAGE_1D_ARRAY* = 0x0000905D

-  GL_INT_IMAGE_2D_ARRAY* = 0x0000905E

-  GL_INT_IMAGE_CUBE_MAP_ARRAY* = 0x0000905F

-  GL_INT_IMAGE_2D_MULTISAMPLE* = 0x00009060

-  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x00009061

-  GL_UNSIGNED_INT_IMAGE_1D* = 0x00009062

-  GL_UNSIGNED_INT_IMAGE_2D* = 0x00009063

-  GL_UNSIGNED_INT_IMAGE_3D* = 0x00009064

-  GL_UNSIGNED_INT_IMAGE_2D_RECT* = 0x00009065

-  GL_UNSIGNED_INT_IMAGE_CUBE* = 0x00009066

-  GL_UNSIGNED_INT_IMAGE_BUFFER* = 0x00009067

-  GL_UNSIGNED_INT_IMAGE_1D_ARRAY* = 0x00009068

-  GL_UNSIGNED_INT_IMAGE_2D_ARRAY* = 0x00009069

-  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY* = 0x0000906A

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE* = 0x0000906B

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY* = 0x0000906C

-  GL_MAX_IMAGE_SAMPLES* = 0x0000906D

-  GL_IMAGE_BINDING_FORMAT* = 0x0000906E

-  GL_IMAGE_FORMAT_COMPATIBILITYtyp* = 0x000090C7

-  GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE* = 0x000090C8

-  GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS* = 0x000090C9

-  GL_MAX_VERTEX_IMAGE_UNIFORMS* = 0x000090CA

-  GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS* = 0x000090CB

-  GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS* = 0x000090CC

-  GL_MAX_GEOMETRY_IMAGE_UNIFORMS* = 0x000090CD

-  GL_MAX_FRAGMENT_IMAGE_UNIFORMS* = 0x000090CE

-  GL_MAX_COMBINED_IMAGE_UNIFORMS* = 0x000090CF # GL_ARB_texture_storage

-  GL_TEXTURE_IMMUTABLE_FORMAT* = 0x0000912F # GL_ATI_draw_buffers

-  GL_MAX_DRAW_BUFFERS_ATI* = 0x00008824

-  GL_DRAW_BUFFER0_ATI* = 0x00008825

-  GL_DRAW_BUFFER1_ATI* = 0x00008826

-  GL_DRAW_BUFFER2_ATI* = 0x00008827

-  GL_DRAW_BUFFER3_ATI* = 0x00008828

-  GL_DRAW_BUFFER4_ATI* = 0x00008829

-  GL_DRAW_BUFFER5_ATI* = 0x0000882A

-  GL_DRAW_BUFFER6_ATI* = 0x0000882B

-  GL_DRAW_BUFFER7_ATI* = 0x0000882C

-  GL_DRAW_BUFFER8_ATI* = 0x0000882D

-  GL_DRAW_BUFFER9_ATI* = 0x0000882E

-  GL_DRAW_BUFFER10_ATI* = 0x0000882F

-  GL_DRAW_BUFFER11_ATI* = 0x00008830

-  GL_DRAW_BUFFER12_ATI* = 0x00008831

-  GL_DRAW_BUFFER13_ATI* = 0x00008832

-  GL_DRAW_BUFFER14_ATI* = 0x00008833

-  GL_DRAW_BUFFER15_ATI* = 0x00008834 # GL_ATI_element_array

-  GL_ELEMENT_ARRAY_ATI* = 0x00008768

-  GL_ELEMENT_ARRAYtyp_ATI* = 0x00008769

-  GL_ELEMENT_ARRAY_POINTER_ATI* = 0x0000876A # GL_ATI_envmap_bumpmap

-  GL_BUMP_ROT_MATRIX_ATI* = 0x00008775

-  GL_BUMP_ROT_MATRIX_SIZE_ATI* = 0x00008776

-  GL_BUMP_NUM_TEX_UNITS_ATI* = 0x00008777

-  GL_BUMP_TEX_UNITS_ATI* = 0x00008778

-  GL_DUDV_ATI* = 0x00008779

-  GL_DU8DV8_ATI* = 0x0000877A

-  GL_BUMP_ENVMAP_ATI* = 0x0000877B

-  GL_BUMP_TARGET_ATI* = 0x0000877C # GL_ATI_fragment_shader

-  GL_FRAGMENT_SHADER_ATI* = 0x00008920

-  GL_REG_0_ATI* = 0x00008921

-  GL_REG_1_ATI* = 0x00008922

-  GL_REG_2_ATI* = 0x00008923

-  GL_REG_3_ATI* = 0x00008924

-  GL_REG_4_ATI* = 0x00008925

-  GL_REG_5_ATI* = 0x00008926

-  GL_REG_6_ATI* = 0x00008927

-  GL_REG_7_ATI* = 0x00008928

-  GL_REG_8_ATI* = 0x00008929

-  GL_REG_9_ATI* = 0x0000892A

-  GL_REG_10_ATI* = 0x0000892B

-  GL_REG_11_ATI* = 0x0000892C

-  GL_REG_12_ATI* = 0x0000892D

-  GL_REG_13_ATI* = 0x0000892E

-  GL_REG_14_ATI* = 0x0000892F

-  GL_REG_15_ATI* = 0x00008930

-  GL_REG_16_ATI* = 0x00008931

-  GL_REG_17_ATI* = 0x00008932

-  GL_REG_18_ATI* = 0x00008933

-  GL_REG_19_ATI* = 0x00008934

-  GL_REG_20_ATI* = 0x00008935

-  GL_REG_21_ATI* = 0x00008936

-  GL_REG_22_ATI* = 0x00008937

-  GL_REG_23_ATI* = 0x00008938

-  GL_REG_24_ATI* = 0x00008939

-  GL_REG_25_ATI* = 0x0000893A

-  GL_REG_26_ATI* = 0x0000893B

-  GL_REG_27_ATI* = 0x0000893C

-  GL_REG_28_ATI* = 0x0000893D

-  GL_REG_29_ATI* = 0x0000893E

-  GL_REG_30_ATI* = 0x0000893F

-  GL_REG_31_ATI* = 0x00008940

-  GL_CON_0_ATI* = 0x00008941

-  GL_CON_1_ATI* = 0x00008942

-  GL_CON_2_ATI* = 0x00008943

-  GL_CON_3_ATI* = 0x00008944

-  GL_CON_4_ATI* = 0x00008945

-  GL_CON_5_ATI* = 0x00008946

-  GL_CON_6_ATI* = 0x00008947

-  GL_CON_7_ATI* = 0x00008948

-  GL_CON_8_ATI* = 0x00008949

-  GL_CON_9_ATI* = 0x0000894A

-  GL_CON_10_ATI* = 0x0000894B

-  GL_CON_11_ATI* = 0x0000894C

-  GL_CON_12_ATI* = 0x0000894D

-  GL_CON_13_ATI* = 0x0000894E

-  GL_CON_14_ATI* = 0x0000894F

-  GL_CON_15_ATI* = 0x00008950

-  GL_CON_16_ATI* = 0x00008951

-  GL_CON_17_ATI* = 0x00008952

-  GL_CON_18_ATI* = 0x00008953

-  GL_CON_19_ATI* = 0x00008954

-  GL_CON_20_ATI* = 0x00008955

-  GL_CON_21_ATI* = 0x00008956

-  GL_CON_22_ATI* = 0x00008957

-  GL_CON_23_ATI* = 0x00008958

-  GL_CON_24_ATI* = 0x00008959

-  GL_CON_25_ATI* = 0x0000895A

-  GL_CON_26_ATI* = 0x0000895B

-  GL_CON_27_ATI* = 0x0000895C

-  GL_CON_28_ATI* = 0x0000895D

-  GL_CON_29_ATI* = 0x0000895E

-  GL_CON_30_ATI* = 0x0000895F

-  GL_CON_31_ATI* = 0x00008960

-  GL_MOV_ATI* = 0x00008961

-  GL_ADD_ATI* = 0x00008963

-  GL_MUL_ATI* = 0x00008964

-  GL_SUB_ATI* = 0x00008965

-  GL_DOT3_ATI* = 0x00008966

-  GL_DOT4_ATI* = 0x00008967

-  GL_MAD_ATI* = 0x00008968

-  GL_LERP_ATI* = 0x00008969

-  GL_CND_ATI* = 0x0000896A

-  GL_CND0_ATI* = 0x0000896B

-  GL_DOT2_ADD_ATI* = 0x0000896C

-  GL_SECONDARY_INTERPOLATOR_ATI* = 0x0000896D

-  GL_NUM_FRAGMENT_REGISTERS_ATI* = 0x0000896E

-  GL_NUM_FRAGMENT_CONSTANTS_ATI* = 0x0000896F

-  GL_NUM_PASSES_ATI* = 0x00008970

-  GL_NUM_INSTRUCTIONS_PER_PASS_ATI* = 0x00008971

-  GL_NUM_INSTRUCTIONS_TOTAL_ATI* = 0x00008972

-  GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI* = 0x00008973

-  GL_NUM_LOOPBACK_COMPONENTS_ATI* = 0x00008974

-  GL_COLOR_ALPHA_PAIRING_ATI* = 0x00008975

-  GL_SWIZZLE_STR_ATI* = 0x00008976

-  GL_SWIZZLE_STQ_ATI* = 0x00008977

-  GL_SWIZZLE_STR_DR_ATI* = 0x00008978

-  GL_SWIZZLE_STQ_DQ_ATI* = 0x00008979

-  GL_SWIZZLE_STRQ_ATI* = 0x0000897A

-  GL_SWIZZLE_STRQ_DQ_ATI* = 0x0000897B

-  GL_RED_BIT_ATI* = 0x00000001

-  GL_GREEN_BIT_ATI* = 0x00000002

-  GL_BLUE_BIT_ATI* = 0x00000004

-  GL_2X_BIT_ATI* = 0x00000001

-  GL_4X_BIT_ATI* = 0x00000002

-  GL_8X_BIT_ATI* = 0x00000004

-  GL_HALF_BIT_ATI* = 0x00000008

-  GL_QUARTER_BIT_ATI* = 0x00000010

-  GL_EIGHTH_BIT_ATI* = 0x00000020

-  GL_SATURATE_BIT_ATI* = 0x00000040

-  GL_COMP_BIT_ATI* = 0x00000002

-  GL_NEGATE_BIT_ATI* = 0x00000004

-  GL_BIAS_BIT_ATI* = 0x00000008 # GL_ATI_pn_triangles

-  GL_PN_TRIANGLES_ATI* = 0x000087F0

-  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F1

-  GL_PN_TRIANGLES_POINT_MODE_ATI* = 0x000087F2

-  GL_PN_TRIANGLES_NORMAL_MODE_ATI* = 0x000087F3

-  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI* = 0x000087F4

-  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI* = 0x000087F5

-  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI* = 0x000087F6

-  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI* = 0x000087F7

-  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI* = 0x000087F8 # 

-                                                          # GL_ATI_separate_stencil

-  GL_STENCIL_BACK_FUNC_ATI* = 0x00008800

-  GL_STENCIL_BACK_FAIL_ATI* = 0x00008801

-  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI* = 0x00008802

-  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI* = 0x00008803 # GL_ATI_text_fragment_shader

-  GL_TEXT_FRAGMENT_SHADER_ATI* = 0x00008200 # GL_ATI_texture_env_combine3

-  GL_MODULATE_ADD_ATI* = 0x00008744

-  GL_MODULATE_SIGNED_ADD_ATI* = 0x00008745

-  GL_MODULATE_SUBTRACT_ATI* = 0x00008746 # GL_ATI_texture_float

-  GL_RGBA_FLOAT32_ATI* = 0x00008814

-  GL_RGB_FLOAT32_ATI* = 0x00008815

-  GL_ALPHA_FLOAT32_ATI* = 0x00008816

-  GL_INTENSITY_FLOAT32_ATI* = 0x00008817

-  GL_LUMINANCE_FLOAT32_ATI* = 0x00008818

-  GL_LUMINANCE_ALPHA_FLOAT32_ATI* = 0x00008819

-  GL_RGBA_FLOAT16_ATI* = 0x0000881A

-  GL_RGB_FLOAT16_ATI* = 0x0000881B

-  GL_ALPHA_FLOAT16_ATI* = 0x0000881C

-  GL_INTENSITY_FLOAT16_ATI* = 0x0000881D

-  GL_LUMINANCE_FLOAT16_ATI* = 0x0000881E

-  GL_LUMINANCE_ALPHA_FLOAT16_ATI* = 0x0000881F # GL_ATI_texture_mirror_once

-  GL_MIRROR_CLAMP_ATI* = 0x00008742

-  GL_MIRROR_CLAMP_TO_EDGE_ATI* = 0x00008743 # GL_ATI_vertex_array_object

-  GL_STATIC_ATI* = 0x00008760

-  GL_DYNAMIC_ATI* = 0x00008761

-  GL_PRESERVE_ATI* = 0x00008762

-  GL_DISCARD_ATI* = 0x00008763

-  GL_OBJECT_BUFFER_SIZE_ATI* = 0x00008764

-  GL_OBJECT_BUFFER_USAGE_ATI* = 0x00008765

-  GL_ARRAY_OBJECT_BUFFER_ATI* = 0x00008766

-  GL_ARRAY_OBJECT_OFFSET_ATI* = 0x00008767 # GL_ATI_vertex_streams

-  GL_MAX_VERTEX_STREAMS_ATI* = 0x0000876B

-  GL_VERTEX_STREAM0_ATI* = 0x0000876C

-  GL_VERTEX_STREAM1_ATI* = 0x0000876D

-  GL_VERTEX_STREAM2_ATI* = 0x0000876E

-  GL_VERTEX_STREAM3_ATI* = 0x0000876F

-  GL_VERTEX_STREAM4_ATI* = 0x00008770

-  GL_VERTEX_STREAM5_ATI* = 0x00008771

-  GL_VERTEX_STREAM6_ATI* = 0x00008772

-  GL_VERTEX_STREAM7_ATI* = 0x00008773

-  GL_VERTEX_SOURCE_ATI* = 0x00008774 # GL_ATI_meminfo

-  GL_VBO_FREE_MEMORY_ATI* = 0x000087FB

-  GL_TEXTURE_FREE_MEMORY_ATI* = 0x000087FC

-  GL_RENDERBUFFER_FREE_MEMORY_ATI* = 0x000087FD # GL_AMD_performance_monitor

-  GL_COUNTERtyp_AMD* = 0x00008BC0

-  GL_COUNTER_RANGE_AMD* = 0x00008BC1

-  GL_UNSIGNED_INT64_AMD* = 0x00008BC2

-  GL_PERCENTAGE_AMD* = 0x00008BC3

-  GL_PERFMON_RESULT_AVAILABLE_AMD* = 0x00008BC4

-  GL_PERFMON_RESULT_SIZE_AMD* = 0x00008BC5

-  GL_PERFMON_RESULT_AMD* = 0x00008BC6 # GL_AMD_vertex_shader_tesselator

-  GL_SAMPLER_BUFFER_AMD* = 0x00009001

-  GL_INT_SAMPLER_BUFFER_AMD* = 0x00009002

-  GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD* = 0x00009003

-  cGL_TESSELLATION_MODE_AMD* = 0x00009004

-  cGL_TESSELLATION_FACTOR_AMD* = 0x00009005

-  GL_DISCRETE_AMD* = 0x00009006

-  GL_CONTINUOUS_AMD* = 0x00009007 # GL_AMD_seamless_cubemap_per_texture

-                                  # reuse GL_TEXTURE_CUBE_MAP_SEAMLESS 

-                                  # GL_AMD_name_gen_delete

-  GL_DATA_BUFFER_AMD* = 0x00009151

-  GL_PERFORMANCE_MONITOR_AMD* = 0x00009152

-  GL_QUERY_OBJECT_AMD* = 0x00009153

-  GL_VERTEX_ARRAY_OBJECT_AMD* = 0x00009154

-  GL_SAMPLER_OBJECT_AMD* = 0x00009155 # GL_AMD_debug_output

-  GL_MAX_DEBUG_LOGGED_MESSAGES_AMD* = 0x00009144

-  GL_DEBUG_LOGGED_MESSAGES_AMD* = 0x00009145

-  GL_DEBUG_SEVERITY_HIGH_AMD* = 0x00009146

-  GL_DEBUG_SEVERITY_MEDIUM_AMD* = 0x00009147

-  GL_DEBUG_SEVERITY_LOW_AMD* = 0x00009148

-  GL_DEBUG_CATEGORY_API_ERROR_AMD* = 0x00009149

-  GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD* = 0x0000914A

-  GL_DEBUG_CATEGORY_DEPRECATION_AMD* = 0x0000914B

-  GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD* = 0x0000914C

-  GL_DEBUG_CATEGORY_PERFORMANCE_AMD* = 0x0000914D

-  GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD* = 0x0000914E

-  GL_DEBUG_CATEGORY_APPLICATION_AMD* = 0x0000914F

-  GL_DEBUG_CATEGORY_OTHER_AMD* = 0x00009150 # GL_AMD_depth_clamp_separate

-  GL_DEPTH_CLAMP_NEAR_AMD* = 0x0000901E

-  GL_DEPTH_CLAMP_FAR_AMD* = 0x0000901F # GL_EXT_422_pixels

-  GL_422_EXT* = 0x000080CC

-  GL_422_REV_EXT* = 0x000080CD

-  GL_422_AVERAGE_EXT* = 0x000080CE

-  GL_422_REV_AVERAGE_EXT* = 0x000080CF # GL_EXT_abgr

-  GL_ABGR_EXT* = 0x00008000   # GL_EXT_bgra

-  GL_BGR_EXT* = 0x000080E0

-  GL_BGRA_EXT* = 0x000080E1   # GL_EXT_blend_color

-  GL_CONSTANT_COLOR_EXT* = 0x00008001

-  GL_ONE_MINUS_CONSTANT_COLOR_EXT* = 0x00008002

-  GL_CONSTANT_ALPHA_EXT* = 0x00008003

-  GL_ONE_MINUS_CONSTANT_ALPHA_EXT* = 0x00008004

-  cGL_BLEND_COLOR_EXT* = 0x00008005 # GL_EXT_blend_func_separate

-  GL_BLEND_DST_RGB_EXT* = 0x000080C8

-  GL_BLEND_SRC_RGB_EXT* = 0x000080C9

-  GL_BLEND_DST_ALPHA_EXT* = 0x000080CA

-  GL_BLEND_SRC_ALPHA_EXT* = 0x000080CB # GL_EXT_blend_minmax

-  GL_FUNC_ADD_EXT* = 0x00008006

-  GL_MIN_EXT* = 0x00008007

-  GL_MAX_EXT* = 0x00008008

-  cGL_BLEND_EQUATION_EXT* = 0x00008009 # GL_EXT_blend_subtract

-  GL_FUNC_SUBTRACT_EXT* = 0x0000800A

-  GL_FUNC_REVERSE_SUBTRACT_EXT* = 0x0000800B # GL_EXT_clip_volume_hint

-  GL_CLIP_VOLUME_CLIPPING_HINT_EXT* = 0x000080F0 # GL_EXT_cmyka

-  GL_CMYK_EXT* = 0x0000800C

-  GL_CMYKA_EXT* = 0x0000800D

-  GL_PACK_CMYK_HINT_EXT* = 0x0000800E

-  GL_UNPACK_CMYK_HINT_EXT* = 0x0000800F # GL_EXT_compiled_vertex_array

-  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT* = 0x000081A8

-  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT* = 0x000081A9 # GL_EXT_convolution

-  GL_CONVOLUTION_1D_EXT* = 0x00008010

-  GL_CONVOLUTION_2D_EXT* = 0x00008011

-  GL_SEPARABLE_2D_EXT* = 0x00008012

-  GL_CONVOLUTION_BORDER_MODE_EXT* = 0x00008013

-  GL_CONVOLUTION_FILTER_SCALE_EXT* = 0x00008014

-  GL_CONVOLUTION_FILTER_BIAS_EXT* = 0x00008015

-  GL_REDUCE_EXT* = 0x00008016

-  GL_CONVOLUTION_FORMAT_EXT* = 0x00008017

-  GL_CONVOLUTION_WIDTH_EXT* = 0x00008018

-  GL_CONVOLUTION_HEIGHT_EXT* = 0x00008019

-  GL_MAX_CONVOLUTION_WIDTH_EXT* = 0x0000801A

-  GL_MAX_CONVOLUTION_HEIGHT_EXT* = 0x0000801B

-  GL_POST_CONVOLUTION_RED_SCALE_EXT* = 0x0000801C

-  GL_POST_CONVOLUTION_GREEN_SCALE_EXT* = 0x0000801D

-  GL_POST_CONVOLUTION_BLUE_SCALE_EXT* = 0x0000801E

-  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT* = 0x0000801F

-  GL_POST_CONVOLUTION_RED_BIAS_EXT* = 0x00008020

-  GL_POST_CONVOLUTION_GREEN_BIAS_EXT* = 0x00008021

-  GL_POST_CONVOLUTION_BLUE_BIAS_EXT* = 0x00008022

-  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT* = 0x00008023 # GL_EXT_coordinate_frame

-  GL_TANGENT_ARRAY_EXT* = 0x00008439

-  GL_BINORMAL_ARRAY_EXT* = 0x0000843A

-  GL_CURRENT_TANGENT_EXT* = 0x0000843B

-  GL_CURRENT_BINORMAL_EXT* = 0x0000843C

-  GL_TANGENT_ARRAYtyp_EXT* = 0x0000843E

-  GL_TANGENT_ARRAY_STRIDE_EXT* = 0x0000843F

-  GL_BINORMAL_ARRAYtyp_EXT* = 0x00008440

-  GL_BINORMAL_ARRAY_STRIDE_EXT* = 0x00008441

-  GL_TANGENT_ARRAY_POINTER_EXT* = 0x00008442

-  GL_BINORMAL_ARRAY_POINTER_EXT* = 0x00008443

-  GL_MAP1_TANGENT_EXT* = 0x00008444

-  GL_MAP2_TANGENT_EXT* = 0x00008445

-  GL_MAP1_BINORMAL_EXT* = 0x00008446

-  GL_MAP2_BINORMAL_EXT* = 0x00008447 # GL_EXT_cull_vertex

-  GL_CULL_VERTEX_EXT* = 0x000081AA

-  GL_CULL_VERTEX_EYE_POSITION_EXT* = 0x000081AB

-  GL_CULL_VERTEX_OBJECT_POSITION_EXT* = 0x000081AC # GL_EXT_draw_range_elements

-  GL_MAX_ELEMENTS_VERTICES_EXT* = 0x000080E8

-  GL_MAX_ELEMENTS_INDICES_EXT* = 0x000080E9 # GL_EXT_fog_coord

-  GL_FOG_COORDINATE_SOURCE_EXT* = 0x00008450

-  GL_FOG_COORDINATE_EXT* = 0x00008451

-  GL_FRAGMENT_DEPTH_EXT* = 0x00008452

-  GL_CURRENT_FOG_COORDINATE_EXT* = 0x00008453

-  GL_FOG_COORDINATE_ARRAYtyp_EXT* = 0x00008454

-  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT* = 0x00008455

-  GL_FOG_COORDINATE_ARRAY_POINTER_EXT* = 0x00008456

-  GL_FOG_COORDINATE_ARRAY_EXT* = 0x00008457 # GL_EXT_framebuffer_object

-  GL_FRAMEBUFFER_EXT* = 0x00008D40

-  GL_RENDERBUFFER_EXT* = 0x00008D41

-  GL_STENCIL_INDEX_EXT* = 0x00008D45

-  GL_STENCIL_INDEX1_EXT* = 0x00008D46

-  GL_STENCIL_INDEX4_EXT* = 0x00008D47

-  GL_STENCIL_INDEX8_EXT* = 0x00008D48

-  GL_STENCIL_INDEX16_EXT* = 0x00008D49

-  GL_RENDERBUFFER_WIDTH_EXT* = 0x00008D42

-  GL_RENDERBUFFER_HEIGHT_EXT* = 0x00008D43

-  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT* = 0x00008D44

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECTtyp_EXT* = 0x00008CD0

-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT* = 0x00008CD1

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT* = 0x00008CD2

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT* = 0x00008CD3

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT* = 0x00008CD4

-  GL_COLOR_ATTACHMENT0_EXT* = 0x00008CE0

-  GL_COLOR_ATTACHMENT1_EXT* = 0x00008CE1

-  GL_COLOR_ATTACHMENT2_EXT* = 0x00008CE2

-  GL_COLOR_ATTACHMENT3_EXT* = 0x00008CE3

-  GL_COLOR_ATTACHMENT4_EXT* = 0x00008CE4

-  GL_COLOR_ATTACHMENT5_EXT* = 0x00008CE5

-  GL_COLOR_ATTACHMENT6_EXT* = 0x00008CE6

-  GL_COLOR_ATTACHMENT7_EXT* = 0x00008CE7

-  GL_COLOR_ATTACHMENT8_EXT* = 0x00008CE8

-  GL_COLOR_ATTACHMENT9_EXT* = 0x00008CE9

-  GL_COLOR_ATTACHMENT10_EXT* = 0x00008CEA

-  GL_COLOR_ATTACHMENT11_EXT* = 0x00008CEB

-  GL_COLOR_ATTACHMENT12_EXT* = 0x00008CEC

-  GL_COLOR_ATTACHMENT13_EXT* = 0x00008CED

-  GL_COLOR_ATTACHMENT14_EXT* = 0x00008CEE

-  GL_COLOR_ATTACHMENT15_EXT* = 0x00008CEF

-  GL_DEPTH_ATTACHMENT_EXT* = 0x00008D00

-  GL_STENCIL_ATTACHMENT_EXT* = 0x00008D20

-  GL_FRAMEBUFFER_COMPLETE_EXT* = 0x00008CD5

-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT* = 0x00008CD6

-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT* = 0x00008CD7

-  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT* = 0x00008CD8

-  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT* = 0x00008CD9

-  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT* = 0x00008CDA

-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT* = 0x00008CDB

-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT* = 0x00008CDC

-  GL_FRAMEBUFFER_UNSUPPORTED_EXT* = 0x00008CDD

-  GL_FRAMEBUFFER_STATUS_ERROR_EXT* = 0x00008CDE

-  GL_FRAMEBUFFER_BINDING_EXT* = 0x00008CA6

-  GL_RENDERBUFFER_BINDING_EXT* = 0x00008CA7

-  GL_MAX_COLOR_ATTACHMENTS_EXT* = 0x00008CDF

-  GL_MAX_RENDERBUFFER_SIZE_EXT* = 0x000084E8

-  GL_INVALID_FRAMEBUFFER_OPERATION_EXT* = 0x00000506 # GL_EXT_histogram

-  cGL_HISTOGRAM_EXT* = 0x00008024

-  GL_PROXY_HISTOGRAM_EXT* = 0x00008025

-  GL_HISTOGRAM_WIDTH_EXT* = 0x00008026

-  GL_HISTOGRAM_FORMAT_EXT* = 0x00008027

-  GL_HISTOGRAM_RED_SIZE_EXT* = 0x00008028

-  GL_HISTOGRAM_GREEN_SIZE_EXT* = 0x00008029

-  GL_HISTOGRAM_BLUE_SIZE_EXT* = 0x0000802A

-  GL_HISTOGRAM_ALPHA_SIZE_EXT* = 0x0000802B

-  GL_HISTOGRAM_LUMINANCE_SIZE_EXT* = 0x0000802C

-  GL_HISTOGRAM_SINK_EXT* = 0x0000802D

-  cGL_MINMAX_EXT* = 0x0000802E

-  GL_MINMAX_FORMAT_EXT* = 0x0000802F

-  GL_MINMAX_SINK_EXT* = 0x00008030

-  GL_TABLE_TOO_LARGE_EXT* = 0x00008031 # GL_EXT_index_array_formats

-  GL_IUI_V2F_EXT* = 0x000081AD

-  GL_IUI_V3F_EXT* = 0x000081AE

-  GL_IUI_N3F_V2F_EXT* = 0x000081AF

-  GL_IUI_N3F_V3F_EXT* = 0x000081B0

-  GL_T2F_IUI_V2F_EXT* = 0x000081B1

-  GL_T2F_IUI_V3F_EXT* = 0x000081B2

-  GL_T2F_IUI_N3F_V2F_EXT* = 0x000081B3

-  GL_T2F_IUI_N3F_V3F_EXT* = 0x000081B4 # GL_EXT_index_func

-  GL_INDEX_TEST_EXT* = 0x000081B5

-  GL_INDEX_TEST_FUNC_EXT* = 0x000081B6

-  GL_INDEX_TEST_REF_EXT* = 0x000081B7 # GL_EXT_index_material

-  cGL_INDEX_MATERIAL_EXT* = 0x000081B8

-  GL_INDEX_MATERIAL_PARAMETER_EXT* = 0x000081B9

-  GL_INDEX_MATERIAL_FACE_EXT* = 0x000081BA # GL_EXT_light_texture

-  GL_FRAGMENT_MATERIAL_EXT* = 0x00008349

-  GL_FRAGMENT_NORMAL_EXT* = 0x0000834A

-  GL_FRAGMENT_COLOR_EXT* = 0x0000834C

-  GL_ATTENUATION_EXT* = 0x0000834D

-  GL_SHADOW_ATTENUATION_EXT* = 0x0000834E

-  GL_TEXTURE_APPLICATION_MODE_EXT* = 0x0000834F

-  cGL_TEXTURE_LIGHT_EXT* = 0x00008350

-  GL_TEXTURE_MATERIAL_FACE_EXT* = 0x00008351

-  GL_TEXTURE_MATERIAL_PARAMETER_EXT* = 0x00008352 # GL_EXT_multisample

-  GL_MULTISAMPLE_EXT* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_MASK_EXT* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_EXT* = 0x0000809F

-  cGL_SAMPLE_MASK_EXT* = 0x000080A0

-  GL_1PASS_EXT* = 0x000080A1

-  GL_2PASS_0_EXT* = 0x000080A2

-  GL_2PASS_1_EXT* = 0x000080A3

-  GL_4PASS_0_EXT* = 0x000080A4

-  GL_4PASS_1_EXT* = 0x000080A5

-  GL_4PASS_2_EXT* = 0x000080A6

-  GL_4PASS_3_EXT* = 0x000080A7

-  GL_SAMPLE_BUFFERS_EXT* = 0x000080A8

-  GL_SAMPLES_EXT* = 0x000080A9

-  GL_SAMPLE_MASK_VALUE_EXT* = 0x000080AA

-  GL_SAMPLE_MASK_INVERT_EXT* = 0x000080AB

-  cGL_SAMPLE_PATTERN_EXT* = 0x000080AC

-  GL_MULTISAMPLE_BIT_EXT* = 0x20000000 # GL_EXT_packed_pixels

-  GL_UNSIGNED_BYTE_3_3_2_EXT* = 0x00008032

-  GL_UNSIGNED_SHORT_4_4_4_4_EXT* = 0x00008033

-  GL_UNSIGNED_SHORT_5_5_5_1_EXT* = 0x00008034

-  GL_UNSIGNED_INT_8_8_8_8_EXT* = 0x00008035

-  GL_UNSIGNED_INT_10_10_10_2_EXT* = 0x00008036 # GL_EXT_paletted_texture

-  GL_COLOR_INDEX1_EXT* = 0x000080E2

-  GL_COLOR_INDEX2_EXT* = 0x000080E3

-  GL_COLOR_INDEX4_EXT* = 0x000080E4

-  GL_COLOR_INDEX8_EXT* = 0x000080E5

-  GL_COLOR_INDEX12_EXT* = 0x000080E6

-  GL_COLOR_INDEX16_EXT* = 0x000080E7

-  GL_TEXTURE_INDEX_SIZE_EXT* = 0x000080ED # GL_EXT_pixel_transform

-  GL_PIXEL_TRANSFORM_2D_EXT* = 0x00008330

-  GL_PIXEL_MAG_FILTER_EXT* = 0x00008331

-  GL_PIXEL_MIN_FILTER_EXT* = 0x00008332

-  GL_PIXEL_CUBIC_WEIGHT_EXT* = 0x00008333

-  GL_CUBIC_EXT* = 0x00008334

-  GL_AVERAGE_EXT* = 0x00008335

-  GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT* = 0x00008336

-  GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT* = 0x00008337

-  GL_PIXEL_TRANSFORM_2D_MATRIX_EXT* = 0x00008338 # GL_EXT_point_parameters

-  GL_POINT_SIZE_MIN_EXT* = 0x00008126

-  GL_POINT_SIZE_MAX_EXT* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_EXT* = 0x00008128

-  GL_DISTANCE_ATTENUATION_EXT* = 0x00008129 # GL_EXT_polygon_offset

-  cGL_POLYGON_OFFSET_EXT* = 0x00008037

-  GL_POLYGON_OFFSET_FACTOR_EXT* = 0x00008038

-  GL_POLYGON_OFFSET_BIAS_EXT* = 0x00008039 # GL_EXT_rescale_normal

-  GL_RESCALE_NORMAL_EXT* = 0x0000803A # GL_EXT_secondary_color

-  GL_COLOR_SUM_EXT* = 0x00008458

-  GL_CURRENT_SECONDARY_COLOR_EXT* = 0x00008459

-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT* = 0x0000845A

-  GL_SECONDARY_COLOR_ARRAYtyp_EXT* = 0x0000845B

-  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT* = 0x0000845C

-  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT* = 0x0000845D

-  GL_SECONDARY_COLOR_ARRAY_EXT* = 0x0000845E # GL_EXT_separate_specular_color

-  GL_LIGHT_MODEL_COLOR_CONTROL_EXT* = 0x000081F8

-  GL_SINGLE_COLOR_EXT* = 0x000081F9

-  GL_SEPARATE_SPECULAR_COLOR_EXT* = 0x000081FA # GL_EXT_shared_texture_palette

-  GL_SHARED_TEXTURE_PALETTE_EXT* = 0x000081FB # GL_EXT_stencil_two_side

-  GL_STENCIL_TEST_TWO_SIDE_EXT* = 0x00008910

-  cGL_ACTIVE_STENCIL_FACE_EXT* = 0x00008911 # GL_EXT_stencil_wrap

-  GL_INCR_WRAP_EXT* = 0x00008507

-  GL_DECR_WRAP_EXT* = 0x00008508 # GL_EXT_texture

-  GL_ALPHA4_EXT* = 0x0000803B

-  GL_ALPHA8_EXT* = 0x0000803C

-  GL_ALPHA12_EXT* = 0x0000803D

-  GL_ALPHA16_EXT* = 0x0000803E

-  GL_LUMINANCE4_EXT* = 0x0000803F

-  GL_LUMINANCE8_EXT* = 0x00008040

-  GL_LUMINANCE12_EXT* = 0x00008041

-  GL_LUMINANCE16_EXT* = 0x00008042

-  GL_LUMINANCE4_ALPHA4_EXT* = 0x00008043

-  GL_LUMINANCE6_ALPHA2_EXT* = 0x00008044

-  GL_LUMINANCE8_ALPHA8_EXT* = 0x00008045

-  GL_LUMINANCE12_ALPHA4_EXT* = 0x00008046

-  GL_LUMINANCE12_ALPHA12_EXT* = 0x00008047

-  GL_LUMINANCE16_ALPHA16_EXT* = 0x00008048

-  GL_INTENSITY_EXT* = 0x00008049

-  GL_INTENSITY4_EXT* = 0x0000804A

-  GL_INTENSITY8_EXT* = 0x0000804B

-  GL_INTENSITY12_EXT* = 0x0000804C

-  GL_INTENSITY16_EXT* = 0x0000804D

-  GL_RGB2_EXT* = 0x0000804E

-  GL_RGB4_EXT* = 0x0000804F

-  GL_RGB5_EXT* = 0x00008050

-  GL_RGB8_EXT* = 0x00008051

-  GL_RGB10_EXT* = 0x00008052

-  GL_RGB12_EXT* = 0x00008053

-  GL_RGB16_EXT* = 0x00008054

-  GL_RGBA2_EXT* = 0x00008055

-  GL_RGBA4_EXT* = 0x00008056

-  GL_RGB5_A1_EXT* = 0x00008057

-  GL_RGBA8_EXT* = 0x00008058

-  GL_RGB10_A2_EXT* = 0x00008059

-  GL_RGBA12_EXT* = 0x0000805A

-  GL_RGBA16_EXT* = 0x0000805B

-  GL_TEXTURE_RED_SIZE_EXT* = 0x0000805C

-  GL_TEXTURE_GREEN_SIZE_EXT* = 0x0000805D

-  GL_TEXTURE_BLUE_SIZE_EXT* = 0x0000805E

-  GL_TEXTURE_ALPHA_SIZE_EXT* = 0x0000805F

-  GL_TEXTURE_LUMINANCE_SIZE_EXT* = 0x00008060

-  GL_TEXTURE_INTENSITY_SIZE_EXT* = 0x00008061

-  GL_REPLACE_EXT* = 0x00008062

-  GL_PROXY_TEXTURE_1D_EXT* = 0x00008063

-  GL_PROXY_TEXTURE_2D_EXT* = 0x00008064

-  GL_TEXTURE_TOO_LARGE_EXT* = 0x00008065 # GL_EXT_texture3D

-  GL_PACK_SKIP_IMAGES_EXT* = 0x0000806B

-  GL_PACK_IMAGE_HEIGHT_EXT* = 0x0000806C

-  GL_UNPACK_SKIP_IMAGES_EXT* = 0x0000806D

-  GL_UNPACK_IMAGE_HEIGHT_EXT* = 0x0000806E

-  GL_TEXTURE_3D_EXT* = 0x0000806F

-  GL_PROXY_TEXTURE_3D_EXT* = 0x00008070

-  GL_TEXTURE_DEPTH_EXT* = 0x00008071

-  GL_TEXTURE_WRAP_R_EXT* = 0x00008072

-  GL_MAX_3D_TEXTURE_SIZE_EXT* = 0x00008073 # GL_EXT_texture_compression_s3tc

-  GL_COMPRESSED_RGB_S3TC_DXT1_EXT* = 0x000083F0

-  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT* = 0x000083F1

-  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT* = 0x000083F2

-  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT* = 0x000083F3 # GL_EXT_texture_cube_map

-  GL_NORMAL_MAP_EXT* = 0x00008511

-  GL_REFLECTION_MAP_EXT* = 0x00008512

-  GL_TEXTURE_CUBE_MAP_EXT* = 0x00008513

-  GL_TEXTURE_BINDING_CUBE_MAP_EXT* = 0x00008514

-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT* = 0x00008515

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT* = 0x00008516

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT* = 0x00008517

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT* = 0x00008518

-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT* = 0x00008519

-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT* = 0x0000851A

-  GL_PROXY_TEXTURE_CUBE_MAP_EXT* = 0x0000851B

-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT* = 0x0000851C # GL_EXT_texture_edge_clamp

-  GL_CLAMP_TO_EDGE_EXT* = 0x0000812F # GL_EXT_texture_env_combine

-  GL_COMBINE_EXT* = 0x00008570

-  GL_COMBINE_RGB_EXT* = 0x00008571

-  GL_COMBINE_ALPHA_EXT* = 0x00008572

-  GL_RGB_SCALE_EXT* = 0x00008573

-  GL_ADD_SIGNED_EXT* = 0x00008574

-  GL_INTERPOLATE_EXT* = 0x00008575

-  GL_CONSTANT_EXT* = 0x00008576

-  GL_PRIMARY_COLOR_EXT* = 0x00008577

-  GL_PREVIOUS_EXT* = 0x00008578

-  GL_SOURCE0_RGB_EXT* = 0x00008580

-  GL_SOURCE1_RGB_EXT* = 0x00008581

-  GL_SOURCE2_RGB_EXT* = 0x00008582

-  GL_SOURCE0_ALPHA_EXT* = 0x00008588

-  GL_SOURCE1_ALPHA_EXT* = 0x00008589

-  GL_SOURCE2_ALPHA_EXT* = 0x0000858A

-  GL_OPERAND0_RGB_EXT* = 0x00008590

-  GL_OPERAND1_RGB_EXT* = 0x00008591

-  GL_OPERAND2_RGB_EXT* = 0x00008592

-  GL_OPERAND0_ALPHA_EXT* = 0x00008598

-  GL_OPERAND1_ALPHA_EXT* = 0x00008599

-  GL_OPERAND2_ALPHA_EXT* = 0x0000859A # GL_EXT_texture_env_dot3

-  GL_DOT3_RGB_EXT* = 0x00008740

-  GL_DOT3_RGBA_EXT* = 0x00008741 # GL_EXT_texture_filter_anisotropic

-  GL_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FE

-  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT* = 0x000084FF # GL_EXT_texture_lod_bias

-  GL_MAX_TEXTURE_LOD_BIAS_EXT* = 0x000084FD

-  GL_TEXTURE_FILTER_CONTROL_EXT* = 0x00008500

-  GL_TEXTURE_LOD_BIAS_EXT* = 0x00008501 # GL_EXT_texture_object

-  GL_TEXTURE_PRIORITY_EXT* = 0x00008066

-  GL_TEXTURE_RESIDENT_EXT* = 0x00008067

-  GL_TEXTURE_1D_BINDING_EXT* = 0x00008068

-  GL_TEXTURE_2D_BINDING_EXT* = 0x00008069

-  GL_TEXTURE_3D_BINDING_EXT* = 0x0000806A # GL_EXT_texture_perturb_normal

-  GL_PERTURB_EXT* = 0x000085AE

-  cGL_TEXTURE_NORMAL_EXT* = 0x000085AF # GL_EXT_texture_rectangle

-  GL_TEXTURE_RECTANGLE_EXT* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_EXT* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_EXT* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT* = 0x000084F8 # GL_EXT_vertex_array

-  GL_VERTEX_ARRAY_EXT* = 0x00008074

-  GL_NORMAL_ARRAY_EXT* = 0x00008075

-  GL_COLOR_ARRAY_EXT* = 0x00008076

-  GL_INDEX_ARRAY_EXT* = 0x00008077

-  GL_TEXTURE_COORD_ARRAY_EXT* = 0x00008078

-  GL_EDGE_FLAG_ARRAY_EXT* = 0x00008079

-  GL_VERTEX_ARRAY_SIZE_EXT* = 0x0000807A

-  GL_VERTEX_ARRAYtyp_EXT* = 0x0000807B

-  GL_VERTEX_ARRAY_STRIDE_EXT* = 0x0000807C

-  GL_VERTEX_ARRAY_COUNT_EXT* = 0x0000807D

-  GL_NORMAL_ARRAYtyp_EXT* = 0x0000807E

-  GL_NORMAL_ARRAY_STRIDE_EXT* = 0x0000807F

-  GL_NORMAL_ARRAY_COUNT_EXT* = 0x00008080

-  GL_COLOR_ARRAY_SIZE_EXT* = 0x00008081

-  GL_COLOR_ARRAYtyp_EXT* = 0x00008082

-  GL_COLOR_ARRAY_STRIDE_EXT* = 0x00008083

-  GL_COLOR_ARRAY_COUNT_EXT* = 0x00008084

-  GL_INDEX_ARRAYtyp_EXT* = 0x00008085

-  GL_INDEX_ARRAY_STRIDE_EXT* = 0x00008086

-  GL_INDEX_ARRAY_COUNT_EXT* = 0x00008087

-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT* = 0x00008088

-  GL_TEXTURE_COORD_ARRAYtyp_EXT* = 0x00008089

-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT* = 0x0000808A

-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT* = 0x0000808B

-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT* = 0x0000808C

-  GL_EDGE_FLAG_ARRAY_COUNT_EXT* = 0x0000808D

-  GL_VERTEX_ARRAY_POINTER_EXT* = 0x0000808E

-  GL_NORMAL_ARRAY_POINTER_EXT* = 0x0000808F

-  GL_COLOR_ARRAY_POINTER_EXT* = 0x00008090

-  GL_INDEX_ARRAY_POINTER_EXT* = 0x00008091

-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT* = 0x00008092

-  GL_EDGE_FLAG_ARRAY_POINTER_EXT* = 0x00008093 # GL_EXT_vertex_shader

-  GL_VERTEX_SHADER_EXT* = 0x00008780

-  GL_VERTEX_SHADER_BINDING_EXT* = 0x00008781

-  GL_OP_INDEX_EXT* = 0x00008782

-  GL_OP_NEGATE_EXT* = 0x00008783

-  GL_OP_DOT3_EXT* = 0x00008784

-  GL_OP_DOT4_EXT* = 0x00008785

-  GL_OP_MUL_EXT* = 0x00008786

-  GL_OP_ADD_EXT* = 0x00008787

-  GL_OP_MADD_EXT* = 0x00008788

-  GL_OP_FRAC_EXT* = 0x00008789

-  GL_OP_MAX_EXT* = 0x0000878A

-  GL_OP_MIN_EXT* = 0x0000878B

-  GL_OP_SET_GE_EXT* = 0x0000878C

-  GL_OP_SET_LT_EXT* = 0x0000878D

-  GL_OP_CLAMP_EXT* = 0x0000878E

-  GL_OP_FLOOR_EXT* = 0x0000878F

-  GL_OP_ROUND_EXT* = 0x00008790

-  GL_OP_EXP_BASE_2_EXT* = 0x00008791

-  GL_OP_LOG_BASE_2_EXT* = 0x00008792

-  GL_OP_POWER_EXT* = 0x00008793

-  GL_OP_RECIP_EXT* = 0x00008794

-  GL_OP_RECIP_SQRT_EXT* = 0x00008795

-  GL_OP_SUB_EXT* = 0x00008796

-  GL_OP_CROSS_PRODUCT_EXT* = 0x00008797

-  GL_OP_MULTIPLY_MATRIX_EXT* = 0x00008798

-  GL_OP_MOV_EXT* = 0x00008799

-  GL_OUTPUT_VERTEX_EXT* = 0x0000879A

-  GL_OUTPUT_COLOR0_EXT* = 0x0000879B

-  GL_OUTPUT_COLOR1_EXT* = 0x0000879C

-  GL_OUTPUT_TEXTURE_COORD0_EXT* = 0x0000879D

-  GL_OUTPUT_TEXTURE_COORD1_EXT* = 0x0000879E

-  GL_OUTPUT_TEXTURE_COORD2_EXT* = 0x0000879F

-  GL_OUTPUT_TEXTURE_COORD3_EXT* = 0x000087A0

-  GL_OUTPUT_TEXTURE_COORD4_EXT* = 0x000087A1

-  GL_OUTPUT_TEXTURE_COORD5_EXT* = 0x000087A2

-  GL_OUTPUT_TEXTURE_COORD6_EXT* = 0x000087A3

-  GL_OUTPUT_TEXTURE_COORD7_EXT* = 0x000087A4

-  GL_OUTPUT_TEXTURE_COORD8_EXT* = 0x000087A5

-  GL_OUTPUT_TEXTURE_COORD9_EXT* = 0x000087A6

-  GL_OUTPUT_TEXTURE_COORD10_EXT* = 0x000087A7

-  GL_OUTPUT_TEXTURE_COORD11_EXT* = 0x000087A8

-  GL_OUTPUT_TEXTURE_COORD12_EXT* = 0x000087A9

-  GL_OUTPUT_TEXTURE_COORD13_EXT* = 0x000087AA

-  GL_OUTPUT_TEXTURE_COORD14_EXT* = 0x000087AB

-  GL_OUTPUT_TEXTURE_COORD15_EXT* = 0x000087AC

-  GL_OUTPUT_TEXTURE_COORD16_EXT* = 0x000087AD

-  GL_OUTPUT_TEXTURE_COORD17_EXT* = 0x000087AE

-  GL_OUTPUT_TEXTURE_COORD18_EXT* = 0x000087AF

-  GL_OUTPUT_TEXTURE_COORD19_EXT* = 0x000087B0

-  GL_OUTPUT_TEXTURE_COORD20_EXT* = 0x000087B1

-  GL_OUTPUT_TEXTURE_COORD21_EXT* = 0x000087B2

-  GL_OUTPUT_TEXTURE_COORD22_EXT* = 0x000087B3

-  GL_OUTPUT_TEXTURE_COORD23_EXT* = 0x000087B4

-  GL_OUTPUT_TEXTURE_COORD24_EXT* = 0x000087B5

-  GL_OUTPUT_TEXTURE_COORD25_EXT* = 0x000087B6

-  GL_OUTPUT_TEXTURE_COORD26_EXT* = 0x000087B7

-  GL_OUTPUT_TEXTURE_COORD27_EXT* = 0x000087B8

-  GL_OUTPUT_TEXTURE_COORD28_EXT* = 0x000087B9

-  GL_OUTPUT_TEXTURE_COORD29_EXT* = 0x000087BA

-  GL_OUTPUT_TEXTURE_COORD30_EXT* = 0x000087BB

-  GL_OUTPUT_TEXTURE_COORD31_EXT* = 0x000087BC

-  GL_OUTPUT_FOG_EXT* = 0x000087BD

-  GL_SCALAR_EXT* = 0x000087BE

-  GL_VECTOR_EXT* = 0x000087BF

-  GL_MATRIX_EXT* = 0x000087C0

-  GL_VARIANT_EXT* = 0x000087C1

-  GL_INVARIANT_EXT* = 0x000087C2

-  GL_LOCAL_CONSTANT_EXT* = 0x000087C3

-  GL_LOCAL_EXT* = 0x000087C4

-  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087C5

-  GL_MAX_VERTEX_SHADER_VARIANTS_EXT* = 0x000087C6

-  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087C7

-  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087C8

-  GL_MAX_VERTEX_SHADER_LOCALS_EXT* = 0x000087C9

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CA

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT* = 0x000087CB

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087CC

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087CD

-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT* = 0x000087CE

-  GL_VERTEX_SHADER_INSTRUCTIONS_EXT* = 0x000087CF

-  GL_VERTEX_SHADER_VARIANTS_EXT* = 0x000087D0

-  GL_VERTEX_SHADER_INVARIANTS_EXT* = 0x000087D1

-  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT* = 0x000087D2

-  GL_VERTEX_SHADER_LOCALS_EXT* = 0x000087D3

-  GL_VERTEX_SHADER_OPTIMIZED_EXT* = 0x000087D4

-  GL_X_EXT* = 0x000087D5

-  GL_Y_EXT* = 0x000087D6

-  GL_Z_EXT* = 0x000087D7

-  GL_W_EXT* = 0x000087D8

-  GL_NEGATIVE_X_EXT* = 0x000087D9

-  GL_NEGATIVE_Y_EXT* = 0x000087DA

-  GL_NEGATIVE_Z_EXT* = 0x000087DB

-  GL_NEGATIVE_W_EXT* = 0x000087DC

-  GL_ZERO_EXT* = 0x000087DD

-  GL_ONE_EXT* = 0x000087DE

-  GL_NEGATIVE_ONE_EXT* = 0x000087DF

-  GL_NORMALIZED_RANGE_EXT* = 0x000087E0

-  GL_FULL_RANGE_EXT* = 0x000087E1

-  GL_CURRENT_VERTEX_EXT* = 0x000087E2

-  GL_MVP_MATRIX_EXT* = 0x000087E3

-  GL_VARIANT_VALUE_EXT* = 0x000087E4

-  GL_VARIANT_DATAtypEXT* = 0x000087E5

-  GL_VARIANT_ARRAY_STRIDE_EXT* = 0x000087E6

-  GL_VARIANT_ARRAYtyp_EXT* = 0x000087E7

-  GL_VARIANT_ARRAY_EXT* = 0x000087E8

-  GL_VARIANT_ARRAY_POINTER_EXT* = 0x000087E9

-  GL_INVARIANT_VALUE_EXT* = 0x000087EA

-  GL_INVARIANT_DATAtypEXT* = 0x000087EB

-  GL_LOCAL_CONSTANT_VALUE_EXT* = 0x000087EC

-  GL_LOCAL_CONSTANT_DATAtypEXT* = 0x000087ED # GL_EXT_vertex_weighting

-  GL_MODELVIEW0_STACK_DEPTH_EXT* = 0x00000BA3

-  GL_MODELVIEW1_STACK_DEPTH_EXT* = 0x00008502

-  GL_MODELVIEW0_MATRIX_EXT* = 0x00000BA6

-  GL_MODELVIEW1_MATRIX_EXT* = 0x00008506

-  GL_VERTEX_WEIGHTING_EXT* = 0x00008509

-  GL_MODELVIEW0_EXT* = 0x00001700

-  GL_MODELVIEW1_EXT* = 0x0000850A

-  GL_CURRENT_VERTEX_WEIGHT_EXT* = 0x0000850B

-  GL_VERTEX_WEIGHT_ARRAY_EXT* = 0x0000850C

-  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT* = 0x0000850D

-  GL_VERTEX_WEIGHT_ARRAYtyp_EXT* = 0x0000850E

-  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT* = 0x0000850F

-  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT* = 0x00008510 # GL_EXT_depth_bounds_test

-  GL_DEPTH_BOUNDS_TEST_EXT* = 0x00008890

-  cGL_DEPTH_BOUNDS_EXT* = 0x00008891 # GL_EXT_texture_mirror_clamp

-  GL_MIRROR_CLAMP_EXT* = 0x00008742

-  GL_MIRROR_CLAMP_TO_EDGE_EXT* = 0x00008743

-  GL_MIRROR_CLAMP_TO_BORDER_EXT* = 0x00008912 # GL_EXT_blend_equation_separate

-  GL_BLEND_EQUATION_RGB_EXT* = 0x00008009

-  GL_BLEND_EQUATION_ALPHA_EXT* = 0x0000883D # GL_EXT_pixel_buffer_object

-  GL_PIXEL_PACK_BUFFER_EXT* = 0x000088EB

-  GL_PIXEL_UNPACK_BUFFER_EXT* = 0x000088EC

-  GL_PIXEL_PACK_BUFFER_BINDING_EXT* = 0x000088ED

-  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT* = 0x000088EF # GL_EXT_stencil_clear_tag

-  GL_STENCIL_TAG_BITS_EXT* = 0x000088F2

-  GL_STENCIL_CLEAR_TAG_VALUE_EXT* = 0x000088F3 # GL_EXT_packed_depth_stencil

-  GL_DEPTH_STENCIL_EXT* = 0x000084F9

-  GL_UNSIGNED_INT_24_8_EXT* = 0x000084FA

-  GL_DEPTH24_STENCIL8_EXT* = 0x000088F0

-  GL_TEXTURE_STENCIL_SIZE_EXT* = 0x000088F1 # GL_EXT_texture_sRGB

-  GL_SRGB_EXT* = 0x00008C40

-  GL_SRGB8_EXT* = 0x00008C41

-  GL_SRGB_ALPHA_EXT* = 0x00008C42

-  GL_SRGB8_ALPHA8_EXT* = 0x00008C43

-  GL_SLUMINANCE_ALPHA_EXT* = 0x00008C44

-  GL_SLUMINANCE8_ALPHA8_EXT* = 0x00008C45

-  GL_SLUMINANCE_EXT* = 0x00008C46

-  GL_SLUMINANCE8_EXT* = 0x00008C47

-  GL_COMPRESSED_SRGB_EXT* = 0x00008C48

-  GL_COMPRESSED_SRGB_ALPHA_EXT* = 0x00008C49

-  GL_COMPRESSED_SLUMINANCE_EXT* = 0x00008C4A

-  GL_COMPRESSED_SLUMINANCE_ALPHA_EXT* = 0x00008C4B

-  GL_COMPRESSED_SRGB_S3TC_DXT1_EXT* = 0x00008C4C

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT* = 0x00008C4D

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT* = 0x00008C4E

-  GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT* = 0x00008C4F # GL_EXT_framebuffer_blit

-  GL_READ_FRAMEBUFFER_EXT* = 0x00008CA8

-  GL_DRAW_FRAMEBUFFER_EXT* = 0x00008CA9

-  GL_READ_FRAMEBUFFER_BINDING_EXT* = GL_FRAMEBUFFER_BINDING_EXT

-  GL_DRAW_FRAMEBUFFER_BINDING_EXT* = 0x00008CAA # GL_EXT_framebuffer_multisample

-  GL_RENDERBUFFER_SAMPLES_EXT* = 0x00008CAB

-  GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT* = 0x00008D56

-  GL_MAX_SAMPLES_EXT* = 0x00008D57 # GL_EXT_timer_query

-  GL_TIME_ELAPSED_EXT* = 0x000088BF # GL_EXT_bindable_uniform

-  GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT* = 0x00008DE2

-  GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT* = 0x00008DE3

-  GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT* = 0x00008DE4

-  GL_MAX_BINDABLE_UNIFORM_SIZE_EXT* = 0x00008DED

-  cGL_UNIFORM_BUFFER_EXT* = 0x00008DEE

-  GL_UNIFORM_BUFFER_BINDING_EXT* = 0x00008DEF # GL_EXT_framebuffer_sRGB

-  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x000020B2

-  WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x000020A9

-  GL_FRAMEBUFFER_SRGB_EXT* = 0x00008DB9

-  GL_FRAMEBUFFER_SRGB_CAPABLE_EXT* = 0x00008DBA # GL_EXT_geometry_shader4

-  GL_GEOMETRY_SHADER_EXT* = 0x00008DD9

-  GL_GEOMETRY_VERTICES_OUT_EXT* = 0x00008DDA

-  GL_GEOMETRY_INPUTtyp_EXT* = 0x00008DDB

-  GL_GEOMETRY_OUTPUTtyp_EXT* = 0x00008DDC

-  GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT* = 0x00008C29

-  GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT* = 0x00008DDD

-  GL_MAX_VERTEX_VARYING_COMPONENTS_EXT* = 0x00008DDE

-  GL_MAX_VARYING_COMPONENTS_EXT* = 0x00008B4B

-  GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT* = 0x00008DDF

-  GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT* = 0x00008DE0

-  GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT* = 0x00008DE1

-  GL_LINES_ADJACENCY_EXT* = 0x0000000A

-  GL_LINE_STRIP_ADJACENCY_EXT* = 0x0000000B

-  GL_TRIANGLES_ADJACENCY_EXT* = 0x0000000C

-  GL_TRIANGLE_STRIP_ADJACENCY_EXT* = 0x0000000D

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT* = 0x00008DA8

-  GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT* = 0x00008DA9

-  GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT* = 0x00008DA7

-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT* = 0x00008CD4

-  GL_PROGRAM_POINT_SIZE_EXT* = 0x00008642 # GL_EXT_gpu_shader4

-  GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT* = 0x000088FD

-  GL_SAMPLER_1D_ARRAY_EXT* = 0x00008DC0

-  GL_SAMPLER_2D_ARRAY_EXT* = 0x00008DC1

-  GL_SAMPLER_BUFFER_EXT* = 0x00008DC2

-  GL_SAMPLER_1D_ARRAY_SHADOW_EXT* = 0x00008DC3

-  GL_SAMPLER_2D_ARRAY_SHADOW_EXT* = 0x00008DC4

-  GL_SAMPLER_CUBE_SHADOW_EXT* = 0x00008DC5

-  GL_UNSIGNED_INT_VEC2_EXT* = 0x00008DC6

-  GL_UNSIGNED_INT_VEC3_EXT* = 0x00008DC7

-  GL_UNSIGNED_INT_VEC4_EXT* = 0x00008DC8

-  GL_INT_SAMPLER_1D_EXT* = 0x00008DC9

-  GL_INT_SAMPLER_2D_EXT* = 0x00008DCA

-  GL_INT_SAMPLER_3D_EXT* = 0x00008DCB

-  GL_INT_SAMPLER_CUBE_EXT* = 0x00008DCC

-  GL_INT_SAMPLER_2D_RECT_EXT* = 0x00008DCD

-  GL_INT_SAMPLER_1D_ARRAY_EXT* = 0x00008DCE

-  GL_INT_SAMPLER_2D_ARRAY_EXT* = 0x00008DCF

-  GL_INT_SAMPLER_BUFFER_EXT* = 0x00008DD0

-  GL_UNSIGNED_INT_SAMPLER_1D_EXT* = 0x00008DD1

-  GL_UNSIGNED_INT_SAMPLER_2D_EXT* = 0x00008DD2

-  GL_UNSIGNED_INT_SAMPLER_3D_EXT* = 0x00008DD3

-  GL_UNSIGNED_INT_SAMPLER_CUBE_EXT* = 0x00008DD4

-  GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT* = 0x00008DD5

-  GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT* = 0x00008DD6

-  GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT* = 0x00008DD7

-  GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT* = 0x00008DD8

-  GL_MIN_PROGRAM_TEXEL_OFFSET_EXT* = 0x00008904

-  GL_MAX_PROGRAM_TEXEL_OFFSET_EXT* = 0x00008905 # GL_EXT_packed_float

-  GL_R11F_G11F_B10F_EXT* = 0x00008C3A

-  GL_UNSIGNED_INT_10F_11F_11F_REV_EXT* = 0x00008C3B

-  RGBA_SIGNED_COMPONENTS_EXT* = 0x00008C3C

-  WGLtyp_RGBA_UNSIGNED_FLOAT_EXT* = 0x000020A8

-  GLX_RGBA_UNSIGNED_FLOATtyp_EXT* = 0x000020B1

-  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT* = 0x00000008 # GL_EXT_texture_array

-  GL_TEXTURE_1D_ARRAY_EXT* = 0x00008C18

-  GL_TEXTURE_2D_ARRAY_EXT* = 0x00008C1A

-  GL_PROXY_TEXTURE_2D_ARRAY_EXT* = 0x00008C1B

-  GL_PROXY_TEXTURE_1D_ARRAY_EXT* = 0x00008C19

-  GL_TEXTURE_BINDING_1D_ARRAY_EXT* = 0x00008C1C

-  GL_TEXTURE_BINDING_2D_ARRAY_EXT* = 0x00008C1D

-  GL_MAX_ARRAY_TEXTURE_LAYERS_EXT* = 0x000088FF

-  GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT* = 0x0000884E # GL_EXT_texture_buffer_object

-  cGL_TEXTURE_BUFFER_EXT* = 0x00008C2A

-  GL_MAX_TEXTURE_BUFFER_SIZE_EXT* = 0x00008C2B

-  GL_TEXTURE_BINDING_BUFFER_EXT* = 0x00008C2C

-  GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT* = 0x00008C2D

-  GL_TEXTURE_BUFFER_FORMAT_EXT* = 0x00008C2E # GL_EXT_texture_compression_latc

-  GL_COMPRESSED_LUMINANCE_LATC1_EXT* = 0x00008C70

-  GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT* = 0x00008C71

-  GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT* = 0x00008C72

-  GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT* = 0x00008C73 # 

-                                                               # GL_EXT_texture_compression_rgtc

-  GL_COMPRESSED_RED_RGTC1_EXT* = 0x00008DBB

-  GL_COMPRESSED_SIGNED_RED_RGTC1_EXT* = 0x00008DBC

-  GL_COMPRESSED_RED_GREEN_RGTC2_EXT* = 0x00008DBD

-  GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT* = 0x00008DBE # GL_EXT_texture_integer

-  GL_RGBA_INTEGER_MODE_EXT* = 0x00008D9E

-  GL_RGBA32UI_EXT* = 0x00008D70

-  GL_RGB32UI_EXT* = 0x00008D71

-  GL_ALPHA32UI_EXT* = 0x00008D72

-  GL_INTENSITY32UI_EXT* = 0x00008D73

-  GL_LUMINANCE32UI_EXT* = 0x00008D74

-  GL_LUMINANCE_ALPHA32UI_EXT* = 0x00008D75

-  GL_RGBA16UI_EXT* = 0x00008D76

-  GL_RGB16UI_EXT* = 0x00008D77

-  GL_ALPHA16UI_EXT* = 0x00008D78

-  GL_INTENSITY16UI_EXT* = 0x00008D79

-  GL_LUMINANCE16UI_EXT* = 0x00008D7A

-  GL_LUMINANCE_ALPHA16UI_EXT* = 0x00008D7B

-  GL_RGBA8UI_EXT* = 0x00008D7C

-  GL_RGB8UI_EXT* = 0x00008D7D

-  GL_ALPHA8UI_EXT* = 0x00008D7E

-  GL_INTENSITY8UI_EXT* = 0x00008D7F

-  GL_LUMINANCE8UI_EXT* = 0x00008D80

-  GL_LUMINANCE_ALPHA8UI_EXT* = 0x00008D81

-  GL_RGBA32I_EXT* = 0x00008D82

-  GL_RGB32I_EXT* = 0x00008D83

-  GL_ALPHA32I_EXT* = 0x00008D84

-  GL_INTENSITY32I_EXT* = 0x00008D85

-  GL_LUMINANCE32I_EXT* = 0x00008D86

-  GL_LUMINANCE_ALPHA32I_EXT* = 0x00008D87

-  GL_RGBA16I_EXT* = 0x00008D88

-  GL_RGB16I_EXT* = 0x00008D89

-  GL_ALPHA16I_EXT* = 0x00008D8A

-  GL_INTENSITY16I_EXT* = 0x00008D8B

-  GL_LUMINANCE16I_EXT* = 0x00008D8C

-  GL_LUMINANCE_ALPHA16I_EXT* = 0x00008D8D

-  GL_RGBA8I_EXT* = 0x00008D8E

-  GL_RGB8I_EXT* = 0x00008D8F

-  GL_ALPHA8I_EXT* = 0x00008D90

-  GL_INTENSITY8I_EXT* = 0x00008D91

-  GL_LUMINANCE8I_EXT* = 0x00008D92

-  GL_LUMINANCE_ALPHA8I_EXT* = 0x00008D93

-  GL_RED_INTEGER_EXT* = 0x00008D94

-  GL_GREEN_INTEGER_EXT* = 0x00008D95

-  GL_BLUE_INTEGER_EXT* = 0x00008D96

-  GL_ALPHA_INTEGER_EXT* = 0x00008D97

-  GL_RGB_INTEGER_EXT* = 0x00008D98

-  GL_RGBA_INTEGER_EXT* = 0x00008D99

-  GL_BGR_INTEGER_EXT* = 0x00008D9A

-  GL_BGRA_INTEGER_EXT* = 0x00008D9B

-  GL_LUMINANCE_INTEGER_EXT* = 0x00008D9C

-  GL_LUMINANCE_ALPHA_INTEGER_EXT* = 0x00008D9D # GL_EXT_texture_shared_exponent

-  GL_RGB9_E5_EXT* = 0x00008C3D

-  GL_UNSIGNED_INT_5_9_9_9_REV_EXT* = 0x00008C3E

-  GL_TEXTURE_SHARED_SIZE_EXT* = 0x00008C3F # GL_EXT_transform_feedback

-  GL_TRANSFORM_FEEDBACK_BUFFER_EXT* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT* = 0x00008C85

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT* = 0x00008C8F

-  GL_INTERLEAVED_ATTRIBS_EXT* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS_EXT* = 0x00008C8D

-  GL_PRIMITIVES_GENERATED_EXT* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT* = 0x00008C88

-  GL_RASTERIZER_DISCARD_EXT* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT* = 0x00008C8B

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_VARYINGS_EXT* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT* = 0x00008C7F

-  GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT* = 0x00008C76 # 

-                                                             # GL_EXT_direct_state_access

-  GL_PROGRAM_MATRIX_EXT* = 0x00008E2D

-  GL_TRANSPOSE_PROGRAM_MATRIX_EXT* = 0x00008E2E

-  GL_PROGRAM_MATRIX_STACK_DEPTH_EXT* = 0x00008E2F # GL_EXT_texture_swizzle

-  GL_TEXTURE_SWIZZLE_R_EXT* = 0x00008E42

-  GL_TEXTURE_SWIZZLE_G_EXT* = 0x00008E43

-  GL_TEXTURE_SWIZZLE_B_EXT* = 0x00008E44

-  GL_TEXTURE_SWIZZLE_A_EXT* = 0x00008E45

-  GL_TEXTURE_SWIZZLE_RGBA_EXT* = 0x00008E46 # GL_EXT_provoking_vertex

-  GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT* = 0x00008E4C

-  GL_FIRST_VERTEX_CONVENTION_EXT* = 0x00008E4D

-  GL_LAST_VERTEX_CONVENTION_EXT* = 0x00008E4E

-  GL_PROVOKING_VERTEX_EXT* = 0x00008E4F # GL_EXT_texture_snorm

-  GL_ALPHA_SNORM* = 0x00009010

-  GL_LUMINANCE_SNORM* = 0x00009011

-  GL_LUMINANCE_ALPHA_SNORM* = 0x00009012

-  GL_INTENSITY_SNORM* = 0x00009013

-  GL_ALPHA8_SNORM* = 0x00009014

-  GL_LUMINANCE8_SNORM* = 0x00009015

-  GL_LUMINANCE8_ALPHA8_SNORM* = 0x00009016

-  GL_INTENSITY8_SNORM* = 0x00009017

-  GL_ALPHA16_SNORM* = 0x00009018

-  GL_LUMINANCE16_SNORM* = 0x00009019

-  GL_LUMINANCE16_ALPHA16_SNORM* = 0x0000901A

-  GL_INTENSITY16_SNORM* = 0x0000901B # GL_EXT_separate_shader_objects

-  cGL_ACTIVE_PROGRAM_EXT* = 0x00008B8D # GL_EXT_shader_image_load_store

-  GL_MAX_IMAGE_UNITS_EXT* = 0x00008F38

-  GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT* = 0x00008F39

-  GL_IMAGE_BINDING_NAME_EXT* = 0x00008F3A

-  GL_IMAGE_BINDING_LEVEL_EXT* = 0x00008F3B

-  GL_IMAGE_BINDING_LAYERED_EXT* = 0x00008F3C

-  GL_IMAGE_BINDING_LAYER_EXT* = 0x00008F3D

-  GL_IMAGE_BINDING_ACCESS_EXT* = 0x00008F3E

-  GL_IMAGE_1D_EXT* = 0x0000904C

-  GL_IMAGE_2D_EXT* = 0x0000904D

-  GL_IMAGE_3D_EXT* = 0x0000904E

-  GL_IMAGE_2D_RECT_EXT* = 0x0000904F

-  GL_IMAGE_CUBE_EXT* = 0x00009050

-  GL_IMAGE_BUFFER_EXT* = 0x00009051

-  GL_IMAGE_1D_ARRAY_EXT* = 0x00009052

-  GL_IMAGE_2D_ARRAY_EXT* = 0x00009053

-  GL_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x00009054

-  GL_IMAGE_2D_MULTISAMPLE_EXT* = 0x00009055

-  GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x00009056

-  GL_INT_IMAGE_1D_EXT* = 0x00009057

-  GL_INT_IMAGE_2D_EXT* = 0x00009058

-  GL_INT_IMAGE_3D_EXT* = 0x00009059

-  GL_INT_IMAGE_2D_RECT_EXT* = 0x0000905A

-  GL_INT_IMAGE_CUBE_EXT* = 0x0000905B

-  GL_INT_IMAGE_BUFFER_EXT* = 0x0000905C

-  GL_INT_IMAGE_1D_ARRAY_EXT* = 0x0000905D

-  GL_INT_IMAGE_2D_ARRAY_EXT* = 0x0000905E

-  GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x0000905F

-  GL_INT_IMAGE_2D_MULTISAMPLE_EXT* = 0x00009060

-  GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x00009061

-  GL_UNSIGNED_INT_IMAGE_1D_EXT* = 0x00009062

-  GL_UNSIGNED_INT_IMAGE_2D_EXT* = 0x00009063

-  GL_UNSIGNED_INT_IMAGE_3D_EXT* = 0x00009064

-  GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT* = 0x00009065

-  GL_UNSIGNED_INT_IMAGE_CUBE_EXT* = 0x00009066

-  GL_UNSIGNED_INT_IMAGE_BUFFER_EXT* = 0x00009067

-  GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT* = 0x00009068

-  GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT* = 0x00009069

-  GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT* = 0x0000906A

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT* = 0x0000906B

-  GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT* = 0x0000906C

-  GL_MAX_IMAGE_SAMPLES_EXT* = 0x0000906D

-  GL_IMAGE_BINDING_FORMAT_EXT* = 0x0000906E

-  GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT* = 0x00000001

-  GL_ELEMENT_ARRAY_BARRIER_BIT_EXT* = 0x00000002

-  GL_UNIFORM_BARRIER_BIT_EXT* = 0x00000004

-  GL_TEXTURE_FETCH_BARRIER_BIT_EXT* = 0x00000008

-  GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT* = 0x00000020

-  GL_COMMAND_BARRIER_BIT_EXT* = 0x00000040

-  GL_PIXEL_BUFFER_BARRIER_BIT_EXT* = 0x00000080

-  GL_TEXTURE_UPDATE_BARRIER_BIT_EXT* = 0x00000100

-  GL_BUFFER_UPDATE_BARRIER_BIT_EXT* = 0x00000200

-  GL_FRAMEBUFFER_BARRIER_BIT_EXT* = 0x00000400

-  GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT* = 0x00000800

-  GL_ATOMIC_COUNTER_BARRIER_BIT_EXT* = 0x00001000

-  GL_ALL_BARRIER_BITS_EXT* = 0xFFFFFFFF # GL_EXT_vertex_attrib_64bit

-                                        # reuse GL_DOUBLE 

-  GL_DOUBLE_VEC2_EXT* = 0x00008FFC

-  GL_DOUBLE_VEC3_EXT* = 0x00008FFD

-  GL_DOUBLE_VEC4_EXT* = 0x00008FFE

-  GL_DOUBLE_MAT2_EXT* = 0x00008F46

-  GL_DOUBLE_MAT3_EXT* = 0x00008F47

-  GL_DOUBLE_MAT4_EXT* = 0x00008F48

-  GL_DOUBLE_MAT2x3_EXT* = 0x00008F49

-  GL_DOUBLE_MAT2x4_EXT* = 0x00008F4A

-  GL_DOUBLE_MAT3x2_EXT* = 0x00008F4B

-  GL_DOUBLE_MAT3x4_EXT* = 0x00008F4C

-  GL_DOUBLE_MAT4x2_EXT* = 0x00008F4D

-  GL_DOUBLE_MAT4x3_EXT* = 0x00008F4E # GL_EXT_texture_sRGB_decode

-  GL_TEXTURE_SRGB_DECODE_EXT* = 0x00008A48

-  GL_DECODE_EXT* = 0x00008A49

-  GL_SKIP_DECODE_EXT* = 0x00008A4A # GL_NV_texture_multisample 

-  GL_TEXTURE_COVERAGE_SAMPLES_NV* = 0x00009045

-  GL_TEXTURE_COLOR_SAMPLES_NV* = 0x00009046 # GL_AMD_blend_minmax_factor

-  GL_FACTOR_MIN_AMD* = 0x0000901C

-  GL_FACTOR_MAX_AMD* = 0x0000901D # GL_AMD_sample_positions

-  GL_SUBSAMPLE_DISTANCE_AMD* = 0x0000883F # GL_EXT_x11_sync_object

-  GL_SYNC_X11_FENCE_EXT* = 0x000090E1 # GL_EXT_framebuffer_multisample_blit_scaled

-  GL_SCALED_RESOLVE_FASTEST_EXT* = 0x000090BA

-  GL_SCALED_RESOLVE_NICEST_EXT* = 0x000090BB # GL_FfdMaskSGIX

-  GL_TEXTURE_DEFORMATION_BIT_SGIX* = 0x00000001

-  GL_GEOMETRY_DEFORMATION_BIT_SGIX* = 0x00000002 # GL_HP_convolution_border_modes

-  GL_IGNORE_BORDER_HP* = 0x00008150

-  GL_CONSTANT_BORDER_HP* = 0x00008151

-  GL_REPLICATE_BORDER_HP* = 0x00008153

-  GL_CONVOLUTION_BORDER_COLOR_HP* = 0x00008154 # GL_HP_image_transform

-  GL_IMAGE_SCALE_X_HP* = 0x00008155

-  GL_IMAGE_SCALE_Y_HP* = 0x00008156

-  GL_IMAGE_TRANSLATE_X_HP* = 0x00008157

-  GL_IMAGE_TRANSLATE_Y_HP* = 0x00008158

-  GL_IMAGE_ROTATE_ANGLE_HP* = 0x00008159

-  GL_IMAGE_ROTATE_ORIGIN_X_HP* = 0x0000815A

-  GL_IMAGE_ROTATE_ORIGIN_Y_HP* = 0x0000815B

-  GL_IMAGE_MAG_FILTER_HP* = 0x0000815C

-  GL_IMAGE_MIN_FILTER_HP* = 0x0000815D

-  GL_IMAGE_CUBIC_WEIGHT_HP* = 0x0000815E

-  GL_CUBIC_HP* = 0x0000815F

-  GL_AVERAGE_HP* = 0x00008160

-  GL_IMAGE_TRANSFORM_2D_HP* = 0x00008161

-  GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP* = 0x00008162

-  GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP* = 0x00008163 # 

-                                                             # GL_HP_occlusion_test

-  GL_OCCLUSION_TEST_HP* = 0x00008165

-  GL_OCCLUSION_TEST_RESULT_HP* = 0x00008166 # GL_HP_texture_lighting

-  GL_TEXTURE_LIGHTING_MODE_HP* = 0x00008167

-  GL_TEXTURE_POST_SPECULAR_HP* = 0x00008168

-  GL_TEXTURE_PRE_SPECULAR_HP* = 0x00008169 # GL_IBM_cull_vertex

-  GL_CULL_VERTEX_IBM* = 103050 # GL_IBM_rasterpos_clip

-  GL_RASTER_POSITION_UNCLIPPED_IBM* = 0x00019262 # GL_IBM_texture_mirrored_repeat

-  GL_MIRRORED_REPEAT_IBM* = 0x00008370 # GL_IBM_vertex_array_lists

-  GL_VERTEX_ARRAY_LIST_IBM* = 103070

-  GL_NORMAL_ARRAY_LIST_IBM* = 103071

-  GL_COLOR_ARRAY_LIST_IBM* = 103072

-  GL_INDEX_ARRAY_LIST_IBM* = 103073

-  GL_TEXTURE_COORD_ARRAY_LIST_IBM* = 103074

-  GL_EDGE_FLAG_ARRAY_LIST_IBM* = 103075

-  GL_FOG_COORDINATE_ARRAY_LIST_IBM* = 103076

-  GL_SECONDARY_COLOR_ARRAY_LIST_IBM* = 103077

-  GL_VERTEX_ARRAY_LIST_STRIDE_IBM* = 103080

-  GL_NORMAL_ARRAY_LIST_STRIDE_IBM* = 103081

-  GL_COLOR_ARRAY_LIST_STRIDE_IBM* = 103082

-  GL_INDEX_ARRAY_LIST_STRIDE_IBM* = 103083

-  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM* = 103084

-  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM* = 103085

-  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM* = 103086

-  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM* = 103087 # GL_INGR_color_clamp

-  GL_RED_MIN_CLAMP_INGR* = 0x00008560

-  GL_GREEN_MIN_CLAMP_INGR* = 0x00008561

-  GL_BLUE_MIN_CLAMP_INGR* = 0x00008562

-  GL_ALPHA_MIN_CLAMP_INGR* = 0x00008563

-  GL_RED_MAX_CLAMP_INGR* = 0x00008564

-  GL_GREEN_MAX_CLAMP_INGR* = 0x00008565

-  GL_BLUE_MAX_CLAMP_INGR* = 0x00008566

-  GL_ALPHA_MAX_CLAMP_INGR* = 0x00008567 # GL_INGR_interlace_read

-  GL_INTERLACE_READ_INGR* = 0x00008568 # GL_INTEL_parallel_arrays

-  GL_PARALLEL_ARRAYS_INTEL* = 0x000083F4

-  GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F5

-  GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F6

-  GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F7

-  GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL* = 0x000083F8 # 

-                                                               # GL_NV_copy_depth_to_color

-  GL_DEPTH_STENCIL_TO_RGBA_NV* = 0x0000886E

-  GL_DEPTH_STENCIL_TO_BGRA_NV* = 0x0000886F # GL_NV_depth_clamp

-  GL_DEPTH_CLAMP_NV* = 0x0000864F # GL_NV_evaluators

-  GL_EVAL_2D_NV* = 0x000086C0

-  GL_EVAL_TRIANGULAR_2D_NV* = 0x000086C1

-  GL_MAP_TESSELLATION_NV* = 0x000086C2

-  GL_MAP_ATTRIB_U_ORDER_NV* = 0x000086C3

-  GL_MAP_ATTRIB_V_ORDER_NV* = 0x000086C4

-  GL_EVAL_FRACTIONAL_TESSELLATION_NV* = 0x000086C5

-  GL_EVAL_VERTEX_ATTRIB0_NV* = 0x000086C6

-  GL_EVAL_VERTEX_ATTRIB1_NV* = 0x000086C7

-  GL_EVAL_VERTEX_ATTRIB2_NV* = 0x000086C8

-  GL_EVAL_VERTEX_ATTRIB3_NV* = 0x000086C9

-  GL_EVAL_VERTEX_ATTRIB4_NV* = 0x000086CA

-  GL_EVAL_VERTEX_ATTRIB5_NV* = 0x000086CB

-  GL_EVAL_VERTEX_ATTRIB6_NV* = 0x000086CC

-  GL_EVAL_VERTEX_ATTRIB7_NV* = 0x000086CD

-  GL_EVAL_VERTEX_ATTRIB8_NV* = 0x000086CE

-  GL_EVAL_VERTEX_ATTRIB9_NV* = 0x000086CF

-  GL_EVAL_VERTEX_ATTRIB10_NV* = 0x000086D0

-  GL_EVAL_VERTEX_ATTRIB11_NV* = 0x000086D1

-  GL_EVAL_VERTEX_ATTRIB12_NV* = 0x000086D2

-  GL_EVAL_VERTEX_ATTRIB13_NV* = 0x000086D3

-  GL_EVAL_VERTEX_ATTRIB14_NV* = 0x000086D4

-  GL_EVAL_VERTEX_ATTRIB15_NV* = 0x000086D5

-  GL_MAX_MAP_TESSELLATION_NV* = 0x000086D6

-  GL_MAX_RATIONAL_EVAL_ORDER_NV* = 0x000086D7 # GL_NV_fence

-  GL_ALL_COMPLETED_NV* = 0x000084F2

-  GL_FENCE_STATUS_NV* = 0x000084F3

-  GL_FENCE_CONDITION_NV* = 0x000084F4 # GL_NV_float_buffer

-  GL_FLOAT_R_NV* = 0x00008880

-  GL_FLOAT_RG_NV* = 0x00008881

-  GL_FLOAT_RGB_NV* = 0x00008882

-  GL_FLOAT_RGBA_NV* = 0x00008883

-  GL_FLOAT_R16_NV* = 0x00008884

-  GL_FLOAT_R32_NV* = 0x00008885

-  GL_FLOAT_RG16_NV* = 0x00008886

-  GL_FLOAT_RG32_NV* = 0x00008887

-  GL_FLOAT_RGB16_NV* = 0x00008888

-  GL_FLOAT_RGB32_NV* = 0x00008889

-  GL_FLOAT_RGBA16_NV* = 0x0000888A

-  GL_FLOAT_RGBA32_NV* = 0x0000888B

-  GL_TEXTURE_FLOAT_COMPONENTS_NV* = 0x0000888C

-  GL_FLOAT_CLEAR_COLOR_VALUE_NV* = 0x0000888D

-  GL_FLOAT_RGBA_MODE_NV* = 0x0000888E # GL_NV_fog_distance

-  GL_FOG_DISTANCE_MODE_NV* = 0x0000855A

-  GL_EYE_RADIAL_NV* = 0x0000855B

-  GL_EYE_PLANE_ABSOLUTE_NV* = 0x0000855C # GL_NV_fragment_program

-  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV* = 0x00008868

-  GL_FRAGMENT_PROGRAM_NV* = 0x00008870

-  GL_MAX_TEXTURE_COORDS_NV* = 0x00008871

-  GL_MAX_TEXTURE_IMAGE_UNITS_NV* = 0x00008872

-  GL_FRAGMENT_PROGRAM_BINDING_NV* = 0x00008873

-  GL_PROGRAM_ERROR_STRING_NV* = 0x00008874 # GL_NV_half_float

-  GL_HALF_FLOAT_NV* = 0x0000140B # GL_NV_light_max_exponent

-  GL_MAX_SHININESS_NV* = 0x00008504

-  GL_MAX_SPOT_EXPONENT_NV* = 0x00008505 # GL_NV_multisample_filter_hint

-  GL_MULTISAMPLE_FILTER_HINT_NV* = 0x00008534 # GL_NV_occlusion_query

-  GL_PIXEL_COUNTER_BITS_NV* = 0x00008864

-  GL_CURRENT_OCCLUSION_QUERY_ID_NV* = 0x00008865

-  GL_PIXEL_COUNT_NV* = 0x00008866

-  GL_PIXEL_COUNT_AVAILABLE_NV* = 0x00008867 # GL_NV_packed_depth_stencil

-  GL_DEPTH_STENCIL_NV* = 0x000084F9

-  GL_UNSIGNED_INT_24_8_NV* = 0x000084FA # GL_NV_pixel_data_range

-  GL_WRITE_PIXEL_DATA_RANGE_NV* = 0x00008878

-  GL_READ_PIXEL_DATA_RANGE_NV* = 0x00008879

-  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887A

-  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV* = 0x0000887B

-  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887C

-  GL_READ_PIXEL_DATA_RANGE_POINTER_NV* = 0x0000887D # GL_NV_point_sprite

-  GL_POINT_SPRITE_NV* = 0x00008861

-  GL_COORD_REPLACE_NV* = 0x00008862

-  GL_POINT_SPRITE_R_MODE_NV* = 0x00008863 # GL_NV_primitive_restart

-  cGL_PRIMITIVE_RESTART_NV* = 0x00008558

-  cGL_PRIMITIVE_RESTART_INDEX_NV* = 0x00008559 # GL_NV_register_combiners

-  GL_REGISTER_COMBINERS_NV* = 0x00008522

-  GL_VARIABLE_A_NV* = 0x00008523

-  GL_VARIABLE_B_NV* = 0x00008524

-  GL_VARIABLE_C_NV* = 0x00008525

-  GL_VARIABLE_D_NV* = 0x00008526

-  GL_VARIABLE_E_NV* = 0x00008527

-  GL_VARIABLE_F_NV* = 0x00008528

-  GL_VARIABLE_G_NV* = 0x00008529

-  GL_CONSTANT_COLOR0_NV* = 0x0000852A

-  GL_CONSTANT_COLOR1_NV* = 0x0000852B

-  GL_PRIMARY_COLOR_NV* = 0x0000852C

-  GL_SECONDARY_COLOR_NV* = 0x0000852D

-  GL_SPARE0_NV* = 0x0000852E

-  GL_SPARE1_NV* = 0x0000852F

-  GL_DISCARD_NV* = 0x00008530

-  GL_E_TIMES_F_NV* = 0x00008531

-  GL_SPARE0_PLUS_SECONDARY_COLOR_NV* = 0x00008532

-  GL_UNSIGNED_IDENTITY_NV* = 0x00008536

-  GL_UNSIGNED_INVERT_NV* = 0x00008537

-  GL_EXPAND_NORMAL_NV* = 0x00008538

-  GL_EXPAND_NEGATE_NV* = 0x00008539

-  GL_HALF_BIAS_NORMAL_NV* = 0x0000853A

-  GL_HALF_BIAS_NEGATE_NV* = 0x0000853B

-  GL_SIGNED_IDENTITY_NV* = 0x0000853C

-  GL_SIGNED_NEGATE_NV* = 0x0000853D

-  GL_SCALE_BY_TWO_NV* = 0x0000853E

-  GL_SCALE_BY_FOUR_NV* = 0x0000853F

-  GL_SCALE_BY_ONE_HALF_NV* = 0x00008540

-  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV* = 0x00008541

-  cGL_COMBINER_INPUT_NV* = 0x00008542

-  GL_COMBINER_MAPPING_NV* = 0x00008543

-  GL_COMBINER_COMPONENT_USAGE_NV* = 0x00008544

-  GL_COMBINER_AB_DOT_PRODUCT_NV* = 0x00008545

-  GL_COMBINER_CD_DOT_PRODUCT_NV* = 0x00008546

-  GL_COMBINER_MUX_SUM_NV* = 0x00008547

-  GL_COMBINER_SCALE_NV* = 0x00008548

-  GL_COMBINER_BIAS_NV* = 0x00008549

-  GL_COMBINER_AB_OUTPUT_NV* = 0x0000854A

-  GL_COMBINER_CD_OUTPUT_NV* = 0x0000854B

-  GL_COMBINER_SUM_OUTPUT_NV* = 0x0000854C

-  GL_MAX_GENERAL_COMBINERS_NV* = 0x0000854D

-  GL_NUM_GENERAL_COMBINERS_NV* = 0x0000854E

-  GL_COLOR_SUM_CLAMP_NV* = 0x0000854F

-  GL_COMBINER0_NV* = 0x00008550

-  GL_COMBINER1_NV* = 0x00008551

-  GL_COMBINER2_NV* = 0x00008552

-  GL_COMBINER3_NV* = 0x00008553

-  GL_COMBINER4_NV* = 0x00008554

-  GL_COMBINER5_NV* = 0x00008555

-  GL_COMBINER6_NV* = 0x00008556

-  GL_COMBINER7_NV* = 0x00008557 # GL_NV_register_combiners2

-  GL_PER_STAGE_CONSTANTS_NV* = 0x00008535 # GL_NV_texgen_emboss

-  GL_EMBOSS_LIGHT_NV* = 0x0000855D

-  GL_EMBOSS_CONSTANT_NV* = 0x0000855E

-  GL_EMBOSS_MAP_NV* = 0x0000855F # GL_NV_texgen_reflection

-  GL_NORMAL_MAP_NV* = 0x00008511

-  GL_REFLECTION_MAP_NV* = 0x00008512 # GL_NV_texture_env_combine4

-  GL_COMBINE4_NV* = 0x00008503

-  GL_SOURCE3_RGB_NV* = 0x00008583

-  GL_SOURCE3_ALPHA_NV* = 0x0000858B

-  GL_OPERAND3_RGB_NV* = 0x00008593

-  GL_OPERAND3_ALPHA_NV* = 0x0000859B # GL_NV_texture_expand_normal

-  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV* = 0x0000888F # GL_NV_texture_rectangle

-  GL_TEXTURE_RECTANGLE_NV* = 0x000084F5

-  GL_TEXTURE_BINDING_RECTANGLE_NV* = 0x000084F6

-  GL_PROXY_TEXTURE_RECTANGLE_NV* = 0x000084F7

-  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV* = 0x000084F8 # GL_NV_texture_shader

-  GL_OFFSET_TEXTURE_RECTANGLE_NV* = 0x0000864C

-  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV* = 0x0000864D

-  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV* = 0x0000864E

-  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV* = 0x000086D9

-  GL_UNSIGNED_INT_S8_S8_8_8_NV* = 0x000086DA

-  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV* = 0x000086DB

-  GL_DSDT_MAG_INTENSITY_NV* = 0x000086DC

-  GL_SHADER_CONSISTENT_NV* = 0x000086DD

-  GL_TEXTURE_SHADER_NV* = 0x000086DE

-  GL_SHADER_OPERATION_NV* = 0x000086DF

-  GL_CULL_MODES_NV* = 0x000086E0

-  GL_OFFSET_TEXTURE_MATRIX_NV* = 0x000086E1

-  GL_OFFSET_TEXTURE_SCALE_NV* = 0x000086E2

-  GL_OFFSET_TEXTURE_BIAS_NV* = 0x000086E3

-  GL_OFFSET_TEXTURE_2D_MATRIX_NV* = GL_OFFSET_TEXTURE_MATRIX_NV

-  GL_OFFSET_TEXTURE_2D_SCALE_NV* = GL_OFFSET_TEXTURE_SCALE_NV

-  GL_OFFSET_TEXTURE_2D_BIAS_NV* = GL_OFFSET_TEXTURE_BIAS_NV

-  GL_PREVIOUS_TEXTURE_INPUT_NV* = 0x000086E4

-  GL_CONST_EYE_NV* = 0x000086E5

-  GL_PASS_THROUGH_NV* = 0x000086E6

-  GL_CULL_FRAGMENT_NV* = 0x000086E7

-  GL_OFFSET_TEXTURE_2D_NV* = 0x000086E8

-  GL_DEPENDENT_AR_TEXTURE_2D_NV* = 0x000086E9

-  GL_DEPENDENT_GB_TEXTURE_2D_NV* = 0x000086EA

-  GL_DOT_PRODUCT_NV* = 0x000086EC

-  GL_DOT_PRODUCT_DEPTH_REPLACE_NV* = 0x000086ED

-  GL_DOT_PRODUCT_TEXTURE_2D_NV* = 0x000086EE

-  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV* = 0x000086F0

-  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV* = 0x000086F1

-  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV* = 0x000086F2

-  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV* = 0x000086F3

-  GL_HILO_NV* = 0x000086F4

-  GL_DSDT_NV* = 0x000086F5

-  GL_DSDT_MAG_NV* = 0x000086F6

-  GL_DSDT_MAG_VIB_NV* = 0x000086F7

-  GL_HILO16_NV* = 0x000086F8

-  GL_SIGNED_HILO_NV* = 0x000086F9

-  GL_SIGNED_HILO16_NV* = 0x000086FA

-  GL_SIGNED_RGBA_NV* = 0x000086FB

-  GL_SIGNED_RGBA8_NV* = 0x000086FC

-  GL_SIGNED_RGB_NV* = 0x000086FE

-  GL_SIGNED_RGB8_NV* = 0x000086FF

-  GL_SIGNED_LUMINANCE_NV* = 0x00008701

-  GL_SIGNED_LUMINANCE8_NV* = 0x00008702

-  GL_SIGNED_LUMINANCE_ALPHA_NV* = 0x00008703

-  GL_SIGNED_LUMINANCE8_ALPHA8_NV* = 0x00008704

-  GL_SIGNED_ALPHA_NV* = 0x00008705

-  GL_SIGNED_ALPHA8_NV* = 0x00008706

-  GL_SIGNED_INTENSITY_NV* = 0x00008707

-  GL_SIGNED_INTENSITY8_NV* = 0x00008708

-  GL_DSDT8_NV* = 0x00008709

-  GL_DSDT8_MAG8_NV* = 0x0000870A

-  GL_DSDT8_MAG8_INTENSITY8_NV* = 0x0000870B

-  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV* = 0x0000870C

-  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV* = 0x0000870D

-  GL_HI_SCALE_NV* = 0x0000870E

-  GL_LO_SCALE_NV* = 0x0000870F

-  GL_DS_SCALE_NV* = 0x00008710

-  GL_DT_SCALE_NV* = 0x00008711

-  GL_MAGNITUDE_SCALE_NV* = 0x00008712

-  GL_VIBRANCE_SCALE_NV* = 0x00008713

-  GL_HI_BIAS_NV* = 0x00008714

-  GL_LO_BIAS_NV* = 0x00008715

-  GL_DS_BIAS_NV* = 0x00008716

-  GL_DT_BIAS_NV* = 0x00008717

-  GL_MAGNITUDE_BIAS_NV* = 0x00008718

-  GL_VIBRANCE_BIAS_NV* = 0x00008719

-  GL_TEXTURE_BORDER_VALUES_NV* = 0x0000871A

-  GL_TEXTURE_HI_SIZE_NV* = 0x0000871B

-  GL_TEXTURE_LO_SIZE_NV* = 0x0000871C

-  GL_TEXTURE_DS_SIZE_NV* = 0x0000871D

-  GL_TEXTURE_DT_SIZE_NV* = 0x0000871E

-  GL_TEXTURE_MAG_SIZE_NV* = 0x0000871F # GL_NV_texture_shader2

-  GL_DOT_PRODUCT_TEXTURE_3D_NV* = 0x000086EF # GL_NV_texture_shader3

-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV* = 0x00008850

-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV* = 0x00008851

-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008852

-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV* = 0x00008853

-  GL_OFFSET_HILO_TEXTURE_2D_NV* = 0x00008854

-  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV* = 0x00008855

-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV* = 0x00008856

-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV* = 0x00008857

-  GL_DEPENDENT_HILO_TEXTURE_2D_NV* = 0x00008858

-  GL_DEPENDENT_RGB_TEXTURE_3D_NV* = 0x00008859

-  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV* = 0x0000885A

-  GL_DOT_PRODUCT_PASS_THROUGH_NV* = 0x0000885B

-  GL_DOT_PRODUCT_TEXTURE_1D_NV* = 0x0000885C

-  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV* = 0x0000885D

-  GL_HILO8_NV* = 0x0000885E

-  GL_SIGNED_HILO8_NV* = 0x0000885F

-  GL_FORCE_BLUE_TO_ONE_NV* = 0x00008860 # GL_NV_vertex_array_range

-  cGL_VERTEX_ARRAY_RANGE_NV* = 0x0000851D

-  GL_VERTEX_ARRAY_RANGE_LENGTH_NV* = 0x0000851E

-  GL_VERTEX_ARRAY_RANGE_VALID_NV* = 0x0000851F

-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV* = 0x00008520

-  GL_VERTEX_ARRAY_RANGE_POINTER_NV* = 0x00008521 # GL_NV_vertex_array_range2

-  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV* = 0x00008533 # GL_NV_vertex_program

-  GL_VERTEX_PROGRAM_NV* = 0x00008620

-  GL_VERTEX_STATE_PROGRAM_NV* = 0x00008621

-  GL_ATTRIB_ARRAY_SIZE_NV* = 0x00008623

-  GL_ATTRIB_ARRAY_STRIDE_NV* = 0x00008624

-  GL_ATTRIB_ARRAYtyp_NV* = 0x00008625

-  GL_CURRENT_ATTRIB_NV* = 0x00008626

-  GL_PROGRAM_LENGTH_NV* = 0x00008627

-  GL_PROGRAM_STRING_NV* = 0x00008628

-  GL_MODELVIEW_PROJECTION_NV* = 0x00008629

-  GL_IDENTITY_NV* = 0x0000862A

-  GL_INVERSE_NV* = 0x0000862B

-  GL_TRANSPOSE_NV* = 0x0000862C

-  GL_INVERSE_TRANSPOSE_NV* = 0x0000862D

-  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV* = 0x0000862E

-  GL_MAX_TRACK_MATRICES_NV* = 0x0000862F

-  GL_MATRIX0_NV* = 0x00008630

-  GL_MATRIX1_NV* = 0x00008631

-  GL_MATRIX2_NV* = 0x00008632

-  GL_MATRIX3_NV* = 0x00008633

-  GL_MATRIX4_NV* = 0x00008634

-  GL_MATRIX5_NV* = 0x00008635

-  GL_MATRIX6_NV* = 0x00008636

-  GL_MATRIX7_NV* = 0x00008637

-  GL_CURRENT_MATRIX_STACK_DEPTH_NV* = 0x00008640

-  GL_CURRENT_MATRIX_NV* = 0x00008641

-  GL_VERTEX_PROGRAM_POINT_SIZE_NV* = 0x00008642

-  GL_VERTEX_PROGRAM_TWO_SIDE_NV* = 0x00008643

-  GL_PROGRAM_PARAMETER_NV* = 0x00008644

-  GL_ATTRIB_ARRAY_POINTER_NV* = 0x00008645

-  GL_PROGRAM_TARGET_NV* = 0x00008646

-  GL_PROGRAM_RESIDENT_NV* = 0x00008647

-  cGL_TRACK_MATRIX_NV* = 0x00008648

-  GL_TRACK_MATRIX_TRANSFORM_NV* = 0x00008649

-  GL_VERTEX_PROGRAM_BINDING_NV* = 0x0000864A

-  GL_PROGRAM_ERROR_POSITION_NV* = 0x0000864B

-  GL_VERTEX_ATTRIB_ARRAY0_NV* = 0x00008650

-  GL_VERTEX_ATTRIB_ARRAY1_NV* = 0x00008651

-  GL_VERTEX_ATTRIB_ARRAY2_NV* = 0x00008652

-  GL_VERTEX_ATTRIB_ARRAY3_NV* = 0x00008653

-  GL_VERTEX_ATTRIB_ARRAY4_NV* = 0x00008654

-  GL_VERTEX_ATTRIB_ARRAY5_NV* = 0x00008655

-  GL_VERTEX_ATTRIB_ARRAY6_NV* = 0x00008656

-  GL_VERTEX_ATTRIB_ARRAY7_NV* = 0x00008657

-  GL_VERTEX_ATTRIB_ARRAY8_NV* = 0x00008658

-  GL_VERTEX_ATTRIB_ARRAY9_NV* = 0x00008659

-  GL_VERTEX_ATTRIB_ARRAY10_NV* = 0x0000865A

-  GL_VERTEX_ATTRIB_ARRAY11_NV* = 0x0000865B

-  GL_VERTEX_ATTRIB_ARRAY12_NV* = 0x0000865C

-  GL_VERTEX_ATTRIB_ARRAY13_NV* = 0x0000865D

-  GL_VERTEX_ATTRIB_ARRAY14_NV* = 0x0000865E

-  GL_VERTEX_ATTRIB_ARRAY15_NV* = 0x0000865F

-  GL_MAP1_VERTEX_ATTRIB0_4_NV* = 0x00008660

-  GL_MAP1_VERTEX_ATTRIB1_4_NV* = 0x00008661

-  GL_MAP1_VERTEX_ATTRIB2_4_NV* = 0x00008662

-  GL_MAP1_VERTEX_ATTRIB3_4_NV* = 0x00008663

-  GL_MAP1_VERTEX_ATTRIB4_4_NV* = 0x00008664

-  GL_MAP1_VERTEX_ATTRIB5_4_NV* = 0x00008665

-  GL_MAP1_VERTEX_ATTRIB6_4_NV* = 0x00008666

-  GL_MAP1_VERTEX_ATTRIB7_4_NV* = 0x00008667

-  GL_MAP1_VERTEX_ATTRIB8_4_NV* = 0x00008668

-  GL_MAP1_VERTEX_ATTRIB9_4_NV* = 0x00008669

-  GL_MAP1_VERTEX_ATTRIB10_4_NV* = 0x0000866A

-  GL_MAP1_VERTEX_ATTRIB11_4_NV* = 0x0000866B

-  GL_MAP1_VERTEX_ATTRIB12_4_NV* = 0x0000866C

-  GL_MAP1_VERTEX_ATTRIB13_4_NV* = 0x0000866D

-  GL_MAP1_VERTEX_ATTRIB14_4_NV* = 0x0000866E

-  GL_MAP1_VERTEX_ATTRIB15_4_NV* = 0x0000866F

-  GL_MAP2_VERTEX_ATTRIB0_4_NV* = 0x00008670

-  GL_MAP2_VERTEX_ATTRIB1_4_NV* = 0x00008671

-  GL_MAP2_VERTEX_ATTRIB2_4_NV* = 0x00008672

-  GL_MAP2_VERTEX_ATTRIB3_4_NV* = 0x00008673

-  GL_MAP2_VERTEX_ATTRIB4_4_NV* = 0x00008674

-  GL_MAP2_VERTEX_ATTRIB5_4_NV* = 0x00008675

-  GL_MAP2_VERTEX_ATTRIB6_4_NV* = 0x00008676

-  GL_MAP2_VERTEX_ATTRIB7_4_NV* = 0x00008677

-  GL_MAP2_VERTEX_ATTRIB8_4_NV* = 0x00008678

-  GL_MAP2_VERTEX_ATTRIB9_4_NV* = 0x00008679

-  GL_MAP2_VERTEX_ATTRIB10_4_NV* = 0x0000867A

-  GL_MAP2_VERTEX_ATTRIB11_4_NV* = 0x0000867B

-  GL_MAP2_VERTEX_ATTRIB12_4_NV* = 0x0000867C

-  GL_MAP2_VERTEX_ATTRIB13_4_NV* = 0x0000867D

-  GL_MAP2_VERTEX_ATTRIB14_4_NV* = 0x0000867E

-  GL_MAP2_VERTEX_ATTRIB15_4_NV* = 0x0000867F # GL_NV_fragment_program2 and GL_NV_vertex_program2_option

-  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV* = 0x000088F4

-  GL_MAX_PROGRAM_CALL_DEPTH_NV* = 0x000088F5 # GL_NV_fragment_program2

-  GL_MAX_PROGRAM_IF_DEPTH_NV* = 0x000088F6

-  GL_MAX_PROGRAM_LOOP_DEPTH_NV* = 0x000088F7

-  GL_MAX_PROGRAM_LOOP_COUNT_NV* = 0x000088F8 # GL_NV_vertex_program3

-  MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C # GL_NV_depth_buffer_float

-  GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV* = 0x00008DAD

-  GL_DEPTH_BUFFER_FLOAT_MODE_NV* = 0x00008DAF # 

-                                              # GL_NV_framebuffer_multisample_coverage

-  GL_RENDERBUFFER_COVERAGE_SAMPLES_NV* = 0x00008CAB

-  GL_RENDERBUFFER_COLOR_SAMPLES_NV* = 0x00008E10 # GL_NV_geometry_program4

-  GL_GEOMETRY_PROGRAM_NV* = 0x00008C26

-  GL_MAX_PROGRAM_OUTPUT_VERTICES_NV* = 0x00008C27

-  GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV* = 0x00008C28 # GL_NV_gpu_program4

-  GL_PROGRAM_ATTRIB_COMPONENTS_NV* = 0x00008906

-  GL_PROGRAM_RESULT_COMPONENTS_NV* = 0x00008907

-  GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV* = 0x00008908

-  GL_MAX_PROGRAM_RESULT_COMPONENTS_NV* = 0x00008909

-  GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV* = 0x00008DA5

-  GL_MAX_PROGRAM_GENERIC_RESULTS_NV* = 0x00008DA6 # GL_NV_parameter_buffer_object

-  GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV* = 0x00008DA0

-  GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV* = 0x00008DA1

-  GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA2

-  GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA3

-  GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008DA4 # GL_NV_transform_feedback

-  GL_TRANSFORM_FEEDBACK_BUFFER_NV* = 0x00008C8E

-  GL_TRANSFORM_FEEDBACK_BUFFER_START_NV* = 0x00008C84

-  GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV* = 0x00008C85

-  GL_TRANSFORM_FEEDBACK_RECORD_NV* = 0x00008C86

-  GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV* = 0x00008C8F

-  GL_INTERLEAVED_ATTRIBS_NV* = 0x00008C8C

-  GL_SEPARATE_ATTRIBS_NV* = 0x00008C8D

-  GL_PRIMITIVES_GENERATED_NV* = 0x00008C87

-  GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV* = 0x00008C88

-  GL_RASTERIZER_DISCARD_NV* = 0x00008C89

-  GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV* = 0x00008C8A

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV* = 0x00008C8B

-  GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV* = 0x00008C80

-  cGL_TRANSFORM_FEEDBACK_ATTRIBS_NV* = 0x00008C7E

-  GL_ACTIVE_VARYINGS_NV* = 0x00008C81

-  GL_ACTIVE_VARYING_MAX_LENGTH_NV* = 0x00008C82

-  cGL_TRANSFORM_FEEDBACK_VARYINGS_NV* = 0x00008C83

-  GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV* = 0x00008C7F

-  GL_BACK_PRIMARY_COLOR_NV* = 0x00008C77

-  GL_BACK_SECONDARY_COLOR_NV* = 0x00008C78

-  GL_TEXTURE_COORD_NV* = 0x00008C79

-  GL_CLIP_DISTANCE_NV* = 0x00008C7A

-  GL_VERTEX_ID_NV* = 0x00008C7B

-  GL_PRIMITIVE_ID_NV* = 0x00008C7C

-  GL_GENERIC_ATTRIB_NV* = 0x00008C7D

-  GL_LAYER_NV* = 0x00008DAA

-  GL_NEXT_BUFFER_NV* = - 2

-  GL_SKIP_COMPONENTS4_NV* = - 3

-  GL_SKIP_COMPONENTS3_NV* = - 4

-  GL_SKIP_COMPONENTS2_NV* = - 5

-  GL_SKIP_COMPONENTS1_NV* = - 6 # GL_NV_conditional_render

-  GL_QUERY_WAIT_NV* = 0x00008E13

-  GL_QUERY_NO_WAIT_NV* = 0x00008E14

-  GL_QUERY_BY_REGION_WAIT_NV* = 0x00008E15

-  GL_QUERY_BY_REGION_NO_WAIT_NV* = 0x00008E16 # GL_NV_present_video

-  GL_FRAME_NV* = 0x00008E26

-  GL_FIELDS_NV* = 0x00008E27

-  GL_CURRENT_TIME_NV* = 0x00008E28

-  GL_NUM_FILL_STREAMS_NV* = 0x00008E29

-  GL_PRESENT_TIME_NV* = 0x00008E2A

-  GL_PRESENT_DURATION_NV* = 0x00008E2B # GL_NV_explicit_multisample

-  GL_SAMPLE_POSITION_NV* = 0x00008E50

-  GL_SAMPLE_MASK_NV* = 0x00008E51

-  GL_SAMPLE_MASK_VALUE_NV* = 0x00008E52

-  GL_TEXTURE_BINDING_RENDERBUFFER_NV* = 0x00008E53

-  GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV* = 0x00008E54

-  GL_TEXTURE_RENDERBUFFER_NV* = 0x00008E55

-  GL_SAMPLER_RENDERBUFFER_NV* = 0x00008E56

-  GL_INT_SAMPLER_RENDERBUFFER_NV* = 0x00008E57

-  GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV* = 0x00008E58

-  GL_MAX_SAMPLE_MASK_WORDS_NV* = 0x00008E59 # GL_NV_transform_feedback2

-  GL_TRANSFORM_FEEDBACK_NV* = 0x00008E22

-  GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV* = 0x00008E23

-  GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV* = 0x00008E24

-  GL_TRANSFORM_FEEDBACK_BINDING_NV* = 0x00008E25 # GL_NV_video_capture

-  GL_VIDEO_BUFFER_NV* = 0x00009020

-  GL_VIDEO_BUFFER_BINDING_NV* = 0x00009021

-  GL_FIELD_UPPER_NV* = 0x00009022

-  GL_FIELD_LOWER_NV* = 0x00009023

-  GL_NUM_VIDEO_CAPTURE_STREAMS_NV* = 0x00009024

-  GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV* = 0x00009025

-  GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV* = 0x00009026

-  GL_LAST_VIDEO_CAPTURE_STATUS_NV* = 0x00009027

-  GL_VIDEO_BUFFER_PITCH_NV* = 0x00009028

-  GL_VIDEO_COLOR_CONVERSION_MATRIX_NV* = 0x00009029

-  GL_VIDEO_COLOR_CONVERSION_MAX_NV* = 0x0000902A

-  GL_VIDEO_COLOR_CONVERSION_MIN_NV* = 0x0000902B

-  GL_VIDEO_COLOR_CONVERSION_OFFSET_NV* = 0x0000902C

-  GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV* = 0x0000902D

-  GL_PARTIAL_SUCCESS_NV* = 0x0000902E

-  GL_SUCCESS_NV* = 0x0000902F

-  GL_FAILURE_NV* = 0x00009030

-  GL_YCBYCR8_422_NV* = 0x00009031

-  GL_YCBAYCR8A_4224_NV* = 0x00009032

-  GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV* = 0x00009033

-  GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV* = 0x00009034

-  GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV* = 0x00009035

-  GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV* = 0x00009036

-  GL_Z4Y12Z4CB12Z4CR12_444_NV* = 0x00009037

-  GL_VIDEO_CAPTURE_FRAME_WIDTH_NV* = 0x00009038

-  GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV* = 0x00009039

-  GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV* = 0x0000903A

-  GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV* = 0x0000903B

-  GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV* = 0x0000903C # GL_NV_shader_buffer_load

-  GL_BUFFER_GPU_ADDRESS_NV* = 0x00008F1D

-  GL_GPU_ADDRESS_NV* = 0x00008F34

-  GL_MAX_SHADER_BUFFER_ADDRESS_NV* = 0x00008F35 # 

-                                                # GL_NV_vertex_buffer_unified_memory

-  GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV* = 0x00008F1E

-  GL_ELEMENT_ARRAY_UNIFIED_NV* = 0x00008F1F

-  GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV* = 0x00008F20

-  GL_VERTEX_ARRAY_ADDRESS_NV* = 0x00008F21

-  GL_NORMAL_ARRAY_ADDRESS_NV* = 0x00008F22

-  GL_COLOR_ARRAY_ADDRESS_NV* = 0x00008F23

-  GL_INDEX_ARRAY_ADDRESS_NV* = 0x00008F24

-  GL_TEXTURE_COORD_ARRAY_ADDRESS_NV* = 0x00008F25

-  GL_EDGE_FLAG_ARRAY_ADDRESS_NV* = 0x00008F26

-  GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV* = 0x00008F27

-  GL_FOG_COORD_ARRAY_ADDRESS_NV* = 0x00008F28

-  GL_ELEMENT_ARRAY_ADDRESS_NV* = 0x00008F29

-  GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV* = 0x00008F2A

-  GL_VERTEX_ARRAY_LENGTH_NV* = 0x00008F2B

-  GL_NORMAL_ARRAY_LENGTH_NV* = 0x00008F2C

-  GL_COLOR_ARRAY_LENGTH_NV* = 0x00008F2D

-  GL_INDEX_ARRAY_LENGTH_NV* = 0x00008F2E

-  GL_TEXTURE_COORD_ARRAY_LENGTH_NV* = 0x00008F2F

-  GL_EDGE_FLAG_ARRAY_LENGTH_NV* = 0x00008F30

-  GL_SECONDARY_COLOR_ARRAY_LENGTH_NV* = 0x00008F31

-  GL_FOG_COORD_ARRAY_LENGTH_NV* = 0x00008F32

-  GL_ELEMENT_ARRAY_LENGTH_NV* = 0x00008F33

-  GL_DRAW_INDIRECT_UNIFIED_NV* = 0x00008F40

-  GL_DRAW_INDIRECT_ADDRESS_NV* = 0x00008F41

-  GL_DRAW_INDIRECT_LENGTH_NV* = 0x00008F42 # GL_NV_gpu_program5

-  GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV* = 0x00008E5A

-  GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV* = 0x00008E5B

-  GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV* = 0x00008E5C

-  GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV* = 0x00008E5D

-  GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV* = 0x00008E5E

-  GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV* = 0x00008E5F

-  GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV* = 0x00008F44

-  GL_MAX_PROGRAM_SUBROUTINE_NUM_NV* = 0x00008F45 # GL_NV_gpu_shader5

-  GL_INT64_NV* = 0x0000140E

-  GL_UNSIGNED_INT64_NV* = 0x0000140F

-  GL_INT8_NV* = 0x00008FE0

-  GL_INT8_VEC2_NV* = 0x00008FE1

-  GL_INT8_VEC3_NV* = 0x00008FE2

-  GL_INT8_VEC4_NV* = 0x00008FE3

-  GL_INT16_NV* = 0x00008FE4

-  GL_INT16_VEC2_NV* = 0x00008FE5

-  GL_INT16_VEC3_NV* = 0x00008FE6

-  GL_INT16_VEC4_NV* = 0x00008FE7

-  GL_INT64_VEC2_NV* = 0x00008FE9

-  GL_INT64_VEC3_NV* = 0x00008FEA

-  GL_INT64_VEC4_NV* = 0x00008FEB

-  GL_UNSIGNED_INT8_NV* = 0x00008FEC

-  GL_UNSIGNED_INT8_VEC2_NV* = 0x00008FED

-  GL_UNSIGNED_INT8_VEC3_NV* = 0x00008FEE

-  GL_UNSIGNED_INT8_VEC4_NV* = 0x00008FEF

-  GL_UNSIGNED_INT16_NV* = 0x00008FF0

-  GL_UNSIGNED_INT16_VEC2_NV* = 0x00008FF1

-  GL_UNSIGNED_INT16_VEC3_NV* = 0x00008FF2

-  GL_UNSIGNED_INT16_VEC4_NV* = 0x00008FF3

-  GL_UNSIGNED_INT64_VEC2_NV* = 0x00008FF5

-  GL_UNSIGNED_INT64_VEC3_NV* = 0x00008FF6

-  GL_UNSIGNED_INT64_VEC4_NV* = 0x00008FF7

-  GL_FLOAT16_NV* = 0x00008FF8

-  GL_FLOAT16_VEC2_NV* = 0x00008FF9

-  GL_FLOAT16_VEC3_NV* = 0x00008FFA

-  GL_FLOAT16_VEC4_NV* = 0x00008FFB # reuse GL_PATCHES 

-                                   # GL_NV_shader_buffer_store

-  GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV* = 0x00000010 # reuse GL_READ_WRITE 

-                                                       # reuse GL_WRITE_ONLY 

-                                                       # 

-                                                       # GL_NV_tessellation_program5

-  GL_MAX_PROGRAM_PATCH_ATTRIBS_NV* = 0x000086D8

-  GL_TESS_CONTROL_PROGRAM_NV* = 0x0000891E

-  GL_TESS_EVALUATION_PROGRAM_NV* = 0x0000891F

-  GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008C74

-  GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV* = 0x00008C75 # 

-                                                               # GL_NV_vertex_attrib_integer_64bit

-                                                               # reuse GL_INT64_NV 

-                                                               # reuse 

-                                                               # GL_UNSIGNED_INT64_NV 

-                                                               # 

-                                                               # GL_NV_multisample_coverage

-  GL_COVERAGE_SAMPLES_NV* = 0x000080A9

-  GL_COLOR_SAMPLES_NV* = 0x00008E20 # GL_NV_vdpau_interop

-  GL_SURFACE_STATE_NV* = 0x000086EB

-  GL_SURFACE_REGISTERED_NV* = 0x000086FD

-  GL_SURFACE_MAPPED_NV* = 0x00008700

-  GL_WRITE_DISCARD_NV* = 0x000088BE # GL_OML_interlace

-  GL_INTERLACE_OML* = 0x00008980

-  GL_INTERLACE_READ_OML* = 0x00008981 # GL_OML_resample

-  GL_PACK_RESAMPLE_OML* = 0x00008984

-  GL_UNPACK_RESAMPLE_OML* = 0x00008985

-  GL_RESAMPLE_REPLICATE_OML* = 0x00008986

-  GL_RESAMPLE_ZERO_FILL_OML* = 0x00008987

-  GL_RESAMPLE_AVERAGE_OML* = 0x00008988

-  GL_RESAMPLE_DECIMATE_OML* = 0x00008989 # GL_OML_subsample

-  GL_FORMAT_SUBSAMPLE_24_24_OML* = 0x00008982

-  GL_FORMAT_SUBSAMPLE_244_244_OML* = 0x00008983 # GL_PGI_misc_hints

-  GL_PREFER_DOUBLEBUFFER_HINT_PGI* = 0x0001A1F8

-  GL_CONSERVE_MEMORY_HINT_PGI* = 0x0001A1FD

-  GL_RECLAIM_MEMORY_HINT_PGI* = 0x0001A1FE

-  GL_NATIVE_GRAPHICS_HANDLE_PGI* = 0x0001A202

-  GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI* = 0x0001A203

-  GL_NATIVE_GRAPHICS_END_HINT_PGI* = 0x0001A204

-  GL_ALWAYS_FAST_HINT_PGI* = 0x0001A20C

-  GL_ALWAYS_SOFT_HINT_PGI* = 0x0001A20D

-  GL_ALLOW_DRAW_OBJ_HINT_PGI* = 0x0001A20E

-  GL_ALLOW_DRAW_WIN_HINT_PGI* = 0x0001A20F

-  GL_ALLOW_DRAW_FRG_HINT_PGI* = 0x0001A210

-  GL_ALLOW_DRAW_MEM_HINT_PGI* = 0x0001A211

-  GL_STRICT_DEPTHFUNC_HINT_PGI* = 0x0001A216

-  GL_STRICT_LIGHTING_HINT_PGI* = 0x0001A217

-  GL_STRICT_SCISSOR_HINT_PGI* = 0x0001A218

-  GL_FULL_STIPPLE_HINT_PGI* = 0x0001A219

-  GL_CLIP_NEAR_HINT_PGI* = 0x0001A220

-  GL_CLIP_FAR_HINT_PGI* = 0x0001A221

-  GL_WIDE_LINE_HINT_PGI* = 0x0001A222

-  GL_BACK_NORMALS_HINT_PGI* = 0x0001A223 # GL_PGI_vertex_hints

-  GL_VERTEX_DATA_HINT_PGI* = 0x0001A22A

-  GL_VERTEX_CONSISTENT_HINT_PGI* = 0x0001A22B

-  GL_MATERIAL_SIDE_HINT_PGI* = 0x0001A22C

-  GL_MAX_VERTEX_HINT_PGI* = 0x0001A22D

-  GL_COLOR3_BIT_PGI* = 0x00010000

-  GL_COLOR4_BIT_PGI* = 0x00020000

-  GL_EDGEFLAG_BIT_PGI* = 0x00040000

-  GL_INDEX_BIT_PGI* = 0x00080000

-  GL_MAT_AMBIENT_BIT_PGI* = 0x00100000

-  GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI* = 0x00200000

-  GL_MAT_DIFFUSE_BIT_PGI* = 0x00400000

-  GL_MAT_EMISSION_BIT_PGI* = 0x00800000

-  GL_MAT_COLOR_INDEXES_BIT_PGI* = 0x01000000

-  GL_MAT_SHININESS_BIT_PGI* = 0x02000000

-  GL_MAT_SPECULAR_BIT_PGI* = 0x04000000

-  GL_NORMAL_BIT_PGI* = 0x08000000

-  GL_TEXCOORD1_BIT_PGI* = 0x10000000

-  GL_TEXCOORD2_BIT_PGI* = 0x20000000

-  GL_TEXCOORD3_BIT_PGI* = 0x40000000

-  GL_TEXCOORD4_BIT_PGI* = 0x80000000

-  GL_VERTEX23_BIT_PGI* = 0x00000004

-  GL_VERTEX4_BIT_PGI* = 0x00000008 # GL_REND_screen_coordinates

-  GL_SCREEN_COORDINATES_REND* = 0x00008490

-  GL_INVERTED_SCREEN_W_REND* = 0x00008491 # GL_S3_s3tc

-  GL_RGB_S3TC* = 0x000083A0

-  GL_RGB4_S3TC* = 0x000083A1

-  GL_RGBA_S3TC* = 0x000083A2

-  GL_RGBA4_S3TC* = 0x000083A3 # GL_SGIS_detail_texture

-  GL_DETAIL_TEXTURE_2D_SGIS* = 0x00008095

-  GL_DETAIL_TEXTURE_2D_BINDING_SGIS* = 0x00008096

-  GL_LINEAR_DETAIL_SGIS* = 0x00008097

-  GL_LINEAR_DETAIL_ALPHA_SGIS* = 0x00008098

-  GL_LINEAR_DETAIL_COLOR_SGIS* = 0x00008099

-  GL_DETAIL_TEXTURE_LEVEL_SGIS* = 0x0000809A

-  GL_DETAIL_TEXTURE_MODE_SGIS* = 0x0000809B

-  GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS* = 0x0000809C # GL_SGIS_fog_function

-  cGL_FOG_FUNC_SGIS* = 0x0000812A

-  GL_FOG_FUNC_POINTS_SGIS* = 0x0000812B

-  GL_MAX_FOG_FUNC_POINTS_SGIS* = 0x0000812C # GL_SGIS_generate_mipmap

-  GL_GENERATE_MIPMAP_SGIS* = 0x00008191

-  GL_GENERATE_MIPMAP_HINT_SGIS* = 0x00008192 # GL_SGIS_multisample

-  GL_MULTISAMPLE_SGIS* = 0x0000809D

-  GL_SAMPLE_ALPHA_TO_MASK_SGIS* = 0x0000809E

-  GL_SAMPLE_ALPHA_TO_ONE_SGIS* = 0x0000809F

-  cGL_SAMPLE_MASK_SGIS* = 0x000080A0

-  GL_1PASS_SGIS* = 0x000080A1

-  GL_2PASS_0_SGIS* = 0x000080A2

-  GL_2PASS_1_SGIS* = 0x000080A3

-  GL_4PASS_0_SGIS* = 0x000080A4

-  GL_4PASS_1_SGIS* = 0x000080A5

-  GL_4PASS_2_SGIS* = 0x000080A6

-  GL_4PASS_3_SGIS* = 0x000080A7

-  GL_SAMPLE_BUFFERS_SGIS* = 0x000080A8

-  GL_SAMPLES_SGIS* = 0x000080A9

-  GL_SAMPLE_MASK_VALUE_SGIS* = 0x000080AA

-  GL_SAMPLE_MASK_INVERT_SGIS* = 0x000080AB

-  cGL_SAMPLE_PATTERN_SGIS* = 0x000080AC # GL_SGIS_pixel_texture

-  GL_PIXEL_TEXTURE_SGIS* = 0x00008353

-  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS* = 0x00008354

-  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS* = 0x00008355

-  GL_PIXEL_GROUP_COLOR_SGIS* = 0x00008356 # GL_SGIS_point_line_texgen

-  GL_EYE_DISTANCE_TO_POINT_SGIS* = 0x000081F0

-  GL_OBJECT_DISTANCE_TO_POINT_SGIS* = 0x000081F1

-  GL_EYE_DISTANCE_TO_LINE_SGIS* = 0x000081F2

-  GL_OBJECT_DISTANCE_TO_LINE_SGIS* = 0x000081F3

-  GL_EYE_POINT_SGIS* = 0x000081F4

-  GL_OBJECT_POINT_SGIS* = 0x000081F5

-  GL_EYE_LINE_SGIS* = 0x000081F6

-  GL_OBJECT_LINE_SGIS* = 0x000081F7 # GL_SGIS_point_parameters

-  GL_POINT_SIZE_MIN_SGIS* = 0x00008126

-  GL_POINT_SIZE_MAX_SGIS* = 0x00008127

-  GL_POINT_FADE_THRESHOLD_SIZE_SGIS* = 0x00008128

-  GL_DISTANCE_ATTENUATION_SGIS* = 0x00008129 # GL_SGIS_sharpen_texture

-  GL_LINEAR_SHARPEN_SGIS* = 0x000080AD

-  GL_LINEAR_SHARPEN_ALPHA_SGIS* = 0x000080AE

-  GL_LINEAR_SHARPEN_COLOR_SGIS* = 0x000080AF

-  GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS* = 0x000080B0 # GL_SGIS_texture4D

-  GL_PACK_SKIP_VOLUMES_SGIS* = 0x00008130

-  GL_PACK_IMAGE_DEPTH_SGIS* = 0x00008131

-  GL_UNPACK_SKIP_VOLUMES_SGIS* = 0x00008132

-  GL_UNPACK_IMAGE_DEPTH_SGIS* = 0x00008133

-  GL_TEXTURE_4D_SGIS* = 0x00008134

-  GL_PROXY_TEXTURE_4D_SGIS* = 0x00008135

-  GL_TEXTURE_4DSIZE_SGIS* = 0x00008136

-  GL_TEXTURE_WRAP_Q_SGIS* = 0x00008137

-  GL_MAX_4D_TEXTURE_SIZE_SGIS* = 0x00008138

-  GL_TEXTURE_4D_BINDING_SGIS* = 0x0000814F # GL_SGIS_texture_color_mask

-  GL_TEXTURE_COLOR_WRITEMASK_SGIS* = 0x000081EF # GL_SGIS_texture_edge_clamp

-  GL_CLAMP_TO_EDGE_SGIS* = 0x0000812F # GL_SGIS_texture_filter4

-  GL_FILTER4_SGIS* = 0x00008146

-  GL_TEXTURE_FILTER4_SIZE_SGIS* = 0x00008147 # GL_SGIS_texture_lod

-  GL_TEXTURE_MIN_LOD_SGIS* = 0x0000813A

-  GL_TEXTURE_MAX_LOD_SGIS* = 0x0000813B

-  GL_TEXTURE_BASE_LEVEL_SGIS* = 0x0000813C

-  GL_TEXTURE_MAX_LEVEL_SGIS* = 0x0000813D # GL_SGIS_texture_select

-  GL_DUAL_ALPHA4_SGIS* = 0x00008110

-  GL_DUAL_ALPHA8_SGIS* = 0x00008111

-  GL_DUAL_ALPHA12_SGIS* = 0x00008112

-  GL_DUAL_ALPHA16_SGIS* = 0x00008113

-  GL_DUAL_LUMINANCE4_SGIS* = 0x00008114

-  GL_DUAL_LUMINANCE8_SGIS* = 0x00008115

-  GL_DUAL_LUMINANCE12_SGIS* = 0x00008116

-  GL_DUAL_LUMINANCE16_SGIS* = 0x00008117

-  GL_DUAL_INTENSITY4_SGIS* = 0x00008118

-  GL_DUAL_INTENSITY8_SGIS* = 0x00008119

-  GL_DUAL_INTENSITY12_SGIS* = 0x0000811A

-  GL_DUAL_INTENSITY16_SGIS* = 0x0000811B

-  GL_DUAL_LUMINANCE_ALPHA4_SGIS* = 0x0000811C

-  GL_DUAL_LUMINANCE_ALPHA8_SGIS* = 0x0000811D

-  GL_QUAD_ALPHA4_SGIS* = 0x0000811E

-  GL_QUAD_ALPHA8_SGIS* = 0x0000811F

-  GL_QUAD_LUMINANCE4_SGIS* = 0x00008120

-  GL_QUAD_LUMINANCE8_SGIS* = 0x00008121

-  GL_QUAD_INTENSITY4_SGIS* = 0x00008122

-  GL_QUAD_INTENSITY8_SGIS* = 0x00008123

-  GL_DUAL_TEXTURE_SELECT_SGIS* = 0x00008124

-  GL_QUAD_TEXTURE_SELECT_SGIS* = 0x00008125 # GL_SGIX_async

-  cGL_ASYNC_MARKER_SGIX* = 0x00008329 # GL_SGIX_async_histogram

-  GL_ASYNC_HISTOGRAM_SGIX* = 0x0000832C

-  GL_MAX_ASYNC_HISTOGRAM_SGIX* = 0x0000832D # GL_SGIX_async_pixel

-  GL_ASYNC_TEX_IMAGE_SGIX* = 0x0000835C

-  GL_ASYNC_DRAW_PIXELS_SGIX* = 0x0000835D

-  GL_ASYNC_READ_PIXELS_SGIX* = 0x0000835E

-  GL_MAX_ASYNC_TEX_IMAGE_SGIX* = 0x0000835F

-  GL_MAX_ASYNC_DRAW_PIXELS_SGIX* = 0x00008360

-  GL_MAX_ASYNC_READ_PIXELS_SGIX* = 0x00008361 # GL_SGIX_blend_alpha_minmax

-  GL_ALPHA_MIN_SGIX* = 0x00008320

-  GL_ALPHA_MAX_SGIX* = 0x00008321 # GL_SGIX_calligraphic_fragment

-  GL_CALLIGRAPHIC_FRAGMENT_SGIX* = 0x00008183 # GL_SGIX_clipmap

-  GL_LINEAR_CLIPMAP_LINEAR_SGIX* = 0x00008170

-  GL_TEXTURE_CLIPMAP_CENTER_SGIX* = 0x00008171

-  GL_TEXTURE_CLIPMAP_FRAME_SGIX* = 0x00008172

-  GL_TEXTURE_CLIPMAP_OFFSET_SGIX* = 0x00008173

-  GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX* = 0x00008174

-  GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX* = 0x00008175

-  GL_TEXTURE_CLIPMAP_DEPTH_SGIX* = 0x00008176

-  GL_MAX_CLIPMAP_DEPTH_SGIX* = 0x00008177

-  GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX* = 0x00008178

-  GL_NEAREST_CLIPMAP_NEAREST_SGIX* = 0x0000844D

-  GL_NEAREST_CLIPMAP_LINEAR_SGIX* = 0x0000844E

-  GL_LINEAR_CLIPMAP_NEAREST_SGIX* = 0x0000844F # GL_SGIX_convolution_accuracy

-  GL_CONVOLUTION_HINT_SGIX* = 0x00008316 # GL_SGIX_depth_texture

-  GL_DEPTH_COMPONENT16_SGIX* = 0x000081A5

-  GL_DEPTH_COMPONENT24_SGIX* = 0x000081A6

-  GL_DEPTH_COMPONENT32_SGIX* = 0x000081A7 # GL_SGIX_fog_offset

-  GL_FOG_OFFSET_SGIX* = 0x00008198

-  GL_FOG_OFFSET_VALUE_SGIX* = 0x00008199 # GL_SGIX_fog_scale

-  GL_FOG_SCALE_SGIX* = 0x000081FC

-  GL_FOG_SCALE_VALUE_SGIX* = 0x000081FD # GL_SGIX_fragment_lighting

-  GL_FRAGMENT_LIGHTING_SGIX* = 0x00008400

-  cGL_FRAGMENT_COLOR_MATERIAL_SGIX* = 0x00008401

-  GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX* = 0x00008402

-  GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX* = 0x00008403

-  GL_MAX_FRAGMENT_LIGHTS_SGIX* = 0x00008404

-  GL_MAX_ACTIVE_LIGHTS_SGIX* = 0x00008405

-  GL_CURRENT_RASTER_NORMAL_SGIX* = 0x00008406

-  GL_LIGHT_ENV_MODE_SGIX* = 0x00008407

-  GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX* = 0x00008408

-  GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX* = 0x00008409

-  GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX* = 0x0000840A

-  GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX* = 0x0000840B

-  GL_FRAGMENT_LIGHT0_SGIX* = 0x0000840C

-  GL_FRAGMENT_LIGHT1_SGIX* = 0x0000840D

-  GL_FRAGMENT_LIGHT2_SGIX* = 0x0000840E

-  GL_FRAGMENT_LIGHT3_SGIX* = 0x0000840F

-  GL_FRAGMENT_LIGHT4_SGIX* = 0x00008410

-  GL_FRAGMENT_LIGHT5_SGIX* = 0x00008411

-  GL_FRAGMENT_LIGHT6_SGIX* = 0x00008412

-  GL_FRAGMENT_LIGHT7_SGIX* = 0x00008413 # GL_SGIX_framezoom

-  cGL_FRAMEZOOM_SGIX* = 0x0000818B

-  GL_FRAMEZOOM_FACTOR_SGIX* = 0x0000818C

-  GL_MAX_FRAMEZOOM_FACTOR_SGIX* = 0x0000818D # GL_SGIX_impact_pixel_texture

-  GL_PIXEL_TEX_GEN_Q_CEILING_SGIX* = 0x00008184

-  GL_PIXEL_TEX_GEN_Q_ROUND_SGIX* = 0x00008185

-  GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX* = 0x00008186

-  GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX* = 0x00008187

-  GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX* = 0x00008188

-  GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX* = 0x00008189

-  GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX* = 0x0000818A # GL_SGIX_instruments

-  GL_INSTRUMENT_BUFFER_POINTER_SGIX* = 0x00008180

-  GL_INSTRUMENT_MEASUREMENTS_SGIX* = 0x00008181 # GL_SGIX_interlace

-  GL_INTERLACE_SGIX* = 0x00008094 # GL_SGIX_ir_instrument1

-  GL_IR_INSTRUMENT1_SGIX* = 0x0000817F # GL_SGIX_list_priority

-  GL_LIST_PRIORITY_SGIX* = 0x00008182 # GL_SGIX_pixel_texture

-  cGL_PIXEL_TEX_GEN_SGIX* = 0x00008139

-  GL_PIXEL_TEX_GEN_MODE_SGIX* = 0x0000832B # GL_SGIX_pixel_tiles

-  GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX* = 0x0000813E

-  GL_PIXEL_TILE_CACHE_INCREMENT_SGIX* = 0x0000813F

-  GL_PIXEL_TILE_WIDTH_SGIX* = 0x00008140

-  GL_PIXEL_TILE_HEIGHT_SGIX* = 0x00008141

-  GL_PIXEL_TILE_GRID_WIDTH_SGIX* = 0x00008142

-  GL_PIXEL_TILE_GRID_HEIGHT_SGIX* = 0x00008143

-  GL_PIXEL_TILE_GRID_DEPTH_SGIX* = 0x00008144

-  GL_PIXEL_TILE_CACHE_SIZE_SGIX* = 0x00008145 # GL_SGIX_polynomial_ffd

-  GL_GEOMETRY_DEFORMATION_SGIX* = 0x00008194

-  GL_TEXTURE_DEFORMATION_SGIX* = 0x00008195

-  GL_DEFORMATIONS_MASK_SGIX* = 0x00008196

-  GL_MAX_DEFORMATION_ORDER_SGIX* = 0x00008197 # GL_SGIX_reference_plane

-  cGL_REFERENCE_PLANE_SGIX* = 0x0000817D

-  GL_REFERENCE_PLANE_EQUATION_SGIX* = 0x0000817E # GL_SGIX_resample

-  GL_PACK_RESAMPLE_SGIX* = 0x0000842C

-  GL_UNPACK_RESAMPLE_SGIX* = 0x0000842D

-  GL_RESAMPLE_REPLICATE_SGIX* = 0x0000842E

-  GL_RESAMPLE_ZERO_FILL_SGIX* = 0x0000842F

-  GL_RESAMPLE_DECIMATE_SGIX* = 0x00008430 # GL_SGIX_scalebias_hint

-  GL_SCALEBIAS_HINT_SGIX* = 0x00008322 # GL_SGIX_shadow

-  GL_TEXTURE_COMPARE_SGIX* = 0x0000819A

-  GL_TEXTURE_COMPARE_OPERATOR_SGIX* = 0x0000819B

-  GL_TEXTURE_LEQUAL_R_SGIX* = 0x0000819C

-  GL_TEXTURE_GEQUAL_R_SGIX* = 0x0000819D # GL_SGIX_shadow_ambient

-  GL_SHADOW_AMBIENT_SGIX* = 0x000080BF # GL_SGIX_sprite

-  GL_SPRITE_SGIX* = 0x00008148

-  GL_SPRITE_MODE_SGIX* = 0x00008149

-  GL_SPRITE_AXIS_SGIX* = 0x0000814A

-  GL_SPRITE_TRANSLATION_SGIX* = 0x0000814B

-  GL_SPRITE_AXIAL_SGIX* = 0x0000814C

-  GL_SPRITE_OBJECT_ALIGNED_SGIX* = 0x0000814D

-  GL_SPRITE_EYE_ALIGNED_SGIX* = 0x0000814E # GL_SGIX_subsample

-  GL_PACK_SUBSAMPLE_RATE_SGIX* = 0x000085A0

-  GL_UNPACK_SUBSAMPLE_RATE_SGIX* = 0x000085A1

-  GL_PIXEL_SUBSAMPLE_4444_SGIX* = 0x000085A2

-  GL_PIXEL_SUBSAMPLE_2424_SGIX* = 0x000085A3

-  GL_PIXEL_SUBSAMPLE_4242_SGIX* = 0x000085A4 # GL_SGIX_texture_add_env

-  GL_TEXTURE_ENV_BIAS_SGIX* = 0x000080BE # GL_SGIX_texture_coordinate_clamp

-  GL_TEXTURE_MAX_CLAMP_S_SGIX* = 0x00008369

-  GL_TEXTURE_MAX_CLAMP_T_SGIX* = 0x0000836A

-  GL_TEXTURE_MAX_CLAMP_R_SGIX* = 0x0000836B # GL_SGIX_texture_lod_bias

-  GL_TEXTURE_LOD_BIAS_S_SGIX* = 0x0000818E

-  GL_TEXTURE_LOD_BIAS_T_SGIX* = 0x0000818F

-  GL_TEXTURE_LOD_BIAS_R_SGIX* = 0x00008190 # GL_SGIX_texture_multi_buffer

-  GL_TEXTURE_MULTI_BUFFER_HINT_SGIX* = 0x0000812E # GL_SGIX_texture_scale_bias

-  GL_POST_TEXTURE_FILTER_BIAS_SGIX* = 0x00008179

-  GL_POST_TEXTURE_FILTER_SCALE_SGIX* = 0x0000817A

-  GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX* = 0x0000817B

-  GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX* = 0x0000817C # GL_SGIX_vertex_preclip

-  GL_VERTEX_PRECLIP_SGIX* = 0x000083EE

-  GL_VERTEX_PRECLIP_HINT_SGIX* = 0x000083EF # GL_SGIX_ycrcb

-  GL_YCRCB_422_SGIX* = 0x000081BB

-  GL_YCRCB_444_SGIX* = 0x000081BC # GL_SGIX_ycrcba

-  GL_YCRCB_SGIX* = 0x00008318

-  GL_YCRCBA_SGIX* = 0x00008319 # GL_SGI_color_matrix

-  GL_COLOR_MATRIX_SGI* = 0x000080B1

-  GL_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B2

-  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI* = 0x000080B3

-  GL_POST_COLOR_MATRIX_RED_SCALE_SGI* = 0x000080B4

-  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI* = 0x000080B5

-  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI* = 0x000080B6

-  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI* = 0x000080B7

-  GL_POST_COLOR_MATRIX_RED_BIAS_SGI* = 0x000080B8

-  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI* = 0x000080B9

-  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI* = 0x000080BA

-  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI* = 0x000080BB # GL_SGI_color_table

-  cGL_COLOR_TABLE_SGI* = 0x000080D0

-  GL_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D1

-  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D2

-  GL_PROXY_COLOR_TABLE_SGI* = 0x000080D3

-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI* = 0x000080D4

-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI* = 0x000080D5

-  GL_COLOR_TABLE_SCALE_SGI* = 0x000080D6

-  GL_COLOR_TABLE_BIAS_SGI* = 0x000080D7

-  GL_COLOR_TABLE_FORMAT_SGI* = 0x000080D8

-  GL_COLOR_TABLE_WIDTH_SGI* = 0x000080D9

-  GL_COLOR_TABLE_RED_SIZE_SGI* = 0x000080DA

-  GL_COLOR_TABLE_GREEN_SIZE_SGI* = 0x000080DB

-  GL_COLOR_TABLE_BLUE_SIZE_SGI* = 0x000080DC

-  GL_COLOR_TABLE_ALPHA_SIZE_SGI* = 0x000080DD

-  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI* = 0x000080DE

-  GL_COLOR_TABLE_INTENSITY_SIZE_SGI* = 0x000080DF # GL_SGI_depth_pass_instrument

-  GL_DEPTH_PASS_INSTRUMENT_SGIX* = 0x00008310

-  GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX* = 0x00008311

-  GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX* = 0x00008312 # GL_SGI_texture_color_table

-  GL_TEXTURE_COLOR_TABLE_SGI* = 0x000080BC

-  GL_PROXY_TEXTURE_COLOR_TABLE_SGI* = 0x000080BD # GL_SUNX_constant_data

-  GL_UNPACK_CONSTANT_DATA_SUNX* = 0x000081D5

-  GL_TEXTURE_CONSTANT_DATA_SUNX* = 0x000081D6 # GL_SUN_convolution_border_modes

-  GL_WRAP_BORDER_SUN* = 0x000081D4 # GL_SUN_global_alpha

-  GL_GLOBAL_ALPHA_SUN* = 0x000081D9

-  GL_GLOBAL_ALPHA_FACTOR_SUN* = 0x000081DA # GL_SUN_mesh_array

-  GL_QUAD_MESH_SUN* = 0x00008614

-  GL_TRIANGLE_MESH_SUN* = 0x00008615 # GL_SUN_slice_accum

-  GL_SLICE_ACCUM_SUN* = 0x000085CC # GL_SUN_triangle_list

-  GL_RESTART_SUN* = 0x00000001

-  GL_REPLACE_MIDDLE_SUN* = 0x00000002

-  GL_REPLACE_OLDEST_SUN* = 0x00000003

-  GL_TRIANGLE_LIST_SUN* = 0x000081D7

-  GL_REPLACEMENT_CODE_SUN* = 0x000081D8

-  GL_REPLACEMENT_CODE_ARRAY_SUN* = 0x000085C0

-  GL_REPLACEMENT_CODE_ARRAYtyp_SUN* = 0x000085C1

-  GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN* = 0x000085C2

-  GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN* = 0x000085C3

-  GL_R1UI_V3F_SUN* = 0x000085C4

-  GL_R1UI_C4UB_V3F_SUN* = 0x000085C5

-  GL_R1UI_C3F_V3F_SUN* = 0x000085C6

-  GL_R1UI_N3F_V3F_SUN* = 0x000085C7

-  GL_R1UI_C4F_N3F_V3F_SUN* = 0x000085C8

-  GL_R1UI_T2F_V3F_SUN* = 0x000085C9

-  GL_R1UI_T2F_N3F_V3F_SUN* = 0x000085CA

-  GL_R1UI_T2F_C4F_N3F_V3F_SUN* = 0x000085CB # GL_WIN_phong_shading

-  GL_PHONG_WIN* = 0x000080EA

-  GL_PHONG_HINT_WIN* = 0x000080EB # GL_WIN_specular_fog

-  GL_FOG_SPECULAR_TEXTURE_WIN* = 0x000080EC # GL_ARB_vertex_shader

-  GL_VERTEX_SHADER_ARB* = 0x00008B31

-  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB* = 0x00008B4A

-  GL_MAX_VARYING_FLOATS_ARB* = 0x00008B4B

-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4C

-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB* = 0x00008B4D

-  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB* = 0x00008B89

-  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB* = 0x00008B8A # GL_ARB_fragment_shader

-  GL_FRAGMENT_SHADER_ARB* = 0x00008B30

-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB* = 0x00008B49 # 1.4

-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB* = 0x00008B8B # 1.4

-                                                       # GL_ARB_occlusion_query

-  GL_SAMPLES_PASSED_ARB* = 0x00008914

-  GL_QUERY_COUNTER_BITS_ARB* = 0x00008864

-  GL_CURRENT_QUERY_ARB* = 0x00008865

-  GL_QUERY_RESULT_ARB* = 0x00008866

-  GL_QUERY_RESULT_AVAILABLE_ARB* = 0x00008867 # GL_ARB_point_sprite

-  GL_POINT_SPRITE_ARB* = 0x00008861

-  GL_COORD_REPLACE_ARB* = 0x00008862 # GL_ARB_shading_language_100

-  GL_SHADING_LANGUAGE_VERSION_ARB* = 0x00008B8C # 1.4

-                                                # GL_ARB_shader_objects

-  GL_PROGRAM_OBJECT_ARB* = 0x00008B40

-  GL_OBJECTtyp_ARB* = 0x00008B4E

-  GL_OBJECT_SUBtypARB* = 0x00008B4F

-  GL_OBJECT_DELETE_STATUS_ARB* = 0x00008B80

-  GL_OBJECT_COMPILE_STATUS_ARB* = 0x00008B81

-  GL_OBJECT_LINK_STATUS_ARB* = 0x00008B82

-  GL_OBJECT_VALIDATE_STATUS_ARB* = 0x00008B83

-  GL_OBJECT_INFO_LOG_LENGTH_ARB* = 0x00008B84

-  GL_OBJECT_ATTACHED_OBJECTS_ARB* = 0x00008B85

-  GL_OBJECT_ACTIVE_UNIFORMS_ARB* = 0x00008B86

-  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB* = 0x00008B87

-  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB* = 0x00008B88

-  GL_SHADER_OBJECT_ARB* = 0x00008B48

-  GL_FLOAT_VEC2_ARB* = 0x00008B50

-  GL_FLOAT_VEC3_ARB* = 0x00008B51

-  GL_FLOAT_VEC4_ARB* = 0x00008B52

-  GL_INT_VEC2_ARB* = 0x00008B53

-  GL_INT_VEC3_ARB* = 0x00008B54

-  GL_INT_VEC4_ARB* = 0x00008B55

-  GL_BOOL_ARB* = 0x00008B56

-  GL_BOOL_VEC2_ARB* = 0x00008B57

-  GL_BOOL_VEC3_ARB* = 0x00008B58

-  GL_BOOL_VEC4_ARB* = 0x00008B59

-  GL_FLOAT_MAT2_ARB* = 0x00008B5A

-  GL_FLOAT_MAT3_ARB* = 0x00008B5B

-  GL_FLOAT_MAT4_ARB* = 0x00008B5C

-  GL_SAMPLER_1D_ARB* = 0x00008B5D

-  GL_SAMPLER_2D_ARB* = 0x00008B5E

-  GL_SAMPLER_3D_ARB* = 0x00008B5F

-  GL_SAMPLER_CUBE_ARB* = 0x00008B60

-  GL_SAMPLER_1D_SHADOW_ARB* = 0x00008B61

-  GL_SAMPLER_2D_SHADOW_ARB* = 0x00008B62

-  GL_SAMPLER_2D_RECT_ARB* = 0x00008B63

-  GL_SAMPLER_2D_RECT_SHADOW_ARB* = 0x00008B64 # WGL_3DFX_multisample

-  WGL_SAMPLE_BUFFERS_3DFX* = 0x00002060

-  WGL_SAMPLES_3DFX* = 0x00002061 # WGL_ARB_buffer_region

-  WGL_FRONT_COLOR_BUFFER_BIT_ARB* = 0x00000001

-  WGL_BACK_COLOR_BUFFER_BIT_ARB* = 0x00000002

-  WGL_DEPTH_BUFFER_BIT_ARB* = 0x00000004

-  WGL_STENCIL_BUFFER_BIT_ARB* = 0x00000008 # WGL_ARB_make_current_read

-  ERROR_INVALID_PIXELtyp_ARB* = 0x00002043

-  ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB* = 0x00002054 # WGL_ARB_multisample

-  WGL_SAMPLE_BUFFERS_ARB* = 0x00002041

-  WGL_SAMPLES_ARB* = 0x00002042 # WGL_ARB_pbuffer

-  WGL_DRAW_TO_PBUFFER_ARB* = 0x0000202D

-  WGL_MAX_PBUFFER_PIXELS_ARB* = 0x0000202E

-  WGL_MAX_PBUFFER_WIDTH_ARB* = 0x0000202F

-  WGL_MAX_PBUFFER_HEIGHT_ARB* = 0x00002030

-  WGL_PBUFFER_LARGEST_ARB* = 0x00002033

-  WGL_PBUFFER_WIDTH_ARB* = 0x00002034

-  WGL_PBUFFER_HEIGHT_ARB* = 0x00002035

-  WGL_PBUFFER_LOST_ARB* = 0x00002036 # WGL_ARB_pixel_format

-  WGL_NUMBER_PIXEL_FORMATS_ARB* = 0x00002000

-  WGL_DRAW_TO_WINDOW_ARB* = 0x00002001

-  WGL_DRAW_TO_BITMAP_ARB* = 0x00002002

-  WGL_ACCELERATION_ARB* = 0x00002003

-  WGL_NEED_PALETTE_ARB* = 0x00002004

-  WGL_NEED_SYSTEM_PALETTE_ARB* = 0x00002005

-  WGL_SWAP_LAYER_BUFFERS_ARB* = 0x00002006

-  WGL_SWAP_METHOD_ARB* = 0x00002007

-  WGL_NUMBER_OVERLAYS_ARB* = 0x00002008

-  WGL_NUMBER_UNDERLAYS_ARB* = 0x00002009

-  WGL_TRANSPARENT_ARB* = 0x0000200A

-  WGL_TRANSPARENT_RED_VALUE_ARB* = 0x00002037

-  WGL_TRANSPARENT_GREEN_VALUE_ARB* = 0x00002038

-  WGL_TRANSPARENT_BLUE_VALUE_ARB* = 0x00002039

-  WGL_TRANSPARENT_ALPHA_VALUE_ARB* = 0x0000203A

-  WGL_TRANSPARENT_INDEX_VALUE_ARB* = 0x0000203B

-  WGL_SHARE_DEPTH_ARB* = 0x0000200C

-  WGL_SHARE_STENCIL_ARB* = 0x0000200D

-  WGL_SHARE_ACCUM_ARB* = 0x0000200E

-  WGL_SUPPORT_GDI_ARB* = 0x0000200F

-  WGL_SUPPORT_OPENGL_ARB* = 0x00002010

-  WGL_DOUBLE_BUFFER_ARB* = 0x00002011

-  WGL_STEREO_ARB* = 0x00002012

-  WGL_PIXELtyp_ARB* = 0x00002013

-  WGL_COLOR_BITS_ARB* = 0x00002014

-  WGL_RED_BITS_ARB* = 0x00002015

-  WGL_RED_SHIFT_ARB* = 0x00002016

-  WGL_GREEN_BITS_ARB* = 0x00002017

-  WGL_GREEN_SHIFT_ARB* = 0x00002018

-  WGL_BLUE_BITS_ARB* = 0x00002019

-  WGL_BLUE_SHIFT_ARB* = 0x0000201A

-  WGL_ALPHA_BITS_ARB* = 0x0000201B

-  WGL_ALPHA_SHIFT_ARB* = 0x0000201C

-  WGL_ACCUM_BITS_ARB* = 0x0000201D

-  WGL_ACCUM_RED_BITS_ARB* = 0x0000201E

-  WGL_ACCUM_GREEN_BITS_ARB* = 0x0000201F

-  WGL_ACCUM_BLUE_BITS_ARB* = 0x00002020

-  WGL_ACCUM_ALPHA_BITS_ARB* = 0x00002021

-  WGL_DEPTH_BITS_ARB* = 0x00002022

-  WGL_STENCIL_BITS_ARB* = 0x00002023

-  WGL_AUX_BUFFERS_ARB* = 0x00002024

-  WGL_NO_ACCELERATION_ARB* = 0x00002025

-  WGL_GENERIC_ACCELERATION_ARB* = 0x00002026

-  WGL_FULL_ACCELERATION_ARB* = 0x00002027

-  WGL_SWAP_EXCHANGE_ARB* = 0x00002028

-  WGL_SWAP_COPY_ARB* = 0x00002029

-  WGL_SWAP_UNDEFINED_ARB* = 0x0000202A

-  WGLtyp_RGBA_ARB* = 0x0000202B

-  WGLtyp_COLORINDEX_ARB* = 0x0000202C # WGL_ARB_pixel_format_float

-  WGL_RGBA_FLOAT_MODE_ARB* = 0x00008820

-  WGL_CLAMP_VERTEX_COLOR_ARB* = 0x0000891A

-  WGL_CLAMP_FRAGMENT_COLOR_ARB* = 0x0000891B

-  WGL_CLAMP_READ_COLOR_ARB* = 0x0000891C

-  WGL_FIXED_ONLY_ARB* = 0x0000891D # WGL_ARB_render_texture

-  WGL_BIND_TO_TEXTURE_RGB_ARB* = 0x00002070

-  WGL_BIND_TO_TEXTURE_RGBA_ARB* = 0x00002071

-  WGL_TEXTURE_FORMAT_ARB* = 0x00002072

-  WGL_TEXTURE_TARGET_ARB* = 0x00002073

-  WGL_MIPMAP_TEXTURE_ARB* = 0x00002074

-  WGL_TEXTURE_RGB_ARB* = 0x00002075

-  WGL_TEXTURE_RGBA_ARB* = 0x00002076

-  WGL_NO_TEXTURE_ARB* = 0x00002077

-  WGL_TEXTURE_CUBE_MAP_ARB* = 0x00002078

-  WGL_TEXTURE_1D_ARB* = 0x00002079

-  WGL_TEXTURE_2D_ARB* = 0x0000207A

-  WGL_MIPMAP_LEVEL_ARB* = 0x0000207B

-  WGL_CUBE_MAP_FACE_ARB* = 0x0000207C

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x0000207D

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x0000207E

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x0000207F

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00002080

-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00002081

-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x00002082

-  WGL_FRONT_LEFT_ARB* = 0x00002083

-  WGL_FRONT_RIGHT_ARB* = 0x00002084

-  WGL_BACK_LEFT_ARB* = 0x00002085

-  WGL_BACK_RIGHT_ARB* = 0x00002086

-  WGL_AUX0_ARB* = 0x00002087

-  WGL_AUX1_ARB* = 0x00002088

-  WGL_AUX2_ARB* = 0x00002089

-  WGL_AUX3_ARB* = 0x0000208A

-  WGL_AUX4_ARB* = 0x0000208B

-  WGL_AUX5_ARB* = 0x0000208C

-  WGL_AUX6_ARB* = 0x0000208D

-  WGL_AUX7_ARB* = 0x0000208E

-  WGL_AUX8_ARB* = 0x0000208F

-  WGL_AUX9_ARB* = 0x00002090  # WGL_ARB_create_context

-  WGL_CONTEXT_DEBUG_BIT_ARB* = 0x00000001

-  WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB* = 0x00000002

-  WGL_CONTEXT_MAJOR_VERSION_ARB* = 0x00002091

-  WGL_CONTEXT_MINOR_VERSION_ARB* = 0x00002092

-  WGL_CONTEXT_LAYER_PLANE_ARB* = 0x00002093

-  WGL_CONTEXT_FLAGS_ARB* = 0x00002094

-  ERROR_INVALID_VERSION_ARB* = 0x00002095 # WGL_ARB_create_context_profile

-  WGL_CONTEXT_PROFILE_MASK_ARB* = 0x00009126

-  WGL_CONTEXT_CORE_PROFILE_BIT_ARB* = 0x00000001

-  WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB* = 0x00000002

-  ERROR_INVALID_PROFILE_ARB* = 0x00002096 # WGL_ARB_framebuffer_sRGB

-  WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB* = 0x000020A9 # 

-                                                 # WGL_ARB_create_context_robustness

-  WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  WGL_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  WGL_NO_RESET_NOTIFICATION_ARB* = 0x00008261 # WGL_ATI_pixel_format_float

-  WGLtyp_RGBA_FLOAT_ATI* = 0x000021A0

-  GLtyp_RGBA_FLOAT_ATI* = 0x00008820

-  GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI* = 0x00008835 # WGL_AMD_gpu_association

-  WGL_GPU_VENDOR_AMD* = 0x00001F00

-  WGL_GPU_RENDERER_STRING_AMD* = 0x00001F01

-  WGL_GPU_OPENGL_VERSION_STRING_AMD* = 0x00001F02

-  WGL_GPU_FASTEST_TARGET_GPUS_AMD* = 0x000021A2

-  WGL_GPU_RAM_AMD* = 0x000021A3

-  WGL_GPU_CLOCK_AMD* = 0x000021A4

-  WGL_GPU_NUM_PIPES_AMD* = 0x000021A5

-  WGL_GPU_NUM_SIMD_AMD* = 0x000021A6

-  WGL_GPU_NUM_RB_AMD* = 0x000021A7

-  WGL_GPU_NUM_SPI_AMD* = 0x000021A8 # WGL_EXT_depth_float

-  WGL_DEPTH_FLOAT_EXT* = 0x00002040 # WGL_EXT_make_current_read

-  ERROR_INVALID_PIXELtyp_EXT* = 0x00002043 # WGL_EXT_multisample

-  WGL_SAMPLE_BUFFERS_EXT* = 0x00002041

-  WGL_SAMPLES_EXT* = 0x00002042 # WGL_EXT_pbuffer

-  WGL_DRAW_TO_PBUFFER_EXT* = 0x0000202D

-  WGL_MAX_PBUFFER_PIXELS_EXT* = 0x0000202E

-  WGL_MAX_PBUFFER_WIDTH_EXT* = 0x0000202F

-  WGL_MAX_PBUFFER_HEIGHT_EXT* = 0x00002030

-  WGL_OPTIMAL_PBUFFER_WIDTH_EXT* = 0x00002031

-  WGL_OPTIMAL_PBUFFER_HEIGHT_EXT* = 0x00002032

-  WGL_PBUFFER_LARGEST_EXT* = 0x00002033

-  WGL_PBUFFER_WIDTH_EXT* = 0x00002034

-  WGL_PBUFFER_HEIGHT_EXT* = 0x00002035 # WGL_EXT_pixel_format

-  WGL_NUMBER_PIXEL_FORMATS_EXT* = 0x00002000

-  WGL_DRAW_TO_WINDOW_EXT* = 0x00002001

-  WGL_DRAW_TO_BITMAP_EXT* = 0x00002002

-  WGL_ACCELERATION_EXT* = 0x00002003

-  WGL_NEED_PALETTE_EXT* = 0x00002004

-  WGL_NEED_SYSTEM_PALETTE_EXT* = 0x00002005

-  WGL_SWAP_LAYER_BUFFERS_EXT* = 0x00002006

-  WGL_SWAP_METHOD_EXT* = 0x00002007

-  WGL_NUMBER_OVERLAYS_EXT* = 0x00002008

-  WGL_NUMBER_UNDERLAYS_EXT* = 0x00002009

-  WGL_TRANSPARENT_EXT* = 0x0000200A

-  WGL_TRANSPARENT_VALUE_EXT* = 0x0000200B

-  WGL_SHARE_DEPTH_EXT* = 0x0000200C

-  WGL_SHARE_STENCIL_EXT* = 0x0000200D

-  WGL_SHARE_ACCUM_EXT* = 0x0000200E

-  WGL_SUPPORT_GDI_EXT* = 0x0000200F

-  WGL_SUPPORT_OPENGL_EXT* = 0x00002010

-  WGL_DOUBLE_BUFFER_EXT* = 0x00002011

-  WGL_STEREO_EXT* = 0x00002012

-  WGL_PIXELtyp_EXT* = 0x00002013

-  WGL_COLOR_BITS_EXT* = 0x00002014

-  WGL_RED_BITS_EXT* = 0x00002015

-  WGL_RED_SHIFT_EXT* = 0x00002016

-  WGL_GREEN_BITS_EXT* = 0x00002017

-  WGL_GREEN_SHIFT_EXT* = 0x00002018

-  WGL_BLUE_BITS_EXT* = 0x00002019

-  WGL_BLUE_SHIFT_EXT* = 0x0000201A

-  WGL_ALPHA_BITS_EXT* = 0x0000201B

-  WGL_ALPHA_SHIFT_EXT* = 0x0000201C

-  WGL_ACCUM_BITS_EXT* = 0x0000201D

-  WGL_ACCUM_RED_BITS_EXT* = 0x0000201E

-  WGL_ACCUM_GREEN_BITS_EXT* = 0x0000201F

-  WGL_ACCUM_BLUE_BITS_EXT* = 0x00002020

-  WGL_ACCUM_ALPHA_BITS_EXT* = 0x00002021

-  WGL_DEPTH_BITS_EXT* = 0x00002022

-  WGL_STENCIL_BITS_EXT* = 0x00002023

-  WGL_AUX_BUFFERS_EXT* = 0x00002024

-  WGL_NO_ACCELERATION_EXT* = 0x00002025

-  WGL_GENERIC_ACCELERATION_EXT* = 0x00002026

-  WGL_FULL_ACCELERATION_EXT* = 0x00002027

-  WGL_SWAP_EXCHANGE_EXT* = 0x00002028

-  WGL_SWAP_COPY_EXT* = 0x00002029

-  WGL_SWAP_UNDEFINED_EXT* = 0x0000202A

-  WGLtyp_RGBA_EXT* = 0x0000202B

-  WGLtyp_COLORINDEX_EXT* = 0x0000202C # WGL_I3D_digital_video_control

-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D* = 0x00002050

-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D* = 0x00002051

-  WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D* = 0x00002052

-  WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D* = 0x00002053 # WGL_I3D_gamma

-  WGL_GAMMA_TABLE_SIZE_I3D* = 0x0000204E

-  WGL_GAMMA_EXCLUDE_DESKTOP_I3D* = 0x0000204F # WGL_I3D_genlock

-  WGL_GENLOCK_SOURCE_MULTIVIEW_I3D* = 0x00002044

-  WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D* = 0x00002045

-  WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D* = 0x00002046

-  WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D* = 0x00002047

-  WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D* = 0x00002048

-  WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D* = 0x00002049

-  WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D* = 0x0000204A

-  WGL_GENLOCK_SOURCE_EDGE_RISING_I3D* = 0x0000204B

-  WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D* = 0x0000204C # WGL_I3D_image_buffer

-  WGL_IMAGE_BUFFER_MIN_ACCESS_I3D* = 0x00000001

-  WGL_IMAGE_BUFFER_LOCK_I3D* = 0x00000002 # WGL_NV_float_buffer

-  WGL_FLOAT_COMPONENTS_NV* = 0x000020B0

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV* = 0x000020B1

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV* = 0x000020B2

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV* = 0x000020B3

-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV* = 0x000020B4

-  WGL_TEXTURE_FLOAT_R_NV* = 0x000020B5

-  WGL_TEXTURE_FLOAT_RG_NV* = 0x000020B6

-  WGL_TEXTURE_FLOAT_RGB_NV* = 0x000020B7

-  WGL_TEXTURE_FLOAT_RGBA_NV* = 0x000020B8 # WGL_NV_render_depth_texture

-  WGL_BIND_TO_TEXTURE_DEPTH_NV* = 0x000020A3

-  WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV* = 0x000020A4

-  WGL_DEPTH_TEXTURE_FORMAT_NV* = 0x000020A5

-  WGL_TEXTURE_DEPTH_COMPONENT_NV* = 0x000020A6

-  WGL_DEPTH_COMPONENT_NV* = 0x000020A7 # WGL_NV_render_texture_rectangle

-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV* = 0x000020A0

-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV* = 0x000020A1

-  WGL_TEXTURE_RECTANGLE_NV* = 0x000020A2 # WGL_NV_present_video

-  WGL_NUM_VIDEO_SLOTS_NV* = 0x000020F0 # WGL_NV_video_output

-  WGL_BIND_TO_VIDEO_RGB_NV* = 0x000020C0

-  WGL_BIND_TO_VIDEO_RGBA_NV* = 0x000020C1

-  WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV* = 0x000020C2

-  WGL_VIDEO_OUT_COLOR_NV* = 0x000020C3

-  WGL_VIDEO_OUT_ALPHA_NV* = 0x000020C4

-  WGL_VIDEO_OUT_DEPTH_NV* = 0x000020C5

-  WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV* = 0x000020C6

-  WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV* = 0x000020C7

-  WGL_VIDEO_OUT_FRAME* = 0x000020C8

-  WGL_VIDEO_OUT_FIELD_1* = 0x000020C9

-  WGL_VIDEO_OUT_FIELD_2* = 0x000020CA

-  WGL_VIDEO_OUT_STACKED_FIELDS_1_2* = 0x000020CB

-  WGL_VIDEO_OUT_STACKED_FIELDS_2_1* = 0x000020CC # WGL_NV_gpu_affinity

-  WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV* = 0x000020D0

-  WGL_ERROR_MISSING_AFFINITY_MASK_NV* = 0x000020D1 # WGL_NV_video_capture

-  WGL_UNIQUE_ID_NV* = 0x000020CE

-  WGL_NUM_VIDEO_CAPTURE_SLOTS_NV* = 0x000020CF # WGL_NV_multisample_coverage

-  WGL_COVERAGE_SAMPLES_NV* = 0x00002042

-  WGL_COLOR_SAMPLES_NV* = 0x000020B9 # WGL_EXT_create_context_es2_profile

-  WGL_CONTEXT_ES2_PROFILE_BIT_EXT* = 0x00000004 # WGL_NV_DX_interop

-  WGL_ACCESS_READ_ONLY_NV* = 0x00000000

-  WGL_ACCESS_READ_WRITE_NV* = 0x00000001

-  WGL_ACCESS_WRITE_DISCARD_NV* = 0x00000002 # WIN_draw_range_elements

-  GL_MAX_ELEMENTS_VERTICES_WIN* = 0x000080E8

-  GL_MAX_ELEMENTS_INDICES_WIN* = 0x000080E9 # GLX 1.1 and later:

-  GLX_VENDOR* = 1

-  GLX_VERSION* = 2

-  GLX_EXTENSIONS* = 3

-  GLX_USE_GL* = 1

-  GLX_BUFFER_SIZE* = 2

-  GLX_LEVEL* = 3

-  GLX_RGBA* = 4

-  GLX_DOUBLEBUFFER* = 5

-  GLX_STEREO* = 6

-  GLX_AUX_BUFFERS* = 7

-  GLX_RED_SIZE* = 8

-  GLX_GREEN_SIZE* = 9

-  GLX_BLUE_SIZE* = 10

-  GLX_ALPHA_SIZE* = 11

-  GLX_DEPTH_SIZE* = 12

-  GLX_STENCIL_SIZE* = 13

-  GLX_ACCUM_RED_SIZE* = 14

-  GLX_ACCUM_GREEN_SIZE* = 15

-  GLX_ACCUM_BLUE_SIZE* = 16

-  GLX_ACCUM_ALPHA_SIZE* = 17  # GLX_VERSION_1_3

-  GLX_WINDOW_BIT* = 0x00000001

-  GLX_PIXMAP_BIT* = 0x00000002

-  GLX_PBUFFER_BIT* = 0x00000004

-  GLX_RGBA_BIT* = 0x00000001

-  GLX_COLOR_INDEX_BIT* = 0x00000002

-  GLX_PBUFFER_CLOBBER_MASK* = 0x08000000

-  GLX_FRONT_LEFT_BUFFER_BIT* = 0x00000001

-  GLX_FRONT_RIGHT_BUFFER_BIT* = 0x00000002

-  GLX_BACK_LEFT_BUFFER_BIT* = 0x00000004

-  GLX_BACK_RIGHT_BUFFER_BIT* = 0x00000008

-  GLX_AUX_BUFFERS_BIT* = 0x00000010

-  GLX_DEPTH_BUFFER_BIT* = 0x00000020

-  GLX_STENCIL_BUFFER_BIT* = 0x00000040

-  GLX_ACCUM_BUFFER_BIT* = 0x00000080

-  GLX_CONFIG_CAVEAT* = 0x00000020

-  GLX_X_VISUALtyp* = 0x00000022

-  GLX_TRANSPARENTtyp* = 0x00000023

-  GLX_TRANSPARENT_INDEX_VALUE* = 0x00000024

-  GLX_TRANSPARENT_RED_VALUE* = 0x00000025

-  GLX_TRANSPARENT_GREEN_VALUE* = 0x00000026

-  GLX_TRANSPARENT_BLUE_VALUE* = 0x00000027

-  GLX_TRANSPARENT_ALPHA_VALUE* = 0x00000028

-  GLX_DONT_CARE* = 0xFFFFFFFF

-  GLX_NONE* = 0x00008000

-  GLX_SLOW_CONFIG* = 0x00008001

-  GLX_TRUE_COLOR* = 0x00008002

-  GLX_DIRECT_COLOR* = 0x00008003

-  GLX_PSEUDO_COLOR* = 0x00008004

-  GLX_STATIC_COLOR* = 0x00008005

-  GLX_GRAY_SCALE* = 0x00008006

-  GLX_STATIC_GRAY* = 0x00008007

-  GLX_TRANSPARENT_RGB* = 0x00008008

-  GLX_TRANSPARENT_INDEX* = 0x00008009

-  GLX_VISUAL_ID* = 0x0000800B

-  GLX_SCREEN* = 0x0000800C

-  GLX_NON_CONFORMANT_CONFIG* = 0x0000800D

-  GLX_DRAWABLEtyp* = 0x00008010

-  GLX_RENDERtyp* = 0x00008011

-  GLX_X_RENDERABLE* = 0x00008012

-  GLX_FBCONFIG_ID* = 0x00008013

-  GLX_RGBAtyp* = 0x00008014

-  GLX_COLOR_INDEXtyp* = 0x00008015

-  GLX_MAX_PBUFFER_WIDTH* = 0x00008016

-  GLX_MAX_PBUFFER_HEIGHT* = 0x00008017

-  GLX_MAX_PBUFFER_PIXELS* = 0x00008018

-  GLX_PRESERVED_CONTENTS* = 0x0000801B

-  GLX_LARGEST_PBUFFER* = 0x0000801C

-  GLX_WIDTH* = 0x0000801D

-  GLX_HEIGHT* = 0x0000801E

-  GLX_EVENT_MASK* = 0x0000801F

-  GLX_DAMAGED* = 0x00008020

-  GLX_SAVED* = 0x00008021

-  cGLX_WINDOW* = 0x00008022

-  cGLX_PBUFFER* = 0x00008023

-  GLX_PBUFFER_HEIGHT* = 0x00008040

-  GLX_PBUFFER_WIDTH* = 0x00008041 # GLX_VERSION_1_4

-  GLX_SAMPLE_BUFFERS* = 100000

-  GLX_SAMPLES* = 100001       # GLX_ARB_multisample

-  GLX_SAMPLE_BUFFERS_ARB* = 100000

-  GLX_SAMPLES_ARB* = 100001   # GLX_ARB_fbconfig_float

-  GLX_RGBA_FLOATtyp_ARB* = 0x000020B9

-  GLX_RGBA_FLOAT_BIT_ARB* = 0x00000004 # GLX_ARB_create_context

-  GLX_CONTEXT_DEBUG_BIT_ARB* = 0x00000001

-  GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB* = 0x00000002

-  GLX_CONTEXT_MAJOR_VERSION_ARB* = 0x00002091

-  GLX_CONTEXT_MINOR_VERSION_ARB* = 0x00002092

-  GLX_CONTEXT_FLAGS_ARB* = 0x00002094 # GLX_ARB_create_context_profile

-  GLX_CONTEXT_CORE_PROFILE_BIT_ARB* = 0x00000001

-  GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB* = 0x00000002

-  GLX_CONTEXT_PROFILE_MASK_ARB* = 0x00009126 # GLX_ARB_vertex_buffer_object

-  GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB* = 0x00002095 # 

-                                                                 # GLX_ARB_framebuffer_sRGB

-  GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB* = 0x000020B2 # 

-                                                 # GLX_ARB_create_context_robustness

-  GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB* = 0x00000004

-  GLX_LOSE_CONTEXT_ON_RESET_ARB* = 0x00008252

-  GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB* = 0x00008256

-  GLX_NO_RESET_NOTIFICATION_ARB* = 0x00008261 # GLX_EXT_visual_info

-  GLX_X_VISUALtyp_EXT* = 0x00000022

-  GLX_TRANSPARENTtyp_EXT* = 0x00000023

-  GLX_TRANSPARENT_INDEX_VALUE_EXT* = 0x00000024

-  GLX_TRANSPARENT_RED_VALUE_EXT* = 0x00000025

-  GLX_TRANSPARENT_GREEN_VALUE_EXT* = 0x00000026

-  GLX_TRANSPARENT_BLUE_VALUE_EXT* = 0x00000027

-  GLX_TRANSPARENT_ALPHA_VALUE_EXT* = 0x00000028

-  GLX_NONE_EXT* = 0x00008000

-  GLX_TRUE_COLOR_EXT* = 0x00008002

-  GLX_DIRECT_COLOR_EXT* = 0x00008003

-  GLX_PSEUDO_COLOR_EXT* = 0x00008004

-  GLX_STATIC_COLOR_EXT* = 0x00008005

-  GLX_GRAY_SCALE_EXT* = 0x00008006

-  GLX_STATIC_GRAY_EXT* = 0x00008007

-  GLX_TRANSPARENT_RGB_EXT* = 0x00008008

-  GLX_TRANSPARENT_INDEX_EXT* = 0x00008009 # GLX_EXT_visual_rating

-  GLX_VISUAL_CAVEAT_EXT* = 0x00000020

-  GLX_SLOW_VISUAL_EXT* = 0x00008001

-  GLX_NON_CONFORMANT_VISUAL_EXT* = 0x0000800D # reuse GLX_NONE_EXT 

-                                              # GLX_EXT_import_context

-  GLX_SHARE_CONTEXT_EXT* = 0x0000800A

-  GLX_VISUAL_ID_EXT* = 0x0000800B

-  GLX_SCREEN_EXT* = 0x0000800C # GLX_EXT_fbconfig_packed_float

-                               #  GLX_RGBA_UNSIGNED_FLOATtyp_EXT = $20B1;

-                               #  GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = $00000008;

-                               # GLX_EXT_framebuffer_sRGB

-                               #  GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = $20B2;

-                               # GLX_EXT_texture_from_pixmap

-  GLX_TEXTURE_1D_BIT_EXT* = 0x00000001

-  GLX_TEXTURE_2D_BIT_EXT* = 0x00000002

-  GLX_TEXTURE_RECTANGLE_BIT_EXT* = 0x00000004

-  GLX_BIND_TO_TEXTURE_RGB_EXT* = 0x000020D0

-  GLX_BIND_TO_TEXTURE_RGBA_EXT* = 0x000020D1

-  GLX_BIND_TO_MIPMAP_TEXTURE_EXT* = 0x000020D2

-  GLX_BIND_TO_TEXTURE_TARGETS_EXT* = 0x000020D3

-  GLX_Y_INVERTED_EXT* = 0x000020D4

-  GLX_TEXTURE_FORMAT_EXT* = 0x000020D5

-  GLX_TEXTURE_TARGET_EXT* = 0x000020D6

-  GLX_MIPMAP_TEXTURE_EXT* = 0x000020D7

-  GLX_TEXTURE_FORMAT_NONE_EXT* = 0x000020D8

-  GLX_TEXTURE_FORMAT_RGB_EXT* = 0x000020D9

-  GLX_TEXTURE_FORMAT_RGBA_EXT* = 0x000020DA

-  GLX_TEXTURE_1D_EXT* = 0x000020DB

-  GLX_TEXTURE_2D_EXT* = 0x000020DC

-  GLX_TEXTURE_RECTANGLE_EXT* = 0x000020DD

-  GLX_FRONT_LEFT_EXT* = 0x000020DE

-  GLX_FRONT_RIGHT_EXT* = 0x000020DF

-  GLX_BACK_LEFT_EXT* = 0x000020E0

-  GLX_BACK_RIGHT_EXT* = 0x000020E1

-  GLX_FRONT_EXT* = GLX_FRONT_LEFT_EXT

-  GLX_BACK_EXT* = GLX_BACK_LEFT_EXT

-  GLX_AUX0_EXT* = 0x000020E2

-  GLX_AUX1_EXT* = 0x000020E3

-  GLX_AUX2_EXT* = 0x000020E4

-  GLX_AUX3_EXT* = 0x000020E5

-  GLX_AUX4_EXT* = 0x000020E6

-  GLX_AUX5_EXT* = 0x000020E7

-  GLX_AUX6_EXT* = 0x000020E8

-  GLX_AUX7_EXT* = 0x000020E9

-  GLX_AUX8_EXT* = 0x000020EA

-  GLX_AUX9_EXT* = 0x000020EB  # GLX_EXT_swap_control

-  GLX_SWAP_INTERVAL_EXT* = 0x000020F1

-  GLX_MAX_SWAP_INTERVAL_EXT* = 0x000020F2 # GLX_EXT_create_context_es2_profile

-  GLX_CONTEXT_ES2_PROFILE_BIT_EXT* = 0x00000004 # GLU

-  GLU_INVALID_ENUM* = 100900

-  GLU_INVALID_VALUE* = 100901

-  GLU_OUT_OF_MEMORY* = 100902

-  GLU_INCOMPATIBLE_GL_VERSION* = 100903

-  GLU_VERSION* = 100800

-  GLU_EXTENSIONS* = 100801

-  GLU_TRUE* = GL_TRUE

-  GLU_FALSE* = GL_FALSE

-  GLU_SMOOTH* = 100000

-  GLU_FLAT* = 100001

-  GLU_NONE* = 100002

-  GLU_POINT* = 100010

-  GLU_LINE* = 100011

-  GLU_FILL* = 100012

-  GLU_SILHOUETTE* = 100013

-  GLU_OUTSIDE* = 100020

-  GLU_INSIDE* = 100021

-  GLU_TESS_MAX_COORD* = 1.0000000000000005e+150

-  GLU_TESS_WINDING_RULE* = 100140

-  GLU_TESS_BOUNDARY_ONLY* = 100141

-  GLU_TESS_TOLERANCE* = 100142

-  GLU_TESS_WINDING_ODD* = 100130

-  GLU_TESS_WINDING_NONZERO* = 100131

-  GLU_TESS_WINDING_POSITIVE* = 100132

-  GLU_TESS_WINDING_NEGATIVE* = 100133

-  GLU_TESS_WINDING_ABS_GEQ_TWO* = 100134

-  GLU_TESS_BEGIN* = 100100    # TGLUTessBeginProc

-  cGLU_TESS_VERTEX* = 100101   # TGLUTessVertexProc

-  GLU_TESS_END* = 100102      # TGLUTessEndProc

-  GLU_TESS_ERROR* = 100103    # TGLUTessErrorProc

-  GLU_TESS_EDGE_FLAG* = 100104 # TGLUTessEdgeFlagProc

-  GLU_TESS_COMBINE* = 100105  # TGLUTessCombineProc

-  GLU_TESS_BEGIN_DATA* = 100106 # TGLUTessBeginDataProc

-  GLU_TESS_VERTEX_DATA* = 100107 # TGLUTessVertexDataProc

-  GLU_TESS_END_DATA* = 100108 # TGLUTessEndDataProc

-  GLU_TESS_ERROR_DATA* = 100109 # TGLUTessErrorDataProc

-  GLU_TESS_EDGE_FLAG_DATA* = 100110 # TGLUTessEdgeFlagDataProc

-  GLU_TESS_COMBINE_DATA* = 100111 # TGLUTessCombineDataProc

-  GLU_TESS_ERROR1* = 100151

-  GLU_TESS_ERROR2* = 100152

-  GLU_TESS_ERROR3* = 100153

-  GLU_TESS_ERROR4* = 100154

-  GLU_TESS_ERROR5* = 100155

-  GLU_TESS_ERROR6* = 100156

-  GLU_TESS_ERROR7* = 100157

-  GLU_TESS_ERROR8* = 100158

-  GLU_TESS_MISSING_BEGIN_POLYGON* = GLU_TESS_ERROR1

-  GLU_TESS_MISSING_BEGIN_CONTOUR* = GLU_TESS_ERROR2

-  GLU_TESS_MISSING_END_POLYGON* = GLU_TESS_ERROR3

-  GLU_TESS_MISSING_END_CONTOUR* = GLU_TESS_ERROR4

-  GLU_TESS_COORD_TOO_LARGE* = GLU_TESS_ERROR5

-  GLU_TESS_NEED_COMBINE_CALLBACK* = GLU_TESS_ERROR6

-  GLU_AUTO_LOAD_MATRIX* = 100200

-  GLU_CULLING* = 100201

-  GLU_SAMPLING_TOLERANCE* = 100203

-  GLU_DISPLAY_MODE* = 100204

-  GLU_PARAMETRIC_TOLERANCE* = 100202

-  GLU_SAMPLING_METHOD* = 100205

-  GLU_U_STEP* = 100206

-  GLU_V_STEP* = 100207

-  GLU_PATH_LENGTH* = 100215

-  GLU_PARAMETRIC_ERROR* = 100216

-  GLU_DOMAIN_DISTANCE* = 100217

-  GLU_MAP1_TRIM_2* = 100210

-  GLU_MAP1_TRIM_3* = 100211

-  GLU_OUTLINE_POLYGON* = 100240

-  GLU_OUTLINE_PATCH* = 100241

-  GLU_NURBS_ERROR1* = 100251

-  GLU_NURBS_ERROR2* = 100252

-  GLU_NURBS_ERROR3* = 100253

-  GLU_NURBS_ERROR4* = 100254

-  GLU_NURBS_ERROR5* = 100255

-  GLU_NURBS_ERROR6* = 100256

-  GLU_NURBS_ERROR7* = 100257

-  GLU_NURBS_ERROR8* = 100258

-  GLU_NURBS_ERROR9* = 100259

-  GLU_NURBS_ERROR10* = 100260

-  GLU_NURBS_ERROR11* = 100261

-  GLU_NURBS_ERROR12* = 100262

-  GLU_NURBS_ERROR13* = 100263

-  GLU_NURBS_ERROR14* = 100264

-  GLU_NURBS_ERROR15* = 100265

-  GLU_NURBS_ERROR16* = 100266

-  GLU_NURBS_ERROR17* = 100267

-  GLU_NURBS_ERROR18* = 100268

-  GLU_NURBS_ERROR19* = 100269

-  GLU_NURBS_ERROR20* = 100270

-  GLU_NURBS_ERROR21* = 100271

-  GLU_NURBS_ERROR22* = 100272

-  GLU_NURBS_ERROR23* = 100273

-  GLU_NURBS_ERROR24* = 100274

-  GLU_NURBS_ERROR25* = 100275

-  GLU_NURBS_ERROR26* = 100276

-  GLU_NURBS_ERROR27* = 100277

-  GLU_NURBS_ERROR28* = 100278

-  GLU_NURBS_ERROR29* = 100279

-  GLU_NURBS_ERROR30* = 100280

-  GLU_NURBS_ERROR31* = 100281

-  GLU_NURBS_ERROR32* = 100282

-  GLU_NURBS_ERROR33* = 100283

-  GLU_NURBS_ERROR34* = 100284

-  GLU_NURBS_ERROR35* = 100285

-  GLU_NURBS_ERROR36* = 100286

-  GLU_NURBS_ERROR37* = 100287

-  GLU_CW* = 100120

-  GLU_CCW* = 100121

-  GLU_INTERIOR* = 100122

-  GLU_EXTERIOR* = 100123

-  GLU_UNKNOWN* = 100124

-  GLU_BEGIN* = GLU_TESS_BEGIN

-  GLU_VERTEX* = cGLU_TESS_VERTEX

-  GLU_END* = GLU_TESS_END

-  GLU_ERROR* = GLU_TESS_ERROR

-  GLU_EDGE_FLAG* = GLU_TESS_EDGE_FLAG

-

-proc glCullFace*(mode: GLenum){.stdcall, importc, ogl.}

-proc glFrontFace*(mode: GLenum){.stdcall, importc, ogl.}

-proc glHint*(target: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-proc glLineWidth*(width: GLfloat){.stdcall, importc, ogl.}

-proc glPointSize*(size: GLfloat){.stdcall, importc, ogl.}

-proc glPolygonMode*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-proc glScissor*(x: GLint, y: GLint, width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glTexParameterf*(target: GLenum, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glTexParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glTexParameteri*(target: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glTexParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glTexImage1D*(target: GLenum, level: GLint, internalformat: GLint, 

-                   width: GLsizei, border: GLint, format: GLenum, typ: GLenum, 

-                   pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexImage2D*(target: GLenum, level: GLint, internalformat: GLint, 

-                   width: GLsizei, height: GLsizei, border: GLint, 

-                   format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawBuffer*(mode: GLenum){.stdcall, importc, ogl.}

-proc glClear*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glClearColor*(red: GLclampf, green: GLclampf, blue: GLclampf, 

-                   alpha: GLclampf){.stdcall, importc, ogl.}

-proc glClearStencil*(s: GLint){.stdcall, importc, ogl.}

-proc glClearDepth*(depth: GLclampd){.stdcall, importc, ogl.}

-proc glStencilMask*(mask: GLuint){.stdcall, importc, ogl.}

-proc glColorMask*(red: GLboolean, green: GLboolean, blue: GLboolean, 

-                  alpha: GLboolean){.stdcall, importc, ogl.}

-proc glDepthMask*(flag: GLboolean){.stdcall, importc, ogl.}

-proc glDisable*(cap: GLenum){.stdcall, importc, ogl.}

-proc glEnable*(cap: GLenum){.stdcall, importc, ogl.}

-proc glFinish*(){.stdcall, importc, ogl.}

-proc glFlush*(){.stdcall, importc, ogl.}

-proc glBlendFunc*(sfactor: GLenum, dfactor: GLenum){.stdcall, importc, ogl.}

-proc glLogicOp*(opcode: GLenum){.stdcall, importc, ogl.}

-proc glStencilFunc*(func: GLenum, theRef: GLint, mask: GLuint){.stdcall, importc, ogl.}

-proc glStencilOp*(fail: GLenum, zfail: GLenum, zpass: GLenum){.stdcall, importc, ogl.}

-proc glDepthFunc*(func: GLenum){.stdcall, importc, ogl.}

-proc glPixelStoref*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelStorei*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glReadBuffer*(mode: GLenum){.stdcall, importc, ogl.}

-proc glReadPixels*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                   format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glGetBooleanv*(pname: GLenum, params: PGLboolean){.stdcall, importc, ogl.}

-proc glGetDoublev*(pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetError*(): GLenum{.stdcall, importc, ogl.}

-proc glGetFloatv*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetIntegerv*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetString*(name: GLenum): cstring{.stdcall, importc, ogl.}

-proc glGetTexImage*(target: GLenum, level: GLint, format: GLenum, typ: GLenum, 

-                    pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glGetTexParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetTexLevelParameterfv*(target: GLenum, level: GLint, pname: GLenum, 

-                               params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTexLevelParameteriv*(target: GLenum, level: GLint, pname: GLenum, 

-                               params: PGLint){.stdcall, importc, ogl.}

-proc glIsEnabled*(cap: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glDepthRange*(zNear: GLclampd, zFar: GLclampd){.stdcall, importc, ogl.}

-proc glViewport*(x: GLint, y: GLint, width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_VERSION_1_1

-proc glDrawArrays*(mode: GLenum, first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElements*(mode: GLenum, count: GLsizei, typ: GLenum, indices: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetPointerv*(pname: GLenum, params: PGLvoid){.stdcall, importc, ogl.}

-proc glPolygonOffset*(factor: GLfloat, units: GLfloat){.stdcall, importc, ogl.}

-proc glCopyTexImage1D*(target: GLenum, level: GLint, internalFormat: GLenum, 

-                       x: GLint, y: GLint, width: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyTexImage2D*(target: GLenum, level: GLint, internalFormat: GLenum, 

-                       x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                       border: GLint){.stdcall, importc, ogl.}

-proc glCopyTexSubImage1D*(target: GLenum, level: GLint, xoffset: GLint, 

-                          x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTexSubImage2D*(target: GLenum, level: GLint, xoffset: GLint, 

-                          yoffset: GLint, x: GLint, y: GLint, width: GLsizei, 

-                          height: GLsizei){.stdcall, importc, ogl.}

-proc glTexSubImage1D*(target: GLenum, level: GLint, xoffset: GLint, 

-                      width: GLsizei, format: GLenum, typ: GLenum, 

-                      pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage2D*(target: GLenum, level: GLint, xoffset: GLint, 

-                      yoffset: GLint, width: GLsizei, height: GLsizei, 

-                      format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glBindTexture*(target: GLenum, texture: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTextures*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glGenTextures*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glAccum*(op: GLenum, value: GLfloat){.stdcall, importc, ogl.}

-proc glAlphaFunc*(func: GLenum, theRef: GLclampf){.stdcall, importc, ogl.}

-proc glAreTexturesResident*(n: GLsizei, textures: PGLuint, 

-                            residences: PGLboolean): GLboolean{.stdcall, importc, ogl.}

-proc glArrayElement*(i: GLint){.stdcall, importc, ogl.}

-proc glBegin*(mode: GLenum){.stdcall, importc, ogl.}

-proc glBitmap*(width: GLsizei, height: GLsizei, xorig: GLfloat, yorig: GLfloat, 

-               xmove: GLfloat, ymove: GLfloat, bitmap: PGLubyte){.stdcall, importc, ogl.}

-proc glCallList*(list: GLuint){.stdcall, importc, ogl.}

-proc glCallLists*(n: GLsizei, typ: GLenum, lists: PGLvoid){.stdcall, importc, ogl.}

-proc glClearAccum*(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat){.

-    stdcall, importc, ogl.}

-proc glClearIndex*(c: GLfloat){.stdcall, importc, ogl.}

-proc glClipPlane*(plane: GLenum, equation: PGLdouble){.stdcall, importc, ogl.}

-proc glColor3b*(red: GLbyte, green: GLbyte, blue: GLbyte){.stdcall, importc, ogl.}

-proc glColor3bv*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glColor3bv*(v: TGLVectorb3){.stdcall, importc, ogl.}

-proc glColor3d*(red: GLdouble, green: GLdouble, blue: GLdouble){.stdcall, importc, ogl.}

-proc glColor3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glColor3dv*(v: TGLVectord3){.stdcall, importc, ogl.}

-proc glColor3f*(red: GLfloat, green: GLfloat, blue: GLfloat){.stdcall, importc, ogl.}

-proc glColor3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor3fv*(v: TGLVectorf3){.stdcall, importc, ogl.}

-proc glColor3i*(red: GLint, green: GLint, blue: GLint){.stdcall, importc, ogl.}

-proc glColor3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glColor3iv*(v: TGLVectori3){.stdcall, importc, ogl.}

-proc glColor3s*(red: GLshort, green: GLshort, blue: GLshort){.stdcall, importc, ogl.}

-proc glColor3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glColor3sv*(v: TGLVectors3){.stdcall, importc, ogl.}

-proc glColor3ub*(red: GLubyte, green: GLubyte, blue: GLubyte){.stdcall, importc, ogl.}

-proc glColor3ubv*(v: PGLubyte){.stdcall, importc, ogl.}

-proc glColor3ubv*(v: TGLVectorub3){.stdcall, importc, ogl.}

-proc glColor3ui*(red: GLuint, green: GLuint, blue: GLuint){.stdcall, importc, ogl.}

-proc glColor3uiv*(v: PGLuint){.stdcall, importc, ogl.}

-proc glColor3uiv*(v: TGLVectorui3){.stdcall, importc, ogl.}

-proc glColor3us*(red: GLushort, green: GLushort, blue: GLushort){.stdcall, importc, ogl.}

-proc glColor3usv*(v: PGLushort){.stdcall, importc, ogl.}

-proc glColor3usv*(v: TGLVectorus3){.stdcall, importc, ogl.}

-proc glColor4b*(red: GLbyte, green: GLbyte, blue: GLbyte, alpha: GLbyte){.

-    stdcall, importc, ogl.}

-proc glColor4bv*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glColor4bv*(v: TGLVectorb4){.stdcall, importc, ogl.}

-proc glColor4d*(red: GLdouble, green: GLdouble, blue: GLdouble, alpha: GLdouble){.

-    stdcall, importc, ogl.}

-proc glColor4dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glColor4dv*(v: TGLVectord4){.stdcall, importc, ogl.}

-proc glColor4f*(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat){.

-    stdcall, importc, ogl.}

-proc glColor4fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor4fv*(v: TGLVectorf4){.stdcall, importc, ogl.}

-proc glColor4i*(red: GLint, green: GLint, blue: GLint, alpha: GLint){.stdcall, importc, ogl.}

-proc glColor4iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glColor4iv*(v: TGLVectori4){.stdcall, importc, ogl.}

-proc glColor4s*(red: GLshort, green: GLshort, blue: GLshort, alpha: GLshort){.

-    stdcall, importc, ogl.}

-proc glColor4sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glColor4sv*(v: TGLVectors4){.stdcall, importc, ogl.}

-proc glColor4ub*(red: GLubyte, green: GLubyte, blue: GLubyte, alpha: GLubyte){.

-    stdcall, importc, ogl.}

-proc glColor4ubv*(v: PGLubyte){.stdcall, importc, ogl.}

-proc glColor4ubv*(v: TGLVectorub4){.stdcall, importc, ogl.}

-proc glColor4ui*(red: GLuint, green: GLuint, blue: GLuint, alpha: GLuint){.

-    stdcall, importc, ogl.}

-proc glColor4uiv*(v: PGLuint){.stdcall, importc, ogl.}

-proc glColor4uiv*(v: TGLVectorui4){.stdcall, importc, ogl.}

-proc glColor4us*(red: GLushort, green: GLushort, blue: GLushort, alpha: GLushort){.

-    stdcall, importc, ogl.}

-proc glColor4usv*(v: PGLushort){.stdcall, importc, ogl.}

-proc glColorMaterial*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-proc glColorPointer*(size: GLint, typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCopyPixels*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                   typ: GLenum){.stdcall, importc, ogl.}

-proc glDeleteLists*(list: GLuint, range: GLsizei){.stdcall, importc, ogl.}

-proc glDisableClientState*(arr: GLenum){.stdcall, importc, ogl.}

-proc glDrawPixels*(width: GLsizei, height: GLsizei, format: GLenum, typ: GLenum, 

-                   pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glEdgeFlag*(flag: GLboolean){.stdcall, importc, ogl.}

-proc glEdgeFlagPointer*(stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glEdgeFlagv*(flag: PGLboolean){.stdcall, importc, ogl.}

-proc glEnableClientState*(arr: GLenum){.stdcall, importc, ogl.}

-proc glEnd*(){.stdcall, importc, ogl.}

-proc glEndList*(){.stdcall, importc, ogl.}

-proc glEvalCoord1d*(u: GLdouble){.stdcall, importc, ogl.}

-proc glEvalCoord1dv*(u: PGLdouble){.stdcall, importc, ogl.}

-proc glEvalCoord1f*(u: GLfloat){.stdcall, importc, ogl.}

-proc glEvalCoord1fv*(u: PGLfloat){.stdcall, importc, ogl.}

-proc glEvalCoord2d*(u: GLdouble, v: GLdouble){.stdcall, importc, ogl.}

-proc glEvalCoord2dv*(u: PGLdouble){.stdcall, importc, ogl.}

-proc glEvalCoord2f*(u: GLfloat, v: GLfloat){.stdcall, importc, ogl.}

-proc glEvalCoord2fv*(u: PGLfloat){.stdcall, importc, ogl.}

-proc glEvalMesh1*(mode: GLenum, i1: GLint, i2: GLint){.stdcall, importc, ogl.}

-proc glEvalMesh2*(mode: GLenum, i1: GLint, i2: GLint, j1: GLint, j2: GLint){.

-    stdcall, importc, ogl.}

-proc glEvalPoint1*(i: GLint){.stdcall, importc, ogl.}

-proc glEvalPoint2*(i: GLint, j: GLint){.stdcall, importc, ogl.}

-proc glFeedbackBuffer*(size: GLsizei, typ: GLenum, buffer: PGLfloat){.stdcall, importc, ogl.}

-proc glFogf*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glFogfv*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glFogi*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glFogiv*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFrustum*(left: GLdouble, right: GLdouble, bottom: GLdouble, 

-                top: GLdouble, zNear: GLdouble, zFar: GLdouble){.stdcall, importc, ogl.}

-proc glGenLists*(range: GLsizei): GLuint{.stdcall, importc, ogl.}

-proc glGetClipPlane*(plane: GLenum, equation: PGLdouble){.stdcall, importc, ogl.}

-proc glGetLightfv*(light: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetLightiv*(light: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetMapdv*(target: GLenum, query: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glGetMapfv*(target: GLenum, query: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMapiv*(target: GLenum, query: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glGetMaterialfv*(face: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMaterialiv*(face: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetPixelMapfv*(map: GLenum, values: PGLfloat){.stdcall, importc, ogl.}

-proc glGetPixelMapuiv*(map: GLenum, values: PGLuint){.stdcall, importc, ogl.}

-proc glGetPixelMapusv*(map: GLenum, values: PGLushort){.stdcall, importc, ogl.}

-proc glGetPolygonStipple*(mask: PGLubyte){.stdcall, importc, ogl.}

-proc glGetTexEnvfv*(target: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTexEnviv*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetTexGendv*(coord: GLenum, pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetTexGenfv*(coord: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTexGeniv*(coord: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glIndexMask*(mask: GLuint){.stdcall, importc, ogl.}

-proc glIndexPointer*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glIndexd*(c: GLdouble){.stdcall, importc, ogl.}

-proc glIndexdv*(c: PGLdouble){.stdcall, importc, ogl.}

-proc glIndexf*(c: GLfloat){.stdcall, importc, ogl.}

-proc glIndexfv*(c: PGLfloat){.stdcall, importc, ogl.}

-proc glIndexi*(c: GLint){.stdcall, importc, ogl.}

-proc glIndexiv*(c: PGLint){.stdcall, importc, ogl.}

-proc glIndexs*(c: GLshort){.stdcall, importc, ogl.}

-proc glIndexsv*(c: PGLshort){.stdcall, importc, ogl.}

-proc glIndexub*(c: GLubyte){.stdcall, importc, ogl.}

-proc glIndexubv*(c: PGLubyte){.stdcall, importc, ogl.}

-proc glInitNames*(){.stdcall, importc, ogl.}

-proc glInterleavedArrays*(format: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glIsList*(list: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glIsTexture*(texture: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glLightModelf*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glLightModelfv*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glLightModeli*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glLightModeliv*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glLightf*(light: GLenum, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glLightfv*(light: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glLighti*(light: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glLightiv*(light: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glLineStipple*(factor: GLint, pattern: GLushort){.stdcall, importc, ogl.}

-proc glListBase*(base: GLuint){.stdcall, importc, ogl.}

-proc glLoadIdentity*(){.stdcall, importc, ogl.}

-proc glLoadMatrixd*(m: PGLdouble){.stdcall, importc, ogl.}

-proc glLoadMatrixf*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glLoadName*(name: GLuint){.stdcall, importc, ogl.}

-proc glMap1d*(target: GLenum, u1: GLdouble, u2: GLdouble, stride: GLint, 

-              order: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glMap1f*(target: GLenum, u1: GLfloat, u2: GLfloat, stride: GLint, 

-              order: GLint, points: PGLfloat){.stdcall, importc, ogl.}

-proc glMap2d*(target: GLenum, u1: GLdouble, u2: GLdouble, ustride: GLint, 

-              uorder: GLint, v1: GLdouble, v2: GLdouble, vstride: GLint, 

-              vorder: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glMap2f*(target: GLenum, u1: GLfloat, u2: GLfloat, ustride: GLint, 

-              uorder: GLint, v1: GLfloat, v2: GLfloat, vstride: GLint, 

-              vorder: GLint, points: PGLfloat){.stdcall, importc, ogl.}

-proc glMapGrid1d*(un: GLint, u1: GLdouble, u2: GLdouble){.stdcall, importc, ogl.}

-proc glMapGrid1f*(un: GLint, u1: GLfloat, u2: GLfloat){.stdcall, importc, ogl.}

-proc glMapGrid2d*(un: GLint, u1: GLdouble, u2: GLdouble, vn: GLint, 

-                  v1: GLdouble, v2: GLdouble){.stdcall, importc, ogl.}

-proc glMapGrid2f*(un: GLint, u1: GLfloat, u2: GLfloat, vn: GLint, v1: GLfloat, 

-                  v2: GLfloat){.stdcall, importc, ogl.}

-proc glMaterialf*(face: GLenum, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glMaterialfv*(face: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glMateriali*(face: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glMaterialiv*(face: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glMatrixMode*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMultMatrixd*(m: PGLdouble){.stdcall, importc, ogl.}

-proc glMultMatrixf*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glNewList*(list: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glNormal3b*(nx: GLbyte, ny: GLbyte, nz: GLbyte){.stdcall, importc, ogl.}

-proc glNormal3bv*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glNormal3d*(nx: GLdouble, ny: GLdouble, nz: GLdouble){.stdcall, importc, ogl.}

-proc glNormal3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glNormal3f*(nx: GLfloat, ny: GLfloat, nz: GLfloat){.stdcall, importc, ogl.}

-proc glNormal3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glNormal3i*(nx: GLint, ny: GLint, nz: GLint){.stdcall, importc, ogl.}

-proc glNormal3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glNormal3s*(nx: GLshort, ny: GLshort, nz: GLshort){.stdcall, importc, ogl.}

-proc glNormal3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glNormalPointer*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glOrtho*(left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, 

-              zNear: GLdouble, zFar: GLdouble){.stdcall, importc, ogl.}

-proc glPassThrough*(token: GLfloat){.stdcall, importc, ogl.}

-proc glPixelMapfv*(map: GLenum, mapsize: GLsizei, values: PGLfloat){.stdcall, importc, ogl.}

-proc glPixelMapuiv*(map: GLenum, mapsize: GLsizei, values: PGLuint){.stdcall, importc, ogl.}

-proc glPixelMapusv*(map: GLenum, mapsize: GLsizei, values: PGLushort){.stdcall, importc, ogl.}

-proc glPixelTransferf*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelTransferi*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPixelZoom*(xfactor: GLfloat, yfactor: GLfloat){.stdcall, importc, ogl.}

-proc glPolygonStipple*(mask: PGLubyte){.stdcall, importc, ogl.}

-proc glPopAttrib*(){.stdcall, importc, ogl.}

-proc glPopClientAttrib*(){.stdcall, importc, ogl.}

-proc glPopMatrix*(){.stdcall, importc, ogl.}

-proc glPopName*(){.stdcall, importc, ogl.}

-proc glPrioritizeTextures*(n: GLsizei, textures: PGLuint, priorities: PGLclampf){.

-    stdcall, importc, ogl.}

-proc glPushAttrib*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glPushClientAttrib*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glPushMatrix*(){.stdcall, importc, ogl.}

-proc glPushName*(name: GLuint){.stdcall, importc, ogl.}

-proc glRasterPos2d*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glRasterPos2dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glRasterPos2f*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glRasterPos2fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glRasterPos2i*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glRasterPos2iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glRasterPos2s*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glRasterPos2sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glRasterPos3d*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glRasterPos3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glRasterPos3f*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glRasterPos3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glRasterPos3i*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glRasterPos3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glRasterPos3s*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glRasterPos3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glRasterPos4d*(x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glRasterPos4dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glRasterPos4f*(x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glRasterPos4fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glRasterPos4i*(x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glRasterPos4iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glRasterPos4s*(x: GLshort, y: GLshort, z: GLshort, w: GLshort){.stdcall, importc, ogl.}

-proc glRasterPos4sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glRectd*(x1: GLdouble, y1: GLdouble, x2: GLdouble, y2: GLdouble){.stdcall, importc, ogl.}

-proc glRectdv*(v1: PGLdouble, v2: PGLdouble){.stdcall, importc, ogl.}

-proc glRectf*(x1: GLfloat, y1: GLfloat, x2: GLfloat, y2: GLfloat){.stdcall, importc, ogl.}

-proc glRectfv*(v1: PGLfloat, v2: PGLfloat){.stdcall, importc, ogl.}

-proc glRecti*(x1: GLint, y1: GLint, x2: GLint, y2: GLint){.stdcall, importc, ogl.}

-proc glRectiv*(v1: PGLint, v2: PGLint){.stdcall, importc, ogl.}

-proc glRects*(x1: GLshort, y1: GLshort, x2: GLshort, y2: GLshort){.stdcall, importc, ogl.}

-proc glRectsv*(v1: PGLshort, v2: PGLshort){.stdcall, importc, ogl.}

-proc glRenderMode*(mode: GLenum): GLint{.stdcall, importc, ogl.}

-proc glRotated*(angle: GLdouble, x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glRotatef*(angle: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glScaled*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glScalef*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glSelectBuffer*(size: GLsizei, buffer: PGLuint){.stdcall, importc, ogl.}

-proc glShadeModel*(mode: GLenum){.stdcall, importc, ogl.}

-proc glTexCoord1d*(s: GLdouble){.stdcall, importc, ogl.}

-proc glTexCoord1dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTexCoord1f*(s: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord1fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord1i*(s: GLint){.stdcall, importc, ogl.}

-proc glTexCoord1iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glTexCoord1s*(s: GLshort){.stdcall, importc, ogl.}

-proc glTexCoord1sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTexCoord2d*(s: GLdouble, t: GLdouble){.stdcall, importc, ogl.}

-proc glTexCoord2dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTexCoord2f*(s: GLfloat, t: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2i*(s: GLint, t: GLint){.stdcall, importc, ogl.}

-proc glTexCoord2iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glTexCoord2s*(s: GLshort, t: GLshort){.stdcall, importc, ogl.}

-proc glTexCoord2sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTexCoord3d*(s: GLdouble, t: GLdouble, r: GLdouble){.stdcall, importc, ogl.}

-proc glTexCoord3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTexCoord3f*(s: GLfloat, t: GLfloat, r: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord3i*(s: GLint, t: GLint, r: GLint){.stdcall, importc, ogl.}

-proc glTexCoord3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glTexCoord3s*(s: GLshort, t: GLshort, r: GLshort){.stdcall, importc, ogl.}

-proc glTexCoord3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTexCoord4d*(s: GLdouble, t: GLdouble, r: GLdouble, q: GLdouble){.stdcall, importc, ogl.}

-proc glTexCoord4dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTexCoord4f*(s: GLfloat, t: GLfloat, r: GLfloat, q: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4i*(s: GLint, t: GLint, r: GLint, q: GLint){.stdcall, importc, ogl.}

-proc glTexCoord4iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glTexCoord4s*(s: GLshort, t: GLshort, r: GLshort, q: GLshort){.stdcall, importc, ogl.}

-proc glTexCoord4sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTexCoordPointer*(size: GLint, typ: GLenum, stride: GLsizei, 

-                        pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glTexEnvf*(target: GLenum, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glTexEnvfv*(target: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glTexEnvi*(target: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glTexEnviv*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glTexGend*(coord: GLenum, pname: GLenum, param: GLdouble){.stdcall, importc, ogl.}

-proc glTexGendv*(coord: GLenum, pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glTexGenf*(coord: GLenum, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glTexGenfv*(coord: GLenum, pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glTexGeni*(coord: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glTexGeniv*(coord: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glTranslated*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glTranslatef*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glVertex2d*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertex2dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertex2f*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertex2fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertex2i*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertex2iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glVertex2s*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertex2sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glVertex3d*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glVertex3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertex3f*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glVertex3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertex3i*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertex3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glVertex3s*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glVertex3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glVertex4d*(x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glVertex4dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertex4f*(x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glVertex4fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertex4i*(x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glVertex4iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glVertex4s*(x: GLshort, y: GLshort, z: GLshort, w: GLshort){.stdcall, importc, ogl.}

-proc glVertex4sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexPointer*(size: GLint, typ: GLenum, stride: GLsizei, 

-                      pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_VERSION_1_2

-proc glBlendColor*(red: GLclampf, green: GLclampf, blue: GLclampf, 

-                   alpha: GLclampf){.stdcall, importc, ogl.}

-proc glBlendEquation*(mode: GLenum){.stdcall, importc, ogl.}

-proc glDrawRangeElements*(mode: GLenum, start: GLuint, ending: GLuint, 

-                          count: GLsizei, typ: GLenum, indices: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glTexImage3D*(target: GLenum, level: GLint, internalformat: GLint, 

-                   width: GLsizei, height: GLsizei, depth: GLsizei, 

-                   border: GLint, format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glTexSubImage3D*(target: GLenum, level: GLint, xoffset: GLint, 

-                      yoffset: GLint, zoffset: GLint, width: GLsizei, 

-                      height: GLsizei, depth: GLsizei, format: GLenum, 

-                      typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyTexSubImage3D*(target: GLenum, level: GLint, xoffset: GLint, 

-                          yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, 

-                          width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glColorTable*(target: GLenum, internalformat: GLenum, width: GLsizei, 

-                   format: GLenum, typ: GLenum, table: PGLvoid){.stdcall, importc, ogl.}

-proc glColorTableParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glColorTableParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyColorTable*(target: GLenum, internalformat: GLenum, x: GLint, 

-                       y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glGetColorTable*(target: GLenum, format: GLenum, typ: GLenum, 

-                      table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetColorTableParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glColorSubTable*(target: GLenum, start: GLsizei, count: GLsizei, 

-                      format: GLenum, typ: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyColorSubTable*(target: GLenum, start: GLsizei, x: GLint, y: GLint, 

-                          width: GLsizei){.stdcall, importc, ogl.}

-proc glConvolutionFilter1D*(target: GLenum, internalformat: GLenum, 

-                            width: GLsizei, format: GLenum, typ: GLenum, 

-                            image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionFilter2D*(target: GLenum, internalformat: GLenum, 

-                            width: GLsizei, height: GLsizei, format: GLenum, 

-                            typ: GLenum, image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionParameterf*(target: GLenum, pname: GLenum, params: GLfloat){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameteri*(target: GLenum, pname: GLenum, params: GLint){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyConvolutionFilter1D*(target: GLenum, internalformat: GLenum, 

-                                x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyConvolutionFilter2D*(target: GLenum, internalformat: GLenum, 

-                                x: GLint, y: GLint, width: GLsizei, 

-                                height: GLsizei){.stdcall, importc, ogl.}

-proc glGetConvolutionFilter*(target: GLenum, format: GLenum, typ: GLenum, 

-                             image: PGLvoid){.stdcall, importc, ogl.}

-proc glGetConvolutionParameterfv*(target: GLenum, pname: GLenum, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetConvolutionParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetSeparableFilter*(target: GLenum, format: GLenum, typ: GLenum, 

-                           row: PGLvoid, column: PGLvoid, span: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glSeparableFilter2D*(target: GLenum, internalformat: GLenum, 

-                          width: GLsizei, height: GLsizei, format: GLenum, 

-                          typ: GLenum, row: PGLvoid, column: PGLvoid){.stdcall, importc, ogl.}

-proc glGetHistogram*(target: GLenum, reset: GLboolean, format: GLenum, 

-                     typ: GLenum, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetHistogramParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetHistogramParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetMinmax*(target: GLenum, reset: GLboolean, format: GLenum, typ: GLenum, 

-                  values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetMinmaxParameterfv*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMinmaxParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glHistogram*(target: GLenum, width: GLsizei, internalformat: GLenum, 

-                  sink: GLboolean){.stdcall, importc, ogl.}

-proc glMinmax*(target: GLenum, internalformat: GLenum, sink: GLboolean){.stdcall, importc, ogl.}

-proc glResetHistogram*(target: GLenum){.stdcall, importc, ogl.}

-proc glResetMinmax*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_VERSION_1_3

-proc glActiveTexture*(texture: GLenum){.stdcall, importc, ogl.}

-proc glSampleCoverage*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-proc glCompressedTexImage3D*(target: GLenum, level: GLint, 

-                             internalformat: GLenum, width: GLsizei, 

-                             height: GLsizei, depth: GLsizei, border: GLint, 

-                             imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage2D*(target: GLenum, level: GLint, 

-                             internalformat: GLenum, width: GLsizei, 

-                             height: GLsizei, border: GLint, imageSize: GLsizei, 

-                             data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage1D*(target: GLenum, level: GLint, 

-                             internalformat: GLenum, width: GLsizei, 

-                             border: GLint, imageSize: GLsizei, data: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTexSubImage3D*(target: GLenum, level: GLint, xoffset: GLint, 

-                                yoffset: GLint, zoffset: GLint, width: GLsizei, 

-                                height: GLsizei, depth: GLsizei, format: GLenum, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage2D*(target: GLenum, level: GLint, xoffset: GLint, 

-                                yoffset: GLint, width: GLsizei, height: GLsizei, 

-                                format: GLenum, imageSize: GLsizei, 

-                                data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage1D*(target: GLenum, level: GLint, xoffset: GLint, 

-                                width: GLsizei, format: GLenum, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetCompressedTexImage*(target: GLenum, level: GLint, img: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glClientActiveTexture*(texture: GLenum){.stdcall, importc, ogl.}

-proc glMultiTexCoord1d*(target: GLenum, s: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1dv*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1f*(target: GLenum, s: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1fv*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1i*(target: GLenum, s: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1iv*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1s*(target: GLenum, s: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord1sv*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2d*(target: GLenum, s: GLdouble, t: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2dv*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2f*(target: GLenum, s: GLfloat, t: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2fv*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2i*(target: GLenum, s: GLint, t: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2iv*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2s*(target: GLenum, s: GLshort, t: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2sv*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord3d*(target: GLenum, s: GLdouble, t: GLdouble, r: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3dv*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord3f*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3fv*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord3i*(target: GLenum, s: GLint, t: GLint, r: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord3iv*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord3s*(target: GLenum, s: GLshort, t: GLshort, r: GLshort){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3sv*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4d*(target: GLenum, s: GLdouble, t: GLdouble, r: GLdouble, 

-                        q: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4dv*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4f*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat, 

-                        q: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4fv*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4i*(target: GLenum, s: GLint, t: GLint, r: GLint, q: GLint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord4iv*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord4s*(target: GLenum, s: GLshort, t: GLshort, r: GLshort, 

-                        q: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4sv*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glLoadTransposeMatrixf*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glLoadTransposeMatrixd*(m: PGLdouble){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixf*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixd*(m: PGLdouble){.stdcall, importc, ogl.}

-  # GL_VERSION_1_4

-proc glBlendFuncSeparate*(sfactorRGB: GLenum, dfactorRGB: GLenum, 

-                          sfactorAlpha: GLenum, dfactorAlpha: GLenum){.stdcall, importc, ogl.}

-proc glMultiDrawArrays*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                        primcount: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawElements*(mode: GLenum, count: PGLsizei, typ: GLenum, 

-                          indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-proc glPointParameterf*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfv*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glPointParameteri*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPointParameteriv*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFogCoordf*(coord: GLfloat){.stdcall, importc, ogl.}

-proc glFogCoordfv*(coord: PGLfloat){.stdcall, importc, ogl.}

-proc glFogCoordd*(coord: GLdouble){.stdcall, importc, ogl.}

-proc glFogCoorddv*(coord: PGLdouble){.stdcall, importc, ogl.}

-proc glFogCoordPointer*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glSecondaryColor3b*(red: GLbyte, green: GLbyte, blue: GLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3bv*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3d*(red: GLdouble, green: GLdouble, blue: GLdouble){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glSecondaryColor3f*(red: GLfloat, green: GLfloat, blue: GLfloat){.stdcall, importc, ogl.}

-proc glSecondaryColor3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glSecondaryColor3i*(red: GLint, green: GLint, blue: GLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3s*(red: GLshort, green: GLshort, blue: GLshort){.stdcall, importc, ogl.}

-proc glSecondaryColor3sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glSecondaryColor3ub*(red: GLubyte, green: GLubyte, blue: GLubyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3ubv*(v: PGLubyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3ui*(red: GLuint, green: GLuint, blue: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3uiv*(v: PGLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3us*(red: GLushort, green: GLushort, blue: GLushort){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3usv*(v: PGLushort){.stdcall, importc, ogl.}

-proc glSecondaryColorPointer*(size: GLint, typ: GLenum, stride: GLsizei, 

-                              pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glWindowPos2d*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2f*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2i*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glWindowPos2iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos2s*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos2sv*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos3d*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3dv*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3f*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3fv*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3i*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glWindowPos3iv*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos3s*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos3sv*(v: PGLshort){.stdcall, importc, ogl.}

-  # GL_VERSION_1_5

-proc glGenQueries*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteQueries*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsQuery*(id: GLuint): bool{.stdcall, importc, ogl.}

-proc glBeginQuery*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glEndQuery*(target: GLenum){.stdcall, importc, ogl.}

-proc glGetQueryiv*(target, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectiv*(id: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectuiv*(id: GLuint, pname: GLenum, params: PGLuint){.stdcall, importc, ogl.}

-proc glBindBuffer*(target: GLenum, buffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteBuffers*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenBuffers*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glIsBuffer*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBufferData*(target: GLenum, size: GLsizeiptr, data: PGLvoid, 

-                   usage: GLenum){.stdcall, importc, ogl.}

-proc glBufferSubData*(target: GLenum, offset: GLintptr, size: GLsizeiptr, 

-                      data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetBufferSubData*(target: GLenum, offset: GLintptr, size: GLsizeiptr, 

-                         data: PGLvoid){.stdcall, importc, ogl.}

-proc glMapBuffer*(target: GLenum, access: GLenum): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapBuffer*(target: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glGetBufferParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetBufferPointerv*(target: GLenum, pname: GLenum, params: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_VERSION_2_0

-proc glBlendEquationSeparate*(modeRGB: GLenum, modeAlpha: GLenum){.stdcall, importc, ogl.}

-proc glDrawBuffers*(n: GLsizei, bufs: PGLenum){.stdcall, importc, ogl.}

-proc glStencilOpSeparate*(face: GLenum, sfail: GLenum, dpfail: GLenum, 

-                          dppass: GLenum){.stdcall, importc, ogl.}

-proc glStencilFuncSeparate*(face: GLenum, func: GLenum, theRef: GLint, mask: GLuint){.

-    stdcall, importc, ogl.}

-proc glStencilMaskSeparate*(face: GLenum, mask: GLuint){.stdcall, importc, ogl.}

-proc glAttachShader*(programObj, shaderObj: GLhandle){.stdcall, importc, ogl.}

-proc glBindAttribLocation*(programObj: GLhandle, index: GLuint, name: PGLChar){.

-    stdcall, importc, ogl.}

-proc glCompileShader*(shaderObj: GLhandle){.stdcall, importc, ogl.}

-proc glCreateProgram*(): GLhandle{.stdcall, importc, ogl.}

-proc glCreateShader*(shaderType: GLenum): GLhandle{.stdcall, importc, ogl.}

-proc glDeleteProgram*(programObj: GLhandle){.stdcall, importc, ogl.}

-proc glDeleteShader*(shaderObj: GLhandle){.stdcall, importc, ogl.}

-proc glDetachShader*(programObj, shaderObj: GLhandle){.stdcall, importc, ogl.}

-proc glDisableVertexAttribArray*(index: GLuint){.stdcall, importc, ogl.}

-proc glEnableVertexAttribArray*(index: GLuint){.stdcall, importc, ogl.}

-proc glGetActiveAttrib*(programObj: GLhandle, index: GLuint, maxlength: GLsizei, 

-                        len: var GLint, size: var GLint, typ: var GLenum, 

-                        name: PGLChar){.stdcall, importc, ogl.}

-proc glGetActiveUniform*(programObj: GLhandle, index: GLuint, 

-                         maxLength: GLsizei, len: var GLsizei, size: var GLint, 

-                         typ: var GLenum, name: PGLChar){.stdcall, importc, ogl.}

-proc glGetAttachedShaders*(programObj: GLhandle, MaxCount: GLsizei, 

-                           Count: var GLint, shaders: PGLuint){.stdcall, importc, ogl.}

-proc glGetAttribLocation*(programObj: GLhandle, char: PGLChar): glint{.stdcall, importc, ogl.}

-proc glGetProgramiv*(programObj: GLhandle, pname: GLenum, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetProgramInfoLog*(programObj: GLHandle, maxLength: glsizei, 

-                          len: var GLint, infoLog: PGLChar){.stdcall, importc, ogl.}

-proc glGetShaderiv*(shaderObj: GLhandle, pname: GLenum, params: PGLInt){.stdcall, importc, ogl.}

-proc glGetShaderInfoLog*(shaderObj: GLHandle, maxLength: glsizei, 

-                         len: var glint, infoLog: PGLChar){.stdcall, importc, ogl.}

-proc glGetShaderSource*(shaderObj: GLhandle, maxlength: GLsizei, 

-                        len: var GLsizei, source: PGLChar){.stdcall, importc, ogl.}

-proc glGetUniformLocation*(programObj: GLhandle, char: PGLChar): glint{.stdcall, importc, ogl.}

-proc glGetUniformfv*(programObj: GLhandle, location: GLint, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetUniformiv*(programObj: GLhandle, location: GLint, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribfv*(index: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribiv*(index: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetVertexAttribPointerv*(index: GLuint, pname: GLenum, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glIsProgram*(programObj: GLhandle): GLboolean{.stdcall, importc, ogl.}

-proc glIsShader*(shaderObj: GLhandle): GLboolean{.stdcall, importc, ogl.}

-proc glLinkProgram*(programObj: GLHandle){.stdcall, importc, ogl.}

-proc glShaderSource*(shaderObj: GLHandle, count: glsizei, string: cstringArray, 

-                     lengths: pglint){.stdcall, importc, ogl.}

-proc glUseProgram*(programObj: GLhandle){.stdcall, importc, ogl.}

-proc glUniform1f*(location: GLint, v0: GLfloat){.stdcall, importc, ogl.}

-proc glUniform2f*(location: GLint, v0, v1: GLfloat){.stdcall, importc, ogl.}

-proc glUniform3f*(location: GLint, v0, v1, v2: GLfloat){.stdcall, importc, ogl.}

-proc glUniform4f*(location: GLint, v0, v1, v2, v3: GLfloat){.stdcall, importc, ogl.}

-proc glUniform1i*(location: GLint, v0: GLint){.stdcall, importc, ogl.}

-proc glUniform2i*(location: GLint, v0, v1: GLint){.stdcall, importc, ogl.}

-proc glUniform3i*(location: GLint, v0, v1, v2: GLint){.stdcall, importc, ogl.}

-proc glUniform4i*(location: GLint, v0, v1, v2, v3: GLint){.stdcall, importc, ogl.}

-proc glUniform1fv*(location: GLint, count: GLsizei, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniform2fv*(location: GLint, count: GLsizei, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniform3fv*(location: GLint, count: GLsizei, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniform4fv*(location: GLint, count: GLsizei, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniform1iv*(location: GLint, count: GLsizei, value: PGLint){.stdcall, importc, ogl.}

-proc glUniform2iv*(location: GLint, count: GLsizei, value: PGLint){.stdcall, importc, ogl.}

-proc glUniform3iv*(location: GLint, count: GLsizei, value: PGLint){.stdcall, importc, ogl.}

-proc glUniform4iv*(location: GLint, count: GLsizei, value: PGLint){.stdcall, importc, ogl.}

-proc glUniformMatrix2fv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3fv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4fv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLfloat){.stdcall, importc, ogl.}

-proc glValidateProgram*(programObj: GLhandle){.stdcall, importc, ogl.}

-proc glVertexAttrib1d*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1f*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1s*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2d*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2f*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2s*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3f*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3s*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nbv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Niv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nsv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nub*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                         w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nuiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4Nusv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttrib4bv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                       w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4f*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                       w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4s*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                       w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4usv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                            normalized: GLboolean, stride: GLsizei, 

-                            pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_VERSION_2_1

-proc glUniformMatrix2x3fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3x2fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix2x4fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4x2fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3x4fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4x3fv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-  # GL_VERSION_3_0

-  # OpenGL 3.0 also reuses entry points from these extensions: 

-  # ARB_framebuffer_object 

-  # ARB_map_buffer_range 

-  # ARB_vertex_array_object 

-proc glColorMaski*(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, 

-                   a: GLboolean){.stdcall, importc, ogl.}

-proc glGetBooleani_v*(target: GLenum, index: GLuint, data: PGLboolean){.stdcall, importc, ogl.}

-proc glGetIntegeri_v*(target: GLenum, index: GLuint, data: PGLint){.stdcall, importc, ogl.}

-proc glEnablei*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisablei*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glIsEnabledi*(target: GLenum, index: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBeginTransformFeedback*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedback*(){.stdcall, importc, ogl.}

-proc glBindBufferRange*(target: GLenum, index: GLuint, buffer: GLuint, 

-                        offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferBase*(target: GLenum, index: GLuint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glTransformFeedbackVaryings*(prog: GLuint, count: GLsizei, 

-                                  varyings: cstringArray, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glGetTransformFeedbackVarying*(prog: GLuint, index: GLuint, 

-                                    bufSize: GLsizei, len: PGLsizei, 

-                                    size: PGLsizei, typ: PGLsizei, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glClampColor*(targe: GLenum, clamp: GLenum){.stdcall, importc, ogl.}

-proc glBeginConditionalRender*(id: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glEndConditionalRender*(){.stdcall, importc, ogl.}

-proc glVertexAttribIPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                             stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribIiv*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribIuiv*(index: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1i*(index: GLuint, x: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2i*(index: GLuint, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3i*(index: GLuint, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4i*(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1ui*(index: GLuint, x: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2ui*(index: GLuint, x: GLuint, y: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3ui*(index: GLuint, x: GLuint, y: GLuint, z: GLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI4ui*(index: GLuint, x: GLuint, y: GLuint, z: GLuint, 

-                         w: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI1iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4iv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI1uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4uiv*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4bv*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4sv*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribI4ubv*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4usv*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glGetUniformuiv*(prog: GLuint, location: GLint, params: PGLuint){.stdcall, importc, ogl.}

-proc glBindFragDataLocation*(prog: GLuint, color: GLuint, name: PGLChar){.

-    stdcall, importc, ogl.}

-proc glGetFragDataLocation*(prog: GLuint, name: PGLChar): GLint{.stdcall, importc, ogl.}

-proc glUniform1ui*(location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glUniform2ui*(location: GLint, v0: GLuint, v1: GLuint){.stdcall, importc, ogl.}

-proc glUniform3ui*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint){.stdcall, importc, ogl.}

-proc glUniform4ui*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, 

-                   v3: GLuint){.stdcall, importc, ogl.}

-proc glUniform1uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform2uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform3uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform4uiv*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glTexParameterIiv*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glTexParameterIuiv*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIiv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIuiv*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glClearBufferiv*(buffer: GLenum, drawbuffer: GLint, value: PGLint){.stdcall, importc, ogl.}

-proc glClearBufferuiv*(buffer: GLenum, drawbuffer: GLint, value: PGLuint){.

-    stdcall, importc, ogl.}

-proc glClearBufferfv*(buffer: GLenum, drawbuffer: GLint, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glClearBufferfi*(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, 

-                      stencil: GLint){.stdcall, importc, ogl.}

-proc glGetStringi*(name: GLenum, index: GLuint): PGLubyte{.stdcall, importc, ogl.}

-  # GL_VERSION_3_1

-  # OpenGL 3.1 also reuses entry points from these extensions: 

-  # ARB_copy_buffer 

-  # ARB_uniform_buffer_object 

-proc glDrawArraysInstanced*(mode: GLenum, first: GLint, count: GLsizei, 

-                            primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstanced*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                              indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-proc glTexBuffer*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glPrimitiveRestartIndex*(index: GLuint){.stdcall, importc, ogl.}

-  # GL_VERSION_3_2

-  # OpenGL 3.2 also reuses entry points from these extensions: 

-  # ARB_draw_elements_base_vertex 

-  # ARB_provoking_vertex 

-  # ARB_sync 

-  # ARB_texture_multisample 

-proc glGetInteger64i_v*(target: GLenum, index: GLuint, data: PGLint64){.stdcall, importc, ogl.}

-proc glGetBufferParameteri64v*(target: GLenum, pname: GLenum, params: PGLint64){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture*(target: GLenum, attachment: GLenum, texture: GLuint, 

-                           level: GLint){.stdcall, importc, ogl.}

-  #procedure glFramebufferTextureFace(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; face: GLenum); stdcall, importc, ogl;

-  # GL_VERSION_3_3

-  # OpenGL 3.3 also reuses entry points from these extensions: 

-  # ARB_blend_func_extended 

-  # ARB_sampler_objects 

-  # ARB_explicit_attrib_location, but it has none 

-  # ARB_occlusion_query2 (no entry points) 

-  # ARB_shader_bit_encoding (no entry points) 

-  # ARB_texture_rgb10_a2ui (no entry points) 

-  # ARB_texture_swizzle (no entry points) 

-  # ARB_timer_query 

-  # ARB_vertextyp_2_10_10_10_rev 

-proc glVertexAttribDivisor*(index: GLuint, divisor: GLuint){.stdcall, importc, ogl.}

-  # GL_VERSION_4_0

-  # OpenGL 4.0 also reuses entry points from these extensions: 

-  # ARB_texture_query_lod (no entry points) 

-  # ARB_draw_indirect 

-  # ARB_gpu_shader5 (no entry points) 

-  # ARB_gpu_shader_fp64 

-  # ARB_shader_subroutine 

-  # ARB_tessellation_shader 

-  # ARB_texture_buffer_object_rgb32 (no entry points) 

-  # ARB_texture_cube_map_array (no entry points) 

-  # ARB_texture_gather (no entry points) 

-  # ARB_transform_feedback2 

-  # ARB_transform_feedback3 

-proc glMinSampleShading*(value: GLclampf){.stdcall, importc, ogl.}

-proc glBlendEquationi*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparatei*(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum){.

-    stdcall, importc, ogl.}

-proc glBlendFunci*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparatei*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                           srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_VERSION_4_1

-  # OpenGL 4.1 also reuses entry points from these extensions: 

-  # ARB_ES2_compatibility 

-  # ARB_get_program_binary 

-  # ARB_separate_shader_objects 

-  # ARB_shader_precision (no entry points) 

-  # ARB_vertex_attrib_64bit 

-  # ARB_viewport_array 

-  # GL_3DFX_tbuffer

-proc glTbufferMask3DFX*(mask: GLuint){.stdcall, importc, ogl.}

-  # GL_APPLE_element_array

-proc glElementPointerAPPLE*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementArrayAPPLE*(mode: GLenum, first: GLint, count: GLsizei){.

-    stdcall, importc, ogl.}

-proc glDrawRangeElementArrayAPPLE*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                   first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawElementArrayAPPLE*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                                   primcount: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawRangeElementArrayAPPLE*(mode: GLenum, start: GLuint, 

-                                        ending: GLuint, first: PGLint, 

-                                        count: PGLsizei, primcount: GLsizei){.

-    stdcall, importc, ogl.}

-  # GL_APPLE_fence

-proc glGenFencesAPPLE*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteFencesAPPLE*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glSetFenceAPPLE*(fence: GLuint){.stdcall, importc, ogl.}

-proc glIsFenceAPPLE*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glTestFenceAPPLE*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glFinishFenceAPPLE*(fence: GLuint){.stdcall, importc, ogl.}

-proc glTestObjectAPPLE*(obj: GLenum, name: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glFinishObjectAPPLE*(obj: GLenum, name: GLint){.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_array_object

-proc glBindVertexArrayAPPLE*(arr: GLuint){.stdcall, importc, ogl.}

-proc glDeleteVertexArraysAPPLE*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glGenVertexArraysAPPLE*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glIsVertexArrayAPPLE*(arr: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_array_range

-proc glVertexArrayRangeAPPLE*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glFlushVertexArrayRangeAPPLE*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexArrayParameteriAPPLE*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-  # GL_APPLE_texture_range

-proc glTextureRangeAPPLE*(target: GLenum, len: GLsizei, Pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterPointervAPPLE*(target: GLenum, pname: GLenum, 

-                                     params: PPGLvoid){.stdcall, importc, ogl.}

-  # GL_APPLE_vertex_program_evaluators

-proc glEnableVertexAttribAPPLE*(index: GLuint, pname: GLenum){.stdcall, importc, ogl.}

-proc glDisableVertexAttribAPPLE*(index: GLuint, pname: GLenum){.stdcall, importc, ogl.}

-proc glIsVertexAttribEnabledAPPLE*(index: GLuint, pname: GLenum): GLboolean{.

-    stdcall, importc, ogl.}

-proc glMapVertexAttrib1dAPPLE*(index: GLuint, size: GLuint, u1: GLdouble, 

-                               u2: GLdouble, stride: GLint, order: GLint, 

-                               points: PGLdouble){.stdcall, importc, ogl.}

-proc glMapVertexAttrib1fAPPLE*(index: GLuint, size: GLuint, u1: GLfloat, 

-                               u2: GLfloat, stride: GLint, order: GLint, 

-                               points: PGLfloat){.stdcall, importc, ogl.}

-proc glMapVertexAttrib2dAPPLE*(index: GLuint, size: GLuint, u1: GLdouble, 

-                               u2: GLdouble, ustride: GLint, uorder: GLint, 

-                               v1: GLdouble, v2: GLdouble, vstride: GLint, 

-                               vorder: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glMapVertexAttrib2fAPPLE*(index: GLuint, size: GLuint, u1: GLfloat, 

-                               u2: GLfloat, ustride: GLint, order: GLint, 

-                               v1: GLfloat, v2: GLfloat, vstride: GLint, 

-                               vorder: GLint, points: GLfloat){.stdcall, importc, ogl.}

-  # GL_APPLE_object_purgeable

-proc glObjectPurgeableAPPLE*(objectType: GLenum, name: GLuint, option: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glObjectUnpurgeableAPPLE*(objectType: GLenum, name: GLuint, option: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glGetObjectParameterivAPPLE*(objectType: GLenum, name: GLuint, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_matrix_palette

-proc glCurrentPaletteMatrixARB*(index: GLint){.stdcall, importc, ogl.}

-proc glMatrixIndexubvARB*(size: GLint, indices: PGLubyte){.stdcall, importc, ogl.}

-proc glMatrixIndexusvARB*(size: GLint, indices: PGLushort){.stdcall, importc, ogl.}

-proc glMatrixIndexuivARB*(size: GLint, indices: PGLuint){.stdcall, importc, ogl.}

-proc glMatrixIndexPointerARB*(size: GLint, typ: GLenum, stride: GLsizei, 

-                              pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_ARB_multisample

-proc glSampleCoverageARB*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-  # GL_ARB_multitexture

-proc glActiveTextureARB*(texture: GLenum){.stdcall, importc, ogl.}

-proc glClientActiveTextureARB*(texture: GLenum){.stdcall, importc, ogl.}

-proc glMultiTexCoord1dARB*(target: GLenum, s: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord1fARB*(target: GLenum, s: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord1iARB*(target: GLenum, s: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord1sARB*(target: GLenum, s: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord1svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2dARB*(target: GLenum, s: GLdouble, t: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord2fARB*(target: GLenum, s: GLfloat, t: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord2iARB*(target: GLenum, s: GLint, t: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord2sARB*(target: GLenum, s: GLshort, t: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord2svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord3dARB*(target: GLenum, s: GLdouble, t: GLdouble, r: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord3fARB*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord3iARB*(target: GLenum, s: GLint, t: GLint, r: GLint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord3sARB*(target: GLenum, s: GLshort, t: GLshort, r: GLshort){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4dARB*(target: GLenum, s: GLdouble, t: GLdouble, 

-                           r: GLdouble, q: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4dvARB*(target: GLenum, v: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexCoord4fARB*(target: GLenum, s: GLfloat, t: GLfloat, r: GLfloat, 

-                           q: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4fvARB*(target: GLenum, v: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexCoord4iARB*(target: GLenum, s: GLint, t: GLint, r: GLint, 

-                           q: GLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord4ivARB*(target: GLenum, v: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexCoord4sARB*(target: GLenum, s: GLshort, t: GLshort, r: GLshort, 

-                           q: GLshort){.stdcall, importc, ogl.}

-proc glMultiTexCoord4svARB*(target: GLenum, v: PGLshort){.stdcall, importc, ogl.}

-  # GL_ARB_point_parameters

-proc glPointParameterfARB*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvARB*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ARB_texture_compression

-proc glCompressedTexImage3DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                height: GLsizei, depth: GLsizei, border: GLint, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage2DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                height: GLsizei, border: GLint, 

-                                imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexImage1DARB*(target: GLenum, level: GLint, 

-                                internalformat: GLenum, width: GLsizei, 

-                                border: GLint, imageSize: GLsizei, data: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTexSubImage3DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   yoffset: GLint, zoffset: GLint, 

-                                   width: GLsizei, height: GLsizei, 

-                                   depth: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage2DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   yoffset: GLint, width: GLsizei, 

-                                   height: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTexSubImage1DARB*(target: GLenum, level: GLint, xoffset: GLint, 

-                                   width: GLsizei, format: GLenum, 

-                                   imageSize: GLsizei, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetCompressedTexImageARB*(target: GLenum, level: GLint, img: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_transpose_matrix

-proc glLoadTransposeMatrixfARB*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glLoadTransposeMatrixdARB*(m: PGLdouble){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixfARB*(m: PGLfloat){.stdcall, importc, ogl.}

-proc glMultTransposeMatrixdARB*(m: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_blend

-proc glWeightbvARB*(size: GLint, weights: PGLbyte){.stdcall, importc, ogl.}

-proc glWeightsvARB*(size: GLint, weights: PGLshort){.stdcall, importc, ogl.}

-proc glWeightivARB*(size: GLint, weights: PGLint){.stdcall, importc, ogl.}

-proc glWeightfvARB*(size: GLint, weights: PGLfloat){.stdcall, importc, ogl.}

-proc glWeightdvARB*(size: GLint, weights: PGLdouble){.stdcall, importc, ogl.}

-proc glWeightubvARB*(size: GLint, weights: PGLubyte){.stdcall, importc, ogl.}

-proc glWeightusvARB*(size: GLint, weights: PGLushort){.stdcall, importc, ogl.}

-proc glWeightuivARB*(size: GLint, weights: PGLuint){.stdcall, importc, ogl.}

-proc glWeightPointerARB*(size: GLint, typ: GLenum, stride: GLsizei, 

-                         pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexBlendARB*(count: GLint){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_buffer_object

-proc glBindBufferARB*(target: GLenum, buffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteBuffersARB*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenBuffersARB*(n: GLsizei, buffers: PGLuint){.stdcall, importc, ogl.}

-proc glIsBufferARB*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBufferDataARB*(target: GLenum, size: GLsizeiptrARB, data: PGLvoid, 

-                      usage: GLenum){.stdcall, importc, ogl.}

-proc glBufferSubDataARB*(target: GLenum, offset: GLintptrARB, 

-                         size: GLsizeiptrARB, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetBufferSubDataARB*(target: GLenum, offset: GLintptrARB, 

-                            size: GLsizeiptrARB, data: PGLvoid){.stdcall, importc, ogl.}

-proc glMapBufferARB*(target: GLenum, access: GLenum): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapBufferARB*(target: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glGetBufferParameterivARB*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetBufferPointervARB*(target: GLenum, pname: GLenum, params: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertex_program

-proc glVertexAttrib1dARB*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1fARB*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1sARB*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2dARB*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2fARB*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2sARB*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3dARB*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3fARB*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3sARB*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4NbvARB*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NivARB*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4NsvARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4NubARB*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                            w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NubvARB*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4NuivARB*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4NusvARB*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttrib4bvARB*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4dARB*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                          w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dvARB*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4fARB*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                          w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fvARB*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4ivARB*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttrib4sARB*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                          w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4svARB*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubvARB*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4uivARB*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttrib4usvARB*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribPointerARB*(index: GLuint, size: GLint, typ: GLenum, 

-                               normalized: GLboolean, stride: GLsizei, 

-                               pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glEnableVertexAttribArrayARB*(index: GLuint){.stdcall, importc, ogl.}

-proc glDisableVertexAttribArrayARB*(index: GLuint){.stdcall, importc, ogl.}

-proc glProgramStringARB*(target: GLenum, format: GLenum, length: GLsizei, 

-                         string: PGLvoid){.stdcall, importc, ogl.}

-proc glBindProgramARB*(target: GLenum, prog: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramsARB*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glGenProgramsARB*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4dARB*(target: GLenum, index: GLuint, x: GLdouble, 

-                                 y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4dvARB*(target: GLenum, index: GLuint, 

-                                  params: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4fARB*(target: GLenum, index: GLuint, x: GLfloat, 

-                                 y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramEnvParameter4fvARB*(target: GLenum, index: GLuint, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4dARB*(target: GLenum, index: GLuint, x: GLdouble, 

-                                   y: GLdouble, z: GLdouble, w: GLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramLocalParameter4dvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4fARB*(target: GLenum, index: GLuint, x: GLfloat, 

-                                   y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameter4fvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterdvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterfvARB*(target: GLenum, index: GLuint, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterdvARB*(target: GLenum, index: GLuint, 

-                                      params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterfvARB*(target: GLenum, index: GLuint, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramivARB*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramStringARB*(target: GLenum, pname: GLenum, string: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribdvARB*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribfvARB*(index: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribivARB*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribPointervARB*(index: GLuint, pname: GLenum, 

-                                   pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glIsProgramARB*(prog: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_ARB_window_pos

-proc glWindowPos2dARB*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2dvARB*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2fARB*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2fvARB*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2iARB*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glWindowPos2ivARB*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos2sARB*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos2svARB*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos3dARB*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3dvARB*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3fARB*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3fvARB*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3iARB*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glWindowPos3ivARB*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos3sARB*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos3svARB*(v: PGLshort){.stdcall, importc, ogl.}

-  # GL_ARB_draw_buffers

-proc glDrawBuffersARB*(n: GLsizei, bufs: PGLenum){.stdcall, importc, ogl.}

-  # GL_ARB_color_buffer_float

-proc glClampColorARB*(target: GLenum, clamp: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_shader

-proc glGetActiveAttribARB*(programobj: GLhandleARB, index: GLuint, 

-                           maxLength: GLsizei, len: var GLsizei, 

-                           size: var GLint, typ: var GLenum, name: PGLcharARB){.

-    stdcall, importc, ogl.}

-proc glGetAttribLocationARB*(programObj: GLhandleARB, char: PGLcharARB): glint{.

-    stdcall, importc, ogl.}

-proc glBindAttribLocationARB*(programObj: GLhandleARB, index: GLuint, 

-                              name: PGLcharARB){.stdcall, importc, ogl.}

-  # GL_ARB_shader_objects

-proc glDeleteObjectARB*(Obj: GLHandleARB){.stdcall, importc, ogl.}

-proc glGetHandleARB*(pname: GlEnum): GLHandleARB{.stdcall, importc, ogl.}

-proc glDetachObjectARB*(container, attached: GLHandleARB){.stdcall, importc, ogl.}

-proc glCreateShaderObjectARB*(shaderType: glenum): GLHandleARB{.stdcall, importc, ogl.}

-proc glShaderSourceARB*(shaderObj: GLHandleARB, count: glsizei, 

-                        string: cstringArray, lengths: pglint){.stdcall, importc, ogl.}

-proc glCompileShaderARB*(shaderObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glCreateProgramObjectARB*(): GLHandleARB{.stdcall, importc, ogl.}

-proc glAttachObjectARB*(programObj, shaderObj: GLhandleARB){.stdcall, importc, ogl.}

-proc glLinkProgramARB*(programObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glUseProgramObjectARB*(programObj: GLHandleARB){.stdcall, importc, ogl.}

-proc glValidateProgramARB*(programObj: GLhandleARB){.stdcall, importc, ogl.}

-proc glUniform1fARB*(location: glint, v0: glfloat){.stdcall, importc, ogl.}

-proc glUniform2fARB*(location: glint, v0, v1: glfloat){.stdcall, importc, ogl.}

-proc glUniform3fARB*(location: glint, v0, v1, v2: glfloat){.stdcall, importc, ogl.}

-proc glUniform4fARB*(location: glint, v0, v1, v2, v3: glfloat){.stdcall, importc, ogl.}

-proc glUniform1iARB*(location: glint, v0: glint){.stdcall, importc, ogl.}

-proc glUniform2iARB*(location: glint, v0, v1: glint){.stdcall, importc, ogl.}

-proc glUniform3iARB*(location: glint, v0, v1, v2: glint){.stdcall, importc, ogl.}

-proc glUniform4iARB*(location: glint, v0, v1, v2, v3: glint){.stdcall, importc, ogl.}

-proc glUniform1fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform2fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform3fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform4fvARB*(location: glint, count: GLsizei, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniform1ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform2ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform3ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniform4ivARB*(location: glint, count: GLsizei, value: pglint){.stdcall, importc, ogl.}

-proc glUniformMatrix2fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix3fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glUniformMatrix4fvARB*(location: glint, count: glsizei, 

-                            transpose: glboolean, value: pglfloat){.stdcall, importc, ogl.}

-proc glGetObjectParameterfvARB*(Obj: GLHandleARB, pname: GLEnum, 

-                                params: PGLFloat){.stdcall, importc, ogl.}

-proc glGetObjectParameterivARB*(Obj: GLHandleARB, pname: GLEnum, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetInfoLogARB*(shaderObj: GLHandleARB, maxLength: glsizei, 

-                      len: var glint, infoLog: PGLcharARB){.stdcall, importc, ogl.}

-proc glGetAttachedObjectsARB*(programobj: GLhandleARB, maxCount: GLsizei, 

-                              count: var GLsizei, objects: PGLhandleARB){.

-    stdcall, importc, ogl.}

-proc glGetUniformLocationARB*(programObj: GLhandleARB, char: PGLcharARB): glint{.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformARB*(programobj: GLhandleARB, index: GLuint, 

-                            maxLength: GLsizei, len: var GLsizei, 

-                            size: var GLint, typ: var GLenum, name: PGLcharARB){.

-    stdcall, importc, ogl.}

-proc glGetUniformfvARB*(programObj: GLhandleARB, location: GLint, 

-                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetUniformivARB*(programObj: GLhandleARB, location: GLint, params: PGLInt){.

-    stdcall, importc, ogl.}

-proc glGetShaderSourceARB*(shader: GLhandleARB, maxLength: GLsizei, 

-                           len: var GLsizei, source: PGLcharARB){.stdcall, importc, ogl.}

-  # GL_ARB_Occlusion_Query

-proc glGenQueriesARB*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteQueriesARB*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsQueryARB*(id: GLuint): bool{.stdcall, importc, ogl.}

-proc glBeginQueryARB*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glEndQueryARB*(target: GLenum){.stdcall, importc, ogl.}

-proc glGetQueryivARB*(target, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectivARB*(id: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetQueryObjectuivARB*(id: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_draw_instanced

-proc glDrawArraysInstancedARB*(mode: GLenum, first: GLint, count: GLsizei, 

-                               primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedARB*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                                 indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_ARB_framebuffer_object

-proc glIsRenderbuffer*(renderbuffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindRenderbuffer*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteRenderbuffers*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenRenderbuffers*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glRenderbufferStorage*(target: GLenum, internalformat: GLenum, 

-                            width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetRenderbufferParameteriv*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glIsFramebuffer*(framebuffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindFramebuffer*(target: GLenum, framebuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFramebuffers*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenFramebuffers*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glCheckFramebufferStatus*(target: GLenum): GLenum{.stdcall, importc, ogl.}

-proc glFramebufferTexture1D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture2D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture3D*(target: GLenum, attachment: GLenum, 

-                             textarget: GLenum, texture: GLuint, level: GLint, 

-                             zoffset: GLint){.stdcall, importc, ogl.}

-proc glFramebufferRenderbuffer*(target: GLenum, attachment: GLenum, 

-                                renderbuffertarget: GLenum, renderbuffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glGetFramebufferAttachmentParameteriv*(target: GLenum, attachment: GLenum, 

-    pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateMipmap*(target: GLenum){.stdcall, importc, ogl.}

-proc glBlitFramebuffer*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, 

-                        dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, 

-                        mask: GLbitfield, filter: GLenum){.stdcall, importc, ogl.}

-proc glRenderbufferStorageMultisample*(target: GLenum, samples: GLsizei, 

-                                       internalformat: GLenum, width: GLsizei, 

-                                       height: GLsizei){.stdcall, importc, ogl.}

-proc glFramebufferTextureLayer*(target: GLenum, attachment: GLenum, 

-                                texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_geometry_shader4

-proc glProgramParameteriARB*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureARB*(target: GLenum, attachment: GLenum, 

-                              texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureLayerARB*(target: GLenum, attachment: GLenum, 

-                                   texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTextureFaceARB*(target: GLenum, attachment: GLenum, 

-                                  texture: GLuint, level: GLint, face: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_ARB_instanced_arrays

-proc glVertexAttribDivisorARB*(index: GLuint, divisor: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_map_buffer_range

-proc glMapBufferRange*(target: GLenum, offset: GLintptr, len: GLsizeiptr, 

-                       access: GLbitfield): PGLvoid{.stdcall, importc, ogl.}

-proc glFlushMappedBufferRange*(target: GLenum, offset: GLintptr, len: GLsizeiptr){.

-    stdcall, importc, ogl.}

-  # GL_ARB_texture_buffer_object

-proc glTexBufferARB*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertex_array_object

-proc glBindVertexArray*(arr: GLuint){.stdcall, importc, ogl.}

-proc glDeleteVertexArrays*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glGenVertexArrays*(n: GLsizei, arrays: PGLuint){.stdcall, importc, ogl.}

-proc glIsVertexArray*(arr: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_ARB_uniform_buffer_object

-proc glGetUniformIndices*(prog: GLuint, uniformCount: GLsizei, 

-                          uniformNames: cstringArray, uniformIndices: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformsiv*(prog: GLuint, uniformCount: GLsizei, 

-                            uniformIndices: PGLuint, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveUniformName*(prog: GLuint, uniformIndex: GLuint, 

-                             bufSize: GLsizei, len: PGLsizei, 

-                             uniformName: PGLchar){.stdcall, importc, ogl.}

-proc glGetUniformBlockIndex*(prog: GLuint, uniformBlockName: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-proc glGetActiveUniformBlockiv*(prog: GLuint, uniformBlockIndex: GLuint, 

-                                pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveUniformBlockName*(prog: GLuint, uniformBlockIndex: GLuint, 

-                                  bufSize: GLsizei, len: PGLsizei, 

-                                  uniformBlockName: PGLchar){.stdcall, importc, ogl.}

-proc glUniformBlockBinding*(prog: GLuint, uniformBlockIndex: GLuint, 

-                            uniformBlockBinding: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_copy_buffer

-proc glCopyBufferSubData*(readTarget: GLenum, writeTarget: GLenum, 

-                          readOffset: GLintptr, writeOffset: GLintptr, 

-                          size: GLsizeiptr){.stdcall, importc, ogl.}

-  # GL_ARB_draw_elements_base_vertex

-proc glDrawElementsBaseVertex*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                               indices: PGLvoid, basevertex: GLint){.stdcall, importc, ogl.}

-proc glDrawRangeElementsBaseVertex*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                    count: GLsizei, typ: GLenum, 

-                                    indices: PGLvoid, basevertex: GLint){.

-    stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseVertex*(mode: GLenum, count: GLsizei, 

-                                        typ: GLenum, indices: PGLvoid, 

-                                        primcount: GLsizei, basevertex: GLint){.

-    stdcall, importc, ogl.}

-proc glMultiDrawElementsBaseVertex*(mode: GLenum, count: PGLsizei, typ: GLenum, 

-                                    indices: PPGLvoid, primcount: GLsizei, 

-                                    basevertex: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_provoking_vertex

-proc glProvokingVertex*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_sync

-proc glFenceSync*(condition: GLenum, flags: GLbitfield): GLsync{.stdcall, importc, ogl.}

-proc glIsSync*(sync: GLsync): GLboolean{.stdcall, importc, ogl.}

-proc glDeleteSync*(sync: GLsync){.stdcall, importc, ogl.}

-proc glClientWaitSync*(sync: GLsync, flags: GLbitfield, timeout: GLuint64): GLenum{.

-    stdcall, importc, ogl.}

-proc glWaitSync*(sync: GLsync, flags: GLbitfield, timeout: GLuint64){.stdcall, importc, ogl.}

-proc glGetInteger64v*(pname: GLenum, params: PGLint64){.stdcall, importc, ogl.}

-proc glGetSynciv*(sync: GLsync, pname: GLenum, butSize: GLsizei, len: PGLsizei, 

-                  values: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_texture_multisample

-proc glTexImage2DMultisample*(target: GLenum, samples: GLsizei, 

-                              internalformat: GLint, width: GLsizei, 

-                              height: GLsizei, fixedsamplelocations: GLboolean){.

-    stdcall, importc, ogl.}

-proc glTexImage3DMultisample*(target: GLenum, samples: GLsizei, 

-                              internalformat: GLint, width: GLsizei, 

-                              height: GLsizei, depth: GLsizei, 

-                              fixedsamplelocations: GLboolean){.stdcall, importc, ogl.}

-proc glGetMultisamplefv*(pname: GLenum, index: GLuint, val: PGLfloat){.stdcall, importc, ogl.}

-proc glSampleMaski*(index: GLuint, mask: GLbitfield){.stdcall, importc, ogl.}

-  # GL_ARB_draw_buffers_blend

-proc glBlendEquationiARB*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparateiARB*(buf: GLuint, modeRGB: GLenum, 

-                                  modeAlpha: GLenum){.stdcall, importc, ogl.}

-proc glBlendFunciARB*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparateiARB*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                              srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_ARB_sample_shading

-proc glMinSampleShadingARB*(value: GLclampf){.stdcall, importc, ogl.}

-  # GL_ARB_shading_language_include

-proc glNamedStringARB*(typ: GLenum, namelen: GLint, name: PGLchar, 

-                       stringlen: GLint, string: PGLchar){.stdcall, importc, ogl.}

-proc glDeleteNamedStringARB*(namelen: GLint, name: PGLchar){.stdcall, importc, ogl.}

-proc glCompileShaderIncludeARB*(shader: GLuint, count: GLsizei, path: PPGLchar, 

-                                len: PGLint){.stdcall, importc, ogl.}

-proc glIsNamedStringARB*(namelen: GLint, name: PGLchar): GLboolean{.stdcall, importc, ogl.}

-proc glGetNamedStringARB*(namelen: GLint, name: PGLchar, bufSize: GLsizei, 

-                          stringlen: GLint, string: PGLchar){.stdcall, importc, ogl.}

-proc glGetNamedStringivARB*(namelen: GLint, name: PGLchar, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_blend_func_extended

-proc glBindFragDataLocationIndexed*(prog: GLuint, colorNumber: GLuint, 

-                                    index: GLuint, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetFragDataIndex*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-  # GL_ARB_sampler_objects

-proc glGenSamplers*(count: GLsizei, samplers: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteSamplers*(count: GLsizei, samplers: PGLuint){.stdcall, importc, ogl.}

-proc glIsSampler*(sampler: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBindSampler*(theUnit: GLuint, sampler: GLuint){.stdcall, importc, ogl.}

-proc glSamplerParameteri*(sampler: GLuint, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glSamplerParameteriv*(sampler: GLuint, pname: GLenum, param: PGLint){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterf*(sampler: GLuint, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterfv*(sampler: GLuint, pname: GLenum, param: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterIiv*(sampler: GLuint, pname: GLenum, param: PGLint){.

-    stdcall, importc, ogl.}

-proc glSamplerParameterIuiv*(sampler: GLuint, pname: GLenum, param: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameteriv*(sampler: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterIiv*(sampler: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterfv*(sampler: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetSamplerParameterIuiv*(sampler: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_timer_query

-proc glQueryCounter*(id: GLuint, target: GLenum){.stdcall, importc, ogl.}

-proc glGetQueryObjecti64v*(id: GLuint, pname: GLenum, params: PGLint64){.stdcall, importc, ogl.}

-proc glGetQueryObjectui64v*(id: GLuint, pname: GLenum, params: PGLuint64){.

-    stdcall, importc, ogl.}

-  # GL_ARB_vertextyp_2_10_10_10_rev

-proc glVertexP2ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP2uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexP3ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP3uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexP4ui*(typ: GLenum, value: GLuint){.stdcall, importc, ogl.}

-proc glVertexP4uiv*(typ: GLenum, value: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP1ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP1uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP2ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP2uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP3ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP3uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glTexCoordP4ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glTexCoordP4uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP1ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP1uiv*(texture: GLenum, typ: GLenum, coords: GLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP2ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP2uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP3ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP3uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoordP4ui*(texture: GLenum, typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordP4uiv*(texture: GLenum, typ: GLenum, coords: PGLuint){.

-    stdcall, importc, ogl.}

-proc glNormalP3ui*(typ: GLenum, coords: GLuint){.stdcall, importc, ogl.}

-proc glNormalP3uiv*(typ: GLenum, coords: PGLuint){.stdcall, importc, ogl.}

-proc glColorP3ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glColorP3uiv*(typ: GLenum, color: PGLuint){.stdcall, importc, ogl.}

-proc glColorP4ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glColorP4uiv*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColorP3ui*(typ: GLenum, color: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColorP3uiv*(typ: GLenum, color: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP1ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP1uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP2ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP2uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP3ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP3uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP4ui*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                         value: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribP4uiv*(index: GLuint, typ: GLenum, normalized: GLboolean, 

-                          value: PGLuint){.stdcall, importc, ogl.}

-  # GL_ARB_draw_indirect

-proc glDrawArraysIndirect*(mode: GLenum, indirect: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementsIndirect*(mode: GLenum, typ: GLenum, indirect: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_ARB_gpu_shader_fp64

-proc glUniform1d*(location: GLint, x: GLdouble){.stdcall, importc, ogl.}

-proc glUniform2d*(location: GLint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glUniform3d*(location: GLint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glUniform4d*(location: GLint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                  w: GLdouble){.stdcall, importc, ogl.}

-proc glUniform1dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform2dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform3dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniform4dv*(location: GLint, count: GLsizei, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4dv*(location: GLint, count: GLsizei, transpose: GLboolean, 

-                         value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2x3dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix2x4dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3x2dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix3x4dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4x2dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glUniformMatrix4x3dv*(location: GLint, count: GLsizei, 

-                           transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glGetUniformdv*(prog: GLuint, location: GLint, params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ARB_shader_subroutine

-proc glGetSubroutineUniformLocation*(prog: GLuint, shadertype: GLenum, 

-                                     name: PGLchar): GLint{.stdcall, importc, ogl.}

-proc glGetSubroutineIndex*(prog: GLuint, shadertype: GLenum, name: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-proc glGetActiveSubroutineUniformiv*(prog: GLuint, shadertype: GLenum, 

-                                     index: GLuint, pname: GLenum, 

-                                     values: PGLint){.stdcall, importc, ogl.}

-proc glGetActiveSubroutineUniformName*(prog: GLuint, shadertype: GLenum, 

-                                       index: GLuint, bufsize: GLsizei, 

-                                       len: PGLsizei, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetActiveSubroutineName*(prog: GLuint, shadertype: GLenum, index: GLuint, 

-                                bufsize: GLsizei, len: PGLsizei, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glUniformSubroutinesuiv*(shadertype: GLenum, count: GLsizei, 

-                              indices: PGLuint){.stdcall, importc, ogl.}

-proc glGetUniformSubroutineuiv*(shadertype: GLenum, location: GLint, 

-                                params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramStageiv*(prog: GLuint, shadertype: GLenum, pname: GLenum, 

-                          values: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_tessellation_shader

-proc glPatchParameteri*(pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glPatchParameterfv*(pname: GLenum, values: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback2

-proc glBindTransformFeedback*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTransformFeedbacks*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glGenTransformFeedbacks*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsTransformFeedback*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPauseTransformFeedback*(){.stdcall, importc, ogl.}

-proc glResumeTransformFeedback*(){.stdcall, importc, ogl.}

-proc glDrawTransformFeedback*(mode: GLenum, id: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback3

-proc glDrawTransformFeedbackStream*(mode: GLenum, id: GLuint, stream: GLuint){.

-    stdcall, importc, ogl.}

-proc glBeginQueryIndexed*(target: GLenum, index: GLuint, id: GLuint){.stdcall, importc, ogl.}

-proc glEndQueryIndexed*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glGetQueryIndexediv*(target: GLenum, index: GLuint, pname: GLenum, 

-                          params: PGLint){.stdcall, importc, ogl.}

-  # GL_ARB_ES2_compatibility

-proc glReleaseShaderCompiler*(){.stdcall, importc, ogl.}

-proc glShaderBinary*(count: GLsizei, shaders: PGLuint, binaryformat: GLenum, 

-                     binary: PGLvoid, len: GLsizei){.stdcall, importc, ogl.}

-proc glGetShaderPrecisionFormat*(shadertype: GLenum, precisiontype: GLenum, 

-                                 range: PGLint, precision: PGLint){.stdcall, importc, ogl.}

-proc glDepthRangef*(n: GLclampf, f: GLclampf){.stdcall, importc, ogl.}

-proc glClearDepthf*(d: GLclampf){.stdcall, importc, ogl.}

-  # GL_ARB_get_prog_binary

-proc glGetProgramBinary*(prog: GLuint, bufSize: GLsizei, len: PGLsizei, 

-                         binaryFormat: PGLenum, binary: PGLvoid){.stdcall, importc, ogl.}

-proc glProgramBinary*(prog: GLuint, binaryFormat: GLenum, binary: PGLvoid, 

-                      len: GLsizei){.stdcall, importc, ogl.}

-proc glProgramParameteri*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-  # GL_ARB_separate_shader_objects

-proc glUseProgramStages*(pipeline: GLuint, stages: GLbitfield, prog: GLuint){.

-    stdcall, importc, ogl.}

-proc glActiveShaderProgram*(pipeline: GLuint, prog: GLuint){.stdcall, importc, ogl.}

-proc glCreateShaderProgramv*(typ: GLenum, count: GLsizei, strings: cstringArray): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindProgramPipeline*(pipeline: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramPipelines*(n: GLsizei, pipelines: PGLuint){.stdcall, importc, ogl.}

-proc glGenProgramPipelines*(n: GLsizei, pipelines: PGLuint){.stdcall, importc, ogl.}

-proc glIsProgramPipeline*(pipeline: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetProgramPipelineiv*(pipeline: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i*(prog: GLuint, location: GLint, v0: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform1iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform1f*(prog: GLuint, location: GLint, v0: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1d*(prog: GLuint, location: GLint, v0: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1ui*(prog: GLuint, location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform2f*(prog: GLuint, location: GLint, v0: GLfloat, v1: GLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                         v2: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform3iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform3f*(prog: GLuint, location: GLint, v0: GLfloat, 

-                         v1: GLfloat, v2: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble, v2: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint, 

-                          v2: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4i*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                         v2: GLint, v3: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform4iv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform4f*(prog: GLuint, location: GLint, v0: GLfloat, 

-                         v1: GLfloat, v2: GLfloat, v3: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4d*(prog: GLuint, location: GLint, v0: GLdouble, 

-                         v1: GLdouble, v2: GLdouble, v3: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                          value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4ui*(prog: GLuint, location: GLint, v0: GLuint, v1: GLuint, 

-                          v2: GLuint, v3: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uiv*(prog: GLuint, location: GLint, count: GLsizei, 

-                           value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                transpose: GLboolean, value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3fv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3dv*(prog: GLuint, location: GLint, count: GLsizei, 

-                                  transpose: GLboolean, value: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glValidateProgramPipeline*(pipeline: GLuint){.stdcall, importc, ogl.}

-proc glGetProgramPipelineInfoLog*(pipeline: GLuint, bufSize: GLsizei, 

-                                  len: PGLsizei, infoLog: PGLchar){.stdcall, importc, ogl.}

-  # GL_ARB_vertex_attrib_64bit

-proc glVertexAttribL1d*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2d*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL4d*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                        w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL1dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL4dv*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribLPointer*(index: GLuint, size: GLint, typ: GLenum, 

-                             stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribLdv*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-  # GL_ARB_viewport_array

-proc glViewportArrayv*(first: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glViewportIndexedf*(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, 

-                         h: GLfloat){.stdcall, importc, ogl.}

-proc glViewportIndexedfv*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glScissorArrayv*(first: GLuint, count: GLsizei, v: PGLint){.stdcall, importc, ogl.}

-proc glScissorIndexed*(index: GLuint, left: GLint, bottom: GLint, 

-                       width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glScissorIndexedv*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glDepthRangeArrayv*(first: GLuint, count: GLsizei, v: PGLclampd){.stdcall, importc, ogl.}

-proc glDepthRangeIndexed*(index: GLuint, n: GLclampd, f: GLclampd){.stdcall, importc, ogl.}

-proc glGetFloati_v*(target: GLenum, index: GLuint, data: PGLfloat){.stdcall, importc, ogl.}

-proc glGetDoublei_v*(target: GLenum, index: GLuint, data: PGLdouble){.stdcall, importc, ogl.}

-  # GL 4.2

-  # GL_ARB_base_instance

-proc glDrawArraysInstancedBaseInstance*(mode: GLenum, first: GLint, 

-                                        count: GLsizei, primcount: GLsizei, 

-                                        baseinstance: GLUint){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseInstance*(mode: GLEnum, count: GLsizei, 

-    typ: GLenum, indices: PGLVoid, primcount: GLsizei, baseinstance: GLUInt){.

-    stdcall, importc, ogl.}

-proc glDrawElementsInstancedBaseVertexBaseInstance*(mode: GLEnum, 

-    count: GLsizei, typ: GLenum, indices: PGLVoid, primcount: GLsizei, 

-    basevertex: GLint, baseinstance: GLuint){.stdcall, importc, ogl.}

-  # GL_ARB_transform_feedback_instanced

-proc glDrawTransformFeedbackInstanced*(mode: GLenum, id: GLuint, 

-                                       primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawTransformFeedbackStreamInstanced*(mode: GLenum, id: GLUInt, 

-    stream: GLUint, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_ARB_internalformat_query

-proc glGetInternalformativ*(target: GLenum, internalformat: GLenum, 

-                            pname: GLenum, bufSize: GLsizei, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_ARB_shader_atomic_counters

-proc glGetActiveAtomicCounterBufferiv*(prog: GLuint, bufferIndex: GLuint, 

-                                       pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  #/ GL_ARB_shader_image_load_store

-proc glBindImageTexture*(theUnit: GLuint, texture: GLuint, level: GLint, 

-                         layered: GLboolean, layer: GLint, access: GLenum, 

-                         format: GLenum){.stdcall, importc, ogl.}

-proc glMemoryBarrier*(barriers: GLbitfield){.stdcall, importc, ogl.}

-  # GL_ARB_texture_storage

-proc glTexStorage1D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei){.stdcall, importc, ogl.}

-proc glTexStorage2D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glTexStorage3D*(target: GLenum, levels: GLsizei, internalformat: GLenum, 

-                     width: GLsizei, height: GLsizei, depth: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage1DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage2DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei, 

-                            height: GLsizei){.stdcall, importc, ogl.}

-proc glTextureStorage3DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, 

-                            internalformat: GLenum, width: GLsizei, 

-                            height: GLsizei, depth: GLsizei){.stdcall, importc, ogl.}

-  #

-  # GL_ARB_cl_event

-proc glCreateSyncFromCLeventARB*(context: p_cl_context, event: p_cl_event, 

-                                 flags: GLbitfield): GLsync{.stdcall, importc, ogl.}

-  # GL_ARB_debug_output

-proc glDebugMessageControlARB*(source: GLenum, typ: GLenum, severity: GLenum, 

-                               count: GLsizei, ids: PGLuint, enabled: GLboolean){.

-    stdcall, importc, ogl.}

-proc glDebugMessageInsertARB*(source: GLenum, typ: GLenum, id: GLuint, 

-                              severity: GLenum, len: GLsizei, buf: PGLchar){.

-    stdcall, importc, ogl.}

-proc glDebugMessageCallbackARB*(callback: TglDebugProcARB, userParam: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetDebugMessageLogARB*(count: GLuint, bufsize: GLsizei, sources: PGLenum, 

-                              types: PGLenum, ids: PGLuint, severities: PGLenum, 

-                              lengths: PGLsizei, messageLog: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-  # GL_ARB_robustness

-proc glGetGraphicsResetStatusARB*(): GLenum{.stdcall, importc, ogl.}

-proc glGetnMapdvARB*(target: GLenum, query: GLenum, bufSize: GLsizei, 

-                     v: PGLdouble){.stdcall, importc, ogl.}

-proc glGetnMapfvARB*(target: GLenum, query: GLenum, bufSize: GLsizei, 

-                     v: PGLfloat){.stdcall, importc, ogl.}

-proc glGetnMapivARB*(target: GLenum, query: GLenum, bufSize: GLsizei, v: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapfvARB*(map: GLenum, bufSize: GLsizei, values: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapuivARB*(map: GLenum, bufSize: GLsizei, values: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetnPixelMapusvARB*(map: GLenum, bufSize: GLsizei, values: PGLushort){.

-    stdcall, importc, ogl.}

-proc glGetnPolygonStippleARB*(bufSize: GLsizei, pattern: PGLubyte){.stdcall, importc, ogl.}

-proc glGetnColorTableARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                          bufSize: GLsizei, table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnConvolutionFilterARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                                 bufSize: GLsizei, image: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnSeparableFilterARB*(target: GLenum, format: GLenum, typ: GLenum, 

-                               rowBufSize: GLsizei, row: PGLvoid, 

-                               columnBufSize: GLsizei, column: PGLvoid, 

-                               span: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnHistogramARB*(target: GLenum, reset: GLboolean, format: GLenum, 

-                         typ: GLenum, bufSize: GLsizei, values: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetnMinmaxARB*(target: GLenum, reset: GLboolean, format: GLenum, 

-                      typ: GLenum, bufSize: GLsizei, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnTexImageARB*(target: GLenum, level: GLint, format: GLenum, 

-                        typ: GLenum, bufSize: GLsizei, img: PGLvoid){.stdcall, importc, ogl.}

-proc glReadnPixelsARB*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                       format: GLenum, typ: GLenum, bufSize: GLsizei, 

-                       data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnCompressedTexImageARB*(target: GLenum, lod: GLint, bufSize: GLsizei, 

-                                  img: PGLvoid){.stdcall, importc, ogl.}

-proc glGetnUniformfvARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetnUniformivARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glGetnUniformuivARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                          params: PGLuint){.stdcall, importc, ogl.}

-proc glGetnUniformdvARB*(prog: GLuint, location: GLint, bufSize: GLsizei, 

-                         params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_ATI_draw_buffers

-proc glDrawBuffersATI*(n: GLsizei, bufs: PGLenum){.stdcall, importc, ogl.}

-  # GL_ATI_element_array

-proc glElementPointerATI*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawElementArrayATI*(mode: GLenum, count: GLsizei){.stdcall, importc, ogl.}

-proc glDrawRangeElementArrayATI*(mode: GLenum, start: GLuint, ending: GLuint, 

-                                 count: GLsizei){.stdcall, importc, ogl.}

-  # GL_ATI_envmap_bumpmap

-proc glTexBumpParameterivATI*(pname: GLenum, param: PGLint){.stdcall, importc, ogl.}

-proc glTexBumpParameterfvATI*(pname: GLenum, param: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTexBumpParameterivATI*(pname: GLenum, param: PGLint){.stdcall, importc, ogl.}

-proc glGetTexBumpParameterfvATI*(pname: GLenum, param: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_fragment_shader

-proc glGenFragmentShadersATI*(range: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glBindFragmentShaderATI*(id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFragmentShaderATI*(id: GLuint){.stdcall, importc, ogl.}

-proc glBeginFragmentShaderATI*(){.stdcall, importc, ogl.}

-proc glEndFragmentShaderATI*(){.stdcall, importc, ogl.}

-proc glPassTexCoordATI*(dst: GLuint, coord: GLuint, swizzle: GLenum){.stdcall, importc, ogl.}

-proc glSampleMapATI*(dst: GLuint, interp: GLuint, swizzle: GLenum){.stdcall, importc, ogl.}

-proc glColorFragmentOp1ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint){.stdcall, importc, ogl.}

-proc glColorFragmentOp2ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint, arg2: GLuint, arg2Rep: GLuint, 

-                            arg2Mod: GLuint){.stdcall, importc, ogl.}

-proc glColorFragmentOp3ATI*(op: GLenum, dst: GLuint, dstMask: GLuint, 

-                            dstMod: GLuint, arg1: GLuint, arg1Rep: GLuint, 

-                            arg1Mod: GLuint, arg2: GLuint, arg2Rep: GLuint, 

-                            arg2Mod: GLuint, arg3: GLuint, arg3Rep: GLuint, 

-                            arg3Mod: GLuint){.stdcall, importc, ogl.}

-proc glAlphaFragmentOp1ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glAlphaFragmentOp2ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint, 

-                            arg2: GLuint, arg2Rep: GLuint, arg2Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glAlphaFragmentOp3ATI*(op: GLenum, dst: GLuint, dstMod: GLuint, 

-                            arg1: GLuint, arg1Rep: GLuint, arg1Mod: GLuint, 

-                            arg2: GLuint, arg2Rep: GLuint, arg2Mod: GLuint, 

-                            arg3: GLuint, arg3Rep: GLuint, arg3Mod: GLuint){.

-    stdcall, importc, ogl.}

-proc glSetFragmentShaderConstantATI*(dst: GLuint, value: PGLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_map_object_buffer

-proc glMapObjectBufferATI*(buffer: GLuint): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapObjectBufferATI*(buffer: GLuint){.stdcall, importc, ogl.}

-  # GL_ATI_pn_triangles

-proc glPNTrianglesiATI*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPNTrianglesfATI*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-  # GL_ATI_separate_stencil

-proc glStencilOpSeparateATI*(face: GLenum, sfail: GLenum, dpfail: GLenum, 

-                             dppass: GLenum){.stdcall, importc, ogl.}

-proc glStencilFuncSeparateATI*(frontfunc: GLenum, backfunc: GLenum, theRef: GLint, 

-                               mask: GLuint){.stdcall, importc, ogl.}

-  # GL_ATI_vertex_array_object

-proc glNewObjectBufferATI*(size: GLsizei, pointer: PGLvoid, usage: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glIsObjectBufferATI*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glUpdateObjectBufferATI*(buffer: GLuint, offset: GLuint, size: GLsizei, 

-                              pointer: PGLvoid, preserve: GLenum){.stdcall, importc, ogl.}

-proc glGetObjectBufferfvATI*(buffer: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetObjectBufferivATI*(buffer: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glFreeObjectBufferATI*(buffer: GLuint){.stdcall, importc, ogl.}

-proc glArrayObjectATI*(arr: GLenum, size: GLint, typ: GLenum, stride: GLsizei, 

-                       buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetArrayObjectfvATI*(arr: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetArrayObjectivATI*(arr: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glVariantArrayObjectATI*(id: GLuint, typ: GLenum, stride: GLsizei, 

-                              buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetVariantArrayObjectfvATI*(id: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVariantArrayObjectivATI*(id: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_ATI_vertex_attrib_array_object

-proc glVertexAttribArrayObjectATI*(index: GLuint, size: GLint, typ: GLenum, 

-                                   normalized: GLboolean, stride: GLsizei, 

-                                   buffer: GLuint, offset: GLuint){.stdcall, importc, ogl.}

-proc glGetVertexAttribArrayObjectfvATI*(index: GLuint, pname: GLenum, 

-                                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVertexAttribArrayObjectivATI*(index: GLuint, pname: GLenum, 

-                                        params: PGLint){.stdcall, importc, ogl.}

-  # GL_ATI_vertex_streams

-proc glVertexStream1sATI*(stream: GLenum, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream1svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream1iATI*(stream: GLenum, x: GLint){.stdcall, importc, ogl.}

-proc glVertexStream1ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream1fATI*(stream: GLenum, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream1fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream1dATI*(stream: GLenum, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream1dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream2sATI*(stream: GLenum, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream2svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream2iATI*(stream: GLenum, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexStream2ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream2fATI*(stream: GLenum, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream2fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream2dATI*(stream: GLenum, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream2dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream3sATI*(stream: GLenum, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexStream3svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream3iATI*(stream: GLenum, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexStream3ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream3fATI*(stream: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexStream3fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream3dATI*(stream: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexStream3dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexStream4sATI*(stream: GLenum, x: GLshort, y: GLshort, z: GLshort, 

-                          w: GLshort){.stdcall, importc, ogl.}

-proc glVertexStream4svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glVertexStream4iATI*(stream: GLenum, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexStream4ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glVertexStream4fATI*(stream: GLenum, x: GLfloat, y: GLfloat, z: GLfloat, 

-                          w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexStream4fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexStream4dATI*(stream: GLenum, x: GLdouble, y: GLdouble, z: GLdouble, 

-                          w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexStream4dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glNormalStream3bATI*(stream: GLenum, nx: GLbyte, ny: GLbyte, nz: GLbyte){.

-    stdcall, importc, ogl.}

-proc glNormalStream3bvATI*(stream: GLenum, coords: PGLbyte){.stdcall, importc, ogl.}

-proc glNormalStream3sATI*(stream: GLenum, nx: GLshort, ny: GLshort, nz: GLshort){.

-    stdcall, importc, ogl.}

-proc glNormalStream3svATI*(stream: GLenum, coords: PGLshort){.stdcall, importc, ogl.}

-proc glNormalStream3iATI*(stream: GLenum, nx: GLint, ny: GLint, nz: GLint){.

-    stdcall, importc, ogl.}

-proc glNormalStream3ivATI*(stream: GLenum, coords: PGLint){.stdcall, importc, ogl.}

-proc glNormalStream3fATI*(stream: GLenum, nx: GLfloat, ny: GLfloat, nz: GLfloat){.

-    stdcall, importc, ogl.}

-proc glNormalStream3fvATI*(stream: GLenum, coords: PGLfloat){.stdcall, importc, ogl.}

-proc glNormalStream3dATI*(stream: GLenum, nx: GLdouble, ny: GLdouble, 

-                          nz: GLdouble){.stdcall, importc, ogl.}

-proc glNormalStream3dvATI*(stream: GLenum, coords: PGLdouble){.stdcall, importc, ogl.}

-proc glClientActiveVertexStreamATI*(stream: GLenum){.stdcall, importc, ogl.}

-proc glVertexBlendEnviATI*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glVertexBlendEnvfATI*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-  # GL_AMD_performance_monitor

-proc glGetPerfMonitorGroupsAMD*(numGroups: PGLint, groupsSize: GLsizei, 

-                                groups: PGLuint){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCountersAMD*(group: GLuint, numCounters: PGLint, 

-                                  maxActiveCouters: PGLint, 

-                                  counterSize: GLsizei, counters: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetPerfMonitorGroupStringAMD*(group: GLuint, bufSize: GLsizei, 

-                                     len: PGLsizei, groupString: PGLchar){.

-    stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterStringAMD*(group: GLuint, counter: GLuint, 

-                                       bufSize: GLsizei, len: PGLsizei, 

-                                       counterString: PGLchar){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterInfoAMD*(group: GLuint, counter: GLuint, 

-                                     pname: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGenPerfMonitorsAMD*(n: GLsizei, monitors: PGLuint){.stdcall, importc, ogl.}

-proc glDeletePerfMonitorsAMD*(n: GLsizei, monitors: PGLuint){.stdcall, importc, ogl.}

-proc glSelectPerfMonitorCountersAMD*(monitor: GLuint, enable: GLboolean, 

-                                     group: GLuint, numCounters: GLint, 

-                                     counterList: PGLuint){.stdcall, importc, ogl.}

-proc glBeginPerfMonitorAMD*(monitor: GLuint){.stdcall, importc, ogl.}

-proc glEndPerfMonitorAMD*(monitor: GLuint){.stdcall, importc, ogl.}

-proc glGetPerfMonitorCounterDataAMD*(monitor: GLuint, pname: GLenum, 

-                                     dataSize: GLsizei, data: PGLuint, 

-                                     bytesWritten: PGLint){.stdcall, importc, ogl.}

-  # GL_AMD_vertex_shader_tesselator

-proc glTessellationFactorAMD*(factor: GLfloat){.stdcall, importc, ogl.}

-proc glTessellationModeAMD*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_AMD_draw_buffers_blend

-proc glBlendFuncIndexedAMD*(buf: GLuint, src: GLenum, dst: GLenum){.stdcall, importc, ogl.}

-proc glBlendFuncSeparateIndexedAMD*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, 

-                                    srcAlpha: GLenum, dstAlpha: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationIndexedAMD*(buf: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glBlendEquationSeparateIndexedAMD*(buf: GLuint, modeRGB: GLenum, 

-                                        modeAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_AMD_name_gen_delete

-proc glGenNamesAMD*(identifier: GLenum, num: GLuint, names: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteNamesAMD*(identifier: GLenum, num: GLuint, names: PGLuint){.stdcall, importc, ogl.}

-proc glIsNameAMD*(identifier: GLenum, name: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_AMD_debug_output

-proc glDebugMessageEnableAMD*(category: GLenum, severity: GLenum, 

-                              count: GLsizei, ids: PGLuint, enabled: GLboolean){.

-    stdcall, importc, ogl.}

-proc glDebugMessageInsertAMD*(category: GLenum, severity: GLenum, id: GLuint, 

-                              len: GLsizei, buf: PGLchar){.stdcall, importc, ogl.}

-proc glDebugMessageCallbackAMD*(callback: TGLDebugProcAMD, userParam: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetDebugMessageLogAMD*(count: GLuint, bufsize: GLsizei, 

-                              categories: PGLenum, severities: PGLuint, 

-                              ids: PGLuint, lengths: PGLsizei, message: PGLchar): GLuint{.

-    stdcall, importc, ogl.}

-  # GL_EXT_blend_color

-proc glBlendColorEXT*(red: GLclampf, green: GLclampf, blue: GLclampf, 

-                      alpha: GLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_blend_func_separate

-proc glBlendFuncSeparateEXT*(sfactorRGB: GLenum, dfactorRGB: GLenum, 

-                             sfactorAlpha: GLenum, dfactorAlpha: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_EXT_blend_minmax

-proc glBlendEquationEXT*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_color_subtable

-proc glColorSubTableEXT*(target: GLenum, start: GLsizei, count: GLsizei, 

-                         format: GLenum, typ: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyColorSubTableEXT*(target: GLenum, start: GLsizei, x: GLint, y: GLint, 

-                             width: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_compiled_vertex_array

-proc glLockArraysEXT*(first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glUnlockArraysEXT*(){.stdcall, importc, ogl.}

-  # GL_EXT_convolution

-proc glConvolutionFilter1DEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, format: GLenum, typ: GLenum, 

-                               image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, height: GLsizei, format: GLenum, 

-                               typ: GLenum, image: PGLvoid){.stdcall, importc, ogl.}

-proc glConvolutionParameterfEXT*(target: GLenum, pname: GLenum, params: GLfloat){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glConvolutionParameteriEXT*(target: GLenum, pname: GLenum, params: GLint){.

-    stdcall, importc, ogl.}

-proc glConvolutionParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyConvolutionFilter1DEXT*(target: GLenum, internalformat: GLenum, 

-                                   x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyConvolutionFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                                   x: GLint, y: GLint, width: GLsizei, 

-                                   height: GLsizei){.stdcall, importc, ogl.}

-proc glGetConvolutionFilterEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                                image: PGLvoid){.stdcall, importc, ogl.}

-proc glGetConvolutionParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetConvolutionParameterivEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glGetSeparableFilterEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                              row: PGLvoid, column: PGLvoid, span: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glSeparableFilter2DEXT*(target: GLenum, internalformat: GLenum, 

-                             width: GLsizei, height: GLsizei, format: GLenum, 

-                             typ: GLenum, row: PGLvoid, column: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_coordinate_frame

-proc glTangent3bEXT*(tx: GLbyte, ty: GLbyte, tz: GLbyte){.stdcall, importc, ogl.}

-proc glTangent3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glTangent3dEXT*(tx: GLdouble, ty: GLdouble, tz: GLdouble){.stdcall, importc, ogl.}

-proc glTangent3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glTangent3fEXT*(tx: GLfloat, ty: GLfloat, tz: GLfloat){.stdcall, importc, ogl.}

-proc glTangent3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glTangent3iEXT*(tx: GLint, ty: GLint, tz: GLint){.stdcall, importc, ogl.}

-proc glTangent3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glTangent3sEXT*(tx: GLshort, ty: GLshort, tz: GLshort){.stdcall, importc, ogl.}

-proc glTangent3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glBinormal3bEXT*(bx: GLbyte, by: GLbyte, bz: GLbyte){.stdcall, importc, ogl.}

-proc glBinormal3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glBinormal3dEXT*(bx: GLdouble, by: GLdouble, bz: GLdouble){.stdcall, importc, ogl.}

-proc glBinormal3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glBinormal3fEXT*(bx: GLfloat, by: GLfloat, bz: GLfloat){.stdcall, importc, ogl.}

-proc glBinormal3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glBinormal3iEXT*(bx: GLint, by: GLint, bz: GLint){.stdcall, importc, ogl.}

-proc glBinormal3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glBinormal3sEXT*(bx: GLshort, by: GLshort, bz: GLshort){.stdcall, importc, ogl.}

-proc glBinormal3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glTangentPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glBinormalPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_copy_texture

-proc glCopyTexImage1DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                          x: GLint, y: GLint, width: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyTexImage2DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                          x: GLint, y: GLint, width: GLsizei, height: GLsizei, 

-                          border: GLint){.stdcall, importc, ogl.}

-proc glCopyTexSubImage1DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             x: GLint, y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTexSubImage2DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             yoffset: GLint, x: GLint, y: GLint, width: GLsizei, 

-                             height: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTexSubImage3DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                             yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, 

-                             width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_cull_vertex

-proc glCullParameterdvEXT*(pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glCullParameterfvEXT*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_draw_range_elements

-proc glDrawRangeElementsEXT*(mode: GLenum, start: GLuint, ending: GLuint, 

-                             count: GLsizei, typ: GLenum, indices: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_fog_coord

-proc glFogCoordfEXT*(coord: GLfloat){.stdcall, importc, ogl.}

-proc glFogCoordfvEXT*(coord: PGLfloat){.stdcall, importc, ogl.}

-proc glFogCoorddEXT*(coord: GLdouble){.stdcall, importc, ogl.}

-proc glFogCoorddvEXT*(coord: PGLdouble){.stdcall, importc, ogl.}

-proc glFogCoordPointerEXT*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_object

-proc glIsRenderbufferEXT*(renderbuffer: GLuint): bool{.stdcall, importc, ogl.}

-proc glBindRenderbufferEXT*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteRenderbuffersEXT*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenRenderbuffersEXT*(n: GLsizei, renderbuffers: PGLuint){.stdcall, importc, ogl.}

-proc glRenderbufferStorageEXT*(target: GLenum, internalformat: GLenum, 

-                               width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetRenderbufferParameterivEXT*(target: GLenum, pname: GLenum, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glIsFramebufferEXT*(framebuffer: GLuint): bool{.stdcall, importc, ogl.}

-proc glBindFramebufferEXT*(target: GLenum, framebuffer: GLuint){.stdcall, importc, ogl.}

-proc glDeleteFramebuffersEXT*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glGenFramebuffersEXT*(n: GLsizei, framebuffers: PGLuint){.stdcall, importc, ogl.}

-proc glCheckFramebufferStatusEXT*(target: GLenum): GLenum{.stdcall, importc, ogl.}

-proc glFramebufferTexture1DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture2DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, level: GLint){.

-    stdcall, importc, ogl.}

-proc glFramebufferTexture3DEXT*(target: GLenum, attachment: GLenum, 

-                                textarget: GLenum, texture: GLuint, 

-                                level: GLint, zoffset: GLint){.stdcall, importc, ogl.}

-proc glFramebufferRenderbufferEXT*(target: GLenum, attachment: GLenum, 

-                                   renderbuffertarget: GLenum, 

-                                   renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glGetFramebufferAttachmentParameterivEXT*(target: GLenum, 

-    attachment: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateMipmapEXT*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_histogram

-proc glGetHistogramEXT*(target: GLenum, reset: GLboolean, format: GLenum, 

-                        typ: GLenum, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetHistogramParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                   params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetHistogramParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetMinmaxEXT*(target: GLenum, reset: GLboolean, format: GLenum, 

-                     typ: GLenum, values: PGLvoid){.stdcall, importc, ogl.}

-proc glGetMinmaxParameterfvEXT*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMinmaxParameterivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glHistogramEXT*(target: GLenum, width: GLsizei, internalformat: GLenum, 

-                     sink: GLboolean){.stdcall, importc, ogl.}

-proc glMinmaxEXT*(target: GLenum, internalformat: GLenum, sink: GLboolean){.

-    stdcall, importc, ogl.}

-proc glResetHistogramEXT*(target: GLenum){.stdcall, importc, ogl.}

-proc glResetMinmaxEXT*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_index_func

-proc glIndexFuncEXT*(func: GLenum, theRef: GLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_index_material

-proc glIndexMaterialEXT*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_light_texture

-proc glApplyTextureEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glTextureLightEXT*(pname: GLenum){.stdcall, importc, ogl.}

-proc glTextureMaterialEXT*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_multi_draw_arrays

-proc glMultiDrawArraysEXT*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                           primcount: GLsizei){.stdcall, importc, ogl.}

-proc glMultiDrawElementsEXT*(mode: GLenum, count: PGLsizei, typ: GLenum, 

-                             indices: PGLvoid, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_multisample

-proc glSampleMaskEXT*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-proc glSamplePatternEXT*(pattern: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_paletted_texture

-proc glColorTableEXT*(target: GLenum, internalFormat: GLenum, width: GLsizei, 

-                      format: GLenum, typ: GLenum, table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableEXT*(target: GLenum, format: GLenum, typ: GLenum, 

-                         data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableParameterivEXT*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glGetColorTableParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_pixel_transform

-proc glPixelTransformParameteriEXT*(target: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glPixelTransformParameterfEXT*(target: GLenum, pname: GLenum, 

-                                    param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelTransformParameterivEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glPixelTransformParameterfvEXT*(target: GLenum, pname: GLenum, 

-                                     params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_point_parameters

-proc glPointParameterfEXT*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvEXT*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_polygon_offset

-proc glPolygonOffsetEXT*(factor: GLfloat, bias: GLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_secondary_color

-proc glSecondaryColor3bEXT*(red: GLbyte, green: GLbyte, blue: GLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3bvEXT*(v: PGLbyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3dEXT*(red: GLdouble, green: GLdouble, blue: GLdouble){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3dvEXT*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glSecondaryColor3fEXT*(red: GLfloat, green: GLfloat, blue: GLfloat){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3fvEXT*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glSecondaryColor3iEXT*(red: GLint, green: GLint, blue: GLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3ivEXT*(v: PGLint){.stdcall, importc, ogl.}

-proc glSecondaryColor3sEXT*(red: GLshort, green: GLshort, blue: GLshort){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3svEXT*(v: PGLshort){.stdcall, importc, ogl.}

-proc glSecondaryColor3ubEXT*(red: GLubyte, green: GLubyte, blue: GLubyte){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3ubvEXT*(v: PGLubyte){.stdcall, importc, ogl.}

-proc glSecondaryColor3uiEXT*(red: GLuint, green: GLuint, blue: GLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3uivEXT*(v: PGLuint){.stdcall, importc, ogl.}

-proc glSecondaryColor3usEXT*(red: GLushort, green: GLushort, blue: GLushort){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3usvEXT*(v: PGLushort){.stdcall, importc, ogl.}

-proc glSecondaryColorPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                                 pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_stencil_two_side

-proc glActiveStencilFaceEXT*(face: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_subtexture

-proc glTexSubImage1DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         width: GLsizei, format: GLenum, typ: GLenum, 

-                         pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage2DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         yoffset: GLint, width: GLsizei, height: GLsizei, 

-                         format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_texture3D

-proc glTexImage3DEXT*(target: GLenum, level: GLint, internalformat: GLenum, 

-                      width: GLsizei, height: GLsizei, depth: GLsizei, 

-                      border: GLint, format: GLenum, typ: GLenum, 

-                      pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage3DEXT*(target: GLenum, level: GLint, xoffset: GLint, 

-                         yoffset: GLint, zoffset: GLint, width: GLsizei, 

-                         height: GLsizei, depth: GLsizei, format: GLenum, 

-                         typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_texture_object

-proc glAreTexturesResidentEXT*(n: GLsizei, textures: PGLuint, 

-                               residences: PGLboolean): GLboolean{.stdcall, importc, ogl.}

-proc glBindTextureEXT*(target: GLenum, texture: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTexturesEXT*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glGenTexturesEXT*(n: GLsizei, textures: PGLuint){.stdcall, importc, ogl.}

-proc glIsTextureEXT*(texture: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPrioritizeTexturesEXT*(n: GLsizei, textures: PGLuint, 

-                              priorities: PGLclampf){.stdcall, importc, ogl.}

-  # GL_EXT_texture_perturb_normal

-proc glTextureNormalEXT*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_array

-proc glArrayElementEXT*(i: GLint){.stdcall, importc, ogl.}

-proc glColorPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                        count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glDrawArraysEXT*(mode: GLenum, first: GLint, count: GLsizei){.stdcall, importc, ogl.}

-proc glEdgeFlagPointerEXT*(stride: GLsizei, count: GLsizei, pointer: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetPointervEXT*(pname: GLenum, params: PGLvoid){.stdcall, importc, ogl.}

-proc glIndexPointerEXT*(typ: GLenum, stride: GLsizei, count: GLsizei, 

-                        pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glNormalPointerEXT*(typ: GLenum, stride: GLsizei, count: GLsizei, 

-                         pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glTexCoordPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                           count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexPointerEXT*(size: GLint, typ: GLenum, stride: GLsizei, 

-                         count: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_shader

-proc glBeginVertexShaderEXT*(){.stdcall, importc, ogl.}

-proc glEndVertexShaderEXT*(){.stdcall, importc, ogl.}

-proc glBindVertexShaderEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glGenVertexShadersEXT*(range: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glDeleteVertexShaderEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glShaderOp1EXT*(op: GLenum, res: GLuint, arg1: GLuint){.stdcall, importc, ogl.}

-proc glShaderOp2EXT*(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint){.

-    stdcall, importc, ogl.}

-proc glShaderOp3EXT*(op: GLenum, res: GLuint, arg1: GLuint, arg2: GLuint, 

-                     arg3: GLuint){.stdcall, importc, ogl.}

-proc glSwizzleEXT*(res: GLuint, ain: GLuint, outX: GLenum, outY: GLenum, 

-                   outZ: GLenum, outW: GLenum){.stdcall, importc, ogl.}

-proc glWriteMaskEXT*(res: GLuint, ain: GLuint, outX: GLenum, outY: GLenum, 

-                     outZ: GLenum, outW: GLenum){.stdcall, importc, ogl.}

-proc glInsertComponentEXT*(res: GLuint, src: GLuint, num: GLuint){.stdcall, importc, ogl.}

-proc glExtractComponentEXT*(res: GLuint, src: GLuint, num: GLuint){.stdcall, importc, ogl.}

-proc glGenSymbolsEXT*(datatype: GLenum, storagetype: GLenum, range: GLenum, 

-                      components: GLuint): GLuint{.stdcall, importc, ogl.}

-proc glSetInvariantEXT*(id: GLuint, typ: GLenum, theAddr: PGLvoid){.stdcall, importc, ogl.}

-proc glSetLocalConstantEXT*(id: GLuint, typ: GLenum, theAddr: PGLvoid){.stdcall, importc, ogl.}

-proc glVariantbvEXT*(id: GLuint, theAddr: PGLbyte){.stdcall, importc, ogl.}

-proc glVariantsvEXT*(id: GLuint, theAddr: PGLshort){.stdcall, importc, ogl.}

-proc glVariantivEXT*(id: GLuint, theAddr: PGLint){.stdcall, importc, ogl.}

-proc glVariantfvEXT*(id: GLuint, theAddr: PGLfloat){.stdcall, importc, ogl.}

-proc glVariantdvEXT*(id: GLuint, theAddr: PGLdouble){.stdcall, importc, ogl.}

-proc glVariantubvEXT*(id: GLuint, theAddr: PGLubyte){.stdcall, importc, ogl.}

-proc glVariantusvEXT*(id: GLuint, theAddr: PGLushort){.stdcall, importc, ogl.}

-proc glVariantuivEXT*(id: GLuint, theAddr: PGLuint){.stdcall, importc, ogl.}

-proc glVariantPointerEXT*(id: GLuint, typ: GLenum, stride: GLuint, theAddr: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glEnableVariantClientStateEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glDisableVariantClientStateEXT*(id: GLuint){.stdcall, importc, ogl.}

-proc glBindLightParameterEXT*(light: GLenum, value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glBindMaterialParameterEXT*(face: GLenum, value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glBindTexGenParameterEXT*(theUnit: GLenum, coord: GLenum, value: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindTextureUnitParameterEXT*(theUnit: GLenum, value: GLenum): GLuint{.

-    stdcall, importc, ogl.}

-proc glBindParameterEXT*(value: GLenum): GLuint{.stdcall, importc, ogl.}

-proc glIsVariantEnabledEXT*(id: GLuint, cap: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glGetVariantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetVariantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.stdcall, importc, ogl.}

-proc glGetVariantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVariantPointervEXT*(id: GLuint, value: GLenum, data: PGLvoid){.stdcall, importc, ogl.}

-proc glGetInvariantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetInvariantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetInvariantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantBooleanvEXT*(id: GLuint, value: GLenum, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantIntegervEXT*(id: GLuint, value: GLenum, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetLocalConstantFloatvEXT*(id: GLuint, value: GLenum, data: PGLfloat){.

-    stdcall, importc, ogl.}

-  # GL_EXT_vertex_weighting

-proc glVertexWeightfEXT*(weight: GLfloat){.stdcall, importc, ogl.}

-proc glVertexWeightfvEXT*(weight: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexWeightPointerEXT*(size: GLsizei, typ: GLenum, stride: GLsizei, 

-                               pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_EXT_stencil_clear_tag

-proc glStencilClearTagEXT*(stencilTagBits: GLsizei, stencilClearTag: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_blit

-proc glBlitFramebufferEXT*(srcX0: GLint, srcY0: GLint, srcX1: GLint, 

-                           srcY1: GLint, dstX0: GLint, dstY0: GLint, 

-                           dstX1: GLint, dstY1: GLint, mask: GLbitfield, 

-                           filter: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_framebuffer_multisample

-proc glRenderbufferStorageMultisampleEXT*(target: GLenum, samples: GLsizei, 

-    internalformat: GLenum, width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_timer_query

-proc glGetQueryObjecti64vEXT*(id: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetQueryObjectui64vEXT*(id: GLuint, pname: GLenum, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  # GL_EXT_gpu_program_parameters

-proc glProgramEnvParameters4fvEXT*(target: GLenum, index: GLuint, 

-                                   count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramLocalParameters4fvEXT*(target: GLenum, index: GLuint, 

-                                     count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_bindable_uniform

-proc glUniformBufferEXT*(prog: GLuint, location: GLint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glGetUniformBufferSizeEXT*(prog: GLuint, location: GLint): GLint{.stdcall, importc, ogl.}

-proc glGetUniformOffsetEXT*(prog: GLuint, location: GLint): GLintptr{.stdcall, importc, ogl.}

-  # GL_EXT_draw_buffers2

-proc glColorMaskIndexedEXT*(buf: GLuint, r: GLboolean, g: GLboolean, 

-                            b: GLboolean, a: GLboolean){.stdcall, importc, ogl.}

-proc glGetBooleanIndexedvEXT*(value: GLenum, index: GLuint, data: PGLboolean){.

-    stdcall, importc, ogl.}

-proc glGetIntegerIndexedvEXT*(value: GLenum, index: GLuint, data: PGLint){.

-    stdcall, importc, ogl.}

-proc glEnableIndexedEXT*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisableIndexedEXT*(target: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glIsEnabledIndexedEXT*(target: GLenum, index: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_EXT_draw_instanced

-proc glDrawArraysInstancedEXT*(mode: GLenum, first: GLint, count: GLsizei, 

-                               primcount: GLsizei){.stdcall, importc, ogl.}

-proc glDrawElementsInstancedEXT*(mode: GLenum, count: GLsizei, typ: GLenum, 

-                                 indices: Pointer, primcount: GLsizei){.stdcall, importc, ogl.}

-  # GL_EXT_geometry_shader4

-proc glProgramParameteriEXT*(prog: GLuint, pname: GLenum, value: GLint){.stdcall, importc, ogl.}

-proc glFramebufferTextureEXT*(target: GLenum, attachment: GLenum, 

-                              texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-  #procedure glFramebufferTextureLayerEXT(target: GLenum; attachment: GLenum; texture: GLuint; level: GLint; layer: GLint); stdcall, importc, ogl;

-proc glFramebufferTextureFaceEXT*(target: GLenum, attachment: GLenum, 

-                                  texture: GLuint, level: GLint, face: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_EXT_gpu_shader4

-proc glVertexAttribI1iEXT*(index: GLuint, x: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2iEXT*(index: GLuint, x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3iEXT*(index: GLuint, x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4iEXT*(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI1uiEXT*(index: GLuint, x: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uiEXT*(index: GLuint, x: GLuint, y: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uiEXT*(index: GLuint, x: GLuint, y: GLuint, z: GLuint){.

-    stdcall, importc, ogl.}

-proc glVertexAttribI4uiEXT*(index: GLuint, x: GLuint, y: GLuint, z: GLuint, 

-                            w: GLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI1ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI2ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI3ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI4ivEXT*(index: GLuint, v: PGLint){.stdcall, importc, ogl.}

-proc glVertexAttribI1uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI2uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI3uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4uivEXT*(index: GLuint, v: PGLuint){.stdcall, importc, ogl.}

-proc glVertexAttribI4bvEXT*(index: GLuint, v: PGLbyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4svEXT*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribI4ubvEXT*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribI4usvEXT*(index: GLuint, v: PGLushort){.stdcall, importc, ogl.}

-proc glVertexAttribIPointerEXT*(index: GLuint, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: Pointer){.stdcall, importc, ogl.}

-proc glGetVertexAttribIivEXT*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribIuivEXT*(index: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glUniform1uiEXT*(location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glUniform2uiEXT*(location: GLint, v0: GLuint, v1: GLuint){.stdcall, importc, ogl.}

-proc glUniform3uiEXT*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint){.

-    stdcall, importc, ogl.}

-proc glUniform4uiEXT*(location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, 

-                      v3: GLuint){.stdcall, importc, ogl.}

-proc glUniform1uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform2uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform3uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glUniform4uivEXT*(location: GLint, count: GLsizei, value: PGLuint){.stdcall, importc, ogl.}

-proc glGetUniformuivEXT*(prog: GLuint, location: GLint, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glBindFragDataLocationEXT*(prog: GLuint, colorNumber: GLuint, name: PGLchar){.

-    stdcall, importc, ogl.}

-proc glGetFragDataLocationEXT*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-  # GL_EXT_texture_array

-proc glFramebufferTextureLayerEXT*(target: GLenum, attachment: GLenum, 

-                                   texture: GLuint, level: GLint, layer: GLint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_texture_buffer_object

-proc glTexBufferEXT*(target: GLenum, internalformat: GLenum, buffer: GLuint){.

-    stdcall, importc, ogl.}

-  # GL_EXT_texture_integer

-proc glClearColorIiEXT*(r: GLint, g: GLint, b: GLint, a: GLint){.stdcall, importc, ogl.}

-proc glClearColorIuiEXT*(r: GLuint, g: GLuint, b: GLuint, a: GLuint){.stdcall, importc, ogl.}

-proc glTexParameterIivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glTexParameterIuivEXT*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIivEXT*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetTexParameterIiuvEXT*(target: GLenum, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_HP_image_transform

-proc glImageTransformParameteriHP*(target: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glImageTransformParameterfHP*(target: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glImageTransformParameterivHP*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glImageTransformParameterfvHP*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetImageTransformParameterivHP*(target: GLenum, pname: GLenum, 

-                                       params: PGLint){.stdcall, importc, ogl.}

-proc glGetImageTransformParameterfvHP*(target: GLenum, pname: GLenum, 

-                                       params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_EXT_depth_bounds_test

-proc glDepthBoundsEXT*(zmin: GLclampd, zmax: GLclampd){.stdcall, importc, ogl.}

-  # GL_EXT_blend_equation_separate

-proc glBlendEquationSeparateEXT*(modeRGB: GLenum, modeAlpha: GLenum){.stdcall, importc, ogl.}

-  # GL_EXT_transform_feedback

-proc glBeginTransformFeedbackEXT*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedbackEXT*(){.stdcall, importc, ogl.}

-proc glBindBufferRangeEXT*(target: GLenum, index: GLuint, buffer: GLuint, 

-                           offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferOffsetEXT*(target: GLenum, index: GLuint, buffer: GLuint, 

-                            offset: GLintptr){.stdcall, importc, ogl.}

-proc glBindBufferBaseEXT*(target: GLenum, index: GLuint, buffer: GLuint){.

-    stdcall, importc, ogl.}

-proc glTransformFeedbackVaryingsEXT*(prog: GLuint, count: GLsizei, 

-                                     locations: PGLint, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glGetTransformFeedbackVaryingEXT*(prog: GLuint, index: GLuint, 

-                                       location: PGLint){.stdcall, importc, ogl.}

-  # GL_EXT_direct_state_access

-proc glClientAttribDefaultEXT*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glPushClientAttribDefaultEXT*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glMatrixLoadfEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixLoaddEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixMultfEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixMultdEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixLoadIdentityEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixRotatefEXT*(mode: GLenum, angle: GLfloat, x: GLfloat, y: GLfloat, 

-                         z: GLfloat){.stdcall, importc, ogl.}

-proc glMatrixRotatedEXT*(mode: GLenum, angle: GLdouble, x: GLdouble, 

-                         y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixScalefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMatrixScaledEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMatrixTranslatefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glMatrixTranslatedEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glMatrixFrustumEXT*(mode: GLenum, left: GLdouble, right: GLdouble, 

-                         bottom: GLdouble, top: GLdouble, zNear: GLdouble, 

-                         zFar: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixOrthoEXT*(mode: GLenum, left: GLdouble, right: GLdouble, 

-                       bottom: GLdouble, top: GLdouble, zNear: GLdouble, 

-                       zFar: GLdouble){.stdcall, importc, ogl.}

-proc glMatrixPopEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixPushEXT*(mode: GLenum){.stdcall, importc, ogl.}

-proc glMatrixLoadTransposefEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixLoadTransposedEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glMatrixMultTransposefEXT*(mode: GLenum, m: PGLfloat){.stdcall, importc, ogl.}

-proc glMatrixMultTransposedEXT*(mode: GLenum, m: PGLdouble){.stdcall, importc, ogl.}

-proc glTextureParameterfEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                             param: GLfloat){.stdcall, importc, ogl.}

-proc glTextureParameterfvEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                              params: PGLfloat){.stdcall, importc, ogl.}

-proc glTextureParameteriEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                             param: GLint){.stdcall, importc, ogl.}

-proc glTextureParameterivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                              params: PGLint){.stdcall, importc, ogl.}

-proc glTextureImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, border: GLint, 

-                          format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, 

-                          height: GLsizei, border: GLint, format: GLenum, 

-                          typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, width: GLsizei, format: GLenum, 

-                             typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, yoffset: GLint, width: GLsizei, 

-                             height: GLsizei, format: GLenum, typ: GLenum, 

-                             pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyTextureImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                              internalformat: GLenum, x: GLint, y: GLint, 

-                              width: GLsizei, border: GLint){.stdcall, importc, ogl.}

-proc glCopyTextureImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                              internalformat: GLenum, x: GLint, y: GLint, 

-                              width: GLsizei, height: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyTextureSubImage1DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, x: GLint, y: GLint, 

-                                 width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyTextureSubImage2DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, yoffset: GLint, x: GLint, 

-                                 y: GLint, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glGetTextureImageEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                           format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetTextureParameterfvEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTextureParameterivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLint){.stdcall, importc, ogl.}

-proc glGetTextureLevelParameterfvEXT*(texture: GLuint, target: GLenum, 

-                                      level: GLint, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetTextureLevelParameterivEXT*(texture: GLuint, target: GLenum, 

-                                      level: GLint, pname: GLenum, params: GLint){.

-    stdcall, importc, ogl.}

-proc glTextureImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                          internalformat: GLenum, width: GLsizei, 

-                          height: GLsizei, depth: GLsizei, border: GLint, 

-                          format: GLenum, typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureSubImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                             xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                             width: GLsizei, height: GLsizei, depth: GLsizei, 

-                             format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCopyTextureSubImage3DEXT*(texture: GLuint, target: GLenum, level: GLint, 

-                                 xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                                 x: GLint, y: GLint, width: GLsizei, 

-                                 height: GLsizei){.stdcall, importc, ogl.}

-proc glMultiTexParameterfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                              param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexParameterfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                               params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexParameteriEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                              param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexParameterivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                               params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           border: GLint, format: GLenum, typ: GLenum, 

-                           pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           height: GLsizei, border: GLint, format: GLenum, 

-                           typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, width: GLsizei, format: GLenum, 

-                              typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, yoffset: GLint, width: GLsizei, 

-                              height: GLsizei, format: GLenum, typ: GLenum, 

-                              pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glCopyMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                               internalformat: GLenum, x: GLint, y: GLint, 

-                               width: GLsizei, border: GLint){.stdcall, importc, ogl.}

-proc glCopyMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                               internalformat: GLenum, x: GLint, y: GLint, 

-                               width: GLsizei, height: GLsizei, border: GLint){.

-    stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, x: GLint, y: GLint, 

-                                  width: GLsizei){.stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, yoffset: GLint, x: GLint, 

-                                  y: GLint, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glGetMultiTexImageEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                            format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetMultiTexParameterfvEXT*(texunit: GLenum, target: GLenum, 

-                                  pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterivEXT*(texunit: GLenum, target: GLenum, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexLevelParameterfvEXT*(texunit: GLenum, target: GLenum, 

-                                       level: GLint, pname: GLenum, 

-                                       params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexLevelParameterivEXT*(texunit: GLenum, target: GLenum, 

-                                       level: GLint, pname: GLenum, 

-                                       params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                           internalformat: GLenum, width: GLsizei, 

-                           height: GLsizei, depth: GLsizei, border: GLint, 

-                           format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                              xoffset: GLint, yoffset: GLint, zoffset: GLint, 

-                              width: GLsizei, height: GLsizei, depth: GLsizei, 

-                              format: GLenum, typ: GLenum, pixels: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCopyMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, level: GLint, 

-                                  xoffset: GLint, yoffset: GLint, 

-                                  zoffset: GLint, x: GLint, y: GLint, 

-                                  width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glBindMultiTextureEXT*(texunit: GLenum, target: GLenum, texture: GLuint){.

-    stdcall, importc, ogl.}

-proc glEnableClientStateIndexedEXT*(arr: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glDisableClientStateIndexedEXT*(arr: GLenum, index: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexCoordPointerEXT*(texunit: GLenum, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glMultiTexEnvfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexEnvfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexEnviEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexEnvivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexGendEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLdouble){.stdcall, importc, ogl.}

-proc glMultiTexGendvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLdouble){.stdcall, importc, ogl.}

-proc glMultiTexGenfEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLfloat){.stdcall, importc, ogl.}

-proc glMultiTexGenfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLfloat){.stdcall, importc, ogl.}

-proc glMultiTexGeniEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                        param: GLint){.stdcall, importc, ogl.}

-proc glMultiTexGenivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                         params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexEnvfvEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                            params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexEnvivEXT*(texunit: GLenum, target: GLenum, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexGendvEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetMultiTexGenfvEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetMultiTexGenivEXT*(texunit: GLenum, coord: GLenum, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetFloatIndexedvEXT*(target: GLenum, index: GLuint, data: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetDoubleIndexedvEXT*(target: GLenum, index: GLuint, data: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetPointerIndexedvEXT*(target: GLenum, index: GLuint, data: PPGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureImage3DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, height: GLsizei, 

-                                    depth: GLsizei, border: GLint, 

-                                    imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureImage2DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, height: GLsizei, 

-                                    border: GLint, imageSize: GLsizei, 

-                                    bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureImage1DEXT*(texture: GLuint, target: GLenum, 

-                                    level: GLint, internalformat: GLenum, 

-                                    width: GLsizei, border: GLint, 

-                                    imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedTextureSubImage3DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       yoffset: GLint, zoffset: GLint, 

-                                       width: GLsizei, height: GLsizei, 

-                                       depth: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureSubImage2DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       yoffset: GLint, width: GLsizei, 

-                                       height: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedTextureSubImage1DEXT*(texture: GLuint, target: GLenum, 

-                                       level: GLint, xoffset: GLint, 

-                                       width: GLsizei, format: GLenum, 

-                                       imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetCompressedTextureImageEXT*(texture: GLuint, target: GLenum, 

-                                     lod: GLint, img: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage3DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, height: GLsizei, 

-                                     depth: GLsizei, border: GLint, 

-                                     imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage2DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, height: GLsizei, 

-                                     border: GLint, imageSize: GLsizei, 

-                                     bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexImage1DEXT*(texunit: GLenum, target: GLenum, 

-                                     level: GLint, internalformat: GLenum, 

-                                     width: GLsizei, border: GLint, 

-                                     imageSize: GLsizei, bits: PGLvoid){.stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage3DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        yoffset: GLint, zoffset: GLint, 

-                                        width: GLsizei, height: GLsizei, 

-                                        depth: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage2DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        yoffset: GLint, width: GLsizei, 

-                                        height: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glCompressedMultiTexSubImage1DEXT*(texunit: GLenum, target: GLenum, 

-                                        level: GLint, xoffset: GLint, 

-                                        width: GLsizei, format: GLenum, 

-                                        imageSize: GLsizei, bits: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glGetCompressedMultiTexImageEXT*(texunit: GLenum, target: GLenum, 

-                                      lod: GLint, img: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramStringEXT*(prog: GLuint, target: GLenum, format: GLenum, 

-                              length: GLsizei, string: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4dEXT*(prog: GLuint, target: GLenum, 

-                                        index: GLuint, x: GLdouble, y: GLdouble, 

-                                        z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4dvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLdouble){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4fEXT*(prog: GLuint, target: GLenum, 

-                                        index: GLuint, x: GLfloat, y: GLfloat, 

-                                        z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameter4fvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterdvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterfvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetNamedProgramivEXT*(prog: GLuint, target: GLenum, pname: GLenum, 

-                             params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedProgramStringEXT*(prog: GLuint, target: GLenum, pname: GLenum, 

-                                 string: PGLvoid){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameters4fvEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLfloat){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4iEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4ivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParametersI4ivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4uiEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParameterI4uivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLuint){.stdcall, importc, ogl.}

-proc glNamedProgramLocalParametersI4uivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterIivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedProgramLocalParameterIuivEXT*(prog: GLuint, target: GLenum, 

-    index: GLuint, params: PGLuint){.stdcall, importc, ogl.}

-proc glTextureParameterIivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                               params: PGLint){.stdcall, importc, ogl.}

-proc glTextureParameterIuivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                params: PGLuint){.stdcall, importc, ogl.}

-proc glGetTextureParameterIivEXT*(texture: GLuint, target: GLenum, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetTextureParameterIuivEXT*(texture: GLuint, target: GLenum, 

-                                   pname: GLenum, params: PGLuint){.stdcall, importc, ogl.}

-proc glMultiTexParameterIivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                params: PGLint){.stdcall, importc, ogl.}

-proc glMultiTexParameterIuivEXT*(texture: GLuint, target: GLenum, pname: GLenum, 

-                                 params: PGLuint){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterIivEXT*(texture: GLuint, target: GLenum, 

-                                   pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetMultiTexParameterIuivEXT*(texture: GLuint, target: GLenum, 

-                                    pname: GLenum, params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1fEXT*(prog: GLuint, location: GLint, v0: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat, v2: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fEXT*(prog: GLuint, location: GLint, v0: GLfloat, 

-                            v1: GLfloat, v2: GLfloat, v3: GLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1iEXT*(prog: GLuint, location: GLint, v0: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform2iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint){.

-    stdcall, importc, ogl.}

-proc glProgramUniform3iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                            v2: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform4iEXT*(prog: GLuint, location: GLint, v0: GLint, v1: GLint, 

-                            v2: GLint, v3: GLint){.stdcall, importc, ogl.}

-proc glProgramUniform1fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform2fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform3fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform4fvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform2ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform3ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniform4ivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLint){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4fvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3fvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramUniform1uiEXT*(prog: GLuint, location: GLint, v0: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint, v2: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uiEXT*(prog: GLuint, location: GLint, v0: GLuint, 

-                             v1: GLuint, v2: GLuint, v3: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform2uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform3uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glProgramUniform4uivEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint){.stdcall, importc, ogl.}

-proc glNamedBufferDataEXT*(buffer: GLuint, size: GLsizei, data: PGLvoid, 

-                           usage: GLenum){.stdcall, importc, ogl.}

-proc glNamedBufferSubDataEXT*(buffer: GLuint, offset: GLintptr, 

-                              size: GLsizeiptr, data: PGLvoid){.stdcall, importc, ogl.}

-proc glMapNamedBufferEXT*(buffer: GLuint, access: GLenum): PGLvoid{.stdcall, importc, ogl.}

-proc glUnmapNamedBufferEXT*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glMapNamedBufferRangeEXT*(buffer: GLuint, offset: GLintptr, 

-                               len: GLsizeiptr, access: GLbitfield): PGLvoid{.

-    stdcall, importc, ogl.}

-proc glFlushMappedNamedBufferRangeEXT*(buffer: GLuint, offset: GLintptr, 

-                                       len: GLsizeiptr){.stdcall, importc, ogl.}

-proc glNamedCopyBufferSubDataEXT*(readBuffer: GLuint, writeBuffer: GLuint, 

-                                  readOffset: GLintptr, writeOffset: GLintptr, 

-                                  size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glGetNamedBufferParameterivEXT*(buffer: GLuint, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glGetNamedBufferPointervEXT*(buffer: GLuint, pname: GLenum, 

-                                  params: PPGLvoid){.stdcall, importc, ogl.}

-proc glGetNamedBufferSubDataEXT*(buffer: GLuint, offset: GLintptr, 

-                                 size: GLsizeiptr, data: PGLvoid){.stdcall, importc, ogl.}

-proc glTextureBufferEXT*(texture: GLuint, target: GLenum, 

-                         internalformat: GLenum, buffer: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexBufferEXT*(texunit: GLenum, target: GLenum, interformat: GLenum, 

-                          buffer: GLuint){.stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageEXT*(renderbuffer: GLuint, interformat: GLenum, 

-                                    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glGetNamedRenderbufferParameterivEXT*(renderbuffer: GLuint, pname: GLenum, 

-    params: PGLint){.stdcall, importc, ogl.}

-proc glCheckNamedFramebufferStatusEXT*(framebuffer: GLuint, target: GLenum): GLenum{.

-    stdcall, importc, ogl.}

-proc glNamedFramebufferTexture1DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTexture2DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTexture3DEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                     textarget: GLenum, texture: GLuint, 

-                                     level: GLint, zoffset: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferRenderbufferEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                        renderbuffertarget: GLenum, 

-                                        renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glGetNamedFramebufferAttachmentParameterivEXT*(framebuffer: GLuint, 

-    attachment: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGenerateTextureMipmapEXT*(texture: GLuint, target: GLenum){.stdcall, importc, ogl.}

-proc glGenerateMultiTexMipmapEXT*(texunit: GLenum, target: GLenum){.stdcall, importc, ogl.}

-proc glFramebufferDrawBufferEXT*(framebuffer: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glFramebufferDrawBuffersEXT*(framebuffer: GLuint, n: GLsizei, bufs: PGLenum){.

-    stdcall, importc, ogl.}

-proc glFramebufferReadBufferEXT*(framebuffer: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glGetFramebufferParameterivEXT*(framebuffer: GLuint, pname: GLenum, 

-                                     params: PGLint){.stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageMultisampleEXT*(renderbuffer: GLuint, 

-    samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei){.

-    stdcall, importc, ogl.}

-proc glNamedRenderbufferStorageMultisampleCoverageEXT*(renderbuffer: GLuint, 

-    coverageSamples: GLsizei, colorSamples: GLsizei, internalformat: GLenum, 

-    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                   texture: GLuint, level: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureLayerEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                        texture: GLuint, level: GLint, 

-                                        layer: GLint){.stdcall, importc, ogl.}

-proc glNamedFramebufferTextureFaceEXT*(framebuffer: GLuint, attachment: GLenum, 

-                                       texture: GLuint, level: GLint, 

-                                       face: GLenum){.stdcall, importc, ogl.}

-proc glTextureRenderbufferEXT*(texture: GLuint, target: GLenum, 

-                               renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glMultiTexRenderbufferEXT*(texunit: GLenum, target: GLenum, 

-                                renderbuffer: GLuint){.stdcall, importc, ogl.}

-proc glProgramUniform1dEXT*(prog: GLuint, location: GLint, x: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dEXT*(prog: GLuint, location: GLint, x: GLdouble, 

-                            y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform1dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform2dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform3dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniform4dvEXT*(prog: GLuint, location: GLint, count: GLsizei, 

-                             value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4dvEXT*(prog: GLuint, location: GLint, 

-                                   count: GLsizei, transpose: GLboolean, 

-                                   value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x3dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix2x4dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x2dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix3x4dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x2dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramUniformMatrix4x3dvEXT*(prog: GLuint, location: GLint, 

-                                     count: GLsizei, transpose: GLboolean, 

-                                     value: PGLdouble){.stdcall, importc, ogl.}

-  # GL_EXT_separate_shader_objects

-proc glUseShaderProgramEXT*(typ: GLenum, prog: GLuint){.stdcall, importc, ogl.}

-proc glActiveProgramEXT*(prog: GLuint){.stdcall, importc, ogl.}

-proc glCreateShaderProgramEXT*(typ: GLenum, string: PGLchar): GLuint{.stdcall, importc, ogl.}

-  # GL_EXT_shader_image_load_store

-proc glBindImageTextureEXT*(index: GLuint, texture: GLuint, level: GLint, 

-                            layered: GLboolean, layer: GLint, access: GLenum, 

-                            format: GLint){.stdcall, importc, ogl.}

-proc glMemoryBarrierEXT*(barriers: GLbitfield){.stdcall, importc, ogl.}

-  # GL_EXT_vertex_attrib_64bit

-proc glVertexAttribL1dEXT*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dEXT*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dEXT*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL4dEXT*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                           w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL1dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL2dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL3dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribL4dvEXT*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribLPointerEXT*(index: GLuint, size: GLint, typ: GLenum, 

-                                stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glGetVertexAttribLdvEXT*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexArrayVertexAttribLOffsetEXT*(vaobj: GLuint, buffer: GLuint, 

-    index: GLuint, size: GLint, typ: GLenum, stride: GLsizei, offset: GLintptr){.

-    stdcall, importc, ogl.}

-  # GL_IBM_multimode_draw_arrays

-proc glMultiModeDrawArraysIBM*(mode: GLenum, first: PGLint, count: PGLsizei, 

-                               primcount: GLsizei, modestride: GLint){.stdcall, importc, ogl.}

-proc glMultiModeDrawElementsIBM*(mode: PGLenum, count: PGLsizei, typ: GLenum, 

-                                 indices: PGLvoid, primcount: GLsizei, 

-                                 modestride: GLint){.stdcall, importc, ogl.}

-  # GL_IBM_vertex_array_lists

-proc glColorPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                            pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-proc glSecondaryColorPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                                     pointer: PGLvoid, ptrstride: GLint){.

-    stdcall, importc, ogl.}

-proc glEdgeFlagPointerListIBM*(stride: GLint, pointer: PGLboolean, 

-                               ptrstride: GLint){.stdcall, importc, ogl.}

-proc glFogCoordPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                               ptrstride: GLint){.stdcall, importc, ogl.}

-proc glIndexPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                            ptrstride: GLint){.stdcall, importc, ogl.}

-proc glNormalPointerListIBM*(typ: GLenum, stride: GLint, pointer: PGLvoid, 

-                             ptrstride: GLint){.stdcall, importc, ogl.}

-proc glTexCoordPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                               pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-proc glVertexPointerListIBM*(size: GLint, typ: GLenum, stride: GLint, 

-                             pointer: PGLvoid, ptrstride: GLint){.stdcall, importc, ogl.}

-  # GL_INGR_blend_func_separate

-proc glBlendFuncSeparateINGR*(sfactorRGB: GLenum, dfactorRGB: GLenum, 

-                              sfactorAlpha: GLenum, dfactorAlpha: GLenum){.

-    stdcall, importc, ogl.}

-  # GL_INTEL_parallel_arrays

-proc glVertexPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glNormalPointervINTEL*(typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glColorPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glTexCoordPointervINTEL*(size: GLint, typ: GLenum, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_MESA_resize_buffers

-proc glResizeBuffersMESA*(){.stdcall, importc, ogl.}

-  # GL_MESA_window_pos

-proc glWindowPos2dMESA*(x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos2fMESA*(x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos2iMESA*(x: GLint, y: GLint){.stdcall, importc, ogl.}

-proc glWindowPos2ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos2sMESA*(x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos2svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos3dMESA*(x: GLdouble, y: GLdouble, z: GLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos3fMESA*(x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos3iMESA*(x: GLint, y: GLint, z: GLint){.stdcall, importc, ogl.}

-proc glWindowPos3ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos3sMESA*(x: GLshort, y: GLshort, z: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos3svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-proc glWindowPos4dMESA*(x: GLdouble, y: GLdouble, z: GLdouble, w: GLdouble){.

-    stdcall, importc, ogl.}

-proc glWindowPos4dvMESA*(v: PGLdouble){.stdcall, importc, ogl.}

-proc glWindowPos4fMESA*(x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glWindowPos4fvMESA*(v: PGLfloat){.stdcall, importc, ogl.}

-proc glWindowPos4iMESA*(x: GLint, y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glWindowPos4ivMESA*(v: PGLint){.stdcall, importc, ogl.}

-proc glWindowPos4sMESA*(x: GLshort, y: GLshort, z: GLshort, w: GLshort){.stdcall, importc, ogl.}

-proc glWindowPos4svMESA*(v: PGLshort){.stdcall, importc, ogl.}

-  # GL_NV_evaluators

-proc glMapControlPointsNV*(target: GLenum, index: GLuint, typ: GLenum, 

-                           ustride: GLsizei, vstride: GLsizei, uorder: GLint, 

-                           vorder: GLint, pack: GLboolean, points: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glMapParameterivNV*(target: GLenum, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glMapParameterfvNV*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMapControlPointsNV*(target: GLenum, index: GLuint, typ: GLenum, 

-                              ustride: GLsizei, vstride: GLsizei, 

-                              pack: GLboolean, points: PGLvoid){.stdcall, importc, ogl.}

-proc glGetMapParameterivNV*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetMapParameterfvNV*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetMapAttribParameterivNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                  params: PGLint){.stdcall, importc, ogl.}

-proc glGetMapAttribParameterfvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                  params: PGLfloat){.stdcall, importc, ogl.}

-proc glEvalMapsNV*(target: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_fence

-proc glDeleteFencesNV*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glGenFencesNV*(n: GLsizei, fences: PGLuint){.stdcall, importc, ogl.}

-proc glIsFenceNV*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glTestFenceNV*(fence: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetFenceivNV*(fence: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFinishFenceNV*(fence: GLuint){.stdcall, importc, ogl.}

-proc glSetFenceNV*(fence: GLuint, condition: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_fragment_prog

-proc glProgramNamedParameter4fNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                  x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramNamedParameter4dNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                  x: GLdouble, y: GLdouble, z: GLdouble, 

-                                  w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramNamedParameter4fvNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                   v: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramNamedParameter4dvNV*(id: GLuint, length: GLsizei, name: PGLubyte, 

-                                   v: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramNamedParameterfvNV*(id: GLuint, length: GLsizei, 

-                                     name: PGLubyte, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramNamedParameterdvNV*(id: GLuint, length: GLsizei, 

-                                     name: PGLubyte, params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_NV_half_float

-proc glVertex2hNV*(x: GLhalfNV, y: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex2hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertex3hNV*(x: GLhalfNV, y: GLhalfNV, z: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertex4hNV*(x: GLhalfNV, y: GLhalfNV, z: GLhalfNV, w: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertex4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glNormal3hNV*(nx: GLhalfNV, ny: GLhalfNV, nz: GLhalfNV){.stdcall, importc, ogl.}

-proc glNormal3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glColor3hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV){.stdcall, importc, ogl.}

-proc glColor3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glColor4hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV, 

-                  alpha: GLhalfNV){.stdcall, importc, ogl.}

-proc glColor4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord1hNV*(s: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord1hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord2hNV*(s: GLhalfNV, t: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord2hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord3hNV*(s: GLhalfNV, t: GLhalfNV, r: GLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glTexCoord4hNV*(s: GLhalfNV, t: GLhalfNV, r: GLhalfNV, q: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glTexCoord4hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord1hNV*(target: GLenum, s: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord1hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord2hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord2hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord3hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV, r: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glMultiTexCoord3hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord4hNV*(target: GLenum, s: GLhalfNV, t: GLhalfNV, r: GLhalfNV, 

-                          q: GLhalfNV){.stdcall, importc, ogl.}

-proc glMultiTexCoord4hvNV*(target: GLenum, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glFogCoordhNV*(fog: GLhalfNV){.stdcall, importc, ogl.}

-proc glFogCoordhvNV*(fog: PGLhalfNV){.stdcall, importc, ogl.}

-proc glSecondaryColor3hNV*(red: GLhalfNV, green: GLhalfNV, blue: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glSecondaryColor3hvNV*(v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexWeighthNV*(weight: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexWeighthvNV*(weight: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib1hNV*(index: GLuint, x: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib1hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib2hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib2hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib3hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV, z: GLhalfNV){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib4hNV*(index: GLuint, x: GLhalfNV, y: GLhalfNV, z: GLhalfNV, 

-                         w: GLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttrib4hvNV*(index: GLuint, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs1hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs2hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs3hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-proc glVertexAttribs4hvNV*(index: GLuint, n: GLsizei, v: PGLhalfNV){.stdcall, importc, ogl.}

-  # GL_NV_occlusion_query

-proc glGenOcclusionQueriesNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glDeleteOcclusionQueriesNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsOcclusionQueryNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glBeginOcclusionQueryNV*(id: GLuint){.stdcall, importc, ogl.}

-proc glEndOcclusionQueryNV*(){.stdcall, importc, ogl.}

-proc glGetOcclusionQueryivNV*(id: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetOcclusionQueryuivNV*(id: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-  # GL_NV_pixel_data_range

-proc glPixelDataRangeNV*(target: GLenum, len: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glFlushPixelDataRangeNV*(target: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_point_sprite

-proc glPointParameteriNV*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPointParameterivNV*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_NV_primitive_restart

-proc glPrimitiveRestartNV*(){.stdcall, importc, ogl.}

-proc glPrimitiveRestartIndexNV*(index: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_register_combiners

-proc glCombinerParameterfvNV*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glCombinerParameterfNV*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glCombinerParameterivNV*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glCombinerParameteriNV*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glCombinerInputNV*(stage: GLenum, portion: GLenum, variable: GLenum, 

-                        input: GLenum, mapping: GLenum, componentUsage: GLenum){.

-    stdcall, importc, ogl.}

-proc glCombinerOutputNV*(stage: GLenum, portion: GLenum, abOutput: GLenum, 

-                         cdOutput: GLenum, sumOutput: GLenum, scale: GLenum, 

-                         bias: GLenum, abDotProduct: GLboolean, 

-                         cdDotProduct: GLboolean, muxSum: GLboolean){.stdcall, importc, ogl.}

-proc glFinalCombinerInputNV*(variable: GLenum, input: GLenum, mapping: GLenum, 

-                             componentUsage: GLenum){.stdcall, importc, ogl.}

-proc glGetCombinerInputParameterfvNV*(stage: GLenum, portion: GLenum, 

-                                      variable: GLenum, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerInputParameterivNV*(stage: GLenum, portion: GLenum, 

-                                      variable: GLenum, pname: GLenum, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glGetCombinerOutputParameterfvNV*(stage: GLenum, portion: GLenum, 

-                                       pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerOutputParameterivNV*(stage: GLenum, portion: GLenum, 

-                                       pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetFinalCombinerInputParameterfvNV*(variable: GLenum, pname: GLenum, 

-    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetFinalCombinerInputParameterivNV*(variable: GLenum, pname: GLenum, 

-    params: PGLint){.stdcall, importc, ogl.}

-  # GL_NV_register_combiners2

-proc glCombinerStageParameterfvNV*(stage: GLenum, pname: GLenum, 

-                                   params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetCombinerStageParameterfvNV*(stage: GLenum, pname: GLenum, 

-                                      params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_NV_vertex_array_range

-proc glFlushVertexArrayRangeNV*(){.stdcall, importc, ogl.}

-proc glVertexArrayRangeNV*(len: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-  # GL_NV_vertex_prog

-proc glAreProgramsResidentNV*(n: GLsizei, programs: PGLuint, 

-                              residences: PGLboolean): GLboolean{.stdcall, importc, ogl.}

-proc glBindProgramNV*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glExecuteProgramNV*(target: GLenum, id: GLuint, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGenProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramParameterdvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                params: PGLdouble){.stdcall, importc, ogl.}

-proc glGetProgramParameterfvNV*(target: GLenum, index: GLuint, pname: GLenum, 

-                                params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetProgramivNV*(id: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramStringNV*(id: GLuint, pname: GLenum, prog: PGLubyte){.stdcall, importc, ogl.}

-proc glGetTrackMatrixivNV*(target: GLenum, address: GLuint, pname: GLenum, 

-                           params: PGLint){.stdcall, importc, ogl.}

-proc glGetVertexAttribdvNV*(index: GLuint, pname: GLenum, params: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribfvNV*(index: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribivNV*(index: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribPointervNV*(index: GLuint, pname: GLenum, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-proc glIsProgramNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glLoadProgramNV*(target: GLenum, id: GLuint, length: GLsizei, 

-                      prog: PGLubyte){.stdcall, importc, ogl.}

-proc glProgramParameter4dNV*(target: GLenum, index: GLuint, x: GLdouble, 

-                             y: GLdouble, z: GLdouble, w: GLdouble){.stdcall, importc, ogl.}

-proc glProgramParameter4dvNV*(target: GLenum, index: GLuint, v: PGLdouble){.

-    stdcall, importc, ogl.}

-proc glProgramParameter4fNV*(target: GLenum, index: GLuint, x: GLfloat, 

-                             y: GLfloat, z: GLfloat, w: GLfloat){.stdcall, importc, ogl.}

-proc glProgramParameter4fvNV*(target: GLenum, index: GLuint, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glProgramParameters4dvNV*(target: GLenum, index: GLuint, count: GLuint, 

-                               v: PGLdouble){.stdcall, importc, ogl.}

-proc glProgramParameters4fvNV*(target: GLenum, index: GLuint, count: GLuint, 

-                               v: PGLfloat){.stdcall, importc, ogl.}

-proc glRequestResidentProgramsNV*(n: GLsizei, programs: PGLuint){.stdcall, importc, ogl.}

-proc glTrackMatrixNV*(target: GLenum, address: GLuint, matrix: GLenum, 

-                      transform: GLenum){.stdcall, importc, ogl.}

-proc glVertexAttribPointerNV*(index: GLuint, fsize: GLint, typ: GLenum, 

-                              stride: GLsizei, pointer: PGLvoid){.stdcall, importc, ogl.}

-proc glVertexAttrib1dNV*(index: GLuint, x: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib1fNV*(index: GLuint, x: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib1sNV*(index: GLuint, x: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib1svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2dNV*(index: GLuint, x: GLdouble, y: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib2fNV*(index: GLuint, x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib2sNV*(index: GLuint, x: GLshort, y: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib2svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib3dNV*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib3fNV*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib3sNV*(index: GLuint, x: GLshort, y: GLshort, z: GLshort){.

-    stdcall, importc, ogl.}

-proc glVertexAttrib3svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4dNV*(index: GLuint, x: GLdouble, y: GLdouble, z: GLdouble, 

-                         w: GLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4dvNV*(index: GLuint, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttrib4fNV*(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, 

-                         w: GLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4fvNV*(index: GLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttrib4sNV*(index: GLuint, x: GLshort, y: GLshort, z: GLshort, 

-                         w: GLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4svNV*(index: GLuint, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubNV*(index: GLuint, x: GLubyte, y: GLubyte, z: GLubyte, 

-                          w: GLubyte){.stdcall, importc, ogl.}

-proc glVertexAttrib4ubvNV*(index: GLuint, v: PGLubyte){.stdcall, importc, ogl.}

-proc glVertexAttribs1dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs1fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs1svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs2dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs2fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs2svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs3dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs3fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs3svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs4dvNV*(index: GLuint, count: GLsizei, v: PGLdouble){.stdcall, importc, ogl.}

-proc glVertexAttribs4fvNV*(index: GLuint, count: GLsizei, v: PGLfloat){.stdcall, importc, ogl.}

-proc glVertexAttribs4svNV*(index: GLuint, count: GLsizei, v: PGLshort){.stdcall, importc, ogl.}

-proc glVertexAttribs4ubvNV*(index: GLuint, count: GLsizei, v: PGLubyte){.stdcall, importc, ogl.}

-  # GL_NV_depth_buffer_float

-proc glDepthRangedNV*(n: GLdouble, f: GLdouble){.stdcall, importc, ogl.}

-proc glClearDepthdNV*(d: GLdouble){.stdcall, importc, ogl.}

-proc glDepthBoundsdNV*(zmin: GLdouble, zmax: GLdouble){.stdcall, importc, ogl.}

-  # GL_NV_framebuffer_multisample_coverage

-proc glRenderbufferStorageMultsampleCoverageNV*(target: GLenum, 

-    coverageSamples: GLsizei, colorSamples: GLsizei, internalformat: GLenum, 

-    width: GLsizei, height: GLsizei){.stdcall, importc, ogl.}

-  # GL_NV_geometry_program4

-proc glProgramVertexLimitNV*(target: GLenum, limit: GLint){.stdcall, importc, ogl.}

-  # GL_NV_gpu_program4

-proc glProgramLocalParameterI4iNV*(target: GLenum, index: GLuint, x: GLint, 

-                                   y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4ivNV*(target: GLenum, index: GLuint, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glProgramLocalParametersI4ivNV*(target: GLenum, index: GLuint, 

-                                     count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4uiNV*(target: GLenum, index: GLuint, x: GLuint, 

-                                    y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glProgramLocalParameterI4uivNV*(target: GLenum, index: GLuint, 

-                                     params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramLocalParametersI4uivNV*(target: GLenum, index: GLuint, 

-                                      count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4iNV*(target: GLenum, index: GLuint, x: GLint, 

-                                 y: GLint, z: GLint, w: GLint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4ivNV*(target: GLenum, index: GLuint, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glProgramEnvParametersI4ivNV*(target: GLenum, index: GLuint, 

-                                   count: GLsizei, params: PGLint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4uiNV*(target: GLenum, index: GLuint, x: GLuint, 

-                                  y: GLuint, z: GLuint, w: GLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParameterI4uivNV*(target: GLenum, index: GLuint, 

-                                   params: PGLuint){.stdcall, importc, ogl.}

-proc glProgramEnvParametersI4uivNV*(target: GLenum, index: GLuint, 

-                                    count: GLsizei, params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterIivNV*(target: GLenum, index: GLuint, 

-                                      params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramLocalParameterIuivNV*(target: GLenum, index: GLuint, 

-                                       params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterIivNV*(target: GLenum, index: GLuint, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-proc glGetProgramEnvParameterIuivNV*(target: GLenum, index: GLuint, 

-                                     params: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_parameter_buffer_object

-proc glProgramBufferParametersfvNV*(target: GLenum, buffer: GLuint, 

-                                    index: GLuint, count: GLsizei, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glProgramBufferParametersIivNV*(target: GLenum, buffer: GLuint, 

-                                     index: GLuint, count: GLsizei, 

-                                     params: GLint){.stdcall, importc, ogl.}

-proc glProgramBufferParametersIuivNV*(target: GLenum, buffer: GLuint, 

-                                      index: GLuint, count: GLuint, 

-                                      params: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_transform_feedback

-proc glBeginTransformFeedbackNV*(primitiveMode: GLenum){.stdcall, importc, ogl.}

-proc glEndTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glTransformFeedbackAttribsNV*(count: GLsizei, attribs: GLint, 

-                                   bufferMode: GLenum){.stdcall, importc, ogl.}

-proc glBindBufferRangeNV*(target: GLenum, index: GLuint, buffer: GLuint, 

-                          offset: GLintptr, size: GLsizeiptr){.stdcall, importc, ogl.}

-proc glBindBufferOffsetNV*(target: GLenum, index: GLuint, buffer: GLuint, 

-                           offset: GLintptr){.stdcall, importc, ogl.}

-proc glBindBufferBaseNV*(target: GLenum, index: GLuint, buffer: GLuint){.stdcall, importc, ogl.}

-proc glTransformFeedbackVaryingsNV*(prog: GLuint, count: GLsizei, 

-                                    locations: PGLint, bufferMode: GLenum){.

-    stdcall, importc, ogl.}

-proc glActiveVaryingNV*(prog: GLuint, name: PGLchar){.stdcall, importc, ogl.}

-proc glGetVaryingLocationNV*(prog: GLuint, name: PGLchar): GLint{.stdcall, importc, ogl.}

-proc glGetActiveVaryingNV*(prog: GLuint, index: GLuint, bufSize: GLsizei, 

-                           len: PGLsizei, size: PGLsizei, typ: PGLenum, 

-                           name: PGLchar){.stdcall, importc, ogl.}

-proc glGetTransformFeedbackVaryingNV*(prog: GLuint, index: GLuint, 

-                                      location: PGLint){.stdcall, importc, ogl.}

-proc glTransformFeedbackStreamAttribsNV*(count: GLsizei, attribs: PGLint, 

-    nbuffers: GLsizei, bufstreams: PGLint, bufferMode: GLenum){.stdcall, importc, ogl.}

-  # GL_NV_conditional_render

-proc glBeginConditionalRenderNV*(id: GLuint, mode: GLenum){.stdcall, importc, ogl.}

-proc glEndConditionalRenderNV*(){.stdcall, importc, ogl.}

-  # GL_NV_present_video

-proc glPresentFrameKeyedNV*(video_slot: GLuint, minPresentTime: GLuint64EXT, 

-                            beginPresentTimeId: GLuint, 

-                            presentDuratioId: GLuint, typ: GLenum, 

-                            target0: GLenum, fill0: GLuint, key0: GLuint, 

-                            target1: GLenum, fill1: GLuint, key1: GLuint){.

-    stdcall, importc, ogl.}

-proc glPresentFrameDualFillNV*(video_slot: GLuint, minPresentTime: GLuint64EXT, 

-                               beginPresentTimeId: GLuint, 

-                               presentDurationId: GLuint, typ: GLenum, 

-                               target0: GLenum, fill0: GLuint, target1: GLenum, 

-                               fill1: GLuint, target2: GLenum, fill2: GLuint, 

-                               target3: GLenum, fill3: GLuint){.stdcall, importc, ogl.}

-proc glGetVideoivNV*(video_slot: GLuint, pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideouivNV*(video_slot: GLuint, pname: GLenum, params: PGLuint){.

-    stdcall, importc, ogl.}

-proc glGetVideoi64vNV*(video_slot: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetVideoui64vNV*(video_slot: GLuint, pname: GLenum, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  #procedure glVideoParameterivNV(video_slot: GLuint; pname: GLenum; const params: PGLint); stdcall, importc, ogl;

-  # GL_NV_explicit_multisample

-proc glGetMultisamplefvNV*(pname: GLenum, index: GLuint, val: PGLfloat){.stdcall, importc, ogl.}

-proc glSampleMaskIndexedNV*(index: GLuint, mask: GLbitfield){.stdcall, importc, ogl.}

-proc glTexRenderbufferNV*(target: GLenum, renderbuffer: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_transform_feedback2

-proc glBindTransformFeedbackNV*(target: GLenum, id: GLuint){.stdcall, importc, ogl.}

-proc glDeleteTransformFeedbacksNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glGenTransformFeedbacksNV*(n: GLsizei, ids: PGLuint){.stdcall, importc, ogl.}

-proc glIsTransformFeedbackNV*(id: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glPauseTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glResumeTransformFeedbackNV*(){.stdcall, importc, ogl.}

-proc glDrawTransformFeedbackNV*(mode: GLenum, id: GLuint){.stdcall, importc, ogl.}

-  # GL_NV_video_capture

-proc glBeginVideoCaptureNV*(video_capture_slot: GLuint){.stdcall, importc, ogl.}

-proc glBindVideoCaptureStreamBufferNV*(video_capture_slot: GLuint, 

-                                       stream: GLuint, frame_region: GLenum, 

-                                       offset: GLintptrARB){.stdcall, importc, ogl.}

-proc glBindVideoCaptureStreamTextureNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, frame_region: GLenum, 

-                                        target: GLenum, texture: GLuint){.

-    stdcall, importc, ogl.}

-proc glEndVideoCaptureNV*(video_capture_slot: GLuint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureivNV*(video_capture_slot: GLuint, pname: GLenum, 

-                            params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamivNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamfvNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetVideoCaptureStreamdvNV*(video_capture_slot: GLuint, stream: GLuint, 

-                                  pname: GLenum, params: PGLdouble){.stdcall, importc, ogl.}

-proc glVideoCaptureNV*(video_capture_slot: GLuint, sequence_num: PGLuint, 

-                       capture_time: PGLuint64EXT): GLenum{.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterivNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLint){.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterfvNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLfloat){.stdcall, importc, ogl.}

-proc glVideoCaptureStreamParameterdvNV*(video_capture_slot: GLuint, 

-                                        stream: GLuint, pname: GLenum, 

-                                        params: PGLdouble){.stdcall, importc, ogl.}

-  # GL_NV_copy_image

-proc glCopyImageSubDataNV*(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, 

-                           srcX: GLint, srcY: GLint, srcZ: GLint, 

-                           dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, 

-                           dstX: GLint, dstY: GLint, dstZ: GLint, 

-                           width: GLsizei, height: GLsizei, depth: GLsizei){.

-    stdcall, importc, ogl.}

-  # GL_NV_shader_buffer_load

-proc glMakeBufferResidentNV*(target: GLenum, access: GLenum){.stdcall, importc, ogl.}

-proc glMakeBufferNonResidentNV*(target: GLenum){.stdcall, importc, ogl.}

-proc glIsBufferResidentNV*(target: GLenum): GLboolean{.stdcall, importc, ogl.}

-proc glMakeNamedBufferResidentNV*(buffer: GLuint, access: GLenum){.stdcall, importc, ogl.}

-proc glMakeNamedBufferNonResidentNV*(buffer: GLuint){.stdcall, importc, ogl.}

-proc glIsNamedBufferResidentNV*(buffer: GLuint): GLboolean{.stdcall, importc, ogl.}

-proc glGetBufferParameterui64vNV*(target: GLenum, pname: GLenum, 

-                                  params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetNamedBufferParameterui64vNV*(buffer: GLuint, pname: GLenum, 

-                                       params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetIntegerui64vNV*(value: GLenum, result: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glUniformui64NV*(location: GLint, value: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniformui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetUniformui64vNV*(prog: GLuint, location: GLint, params: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniformui64NV*(prog: GLuint, location: GLint, value: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniformui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLuint64EXT){.stdcall, importc, ogl.}

-  # GL_NV_vertex_buffer_unified_memory

-proc glBufferAddressRangeNV*(pname: GLenum, index: GLuint, adress: GLuint64EXT, 

-                             len: GLsizeiptr){.stdcall, importc, ogl.}

-proc glVertexFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glNormalFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glColorFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glIndexFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glTexCoordFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glEdgeFlagFormatNV*(stride: GLsizei){.stdcall, importc, ogl.}

-proc glSecondaryColorFormatNV*(size: GLint, typ: GLenum, stride: GLsizei){.

-    stdcall, importc, ogl.}

-proc glFogCoordFormatNV*(typ: GLenum, stride: GLsizei){.stdcall, importc, ogl.}

-proc glVertexAttribFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                             normalized: GLboolean, stride: GLsizei){.stdcall, importc, ogl.}

-proc glVertexAttribIFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                              stride: GLsizei){.stdcall, importc, ogl.}

-proc glGetIntegerui64i_vNV*(value: GLenum, index: GLuint, Result: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-  # GL_NV_gpu_program5

-proc glProgramSubroutineParametersuivNV*(target: GLenum, count: GLsizei, 

-    params: PGLuint){.stdcall, importc, ogl.}

-proc glGetProgramSubroutineParameteruivNV*(target: GLenum, index: GLuint, 

-    param: PGLuint){.stdcall, importc, ogl.}

-  # GL_NV_gpu_shader5

-proc glUniform1i64NV*(location: GLint, x: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform2i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform3i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, 

-                      z: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform4i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, 

-                      z: GLint64EXT, w: GLint64EXT){.stdcall, importc, ogl.}

-proc glUniform1i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform2i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform3i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform4i64vNV*(location: GLint, count: GLsizei, value: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform1ui64NV*(location: GLint, x: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform2ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform3ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, 

-                       z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform4ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, 

-                       z: GLuint64EXT, w: GLuint64EXT){.stdcall, importc, ogl.}

-proc glUniform1ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform2ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform3ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glUniform4ui64vNV*(location: GLint, count: GLsizei, value: PGLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetUniformi64vNV*(prog: GLuint, location: GLint, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i64NV*(prog: GLuint, location: GLint, x: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT, z: GLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4i64NV*(prog: GLuint, location: GLint, x: GLint64EXT, 

-                             y: GLint64EXT, z: GLint64EXT, w: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform2i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4i64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                              value: PGLint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform1ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform2ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT, z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4ui64NV*(prog: GLuint, location: GLint, x: GLuint64EXT, 

-                              y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glProgramUniform1ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform2ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform3ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glProgramUniform4ui64vNV*(prog: GLuint, location: GLint, count: GLsizei, 

-                               value: PGLuint64EXT){.stdcall, importc, ogl.}

-  # GL_NV_vertex_attrib_integer_64bit

-proc glVertexAttribL1i64NV*(index: GLuint, x: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL3i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT, 

-                            z: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4i64NV*(index: GLuint, x: GLint64EXT, y: GLint64EXT, 

-                            z: GLint64EXT, w: GLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL3i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4i64vNV*(index: GLuint, v: PGLint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1ui64NV*(index: GLuint, x: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT){.

-    stdcall, importc, ogl.}

-proc glVertexAttribL3ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT, 

-                             z: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4ui64NV*(index: GLuint, x: GLuint64EXT, y: GLuint64EXT, 

-                             z: GLuint64EXT, w: GLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL1ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL2ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL3ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribL4ui64vNV*(index: GLuint, v: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glGetVertexAttribLi64vNV*(index: GLuint, pname: GLenum, params: PGLint64EXT){.

-    stdcall, importc, ogl.}

-proc glGetVertexAttribLui64vNV*(index: GLuint, pname: GLenum, 

-                                params: PGLuint64EXT){.stdcall, importc, ogl.}

-proc glVertexAttribLFormatNV*(index: GLuint, size: GLint, typ: GLenum, 

-                              stride: GLsizei){.stdcall, importc, ogl.}

-  # GL_NV_vdpau_interop

-proc glVDPAUInitNV*(vdpDevice: PGLvoid, getProcAddress: PGLvoid){.stdcall, importc, ogl.}

-proc glVDPAUFiniNV*(){.stdcall, importc, ogl.}

-proc glVDPAURegisterVideoSurfaceNV*(vdpSurface: PGLvoid, target: GLenum, 

-                                    numTextureNames: GLsizei, 

-                                    textureNames: PGLuint): GLvdpauSurfaceNV{.

-    stdcall, importc, ogl.}

-proc glVDPAURegisterOutputSurfaceNV*(vdpSurface: PGLvoid, target: GLenum, 

-                                     numTextureNames: GLsizei, 

-                                     textureNames: PGLuint): GLvdpauSurfaceNV{.

-    stdcall, importc, ogl.}

-proc glVDPAUIsSurfaceNV*(surface: GLvdpauSurfaceNV){.stdcall, importc, ogl.}

-proc glVDPAUUnregisterSurfaceNV*(surface: GLvdpauSurfaceNV){.stdcall, importc, ogl.}

-proc glVDPAUGetSurfaceivNV*(surface: GLvdpauSurfaceNV, pname: GLenum, 

-                            bufSize: GLsizei, len: PGLsizei, values: PGLint){.

-    stdcall, importc, ogl.}

-proc glVDPAUSurfaceAccessNV*(surface: GLvdpauSurfaceNV, access: GLenum){.stdcall, importc, ogl.}

-proc glVDPAUMapSurfacesNV*(numSurfaces: GLsizei, surfaces: PGLvdpauSurfaceNV){.

-    stdcall, importc, ogl.}

-proc glVDPAUUnmapSurfacesNV*(numSurface: GLsizei, surfaces: PGLvdpauSurfaceNV){.

-    stdcall, importc, ogl.}

-  # GL_NV_texture_barrier

-proc glTextureBarrierNV*(){.stdcall, importc, ogl.}

-  # GL_PGI_misc_hints

-proc glHintPGI*(target: GLenum, mode: GLint){.stdcall, importc, ogl.}

-  # GL_SGIS_detail_texture

-proc glDetailTexFuncSGIS*(target: GLenum, n: GLsizei, points: PGLfloat){.stdcall, importc, ogl.}

-proc glGetDetailTexFuncSGIS*(target: GLenum, points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_fog_function

-proc glFogFuncSGIS*(n: GLsizei, points: PGLfloat){.stdcall, importc, ogl.}

-proc glGetFogFuncSGIS*(points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_multisample

-proc glSampleMaskSGIS*(value: GLclampf, invert: GLboolean){.stdcall, importc, ogl.}

-proc glSamplePatternSGIS*(pattern: GLenum){.stdcall, importc, ogl.}

-  # GL_SGIS_pixel_texture

-proc glPixelTexGenParameteriSGIS*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterivSGIS*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterfSGIS*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPixelTexGenParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetPixelTexGenParameterivSGIS*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glGetPixelTexGenParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_point_parameters

-proc glPointParameterfSGIS*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glPointParameterfvSGIS*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_sharpen_texture

-proc glSharpenTexFuncSGIS*(target: GLenum, n: GLsizei, points: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetSharpenTexFuncSGIS*(target: GLenum, points: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIS_texture4D

-proc glTexImage4DSGIS*(target: GLenum, level: GLint, internalformat: GLenum, 

-                       width: GLsizei, height: GLsizei, depth: GLsizei, 

-                       size4d: GLsizei, border: GLint, format: GLenum, 

-                       typ: GLenum, pixels: PGLvoid){.stdcall, importc, ogl.}

-proc glTexSubImage4DSGIS*(target: GLenum, level: GLint, xoffset: GLint, 

-                          yoffset: GLint, zoffset: GLint, woffset: GLint, 

-                          width: GLsizei, height: GLsizei, depth: GLsizei, 

-                          size4d: GLsizei, format: GLenum, typ: GLenum, 

-                          pixels: PGLvoid){.stdcall, importc, ogl.}

-  # GL_SGIS_texture_color_mask

-proc glTextureColorMaskSGIS*(red: GLboolean, green: GLboolean, blue: GLboolean, 

-                             alpha: GLboolean){.stdcall, importc, ogl.}

-  # GL_SGIS_texture_filter4

-proc glGetTexFilterFuncSGIS*(target: GLenum, filter: GLenum, weights: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexFilterFuncSGIS*(target: GLenum, filter: GLenum, n: GLsizei, 

-                          weights: PGLfloat){.stdcall, importc, ogl.}

-  # GL_SGIX_async

-proc glAsyncMarkerSGIX*(marker: GLuint){.stdcall, importc, ogl.}

-proc glFinishAsyncSGIX*(markerp: PGLuint): GLint{.stdcall, importc, ogl.}

-proc glPollAsyncSGIX*(markerp: PGLuint): GLint{.stdcall, importc, ogl.}

-proc glGenAsyncMarkersSGIX*(range: GLsizei): GLuint{.stdcall, importc, ogl.}

-proc glDeleteAsyncMarkersSGIX*(marker: GLuint, range: GLsizei){.stdcall, importc, ogl.}

-proc glIsAsyncMarkerSGIX*(marker: GLuint): GLboolean{.stdcall, importc, ogl.}

-  # GL_SGIX_flush_raster

-proc glFlushRasterSGIX*(){.stdcall, importc, ogl.}

-  # GL_SGIX_fragment_lighting

-proc glFragmentColorMaterialSGIX*(face: GLenum, mode: GLenum){.stdcall, importc, ogl.}

-proc glFragmentLightfSGIX*(light: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentLightfvSGIX*(light: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentLightiSGIX*(light: GLenum, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glFragmentLightivSGIX*(light: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glFragmentLightModelfSGIX*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glFragmentLightModelfvSGIX*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glFragmentLightModeliSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glFragmentLightModelivSGIX*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-proc glFragmentMaterialfSGIX*(face: GLenum, pname: GLenum, param: GLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialfvSGIX*(face: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialiSGIX*(face: GLenum, pname: GLenum, param: GLint){.

-    stdcall, importc, ogl.}

-proc glFragmentMaterialivSGIX*(face: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetFragmentLightfvSGIX*(light: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetFragmentLightivSGIX*(light: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glGetFragmentMaterialfvSGIX*(face: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetFragmentMaterialivSGIX*(face: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glLightEnviSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_framezoom

-proc glFrameZoomSGIX*(factor: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_igloo_interface

-proc glIglooInterfaceSGIX*(pname: GLenum, params: PGLvoid){.stdcall, importc, ogl.}

-  # GL_SGIX_instruments

-proc glGetInstrumentsSGIX*(): GLint{.stdcall, importc, ogl.}

-proc glInstrumentsBufferSGIX*(size: GLsizei, buffer: PGLint){.stdcall, importc, ogl.}

-proc glPollInstrumentsSGIX*(marker_p: PGLint): GLint{.stdcall, importc, ogl.}

-proc glReadInstrumentsSGIX*(marker: GLint){.stdcall, importc, ogl.}

-proc glStartInstrumentsSGIX*(){.stdcall, importc, ogl.}

-proc glStopInstrumentsSGIX*(marker: GLint){.stdcall, importc, ogl.}

-  # GL_SGIX_list_priority

-proc glGetListParameterfvSGIX*(list: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glGetListParameterivSGIX*(list: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glListParameterfSGIX*(list: GLuint, pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glListParameterfvSGIX*(list: GLuint, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glListParameteriSGIX*(list: GLuint, pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glListParameterivSGIX*(list: GLuint, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-  # GL_SGIX_pixel_texture

-proc glPixelTexGenSGIX*(mode: GLenum){.stdcall, importc, ogl.}

-  # GL_SGIX_polynomial_ffd

-proc glDeformationMap3dSGIX*(target: GLenum, u1: GLdouble, u2: GLdouble, 

-                             ustride: GLint, uorder: GLint, v1: GLdouble, 

-                             v2: GLdouble, vstride: GLint, vorder: GLint, 

-                             w1: GLdouble, w2: GLdouble, wstride: GLint, 

-                             worder: GLint, points: PGLdouble){.stdcall, importc, ogl.}

-proc glDeformationMap3fSGIX*(target: GLenum, u1: GLfloat, u2: GLfloat, 

-                             ustride: GLint, uorder: GLint, v1: GLfloat, 

-                             v2: GLfloat, vstride: GLint, vorder: GLint, 

-                             w1: GLfloat, w2: GLfloat, wstride: GLint, 

-                             worder: GLint, points: PGLfloat){.stdcall, importc, ogl.}

-proc glDeformSGIX*(mask: GLbitfield){.stdcall, importc, ogl.}

-proc glLoadIdentityDeformationMapSGIX*(mask: GLbitfield){.stdcall, importc, ogl.}

-  # GL_SGIX_reference_plane

-proc glReferencePlaneSGIX*(equation: PGLdouble){.stdcall, importc, ogl.}

-  # GL_SGIX_sprite

-proc glSpriteParameterfSGIX*(pname: GLenum, param: GLfloat){.stdcall, importc, ogl.}

-proc glSpriteParameterfvSGIX*(pname: GLenum, params: PGLfloat){.stdcall, importc, ogl.}

-proc glSpriteParameteriSGIX*(pname: GLenum, param: GLint){.stdcall, importc, ogl.}

-proc glSpriteParameterivSGIX*(pname: GLenum, params: PGLint){.stdcall, importc, ogl.}

-  # GL_SGIX_tag_sample_buffer

-proc glTagSampleBufferSGIX*(){.stdcall, importc, ogl.}

-  # GL_SGI_color_table

-proc glColorTableSGI*(target: GLenum, internalformat: GLenum, width: GLsizei, 

-                      format: GLenum, typ: GLenum, table: PGLvoid){.stdcall, importc, ogl.}

-proc glColorTableParameterfvSGI*(target: GLenum, pname: GLenum, params: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glColorTableParameterivSGI*(target: GLenum, pname: GLenum, params: PGLint){.

-    stdcall, importc, ogl.}

-proc glCopyColorTableSGI*(target: GLenum, internalformat: GLenum, x: GLint, 

-                          y: GLint, width: GLsizei){.stdcall, importc, ogl.}

-proc glGetColorTableSGI*(target: GLenum, format: GLenum, typ: GLenum, 

-                         table: PGLvoid){.stdcall, importc, ogl.}

-proc glGetColorTableParameterfvSGI*(target: GLenum, pname: GLenum, 

-                                    params: PGLfloat){.stdcall, importc, ogl.}

-proc glGetColorTableParameterivSGI*(target: GLenum, pname: GLenum, 

-                                    params: PGLint){.stdcall, importc, ogl.}

-  # GL_SUNX_constant_data

-proc glFinishTextureSUNX*(){.stdcall, importc, ogl.}

-  # GL_SUN_global_alpha

-proc glGlobalAlphaFactorbSUN*(factor: GLbyte){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorsSUN*(factor: GLshort){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactoriSUN*(factor: GLint){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorfSUN*(factor: GLfloat){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactordSUN*(factor: GLdouble){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorubSUN*(factor: GLubyte){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactorusSUN*(factor: GLushort){.stdcall, importc, ogl.}

-proc glGlobalAlphaFactoruiSUN*(factor: GLuint){.stdcall, importc, ogl.}

-  # GL_SUN_mesh_array

-proc glDrawMeshArraysSUN*(mode: GLenum, first: GLint, count: GLsizei, 

-                          width: GLsizei){.stdcall, importc, ogl.}

-  # GL_SUN_triangle_list

-proc glReplacementCodeuiSUN*(code: GLuint){.stdcall, importc, ogl.}

-proc glReplacementCodeusSUN*(code: GLushort){.stdcall, importc, ogl.}

-proc glReplacementCodeubSUN*(code: GLubyte){.stdcall, importc, ogl.}

-proc glReplacementCodeuivSUN*(code: PGLuint){.stdcall, importc, ogl.}

-proc glReplacementCodeusvSUN*(code: PGLushort){.stdcall, importc, ogl.}

-proc glReplacementCodeubvSUN*(code: PGLubyte){.stdcall, importc, ogl.}

-proc glReplacementCodePointerSUN*(typ: GLenum, stride: GLsizei, pointer: PGLvoid){.

-    stdcall, importc, ogl.}

-  # GL_SUN_vertex

-proc glColor4ubVertex2fSUN*(r: GLubyte, g: GLubyte, b: GLubyte, a: GLubyte, 

-                            x: GLfloat, y: GLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex2fvSUN*(c: PGLubyte, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex3fSUN*(r: GLubyte, g: GLubyte, b: GLubyte, a: GLubyte, 

-                            x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glColor4ubVertex3fvSUN*(c: PGLubyte, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor3fVertex3fSUN*(r: GLfloat, g: GLfloat, b: GLfloat, x: GLfloat, 

-                           y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glColor3fVertex3fvSUN*(c: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glNormal3fVertex3fSUN*(nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, 

-                            y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glNormal3fVertex3fvSUN*(n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glColor4fNormal3fVertex3fSUN*(r: GLfloat, g: GLfloat, b: GLfloat, 

-                                   a: GLfloat, nx: GLfloat, ny: GLfloat, 

-                                   nz: GLfloat, x: GLfloat, y: GLfloat, 

-                                   z: GLfloat){.stdcall, importc, ogl.}

-proc glColor4fNormal3fVertex3fvSUN*(c: PGLfloat, n: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fVertex3fSUN*(s: GLfloat, t: GLfloat, x: GLfloat, y: GLfloat, 

-                              z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fVertex3fvSUN*(tc: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4fVertex4fSUN*(s: GLfloat, t: GLfloat, p: GLfloat, q: GLfloat, 

-                              x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord4fVertex4fvSUN*(tc: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor4ubVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLubyte, 

-                                      g: GLubyte, b: GLubyte, a: GLubyte, 

-                                      x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor4ubVertex3fvSUN*(tc: PGLfloat, c: PGLubyte, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor3fVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLfloat, 

-                                     g: GLfloat, b: GLfloat, x: GLfloat, 

-                                     y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fNormal3fVertex3fSUN*(s: GLfloat, t: GLfloat, nx: GLfloat, 

-                                      ny: GLfloat, nz: GLfloat, x: GLfloat, 

-                                      y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fNormal3fVertex3fvSUN*(tc: PGLfloat, n: PGLfloat, v: PGLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord2fColor4fNormal3fVertex3fSUN*(s: GLfloat, t: GLfloat, r: GLfloat, 

-    g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, 

-    x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glTexCoord2fColor4fNormal3fVertex3fvSUN*(tc: PGLfloat, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glTexCoord4fColor4fNormal3fVertex4fSUN*(s: GLfloat, t: GLfloat, p: GLfloat, 

-    q: GLfloat, r: GLfloat, g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, 

-    ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat){.

-    stdcall, importc, ogl.}

-proc glTexCoord4fColor4fNormal3fVertex4fvSUN*(tc: PGLfloat, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiVertex3fSUN*(rc: GLuint, x: GLfloat, y: GLfloat, 

-                                     z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiVertex3fvSUN*(rc: PGLuint, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4ubVertex3fSUN*(rc: GLuint, r: GLubyte, g: GLubyte, 

-    b: GLubyte, a: GLubyte, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4ubVertex3fvSUN*(rc: PGLuint, c: PGLubyte, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor3fVertex3fSUN*(rc: GLuint, r: GLfloat, g: GLfloat, 

-    b: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiNormal3fVertex3fSUN*(rc: GLuint, nx: GLfloat, 

-    ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiNormal3fVertex3fvSUN*(rc: PGLuint, n: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4fNormal3fVertex3fSUN*(rc: GLuint, r: GLfloat, 

-    g: GLfloat, b: GLfloat, a: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, 

-    x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiColor4fNormal3fVertex3fvSUN*(rc: PGLuint, c: PGLfloat, 

-    n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fVertex3fSUN*(rc: GLuint, s: GLfloat, 

-    t: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fVertex3fvSUN*(rc: PGLuint, tc: PGLfloat, 

-    v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN*(rc: GLuint, s: GLfloat, 

-    t: GLfloat, nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, 

-    z: GLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN*(rc: PGLuint, 

-    tc: PGLfloat, n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN*(rc: GLuint, 

-    s: GLfloat, t: GLfloat, r: GLfloat, g: GLfloat, b: GLfloat, a: GLfloat, 

-    nx: GLfloat, ny: GLfloat, nz: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat){.

-    stdcall, importc, ogl.}

-proc glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN*(rc: PGLuint, 

-    tc: PGLfloat, c: PGLfloat, n: PGLfloat, v: PGLfloat){.stdcall, importc, ogl.}

-  # window support functions

-when defined(windows): 

-  when not defined(wglGetProcAddress):

-    proc wglGetProcAddress*(ProcName: cstring): Pointer{.stdcall, importc, wgl.}

-  proc wglCopyContext*(p1: HGLRC, p2: HGLRC, p3: int): BOOL{.stdcall, importc, wgl.}

-  proc wglCreateContext*(DC: HDC): HGLRC{.stdcall, importc, wgl.}

-  proc wglCreateLayerContext*(p1: HDC, p2: int): HGLRC{.stdcall, importc, wgl.}

-  proc wglDeleteContext*(p1: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglDescribeLayerPlane*(p1: HDC, p2, p3: int, p4: int, 

-                              LayerPlaneDescriptor: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglGetCurrentContext*(): HGLRC{.stdcall, importc, wgl.}

-  proc wglGetCurrentDC*(): HDC{.stdcall, importc, wgl.}

-  proc wglGetLayerPaletteEntries*(p1: HDC, p2, p3, p4: int, pcr: pointer): int{.

-      stdcall, importc, wgl.}

-  proc wglMakeCurrent*(DC: HDC, p2: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglRealizeLayerPalette*(p1: HDC, p2: int, p3: BOOL): BOOL{.stdcall, importc, wgl.}

-  proc wglSetLayerPaletteEntries*(p1: HDC, p2, p3, p4: int, pcr: pointer): int{.

-      stdcall, importc, wgl.}

-  proc wglShareLists*(p1, p2: HGLRC): BOOL{.stdcall, importc, wgl.}

-  proc wglSwapLayerBuffers*(p1: HDC, p2: int): BOOL{.stdcall, importc, wgl.}

-  proc wglSwapMultipleBuffers*(p1: int32, p2: PWGLSWAP): int32{.stdcall, importc, wgl.}

-  proc wglUseFontBitmapsA*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontBitmapsW*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontBitmaps*(DC: HDC, p2, p3, p4: int32): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlinesA*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, 

-                            p7: int, GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlinesW*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, 

-                            p7: int, GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-  proc wglUseFontOutlines*(p1: HDC, p2, p3, p4: int32, p5, p6: float32, p7: int, 

-                           GlyphMetricsFloat: pointer): BOOL{.stdcall, importc, wgl.}

-    # WGL_ARB_buffer_region

-  proc wglCreateBufferRegionARB*(hDC: HDC, iLayerPlane: GLint, uType: GLuint): THandle{.

-      stdcall, importc, wgl.}

-  proc wglDeleteBufferRegionARB*(hRegion: THandle){.stdcall, importc, wgl.}

-  proc wglSaveBufferRegionARB*(hRegion: THandle, x: GLint, y: GLint, 

-                               width: GLint, height: GLint): bool{.stdcall, importc, wgl.}

-  proc wglRestoreBufferRegionARB*(hRegion: THandle, x: GLint, y: GLint, 

-                                  width: GLint, height: GLint, xSrc: GLint, 

-                                  ySrc: GLint): bool{.stdcall, importc, wgl.}

-    # WGL_ARB_extensions_string

-  proc wglGetExtensionsStringARB*(hdc: HDC): cstring{.stdcall, importc, wgl.}

-    # WGL_ARB_make_current_read

-  proc wglMakeContextCurrentARB*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetCurrentReadDCARB*(): HDC{.stdcall, importc, wgl.}

-    # WGL_ARB_pbuffer

-  proc wglCreatePbufferARB*(hDC: HDC, iPixelFormat: GLint, iWidth: GLint, 

-                            iHeight: GLint, piAttribList: PGLint): HPBUFFERARB{.

-      stdcall, importc, wgl.}

-  proc wglGetPbufferDCARB*(hPbuffer: HPBUFFERARB): HDC{.stdcall, importc, wgl.}

-  proc wglReleasePbufferDCARB*(hPbuffer: HPBUFFERARB, hDC: HDC): GLint{.stdcall, importc, wgl.}

-  proc wglDestroyPbufferARB*(hPbuffer: HPBUFFERARB): bool{.stdcall, importc, wgl.}

-  proc wglQueryPbufferARB*(hPbuffer: HPBUFFERARB, iAttribute: GLint, 

-                           piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_ARB_pixel_format

-  proc wglGetPixelFormatAttribivARB*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, piValues: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetPixelFormatAttribfvARB*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, pfValues: PGLfloat): bool{.

-      stdcall, importc, wgl.}

-  proc wglChoosePixelFormatARB*(hdc: HDC, piAttribIList: PGLint, 

-                                pfAttribFList: PGLfloat, nMaxFormats: GLuint, 

-                                piFormats: PGLint, nNumFormats: PGLuint): BOOL{.

-      stdcall, importc, wgl.}

-    # WGL_ARB_color_buffer_float

-  proc wglClampColorARB*(target: GLenum, clamp: GLenum){.stdcall, importc, wgl.}

-    # WGL_ARB_render_texture

-  proc wglBindTexImageARB*(hPbuffer: HPBUFFERARB, iBuffer: GLint): bool{.stdcall, importc, wgl.}

-  proc wglReleaseTexImageARB*(hPbuffer: HPBUFFERARB, iBuffer: GLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglSetPbufferAttribARB*(hPbuffer: HPBUFFERARB, piAttribList: PGLint): bool{.

-      stdcall, importc, wgl.}

-    # WGL_ARB_create_context

-  proc wglCreateContextAttribsARB*(hDC: HDC, hShareContext: HGLRC, 

-                                   attribList: PGLint): HGLRC{.stdcall, importc, wgl.}

-    # WGL_AMD_gpu_association

-  proc wglGetGPUIDsAMD*(maxCount: int, ids: ptr int): int{.stdcall, importc, wgl.}

-  proc wglGetGPUInfoAMD*(id: int, prop: int, dataType: GLenum, size: int, 

-                         data: Pointer): int{.stdcall, importc, wgl.}

-  proc wglGetContextGPUIDAMD*(hglrc: HGLRC): int{.stdcall, importc, wgl.}

-  proc wglCreateAssociatedContextAMD*(id: int): HGLRC{.stdcall, importc, wgl.}

-  proc wglCreateAssociatedContextAttribsAMD*(id: int, hShareContext: HGLRC, 

-      attribList: ptr int32): HGLRC{.stdcall, importc, wgl.}

-  proc wglDeleteAssociatedContextAMD*(hglrc: HGLRC): bool{.stdcall, importc, wgl.}

-  proc wglMakeAssociatedContextCurrentAMD*(hglrc: HGLRC): bool{.stdcall, importc, wgl.}

-  proc wglGetCurrentAssociatedContextAMD*(): HGLRC{.stdcall, importc, wgl.}

-  proc wglBlitContextFramebufferAMD*(dstCtx: HGLRC, srcX0: GLint, srcY0: GLint, 

-                                     srcX1: GLint, srcY1: GLint, dstX0: GLint, 

-                                     dstY0: GLint, dstX1: GLint, dstY1: GLint, 

-                                     mask: GLbitfield, filter: GLenum){.stdcall, importc, wgl.}

-    # WGL_EXT_display_color_table

-  proc wglCreateDisplayColorTableEXT*(id: GLushort): GLboolean{.stdcall, importc, wgl.}

-  proc wglLoadDisplayColorTableEXT*(table: PGLushort, len: GLuint): GLboolean{.

-      stdcall, importc, wgl.}

-  proc wglBindDisplayColorTableEXT*(id: GLushort): GLboolean{.stdcall, importc, wgl.}

-  proc wglDestroyDisplayColorTableEXT*(id: GLushort){.stdcall, importc, wgl.}

-    # WGL_EXT_extensions_string

-  proc wglGetExtensionsStringEXT*(): cstring{.stdcall, importc, wgl.}

-    # WGL_EXT_make_current_read

-  proc wglMakeContextCurrentEXT*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetCurrentReadDCEXT*(): HDC{.stdcall, importc, wgl.}

-    # WGL_EXT_pbuffer

-  proc wglCreatePbufferEXT*(hDC: HDC, iPixelFormat: GLint, iWidth: GLint, 

-                            iHeight: GLint, piAttribList: PGLint): HPBUFFEREXT{.

-      stdcall, importc, wgl.}

-  proc wglGetPbufferDCEXT*(hPbuffer: HPBUFFEREXT): HDC{.stdcall, importc, wgl.}

-  proc wglReleasePbufferDCEXT*(hPbuffer: HPBUFFEREXT, hDC: HDC): GLint{.stdcall, importc, wgl.}

-  proc wglDestroyPbufferEXT*(hPbuffer: HPBUFFEREXT): bool{.stdcall, importc, wgl.}

-  proc wglQueryPbufferEXT*(hPbuffer: HPBUFFEREXT, iAttribute: GLint, 

-                           piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_EXT_pixel_format

-  proc wglGetPixelFormatAttribivEXT*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, piValues: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetPixelFormatAttribfvEXT*(hdc: HDC, iPixelFormat: GLint, 

-                                     iLayerPlane: GLint, nAttributes: GLuint, 

-                                     piAttributes: PGLint, pfValues: PGLfloat): bool{.

-      stdcall, importc, wgl.}

-  proc wglChoosePixelFormatEXT*(hdc: HDC, piAttribIList: PGLint, 

-                                pfAttribFList: PGLfloat, nMaxFormats: GLuint, 

-                                piFormats: PGLint, nNumFormats: PGLuint): bool{.

-      stdcall, importc, wgl.}

-    # WGL_EXT_swap_control

-  proc wglSwapIntervalEXT*(interval: GLint): bool{.stdcall, importc, wgl.}

-  proc wglGetSwapIntervalEXT*(): GLint{.stdcall, importc, wgl.}

-    # WGL_I3D_digital_video_control

-  proc wglGetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                        piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglSetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                        piValue: PGLint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_gamma

-  proc wglGetGammaTableParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                      piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglSetGammaTableParametersI3D*(hDC: HDC, iAttribute: GLint, 

-                                      piValue: PGLint): bool{.stdcall, importc, wgl.}

-  proc wglGetGammaTableI3D*(hDC: HDC, iEntries: GLint, puRed: PGLushort, 

-                            puGreen: PGLushort, puBlue: PGLushort): bool{.

-      stdcall, importc, wgl.}

-  proc wglSetGammaTableI3D*(hDC: HDC, iEntries: GLint, puRed: PGLushort, 

-                            puGreen: PGLushort, puBlue: PGLushort): bool{.

-      stdcall, importc, wgl.}

-    # WGL_I3D_genlock

-  proc wglEnableGenlockI3D*(hDC: HDC): bool{.stdcall, importc, wgl.}

-  proc wglDisableGenlockI3D*(hDC: HDC): bool{.stdcall, importc, wgl.}

-  proc wglIsEnabledGenlockI3D*(hDC: HDC, pFlag: bool): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceI3D*(hDC: HDC, uSource: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceI3D*(hDC: HDC, uSource: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceEdgeI3D*(hDC: HDC, uEdge: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceEdgeI3D*(hDC: HDC, uEdge: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSampleRateI3D*(hDC: HDC, uRate: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSampleRateI3D*(hDC: HDC, uRate: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglGenlockSourceDelayI3D*(hDC: HDC, uDelay: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglGetGenlockSourceDelayI3D*(hDC: HDC, uDelay: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglQueryGenlockMaxSourceDelayI3D*(hDC: HDC, uMaxLineDelay: PGLuint, 

-      uMaxPixelDelay: PGLuint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_image_buffer

-  proc wglCreateImageBufferI3D*(hDC: HDC, dwSize: GLuint, uFlags: GLuint): GLvoid{.

-      stdcall, importc, wgl.}

-  proc wglDestroyImageBufferI3D*(hDC: HDC, pAddress: GLvoid): bool{.stdcall, importc, wgl.}

-  proc wglAssociateImageBufferEventsI3D*(hDC: HDC, pEvent: THandle, 

-      pAddress: PGLvoid, pSize: PGLuint, count: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglReleaseImageBufferEventsI3D*(hDC: HDC, pAddress: PGLvoid, 

-                                       count: GLuint): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_swap_frame_lock

-  proc wglEnableFrameLockI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglDisableFrameLockI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglIsEnabledFrameLockI3D*(pFlag: bool): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameLockMasterI3D*(pFlag: bool): bool{.stdcall, importc, wgl.}

-    # WGL_I3D_swap_frame_usage

-  proc wglGetFrameUsageI3D*(pUsage: PGLfloat): bool{.stdcall, importc, wgl.}

-  proc wglBeginFrameTrackingI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglEndFrameTrackingI3D*(): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameTrackingI3D*(pFrameCount: PGLuint, pMissedFrames: PGLuint, 

-                                 pLastMissedUsage: PGLfloat): bool{.stdcall, importc, wgl.}

-    # WGL_NV_vertex_array_range

-  proc wglAllocateMemoryNV*(size: GLsizei, readfreq: GLfloat, 

-                            writefreq: GLfloat, priority: GLfloat){.stdcall, importc, wgl.}

-  proc wglFreeMemoryNV*(pointer: Pointer){.stdcall, importc, wgl.}

-    # WGL_NV_present_video

-  proc wglEnumerateVideoDevicesNV*(hdc: HDC, phDeviceList: PHVIDEOOUTPUTDEVICENV): int{.

-      stdcall, importc, wgl.}

-  proc wglBindVideoDeviceNV*(hd: HDC, uVideoSlot: int, 

-                             hVideoDevice: HVIDEOOUTPUTDEVICENV, 

-                             piAttribList: ptr int32): bool{.stdcall, importc, wgl.}

-  proc wglQueryCurrentContextNV*(iAttribute: int, piValue: ptr int32): bool{.

-      stdcall, importc, wgl.}

-    # WGL_NV_video_output

-  proc wglGetVideoDeviceNV*(hDC: HDC, numDevices: int, hVideoDevice: PHPVIDEODEV): bool{.

-      stdcall, importc, wgl.}

-  proc wglReleaseVideoDeviceNV*(hVideoDevice: HPVIDEODEV): bool{.stdcall, importc, wgl.}

-  proc wglBindVideoImageNV*(hVideoDevice: HPVIDEODEV, hPbuffer: HPBUFFERARB, 

-                            iVideoBuffer: int): bool{.stdcall, importc, wgl.}

-  proc wglReleaseVideoImageNV*(hPbuffer: HPBUFFERARB, iVideoBuffer: int): bool{.

-      stdcall, importc, wgl.}

-  proc wglSendPbufferToVideoNV*(hPbuffer: HPBUFFERARB, iBufferType: int, 

-                                pulCounterPbuffer: ptr int, bBlock: bool): bool{.

-      stdcall, importc, wgl.}

-  proc wglGetVideoInfoNV*(hpVideoDevice: HPVIDEODEV, 

-                          pulCounterOutputPbuffer: ptr int, 

-                          pulCounterOutputVideo: ptr int): bool{.stdcall, importc, wgl.}

-    # WGL_NV_swap_group

-  proc wglJoinSwapGroupNV*(hDC: HDC, group: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglBindSwapBarrierNV*(group: GLuint, barrier: GLuint): bool{.stdcall, importc, wgl.}

-  proc wglQuerySwapGroupNV*(hDC: HDC, group: PGLuint, barrier: PGLuint): bool{.

-      stdcall, importc, wgl.}

-  proc wglQueryMaxSwapGroupsNV*(hDC: HDC, mxGroups: PGLuint, 

-                                maxBarriers: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglQueryFrameCountNV*(hDC: HDC, count: PGLuint): bool{.stdcall, importc, wgl.}

-  proc wglResetFrameCountNV*(hDC: HDC): bool{.stdcall, importc, wgl.}

-    # WGL_NV_gpu_affinity

-  proc wglEnumGpusNV*(iGpuIndex: int, phGpu: PHGPUNV): bool{.stdcall, importc, wgl.}

-  proc wglEnumGpuDevicesNV*(hGpu: HGPUNV, iDeviceIndex: int, 

-                            lpGpuDevice: PGPU_DEVICE): bool{.stdcall, importc, wgl.}

-  proc wglCreateAffinityDCNV*(phGpuList: PHGPUNV): HDC{.stdcall, importc, wgl.}

-  proc wglEnumGpusFromAffinityDCNV*(hAffinityDC: HDC, iGpuIndex: int, 

-                                    hGpu: PHGPUNV): bool{.stdcall, importc, wgl.}

-  proc wglDeleteDCNV*(hDC: HDC): bool{.stdcall, importc, wgl.}

-    # WGL_NV_video_capture

-  proc wglBindVideoCaptureDeviceNV*(uVideoSlot: int, 

-                                    hDevice: HVIDEOINPUTDEVICENV): bool{.stdcall, importc, wgl.}

-  proc wglEnumerateVideoCaptureDevicesNV*(hDc: HDC, 

-      phDeviceList: PHVIDEOINPUTDEVICENV): int{.stdcall, importc, wgl.}

-  proc wglLockVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV): bool{.

-      stdcall, importc, wgl.}

-  proc wglQueryVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV, 

-                                     iAttribute: int, piValue: ptr int32): bool{.

-      stdcall, importc, wgl.}

-  proc wglReleaseVideoCaptureDeviceNV*(hDc: HDC, hDevice: HVIDEOINPUTDEVICENV): bool{.

-      stdcall, importc, wgl.}

-    # WGL_NV_copy_image

-  proc wglCopyImageSubDataNV*(hSrcRc: HGLRC, srcName: GLuint, srcTarget: GLenum, 

-                              srcLevel: GLint, srcX: GLint, srcY: GLint, 

-                              srcZ: GLint, hDstRC: HGLRC, dstName: GLuint, 

-                              dstTarget: GLenum, dstLevel: GLint, dstX: GLint, 

-                              dstY: GLint, dstZ: GLint, width: GLsizei, 

-                              height: GLsizei, depth: GLsizei): bool{.stdcall, importc, wgl.}

-    # WGL_NV_DX_interop

-  proc wglDXSetResourceShareHandleNV*(dxObject: PGLVoid, hareHandle: int): bool{.

-      stdcall, importc, wgl.}

-  proc wglDXOpenDeviceNV*(dxDevice: PGLVoid): int{.stdcall, importc, wgl.}

-  proc wglDXCloseDeviceNV*(hDevice: int): bool{.stdcall, importc, wgl.}

-  proc wglDXRegisterObjectNV*(hDevice: int, dxObject: PGLVoid, name: GLUInt, 

-                              typ: TGLEnum, access: TGLenum): int{.stdcall, importc, wgl.}

-  proc wglDXUnregisterObjectNV*(hDevice: int, hObject: int): bool{.stdcall, importc, wgl.}

-  proc wglDXObjectAccessNV*(hObject: int, access: GLenum): bool{.stdcall, importc, wgl.}

-  proc wglDXLockObjectsNV*(hDevice: int, count: GLint, hObjects: ptr int): bool{.

-      stdcall, importc, wgl.}

-  proc wglDXUnlockObjectsNV*(hDevice: int, count: GLint, hObjects: ptr int): bool{.

-      stdcall, importc, wgl.}

-    # WGL_OML_sync_control

-  proc wglGetSyncValuesOML*(hdc: HDC, ust: PGLint64, msc: PGLint64, 

-                            sbc: PGLint64): bool{.stdcall, importc, wgl.}

-  proc wglGetMscRateOML*(hdc: HDC, numerator: PGLint, denominator: PGLint): bool{.

-      stdcall, importc, wgl.}

-  proc wglSwapBuffersMscOML*(hdc: HDC, target_msc: GLint64, divisor: GLint64, 

-                             remainder: GLint64): GLint64{.stdcall, importc, wgl.}

-  proc wglSwapLayerBuffersMscOML*(hdc: HDC, fuPlanes: GLint, 

-                                  target_msc: GLint64, divisor: GLint64, 

-                                  remainder: GLint64): GLint64{.stdcall, importc, wgl.}

-  proc wglWaitForMscOML*(hdc: HDC, target_msc: GLint64, divisor: GLint64, 

-                         remainder: GLint64, ust: PGLint64, msc: PGLint64, 

-                         sbc: PGLint64): bool{.stdcall, importc, wgl.}

-  proc wglWaitForSbcOML*(hdc: HDC, target_sbc: GLint64, ust: PGLint64, 

-                         msc: PGLint64, sbc: PGLint64): bool{.stdcall, importc, wgl.}

-    # WGL_3DL_stereo_control

-  proc wglSetStereoEmitterState3DL*(hDC: HDC, uState: int32): bool{.stdcall, importc, wgl.}

-    # WIN_draw_range_elements

-  proc glDrawRangeElementsWIN*(mode: GLenum, start: GLuint, ending: GLuint, 

-                               count: GLsizei, typ: GLenum, indices: PGLvoid){.

-      stdcall, importc, wgl.}

-    # WIN_swap_hint

-  proc glAddSwapHintRectWIN*(x: GLint, y: GLint, width: GLsizei, height: GLsizei){.

-      stdcall, importc, wgl.}

-when defined(LINUX): 

-  proc glXChooseVisual*(dpy: PDisplay, screen: GLint, attribList: PGLint): PXVisualInfo{.

-      stdcall, importc, oglx.}

-  proc glXCopyContext*(dpy: PDisplay, src: GLXContext, dst: GLXContext, 

-                       mask: GLuint){.stdcall, importc, oglx.}

-  proc glXCreateContext*(dpy: PDisplay, vis: PXVisualInfo, 

-                         shareList: GLXContext, direct: GLboolean): GLXContext{.

-      stdcall, importc, oglx.}

-  proc glXCreateGLXPixmap*(dpy: PDisplay, vis: PXVisualInfo, pixmap: Pixmap): GLXPixmap{.

-      stdcall, importc, oglx.}

-  proc glXDestroyContext*(dpy: PDisplay, ctx: GLXContext){.stdcall, importc, oglx.}

-  proc glXDestroyGLXPixmap*(dpy: PDisplay, pix: GLXPixmap){.stdcall, importc, oglx.}

-  proc glXGetConfig*(dpy: PDisplay, vis: PXVisualInfo, attrib: GLint, 

-                     value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXGetCurrentContext*(): GLXContext{.stdcall, importc, oglx.}

-  proc glXGetCurrentDrawable*(): GLXDrawable{.stdcall, importc, oglx.}

-  proc glXIsDirect*(dpy: PDisplay, ctx: GLXContext): glboolean{.stdcall, importc, oglx.}

-  proc glXMakeCurrent*(dpy: PDisplay, drawable: GLXDrawable, ctx: GLXContext): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXQueryExtension*(dpy: PDisplay, errorBase: PGLint, eventBase: PGLint): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXQueryVersion*(dpy: PDisplay, major: PGLint, minor: PGLint): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXSwapBuffers*(dpy: PDisplay, drawable: GLXDrawable){.stdcall, importc, oglx.}

-  proc glXUseXFont*(font: Font, first: GLint, count: GLint, listBase: GLint){.

-      stdcall, importc, oglx.}

-  proc glXWaitGL*(){.stdcall, importc, oglx.}

-  proc glXWaitX*(){.stdcall, importc, oglx.}

-  proc glXGetClientString*(dpy: PDisplay, name: GLint): PGLchar{.stdcall, importc, oglx.}

-  proc glXQueryServerString*(dpy: PDisplay, screen: GLint, name: GLint): PGLchar{.

-      stdcall, importc, oglx.}

-  proc glXQueryExtensionsString*(dpy: PDisplay, screen: GLint): PGLchar{.stdcall, importc, oglx.}

-    # GLX_VERSION_1_3

-  proc glXGetFBConfigs*(dpy: PDisplay, screen: GLint, nelements: PGLint): GLXFBConfig{.

-      stdcall, importc, oglx.}

-  proc glXChooseFBConfig*(dpy: PDisplay, screen: GLint, attrib_list: PGLint, 

-                          nelements: PGLint): GLXFBConfig{.stdcall, importc, oglx.}

-  proc glXGetFBConfigAttrib*(dpy: PDisplay, config: GLXFBConfig, 

-                             attribute: GLint, value: PGLint): glint{.stdcall, importc, oglx.}

-  proc glXGetVisualFromFBConfig*(dpy: PDisplay, config: GLXFBConfig): PXVisualInfo{.stdcall, importc, oglx.}

-  proc glXCreateWindow*(dpy: PDisplay, config: GLXFBConfig, win: Window, 

-                        attrib_list: PGLint): GLXWindow{.stdcall, importc, oglx.}

-  proc glXDestroyWindow*(dpy: PDisplay, win: GLXWindow){.stdcall, importc, oglx.}

-  proc glXCreatePixmap*(dpy: PDisplay, config: GLXFBConfig, pixmap: Pixmap, 

-                        attrib_list: PGLint): GLXPixmap{.stdcall, importc, oglx.}

-  proc glXDestroyPixmap*(dpy: PDisplay, pixmap: GLXPixmap){.stdcall, importc, oglx.}

-  proc glXCreatePbuffer*(dpy: PDisplay, config: GLXFBConfig, attrib_list: PGLint): GLXPbuffer{.

-      stdcall, importc, oglx.}

-  proc glXDestroyPbuffer*(dpy: PDisplay, pbuf: GLXPbuffer){.stdcall, importc, oglx.}

-  proc glXQueryDrawable*(dpy: PDisplay, draw: GLXDrawable, attribute: GLint, 

-                         value: PGLuint){.stdcall, importc, oglx.}

-  proc glXCreateNewContext*(dpy: PDisplay, config: GLXFBConfig, 

-                            rendertyp: GLint, share_list: GLXContext, 

-                            direct: GLboolean): GLXContext{.stdcall, importc, oglx.}

-  proc glXMakeContextCurrent*(display: PDisplay, draw: GLXDrawable, 

-                              read: GLXDrawable, ctx: GLXContext): GLboolean{.

-      stdcall, importc, oglx.}

-  proc glXGetCurrentReadDrawable*(): GLXDrawable{.stdcall, importc, oglx.}

-  proc glXGetCurreentDisplay*(): PDisplay{.stdcall, importc, oglx.}

-  proc glXQueryContext*(dpy: PDisplay, ctx: GLXContext, attribute: GLint, 

-                        value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXSelectEvent*(dpy: PDisplay, draw: GLXDrawable, event_mask: GLuint){.

-      stdcall, importc, oglx.}

-  proc glXGetSelectedEvent*(dpy: PDisplay, draw: GLXDrawable, 

-                            event_mask: PGLuint){.stdcall, importc, oglx.}

-    # GLX_VERSION_1_4

-  when not defined(glXGetProcAddress):

-    proc glXGetProcAddress*(name: cstring): pointer{.stdcall, importc, oglx.}

-    # GLX_ARB_get_proc_address

-  when not defined(glXGetProcAddressARB):

-    proc glXGetProcAddressARB*(name: cstring): pointer{.stdcall, importc, oglx.}

-    # GLX_ARB_create_context

-  proc glXCreateContextAttribsARB*(dpy: PDisplay, config: GLXFBConfig, 

-                                   share_context: GLXContext, direct: GLboolean, 

-                                   attrib_list: PGLint): GLXContext{.stdcall, importc, oglx.}

-    # GLX_EXT_import_context

-  proc glXGetCurrentDisplayEXT*(): PDisplay{.stdcall, importc, oglx.}

-  proc glXQueryContextInfoEXT*(dpy: PDisplay, context: GLXContext, 

-                               attribute: GLint, value: PGLint): GLint{.stdcall, importc, oglx.}

-  proc glXGetContextIDEXT*(context: GLXContext): GLXContextID{.stdcall, importc, oglx.}

-  proc glXImportContextEXT*(dpy: PDisplay, contextID: GLXContextID): GLXContext{.

-      stdcall, importc, oglx.}

-  proc glXFreeContextEXT*(dpy: PDisplay, context: GLXContext){.stdcall, importc, oglx.}

-    # GLX_EXT_texture_from_pixmap

-  proc glXBindTexImageEXT*(dpy: PDisplay, drawable: GLXDrawable, buffer: GLint, 

-                           attrib_list: PGLint){.stdcall, importc, oglx.}

-  proc glXReleaseTexImageEXT*(dpy: PDisplay, drawable: GLXDrawable, 

-                              buffer: GLint){.stdcall, importc, oglx.}

-# GL utility functions and procedures

-

-proc gluErrorString*(errCode: GLEnum): cstring{.stdcall, importc, glu.}

-proc gluGetString*(name: GLEnum): cstring{.stdcall, importc, glu.}

-proc gluOrtho2D*(left, right, bottom, top: GLdouble){.stdcall, importc, glu.}

-proc gluPerspective*(fovy, aspect, zNear, zFar: GLdouble){.stdcall, importc, glu.}

-proc gluPickMatrix*(x, y, width, height: GLdouble, viewport: TVector4i){.stdcall, importc, glu.}

-proc gluLookAt*(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble){.

-    stdcall, importc, glu.}

-proc gluProject*(objx, objy, objz: GLdouble, modelMatrix: TGLMatrixd4, 

-                 projMatrix: TGLMatrixd4, viewport: TVector4i, 

-                 winx, winy, winz: PGLdouble): GLint{.stdcall, importc, glu.}

-proc gluUnProject*(winx, winy, winz: GLdouble, modelMatrix: TGLMatrixd4, 

-                   projMatrix: TGLMatrixd4, viewport: TVector4i, 

-                   objx, objy, objz: PGLdouble): GLint{.stdcall, importc, glu.}

-proc gluScaleImage*(format: GLEnum, widthin, heightin: GLint, typein: GLEnum, 

-                    datain: Pointer, widthout, heightout: GLint, 

-                    typeout: GLEnum, dataout: Pointer): GLint{.stdcall, importc, glu.}

-proc gluBuild1DMipmaps*(target: GLEnum, components, width: GLint, 

-                        format, atype: GLEnum, data: Pointer): GLint{.stdcall, importc, glu.}

-proc gluBuild2DMipmaps*(target: GLEnum, components, width, height: GLint, 

-                        format, atype: GLEnum, Data: Pointer): GLint{.stdcall, importc, glu.}

-proc gluNewQuadric*(): PGLUquadric{.stdcall, importc, glu.}

-proc gluDeleteQuadric*(state: PGLUquadric){.stdcall, importc, glu.}

-proc gluQuadricNormals*(quadObject: PGLUquadric, normals: GLEnum){.stdcall, importc, glu.}

-proc gluQuadricTexture*(quadObject: PGLUquadric, textureCoords: GLboolean){.

-    stdcall, importc, glu.}

-proc gluQuadricOrientation*(quadObject: PGLUquadric, orientation: GLEnum){.

-    stdcall, importc, glu.}

-proc gluQuadricDrawStyle*(quadObject: PGLUquadric, drawStyle: GLEnum){.stdcall, importc, glu.}

-proc gluCylinder*(quadObject: PGLUquadric, 

-                  baseRadius, topRadius, height: GLdouble, slices, stacks: GLint){.

-    stdcall, importc, glu.}

-proc gluDisk*(quadObject: PGLUquadric, innerRadius, outerRadius: GLdouble, 

-              slices, loops: GLint){.stdcall, importc, glu.}

-proc gluPartialDisk*(quadObject: PGLUquadric, 

-                     innerRadius, outerRadius: GLdouble, slices, loops: GLint, 

-                     startAngle, sweepAngle: GLdouble){.stdcall, importc, glu.}

-proc gluSphere*(quadObject: PGLUquadric, radius: GLdouble, slices, stacks: GLint){.

-    stdcall, importc, glu.}

-proc gluQuadricCallback*(quadObject: PGLUquadric, which: GLEnum, 

-                         fn: TGLUQuadricErrorProc){.stdcall, importc, glu.}

-proc gluNewTess*(): PGLUtesselator{.stdcall, importc, glu.}

-proc gluDeleteTess*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessBeginPolygon*(tess: PGLUtesselator, polygon_data: Pointer){.stdcall, importc, glu.}

-proc gluTessBeginContour*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessVertex*(tess: PGLUtesselator, coords: TGLArrayd3, data: Pointer){.

-    stdcall, importc, glu.}

-proc gluTessEndContour*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessEndPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluTessProperty*(tess: PGLUtesselator, which: GLEnum, value: GLdouble){.

-    stdcall, importc, glu.}

-proc gluTessNormal*(tess: PGLUtesselator, x, y, z: GLdouble){.stdcall, importc, glu.}

-proc gluTessCallback*(tess: PGLUtesselator, which: GLEnum, fn: Pointer){.stdcall, importc, glu.}

-proc gluGetTessProperty*(tess: PGLUtesselator, which: GLEnum, value: PGLdouble){.

-    stdcall, importc, glu.}

-proc gluNewNurbsRenderer*(): PGLUnurbs{.stdcall, importc, glu.}

-proc gluDeleteNurbsRenderer*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginSurface*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginCurve*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndCurve*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndSurface*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluBeginTrim*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluEndTrim*(nobj: PGLUnurbs){.stdcall, importc, glu.}

-proc gluPwlCurve*(nobj: PGLUnurbs, count: GLint, points: PGLfloat, 

-                  stride: GLint, atype: GLEnum){.stdcall, importc, glu.}

-proc gluNurbsCurve*(nobj: PGLUnurbs, nknots: GLint, knot: PGLfloat, 

-                    stride: GLint, ctlarray: PGLfloat, order: GLint, 

-                    atype: GLEnum){.stdcall, importc, glu.}

-proc gluNurbsSurface*(nobj: PGLUnurbs, sknot_count: GLint, sknot: PGLfloat, 

-                      tknot_count: GLint, tknot: PGLfloat, 

-                      s_stride, t_stride: GLint, ctlarray: PGLfloat, 

-                      sorder, torder: GLint, atype: GLEnum){.stdcall, importc, glu.}

-proc gluLoadSamplingMatrices*(nobj: PGLUnurbs, 

-                              modelMatrix, projMatrix: TGLMatrixf4, 

-                              viewport: TVector4i){.stdcall, importc, glu.}

-proc gluNurbsProperty*(nobj: PGLUnurbs, aproperty: GLEnum, value: GLfloat){.

-    stdcall, importc, glu.}

-proc gluGetNurbsProperty*(nobj: PGLUnurbs, aproperty: GLEnum, value: PGLfloat){.

-    stdcall, importc, glu.}

-proc gluNurbsCallback*(nobj: PGLUnurbs, which: GLEnum, fn: TGLUNurbsErrorProc){.

-    stdcall, importc, glu.}

-proc gluBeginPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-proc gluNextContour*(tess: PGLUtesselator, atype: GLEnum){.stdcall, importc, glu.}

-proc gluEndPolygon*(tess: PGLUtesselator){.stdcall, importc, glu.}

-

-type 

-  TRCOption* = enum 

-    opDoubleBuffered, opGDI, opStereo

-  TRCOptions* = set[TRCOption]

-

-var LastPixelFormat*: int

-

-when defined(windows): 

-  proc CreateRenderingContext*(DC: HDC, Options: TRCOptions, ColorBits, ZBits, 

-      StencilBits, AccumBits, AuxBuffers: int, Layer: int): HGLRC

-  proc DestroyRenderingContext*(RC: HGLRC)

-  proc ActivateRenderingContext*(DC: HDC, RC: HGLRC)

-  proc DeactivateRenderingContext*()

-# implementation

-

-proc GetExtensionString*(): string = 

-  when defined(windows):

-    result = $glGetString(GL_EXTENSIONS) & ' ' & $wglGetExtensionsStringEXT() & 

-        ' ' & $wglGetExtensionsStringARB(wglGetCurrentDC())

-  else:

-    result = $glGetString(GL_EXTENSIONS)

-

-when defined(windows): 

-  proc CreateRenderingContext(DC: HDC, Options: TRCOptions, ColorBits, ZBits, 

-      StencilBits, AccumBits, AuxBuffers: int, Layer: int): HGLRC = 

-    type

-      TPIXELFORMATDESCRIPTOR {.final, pure.} = object

-        nSize: int16

-        nVersion: int16

-        dwFlags: DWORD

-        iPixelType: int8

-        cColorBits: int8

-        cRedBits: int8

-        cRedShift: int8

-        cGreenBits: int8

-        cGreenShift: int8

-        cBlueBits: int8

-        cBlueShift: int8

-        cAlphaBits: int8

-        cAlphaShift: int8

-        cAccumBits: int8

-        cAccumRedBits: int8

-        cAccumGreenBits: int8

-        cAccumBlueBits: int8

-        cAccumAlphaBits: int8

-        cDepthBits: int8

-        cStencilBits: int8

-        cAuxBuffers: int8

-        iLayerType: int8

-        bReserved: int8

-        dwLayerMask: DWORD

-        dwVisibleMask: DWORD

-        dwDamageMask: DWORD

-

-    proc GetObjectType(h: HDC): DWORD{.stdcall, dynlib: "gdi32",

-                                           importc: "GetObjectType".}

-    proc ChoosePixelFormat(para1: HDC, para2: ptr TPIXELFORMATDESCRIPTOR): int32{.

-        stdcall, dynlib: "gdi32", importc: "ChoosePixelFormat".}

-    proc GetPixelFormat(para1: HDC): int32{.stdcall, dynlib: "gdi32",

-        importc: "GetPixelFormat".}

-    proc SetPixelFormat(para1: HDC, para2: int32, 

-        para3: ptr TPIXELFORMATDESCRIPTOR): WINBOOL{.

-        stdcall, dynlib: "gdi32", importc: "SetPixelFormat".}

-    proc DescribePixelFormat(para1: HDC, para2, para3: int32,

-                             para4: ptr TPIXELFORMATDESCRIPTOR) {.stdcall,

-        dynlib: "gdi32", importc: "DescribePixelFormat".}

-

-    const 

-      OBJ_MEMDC = 10'i32

-      OBJ_ENHMETADC = 12'i32

-      OBJ_METADC = 4'i32

-      PFD_DOUBLEBUFFER = 0x00000001

-      PFD_STEREO = 0x00000002

-      PFD_DRAW_TO_WINDOW = 0x00000004

-      PFD_DRAW_TO_BITMAP = 0x00000008

-      PFD_SUPPORT_GDI = 0x00000010

-      PFD_SUPPORT_OPENGL = 0x00000020

-      PFDtyp_RGBA = 0'i8

-      PFD_MAIN_PLANE = 0'i8

-      PFD_OVERLAY_PLANE = 1'i8

-      PFD_UNDERLAY_PLANE = int32(- 1)

-    var 

-      PFDescriptor: TPixelFormatDescriptor

-      PixelFormat: int32

-      AType: int32

-    PFDescriptor.nSize = SizeOf(PFDescriptor).int16

-    PFDescriptor.nVersion = 1'i16

-    PFDescriptor.dwFlags = PFD_SUPPORT_OPENGL

-    AType = GetObjectType(DC)

-    if AType == 0: OSError()

-    if AType == OBJ_MEMDC or AType == OBJ_METADC or AType == OBJ_ENHMETADC: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DRAW_TO_BITMAP

-    else: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DRAW_TO_WINDOW

-    if opDoubleBuffered in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_DOUBLEBUFFER

-    if opGDI in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_SUPPORT_GDI

-    if opStereo in Options: 

-      PFDescriptor.dwFlags = PFDescriptor.dwFlags or PFD_STEREO

-    PFDescriptor.iPixelType = PFDtyp_RGBA

-    PFDescriptor.cColorBits = ColorBits.toU8

-    PFDescriptor.cDepthBits = zBits.toU8

-    PFDescriptor.cStencilBits = StencilBits.toU8

-    PFDescriptor.cAccumBits = AccumBits.toU8

-    PFDescriptor.cAuxBuffers = AuxBuffers.toU8

-    if Layer == 0: PFDescriptor.iLayerType = PFD_MAIN_PLANE

-    elif Layer > 0: PFDescriptor.iLayerType = PFD_OVERLAY_PLANE

-    else: PFDescriptor.iLayerType = int8(PFD_UNDERLAY_PLANE)

-    PixelFormat = ChoosePixelFormat(DC, addr(PFDescriptor))

-    if PixelFormat == 0: OSError()

-    if GetPixelFormat(DC) != PixelFormat: 

-      if SetPixelFormat(DC, PixelFormat, addr(PFDescriptor)) == 0'i32: 

-        OSError()

-    DescribePixelFormat(DC, PixelFormat.int32, SizeOf(PFDescriptor).int32, 

-                        addr(PFDescriptor))

-    Result = wglCreateContext(DC)

-    if Result == 0: OSError()

-    else: LastPixelFormat = 0

-  

-  proc DestroyRenderingContext(RC: HGLRC) = 

-    discard wglDeleteContext(RC)

-

-  proc ActivateRenderingContext(DC: HDC, RC: HGLRC) = 

-    discard wglMakeCurrent(DC, RC)

-

-  proc DeactivateRenderingContext() = 

-    discard wglMakeCurrent(0, 0)

diff --git a/lib/wrappers/opengl/wingl.nim b/lib/wrappers/opengl/wingl.nim
deleted file mode 100644
index 7ed78f970..000000000
--- a/lib/wrappers/opengl/wingl.nim
+++ /dev/null
@@ -1,368 +0,0 @@
-import 
-  gl, windows
-
-proc wglGetExtensionsStringARB*(hdc: HDC): cstring{.dynlib: dllname, 
-    importc: "wglGetExtensionsStringARB".}
-const 
-  WGL_FRONT_COLOR_BUFFER_BIT_ARB* = 0x00000001
-  WGL_BACK_COLOR_BUFFER_BIT_ARB* = 0x00000002
-  WGL_DEPTH_BUFFER_BIT_ARB* = 0x00000004
-  WGL_STENCIL_BUFFER_BIT_ARB* = 0x00000008
-
-proc WinChoosePixelFormat*(DC: HDC, p2: PPixelFormatDescriptor): int{.
-    dynlib: "gdi32", importc: "ChoosePixelFormat".}
-proc wglCreateBufferRegionARB*(hDC: HDC, iLayerPlane: TGLint, uType: TGLuint): THandle{.
-    dynlib: dllname, importc: "wglCreateBufferRegionARB".}
-proc wglDeleteBufferRegionARB*(hRegion: THandle){.dynlib: dllname, 
-    importc: "wglDeleteBufferRegionARB".}
-proc wglSaveBufferRegionARB*(hRegion: THandle, x: TGLint, y: TGLint, 
-                             width: TGLint, height: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglSaveBufferRegionARB".}
-proc wglRestoreBufferRegionARB*(hRegion: THandle, x: TGLint, y: TGLint, 
-                                width: TGLint, height: TGLint, xSrc: TGLint, 
-                                ySrc: TGLint): BOOL{.dynlib: dllname, 
-    importc: "wglRestoreBufferRegionARB".}
-proc wglAllocateMemoryNV*(size: TGLsizei, readFrequency: TGLfloat, 
-                          writeFrequency: TGLfloat, priority: TGLfloat): PGLvoid{.
-    dynlib: dllname, importc: "wglAllocateMemoryNV".}
-proc wglFreeMemoryNV*(pointer: PGLvoid){.dynlib: dllname, 
-    importc: "wglFreeMemoryNV".}
-const 
-  WGL_IMAGE_BUFFER_MIN_ACCESS_I3D* = 0x00000001
-  WGL_IMAGE_BUFFER_LOCK_I3D* = 0x00000002
-
-proc wglCreateImageBufferI3D*(hDC: HDC, dwSize: DWORD, uFlags: UINT): PGLvoid{.
-    dynlib: dllname, importc: "wglCreateImageBufferI3D".}
-proc wglDestroyImageBufferI3D*(hDC: HDC, pAddress: PGLvoid): BOOL{.
-    dynlib: dllname, importc: "wglDestroyImageBufferI3D".}
-proc wglAssociateImageBufferEventsI3D*(hdc: HDC, pEvent: PHandle, 
-                                       pAddress: PGLvoid, pSize: PDWORD, 
-                                       count: UINT): BOOL{.dynlib: dllname, 
-    importc: "wglAssociateImageBufferEventsI3D".}
-proc wglReleaseImageBufferEventsI3D*(hdc: HDC, pAddress: PGLvoid, count: UINT): BOOL{.
-    dynlib: dllname, importc: "wglReleaseImageBufferEventsI3D".}
-proc wglEnableFrameLockI3D*(): BOOL{.dynlib: dllname, 
-                                     importc: "wglEnableFrameLockI3D".}
-proc wglDisableFrameLockI3D*(): BOOL{.dynlib: dllname, 
-                                      importc: "wglDisableFrameLockI3D".}
-proc wglIsEnabledFrameLockI3D*(pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglIsEnabledFrameLockI3D".}
-proc wglQueryFrameLockMasterI3D*(pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglQueryFrameLockMasterI3D".}
-proc wglGetFrameUsageI3D*(pUsage: PGLfloat): BOOL{.dynlib: dllname, 
-    importc: "wglGetFrameUsageI3D".}
-proc wglBeginFrameTrackingI3D*(): BOOL{.dynlib: dllname, 
-                                        importc: "wglBeginFrameTrackingI3D".}
-proc wglEndFrameTrackingI3D*(): BOOL{.dynlib: dllname, 
-                                      importc: "wglEndFrameTrackingI3D".}
-proc wglQueryFrameTrackingI3D*(pFrameCount: PDWORD, pMissedFrames: PDWORD, 
-                               pLastMissedUsage: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglQueryFrameTrackingI3D".}
-const 
-  WGL_NUMBER_PIXEL_FORMATS_ARB* = 0x00002000
-  WGL_DRAW_TO_WINDOW_ARB* = 0x00002001
-  WGL_DRAW_TO_BITMAP_ARB* = 0x00002002
-  WGL_ACCELERATION_ARB* = 0x00002003
-  WGL_NEED_PALETTE_ARB* = 0x00002004
-  WGL_NEED_SYSTEM_PALETTE_ARB* = 0x00002005
-  WGL_SWAP_LAYER_BUFFERS_ARB* = 0x00002006
-  WGL_SWAP_METHOD_ARB* = 0x00002007
-  WGL_NUMBER_OVERLAYS_ARB* = 0x00002008
-  WGL_NUMBER_UNDERLAYS_ARB* = 0x00002009
-  WGL_TRANSPARENT_ARB* = 0x0000200A
-  WGL_TRANSPARENT_RED_VALUE_ARB* = 0x00002037
-  WGL_TRANSPARENT_GREEN_VALUE_ARB* = 0x00002038
-  WGL_TRANSPARENT_BLUE_VALUE_ARB* = 0x00002039
-  WGL_TRANSPARENT_ALPHA_VALUE_ARB* = 0x0000203A
-  WGL_TRANSPARENT_INDEX_VALUE_ARB* = 0x0000203B
-  WGL_SHARE_DEPTH_ARB* = 0x0000200C
-  WGL_SHARE_STENCIL_ARB* = 0x0000200D
-  WGL_SHARE_ACCUM_ARB* = 0x0000200E
-  WGL_SUPPORT_GDI_ARB* = 0x0000200F
-  WGL_SUPPORT_OPENGL_ARB* = 0x00002010
-  WGL_DOUBLE_BUFFER_ARB* = 0x00002011
-  WGL_STEREO_ARB* = 0x00002012
-  WGL_PIXEL_TYPE_ARB* = 0x00002013
-  WGL_COLOR_BITS_ARB* = 0x00002014
-  WGL_RED_BITS_ARB* = 0x00002015
-  WGL_RED_SHIFT_ARB* = 0x00002016
-  WGL_GREEN_BITS_ARB* = 0x00002017
-  WGL_GREEN_SHIFT_ARB* = 0x00002018
-  WGL_BLUE_BITS_ARB* = 0x00002019
-  WGL_BLUE_SHIFT_ARB* = 0x0000201A
-  WGL_ALPHA_BITS_ARB* = 0x0000201B
-  WGL_ALPHA_SHIFT_ARB* = 0x0000201C
-  WGL_ACCUM_BITS_ARB* = 0x0000201D
-  WGL_ACCUM_RED_BITS_ARB* = 0x0000201E
-  WGL_ACCUM_GREEN_BITS_ARB* = 0x0000201F
-  WGL_ACCUM_BLUE_BITS_ARB* = 0x00002020
-  WGL_ACCUM_ALPHA_BITS_ARB* = 0x00002021
-  WGL_DEPTH_BITS_ARB* = 0x00002022
-  WGL_STENCIL_BITS_ARB* = 0x00002023
-  WGL_AUX_BUFFERS_ARB* = 0x00002024
-  WGL_NO_ACCELERATION_ARB* = 0x00002025
-  WGL_GENERIC_ACCELERATION_ARB* = 0x00002026
-  WGL_FULL_ACCELERATION_ARB* = 0x00002027
-  WGL_SWAP_EXCHANGE_ARB* = 0x00002028
-  WGL_SWAP_COPY_ARB* = 0x00002029
-  WGL_SWAP_UNDEFINED_ARB* = 0x0000202A
-  WGL_TYPE_RGBA_ARB* = 0x0000202B
-  WGL_TYPE_COLORINDEX_ARB* = 0x0000202C
-
-proc wglGetPixelFormatAttribivARB*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, piValues: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribivARB".}
-proc wglGetPixelFormatAttribfvARB*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, pfValues: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribfvARB".}
-proc wglChoosePixelFormatARB*(hdc: HDC, piAttribIList: PGLint, 
-                              pfAttribFList: PGLfloat, nMaxFormats: TGLuint, 
-                              piFormats: PGLint, nNumFormats: PGLuint): BOOL{.
-    dynlib: dllname, importc: "wglChoosePixelFormatARB".}
-const 
-  WGL_ERROR_INVALID_PIXEL_TYPE_ARB* = 0x00002043
-  WGL_ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB* = 0x00002054
-
-proc wglMakeContextCurrentARB*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): BOOL{.
-    dynlib: dllname, importc: "wglMakeContextCurrentARB".}
-proc wglGetCurrentReadDCARB*(): HDC{.dynlib: dllname, 
-                                     importc: "wglGetCurrentReadDCARB".}
-const 
-  WGL_DRAW_TO_PBUFFER_ARB* = 0x0000202D # WGL_DRAW_TO_PBUFFER_ARB  { already defined }
-  WGL_MAX_PBUFFER_PIXELS_ARB* = 0x0000202E
-  WGL_MAX_PBUFFER_WIDTH_ARB* = 0x0000202F
-  WGL_MAX_PBUFFER_HEIGHT_ARB* = 0x00002030
-  WGL_PBUFFER_LARGEST_ARB* = 0x00002033
-  WGL_PBUFFER_WIDTH_ARB* = 0x00002034
-  WGL_PBUFFER_HEIGHT_ARB* = 0x00002035
-  WGL_PBUFFER_LOST_ARB* = 0x00002036
-
-proc wglCreatePbufferARB*(hDC: HDC, iPixelFormat: TGLint, iWidth: TGLint, 
-                          iHeight: TGLint, piAttribList: PGLint): THandle{.
-    dynlib: dllname, importc: "wglCreatePbufferARB".}
-proc wglGetPbufferDCARB*(hPbuffer: THandle): HDC{.dynlib: dllname, 
-    importc: "wglGetPbufferDCARB".}
-proc wglReleasePbufferDCARB*(hPbuffer: THandle, hDC: HDC): TGLint{.
-    dynlib: dllname, importc: "wglReleasePbufferDCARB".}
-proc wglDestroyPbufferARB*(hPbuffer: THandle): BOOL{.dynlib: dllname, 
-    importc: "wglDestroyPbufferARB".}
-proc wglQueryPbufferARB*(hPbuffer: THandle, iAttribute: TGLint, piValue: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglQueryPbufferARB".}
-proc wglSwapIntervalEXT*(interval: TGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSwapIntervalEXT".}
-proc wglGetSwapIntervalEXT*(): TGLint{.dynlib: dllname, 
-                                       importc: "wglGetSwapIntervalEXT".}
-const 
-  WGL_BIND_TO_TEXTURE_RGB_ARB* = 0x00002070
-  WGL_BIND_TO_TEXTURE_RGBA_ARB* = 0x00002071
-  WGL_TEXTURE_FORMAT_ARB* = 0x00002072
-  WGL_TEXTURE_TARGET_ARB* = 0x00002073
-  WGL_MIPMAP_TEXTURE_ARB* = 0x00002074
-  WGL_TEXTURE_RGB_ARB* = 0x00002075
-  WGL_TEXTURE_RGBA_ARB* = 0x00002076
-  WGL_NO_TEXTURE_ARB* = 0x00002077
-  WGL_TEXTURE_CUBE_MAP_ARB* = 0x00002078
-  WGL_TEXTURE_1D_ARB* = 0x00002079
-  WGL_TEXTURE_2D_ARB* = 0x0000207A # WGL_NO_TEXTURE_ARB  { already defined }
-  WGL_MIPMAP_LEVEL_ARB* = 0x0000207B
-  WGL_CUBE_MAP_FACE_ARB* = 0x0000207C
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB* = 0x0000207D
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB* = 0x0000207E
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB* = 0x0000207F
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB* = 0x00002080
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB* = 0x00002081
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB* = 0x00002082
-  WGL_FRONT_LEFT_ARB* = 0x00002083
-  WGL_FRONT_RIGHT_ARB* = 0x00002084
-  WGL_BACK_LEFT_ARB* = 0x00002085
-  WGL_BACK_RIGHT_ARB* = 0x00002086
-  WGL_AUX0_ARB* = 0x00002087
-  WGL_AUX1_ARB* = 0x00002088
-  WGL_AUX2_ARB* = 0x00002089
-  WGL_AUX3_ARB* = 0x0000208A
-  WGL_AUX4_ARB* = 0x0000208B
-  WGL_AUX5_ARB* = 0x0000208C
-  WGL_AUX6_ARB* = 0x0000208D
-  WGL_AUX7_ARB* = 0x0000208E
-  WGL_AUX8_ARB* = 0x0000208F
-  WGL_AUX9_ARB* = 0x00002090
-
-proc wglBindTexImageARB*(hPbuffer: THandle, iBuffer: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglBindTexImageARB".}
-proc wglReleaseTexImageARB*(hPbuffer: THandle, iBuffer: TGLint): BOOL{.
-    dynlib: dllname, importc: "wglReleaseTexImageARB".}
-proc wglSetPbufferAttribARB*(hPbuffer: THandle, piAttribList: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglSetPbufferAttribARB".}
-proc wglGetExtensionsStringEXT*(): cstring{.dynlib: dllname, 
-    importc: "wglGetExtensionsStringEXT".}
-proc wglMakeContextCurrentEXT*(hDrawDC: HDC, hReadDC: HDC, hglrc: HGLRC): BOOL{.
-    dynlib: dllname, importc: "wglMakeContextCurrentEXT".}
-proc wglGetCurrentReadDCEXT*(): HDC{.dynlib: dllname, 
-                                     importc: "wglGetCurrentReadDCEXT".}
-const 
-  WGL_DRAW_TO_PBUFFER_EXT* = 0x0000202D
-  WGL_MAX_PBUFFER_PIXELS_EXT* = 0x0000202E
-  WGL_MAX_PBUFFER_WIDTH_EXT* = 0x0000202F
-  WGL_MAX_PBUFFER_HEIGHT_EXT* = 0x00002030
-  WGL_OPTIMAL_PBUFFER_WIDTH_EXT* = 0x00002031
-  WGL_OPTIMAL_PBUFFER_HEIGHT_EXT* = 0x00002032
-  WGL_PBUFFER_LARGEST_EXT* = 0x00002033
-  WGL_PBUFFER_WIDTH_EXT* = 0x00002034
-  WGL_PBUFFER_HEIGHT_EXT* = 0x00002035
-
-proc wglCreatePbufferEXT*(hDC: HDC, iPixelFormat: TGLint, iWidth: TGLint, 
-                          iHeight: TGLint, piAttribList: PGLint): THandle{.
-    dynlib: dllname, importc: "wglCreatePbufferEXT".}
-proc wglGetPbufferDCEXT*(hPbuffer: THandle): HDC{.dynlib: dllname, 
-    importc: "wglGetPbufferDCEXT".}
-proc wglReleasePbufferDCEXT*(hPbuffer: THandle, hDC: HDC): TGLint{.
-    dynlib: dllname, importc: "wglReleasePbufferDCEXT".}
-proc wglDestroyPbufferEXT*(hPbuffer: THandle): BOOL{.dynlib: dllname, 
-    importc: "wglDestroyPbufferEXT".}
-proc wglQueryPbufferEXT*(hPbuffer: THandle, iAttribute: TGLint, piValue: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglQueryPbufferEXT".}
-const 
-  WGL_NUMBER_PIXEL_FORMATS_EXT* = 0x00002000
-  WGL_DRAW_TO_WINDOW_EXT* = 0x00002001
-  WGL_DRAW_TO_BITMAP_EXT* = 0x00002002
-  WGL_ACCELERATION_EXT* = 0x00002003
-  WGL_NEED_PALETTE_EXT* = 0x00002004
-  WGL_NEED_SYSTEM_PALETTE_EXT* = 0x00002005
-  WGL_SWAP_LAYER_BUFFERS_EXT* = 0x00002006
-  WGL_SWAP_METHOD_EXT* = 0x00002007
-  WGL_NUMBER_OVERLAYS_EXT* = 0x00002008
-  WGL_NUMBER_UNDERLAYS_EXT* = 0x00002009
-  WGL_TRANSPARENT_EXT* = 0x0000200A
-  WGL_TRANSPARENT_VALUE_EXT* = 0x0000200B
-  WGL_SHARE_DEPTH_EXT* = 0x0000200C
-  WGL_SHARE_STENCIL_EXT* = 0x0000200D
-  WGL_SHARE_ACCUM_EXT* = 0x0000200E
-  WGL_SUPPORT_GDI_EXT* = 0x0000200F
-  WGL_SUPPORT_OPENGL_EXT* = 0x00002010
-  WGL_DOUBLE_BUFFER_EXT* = 0x00002011
-  WGL_STEREO_EXT* = 0x00002012
-  WGL_PIXEL_TYPE_EXT* = 0x00002013
-  WGL_COLOR_BITS_EXT* = 0x00002014
-  WGL_RED_BITS_EXT* = 0x00002015
-  WGL_RED_SHIFT_EXT* = 0x00002016
-  WGL_GREEN_BITS_EXT* = 0x00002017
-  WGL_GREEN_SHIFT_EXT* = 0x00002018
-  WGL_BLUE_BITS_EXT* = 0x00002019
-  WGL_BLUE_SHIFT_EXT* = 0x0000201A
-  WGL_ALPHA_BITS_EXT* = 0x0000201B
-  WGL_ALPHA_SHIFT_EXT* = 0x0000201C
-  WGL_ACCUM_BITS_EXT* = 0x0000201D
-  WGL_ACCUM_RED_BITS_EXT* = 0x0000201E
-  WGL_ACCUM_GREEN_BITS_EXT* = 0x0000201F
-  WGL_ACCUM_BLUE_BITS_EXT* = 0x00002020
-  WGL_ACCUM_ALPHA_BITS_EXT* = 0x00002021
-  WGL_DEPTH_BITS_EXT* = 0x00002022
-  WGL_STENCIL_BITS_EXT* = 0x00002023
-  WGL_AUX_BUFFERS_EXT* = 0x00002024
-  WGL_NO_ACCELERATION_EXT* = 0x00002025
-  WGL_GENERIC_ACCELERATION_EXT* = 0x00002026
-  WGL_FULL_ACCELERATION_EXT* = 0x00002027
-  WGL_SWAP_EXCHANGE_EXT* = 0x00002028
-  WGL_SWAP_COPY_EXT* = 0x00002029
-  WGL_SWAP_UNDEFINED_EXT* = 0x0000202A
-  WGL_TYPE_RGBA_EXT* = 0x0000202B
-  WGL_TYPE_COLORINDEX_EXT* = 0x0000202C
-
-proc wglGetPixelFormatAttribivEXT*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, piValues: PGLint): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribivEXT".}
-proc wglGetPixelFormatAttribfvEXT*(hdc: HDC, iPixelFormat: TGLint, 
-                                   iLayerPlane: TGLint, nAttributes: TGLuint, 
-                                   piAttributes: PGLint, pfValues: PGLfloat): BOOL{.
-    dynlib: dllname, importc: "wglGetPixelFormatAttribfvEXT".}
-proc wglChoosePixelFormatEXT*(hdc: HDC, piAttribIList: PGLint, 
-                              pfAttribFList: PGLfloat, nMaxFormats: TGLuint, 
-                              piFormats: PGLint, nNumFormats: PGLuint): BOOL{.
-    dynlib: dllname, importc: "wglChoosePixelFormatEXT".}
-const 
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D* = 0x00002050
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D* = 0x00002051
-  WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D* = 0x00002052
-  WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D* = 0x00002053
-
-proc wglGetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                      piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglGetDigitalVideoParametersI3D".}
-proc wglSetDigitalVideoParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                      piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSetDigitalVideoParametersI3D".}
-const 
-  WGL_GAMMA_TABLE_SIZE_I3D* = 0x0000204E
-  WGL_GAMMA_EXCLUDE_DESKTOP_I3D* = 0x0000204F
-
-proc wglGetGammaTableParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                    piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglGetGammaTableParametersI3D".}
-proc wglSetGammaTableParametersI3D*(hDC: HDC, iAttribute: TGLint, 
-                                    piValue: PGLint): BOOL{.dynlib: dllname, 
-    importc: "wglSetGammaTableParametersI3D".}
-proc wglGetGammaTableI3D*(hDC: HDC, iEntries: TGLint, puRed: PGLUSHORT, 
-                          puGreen: PGLUSHORT, puBlue: PGLUSHORT): BOOL{.
-    dynlib: dllname, importc: "wglGetGammaTableI3D".}
-proc wglSetGammaTableI3D*(hDC: HDC, iEntries: TGLint, puRed: PGLUSHORT, 
-                          puGreen: PGLUSHORT, puBlue: PGLUSHORT): BOOL{.
-    dynlib: dllname, importc: "wglSetGammaTableI3D".}
-const 
-  WGL_GENLOCK_SOURCE_MULTIVIEW_I3D* = 0x00002044
-  WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D* = 0x00002045
-  WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D* = 0x00002046
-  WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D* = 0x00002047
-  WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D* = 0x00002048
-  WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D* = 0x00002049
-  WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D* = 0x0000204A
-  WGL_GENLOCK_SOURCE_EDGE_RISING_I3D* = 0x0000204B
-  WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D* = 0x0000204C
-  WGL_FLOAT_COMPONENTS_NV* = 0x000020B0
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV* = 0x000020B1
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV* = 0x000020B2
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV* = 0x000020B3
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV* = 0x000020B4
-  WGL_TEXTURE_FLOAT_R_NV* = 0x000020B5
-  WGL_TEXTURE_FLOAT_RG_NV* = 0x000020B6
-  WGL_TEXTURE_FLOAT_RGB_NV* = 0x000020B7
-  WGL_TEXTURE_FLOAT_RGBA_NV* = 0x000020B8
-
-proc wglEnableGenlockI3D*(hDC: HDC): BOOL{.dynlib: dllname, 
-    importc: "wglEnableGenlockI3D".}
-proc wglDisableGenlockI3D*(hDC: HDC): BOOL{.dynlib: dllname, 
-    importc: "wglDisableGenlockI3D".}
-proc wglIsEnabledGenlockI3D*(hDC: HDC, pFlag: PBOOL): BOOL{.dynlib: dllname, 
-    importc: "wglIsEnabledGenlockI3D".}
-proc wglGenlockSourceI3D*(hDC: HDC, uSource: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSourceI3D".}
-proc wglGetGenlockSourceI3D*(hDC: HDC, uSource: PGLUINT): BOOL{.dynlib: dllname, 
-    importc: "wglGetGenlockSourceI3D".}
-proc wglGenlockSourceEdgeI3D*(hDC: HDC, uEdge: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSourceEdgeI3D".}
-proc wglGetGenlockSourceEdgeI3D*(hDC: HDC, uEdge: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSourceEdgeI3D".}
-proc wglGenlockSampleRateI3D*(hDC: HDC, uRate: TGLuint): BOOL{.dynlib: dllname, 
-    importc: "wglGenlockSampleRateI3D".}
-proc wglGetGenlockSampleRateI3D*(hDC: HDC, uRate: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSampleRateI3D".}
-proc wglGenlockSourceDelayI3D*(hDC: HDC, uDelay: TGLuint): BOOL{.
-    dynlib: dllname, importc: "wglGenlockSourceDelayI3D".}
-proc wglGetGenlockSourceDelayI3D*(hDC: HDC, uDelay: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglGetGenlockSourceDelayI3D".}
-proc wglQueryGenlockMaxSourceDelayI3D*(hDC: HDC, uMaxLineDelay: PGLUINT, 
-                                       uMaxPixelDelay: PGLUINT): BOOL{.
-    dynlib: dllname, importc: "wglQueryGenlockMaxSourceDelayI3D".}
-const 
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV* = 0x000020A0
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV* = 0x000020A1
-  WGL_TEXTURE_RECTANGLE_NV* = 0x000020A2
-
-const 
-  WGL_RGBA_FLOAT_MODE_ATI* = 0x00008820
-  WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI* = 0x00008835
-  WGL_TYPE_RGBA_FLOAT_ATI* = 0x000021A0
-
-# implementation
diff --git a/lib/wrappers/openssl.nim b/lib/wrappers/openssl.nim
index f310c969b..af72d04eb 100644
--- a/lib/wrappers/openssl.nim
+++ b/lib/wrappers/openssl.nim
@@ -45,6 +45,7 @@ when defined(WINDOWS):
   const 
     DLLSSLName = "(ssleay32|libssl32).dll"
     DLLUtilName = "libeay32.dll"
+  from winlean import TSocketHandle
 else:
   const
     versions = "(|.1.0.0|.0.9.9|.0.9.8|.0.9.7|.0.9.6|.0.9.5|.0.9.4)"
@@ -56,6 +57,7 @@ else:
     const 
       DLLSSLName = "libssl.so" & versions
       DLLUtilName = "libcrypto.so" & versions
+  from posix import TSocketHandle
 
 type 
   SslStruct {.final, pure.} = object
@@ -225,7 +227,7 @@ proc SSL_CTX_use_PrivateKey_file*(ctx: PSSL_CTX,
 proc SSL_CTX_check_private_key*(ctx: PSSL_CTX): cInt{.cdecl, dynlib: DLLSSLName, 
     importc.}
 
-proc SSL_set_fd*(ssl: PSSL, fd: cint): cint{.cdecl, dynlib: DLLSSLName, importc.}
+proc SSL_set_fd*(ssl: PSSL, fd: TSocketHandle): cint{.cdecl, dynlib: DLLSSLName, importc.}
 
 proc SSL_shutdown*(ssl: PSSL): cInt{.cdecl, dynlib: DLLSSLName, importc.}
 proc SSL_connect*(ssl: PSSL): cint{.cdecl, dynlib: DLLSSLName, importc.}
diff --git a/lib/wrappers/python.nim b/lib/wrappers/python.nim
deleted file mode 100644
index 3e6543765..000000000
--- a/lib/wrappers/python.nim
+++ /dev/null
@@ -1,1587 +0,0 @@
-#
-#    Light-weight binding for the Python interpreter
-#       (c) 2010 Andreas Rumpf 
-#    Based on 'PythonEngine' module by Dr. Dietmar Budelsky
-#
-#
-#************************************************************************
-#                                                                        
-# Module:  Unit 'PythonEngine'     Copyright (c) 1997                    
-#                                                                        
-# Version: 3.0                     Dr. Dietmar Budelsky                  
-# Sub-Version: 0.25                dbudelsky@web.de                      
-#                                  Germany                               
-#                                                                        
-#                                  Morgan Martinet                       
-#                                  4721 rue Brebeuf                      
-#                                  H2J 3L2 MONTREAL (QC)                 
-#                                  CANADA                                
-#                                  e-mail: mmm@free.fr                   
-#                                                                        
-#  look our page at: http://www.multimania.com/marat                     
-#************************************************************************
-#  Functionality:  Delphi Components that provide an interface to the    
-#                  Python language (see python.txt for more infos on     
-#                  Python itself).                                       
-#                                                                        
-#************************************************************************
-#  Contributors:                                                         
-#      Grzegorz Makarewicz (mak@mikroplan.com.pl)                        
-#      Andrew Robinson (andy@hps1.demon.co.uk)                           
-#      Mark Watts(mark_watts@hotmail.com)                                
-#      Olivier Deckmyn (olivier.deckmyn@mail.dotcom.fr)                  
-#      Sigve Tjora (public@tjora.no)                                     
-#      Mark Derricutt (mark@talios.com)                                  
-#      Igor E. Poteryaev (jah@mail.ru)                                   
-#      Yuri Filimonov (fil65@mail.ru)                                    
-#      Stefan Hoffmeister (Stefan.Hoffmeister@Econos.de)                 
-#************************************************************************
-# This source code is distributed with no WARRANTY, for no reason or use.
-# Everyone is allowed to use and change this code free for his own tasks 
-# and projects, as long as this header and its copyright text is intact. 
-# For changed versions of this code, which are public distributed the    
-# following additional conditions have to be fullfilled:                 
-# 1) The header has to contain a comment on the change and the author of 
-#    it.                                                                 
-# 2) A copy of the changed source has to be sent to the above E-Mail     
-#    address or my then valid address, if this is possible to the        
-#    author.                                                             
-# The second condition has the target to maintain an up to date central  
-# version of the component. If this condition is not acceptable for      
-# confidential or legal reasons, everyone is free to derive a component  
-# or to generate a diff file to my or other original sources.            
-# Dr. Dietmar Budelsky, 1997-11-17                                       
-#************************************************************************
-
-{.deadCodeElim: on.}
-
-import 
-  dynlib
-
-
-when defined(windows): 
-  const dllname = "python(27|26|25|24|23|22|21|20|16|15).dll"
-elif defined(macosx):
-  const dllname = "libpython(2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.6|1.5).dylib"
-else: 
-  const dllver = ".1"
-  const dllname = "libpython(2.7|2.6|2.5|2.4|2.3|2.2|2.1|2.0|1.6|1.5).so" & 
-                  dllver
-
-  
-const 
-  PYT_METHOD_BUFFER_INCREASE* = 10
-  PYT_MEMBER_BUFFER_INCREASE* = 10
-  PYT_GETSET_BUFFER_INCREASE* = 10
-  METH_VARARGS* = 0x0001
-  METH_KEYWORDS* = 0x0002 # Masks for the co_flags field of PyCodeObject
-  CO_OPTIMIZED* = 0x0001
-  CO_NEWLOCALS* = 0x0002
-  CO_VARARGS* = 0x0004
-  CO_VARKEYWORDS* = 0x0008
-
-type                          # Rich comparison opcodes introduced in version 2.1
-  TRichComparisonOpcode* = enum 
-    pyLT, pyLE, pyEQ, pyNE, pyGT, pyGE
-
-const
-  Py_TPFLAGS_HAVE_GETCHARBUFFER* = (1 shl 0) # PySequenceMethods contains sq_contains
-  Py_TPFLAGS_HAVE_SEQUENCE_IN* = (1 shl 1) # Objects which participate in garbage collection (see objimp.h)
-  Py_TPFLAGS_GC* = (1 shl 2)  # PySequenceMethods and PyNumberMethods contain in-place operators
-  Py_TPFLAGS_HAVE_INPLACEOPS* = (1 shl 3) # PyNumberMethods do their own coercion */
-  Py_TPFLAGS_CHECKTYPES* = (1 shl 4)
-  Py_TPFLAGS_HAVE_RICHCOMPARE* = (1 shl 5) # Objects which are weakly referencable if their tp_weaklistoffset is >0
-                                           # XXX Should this have the same value as Py_TPFLAGS_HAVE_RICHCOMPARE?
-                                           # These both indicate a feature that appeared in the same alpha release.
-  Py_TPFLAGS_HAVE_WEAKREFS* = (1 shl 6) # tp_iter is defined
-  Py_TPFLAGS_HAVE_ITER* = (1 shl 7) # New members introduced by Python 2.2 exist
-  Py_TPFLAGS_HAVE_CLASS* = (1 shl 8) # Set if the type object is dynamically allocated
-  Py_TPFLAGS_HEAPTYPE* = (1 shl 9) # Set if the type allows subclassing
-  Py_TPFLAGS_BASETYPE* = (1 shl 10) # Set if the type is 'ready' -- fully initialized
-  Py_TPFLAGS_READY* = (1 shl 12) # Set while the type is being 'readied', to prevent recursive ready calls
-  Py_TPFLAGS_READYING* = (1 shl 13) # Objects support garbage collection (see objimp.h)
-  Py_TPFLAGS_HAVE_GC* = (1 shl 14)
-  Py_TPFLAGS_DEFAULT* = Py_TPFLAGS_HAVE_GETCHARBUFFER or
-      Py_TPFLAGS_HAVE_SEQUENCE_IN or Py_TPFLAGS_HAVE_INPLACEOPS or
-      Py_TPFLAGS_HAVE_RICHCOMPARE or Py_TPFLAGS_HAVE_WEAKREFS or
-      Py_TPFLAGS_HAVE_ITER or Py_TPFLAGS_HAVE_CLASS 
-
-type 
-  TPFlag* = enum 
-    tpfHaveGetCharBuffer, tpfHaveSequenceIn, tpfGC, tpfHaveInplaceOps, 
-    tpfCheckTypes, tpfHaveRichCompare, tpfHaveWeakRefs, tpfHaveIter, 
-    tpfHaveClass, tpfHeapType, tpfBaseType, tpfReady, tpfReadying, tpfHaveGC
-  TPFlags* = set[TPFlag]
-
-const 
-  TPFLAGS_DEFAULT* = {tpfHaveGetCharBuffer, tpfHaveSequenceIn, 
-    tpfHaveInplaceOps, tpfHaveRichCompare, tpfHaveWeakRefs, tpfHaveIter, 
-    tpfHaveClass}
-
-const # Python opcodes
-  single_input* = 256 
-  file_input* = 257
-  eval_input* = 258
-  funcdef* = 259
-  parameters* = 260
-  varargslist* = 261
-  fpdef* = 262
-  fplist* = 263
-  stmt* = 264
-  simple_stmt* = 265
-  small_stmt* = 266
-  expr_stmt* = 267
-  augassign* = 268
-  print_stmt* = 269
-  del_stmt* = 270
-  pass_stmt* = 271
-  flow_stmt* = 272
-  break_stmt* = 273
-  continue_stmt* = 274
-  return_stmt* = 275
-  raise_stmt* = 276
-  import_stmt* = 277
-  import_as_name* = 278
-  dotted_as_name* = 279
-  dotted_name* = 280
-  global_stmt* = 281
-  exec_stmt* = 282
-  assert_stmt* = 283
-  compound_stmt* = 284
-  if_stmt* = 285
-  while_stmt* = 286
-  for_stmt* = 287
-  try_stmt* = 288
-  except_clause* = 289
-  suite* = 290
-  test* = 291
-  and_test* = 291
-  not_test* = 293
-  comparison* = 294
-  comp_op* = 295
-  expr* = 296
-  xor_expr* = 297
-  and_expr* = 298
-  shift_expr* = 299
-  arith_expr* = 300
-  term* = 301
-  factor* = 302
-  power* = 303
-  atom* = 304
-  listmaker* = 305
-  lambdef* = 306
-  trailer* = 307
-  subscriptlist* = 308
-  subscript* = 309
-  sliceop* = 310
-  exprlist* = 311
-  testlist* = 312
-  dictmaker* = 313
-  classdef* = 314
-  arglist* = 315
-  argument* = 316
-  list_iter* = 317
-  list_for* = 318
-  list_if* = 319
-
-const 
-  T_SHORT* = 0
-  T_INT* = 1
-  T_LONG* = 2
-  T_FLOAT* = 3
-  T_DOUBLE* = 4
-  T_STRING* = 5
-  T_OBJECT* = 6
-  T_CHAR* = 7                 # 1-character string
-  T_BYTE* = 8                 # 8-bit signed int
-  T_UBYTE* = 9
-  T_USHORT* = 10
-  T_UINT* = 11
-  T_ULONG* = 12
-  T_STRING_INPLACE* = 13
-  T_OBJECT_EX* = 16 
-  READONLY* = 1
-  RO* = READONLY              # Shorthand 
-  READ_RESTRICTED* = 2
-  WRITE_RESTRICTED* = 4
-  RESTRICTED* = (READ_RESTRICTED or WRITE_RESTRICTED)
-
-type 
-  TPyMemberType* = enum 
-    mtShort, mtInt, mtLong, mtFloat, mtDouble, mtString, mtObject, mtChar, 
-    mtByte, mtUByte, mtUShort, mtUInt, mtULong, mtStringInplace, mtObjectEx
-  TPyMemberFlag* = enum 
-    mfDefault, mfReadOnly, mfReadRestricted, mfWriteRestricted, mfRestricted
-
-type 
-  PInt* = ptr int
-
-#  PLong* = ptr int32
-#  PFloat* = ptr float32
-#  PShort* = ptr int8
-  
-type 
-  PP_frozen* = ptr Pfrozen
-  P_frozen* = ptr Tfrozen
-  PPyObject* = ptr TPyObject
-  PPPyObject* = ptr PPyObject
-  PPPPyObject* = ptr PPPyObject
-  PPyIntObject* = ptr TPyIntObject
-  PPyTypeObject* = ptr TPyTypeObject
-  PPySliceObject* = ptr TPySliceObject
-  TPyCFunction* = proc (self, args: PPyObject): PPyObject{.cdecl.}
-  Tunaryfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Tbinaryfunc* = proc (ob1, ob2: PPyObject): PPyObject{.cdecl.}
-  Tternaryfunc* = proc (ob1, ob2, ob3: PPyObject): PPyObject{.cdecl.}
-  Tinquiry* = proc (ob1: PPyObject): int{.cdecl.}
-  Tcoercion* = proc (ob1, ob2: PPPyObject): int{.cdecl.}
-  Tintargfunc* = proc (ob1: PPyObject, i: int): PPyObject{.cdecl.}
-  Tintintargfunc* = proc (ob1: PPyObject, i1, i2: int): PPyObject{.cdecl.}
-  Tintobjargproc* = proc (ob1: PPyObject, i: int, ob2: PPyObject): int{.cdecl.}
-  Tintintobjargproc* = proc (ob1: PPyObject, i1, i2: int, ob2: PPyObject): int{.
-      cdecl.}
-  Tobjobjargproc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.}
-  Tpydestructor* = proc (ob: PPyObject){.cdecl.}
-  Tprintfunc* = proc (ob: PPyObject, f: TFile, i: int): int{.cdecl.}
-  Tgetattrfunc* = proc (ob1: PPyObject, name: cstring): PPyObject{.cdecl.}
-  Tsetattrfunc* = proc (ob1: PPyObject, name: cstring, ob2: PPyObject): int{.
-      cdecl.}
-  Tcmpfunc* = proc (ob1, ob2: PPyObject): int{.cdecl.}
-  Treprfunc* = proc (ob: PPyObject): PPyObject{.cdecl.}
-  Thashfunc* = proc (ob: PPyObject): int32{.cdecl.}
-  Tgetattrofunc* = proc (ob1, ob2: PPyObject): PPyObject{.cdecl.}
-  Tsetattrofunc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.} 
-  Tgetreadbufferproc* = proc (ob1: PPyObject, i: int, p: Pointer): int{.cdecl.}
-  Tgetwritebufferproc* = proc (ob1: PPyObject, i: int, p: Pointer): int{.cdecl.}
-  Tgetsegcountproc* = proc (ob1: PPyObject, i: int): int{.cdecl.}
-  Tgetcharbufferproc* = proc (ob1: PPyObject, i: int, pstr: cstring): int{.cdecl.}
-  Tobjobjproc* = proc (ob1, ob2: PPyObject): int{.cdecl.}
-  Tvisitproc* = proc (ob1: PPyObject, p: Pointer): int{.cdecl.}
-  Ttraverseproc* = proc (ob1: PPyObject, prc: TVisitproc, p: Pointer): int{.
-      cdecl.}
-  Trichcmpfunc* = proc (ob1, ob2: PPyObject, i: int): PPyObject{.cdecl.}
-  Tgetiterfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Titernextfunc* = proc (ob1: PPyObject): PPyObject{.cdecl.}
-  Tdescrgetfunc* = proc (ob1, ob2, ob3: PPyObject): PPyObject{.cdecl.}
-  Tdescrsetfunc* = proc (ob1, ob2, ob3: PPyObject): int{.cdecl.}
-  Tinitproc* = proc (self, args, kwds: PPyObject): int{.cdecl.}
-  Tnewfunc* = proc (subtype: PPyTypeObject, args, kwds: PPyObject): PPyObject{.
-      cdecl.}
-  Tallocfunc* = proc (self: PPyTypeObject, nitems: int): PPyObject{.cdecl.}
-  TPyNumberMethods*{.final.} = object 
-    nb_add*: Tbinaryfunc
-    nb_substract*: Tbinaryfunc
-    nb_multiply*: Tbinaryfunc
-    nb_divide*: Tbinaryfunc
-    nb_remainder*: Tbinaryfunc
-    nb_divmod*: Tbinaryfunc
-    nb_power*: Tternaryfunc
-    nb_negative*: Tunaryfunc
-    nb_positive*: Tunaryfunc
-    nb_absolute*: Tunaryfunc
-    nb_nonzero*: Tinquiry
-    nb_invert*: Tunaryfunc
-    nb_lshift*: Tbinaryfunc
-    nb_rshift*: Tbinaryfunc
-    nb_and*: Tbinaryfunc
-    nb_xor*: Tbinaryfunc
-    nb_or*: Tbinaryfunc
-    nb_coerce*: Tcoercion
-    nb_int*: Tunaryfunc
-    nb_long*: Tunaryfunc
-    nb_float*: Tunaryfunc
-    nb_oct*: Tunaryfunc
-    nb_hex*: Tunaryfunc       #/ jah 29-sep-2000: updated for python 2.0
-                              #/                   added from .h
-    nb_inplace_add*: Tbinaryfunc
-    nb_inplace_subtract*: Tbinaryfunc
-    nb_inplace_multiply*: Tbinaryfunc
-    nb_inplace_divide*: Tbinaryfunc
-    nb_inplace_remainder*: Tbinaryfunc
-    nb_inplace_power*: Tternaryfunc
-    nb_inplace_lshift*: Tbinaryfunc
-    nb_inplace_rshift*: Tbinaryfunc
-    nb_inplace_and*: Tbinaryfunc
-    nb_inplace_xor*: Tbinaryfunc
-    nb_inplace_or*: Tbinaryfunc # Added in release 2.2
-                                # The following require the Py_TPFLAGS_HAVE_CLASS flag
-    nb_floor_divide*: Tbinaryfunc
-    nb_true_divide*: Tbinaryfunc
-    nb_inplace_floor_divide*: Tbinaryfunc
-    nb_inplace_true_divide*: Tbinaryfunc
-
-  PPyNumberMethods* = ptr TPyNumberMethods
-  TPySequenceMethods*{.final.} = object 
-    sq_length*: Tinquiry
-    sq_concat*: Tbinaryfunc
-    sq_repeat*: Tintargfunc
-    sq_item*: Tintargfunc
-    sq_slice*: Tintintargfunc
-    sq_ass_item*: Tintobjargproc
-    sq_ass_slice*: Tintintobjargproc 
-    sq_contains*: Tobjobjproc
-    sq_inplace_concat*: Tbinaryfunc
-    sq_inplace_repeat*: Tintargfunc
-
-  PPySequenceMethods* = ptr TPySequenceMethods
-  TPyMappingMethods*{.final.} = object 
-    mp_length*: Tinquiry
-    mp_subscript*: Tbinaryfunc
-    mp_ass_subscript*: Tobjobjargproc
-
-  PPyMappingMethods* = ptr TPyMappingMethods 
-  TPyBufferProcs*{.final.} = object 
-    bf_getreadbuffer*: Tgetreadbufferproc
-    bf_getwritebuffer*: Tgetwritebufferproc
-    bf_getsegcount*: Tgetsegcountproc
-    bf_getcharbuffer*: Tgetcharbufferproc
-
-  PPyBufferProcs* = ptr TPyBufferProcs
-  TPy_complex*{.final.} = object 
-    float*: float64
-    imag*: float64
-
-  TPyObject*{.pure, inheritable.} = object 
-    ob_refcnt*: int
-    ob_type*: PPyTypeObject
-
-  TPyIntObject* = object of TPyObject
-    ob_ival*: int32
-
-  PByte* = ptr int8
-  Tfrozen*{.final.} = object 
-    name*: cstring
-    code*: PByte
-    size*: int
-
-  TPySliceObject* = object of TPyObject
-    start*, stop*, step*: PPyObject
-
-  PPyMethodDef* = ptr TPyMethodDef
-  TPyMethodDef*{.final.} = object  # structmember.h
-    ml_name*: cstring
-    ml_meth*: TPyCFunction
-    ml_flags*: int
-    ml_doc*: cstring
-
-  PPyMemberDef* = ptr TPyMemberDef
-  TPyMemberDef*{.final.} = object  # descrobject.h
-                                   # Descriptors
-    name*: cstring
-    theType*: int
-    offset*: int
-    flags*: int
-    doc*: cstring
-
-  Tgetter* = proc (obj: PPyObject, context: Pointer): PPyObject{.cdecl.}
-  Tsetter* = proc (obj, value: PPyObject, context: Pointer): int{.cdecl.}
-  PPyGetSetDef* = ptr TPyGetSetDef
-  TPyGetSetDef*{.final.} = object 
-    name*: cstring
-    get*: Tgetter
-    setter*: Tsetter
-    doc*: cstring
-    closure*: Pointer
-
-  Twrapperfunc* = proc (self, args: PPyObject, wrapped: Pointer): PPyObject{.
-      cdecl.}
-  pwrapperbase* = ptr Twrapperbase
-  Twrapperbase*{.final.} = object  # Various kinds of descriptor objects
-                                   ##define PyDescr_COMMON \
-                                   #          PyObject_HEAD \
-                                   #          PyTypeObject *d_type; \
-                                   #          PyObject *d_name
-                                   #  
-    name*: cstring
-    wrapper*: Twrapperfunc
-    doc*: cstring
-
-  PPyDescrObject* = ptr TPyDescrObject
-  TPyDescrObject* = object of TPyObject
-    d_type*: PPyTypeObject
-    d_name*: PPyObject
-
-  PPyMethodDescrObject* = ptr TPyMethodDescrObject
-  TPyMethodDescrObject* = object of TPyDescrObject
-    d_method*: PPyMethodDef
-
-  PPyMemberDescrObject* = ptr TPyMemberDescrObject
-  TPyMemberDescrObject* = object of TPyDescrObject
-    d_member*: PPyMemberDef
-
-  PPyGetSetDescrObject* = ptr TPyGetSetDescrObject
-  TPyGetSetDescrObject* = object of TPyDescrObject
-    d_getset*: PPyGetSetDef
-
-  PPyWrapperDescrObject* = ptr TPyWrapperDescrObject
-  TPyWrapperDescrObject* = object of TPyDescrObject # object.h
-    d_base*: pwrapperbase
-    d_wrapped*: Pointer       # This can be any function pointer
-  
-  TPyTypeObject* = object of TPyObject
-    ob_size*: int             # Number of items in variable part
-    tp_name*: cstring         # For printing
-    tp_basicsize*, tp_itemsize*: int # For allocation
-                                     # Methods to implement standard operations
-    tp_dealloc*: Tpydestructor
-    tp_print*: Tprintfunc
-    tp_getattr*: Tgetattrfunc
-    tp_setattr*: Tsetattrfunc
-    tp_compare*: Tcmpfunc
-    tp_repr*: Treprfunc       # Method suites for standard classes
-    tp_as_number*: PPyNumberMethods
-    tp_as_sequence*: PPySequenceMethods
-    tp_as_mapping*: PPyMappingMethods # More standard operations (here for binary compatibility)
-    tp_hash*: Thashfunc
-    tp_call*: Tternaryfunc
-    tp_str*: Treprfunc
-    tp_getattro*: Tgetattrofunc
-    tp_setattro*: Tsetattrofunc #/ jah 29-sep-2000: updated for python 2.0
-                                # Functions to access object as input/output buffer
-    tp_as_buffer*: PPyBufferProcs # Flags to define presence of optional/expanded features
-    tp_flags*: int32
-    tp_doc*: cstring          # Documentation string
-                              # call function for all accessible objects
-    tp_traverse*: Ttraverseproc # delete references to contained objects
-    tp_clear*: Tinquiry       # rich comparisons
-    tp_richcompare*: Trichcmpfunc # weak reference enabler
-    tp_weaklistoffset*: int32 # Iterators
-    tp_iter*: Tgetiterfunc
-    tp_iternext*: Titernextfunc # Attribute descriptor and subclassing stuff
-    tp_methods*: PPyMethodDef
-    tp_members*: PPyMemberDef
-    tp_getset*: PPyGetSetDef
-    tp_base*: PPyTypeObject
-    tp_dict*: PPyObject
-    tp_descr_get*: Tdescrgetfunc
-    tp_descr_set*: Tdescrsetfunc
-    tp_dictoffset*: int32
-    tp_init*: Tinitproc
-    tp_alloc*: Tallocfunc
-    tp_new*: Tnewfunc
-    tp_free*: Tpydestructor   # Low-level free-memory routine
-    tp_is_gc*: Tinquiry       # For PyObject_IS_GC
-    tp_bases*: PPyObject
-    tp_mro*: PPyObject        # method resolution order
-    tp_cache*: PPyObject
-    tp_subclasses*: PPyObject
-    tp_weaklist*: PPyObject   #More spares
-    tp_xxx7*: pointer
-    tp_xxx8*: pointer
-
-  PPyMethodChain* = ptr TPyMethodChain
-  TPyMethodChain*{.final.} = object 
-    methods*: PPyMethodDef
-    link*: PPyMethodChain
-
-  PPyClassObject* = ptr TPyClassObject
-  TPyClassObject* = object of TPyObject
-    cl_bases*: PPyObject      # A tuple of class objects
-    cl_dict*: PPyObject       # A dictionary
-    cl_name*: PPyObject       # A string
-                              # The following three are functions or NULL
-    cl_getattr*: PPyObject
-    cl_setattr*: PPyObject
-    cl_delattr*: PPyObject
-
-  PPyInstanceObject* = ptr TPyInstanceObject
-  TPyInstanceObject* = object of TPyObject 
-    in_class*: PPyClassObject # The class object
-    in_dict*: PPyObject       # A dictionary
-  
-  PPyMethodObject* = ptr TPyMethodObject
-  TPyMethodObject* = object of TPyObject # Bytecode object, compile.h
-    im_func*: PPyObject       # The function implementing the method
-    im_self*: PPyObject       # The instance it is bound to, or NULL
-    im_class*: PPyObject      # The class that defined the method
-  
-  PPyCodeObject* = ptr TPyCodeObject
-  TPyCodeObject* = object of TPyObject # from pystate.h
-    co_argcount*: int         # #arguments, except *args
-    co_nlocals*: int          # #local variables
-    co_stacksize*: int        # #entries needed for evaluation stack
-    co_flags*: int            # CO_..., see below
-    co_code*: PPyObject       # instruction opcodes (it hides a PyStringObject)
-    co_consts*: PPyObject     # list (constants used)
-    co_names*: PPyObject      # list of strings (names used)
-    co_varnames*: PPyObject   # tuple of strings (local variable names)
-    co_freevars*: PPyObject   # tuple of strings (free variable names)
-    co_cellvars*: PPyObject   # tuple of strings (cell variable names)
-                              # The rest doesn't count for hash/cmp
-    co_filename*: PPyObject   # string (where it was loaded from)
-    co_name*: PPyObject       # string (name, for reference)
-    co_firstlineno*: int      # first source line number
-    co_lnotab*: PPyObject     # string (encoding addr<->lineno mapping)
-  
-  PPyInterpreterState* = ptr TPyInterpreterState
-  PPyThreadState* = ptr TPyThreadState
-  PPyFrameObject* = ptr TPyFrameObject # Interpreter environments
-  TPyInterpreterState*{.final.} = object  # Thread specific information
-    next*: PPyInterpreterState
-    tstate_head*: PPyThreadState
-    modules*: PPyObject
-    sysdict*: PPyObject
-    builtins*: PPyObject
-    checkinterval*: int
-
-  TPyThreadState*{.final.} = object  # from frameobject.h
-    next*: PPyThreadState
-    interp*: PPyInterpreterState
-    frame*: PPyFrameObject
-    recursion_depth*: int
-    ticker*: int
-    tracing*: int
-    sys_profilefunc*: PPyObject
-    sys_tracefunc*: PPyObject
-    curexc_type*: PPyObject
-    curexc_value*: PPyObject
-    curexc_traceback*: PPyObject
-    exc_type*: PPyObject
-    exc_value*: PPyObject
-    exc_traceback*: PPyObject
-    dict*: PPyObject
-
-  PPyTryBlock* = ptr TPyTryBlock
-  TPyTryBlock*{.final.} = object 
-    b_type*: int              # what kind of block this is
-    b_handler*: int           # where to jump to find handler
-    b_level*: int             # value stack level to pop to
-  
-  CO_MAXBLOCKS* = range[0..19]
-  TPyFrameObject* = object of TPyObject # start of the VAR_HEAD of an object
-                                        # From traceback.c
-    ob_size*: int             # Number of items in variable part
-                              # End of the Head of an object
-    f_back*: PPyFrameObject   # previous frame, or NULL
-    f_code*: PPyCodeObject    # code segment
-    f_builtins*: PPyObject    # builtin symbol table (PyDictObject)
-    f_globals*: PPyObject     # global symbol table (PyDictObject)
-    f_locals*: PPyObject      # local symbol table (PyDictObject)
-    f_valuestack*: PPPyObject # points after the last local
-                              # Next free slot in f_valuestack. Frame creation sets to f_valuestack.
-                              # Frame evaluation usually NULLs it, but a frame that yields sets it
-                              # to the current stack top. 
-    f_stacktop*: PPPyObject
-    f_trace*: PPyObject       # Trace function
-    f_exc_type*, f_exc_value*, f_exc_traceback*: PPyObject
-    f_tstate*: PPyThreadState
-    f_lasti*: int             # Last instruction if called
-    f_lineno*: int            # Current line number
-    f_restricted*: int        # Flag set if restricted operations
-                              # in this scope
-    f_iblock*: int            # index in f_blockstack
-    f_blockstack*: array[CO_MAXBLOCKS, TPyTryBlock] # for try and loop blocks
-    f_nlocals*: int           # number of locals
-    f_ncells*: int
-    f_nfreevars*: int
-    f_stacksize*: int         # size of value stack
-    f_localsplus*: array[0..0, PPyObject] # locals+stack, dynamically sized
-  
-  PPyTraceBackObject* = ptr TPyTraceBackObject
-  TPyTraceBackObject* = object of TPyObject # Parse tree node interface
-    tb_next*: PPyTraceBackObject
-    tb_frame*: PPyFrameObject
-    tb_lasti*: int
-    tb_lineno*: int
-
-  PNode* = ptr Tnode
-  Tnode*{.final.} = object    # From weakrefobject.h
-    n_type*: int16
-    n_str*: cstring
-    n_lineno*: int16
-    n_nchildren*: int16
-    n_child*: PNode
-
-  PPyWeakReference* = ptr TPyWeakReference
-  TPyWeakReference* = object of TPyObject 
-    wr_object*: PPyObject
-    wr_callback*: PPyObject
-    hash*: int32
-    wr_prev*: PPyWeakReference
-    wr_next*: PPyWeakReference
-
-
-const                         
-  PyDateTime_DATE_DATASIZE* = 4 # # of bytes for year, month, and day
-  PyDateTime_TIME_DATASIZE* = 6 # # of bytes for hour, minute, second, and usecond
-  PyDateTime_DATETIME_DATASIZE* = 10 # # of bytes for year, month, 
-                                     # day, hour, minute, second, and usecond. 
-
-type 
-  TPyDateTime_Delta* = object of TPyObject
-    hashcode*: int            # -1 when unknown
-    days*: int                # -MAX_DELTA_DAYS <= days <= MAX_DELTA_DAYS
-    seconds*: int             # 0 <= seconds < 24*3600 is invariant
-    microseconds*: int        # 0 <= microseconds < 1000000 is invariant
-  
-  PPyDateTime_Delta* = ptr TPyDateTime_Delta
-  TPyDateTime_TZInfo* = object of TPyObject # a pure abstract base clase
-  PPyDateTime_TZInfo* = ptr TPyDateTime_TZInfo 
-  TPyDateTime_BaseTZInfo* = object of TPyObject
-    hashcode*: int
-    hastzinfo*: bool          # boolean flag
-  
-  PPyDateTime_BaseTZInfo* = ptr TPyDateTime_BaseTZInfo 
-  TPyDateTime_BaseTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_TIME_DATASIZE), int8]
-
-  PPyDateTime_BaseTime* = ptr TPyDateTime_BaseTime
-  TPyDateTime_Time* = object of TPyDateTime_BaseTime # hastzinfo true
-    tzinfo*: PPyObject
-
-  PPyDateTime_Time* = ptr TPyDateTime_Time 
-  TPyDateTime_Date* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATE_DATASIZE), int8]
-
-  PPyDateTime_Date* = ptr TPyDateTime_Date 
-  TPyDateTime_BaseDateTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATETIME_DATASIZE), int8]
-
-  PPyDateTime_BaseDateTime* = ptr TPyDateTime_BaseDateTime
-  TPyDateTime_DateTime* = object of TPyDateTime_BaseTZInfo
-    data*: array[0..Pred(PyDateTime_DATETIME_DATASIZE), int8]
-    tzinfo*: PPyObject
-
-  PPyDateTime_DateTime* = ptr TPyDateTime_DateTime 
-
-#----------------------------------------------------#
-#                                                    #
-#         New exception classes                      #
-#                                                    #
-#----------------------------------------------------#
-
-#
-#  // Python's exceptions
-#  EPythonError   = object(Exception)
-#      EName: String;
-#      EValue: String;
-#  end;
-#  EPyExecError   = object(EPythonError)
-#  end;
-#
-#  // Standard exception classes of Python
-#
-#/// jah 29-sep-2000: updated for python 2.0
-#///                   base classes updated according python documentation
-#
-#{ Hierarchy of Python exceptions, Python 2.3, copied from <INSTALL>\Python\exceptions.c
-#
-#Exception\n\
-# |\n\
-# +-- SystemExit\n\
-# +-- StopIteration\n\
-# +-- StandardError\n\
-# |    |\n\
-# |    +-- KeyboardInterrupt\n\
-# |    +-- ImportError\n\
-# |    +-- EnvironmentError\n\
-# |    |    |\n\
-# |    |    +-- IOError\n\
-# |    |    +-- OSError\n\
-# |    |         |\n\
-# |    |         +-- WindowsError\n\
-# |    |         +-- VMSError\n\
-# |    |\n\
-# |    +-- EOFError\n\
-# |    +-- RuntimeError\n\
-# |    |    |\n\
-# |    |    +-- NotImplementedError\n\
-# |    |\n\
-# |    +-- NameError\n\
-# |    |    |\n\
-# |    |    +-- UnboundLocalError\n\
-# |    |\n\
-# |    +-- AttributeError\n\
-# |    +-- SyntaxError\n\
-# |    |    |\n\
-# |    |    +-- IndentationError\n\
-# |    |         |\n\
-# |    |         +-- TabError\n\
-# |    |\n\
-# |    +-- TypeError\n\
-# |    +-- AssertionError\n\
-# |    +-- LookupError\n\
-# |    |    |\n\
-# |    |    +-- IndexError\n\
-# |    |    +-- KeyError\n\
-# |    |\n\
-# |    +-- ArithmeticError\n\
-# |    |    |\n\
-# |    |    +-- OverflowError\n\
-# |    |    +-- ZeroDivisionError\n\
-# |    |    +-- FloatingPointError\n\
-# |    |\n\
-# |    +-- ValueError\n\
-# |    |    |\n\
-# |    |    +-- UnicodeError\n\
-# |    |        |\n\
-# |    |        +-- UnicodeEncodeError\n\
-# |    |        +-- UnicodeDecodeError\n\
-# |    |        +-- UnicodeTranslateError\n\
-# |    |\n\
-# |    +-- ReferenceError\n\
-# |    +-- SystemError\n\
-# |    +-- MemoryError\n\
-# |\n\
-# +---Warning\n\
-#      |\n\
-#      +-- UserWarning\n\
-#      +-- DeprecationWarning\n\
-#      +-- PendingDeprecationWarning\n\
-#      +-- SyntaxWarning\n\
-#      +-- OverflowWarning\n\
-#      +-- RuntimeWarning\n\
-#      +-- FutureWarning"
-#}
-#   EPyException = class (EPythonError);
-#   EPyStandardError = class (EPyException);
-#   EPyArithmeticError = class (EPyStandardError);
-#   EPyLookupError = class (EPyStandardError);
-#   EPyAssertionError = class (EPyStandardError);
-#   EPyAttributeError = class (EPyStandardError);
-#   EPyEOFError = class (EPyStandardError);
-#   EPyFloatingPointError = class (EPyArithmeticError);
-#   EPyEnvironmentError = class (EPyStandardError);
-#   EPyIOError = class (EPyEnvironmentError);
-#   EPyOSError = class (EPyEnvironmentError);
-#   EPyImportError = class (EPyStandardError);
-#   EPyIndexError = class (EPyLookupError);
-#   EPyKeyError = class (EPyLookupError);
-#   EPyKeyboardInterrupt = class (EPyStandardError);
-#   EPyMemoryError = class (EPyStandardError);
-#   EPyNameError = class (EPyStandardError);
-#   EPyOverflowError = class (EPyArithmeticError);
-#   EPyRuntimeError = class (EPyStandardError);
-#   EPyNotImplementedError = class (EPyRuntimeError);
-#   EPySyntaxError = class (EPyStandardError)
-#   public
-#      EFileName: string;
-#      ELineStr: string;
-#      ELineNumber: Integer;
-#      EOffset: Integer;
-#   end;
-#   EPyIndentationError = class (EPySyntaxError);
-#   EPyTabError = class (EPyIndentationError);
-#   EPySystemError = class (EPyStandardError);
-#   EPySystemExit = class (EPyException);
-#   EPyTypeError = class (EPyStandardError);
-#   EPyUnboundLocalError = class (EPyNameError);
-#   EPyValueError = class (EPyStandardError);
-#   EPyUnicodeError = class (EPyValueError);
-#   UnicodeEncodeError = class (EPyUnicodeError);
-#   UnicodeDecodeError = class (EPyUnicodeError);
-#   UnicodeTranslateError = class (EPyUnicodeError);
-#   EPyZeroDivisionError = class (EPyArithmeticError);
-#   EPyStopIteration = class(EPyException);
-#   EPyWarning = class (EPyException);
-#   EPyUserWarning = class (EPyWarning);
-#   EPyDeprecationWarning = class (EPyWarning);
-#   PendingDeprecationWarning = class (EPyWarning);
-#   FutureWarning = class (EPyWarning);
-#   EPySyntaxWarning = class (EPyWarning);
-#   EPyOverflowWarning = class (EPyWarning);
-#   EPyRuntimeWarning = class (EPyWarning);
-#   EPyReferenceError = class (EPyStandardError);
-#
-
-var 
-  PyArg_Parse*: proc (args: PPyObject, format: cstring): int{.cdecl, varargs.} 
-  PyArg_ParseTuple*: proc (args: PPyObject, format: cstring, x1: Pointer = nil, 
-                           x2: Pointer = nil, x3: Pointer = nil): int{.cdecl, varargs.} 
-  Py_BuildValue*: proc (format: cstring): PPyObject{.cdecl, varargs.} 
-  PyCode_Addr2Line*: proc (co: PPyCodeObject, addrq: int): int{.cdecl.}
-  DLL_Py_GetBuildInfo*: proc (): cstring{.cdecl.}
-
-var
-  Py_DebugFlag*: PInt
-  Py_VerboseFlag*: PInt
-  Py_InteractiveFlag*: PInt
-  Py_OptimizeFlag*: PInt
-  Py_NoSiteFlag*: PInt
-  Py_UseClassExceptionsFlag*: PInt
-  Py_FrozenFlag*: PInt
-  Py_TabcheckFlag*: PInt
-  Py_UnicodeFlag*: PInt
-  Py_IgnoreEnvironmentFlag*: PInt
-  Py_DivisionWarningFlag*: PInt 
-  #_PySys_TraceFunc:    PPPyObject;
-  #_PySys_ProfileFunc: PPPPyObject;
-  PyImport_FrozenModules*: PP_frozen
-  Py_None*: PPyObject
-  Py_Ellipsis*: PPyObject
-  Py_False*: PPyIntObject
-  Py_True*: PPyIntObject
-  Py_NotImplemented*: PPyObject
-  PyExc_AttributeError*: PPPyObject
-  PyExc_EOFError*: PPPyObject
-  PyExc_IOError*: PPPyObject
-  PyExc_ImportError*: PPPyObject
-  PyExc_IndexError*: PPPyObject
-  PyExc_KeyError*: PPPyObject
-  PyExc_KeyboardInterrupt*: PPPyObject
-  PyExc_MemoryError*: PPPyObject
-  PyExc_NameError*: PPPyObject
-  PyExc_OverflowError*: PPPyObject
-  PyExc_RuntimeError*: PPPyObject
-  PyExc_SyntaxError*: PPPyObject
-  PyExc_SystemError*: PPPyObject
-  PyExc_SystemExit*: PPPyObject
-  PyExc_TypeError*: PPPyObject
-  PyExc_ValueError*: PPPyObject
-  PyExc_ZeroDivisionError*: PPPyObject
-  PyExc_ArithmeticError*: PPPyObject
-  PyExc_Exception*: PPPyObject
-  PyExc_FloatingPointError*: PPPyObject
-  PyExc_LookupError*: PPPyObject
-  PyExc_StandardError*: PPPyObject
-  PyExc_AssertionError*: PPPyObject
-  PyExc_EnvironmentError*: PPPyObject
-  PyExc_IndentationError*: PPPyObject
-  PyExc_MemoryErrorInst*: PPPyObject
-  PyExc_NotImplementedError*: PPPyObject
-  PyExc_OSError*: PPPyObject
-  PyExc_TabError*: PPPyObject
-  PyExc_UnboundLocalError*: PPPyObject
-  PyExc_UnicodeError*: PPPyObject
-  PyExc_Warning*: PPPyObject
-  PyExc_DeprecationWarning*: PPPyObject
-  PyExc_RuntimeWarning*: PPPyObject
-  PyExc_SyntaxWarning*: PPPyObject
-  PyExc_UserWarning*: PPPyObject
-  PyExc_OverflowWarning*: PPPyObject
-  PyExc_ReferenceError*: PPPyObject
-  PyExc_StopIteration*: PPPyObject
-  PyExc_FutureWarning*: PPPyObject
-  PyExc_PendingDeprecationWarning*: PPPyObject
-  PyExc_UnicodeDecodeError*: PPPyObject
-  PyExc_UnicodeEncodeError*: PPPyObject
-  PyExc_UnicodeTranslateError*: PPPyObject
-  PyType_Type*: PPyTypeObject
-  PyCFunction_Type*: PPyTypeObject
-  PyCObject_Type*: PPyTypeObject
-  PyClass_Type*: PPyTypeObject
-  PyCode_Type*: PPyTypeObject
-  PyComplex_Type*: PPyTypeObject
-  PyDict_Type*: PPyTypeObject
-  PyFile_Type*: PPyTypeObject
-  PyFloat_Type*: PPyTypeObject
-  PyFrame_Type*: PPyTypeObject
-  PyFunction_Type*: PPyTypeObject
-  PyInstance_Type*: PPyTypeObject
-  PyInt_Type*: PPyTypeObject
-  PyList_Type*: PPyTypeObject
-  PyLong_Type*: PPyTypeObject
-  PyMethod_Type*: PPyTypeObject
-  PyModule_Type*: PPyTypeObject
-  PyObject_Type*: PPyTypeObject
-  PyRange_Type*: PPyTypeObject
-  PySlice_Type*: PPyTypeObject
-  PyString_Type*: PPyTypeObject
-  PyTuple_Type*: PPyTypeObject
-  PyBaseObject_Type*: PPyTypeObject
-  PyBuffer_Type*: PPyTypeObject
-  PyCallIter_Type*: PPyTypeObject
-  PyCell_Type*: PPyTypeObject
-  PyClassMethod_Type*: PPyTypeObject
-  PyProperty_Type*: PPyTypeObject
-  PySeqIter_Type*: PPyTypeObject
-  PyStaticMethod_Type*: PPyTypeObject
-  PySuper_Type*: PPyTypeObject
-  PySymtableEntry_Type*: PPyTypeObject
-  PyTraceBack_Type*: PPyTypeObject
-  PyUnicode_Type*: PPyTypeObject
-  PyWrapperDescr_Type*: PPyTypeObject
-  PyBaseString_Type*: PPyTypeObject
-  PyBool_Type*: PPyTypeObject
-  PyEnum_Type*: PPyTypeObject
-
-  #PyArg_GetObject: proc(args: PPyObject; nargs, i: integer; p_a: PPPyObject): integer; cdecl;
-  #PyArg_GetLong: proc(args: PPyObject; nargs, i: integer; p_a: PLong): integer; cdecl;
-  #PyArg_GetShort: proc(args: PPyObject; nargs, i: integer; p_a: PShort): integer; cdecl;
-  #PyArg_GetFloat: proc(args: PPyObject; nargs, i: integer; p_a: PFloat): integer; cdecl;
-  #PyArg_GetString: proc(args: PPyObject; nargs, i: integer; p_a: PString): integer; cdecl;
-  #PyArgs_VaParse:  proc (args: PPyObject; format: PChar; 
-  #                          va_list: array of const): integer; cdecl;
-  # Does not work!
-  # Py_VaBuildValue: proc (format: PChar; va_list: array of const): PPyObject; cdecl;
-  #PyBuiltin_Init: proc; cdecl;
-proc PyComplex_FromCComplex*(c: TPy_complex): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_FromDoubles*(realv, imag: float64): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_RealAsDouble*(op: PPyObject): float64{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_ImagAsDouble*(op: PPyObject): float64{.cdecl, importc, dynlib: dllname.}
-proc PyComplex_AsCComplex*(op: PPyObject): TPy_complex{.cdecl, importc, dynlib: dllname.}
-proc PyCFunction_GetFunction*(ob: PPyObject): Pointer{.cdecl, importc, dynlib: dllname.}
-proc PyCFunction_GetSelf*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyCallable_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyCObject_FromVoidPtr*(cobj, destruct: Pointer): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyCObject_AsVoidPtr*(ob: PPyObject): Pointer{.cdecl, importc, dynlib: dllname.}
-proc PyClass_New*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyClass_IsSubclass*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc Py_InitModule4*(name: cstring, methods: PPyMethodDef, doc: cstring, 
-                         passthrough: PPyObject, Api_Version: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyErr_BadArgument*(): int{.cdecl, importc, dynlib: dllname.}
-proc PyErr_BadInternalCall*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_CheckSignals*(): int{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Clear*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_Fetch*(errtype, errvalue, errtraceback: PPPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_NoMemory*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Occurred*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_Print*(){.cdecl, importc, dynlib: dllname.}
-proc PyErr_Restore*(errtype, errvalue, errtraceback: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetFromErrno*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetNone*(value: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetObject*(ob1, ob2: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyErr_SetString*(ErrorObject: PPyObject, text: cstring){.cdecl, importc, dynlib: dllname.}
-proc PyImport_GetModuleDict*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyInt_FromLong*(x: int32): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc Py_Initialize*(){.cdecl, importc, dynlib: dllname.}
-proc Py_Exit*(RetVal: int){.cdecl, importc, dynlib: dllname.}
-proc PyEval_GetBuiltins*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_GetItem*(mp, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_SetItem*(mp, key, item: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_DelItem*(mp, key: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Clear*(mp: PPyObject){.cdecl, importc, dynlib: dllname.}
-proc PyDict_Next*(mp: PPyObject, pos: PInt, key, value: PPPyObject): int{.
-      cdecl, importc, dynlib: dllname.}
-proc PyDict_Keys*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Values*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Items*(mp: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_Size*(mp: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_DelItemString*(dp: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.}
-proc PyDict_New*(): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_GetItemString*(dp: PPyObject, key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyDict_SetItemString*(dp: PPyObject, key: cstring, item: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}
-proc PyDictProxy_New*(obj: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyModule_GetDict*(module: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_Str*(v: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyRun_String*(str: cstring, start: int, globals: PPyObject, 
-                       locals: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyRun_SimpleString*(str: cstring): int{.cdecl, importc, dynlib: dllname.}
-proc PyString_AsString*(ob: PPyObject): cstring{.cdecl, importc, dynlib: dllname.}
-proc PyString_FromString*(str: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PySys_SetArgv*(argc: int, argv: cstringArray){.cdecl, importc, dynlib: dllname.} 
-  #+ means, Grzegorz or me has tested his non object version of this function
-  #+
-proc PyCFunction_New*(md: PPyMethodDef, ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyEval_CallObject*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_CallObjectWithKeywords*(ob1, ob2, ob3: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyEval_GetFrame*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetGlobals*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetLocals*(): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_GetOwner*(): PPyObject {.cdecl, importc, dynlib: dllname.}
-proc PyEval_GetRestricted*(): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_InitThreads*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_RestoreThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_SaveThread*(): PPyThreadState{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_FromString*(pc1, pc2: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_GetLine*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_Name*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_SetBufSize*(ob: PPyObject, i: int){.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_SoftSpace*(ob: PPyObject, i: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_WriteObject*(ob1, ob2: PPyObject, i: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyFile_WriteString*(s: cstring, ob: PPyObject){.cdecl, importc, dynlib: dllname.} #+
-proc PyFloat_AsDouble*(ob: PPyObject): float64{.cdecl, importc, dynlib: dllname.} #+
-proc PyFloat_FromDouble*(db: float64): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_GetCode*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_GetGlobals*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyFunction_New*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_AddModule*(name: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_Cleanup*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyImport_GetMagicNumber*(): int32{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_ImportFrozenModule*(key: cstring): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_ImportModule*(name: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyImport_Import*(name: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-                                                               
-proc PyImport_Init*() {.cdecl, importc, dynlib: dllname.}
-proc PyImport_ReloadModule*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyInstance_New*(obClass, obArg, obKW: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyInt_AsLong*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Append*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_AsTuple*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyList_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Insert*(dp: PPyObject, idx: int, item: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_New*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Reverse*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_SetItem*(dp: PPyObject, idx: int, item: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_SetSlice*(ob: PPyObject, i1, i2: int, ob2: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #+
-proc PyList_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyList_Sort*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsDouble*(ob: PPyObject): float64{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_AsLong*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_FromDouble*(db: float64): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyLong_FromLong*(L: int32): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromString*(pc: cstring, ppc: var cstring, i: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyLong_FromUnsignedLong*(val: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsUnsignedLong*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromUnicode*(ob: PPyObject, a, b: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_FromLongLong*(val: Int64): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyLong_AsLongLong*(ob: PPyObject): Int64{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_GetItemString*(ob: PPyObject, key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_HasKey*(ob, key: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_HasKeyString*(ob: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyMapping_SetItemString*(ob: PPyObject, key: cstring, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyMethod_Class*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_Function*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_New*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyMethod_Self*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyModule_GetName*(ob: PPyObject): cstring{.cdecl, importc, dynlib: dllname.} #-
-proc PyModule_New*(key: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Absolute*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Add*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_And*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Coerce*(ob1, ob2: var PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Divide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_FloorDivide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_TrueDivide*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Divmod*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Float*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Int*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Invert*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Long*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Lshift*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Multiply*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Negative*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Or*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Positive*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Power*(ob1, ob2, ob3: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Remainder*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Rshift*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Subtract*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyNumber_Xor*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyOS_InitInterrupts*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyOS_InterruptOccurred*(): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_CallObject*(ob, args: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Compare*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GetAttr*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyObject_GetAttrString*(ob: PPyObject, c: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GetItem*(ob, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_DelItem*(ob, key: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_HasAttrString*(ob: PPyObject, key: cstring): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Hash*(ob: PPyObject): int32{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsTrue*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Repr*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_SetAttr*(ob1, ob2, ob3: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_SetAttrString*(ob: PPyObject, key: cstring, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyObject_SetItem*(ob1, ob2, ob3: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_Init*(ob: PPyObject, t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_InitVar*(ob: PPyObject, t: PPyTypeObject, size: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyObject_New*(t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_NewVar*(t: PPyTypeObject, size: int): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_Free*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsInstance*(inst, cls: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_IsSubclass*(derived, cls: PPyObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyObject_GenericGetAttr*(obj, name: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyObject_GenericSetAttr*(obj, name, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Malloc*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_New*(t: PPyTypeObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_NewVar*(t: PPyTypeObject, size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Resize*(t: PPyObject, newsize: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Del*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_Track*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyObject_GC_UnTrack*(ob: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyRange_New*(l1, l2, l3: int32, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Check*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Concat*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Count*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_In*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Index*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Length*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Repeat*(ob: PPyObject, count: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_SetItem*(ob: PPyObject, i: int, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySequence_SetSlice*(ob: PPyObject, i1, i2: int, value: PPyObject): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySequence_DelSlice*(ob: PPyObject, i1, i2: int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Tuple*(ob: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PySequence_Contains*(ob, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySlice_GetIndices*(ob: PPySliceObject, len: int, 
-                             start, stop, step: var int): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySlice_GetIndicesEx*(ob: PPySliceObject, len: int, 
-                               start, stop, step, slicelength: var int): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PySlice_New*(start, stop, step: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Concat*(ob1: var PPyObject, ob2: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyString_ConcatAndDel*(ob1: var PPyObject, ob2: PPyObject){.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Format*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_FromStringAndSize*(s: cstring, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyString_DecodeEscape*(s: cstring, length: int, errors: cstring, 
-                                unicode: int, recode_encoding: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyString_Repr*(ob: PPyObject, smartquotes: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PySys_GetObject*(s: cstring): PPyObject{.cdecl, importc, dynlib: dllname.} 
-#-
-#PySys_Init:procedure; cdecl, importc, dynlib: dllname;
-#-
-proc PySys_SetObject*(s: cstring, ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PySys_SetPath*(path: cstring){.cdecl, importc, dynlib: dllname.} #-
-#PyTraceBack_Fetch:function:PPyObject; cdecl, importc, dynlib: dllname;
-#-
-proc PyTraceBack_Here*(p: pointer): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyTraceBack_Print*(ob1, ob2: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-#PyTraceBack_Store:function (ob:PPyObject):integer; cdecl, importc, dynlib: dllname;
-#+
-proc PyTuple_GetItem*(ob: PPyObject, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc PyTuple_GetSlice*(ob: PPyObject, i1, i2: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_New*(size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_SetItem*(ob: PPyObject, key: int, value: PPyObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyTuple_Size*(ob: PPyObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyType_IsSubtype*(a, b: PPyTypeObject): int{.cdecl, importc, dynlib: dllname.}
-proc PyType_GenericAlloc*(atype: PPyTypeObject, nitems: int): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyType_GenericNew*(atype: PPyTypeObject, args, kwds: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}
-proc PyType_Ready*(atype: PPyTypeObject): int{.cdecl, importc, dynlib: dllname.} #+
-proc PyUnicode_FromWideChar*(w: pointer, size: int): PPyObject{.cdecl, importc, dynlib: dllname.} #+
-proc PyUnicode_AsWideChar*(unicode: PPyObject, w: pointer, size: int): int{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc PyUnicode_FromOrdinal*(ordinal: int): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_GetObject*(theRef: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_NewProxy*(ob, callback: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWeakref_NewRef*(ob, callback: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyWrapper_New*(ob1, ob2: PPyObject): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc PyBool_FromLong*(ok: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc Py_AtExit*(prc: proc () {.cdecl.}): int{.cdecl, importc, dynlib: dllname.} #-
-#Py_Cleanup:procedure; cdecl, importc, dynlib: dllname;
-#-
-proc Py_CompileString*(s1, s2: cstring, i: int): PPyObject{.cdecl, importc, dynlib: dllname.} #-
-proc Py_FatalError*(s: cstring){.cdecl, importc, dynlib: dllname.} #-
-proc Py_FindMethod*(md: PPyMethodDef, ob: PPyObject, key: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_FindMethodInChain*(mc: PPyMethodChain, ob: PPyObject, key: cstring): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_FlushLine*(){.cdecl, importc, dynlib: dllname.} #+
-proc Py_Finalize*(){.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_ExceptionMatches*(exc: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_GivenExceptionMatches*(raised_exc, exc: PPyObject): int{.cdecl, importc, dynlib: dllname.} #-
-proc PyEval_EvalCode*(co: PPyCodeObject, globals, locals: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #+
-proc Py_GetVersion*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetCopyright*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetExecPrefix*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetPath*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetPrefix*(): cstring{.cdecl, importc, dynlib: dllname.} #+
-proc Py_GetProgramName*(): cstring{.cdecl, importc, dynlib: dllname.} #-
-proc PyParser_SimpleParseString*(str: cstring, start: int): PNode{.cdecl, importc, dynlib: dllname.} #-
-proc PyNode_Free*(n: PNode){.cdecl, importc, dynlib: dllname.} #-
-proc PyErr_NewException*(name: cstring, base, dict: PPyObject): PPyObject{.
-      cdecl, importc, dynlib: dllname.}                 #-
-proc Py_Malloc*(size: int): Pointer {.cdecl, importc, dynlib: dllname.}
-proc PyMem_Malloc*(size: int): Pointer {.cdecl, importc, dynlib: dllname.}
-proc PyObject_CallMethod*(obj: PPyObject, theMethod, 
-                              format: cstring): PPyObject{.cdecl, importc, dynlib: dllname.}
-proc Py_SetProgramName*(name: cstring){.cdecl, importc, dynlib: dllname.}
-proc Py_IsInitialized*(): int{.cdecl, importc, dynlib: dllname.}
-proc Py_GetProgramFullPath*(): cstring{.cdecl, importc, dynlib: dllname.}
-proc Py_NewInterpreter*(): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc Py_EndInterpreter*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyEval_AcquireLock*(){.cdecl, importc, dynlib: dllname.}
-proc PyEval_ReleaseLock*(){.cdecl, importc, dynlib: dllname.}
-proc PyEval_AcquireThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyEval_ReleaseThread*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_New*(): PPyInterpreterState{.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_Clear*(interp: PPyInterpreterState){.cdecl, importc, dynlib: dllname.}
-proc PyInterpreterState_Delete*(interp: PPyInterpreterState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_New*(interp: PPyInterpreterState): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Clear*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Delete*(tstate: PPyThreadState){.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Get*(): PPyThreadState{.cdecl, importc, dynlib: dllname.}
-proc PyThreadState_Swap*(tstate: PPyThreadState): PPyThreadState{.cdecl, importc, dynlib: dllname.} 
-
-#Further exported Objects, may be implemented later
-#
-#    PyCode_New: Pointer;
-#    PyErr_SetInterrupt: Pointer;
-#    PyFile_AsFile: Pointer;
-#    PyFile_FromFile: Pointer;
-#    PyFloat_AsString: Pointer;
-#    PyFrame_BlockPop: Pointer;
-#    PyFrame_BlockSetup: Pointer;
-#    PyFrame_ExtendStack: Pointer;
-#    PyFrame_FastToLocals: Pointer;
-#    PyFrame_LocalsToFast: Pointer;
-#    PyFrame_New: Pointer;
-#    PyGrammar_AddAccelerators: Pointer;
-#    PyGrammar_FindDFA: Pointer;
-#    PyGrammar_LabelRepr: Pointer;
-#    PyInstance_DoBinOp: Pointer;
-#    PyInt_GetMax: Pointer;
-#    PyMarshal_Init: Pointer;
-#    PyMarshal_ReadLongFromFile: Pointer;
-#    PyMarshal_ReadObjectFromFile: Pointer;
-#    PyMarshal_ReadObjectFromString: Pointer;
-#    PyMarshal_WriteLongToFile: Pointer;
-#    PyMarshal_WriteObjectToFile: Pointer;
-#    PyMember_Get: Pointer;
-#    PyMember_Set: Pointer;
-#    PyNode_AddChild: Pointer;
-#    PyNode_Compile: Pointer;
-#    PyNode_New: Pointer;
-#    PyOS_GetLastModificationTime: Pointer;
-#    PyOS_Readline: Pointer;
-#    PyOS_strtol: Pointer;
-#    PyOS_strtoul: Pointer;
-#    PyObject_CallFunction: Pointer;
-#    PyObject_CallMethod: Pointer;
-#    PyObject_Print: Pointer;
-#    PyParser_AddToken: Pointer;
-#    PyParser_Delete: Pointer;
-#    PyParser_New: Pointer;
-#    PyParser_ParseFile: Pointer;
-#    PyParser_ParseString: Pointer;
-#    PyParser_SimpleParseFile: Pointer;
-#    PyRun_AnyFile: Pointer;
-#    PyRun_File: Pointer;
-#    PyRun_InteractiveLoop: Pointer;
-#    PyRun_InteractiveOne: Pointer;
-#    PyRun_SimpleFile: Pointer;
-#    PySys_GetFile: Pointer;
-#    PyToken_OneChar: Pointer;
-#    PyToken_TwoChars: Pointer;
-#    PyTokenizer_Free: Pointer;
-#    PyTokenizer_FromFile: Pointer;
-#    PyTokenizer_FromString: Pointer;
-#    PyTokenizer_Get: Pointer;
-#    Py_Main: Pointer;
-#    _PyObject_NewVar: Pointer;
-#    _PyParser_Grammar: Pointer;
-#    _PyParser_TokenNames: Pointer;
-#    _PyThread_Started: Pointer;
-#    _Py_c_diff: Pointer;
-#    _Py_c_neg: Pointer;
-#    _Py_c_pow: Pointer;
-#    _Py_c_prod: Pointer;
-#    _Py_c_quot: Pointer;
-#    _Py_c_sum: Pointer;
-#
-
-# This function handles all cardinals, pointer types (with no adjustment of pointers!)
-# (Extended) floats, which are handled as Python doubles and currencies, handled
-# as (normalized) Python doubles.
-proc PyImport_ExecCodeModule*(name: String, codeobject: PPyObject): PPyObject
-proc PyString_Check*(obj: PPyObject): bool
-proc PyString_CheckExact*(obj: PPyObject): bool
-proc PyFloat_Check*(obj: PPyObject): bool
-proc PyFloat_CheckExact*(obj: PPyObject): bool
-proc PyInt_Check*(obj: PPyObject): bool
-proc PyInt_CheckExact*(obj: PPyObject): bool
-proc PyLong_Check*(obj: PPyObject): bool
-proc PyLong_CheckExact*(obj: PPyObject): bool
-proc PyTuple_Check*(obj: PPyObject): bool
-proc PyTuple_CheckExact*(obj: PPyObject): bool
-proc PyInstance_Check*(obj: PPyObject): bool
-proc PyClass_Check*(obj: PPyObject): bool
-proc PyMethod_Check*(obj: PPyObject): bool
-proc PyList_Check*(obj: PPyObject): bool
-proc PyList_CheckExact*(obj: PPyObject): bool
-proc PyDict_Check*(obj: PPyObject): bool
-proc PyDict_CheckExact*(obj: PPyObject): bool
-proc PyModule_Check*(obj: PPyObject): bool
-proc PyModule_CheckExact*(obj: PPyObject): bool
-proc PySlice_Check*(obj: PPyObject): bool
-proc PyFunction_Check*(obj: PPyObject): bool
-proc PyUnicode_Check*(obj: PPyObject): bool
-proc PyUnicode_CheckExact*(obj: PPyObject): bool
-proc PyType_IS_GC*(t: PPyTypeObject): bool
-proc PyObject_IS_GC*(obj: PPyObject): bool
-proc PyBool_Check*(obj: PPyObject): bool
-proc PyBaseString_Check*(obj: PPyObject): bool
-proc PyEnum_Check*(obj: PPyObject): bool
-proc PyObject_TypeCheck*(obj: PPyObject, t: PPyTypeObject): bool
-proc Py_InitModule*(name: cstring, md: PPyMethodDef): PPyObject
-proc PyType_HasFeature*(AType: PPyTypeObject, AFlag: int): bool
-# implementation
-
-proc Py_INCREF*(op: PPyObject) {.inline.} = 
-  Inc(op.ob_refcnt)
-
-proc Py_DECREF*(op: PPyObject) {.inline.} = 
-  Dec(op.ob_refcnt)
-  if op.ob_refcnt == 0: 
-    op.ob_type.tp_dealloc(op)
-
-proc Py_XINCREF*(op: PPyObject) {.inline.} = 
-  if op != nil: Py_INCREF(op)
-  
-proc Py_XDECREF*(op: PPyObject) {.inline.} = 
-  if op != nil: Py_DECREF(op)
-  
-proc PyImport_ExecCodeModule(name: string, codeobject: PPyObject): PPyObject = 
-  var m, d, v, modules: PPyObject
-  m = PyImport_AddModule(cstring(name))
-  if m == nil: 
-    return nil
-  d = PyModule_GetDict(m)
-  if PyDict_GetItemString(d, "__builtins__") == nil: 
-    if PyDict_SetItemString(d, "__builtins__", PyEval_GetBuiltins()) != 0: 
-      return nil
-  if PyDict_SetItemString(d, "__file__", 
-                          PPyCodeObject(codeobject).co_filename) != 0: 
-    PyErr_Clear() # Not important enough to report
-  v = PyEval_EvalCode(PPyCodeObject(codeobject), d, d) # XXX owner ?
-  if v == nil: 
-    return nil
-  Py_XDECREF(v)
-  modules = PyImport_GetModuleDict()
-  if PyDict_GetItemString(modules, cstring(name)) == nil: 
-    PyErr_SetString(PyExc_ImportError[] , cstring(
-        "Loaded module " & name & "not found in sys.modules"))
-    return nil
-  Py_XINCREF(m)
-  Result = m
-
-proc PyString_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyString_Type)
-
-proc PyString_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyString_Type)
-
-proc PyFloat_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyFloat_Type)
-
-proc PyFloat_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyFloat_Type)
-
-proc PyInt_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyInt_Type)
-
-proc PyInt_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyInt_Type)
-
-proc PyLong_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyLong_Type)
-
-proc PyLong_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyLong_Type)
-
-proc PyTuple_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyTuple_Type)
-
-proc PyTuple_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyTuple_Type)
-
-proc PyInstance_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyInstance_Type)
-
-proc PyClass_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyClass_Type)
-
-proc PyMethod_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyMethod_Type)
-
-proc PyList_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyList_Type)
-
-proc PyList_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyList_Type)
-
-proc PyDict_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyDict_Type)
-
-proc PyDict_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyDict_Type)
-
-proc PyModule_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyModule_Type)
-
-proc PyModule_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PyModule_Type)
-
-proc PySlice_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj[].ob_type == PySlice_Type)
-
-proc PyFunction_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and
-      ((obj.ob_type == PyCFunction_Type) or
-      (obj.ob_type == PyFunction_Type))
-
-proc PyUnicode_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyUnicode_Type)
-
-proc PyUnicode_CheckExact(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyUnicode_Type)
-
-proc PyType_IS_GC(t: PPyTypeObject): bool = 
-  Result = PyType_HasFeature(t, Py_TPFLAGS_HAVE_GC)
-
-proc PyObject_IS_GC(obj: PPyObject): bool = 
-  Result = PyType_IS_GC(obj.ob_type) and
-      ((obj.ob_type.tp_is_gc == nil) or (obj.ob_type.tp_is_gc(obj) == 1))
-
-proc PyBool_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyBool_Type)
-
-proc PyBaseString_Check(obj: PPyObject): bool = 
-  Result = PyObject_TypeCheck(obj, PyBaseString_Type)
-
-proc PyEnum_Check(obj: PPyObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == PyEnum_Type)
-
-proc PyObject_TypeCheck(obj: PPyObject, t: PPyTypeObject): bool = 
-  Result = (obj != nil) and (obj.ob_type == t)
-  if not Result and (obj != nil) and (t != nil): 
-    Result = PyType_IsSubtype(obj.ob_type, t) == 1
-  
-proc Py_InitModule(name: cstring, md: PPyMethodDef): PPyObject = 
-  result = Py_InitModule4(name, md, nil, nil, 1012)
-
-proc PyType_HasFeature(AType: PPyTypeObject, AFlag: int): bool = 
-  #(((t)->tp_flags & (f)) != 0)
-  Result = (AType.tp_flags and AFlag) != 0
-
-proc init(lib: TLibHandle) = 
-  Py_DebugFlag = cast[PInt](symAddr(lib, "Py_DebugFlag"))
-  Py_VerboseFlag = cast[PInt](symAddr(lib, "Py_VerboseFlag"))
-  Py_InteractiveFlag = cast[PInt](symAddr(lib, "Py_InteractiveFlag"))
-  Py_OptimizeFlag = cast[PInt](symAddr(lib, "Py_OptimizeFlag"))
-  Py_NoSiteFlag = cast[PInt](symAddr(lib, "Py_NoSiteFlag"))
-  Py_UseClassExceptionsFlag = cast[PInt](symAddr(lib, "Py_UseClassExceptionsFlag"))
-  Py_FrozenFlag = cast[PInt](symAddr(lib, "Py_FrozenFlag"))
-  Py_TabcheckFlag = cast[PInt](symAddr(lib, "Py_TabcheckFlag"))
-  Py_UnicodeFlag = cast[PInt](symAddr(lib, "Py_UnicodeFlag"))
-  Py_IgnoreEnvironmentFlag = cast[PInt](symAddr(lib, "Py_IgnoreEnvironmentFlag"))
-  Py_DivisionWarningFlag = cast[PInt](symAddr(lib, "Py_DivisionWarningFlag"))
-  Py_None = cast[PPyObject](symAddr(lib, "_Py_NoneStruct"))
-  Py_Ellipsis = cast[PPyObject](symAddr(lib, "_Py_EllipsisObject"))
-  Py_False = cast[PPyIntObject](symAddr(lib, "_Py_ZeroStruct"))
-  Py_True = cast[PPyIntObject](symAddr(lib, "_Py_TrueStruct"))
-  Py_NotImplemented = cast[PPyObject](symAddr(lib, "_Py_NotImplementedStruct"))
-  PyImport_FrozenModules = cast[PP_frozen](symAddr(lib, "PyImport_FrozenModules"))
-  PyExc_AttributeError = cast[PPPyObject](symAddr(lib, "PyExc_AttributeError"))
-  PyExc_EOFError = cast[PPPyObject](symAddr(lib, "PyExc_EOFError"))
-  PyExc_IOError = cast[PPPyObject](symAddr(lib, "PyExc_IOError"))
-  PyExc_ImportError = cast[PPPyObject](symAddr(lib, "PyExc_ImportError"))
-  PyExc_IndexError = cast[PPPyObject](symAddr(lib, "PyExc_IndexError"))
-  PyExc_KeyError = cast[PPPyObject](symAddr(lib, "PyExc_KeyError"))
-  PyExc_KeyboardInterrupt = cast[PPPyObject](symAddr(lib, "PyExc_KeyboardInterrupt"))
-  PyExc_MemoryError = cast[PPPyObject](symAddr(lib, "PyExc_MemoryError"))
-  PyExc_NameError = cast[PPPyObject](symAddr(lib, "PyExc_NameError"))
-  PyExc_OverflowError = cast[PPPyObject](symAddr(lib, "PyExc_OverflowError"))
-  PyExc_RuntimeError = cast[PPPyObject](symAddr(lib, "PyExc_RuntimeError"))
-  PyExc_SyntaxError = cast[PPPyObject](symAddr(lib, "PyExc_SyntaxError"))
-  PyExc_SystemError = cast[PPPyObject](symAddr(lib, "PyExc_SystemError"))
-  PyExc_SystemExit = cast[PPPyObject](symAddr(lib, "PyExc_SystemExit"))
-  PyExc_TypeError = cast[PPPyObject](symAddr(lib, "PyExc_TypeError"))
-  PyExc_ValueError = cast[PPPyObject](symAddr(lib, "PyExc_ValueError"))
-  PyExc_ZeroDivisionError = cast[PPPyObject](symAddr(lib, "PyExc_ZeroDivisionError"))
-  PyExc_ArithmeticError = cast[PPPyObject](symAddr(lib, "PyExc_ArithmeticError"))
-  PyExc_Exception = cast[PPPyObject](symAddr(lib, "PyExc_Exception"))
-  PyExc_FloatingPointError = cast[PPPyObject](symAddr(lib, "PyExc_FloatingPointError"))
-  PyExc_LookupError = cast[PPPyObject](symAddr(lib, "PyExc_LookupError"))
-  PyExc_StandardError = cast[PPPyObject](symAddr(lib, "PyExc_StandardError"))
-  PyExc_AssertionError = cast[PPPyObject](symAddr(lib, "PyExc_AssertionError"))
-  PyExc_EnvironmentError = cast[PPPyObject](symAddr(lib, "PyExc_EnvironmentError"))
-  PyExc_IndentationError = cast[PPPyObject](symAddr(lib, "PyExc_IndentationError"))
-  PyExc_MemoryErrorInst = cast[PPPyObject](symAddr(lib, "PyExc_MemoryErrorInst"))
-  PyExc_NotImplementedError = cast[PPPyObject](symAddr(lib, "PyExc_NotImplementedError"))
-  PyExc_OSError = cast[PPPyObject](symAddr(lib, "PyExc_OSError"))
-  PyExc_TabError = cast[PPPyObject](symAddr(lib, "PyExc_TabError"))
-  PyExc_UnboundLocalError = cast[PPPyObject](symAddr(lib, "PyExc_UnboundLocalError"))
-  PyExc_UnicodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeError"))
-  PyExc_Warning = cast[PPPyObject](symAddr(lib, "PyExc_Warning"))
-  PyExc_DeprecationWarning = cast[PPPyObject](symAddr(lib, "PyExc_DeprecationWarning"))
-  PyExc_RuntimeWarning = cast[PPPyObject](symAddr(lib, "PyExc_RuntimeWarning"))
-  PyExc_SyntaxWarning = cast[PPPyObject](symAddr(lib, "PyExc_SyntaxWarning"))
-  PyExc_UserWarning = cast[PPPyObject](symAddr(lib, "PyExc_UserWarning"))
-  PyExc_OverflowWarning = cast[PPPyObject](symAddr(lib, "PyExc_OverflowWarning"))
-  PyExc_ReferenceError = cast[PPPyObject](symAddr(lib, "PyExc_ReferenceError"))
-  PyExc_StopIteration = cast[PPPyObject](symAddr(lib, "PyExc_StopIteration"))
-  PyExc_FutureWarning = cast[PPPyObject](symAddr(lib, "PyExc_FutureWarning"))
-  PyExc_PendingDeprecationWarning = cast[PPPyObject](symAddr(lib, 
-      "PyExc_PendingDeprecationWarning"))
-  PyExc_UnicodeDecodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeDecodeError"))
-  PyExc_UnicodeEncodeError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeEncodeError"))
-  PyExc_UnicodeTranslateError = cast[PPPyObject](symAddr(lib, "PyExc_UnicodeTranslateError"))
-  PyType_Type = cast[PPyTypeObject](symAddr(lib, "PyType_Type"))
-  PyCFunction_Type = cast[PPyTypeObject](symAddr(lib, "PyCFunction_Type"))
-  PyCObject_Type = cast[PPyTypeObject](symAddr(lib, "PyCObject_Type"))
-  PyClass_Type = cast[PPyTypeObject](symAddr(lib, "PyClass_Type"))
-  PyCode_Type = cast[PPyTypeObject](symAddr(lib, "PyCode_Type"))
-  PyComplex_Type = cast[PPyTypeObject](symAddr(lib, "PyComplex_Type"))
-  PyDict_Type = cast[PPyTypeObject](symAddr(lib, "PyDict_Type"))
-  PyFile_Type = cast[PPyTypeObject](symAddr(lib, "PyFile_Type"))
-  PyFloat_Type = cast[PPyTypeObject](symAddr(lib, "PyFloat_Type"))
-  PyFrame_Type = cast[PPyTypeObject](symAddr(lib, "PyFrame_Type"))
-  PyFunction_Type = cast[PPyTypeObject](symAddr(lib, "PyFunction_Type"))
-  PyInstance_Type = cast[PPyTypeObject](symAddr(lib, "PyInstance_Type"))
-  PyInt_Type = cast[PPyTypeObject](symAddr(lib, "PyInt_Type"))
-  PyList_Type = cast[PPyTypeObject](symAddr(lib, "PyList_Type"))
-  PyLong_Type = cast[PPyTypeObject](symAddr(lib, "PyLong_Type"))
-  PyMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyMethod_Type"))
-  PyModule_Type = cast[PPyTypeObject](symAddr(lib, "PyModule_Type"))
-  PyObject_Type = cast[PPyTypeObject](symAddr(lib, "PyObject_Type"))
-  PyRange_Type = cast[PPyTypeObject](symAddr(lib, "PyRange_Type"))
-  PySlice_Type = cast[PPyTypeObject](symAddr(lib, "PySlice_Type"))
-  PyString_Type = cast[PPyTypeObject](symAddr(lib, "PyString_Type"))
-  PyTuple_Type = cast[PPyTypeObject](symAddr(lib, "PyTuple_Type"))
-  PyUnicode_Type = cast[PPyTypeObject](symAddr(lib, "PyUnicode_Type"))
-  PyBaseObject_Type = cast[PPyTypeObject](symAddr(lib, "PyBaseObject_Type"))
-  PyBuffer_Type = cast[PPyTypeObject](symAddr(lib, "PyBuffer_Type"))
-  PyCallIter_Type = cast[PPyTypeObject](symAddr(lib, "PyCallIter_Type"))
-  PyCell_Type = cast[PPyTypeObject](symAddr(lib, "PyCell_Type"))
-  PyClassMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyClassMethod_Type"))
-  PyProperty_Type = cast[PPyTypeObject](symAddr(lib, "PyProperty_Type"))
-  PySeqIter_Type = cast[PPyTypeObject](symAddr(lib, "PySeqIter_Type"))
-  PyStaticMethod_Type = cast[PPyTypeObject](symAddr(lib, "PyStaticMethod_Type"))
-  PySuper_Type = cast[PPyTypeObject](symAddr(lib, "PySuper_Type"))
-  PySymtableEntry_Type = cast[PPyTypeObject](symAddr(lib, "PySymtableEntry_Type"))
-  PyTraceBack_Type = cast[PPyTypeObject](symAddr(lib, "PyTraceBack_Type"))
-  PyWrapperDescr_Type = cast[PPyTypeObject](symAddr(lib, "PyWrapperDescr_Type"))
-  PyBaseString_Type = cast[PPyTypeObject](symAddr(lib, "PyBaseString_Type"))
-  PyBool_Type = cast[PPyTypeObject](symAddr(lib, "PyBool_Type"))
-  PyEnum_Type = cast[PPyTypeObject](symAddr(lib, "PyEnum_Type"))
-
-# Unfortunately we have to duplicate the loading mechanism here, because Nimrod
-# used to not support variables from dynamic libraries. Well designed API's
-# don't require this anyway. Python is an exception.
-
-var
-  lib: TLibHandle
-
-when defined(windows):
-  const
-    LibNames = ["python27.dll", "python26.dll", "python25.dll",
-      "python24.dll", "python23.dll", "python22.dll", "python21.dll",
-      "python20.dll", "python16.dll", "python15.dll"]
-elif defined(macosx):
-  const
-    LibNames = ["libpython2.7.dylib", "libpython2.6.dylib",
-      "libpython2.5.dylib", "libpython2.4.dylib", "libpython2.3.dylib", 
-      "libpython2.2.dylib", "libpython2.1.dylib", "libpython2.0.dylib",
-      "libpython1.6.dylib", "libpython1.5.dylib"]
-else:
-  const
-    LibNames = [
-      "libpython2.7.so" & dllver,
-      "libpython2.6.so" & dllver, 
-      "libpython2.5.so" & dllver, 
-      "libpython2.4.so" & dllver, 
-      "libpython2.3.so" & dllver, 
-      "libpython2.2.so" & dllver, 
-      "libpython2.1.so" & dllver, 
-      "libpython2.0.so" & dllver,
-      "libpython1.6.so" & dllver, 
-      "libpython1.5.so" & dllver]
-  
-for libName in items(libNames): 
-  lib = loadLib(libName)
-  if lib != nil: break
-
-if lib == nil: quit("could not load python library")
-init(lib)
-
diff --git a/lib/wrappers/tcl.nim b/lib/wrappers/tcl.nim
deleted file mode 100644
index 8cd715838..000000000
--- a/lib/wrappers/tcl.nim
+++ /dev/null
@@ -1,865 +0,0 @@
-#
-#
-#            Nimrod's Runtime Library
-#        (c) Copyright 2010 Andreas Rumpf
-#
-#    See the file "copying.txt", included in this
-#    distribution, for details about the copyright.
-#
-
-## This module is a wrapper for the TCL programming language.
-
-#
-#  tcl.h --
-# 
-#  This header file describes the externally-visible facilities of the Tcl
-#  interpreter.
-# 
-#  Translated to Pascal Copyright (c) 2002 by Max Artemev
-#  aka Bert Raccoon (bert@furry.ru, bert_raccoon@freemail.ru)
-# 
-# 
-#  Copyright (c) 1998-2000 by Scriptics Corporation.
-#  Copyright (c) 1994-1998 Sun Microsystems, Inc.
-#  Copyright (c) 1993-1996 Lucent Technologies.
-#  Copyright (c) 1987-1994 John Ousterhout, The Regents of the
-#                          University of California, Berkeley.
-# 
-#  ***********************************************************************
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-#  ***********************************************************************
-# 
-
-{.deadCodeElim: on.}
-
-when defined(WIN32): 
-  const 
-    dllName = "tcl(85|84|83|82|81|80).dll"
-elif defined(macosx): 
-  const 
-    dllName = "libtcl(8.5|8.4|8.3|8.2|8.1).dylib"
-else: 
-  const 
-    dllName = "libtcl(8.5|8.4|8.3|8.2|8.1).so(|.1|.0)"
-const 
-  TCL_DESTROYED* = 0xDEADDEAD
-  TCL_OK* = 0
-  TCL_ERROR* = 1
-  TCL_RETURN* = 2
-  TCL_BREAK* = 3
-  TCL_CONTINUE* = 4
-  RESULT_SIZE* = 200
-  MAX_ARGV* = 0x00007FFF
-  VERSION_MAJOR* = 0
-  VERSION_MINOR* = 0
-  NO_EVAL* = 0x00010000
-  EVAL_GLOBAL* = 0x00020000 # Flag values passed to variable-related proc
-  GLOBAL_ONLY* = 1
-  NAMESPACE_ONLY* = 2
-  APPEND_VALUE* = 4
-  LIST_ELEMENT* = 8
-  TRACE_READS* = 0x00000010
-  TRACE_WRITES* = 0x00000020
-  TRACE_UNSETS* = 0x00000040
-  TRACE_DESTROYED* = 0x00000080
-  INTERP_DESTROYED* = 0x00000100
-  LEAVE_ERR_MSG* = 0x00000200
-  PARSE_PART1* = 0x00000400 # Types for linked variables: *
-  LINK_INT* = 1
-  LINK_DOUBLE* = 2
-  LINK_BOOLEAN* = 3
-  LINK_STRING* = 4
-  LINK_READ_ONLY* = 0x00000080
-  SMALL_HASH_TABLE* = 4   # Hash Table *
-  STRING_KEYS* = 0
-  ONE_WORD_KEYS* = 1      # Const/enums Tcl_QueuePosition *
-                          
-  QUEUE_TAIL* = 0
-  QUEUE_HEAD* = 1
-  QUEUE_MARK* = 2         # Tcl_QueuePosition;
-                          # Event Flags
-  DONT_WAIT* = 1 shl 1
-  WINDOW_EVENTS* = 1 shl 2
-  FILE_EVENTS* = 1 shl 3
-  TIMER_EVENTS* = 1 shl 4
-  IDLE_EVENTS* = 1 shl 5  # WAS 0x10 ???? *
-  ALL_EVENTS* = not DONT_WAIT
-  VOLATILE* = 1
-  TCL_STATIC* = 0
-  DYNAMIC* = 3            # Channel
-  TCL_STDIN* = 1 shl 1
-  TCL_STDOUT* = 1 shl 2
-  TCL_STDERR* = 1 shl 3
-  ENFORCE_MODE* = 1 shl 4
-  READABLE* = 1 shl 1
-  WRITABLE* = 1 shl 2
-  EXCEPTION* = 1 shl 3    # POSIX *
-  EPERM* = 1 # Operation not permitted; only the owner of the file (or other
-             # resource) or processes with special privileges can perform the
-             # operation.
-             #
-  ENOENT* = 2 # No such file or directory.  This is a "file doesn't exist" error
-              # for ordinary files that are referenced in contexts where they are
-              # expected to already exist.
-              #
-  ESRCH* = 3                  # No process matches the specified process ID. *
-  EINTR* = 4 # Interrupted function call; an asynchronous signal occurred and
-             # prevented completion of the call.  When this happens, you should
-             # try the call again.
-             #
-  EIO* = 5                    # Input/output error; usually used for physical read or write errors. *
-  ENXIO* = 6 # No such device or address.  The system tried to use the device
-             # represented by a file you specified, and it couldn't find the
-             # device.  This can mean that the device file was installed
-             # incorrectly, or that the physical device is missing or not
-             # correctly attached to the computer.
-             #
-  E2BIG* = 7 # Argument list too long; used when the arguments passed to a new
-             # program being executed with one of the `exec' functions (*note
-             # Executing a File::.) occupy too much memory space.  This condition
-             # never arises in the GNU system.
-             #
-  ENOEXEC* = 8 # Invalid executable file format.  This condition is detected by the
-               # `exec' functions; see *Note Executing a File::.
-               #
-  EBADF* = 9 # Bad file descriptor; for example, I/O on a descriptor that has been
-             # closed or reading from a descriptor open only for writing (or vice
-             # versa).
-             #
-  ECHILD* = 10 # There are no child processes.  This error happens on operations
-               # that are supposed to manipulate child processes, when there aren't
-               # any processes to manipulate.
-               #
-  EDEADLK* = 11 # Deadlock avoided; allocating a system resource would have resulted
-                # in a deadlock situation.  The system does not guarantee that it
-                # will notice all such situations.  This error means you got lucky
-                # and the system noticed; it might just hang.  *Note File Locks::,
-                # for an example.
-                #
-  ENOMEM* = 12 # No memory available.  The system cannot allocate more virtual
-               # memory because its capacity is full.
-               #
-  EACCES* = 13 # Permission denied; the file permissions do not allow the attempted
-               # operation.
-               #
-  EFAULT* = 14 # Bad address; an invalid pointer was detected.  In the GNU system,
-               # this error never happens; you get a signal instead.
-               #
-  ENOTBLK* = 15 # A file that isn't a block special file was given in a situation
-                # that requires one.  For example, trying to mount an ordinary file
-                # as a file system in Unix gives this error.
-                #
-  EBUSY* = 16 # Resource busy; a system resource that can't be shared is already
-              # in use.  For example, if you try to delete a file that is the root
-              # of a currently mounted filesystem, you get this error.
-              #
-  EEXIST* = 17 # File exists; an existing file was specified in a context where it
-               # only makes sense to specify a new file.
-               #
-  EXDEV* = 18 # An attempt to make an improper link across file systems was
-              # detected.  This happens not only when you use `link' (*note Hard
-              # Links::.) but also when you rename a file with `rename' (*note
-              # Renaming Files::.).
-              #
-  ENODEV* = 19 # The wrong type of device was given to a function that expects a
-               # particular sort of device.
-               #
-  ENOTDIR* = 20 # A file that isn't a directory was specified when a directory is
-                # required.
-                #
-  EISDIR* = 21 # File is a directory; you cannot open a directory for writing, or
-               # create or remove hard links to it.
-               #
-  EINVAL* = 22 # Invalid argument.  This is used to indicate various kinds of
-               # problems with passing the wrong argument to a library function.
-               #
-  EMFILE* = 24 # The current process has too many files open and can't open any
-               # more.  Duplicate descriptors do count toward this limit.
-               #
-               # In BSD and GNU, the number of open files is controlled by a
-               # resource limit that can usually be increased.  If you get this
-               # error, you might want to increase the `RLIMIT_NOFILE' limit or
-               # make it unlimited; *note Limits on Resources::..
-               #
-  ENFILE* = 23 # There are too many distinct file openings in the entire system.
-               # Note that any number of linked channels count as just one file
-               # opening; see *Note Linked Channels::.  This error never occurs in
-               # the GNU system.
-               #
-  ENOTTY* = 25 # Inappropriate I/O control operation, such as trying to set terminal
-               # modes on an ordinary file.
-               #
-  ETXTBSY* = 26 # An attempt to execute a file that is currently open for writing, or
-                # write to a file that is currently being executed.  Often using a
-                # debugger to run a program is considered having it open for writing
-                # and will cause this error.  (The name stands for "text file
-                # busy".)  This is not an error in the GNU system; the text is
-                # copied as necessary.
-                #
-  EFBIG* = 27 # File too big; the size of a file would be larger than allowed by
-              # the system.
-              #
-  ENOSPC* = 28 # No space left on device; write operation on a file failed because
-               # the disk is full.
-               #
-  ESPIPE* = 29                # Invalid seek operation (such as on a pipe).  *
-  EROFS* = 30                 # An attempt was made to modify something on a read-only file system.  *
-  EMLINK* = 31 # Too many links; the link count of a single file would become too
-               # large.  `rename' can cause this error if the file being renamed
-               # already has as many links as it can take (*note Renaming Files::.).
-               #
-  EPIPE* = 32 # Broken pipe; there is no process reading from the other end of a
-              # pipe.  Every library function that returns this error code also
-              # generates a `SIGPIPE' signal; this signal terminates the program
-              # if not handled or blocked.  Thus, your program will never actually
-              # see `EPIPE' unless it has handled or blocked `SIGPIPE'.
-              #
-  EDOM* = 33 # Domain error; used by mathematical functions when an argument
-             # value does not fall into the domain over which the function is
-             # defined.
-             #
-  ERANGE* = 34 # Range error; used by mathematical functions when the result value
-               # is not representable because of overflow or underflow.
-               #
-  EAGAIN* = 35 # Resource temporarily unavailable; the call might work if you try
-               # again later.  The macro `EWOULDBLOCK' is another name for `EAGAIN';
-               # they are always the same in the GNU C library.
-               #
-  EWOULDBLOCK* = EAGAIN # In the GNU C library, this is another name for `EAGAIN' (above).
-                        # The values are always the same, on every operating system.
-                        # C libraries in many older Unix systems have `EWOULDBLOCK' as a
-                        # separate error code.
-                        #
-  EINPROGRESS* = 36 # An operation that cannot complete immediately was initiated on an
-                    # object that has non-blocking mode selected.  Some functions that
-                    # must always block (such as `connect'; *note Connecting::.) never
-                    # return `EAGAIN'.  Instead, they return `EINPROGRESS' to indicate
-                    # that the operation has begun and will take some time.  Attempts to
-                    # manipulate the object before the call completes return `EALREADY'.
-                    # You can use the `select' function to find out when the pending
-                    # operation has completed; *note Waiting for I/O::..
-                    #
-  EALREADY* = 37 # An operation is already in progress on an object that has
-                 # non-blocking mode selected.
-                 #
-  ENOTSOCK* = 38              # A file that isn't a socket was specified when a socket is required.  *
-  EDESTADDRREQ* = 39 # No default destination address was set for the socket.  You get
-                     # this error when you try to transmit data over a connectionless
-                     # socket, without first specifying a destination for the data with
-                     # `connect'.
-                     #
-  EMSGSIZE* = 40 # The size of a message sent on a socket was larger than the
-                 # supported maximum size.
-                 #
-  EPROTOTYPE* = 41 # The socket type does not support the requested communications
-                   # protocol.
-                   #
-  ENOPROTOOPT* = 42 # You specified a socket option that doesn't make sense for the
-                    # particular protocol being used by the socket.  *Note Socket
-                    # Options::.
-                    #
-  EPROTONOSUPPORT* = 43 # The socket domain does not support the requested communications
-                        # protocol (perhaps because the requested protocol is completely
-                        # invalid.) *Note Creating a Socket::.
-                        #
-  ESOCKTNOSUPPORT* = 44       # The socket type is not supported.  *
-  EOPNOTSUPP* = 45 # The operation you requested is not supported.  Some socket
-                   # functions don't make sense for all types of sockets, and others
-                   # may not be implemented for all communications protocols.  In the
-                   # GNU system, this error can happen for many calls when the object
-                   # does not support the particular operation; it is a generic
-                   # indication that the server knows nothing to do for that call.
-                   #
-  EPFNOSUPPORT* = 46 # The socket communications protocol family you requested is not
-                     # supported.
-                     #
-  EAFNOSUPPORT* = 47 # The address family specified for a socket is not supported; it is
-                     # inconsistent with the protocol being used on the socket.  *Note
-                     # Sockets::.
-                     #
-  EADDRINUSE* = 48 # The requested socket address is already in use.  *Note Socket
-                   # Addresses::.
-                   #
-  EADDRNOTAVAIL* = 49 # The requested socket address is not available; for example, you
-                      # tried to give a socket a name that doesn't match the local host
-                      # name.  *Note Socket Addresses::.
-                      #
-  ENETDOWN* = 50              # A socket operation failed because the network was down.  *
-  ENETUNREACH* = 51 # A socket operation failed because the subnet containing the remote
-                    # host was unreachable.
-                    #
-  ENETRESET* = 52             # A network connection was reset because the remote host crashed.  *
-  ECONNABORTED* = 53          # A network connection was aborted locally. *
-  ECONNRESET* = 54 # A network connection was closed for reasons outside the control of
-                   # the local host, such as by the remote machine rebooting or an
-                   # unrecoverable protocol violation.
-                   #
-  ENOBUFS* = 55 # The kernel's buffers for I/O operations are all in use.  In GNU,
-                # this error is always synonymous with `ENOMEM'; you may get one or
-                # the other from network operations.
-                #
-  EISCONN* = 56 # You tried to connect a socket that is already connected.  *Note
-                # Connecting::.
-                #
-  ENOTCONN* = 57 # The socket is not connected to anything.  You get this error when
-                 # you try to transmit data over a socket, without first specifying a
-                 # destination for the data.  For a connectionless socket (for
-                 # datagram protocols, such as UDP), you get `EDESTADDRREQ' instead.
-                 #
-  ESHUTDOWN* = 58             # The socket has already been shut down.  *
-  ETOOMANYREFS* = 59          # ???  *
-  ETIMEDOUT* = 60 # A socket operation with a specified timeout received no response
-                  # during the timeout period.
-                  #
-  ECONNREFUSED* = 61 # A remote host refused to allow the network connection (typically
-                     # because it is not running the requested service).
-                     #
-  ELOOP* = 62 # Too many levels of symbolic links were encountered in looking up a
-              # file name.  This often indicates a cycle of symbolic links.
-              #
-  ENAMETOOLONG* = 63 # Filename too long (longer than `PATH_MAX'; *note Limits for
-                     # Files::.) or host name too long (in `gethostname' or
-                     # `sethostname'; *note Host Identification::.).
-                     #
-  EHOSTDOWN* = 64             # The remote host for a requested network connection is down.  *
-  EHOSTUNREACH* = 65 # The remote host for a requested network connection is not
-                     # reachable.
-                     #
-  ENOTEMPTY* = 66 # Directory not empty, where an empty directory was expected.
-                  # Typically, this error occurs when you are trying to delete a
-                  # directory.
-                  #
-  EPROCLIM* = 67 # This means that the per-user limit on new process would be
-                 # exceeded by an attempted `fork'.  *Note Limits on Resources::, for
-                 # details on the `RLIMIT_NPROC' limit.
-                 #
-  EUSERS* = 68                # The file quota system is confused because there are too many users.  *
-  EDQUOT* = 69                # The user's disk quota was exceeded.  *
-  ESTALE* = 70 # Stale NFS file handle.  This indicates an internal confusion in
-               # the NFS system which is due to file system rearrangements on the
-               # server host.  Repairing this condition usually requires unmounting
-               # and remounting the NFS file system on the local host.
-               #
-  EREMOTE* = 71 # An attempt was made to NFS-mount a remote file system with a file
-                # name that already specifies an NFS-mounted file.  (This is an
-                # error on some operating systems, but we expect it to work properly
-                # on the GNU system, making this error code impossible.)
-                #
-  EBADRPC* = 72               # ???  *
-  ERPCMISMATCH* = 73          # ???  *
-  EPROGUNAVAIL* = 74          # ???  *
-  EPROGMISMATCH* = 75         # ???  *
-  EPROCUNAVAIL* = 76          # ???  *
-  ENOLCK* = 77 # No locks available.  This is used by the file locking facilities;
-               # see *Note File Locks::.  This error is never generated by the GNU
-               # system, but it can result from an operation to an NFS server
-               # running another operating system.
-               #
-  ENOSYS* = 78 # Function not implemented.  Some functions have commands or options
-               # defined that might not be supported in all implementations, and
-               # this is the kind of error you get if you request them and they are
-               # not supported.
-               #
-  EFTYPE* = 79 # Inappropriate file type or format.  The file was the wrong type
-               # for the operation, or a data file had the wrong format.
-               # On some systems `chmod' returns this error if you try to set the
-               # sticky bit on a non-directory file; *note Setting Permissions::..
-               #
-
-type 
-  TArgv* = cstringArray
-  TClientData* = pointer
-  TFreeProc* = proc (theBlock: pointer){.cdecl.}
-  PInterp* = ptr TInterp
-  TInterp*{.final.} = object  #  Event Definitions
-    result*: cstring # Do not access this directly. Use
-                     # Tcl_GetStringResult since result
-                     # may be pointing to an object
-    freeProc*: TFreeProc
-    errorLine*: int
-
-  TEventSetupProc* = proc (clientData: TClientData, flags: int){.cdecl.}
-  TEventCheckProc* = TEventSetupProc
-  PEvent* = ptr TEvent
-  TEventProc* = proc (evPtr: PEvent, flags: int): int{.cdecl.}
-  TEvent*{.final.} = object 
-    prc*: TEventProc
-    nextPtr*: PEvent
-    ClientData*: TObject      # ClientData is just pointer.*
-  
-  PTime* = ptr TTime
-  TTime*{.final.} = object 
-    sec*: int32               # Seconds. * 
-    usec*: int32              # Microseconds. * 
-  
-  TTimerToken* = pointer
-  PInteger* = ptr int
-  PHashTable* = ptr THashTable
-  PHashEntry* = ptr THashEntry
-  PPHashEntry* = ptr PHashEntry
-  THashEntry*{.final.} = object 
-    nextPtr*: PHashEntry
-    tablePtr*: PHashTable
-    bucketPtr*: PPHashEntry
-    clientData*: TClientData
-    key*: cstring
-
-  THashFindProc* = proc (tablePtr: PHashTable, key: cstring): PHashEntry{.
-      cdecl.}
-  THashCreateProc* = proc (tablePtr: PHashTable, key: cstring, 
-                              newPtr: PInteger): PHashEntry{.cdecl.}
-  THashTable*{.final.} = object 
-    buckets*: ppHashEntry
-    staticBuckets*: array[0..SMALL_HASH_TABLE - 1, PHashEntry]
-    numBuckets*: int
-    numEntries*: int
-    rebuildSize*: int
-    downShift*: int
-    mask*: int
-    keyType*: int
-    findProc*: THashFindProc
-    createProc*: THashCreateProc
-
-  PHashSearch* = ptr THashSearch
-  THashSearch*{.final.} = object 
-    tablePtr*: PHashTable
-    nextIndex*: int
-    nextEntryPtr*: PHashEntry
-
-  TAppInitProc* = proc (interp: pInterp): int{.cdecl.}
-  TPackageInitProc* = proc (interp: pInterp): int{.cdecl.}
-  TCmdProc* = proc (clientData: TClientData, interp: pInterp, argc: int, 
-                    argv: TArgv): int{.cdecl.}
-  TVarTraceProc* = proc (clientData: TClientData, interp: pInterp, 
-                         varName: cstring, elemName: cstring, flags: int): cstring{.
-      cdecl.}
-  TInterpDeleteProc* = proc (clientData: TClientData, interp: pInterp){.cdecl.}
-  TCmdDeleteProc* = proc (clientData: TClientData){.cdecl.}
-  TNamespaceDeleteProc* = proc (clientData: TClientData){.cdecl.}
-
-const 
-  DSTRING_STATIC_SIZE* = 200
-
-type 
-  PDString* = ptr TDString
-  TDString*{.final.} = object 
-    str*: cstring
-    len*: int
-    spaceAvl*: int
-    staticSpace*: array[0..DSTRING_STATIC_SIZE - 1, char]
-
-  PChannel* = ptr TChannel
-  TChannel*{.final.} = object 
-  TDriverBlockModeProc* = proc (instanceData: TClientData, mode: int): int{.
-      cdecl.}
-  TDriverCloseProc* = proc (instanceData: TClientData, interp: PInterp): int{.
-      cdecl.}
-  TDriverInputProc* = proc (instanceData: TClientData, buf: cstring, 
-                            toRead: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverOutputProc* = proc (instanceData: TClientData, buf: cstring, 
-                             toWrite: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverSeekProc* = proc (instanceData: TClientData, offset: int32, 
-                           mode: int, errorCodePtr: PInteger): int{.cdecl.}
-  TDriverSetOptionProc* = proc (instanceData: TClientData, interp: PInterp, 
-                                optionName: cstring, value: cstring): int{.cdecl.}
-  TDriverGetOptionProc* = proc (instanceData: TClientData, interp: pInterp, 
-                                optionName: cstring, dsPtr: PDString): int{.
-      cdecl.}
-  TDriverWatchProc* = proc (instanceData: TClientData, mask: int){.cdecl.}
-  TDriverGetHandleProc* = proc (instanceData: TClientData, direction: int, 
-                                handlePtr: var TClientData): int{.cdecl.}
-  PChannelType* = ptr TChannelType
-  TChannelType*{.final.} = object 
-    typeName*: cstring
-    blockModeProc*: TDriverBlockModeProc
-    closeProc*: TDriverCloseProc
-    inputProc*: TDriverInputProc
-    ouputProc*: TDriverOutputProc
-    seekProc*: TDriverSeekProc
-    setOptionProc*: TDriverSetOptionProc
-    getOptionProc*: TDriverGetOptionProc
-    watchProc*: TDriverWatchProc
-    getHandleProc*: TDriverGetHandleProc
-
-  TChannelProc* = proc (clientData: TClientData, mask: int){.cdecl.}
-  PObj* = ptr TObj
-  PPObj* = ptr PObj
-  TObj*{.final.} = object 
-    refCount*: int            # ...
-  
-  TObjCmdProc* = proc (clientData: TClientData, interp: PInterp, objc: int, 
-                       PPObj: PPObj): int{.cdecl.}
-  PNamespace* = ptr TNamespace
-  TNamespace*{.final.} = object 
-    name*: cstring
-    fullName*: cstring
-    clientData*: TClientData
-    deleteProc*: TNamespaceDeleteProc
-    parentPtr*: PNamespace
-
-  PCallFrame* = ptr TCallFrame
-  TCallFrame*{.final.} = object 
-    nsPtr*: PNamespace
-    dummy1*: int
-    dummy2*: int
-    dummy3*: cstring
-    dummy4*: cstring
-    dummy5*: cstring
-    dummy6*: int
-    dummy7*: cstring
-    dummy8*: cstring
-    dummy9*: int
-    dummy10*: cstring
-
-  PCmdInfo* = ptr TCmdInfo
-  TCmdInfo*{.final.} = object 
-    isNativeObjectProc*: int
-    objProc*: TObjCmdProc
-    objClientData*: TClientData
-    prc*: TCmdProc
-    clientData*: TClientData
-    deleteProc*: TCmdDeleteProc
-    deleteData*: TClientData
-    namespacePtr*: pNamespace
-
-  pCommand* = ptr TCommand
-  TCommand*{.final.} = object     #       hPtr            : pTcl_HashEntry;
-                                  #        nsPtr           : pTcl_Namespace;
-                                  #        refCount        : integer;
-                                  #        isCmdEpoch      : integer;
-                                  #        compileProc     : pointer;
-                                  #        objProc         : pointer;
-                                  #        objClientData   : Tcl_ClientData;
-                                  #        proc            : pointer;
-                                  #        clientData      : Tcl_ClientData;
-                                  #        deleteProc      : TTclCmdDeleteProc;
-                                  #        deleteData      : Tcl_ClientData;
-                                  #        deleted         : integer;
-                                  #        importRefPtr    : pointer;
-                                  #
-
-type 
-  TPanicProc* = proc (fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8: cstring){.
-      cdecl.}                 # 1/15/97 orig. Tcl style
-  TClientDataProc* = proc (clientData: TClientData){.cdecl.}
-  TIdleProc* = proc (clientData: TClientData){.cdecl.}
-  TTimerProc* = TIdleProc
-  TCreateCloseHandler* = proc (channel: pChannel, prc: TClientDataProc, 
-                               clientData: TClientData){.cdecl.}
-  TDeleteCloseHandler* = TCreateCloseHandler
-  TEventDeleteProc* = proc (evPtr: pEvent, clientData: TClientData): int{.
-      cdecl.}
-
-proc Alloc*(size: int): cstring{.cdecl, dynlib: dllName, 
-                                     importc: "Tcl_Alloc".}
-proc CreateInterp*(): pInterp{.cdecl, dynlib: dllName, 
-                                   importc: "Tcl_CreateInterp".}
-proc DeleteInterp*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteInterp".}
-proc ResetResult*(interp: pInterp){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_ResetResult".}
-proc Eval*(interp: pInterp, script: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Eval".}
-proc EvalFile*(interp: pInterp, filename: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_EvalFile".}
-proc AddErrorInfo*(interp: pInterp, message: cstring){.cdecl, 
-    dynlib: dllName, importc: "Tcl_AddErrorInfo".}
-proc BackgroundError*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_BackgroundError".}
-proc CreateCommand*(interp: pInterp, name: cstring, cmdProc: TCmdProc, 
-                        clientData: TClientData, deleteProc: TCmdDeleteProc): pCommand{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateCommand".}
-proc DeleteCommand*(interp: pInterp, name: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteCommand".}
-proc CallWhenDeleted*(interp: pInterp, prc: TInterpDeleteProc, 
-                          clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_CallWhenDeleted".}
-proc DontCallWhenDeleted*(interp: pInterp, prc: TInterpDeleteProc, 
-                              clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DontCallWhenDeleted".}
-proc CommandComplete*(cmd: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_CommandComplete".}
-proc LinkVar*(interp: pInterp, varName: cstring, varAddr: pointer, typ: int): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_LinkVar".}
-proc UnlinkVar*(interp: pInterp, varName: cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_UnlinkVar".}
-proc TraceVar*(interp: pInterp, varName: cstring, flags: int, 
-                   prc: TVarTraceProc, clientData: TClientData): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_TraceVar".}
-proc TraceVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                    flags: int, prc: TVarTraceProc, clientData: TClientData): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_TraceVar2".}
-proc UntraceVar*(interp: pInterp, varName: cstring, flags: int, 
-                     prc: TVarTraceProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_UntraceVar".}
-proc UntraceVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                      flags: int, prc: TVarTraceProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_UntraceVar2".}
-proc GetVar*(interp: pInterp, varName: cstring, flags: int): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetVar".}
-proc GetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                  flags: int): cstring{.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_GetVar2".}
-proc SetVar*(interp: pInterp, varName: cstring, newValue: cstring, 
-                 flags: int): cstring{.cdecl, dynlib: dllName, 
-                                       importc: "Tcl_SetVar".}
-proc SetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                  newValue: cstring, flags: int): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_SetVar2".}
-proc UnsetVar*(interp: pInterp, varName: cstring, flags: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_UnsetVar".}
-proc UnsetVar2*(interp: pInterp, varName: cstring, elemName: cstring, 
-                    flags: int): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_UnsetVar2".}
-proc SetResult*(interp: pInterp, newValue: cstring, freeProc: TFreeProc){.
-    cdecl, dynlib: dllName, importc: "Tcl_SetResult".}
-proc FirstHashEntry*(hashTbl: pHashTable, searchInfo: var THashSearch): pHashEntry{.
-    cdecl, dynlib: dllName, importc: "Tcl_FirstHashEntry".}
-proc NextHashEntry*(searchInfo: var THashSearch): pHashEntry{.cdecl, 
-    dynlib: dllName, importc: "Tcl_NextHashEntry".}
-proc InitHashTable*(hashTbl: pHashTable, keyType: int){.cdecl, 
-    dynlib: dllName, importc: "Tcl_InitHashTable".}
-proc StringMatch*(str: cstring, pattern: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_StringMatch".}
-proc GetErrno*(): int{.cdecl, dynlib: dllName, importc: "Tcl_GetErrno".}
-proc SetErrno*(val: int){.cdecl, dynlib: dllName, importc: "Tcl_SetErrno".}
-proc SetPanicProc*(prc: TPanicProc){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetPanicProc".}
-proc PkgProvide*(interp: pInterp, name: cstring, version: cstring): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_PkgProvide".}
-proc StaticPackage*(interp: pInterp, pkgName: cstring, 
-                        initProc: TPackageInitProc, 
-                        safeInitProc: TPackageInitProc){.cdecl, dynlib: dllName, 
-    importc: "Tcl_StaticPackage".}
-proc CreateEventSource*(setupProc: TEventSetupProc, 
-                            checkProc: TEventCheckProc, 
-                            clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_CreateEventSource".}
-proc DeleteEventSource*(setupProc: TEventSetupProc, 
-                            checkProc: TEventCheckProc, 
-                            clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteEventSource".}
-proc QueueEvent*(evPtr: pEvent, pos: int){.cdecl, dynlib: dllName, 
-    importc: "Tcl_QueueEvent".}
-proc SetMaxBlockTime*(timePtr: pTime){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetMaxBlockTime".}
-proc DeleteEvents*(prc: TEventDeleteProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_DeleteEvents".}
-proc DoOneEvent*(flags: int): int{.cdecl, dynlib: dllName, 
-                                       importc: "Tcl_DoOneEvent".}
-proc DoWhenIdle*(prc: TIdleProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DoWhenIdle".}
-proc CancelIdleCall*(prc: TIdleProc, clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_CancelIdleCall".}
-proc CreateTimerHandler*(milliseconds: int, prc: TTimerProc, 
-                             clientData: TClientData): TTimerToken{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateTimerHandler".}
-proc DeleteTimerHandler*(token: TTimerToken){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteTimerHandler".}
-  #    procedure Tcl_CreateModalTimeout(milliseconds: integer; prc: TTclTimerProc; clientData: Tcl_ClientData); cdecl; external dllName;
-  #    procedure Tcl_DeleteModalTimeout(prc: TTclTimerProc; clientData: Tcl_ClientData); cdecl; external dllName;
-proc SplitList*(interp: pInterp, list: cstring, argcPtr: var int, 
-                    argvPtr: var TArgv): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SplitList".}
-proc Merge*(argc: int, argv: TArgv): cstring{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Merge".}
-proc Free*(p: cstring){.cdecl, dynlib: dllName, importc: "Tcl_Free".}
-proc Init*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_Init".}
-  #    procedure Tcl_InterpDeleteProc(clientData: Tcl_ClientData; interp: pTcl_Interp); cdecl; external dllName;
-proc GetAssocData*(interp: pInterp, key: cstring, prc: var TInterpDeleteProc): TClientData{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetAssocData".}
-proc DeleteAssocData*(interp: pInterp, key: cstring){.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteAssocData".}
-proc SetAssocData*(interp: pInterp, key: cstring, prc: TInterpDeleteProc, 
-                       clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetAssocData".}
-proc IsSafe*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_IsSafe".}
-proc MakeSafe*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_MakeSafe".}
-proc CreateSlave*(interp: pInterp, slaveName: cstring, isSafe: int): pInterp{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateSlave".}
-proc GetSlave*(interp: pInterp, slaveName: cstring): pInterp{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetSlave".}
-proc GetMaster*(interp: pInterp): pInterp{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetMaster".}
-proc GetInterpPath*(askingInterp: pInterp, slaveInterp: pInterp): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetInterpPath".}
-proc CreateAlias*(slaveInterp: pInterp, srcCmd: cstring, 
-                      targetInterp: pInterp, targetCmd: cstring, argc: int, 
-                      argv: TArgv): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_CreateAlias".}
-proc GetAlias*(interp: pInterp, srcCmd: cstring, targetInterp: var pInterp, 
-                   targetCmd: var cstring, argc: var int, argv: var TArgv): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetAlias".}
-proc ExposeCommand*(interp: pInterp, hiddenCmdName: cstring, 
-                        cmdName: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_ExposeCommand".}
-proc HideCommand*(interp: pInterp, cmdName: cstring, hiddenCmdName: cstring): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_HideCommand".}
-proc EventuallyFree*(clientData: TClientData, freeProc: TFreeProc){.
-    cdecl, dynlib: dllName, importc: "Tcl_EventuallyFree".}
-proc Preserve*(clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_Preserve".}
-proc Release*(clientData: TClientData){.cdecl, dynlib: dllName, 
-    importc: "Tcl_Release".}
-proc InterpDeleted*(interp: pInterp): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_InterpDeleted".}
-proc GetCommandInfo*(interp: pInterp, cmdName: cstring, 
-                         info: var TCmdInfo): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetCommandInfo".}
-proc SetCommandInfo*(interp: pInterp, cmdName: cstring, 
-                         info: var TCmdInfo): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetCommandInfo".}
-proc FindExecutable*(path: cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_FindExecutable".}
-proc GetStringResult*(interp: pInterp): cstring{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetStringResult".}
-  #v1.0
-proc FindCommand*(interp: pInterp, cmdName: cstring, 
-                      contextNsPtr: pNamespace, flags: int): TCommand{.cdecl, 
-    dynlib: dllName, importc: "Tcl_FindCommand".}
-  #v1.0
-proc DeleteCommandFromToken*(interp: pInterp, cmd: pCommand): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DeleteCommandFromToken".}
-proc CreateNamespace*(interp: pInterp, name: cstring, 
-                          clientData: TClientData, 
-                          deleteProc: TNamespaceDeleteProc): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateNamespace".}
-  #v1.0
-proc DeleteNamespace*(namespacePtr: pNamespace){.cdecl, dynlib: dllName, 
-    importc: "Tcl_DeleteNamespace".}
-proc FindNamespace*(interp: pInterp, name: cstring, 
-                        contextNsPtr: pNamespace, flags: int): pNamespace{.
-    cdecl, dynlib: dllName, importc: "Tcl_FindNamespace".}
-proc Tcl_Export*(interp: pInterp, namespacePtr: pNamespace, pattern: cstring, 
-                 resetListFirst: int): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Export".}
-proc Tcl_Import*(interp: pInterp, namespacePtr: pNamespace, pattern: cstring, 
-                 allowOverwrite: int): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Import".}
-proc GetCurrentNamespace*(interp: pInterp): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetCurrentNamespace".}
-proc GetGlobalNamespace*(interp: pInterp): pNamespace{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetGlobalNamespace".}
-proc PushCallFrame*(interp: pInterp, callFramePtr: var TCallFrame, 
-                        namespacePtr: pNamespace, isProcCallFrame: int): int{.
-    cdecl, dynlib: dllName, importc: "Tcl_PushCallFrame".}
-proc PopCallFrame*(interp: pInterp){.cdecl, dynlib: dllName, 
-    importc: "Tcl_PopCallFrame".}
-proc VarEval*(interp: pInterp): int{.cdecl, varargs, dynlib: dllName, 
-    importc: "Tcl_VarEval".}
-  # For TkConsole.c *
-proc RecordAndEval*(interp: pInterp, cmd: cstring, flags: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_RecordAndEval".}
-proc GlobalEval*(interp: pInterp, command: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GlobalEval".}
-proc DStringFree*(dsPtr: pDString){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_DStringFree".}
-proc DStringAppend*(dsPtr: pDString, str: cstring, length: int): cstring{.
-    cdecl, dynlib: dllName, importc: "Tcl_DStringAppend".}
-proc DStringAppendElement*(dsPtr: pDString, str: cstring): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_DStringAppendElement".}
-proc DStringInit*(dsPtr: pDString){.cdecl, dynlib: dllName, 
-                                        importc: "Tcl_DStringInit".}
-proc AppendResult*(interp: pInterp){.cdecl, varargs, dynlib: dllName, 
-    importc: "Tcl_AppendResult".}
-  # actually a "C" var array
-proc SetStdChannel*(channel: pChannel, typ: int){.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetStdChannel".}
-proc SetChannelOption*(interp: pInterp, chan: pChannel, optionName: cstring, 
-                           newValue: cstring): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_SetChannelOption".}
-proc GetChannelOption*(interp: pInterp, chan: pChannel, optionName: cstring, 
-                           dsPtr: pDString): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetChannelOption".}
-proc CreateChannel*(typePtr: pChannelType, chanName: cstring, 
-                        instanceData: TClientData, mask: int): pChannel{.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateChannel".}
-proc RegisterChannel*(interp: pInterp, channel: pChannel){.cdecl, 
-    dynlib: dllName, importc: "Tcl_RegisterChannel".}
-proc UnregisterChannel*(interp: pInterp, channel: pChannel): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_UnregisterChannel".}
-proc CreateChannelHandler*(chan: pChannel, mask: int, prc: TChannelProc, 
-                               clientData: TClientData){.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateChannelHandler".}
-proc GetChannel*(interp: pInterp, chanName: cstring, modePtr: pInteger): pChannel{.
-    cdecl, dynlib: dllName, importc: "Tcl_GetChannel".}
-proc GetStdChannel*(typ: int): pChannel{.cdecl, dynlib: dllName, 
-    importc: "Tcl_GetStdChannel".}
-proc Gets*(chan: pChannel, dsPtr: pDString): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_Gets".}
-proc Write*(chan: pChannel, s: cstring, slen: int): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_Write".}
-proc Flush*(chan: pChannel): int{.cdecl, dynlib: dllName, 
-                                      importc: "Tcl_Flush".}
-  #    TclWinLoadLibrary      = function(name: PChar): HMODULE; cdecl; external dllName;
-proc CreateExitHandler*(prc: TClientDataProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_CreateExitHandler".}
-proc DeleteExitHandler*(prc: TClientDataProc, clientData: TClientData){.
-    cdecl, dynlib: dllName, importc: "Tcl_DeleteExitHandler".}
-proc GetStringFromObj*(pObj: pObj, pLen: pInteger): cstring{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GetStringFromObj".}
-proc CreateObjCommand*(interp: pInterp, name: cstring, cmdProc: TObjCmdProc, 
-                           clientData: TClientData, 
-                           deleteProc: TCmdDeleteProc): pCommand{.cdecl, 
-    dynlib: dllName, importc: "Tcl_CreateObjCommand".}
-proc NewStringObj*(bytes: cstring, length: int): pObj{.cdecl, 
-    dynlib: dllName, importc: "Tcl_NewStringObj".}
-  #    procedure TclFreeObj(pObj: pTcl_Obj); cdecl; external dllName;
-proc EvalObj*(interp: pInterp, pObj: pObj): int{.cdecl, dynlib: dllName, 
-    importc: "Tcl_EvalObj".}
-proc GlobalEvalObj*(interp: pInterp, pObj: pObj): int{.cdecl, 
-    dynlib: dllName, importc: "Tcl_GlobalEvalObj".}
-proc RegComp*(exp: cstring): pointer{.cdecl, dynlib: dllName, 
-    importc: "TclRegComp".}
-
-proc RegExec*(prog: pointer, str: cstring, start: cstring): int{.cdecl, 
-    dynlib: dllName, importc: "TclRegExec".}
-
-proc RegError*(msg: cstring){.cdecl, dynlib: dllName, importc: "TclRegError".}
-
-proc GetRegError*(): cstring{.cdecl, dynlib: dllName, 
-                              importc: "TclGetRegError".}
-
-proc RegExpRange*(prog: pointer, index: int, head: var cstring, 
-                      tail: var cstring){.cdecl, dynlib: dllName, 
-    importc: "Tcl_RegExpRange".}
-    
-proc GetCommandTable*(interp: pInterp): pHashTable = 
-  if interp != nil: 
-    result = cast[pHashTable](cast[int](interp) + sizeof(Interp) +
-        sizeof(pointer))
-
-proc CreateHashEntry*(tablePtr: pHashTable, key: cstring, 
-                      newPtr: pInteger): pHashEntry = 
-  result = cast[pHashTable](tablePtr).createProc(tablePtr, key, newPtr)
-
-proc FindHashEntry*(tablePtr: pHashTable, key: cstring): pHashEntry = 
-  result = cast[pHashTable](tablePtr).findProc(tablePtr, key)
-
-proc SetHashValue*(h: pHashEntry, clientData: TClientData) = 
-  h.clientData = clientData
-
-proc GetHashValue*(h: pHashEntry): TClientData = 
-  result = h.clientData
-
-proc IncrRefCount*(pObj: pObj) = 
-  inc(pObj.refCount)
-
-proc DecrRefCount*(pObj: pObj) = 
-  dec(pObj.refCount)
-  if pObj.refCount <= 0: 
-    dealloc(pObj)
-
-proc IsShared*(pObj: pObj): bool = 
-  return pObj.refCount > 1
-
-proc GetHashKey*(hashTbl: pHashTable, hashEntry: pHashEntry): cstring = 
-  if hashTbl == nil or hashEntry == nil: 
-    result = nil
-  else: 
-    result = hashEntry.key
diff --git a/lib/wrappers/x11/cursorfont.nim b/lib/wrappers/x11/cursorfont.nim
deleted file mode 100644
index b262ad7c1..000000000
--- a/lib/wrappers/x11/cursorfont.nim
+++ /dev/null
@@ -1,110 +0,0 @@
-# $Xorg: cursorfont.h,v 1.4 2001/02/09 02:03:39 xorgcvs Exp $ 
-#
-#
-#Copyright 1987, 1998  The Open Group
-#
-#Permission to use, copy, modify, distribute, and sell this software and its
-#documentation for any purpose is hereby granted without fee, provided that
-#the above copyright notice appear in all copies and that both that
-#copyright notice and this permission notice appear in supporting
-#documentation.
-#
-#The above copyright notice and this permission notice shall be included
-#in all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-#OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-#IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-#OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of The Open Group shall
-#not be used in advertising or otherwise to promote the sale, use or
-#other dealings in this Software without prior written authorization
-#from The Open Group.
-#
-#
-
-const 
-  XC_num_glyphs* = 154
-  XC_X_cursor* = 0
-  XC_arrow* = 2
-  XC_based_arrow_down* = 4
-  XC_based_arrow_up* = 6
-  XC_boat* = 8
-  XC_bogosity* = 10
-  XC_bottom_left_corner* = 12
-  XC_bottom_right_corner* = 14
-  XC_bottom_side* = 16
-  XC_bottom_tee* = 18
-  XC_box_spiral* = 20
-  XC_center_ptr* = 22
-  XC_circle* = 24
-  XC_clock* = 26
-  XC_coffee_mug* = 28
-  XC_cross* = 30
-  XC_cross_reverse* = 32
-  XC_crosshair* = 34
-  XC_diamond_cross* = 36
-  XC_dot* = 38
-  XC_dotbox* = 40
-  XC_double_arrow* = 42
-  XC_draft_large* = 44
-  XC_draft_small* = 46
-  XC_draped_box* = 48
-  XC_exchange* = 50
-  XC_fleur* = 52
-  XC_gobbler* = 54
-  XC_gumby* = 56
-  XC_hand1* = 58
-  XC_hand2* = 60
-  XC_heart* = 62
-  XC_icon* = 64
-  XC_iron_cross* = 66
-  XC_left_ptr* = 68
-  XC_left_side* = 70
-  XC_left_tee* = 72
-  XC_leftbutton* = 74
-  XC_ll_angle* = 76
-  XC_lr_angle* = 78
-  XC_man* = 80
-  XC_middlebutton* = 82
-  XC_mouse* = 84
-  XC_pencil* = 86
-  XC_pirate* = 88
-  XC_plus* = 90
-  XC_question_arrow* = 92
-  XC_right_ptr* = 94
-  XC_right_side* = 96
-  XC_right_tee* = 98
-  XC_rightbutton* = 100
-  XC_rtl_logo* = 102
-  XC_sailboat* = 104
-  XC_sb_down_arrow* = 106
-  XC_sb_h_double_arrow* = 108
-  XC_sb_left_arrow* = 110
-  XC_sb_right_arrow* = 112
-  XC_sb_up_arrow* = 114
-  XC_sb_v_double_arrow* = 116
-  XC_shuttle* = 118
-  XC_sizing* = 120
-  XC_spider* = 122
-  XC_spraycan* = 124
-  XC_star* = 126
-  XC_target* = 128
-  XC_tcross* = 130
-  XC_top_left_arrow* = 132
-  XC_top_left_corner* = 134
-  XC_top_right_corner* = 136
-  XC_top_side* = 138
-  XC_top_tee* = 140
-  XC_trek* = 142
-  XC_ul_angle* = 144
-  XC_umbrella* = 146
-  XC_ur_angle* = 148
-  XC_watch* = 150
-  XC_xterm* = 152
-
-# implementation
diff --git a/lib/wrappers/x11/keysym.nim b/lib/wrappers/x11/keysym.nim
deleted file mode 100644
index b1fe13b80..000000000
--- a/lib/wrappers/x11/keysym.nim
+++ /dev/null
@@ -1,1925 +0,0 @@
-#
-#Converted from X11/keysym.h and X11/keysymdef.h
-#
-#Capital letter consts renamed from XK_... to XKc_...
-# (since Pascal isn't case-sensitive)
-#
-#i.e.
-#C      Pascal
-#XK_a   XK_a
-#XK_A   XKc_A
-#
-
-#* default keysyms *
-
-const 
-  XK_VoidSymbol* = 0x00FFFFFF # void symbol 
-
-when defined(XK_MISCELLANY) or true: 
-  const
-    #*
-    # * TTY Functions, cleverly chosen to map to ascii, for convenience of
-    # * programming, but could have been arbitrary (at the cost of lookup
-    # * tables in client code.
-    # *
-    XK_BackSpace* = 0x0000FF08  # back space, back char 
-    XK_Tab* = 0x0000FF09
-    XK_Linefeed* = 0x0000FF0A   # Linefeed, LF 
-    XK_Clear* = 0x0000FF0B
-    XK_Return* = 0x0000FF0D     # Return, enter 
-    XK_Pause* = 0x0000FF13      # Pause, hold 
-    XK_Scroll_Lock* = 0x0000FF14
-    XK_Sys_Req* = 0x0000FF15
-    XK_Escape* = 0x0000FF1B
-    XK_Delete* = 0x0000FFFF     # Delete, rubout 
-                                # International & multi-key character composition 
-    XK_Multi_key* = 0x0000FF20  # Multi-key character compose 
-    XK_Codeinput* = 0x0000FF37
-    XK_SingleCandidate* = 0x0000FF3C
-    XK_MultipleCandidate* = 0x0000FF3D
-    XK_PreviousCandidate* = 0x0000FF3E # Japanese keyboard support 
-    XK_Kanji* = 0x0000FF21      # Kanji, Kanji convert 
-    XK_Muhenkan* = 0x0000FF22   # Cancel Conversion 
-    XK_Henkan_Mode* = 0x0000FF23 # Start/Stop Conversion 
-    XK_Henkan* = 0x0000FF23     # Alias for Henkan_Mode 
-    XK_Romaji* = 0x0000FF24     # to Romaji 
-    XK_Hiragana* = 0x0000FF25   # to Hiragana 
-    XK_Katakana* = 0x0000FF26   # to Katakana 
-    XK_Hiragana_Katakana* = 0x0000FF27 # Hiragana/Katakana toggle 
-    XK_Zenkaku* = 0x0000FF28    # to Zenkaku 
-    XK_Hankaku* = 0x0000FF29    # to Hankaku 
-    XK_Zenkaku_Hankaku* = 0x0000FF2A # Zenkaku/Hankaku toggle 
-    XK_Touroku* = 0x0000FF2B    # Add to Dictionary 
-    XK_Massyo* = 0x0000FF2C     # Delete from Dictionary 
-    XK_Kana_Lock* = 0x0000FF2D  # Kana Lock 
-    XK_Kana_Shift* = 0x0000FF2E # Kana Shift 
-    XK_Eisu_Shift* = 0x0000FF2F # Alphanumeric Shift 
-    XK_Eisu_toggle* = 0x0000FF30 # Alphanumeric toggle 
-    XK_Kanji_Bangou* = 0x0000FF37 # Codeinput 
-    XK_Zen_Koho* = 0x0000FF3D   # Multiple/All Candidate(s) 
-    XK_Mae_Koho* = 0x0000FF3E   # Previous Candidate 
-                                # = $FF31 thru = $FF3F are under XK_KOREAN 
-                                # Cursor control & motion 
-    XK_Home* = 0x0000FF50
-    XK_Left* = 0x0000FF51       # Move left, left arrow 
-    XK_Up* = 0x0000FF52         # Move up, up arrow 
-    XK_Right* = 0x0000FF53      # Move right, right arrow 
-    XK_Down* = 0x0000FF54       # Move down, down arrow 
-    XK_Prior* = 0x0000FF55      # Prior, previous 
-    XK_Page_Up* = 0x0000FF55
-    XK_Next* = 0x0000FF56       # Next 
-    XK_Page_Down* = 0x0000FF56
-    XK_End* = 0x0000FF57        # EOL 
-    XK_Begin* = 0x0000FF58      # BOL 
-                                # Misc Functions 
-    XK_Select* = 0x0000FF60     # Select, mark 
-    XK_Print* = 0x0000FF61
-    XK_Execute* = 0x0000FF62    # Execute, run, do 
-    XK_Insert* = 0x0000FF63     # Insert, insert here 
-    XK_Undo* = 0x0000FF65       # Undo, oops 
-    XK_Redo* = 0x0000FF66       # redo, again 
-    XK_Menu* = 0x0000FF67
-    XK_Find* = 0x0000FF68       # Find, search 
-    XK_Cancel* = 0x0000FF69     # Cancel, stop, abort, exit 
-    XK_Help* = 0x0000FF6A       # Help 
-    XK_Break* = 0x0000FF6B
-    XK_Mode_switch* = 0x0000FF7E # Character set switch 
-    XK_script_switch* = 0x0000FF7E # Alias for mode_switch 
-    XK_Num_Lock* = 0x0000FF7F   # Keypad Functions, keypad numbers cleverly chosen to map to ascii 
-    XK_KP_Space* = 0x0000FF80   # space 
-    XK_KP_Tab* = 0x0000FF89
-    XK_KP_Enter* = 0x0000FF8D   # enter 
-    XK_KP_F1* = 0x0000FF91      # PF1, KP_A, ... 
-    XK_KP_F2* = 0x0000FF92
-    XK_KP_F3* = 0x0000FF93
-    XK_KP_F4* = 0x0000FF94
-    XK_KP_Home* = 0x0000FF95
-    XK_KP_Left* = 0x0000FF96
-    XK_KP_Up* = 0x0000FF97
-    XK_KP_Right* = 0x0000FF98
-    XK_KP_Down* = 0x0000FF99
-    XK_KP_Prior* = 0x0000FF9A
-    XK_KP_Page_Up* = 0x0000FF9A
-    XK_KP_Next* = 0x0000FF9B
-    XK_KP_Page_Down* = 0x0000FF9B
-    XK_KP_End* = 0x0000FF9C
-    XK_KP_Begin* = 0x0000FF9D
-    XK_KP_Insert* = 0x0000FF9E
-    XK_KP_Delete* = 0x0000FF9F
-    XK_KP_Equal* = 0x0000FFBD   # equals 
-    XK_KP_Multiply* = 0x0000FFAA
-    XK_KP_Add* = 0x0000FFAB
-    XK_KP_Separator* = 0x0000FFAC # separator, often comma 
-    XK_KP_Subtract* = 0x0000FFAD
-    XK_KP_Decimal* = 0x0000FFAE
-    XK_KP_Divide* = 0x0000FFAF
-    XK_KP_0* = 0x0000FFB0
-    XK_KP_1* = 0x0000FFB1
-    XK_KP_2* = 0x0000FFB2
-    XK_KP_3* = 0x0000FFB3
-    XK_KP_4* = 0x0000FFB4
-    XK_KP_5* = 0x0000FFB5
-    XK_KP_6* = 0x0000FFB6
-    XK_KP_7* = 0x0000FFB7
-    XK_KP_8* = 0x0000FFB8
-    XK_KP_9* = 0x0000FFB9 #*
-                          # * Auxilliary Functions; note the duplicate definitions for left and right
-                          # * function keys;  Sun keyboards and a few other manufactures have such
-                          # * function key groups on the left and/or right sides of the keyboard.
-                          # * We've not found a keyboard with more than 35 function keys total.
-                          # *
-    XK_F1* = 0x0000FFBE
-    XK_F2* = 0x0000FFBF
-    XK_F3* = 0x0000FFC0
-    XK_F4* = 0x0000FFC1
-    XK_F5* = 0x0000FFC2
-    XK_F6* = 0x0000FFC3
-    XK_F7* = 0x0000FFC4
-    XK_F8* = 0x0000FFC5
-    XK_F9* = 0x0000FFC6
-    XK_F10* = 0x0000FFC7
-    XK_F11* = 0x0000FFC8
-    XK_L1* = 0x0000FFC8
-    XK_F12* = 0x0000FFC9
-    XK_L2* = 0x0000FFC9
-    XK_F13* = 0x0000FFCA
-    XK_L3* = 0x0000FFCA
-    XK_F14* = 0x0000FFCB
-    XK_L4* = 0x0000FFCB
-    XK_F15* = 0x0000FFCC
-    XK_L5* = 0x0000FFCC
-    XK_F16* = 0x0000FFCD
-    XK_L6* = 0x0000FFCD
-    XK_F17* = 0x0000FFCE
-    XK_L7* = 0x0000FFCE
-    XK_F18* = 0x0000FFCF
-    XK_L8* = 0x0000FFCF
-    XK_F19* = 0x0000FFD0
-    XK_L9* = 0x0000FFD0
-    XK_F20* = 0x0000FFD1
-    XK_L10* = 0x0000FFD1
-    XK_F21* = 0x0000FFD2
-    XK_R1* = 0x0000FFD2
-    XK_F22* = 0x0000FFD3
-    XK_R2* = 0x0000FFD3
-    XK_F23* = 0x0000FFD4
-    XK_R3* = 0x0000FFD4
-    XK_F24* = 0x0000FFD5
-    XK_R4* = 0x0000FFD5
-    XK_F25* = 0x0000FFD6
-    XK_R5* = 0x0000FFD6
-    XK_F26* = 0x0000FFD7
-    XK_R6* = 0x0000FFD7
-    XK_F27* = 0x0000FFD8
-    XK_R7* = 0x0000FFD8
-    XK_F28* = 0x0000FFD9
-    XK_R8* = 0x0000FFD9
-    XK_F29* = 0x0000FFDA
-    XK_R9* = 0x0000FFDA
-    XK_F30* = 0x0000FFDB
-    XK_R10* = 0x0000FFDB
-    XK_F31* = 0x0000FFDC
-    XK_R11* = 0x0000FFDC
-    XK_F32* = 0x0000FFDD
-    XK_R12* = 0x0000FFDD
-    XK_F33* = 0x0000FFDE
-    XK_R13* = 0x0000FFDE
-    XK_F34* = 0x0000FFDF
-    XK_R14* = 0x0000FFDF
-    XK_F35* = 0x0000FFE0
-    XK_R15* = 0x0000FFE0        # Modifiers 
-    XK_Shift_L* = 0x0000FFE1    # Left shift 
-    XK_Shift_R* = 0x0000FFE2    # Right shift 
-    XK_Control_L* = 0x0000FFE3  # Left control 
-    XK_Control_R* = 0x0000FFE4  # Right control 
-    XK_Caps_Lock* = 0x0000FFE5  # Caps lock 
-    XK_Shift_Lock* = 0x0000FFE6 # Shift lock 
-    XK_Meta_L* = 0x0000FFE7     # Left meta 
-    XK_Meta_R* = 0x0000FFE8     # Right meta 
-    XK_Alt_L* = 0x0000FFE9      # Left alt 
-    XK_Alt_R* = 0x0000FFEA      # Right alt 
-    XK_Super_L* = 0x0000FFEB    # Left super 
-    XK_Super_R* = 0x0000FFEC    # Right super 
-    XK_Hyper_L* = 0x0000FFED    # Left hyper 
-    XK_Hyper_R* = 0x0000FFEE    # Right hyper 
-# XK_MISCELLANY 
-#*
-# * ISO 9995 Function and Modifier Keys
-# * Byte 3 = = $FE
-# *
-
-when defined(XK_XKB_KEYS) or true: 
-  const
-    XK_ISO_Lock* = 0x0000FE01
-    XK_ISO_Level2_Latch* = 0x0000FE02
-    XK_ISO_Level3_Shift* = 0x0000FE03
-    XK_ISO_Level3_Latch* = 0x0000FE04
-    XK_ISO_Level3_Lock* = 0x0000FE05
-    XK_ISO_Group_Shift* = 0x0000FF7E # Alias for mode_switch 
-    XK_ISO_Group_Latch* = 0x0000FE06
-    XK_ISO_Group_Lock* = 0x0000FE07
-    XK_ISO_Next_Group* = 0x0000FE08
-    XK_ISO_Next_Group_Lock* = 0x0000FE09
-    XK_ISO_Prev_Group* = 0x0000FE0A
-    XK_ISO_Prev_Group_Lock* = 0x0000FE0B
-    XK_ISO_First_Group* = 0x0000FE0C
-    XK_ISO_First_Group_Lock* = 0x0000FE0D
-    XK_ISO_Last_Group* = 0x0000FE0E
-    XK_ISO_Last_Group_Lock* = 0x0000FE0F
-    XK_ISO_Left_Tab* = 0x0000FE20
-    XK_ISO_Move_Line_Up* = 0x0000FE21
-    XK_ISO_Move_Line_Down* = 0x0000FE22
-    XK_ISO_Partial_Line_Up* = 0x0000FE23
-    XK_ISO_Partial_Line_Down* = 0x0000FE24
-    XK_ISO_Partial_Space_Left* = 0x0000FE25
-    XK_ISO_Partial_Space_Right* = 0x0000FE26
-    XK_ISO_Set_Margin_Left* = 0x0000FE27
-    XK_ISO_Set_Margin_Right* = 0x0000FE28
-    XK_ISO_Release_Margin_Left* = 0x0000FE29
-    XK_ISO_Release_Margin_Right* = 0x0000FE2A
-    XK_ISO_Release_Both_Margins* = 0x0000FE2B
-    XK_ISO_Fast_Cursor_Left* = 0x0000FE2C
-    XK_ISO_Fast_Cursor_Right* = 0x0000FE2D
-    XK_ISO_Fast_Cursor_Up* = 0x0000FE2E
-    XK_ISO_Fast_Cursor_Down* = 0x0000FE2F
-    XK_ISO_Continuous_Underline* = 0x0000FE30
-    XK_ISO_Discontinuous_Underline* = 0x0000FE31
-    XK_ISO_Emphasize* = 0x0000FE32
-    XK_ISO_Center_Object* = 0x0000FE33
-    XK_ISO_Enter* = 0x0000FE34
-    XK_dead_grave* = 0x0000FE50
-    XK_dead_acute* = 0x0000FE51
-    XK_dead_circumflex* = 0x0000FE52
-    XK_dead_tilde* = 0x0000FE53
-    XK_dead_macron* = 0x0000FE54
-    XK_dead_breve* = 0x0000FE55
-    XK_dead_abovedot* = 0x0000FE56
-    XK_dead_diaeresis* = 0x0000FE57
-    XK_dead_abovering* = 0x0000FE58
-    XK_dead_doubleacute* = 0x0000FE59
-    XK_dead_caron* = 0x0000FE5A
-    XK_dead_cedilla* = 0x0000FE5B
-    XK_dead_ogonek* = 0x0000FE5C
-    XK_dead_iota* = 0x0000FE5D
-    XK_dead_voiced_sound* = 0x0000FE5E
-    XK_dead_semivoiced_sound* = 0x0000FE5F
-    XK_dead_belowdot* = 0x0000FE60
-    XK_dead_hook* = 0x0000FE61
-    XK_dead_horn* = 0x0000FE62
-    XK_First_Virtual_Screen* = 0x0000FED0
-    XK_Prev_Virtual_Screen* = 0x0000FED1
-    XK_Next_Virtual_Screen* = 0x0000FED2
-    XK_Last_Virtual_Screen* = 0x0000FED4
-    XK_Terminate_Server* = 0x0000FED5
-    XK_AccessX_Enable* = 0x0000FE70
-    XK_AccessX_Feedback_Enable* = 0x0000FE71
-    XK_RepeatKeys_Enable* = 0x0000FE72
-    XK_SlowKeys_Enable* = 0x0000FE73
-    XK_BounceKeys_Enable* = 0x0000FE74
-    XK_StickyKeys_Enable* = 0x0000FE75
-    XK_MouseKeys_Enable* = 0x0000FE76
-    XK_MouseKeys_Accel_Enable* = 0x0000FE77
-    XK_Overlay1_Enable* = 0x0000FE78
-    XK_Overlay2_Enable* = 0x0000FE79
-    XK_AudibleBell_Enable* = 0x0000FE7A
-    XK_Pointer_Left* = 0x0000FEE0
-    XK_Pointer_Right* = 0x0000FEE1
-    XK_Pointer_Up* = 0x0000FEE2
-    XK_Pointer_Down* = 0x0000FEE3
-    XK_Pointer_UpLeft* = 0x0000FEE4
-    XK_Pointer_UpRight* = 0x0000FEE5
-    XK_Pointer_DownLeft* = 0x0000FEE6
-    XK_Pointer_DownRight* = 0x0000FEE7
-    XK_Pointer_Button_Dflt* = 0x0000FEE8
-    XK_Pointer_Button1* = 0x0000FEE9
-    XK_Pointer_Button2* = 0x0000FEEA
-    XK_Pointer_Button3* = 0x0000FEEB
-    XK_Pointer_Button4* = 0x0000FEEC
-    XK_Pointer_Button5* = 0x0000FEED
-    XK_Pointer_DblClick_Dflt* = 0x0000FEEE
-    XK_Pointer_DblClick1* = 0x0000FEEF
-    XK_Pointer_DblClick2* = 0x0000FEF0
-    XK_Pointer_DblClick3* = 0x0000FEF1
-    XK_Pointer_DblClick4* = 0x0000FEF2
-    XK_Pointer_DblClick5* = 0x0000FEF3
-    XK_Pointer_Drag_Dflt* = 0x0000FEF4
-    XK_Pointer_Drag1* = 0x0000FEF5
-    XK_Pointer_Drag2* = 0x0000FEF6
-    XK_Pointer_Drag3* = 0x0000FEF7
-    XK_Pointer_Drag4* = 0x0000FEF8
-    XK_Pointer_Drag5* = 0x0000FEFD
-    XK_Pointer_EnableKeys* = 0x0000FEF9
-    XK_Pointer_Accelerate* = 0x0000FEFA
-    XK_Pointer_DfltBtnNext* = 0x0000FEFB
-    XK_Pointer_DfltBtnPrev* = 0x0000FEFC
-  #*
-  # * 3270 Terminal Keys
-  # * Byte 3 = = $FD
-  # *
-
-when defined(XK_3270) or true: 
-  const
-    XK_3270_Duplicate* = 0x0000FD01
-    XK_3270_FieldMark* = 0x0000FD02
-    XK_3270_Right2* = 0x0000FD03
-    XK_3270_Left2* = 0x0000FD04
-    XK_3270_BackTab* = 0x0000FD05
-    XK_3270_EraseEOF* = 0x0000FD06
-    XK_3270_EraseInput* = 0x0000FD07
-    XK_3270_Reset* = 0x0000FD08
-    XK_3270_Quit* = 0x0000FD09
-    XK_3270_PA1* = 0x0000FD0A
-    XK_3270_PA2* = 0x0000FD0B
-    XK_3270_PA3* = 0x0000FD0C
-    XK_3270_Test* = 0x0000FD0D
-    XK_3270_Attn* = 0x0000FD0E
-    XK_3270_CursorBlink* = 0x0000FD0F
-    XK_3270_AltCursor* = 0x0000FD10
-    XK_3270_KeyClick* = 0x0000FD11
-    XK_3270_Jump* = 0x0000FD12
-    XK_3270_Ident* = 0x0000FD13
-    XK_3270_Rule* = 0x0000FD14
-    XK_3270_Copy* = 0x0000FD15
-    XK_3270_Play* = 0x0000FD16
-    XK_3270_Setup* = 0x0000FD17
-    XK_3270_Record* = 0x0000FD18
-    XK_3270_ChangeScreen* = 0x0000FD19
-    XK_3270_DeleteWord* = 0x0000FD1A
-    XK_3270_ExSelect* = 0x0000FD1B
-    XK_3270_CursorSelect* = 0x0000FD1C
-    XK_3270_PrintScreen* = 0x0000FD1D
-    XK_3270_Enter* = 0x0000FD1E
-#*
-# *  Latin 1
-# *  Byte 3 = 0
-# *
-
-when defined(XK_LATIN1) or true: 
-  const
-    XK_space* = 0x00000020
-    XK_exclam* = 0x00000021
-    XK_quotedbl* = 0x00000022
-    XK_numbersign* = 0x00000023
-    XK_dollar* = 0x00000024
-    XK_percent* = 0x00000025
-    XK_ampersand* = 0x00000026
-    XK_apostrophe* = 0x00000027
-    XK_quoteright* = 0x00000027 # deprecated 
-    XK_parenleft* = 0x00000028
-    XK_parenright* = 0x00000029
-    XK_asterisk* = 0x0000002A
-    XK_plus* = 0x0000002B
-    XK_comma* = 0x0000002C
-    XK_minus* = 0x0000002D
-    XK_period* = 0x0000002E
-    XK_slash* = 0x0000002F
-    XK_0* = 0x00000030
-    XK_1* = 0x00000031
-    XK_2* = 0x00000032
-    XK_3* = 0x00000033
-    XK_4* = 0x00000034
-    XK_5* = 0x00000035
-    XK_6* = 0x00000036
-    XK_7* = 0x00000037
-    XK_8* = 0x00000038
-    XK_9* = 0x00000039
-    XK_colon* = 0x0000003A
-    XK_semicolon* = 0x0000003B
-    XK_less* = 0x0000003C
-    XK_equal* = 0x0000003D
-    XK_greater* = 0x0000003E
-    XK_question* = 0x0000003F
-    XK_at* = 0x00000040
-    XKc_A* = 0x00000041
-    XKc_B* = 0x00000042
-    XKc_C* = 0x00000043
-    XKc_D* = 0x00000044
-    XKc_E* = 0x00000045
-    XKc_F* = 0x00000046
-    XKc_G* = 0x00000047
-    XKc_H* = 0x00000048
-    XKc_I* = 0x00000049
-    XKc_J* = 0x0000004A
-    XKc_K* = 0x0000004B
-    XKc_L* = 0x0000004C
-    XKc_M* = 0x0000004D
-    XKc_N* = 0x0000004E
-    XKc_O* = 0x0000004F
-    XKc_P* = 0x00000050
-    XKc_Q* = 0x00000051
-    XKc_R* = 0x00000052
-    XKc_S* = 0x00000053
-    XKc_T* = 0x00000054
-    XKc_U* = 0x00000055
-    XKc_V* = 0x00000056
-    XKc_W* = 0x00000057
-    XKc_X* = 0x00000058
-    XKc_Y* = 0x00000059
-    XKc_Z* = 0x0000005A
-    XK_bracketleft* = 0x0000005B
-    XK_backslash* = 0x0000005C
-    XK_bracketright* = 0x0000005D
-    XK_asciicircum* = 0x0000005E
-    XK_underscore* = 0x0000005F
-    XK_grave* = 0x00000060
-    XK_quoteleft* = 0x00000060  # deprecated 
-    XK_a* = 0x00000061
-    XK_b* = 0x00000062
-    XK_c* = 0x00000063
-    XK_d* = 0x00000064
-    XK_e* = 0x00000065
-    XK_f* = 0x00000066
-    XK_g* = 0x00000067
-    XK_h* = 0x00000068
-    XK_i* = 0x00000069
-    XK_j* = 0x0000006A
-    XK_k* = 0x0000006B
-    XK_l* = 0x0000006C
-    XK_m* = 0x0000006D
-    XK_n* = 0x0000006E
-    XK_o* = 0x0000006F
-    XK_p* = 0x00000070
-    XK_q* = 0x00000071
-    XK_r* = 0x00000072
-    XK_s* = 0x00000073
-    XK_t* = 0x00000074
-    XK_u* = 0x00000075
-    XK_v* = 0x00000076
-    XK_w* = 0x00000077
-    XK_x* = 0x00000078
-    XK_y* = 0x00000079
-    XK_z* = 0x0000007A
-    XK_braceleft* = 0x0000007B
-    XK_bar* = 0x0000007C
-    XK_braceright* = 0x0000007D
-    XK_asciitilde* = 0x0000007E
-    XK_nobreakspace* = 0x000000A0
-    XK_exclamdown* = 0x000000A1
-    XK_cent* = 0x000000A2
-    XK_sterling* = 0x000000A3
-    XK_currency* = 0x000000A4
-    XK_yen* = 0x000000A5
-    XK_brokenbar* = 0x000000A6
-    XK_section* = 0x000000A7
-    XK_diaeresis* = 0x000000A8
-    XK_copyright* = 0x000000A9
-    XK_ordfeminine* = 0x000000AA
-    XK_guillemotleft* = 0x000000AB # left angle quotation mark 
-    XK_notsign* = 0x000000AC
-    XK_hyphen* = 0x000000AD
-    XK_registered* = 0x000000AE
-    XK_macron* = 0x000000AF
-    XK_degree* = 0x000000B0
-    XK_plusminus* = 0x000000B1
-    XK_twosuperior* = 0x000000B2
-    XK_threesuperior* = 0x000000B3
-    XK_acute* = 0x000000B4
-    XK_mu* = 0x000000B5
-    XK_paragraph* = 0x000000B6
-    XK_periodcentered* = 0x000000B7
-    XK_cedilla* = 0x000000B8
-    XK_onesuperior* = 0x000000B9
-    XK_masculine* = 0x000000BA
-    XK_guillemotright* = 0x000000BB # right angle quotation mark 
-    XK_onequarter* = 0x000000BC
-    XK_onehalf* = 0x000000BD
-    XK_threequarters* = 0x000000BE
-    XK_questiondown* = 0x000000BF
-    XKc_Agrave* = 0x000000C0
-    XKc_Aacute* = 0x000000C1
-    XKc_Acircumflex* = 0x000000C2
-    XKc_Atilde* = 0x000000C3
-    XKc_Adiaeresis* = 0x000000C4
-    XKc_Aring* = 0x000000C5
-    XKc_AE* = 0x000000C6
-    XKc_Ccedilla* = 0x000000C7
-    XKc_Egrave* = 0x000000C8
-    XKc_Eacute* = 0x000000C9
-    XKc_Ecircumflex* = 0x000000CA
-    XKc_Ediaeresis* = 0x000000CB
-    XKc_Igrave* = 0x000000CC
-    XKc_Iacute* = 0x000000CD
-    XKc_Icircumflex* = 0x000000CE
-    XKc_Idiaeresis* = 0x000000CF
-    XKc_ETH* = 0x000000D0
-    XKc_Ntilde* = 0x000000D1
-    XKc_Ograve* = 0x000000D2
-    XKc_Oacute* = 0x000000D3
-    XKc_Ocircumflex* = 0x000000D4
-    XKc_Otilde* = 0x000000D5
-    XKc_Odiaeresis* = 0x000000D6
-    XK_multiply* = 0x000000D7
-    XKc_Ooblique* = 0x000000D8
-    XKc_Oslash* = XKc_Ooblique
-    XKc_Ugrave* = 0x000000D9
-    XKc_Uacute* = 0x000000DA
-    XKc_Ucircumflex* = 0x000000DB
-    XKc_Udiaeresis* = 0x000000DC
-    XKc_Yacute* = 0x000000DD
-    XKc_THORN* = 0x000000DE
-    XK_ssharp* = 0x000000DF
-    XK_agrave* = 0x000000E0
-    XK_aacute* = 0x000000E1
-    XK_acircumflex* = 0x000000E2
-    XK_atilde* = 0x000000E3
-    XK_adiaeresis* = 0x000000E4
-    XK_aring* = 0x000000E5
-    XK_ae* = 0x000000E6
-    XK_ccedilla* = 0x000000E7
-    XK_egrave* = 0x000000E8
-    XK_eacute* = 0x000000E9
-    XK_ecircumflex* = 0x000000EA
-    XK_ediaeresis* = 0x000000EB
-    XK_igrave* = 0x000000EC
-    XK_iacute* = 0x000000ED
-    XK_icircumflex* = 0x000000EE
-    XK_idiaeresis* = 0x000000EF
-    XK_eth* = 0x000000F0
-    XK_ntilde* = 0x000000F1
-    XK_ograve* = 0x000000F2
-    XK_oacute* = 0x000000F3
-    XK_ocircumflex* = 0x000000F4
-    XK_otilde* = 0x000000F5
-    XK_odiaeresis* = 0x000000F6
-    XK_division* = 0x000000F7
-    XK_oslash* = 0x000000F8
-    XK_ooblique* = XK_oslash
-    XK_ugrave* = 0x000000F9
-    XK_uacute* = 0x000000FA
-    XK_ucircumflex* = 0x000000FB
-    XK_udiaeresis* = 0x000000FC
-    XK_yacute* = 0x000000FD
-    XK_thorn* = 0x000000FE
-    XK_ydiaeresis* = 0x000000FF
-# XK_LATIN1 
-#*
-# *   Latin 2
-# *   Byte 3 = 1
-# *
-
-when defined(XK_LATIN2) or true: 
-  const
-    XKc_Aogonek* = 0x000001A1
-    XK_breve* = 0x000001A2
-    XKc_Lstroke* = 0x000001A3
-    XKc_Lcaron* = 0x000001A5
-    XKc_Sacute* = 0x000001A6
-    XKc_Scaron* = 0x000001A9
-    XKc_Scedilla* = 0x000001AA
-    XKc_Tcaron* = 0x000001AB
-    XKc_Zacute* = 0x000001AC
-    XKc_Zcaron* = 0x000001AE
-    XKc_Zabovedot* = 0x000001AF
-    XK_aogonek* = 0x000001B1
-    XK_ogonek* = 0x000001B2
-    XK_lstroke* = 0x000001B3
-    XK_lcaron* = 0x000001B5
-    XK_sacute* = 0x000001B6
-    XK_caron* = 0x000001B7
-    XK_scaron* = 0x000001B9
-    XK_scedilla* = 0x000001BA
-    XK_tcaron* = 0x000001BB
-    XK_zacute* = 0x000001BC
-    XK_doubleacute* = 0x000001BD
-    XK_zcaron* = 0x000001BE
-    XK_zabovedot* = 0x000001BF
-    XKc_Racute* = 0x000001C0
-    XKc_Abreve* = 0x000001C3
-    XKc_Lacute* = 0x000001C5
-    XKc_Cacute* = 0x000001C6
-    XKc_Ccaron* = 0x000001C8
-    XKc_Eogonek* = 0x000001CA
-    XKc_Ecaron* = 0x000001CC
-    XKc_Dcaron* = 0x000001CF
-    XKc_Dstroke* = 0x000001D0
-    XKc_Nacute* = 0x000001D1
-    XKc_Ncaron* = 0x000001D2
-    XKc_Odoubleacute* = 0x000001D5
-    XKc_Rcaron* = 0x000001D8
-    XKc_Uring* = 0x000001D9
-    XKc_Udoubleacute* = 0x000001DB
-    XKc_Tcedilla* = 0x000001DE
-    XK_racute* = 0x000001E0
-    XK_abreve* = 0x000001E3
-    XK_lacute* = 0x000001E5
-    XK_cacute* = 0x000001E6
-    XK_ccaron* = 0x000001E8
-    XK_eogonek* = 0x000001EA
-    XK_ecaron* = 0x000001EC
-    XK_dcaron* = 0x000001EF
-    XK_dstroke* = 0x000001F0
-    XK_nacute* = 0x000001F1
-    XK_ncaron* = 0x000001F2
-    XK_odoubleacute* = 0x000001F5
-    XK_udoubleacute* = 0x000001FB
-    XK_rcaron* = 0x000001F8
-    XK_uring* = 0x000001F9
-    XK_tcedilla* = 0x000001FE
-    XK_abovedot* = 0x000001FF
-# XK_LATIN2 
-#*
-# *   Latin 3
-# *   Byte 3 = 2
-# *
-
-when defined(XK_LATIN3) or true: 
-  const
-    XKc_Hstroke* = 0x000002A1
-    XKc_Hcircumflex* = 0x000002A6
-    XKc_Iabovedot* = 0x000002A9
-    XKc_Gbreve* = 0x000002AB
-    XKc_Jcircumflex* = 0x000002AC
-    XK_hstroke* = 0x000002B1
-    XK_hcircumflex* = 0x000002B6
-    XK_idotless* = 0x000002B9
-    XK_gbreve* = 0x000002BB
-    XK_jcircumflex* = 0x000002BC
-    XKc_Cabovedot* = 0x000002C5
-    XKc_Ccircumflex* = 0x000002C6
-    XKc_Gabovedot* = 0x000002D5
-    XKc_Gcircumflex* = 0x000002D8
-    XKc_Ubreve* = 0x000002DD
-    XKc_Scircumflex* = 0x000002DE
-    XK_cabovedot* = 0x000002E5
-    XK_ccircumflex* = 0x000002E6
-    XK_gabovedot* = 0x000002F5
-    XK_gcircumflex* = 0x000002F8
-    XK_ubreve* = 0x000002FD
-    XK_scircumflex* = 0x000002FE
-# XK_LATIN3 
-#*
-# *   Latin 4
-# *   Byte 3 = 3
-# *
-
-when defined(XK_LATIN4) or true: 
-  const
-    XK_kra* = 0x000003A2
-    XK_kappa* = 0x000003A2      # deprecated 
-    XKc_Rcedilla* = 0x000003A3
-    XKc_Itilde* = 0x000003A5
-    XKc_Lcedilla* = 0x000003A6
-    XKc_Emacron* = 0x000003AA
-    XKc_Gcedilla* = 0x000003AB
-    XKc_Tslash* = 0x000003AC
-    XK_rcedilla* = 0x000003B3
-    XK_itilde* = 0x000003B5
-    XK_lcedilla* = 0x000003B6
-    XK_emacron* = 0x000003BA
-    XK_gcedilla* = 0x000003BB
-    XK_tslash* = 0x000003BC
-    XKc_ENG* = 0x000003BD
-    XK_eng* = 0x000003BF
-    XKc_Amacron* = 0x000003C0
-    XKc_Iogonek* = 0x000003C7
-    XKc_Eabovedot* = 0x000003CC
-    XKc_Imacron* = 0x000003CF
-    XKc_Ncedilla* = 0x000003D1
-    XKc_Omacron* = 0x000003D2
-    XKc_Kcedilla* = 0x000003D3
-    XKc_Uogonek* = 0x000003D9
-    XKc_Utilde* = 0x000003DD
-    XKc_Umacron* = 0x000003DE
-    XK_amacron* = 0x000003E0
-    XK_iogonek* = 0x000003E7
-    XK_eabovedot* = 0x000003EC
-    XK_imacron* = 0x000003EF
-    XK_ncedilla* = 0x000003F1
-    XK_omacron* = 0x000003F2
-    XK_kcedilla* = 0x000003F3
-    XK_uogonek* = 0x000003F9
-    XK_utilde* = 0x000003FD
-    XK_umacron* = 0x000003FE
-# XK_LATIN4 
-#*
-# * Latin-8
-# * Byte 3 = 18
-# *
-
-when defined(XK_LATIN8) or true: 
-  const
-    XKc_Babovedot* = 0x000012A1
-    XK_babovedot* = 0x000012A2
-    XKc_Dabovedot* = 0x000012A6
-    XKc_Wgrave* = 0x000012A8
-    XKc_Wacute* = 0x000012AA
-    XK_dabovedot* = 0x000012AB
-    XKc_Ygrave* = 0x000012AC
-    XKc_Fabovedot* = 0x000012B0
-    XK_fabovedot* = 0x000012B1
-    XKc_Mabovedot* = 0x000012B4
-    XK_mabovedot* = 0x000012B5
-    XKc_Pabovedot* = 0x000012B7
-    XK_wgrave* = 0x000012B8
-    XK_pabovedot* = 0x000012B9
-    XK_wacute* = 0x000012BA
-    XKc_Sabovedot* = 0x000012BB
-    XK_ygrave* = 0x000012BC
-    XKc_Wdiaeresis* = 0x000012BD
-    XK_wdiaeresis* = 0x000012BE
-    XK_sabovedot* = 0x000012BF
-    XKc_Wcircumflex* = 0x000012D0
-    XKc_Tabovedot* = 0x000012D7
-    XKc_Ycircumflex* = 0x000012DE
-    XK_wcircumflex* = 0x000012F0
-    XK_tabovedot* = 0x000012F7
-    XK_ycircumflex* = 0x000012FE
-# XK_LATIN8 
-#*
-# * Latin-9 (a.k.a. Latin-0)
-# * Byte 3 = 19
-# *
-
-when defined(XK_LATIN9) or true: 
-  const
-    XKc_OE* = 0x000013BC
-    XK_oe* = 0x000013BD
-    XKc_Ydiaeresis* = 0x000013BE
-# XK_LATIN9 
-#*
-# * Katakana
-# * Byte 3 = 4
-# *
-
-when defined(XK_KATAKANA) or true: 
-  const
-    XK_overline* = 0x0000047E
-    XK_kana_fullstop* = 0x000004A1
-    XK_kana_openingbracket* = 0x000004A2
-    XK_kana_closingbracket* = 0x000004A3
-    XK_kana_comma* = 0x000004A4
-    XK_kana_conjunctive* = 0x000004A5
-    XK_kana_middledot* = 0x000004A5 # deprecated 
-    XKc_kana_WO* = 0x000004A6
-    XK_kana_a* = 0x000004A7
-    XK_kana_i* = 0x000004A8
-    XK_kana_u* = 0x000004A9
-    XK_kana_e* = 0x000004AA
-    XK_kana_o* = 0x000004AB
-    XK_kana_ya* = 0x000004AC
-    XK_kana_yu* = 0x000004AD
-    XK_kana_yo* = 0x000004AE
-    XK_kana_tsu* = 0x000004AF
-    XK_kana_tu* = 0x000004AF    # deprecated 
-    XK_prolongedsound* = 0x000004B0
-    XKc_kana_A* = 0x000004B1
-    XKc_kana_I* = 0x000004B2
-    XKc_kana_U* = 0x000004B3
-    XKc_kana_E* = 0x000004B4
-    XKc_kana_O* = 0x000004B5
-    XKc_kana_KA* = 0x000004B6
-    XKc_kana_KI* = 0x000004B7
-    XKc_kana_KU* = 0x000004B8
-    XKc_kana_KE* = 0x000004B9
-    XKc_kana_KO* = 0x000004BA
-    XKc_kana_SA* = 0x000004BB
-    XKc_kana_SHI* = 0x000004BC
-    XKc_kana_SU* = 0x000004BD
-    XKc_kana_SE* = 0x000004BE
-    XKc_kana_SO* = 0x000004BF
-    XKc_kana_TA* = 0x000004C0
-    XKc_kana_CHI* = 0x000004C1
-    XKc_kana_TI* = 0x000004C1   # deprecated 
-    XKc_kana_TSU* = 0x000004C2
-    XKc_kana_TU* = 0x000004C2   # deprecated 
-    XKc_kana_TE* = 0x000004C3
-    XKc_kana_TO* = 0x000004C4
-    XKc_kana_NA* = 0x000004C5
-    XKc_kana_NI* = 0x000004C6
-    XKc_kana_NU* = 0x000004C7
-    XKc_kana_NE* = 0x000004C8
-    XKc_kana_NO* = 0x000004C9
-    XKc_kana_HA* = 0x000004CA
-    XKc_kana_HI* = 0x000004CB
-    XKc_kana_FU* = 0x000004CC
-    XKc_kana_HU* = 0x000004CC   # deprecated 
-    XKc_kana_HE* = 0x000004CD
-    XKc_kana_HO* = 0x000004CE
-    XKc_kana_MA* = 0x000004CF
-    XKc_kana_MI* = 0x000004D0
-    XKc_kana_MU* = 0x000004D1
-    XKc_kana_ME* = 0x000004D2
-    XKc_kana_MO* = 0x000004D3
-    XKc_kana_YA* = 0x000004D4
-    XKc_kana_YU* = 0x000004D5
-    XKc_kana_YO* = 0x000004D6
-    XKc_kana_RA* = 0x000004D7
-    XKc_kana_RI* = 0x000004D8
-    XKc_kana_RU* = 0x000004D9
-    XKc_kana_RE* = 0x000004DA
-    XKc_kana_RO* = 0x000004DB
-    XKc_kana_WA* = 0x000004DC
-    XKc_kana_N* = 0x000004DD
-    XK_voicedsound* = 0x000004DE
-    XK_semivoicedsound* = 0x000004DF
-    XK_kana_switch* = 0x0000FF7E # Alias for mode_switch 
-# XK_KATAKANA 
-#*
-# *  Arabic
-# *  Byte 3 = 5
-# *
-
-when defined(XK_ARABIC) or true: 
-  const
-    XK_Farsi_0* = 0x00000590
-    XK_Farsi_1* = 0x00000591
-    XK_Farsi_2* = 0x00000592
-    XK_Farsi_3* = 0x00000593
-    XK_Farsi_4* = 0x00000594
-    XK_Farsi_5* = 0x00000595
-    XK_Farsi_6* = 0x00000596
-    XK_Farsi_7* = 0x00000597
-    XK_Farsi_8* = 0x00000598
-    XK_Farsi_9* = 0x00000599
-    XK_Arabic_percent* = 0x000005A5
-    XK_Arabic_superscript_alef* = 0x000005A6
-    XK_Arabic_tteh* = 0x000005A7
-    XK_Arabic_peh* = 0x000005A8
-    XK_Arabic_tcheh* = 0x000005A9
-    XK_Arabic_ddal* = 0x000005AA
-    XK_Arabic_rreh* = 0x000005AB
-    XK_Arabic_comma* = 0x000005AC
-    XK_Arabic_fullstop* = 0x000005AE
-    XK_Arabic_0* = 0x000005B0
-    XK_Arabic_1* = 0x000005B1
-    XK_Arabic_2* = 0x000005B2
-    XK_Arabic_3* = 0x000005B3
-    XK_Arabic_4* = 0x000005B4
-    XK_Arabic_5* = 0x000005B5
-    XK_Arabic_6* = 0x000005B6
-    XK_Arabic_7* = 0x000005B7
-    XK_Arabic_8* = 0x000005B8
-    XK_Arabic_9* = 0x000005B9
-    XK_Arabic_semicolon* = 0x000005BB
-    XK_Arabic_question_mark* = 0x000005BF
-    XK_Arabic_hamza* = 0x000005C1
-    XK_Arabic_maddaonalef* = 0x000005C2
-    XK_Arabic_hamzaonalef* = 0x000005C3
-    XK_Arabic_hamzaonwaw* = 0x000005C4
-    XK_Arabic_hamzaunderalef* = 0x000005C5
-    XK_Arabic_hamzaonyeh* = 0x000005C6
-    XK_Arabic_alef* = 0x000005C7
-    XK_Arabic_beh* = 0x000005C8
-    XK_Arabic_tehmarbuta* = 0x000005C9
-    XK_Arabic_teh* = 0x000005CA
-    XK_Arabic_theh* = 0x000005CB
-    XK_Arabic_jeem* = 0x000005CC
-    XK_Arabic_hah* = 0x000005CD
-    XK_Arabic_khah* = 0x000005CE
-    XK_Arabic_dal* = 0x000005CF
-    XK_Arabic_thal* = 0x000005D0
-    XK_Arabic_ra* = 0x000005D1
-    XK_Arabic_zain* = 0x000005D2
-    XK_Arabic_seen* = 0x000005D3
-    XK_Arabic_sheen* = 0x000005D4
-    XK_Arabic_sad* = 0x000005D5
-    XK_Arabic_dad* = 0x000005D6
-    XK_Arabic_tah* = 0x000005D7
-    XK_Arabic_zah* = 0x000005D8
-    XK_Arabic_ain* = 0x000005D9
-    XK_Arabic_ghain* = 0x000005DA
-    XK_Arabic_tatweel* = 0x000005E0
-    XK_Arabic_feh* = 0x000005E1
-    XK_Arabic_qaf* = 0x000005E2
-    XK_Arabic_kaf* = 0x000005E3
-    XK_Arabic_lam* = 0x000005E4
-    XK_Arabic_meem* = 0x000005E5
-    XK_Arabic_noon* = 0x000005E6
-    XK_Arabic_ha* = 0x000005E7
-    XK_Arabic_heh* = 0x000005E7 # deprecated 
-    XK_Arabic_waw* = 0x000005E8
-    XK_Arabic_alefmaksura* = 0x000005E9
-    XK_Arabic_yeh* = 0x000005EA
-    XK_Arabic_fathatan* = 0x000005EB
-    XK_Arabic_dammatan* = 0x000005EC
-    XK_Arabic_kasratan* = 0x000005ED
-    XK_Arabic_fatha* = 0x000005EE
-    XK_Arabic_damma* = 0x000005EF
-    XK_Arabic_kasra* = 0x000005F0
-    XK_Arabic_shadda* = 0x000005F1
-    XK_Arabic_sukun* = 0x000005F2
-    XK_Arabic_madda_above* = 0x000005F3
-    XK_Arabic_hamza_above* = 0x000005F4
-    XK_Arabic_hamza_below* = 0x000005F5
-    XK_Arabic_jeh* = 0x000005F6
-    XK_Arabic_veh* = 0x000005F7
-    XK_Arabic_keheh* = 0x000005F8
-    XK_Arabic_gaf* = 0x000005F9
-    XK_Arabic_noon_ghunna* = 0x000005FA
-    XK_Arabic_heh_doachashmee* = 0x000005FB
-    XK_Farsi_yeh* = 0x000005FC
-    XK_Arabic_farsi_yeh* = XK_Farsi_yeh
-    XK_Arabic_yeh_baree* = 0x000005FD
-    XK_Arabic_heh_goal* = 0x000005FE
-    XK_Arabic_switch* = 0x0000FF7E # Alias for mode_switch 
-# XK_ARABIC 
-#*
-# * Cyrillic
-# * Byte 3 = 6
-# *
-
-when defined(XK_CYRILLIC) or true: 
-  const
-    XKc_Cyrillic_GHE_bar* = 0x00000680
-    XK_Cyrillic_ghe_bar* = 0x00000690
-    XKc_Cyrillic_ZHE_descender* = 0x00000681
-    XK_Cyrillic_zhe_descender* = 0x00000691
-    XKc_Cyrillic_KA_descender* = 0x00000682
-    XK_Cyrillic_ka_descender* = 0x00000692
-    XKc_Cyrillic_KA_vertstroke* = 0x00000683
-    XK_Cyrillic_ka_vertstroke* = 0x00000693
-    XKc_Cyrillic_EN_descender* = 0x00000684
-    XK_Cyrillic_en_descender* = 0x00000694
-    XKc_Cyrillic_U_straight* = 0x00000685
-    XK_Cyrillic_u_straight* = 0x00000695
-    XKc_Cyrillic_U_straight_bar* = 0x00000686
-    XK_Cyrillic_u_straight_bar* = 0x00000696
-    XKc_Cyrillic_HA_descender* = 0x00000687
-    XK_Cyrillic_ha_descender* = 0x00000697
-    XKc_Cyrillic_CHE_descender* = 0x00000688
-    XK_Cyrillic_che_descender* = 0x00000698
-    XKc_Cyrillic_CHE_vertstroke* = 0x00000689
-    XK_Cyrillic_che_vertstroke* = 0x00000699
-    XKc_Cyrillic_SHHA* = 0x0000068A
-    XK_Cyrillic_shha* = 0x0000069A
-    XKc_Cyrillic_SCHWA* = 0x0000068C
-    XK_Cyrillic_schwa* = 0x0000069C
-    XKc_Cyrillic_I_macron* = 0x0000068D
-    XK_Cyrillic_i_macron* = 0x0000069D
-    XKc_Cyrillic_O_bar* = 0x0000068E
-    XK_Cyrillic_o_bar* = 0x0000069E
-    XKc_Cyrillic_U_macron* = 0x0000068F
-    XK_Cyrillic_u_macron* = 0x0000069F
-    XK_Serbian_dje* = 0x000006A1
-    XK_Macedonia_gje* = 0x000006A2
-    XK_Cyrillic_io* = 0x000006A3
-    XK_Ukrainian_ie* = 0x000006A4
-    XK_Ukranian_je* = 0x000006A4 # deprecated 
-    XK_Macedonia_dse* = 0x000006A5
-    XK_Ukrainian_i* = 0x000006A6
-    XK_Ukranian_i* = 0x000006A6 # deprecated 
-    XK_Ukrainian_yi* = 0x000006A7
-    XK_Ukranian_yi* = 0x000006A7 # deprecated 
-    XK_Cyrillic_je* = 0x000006A8
-    XK_Serbian_je* = 0x000006A8 # deprecated 
-    XK_Cyrillic_lje* = 0x000006A9
-    XK_Serbian_lje* = 0x000006A9 # deprecated 
-    XK_Cyrillic_nje* = 0x000006AA
-    XK_Serbian_nje* = 0x000006AA # deprecated 
-    XK_Serbian_tshe* = 0x000006AB
-    XK_Macedonia_kje* = 0x000006AC
-    XK_Ukrainian_ghe_with_upturn* = 0x000006AD
-    XK_Byelorussian_shortu* = 0x000006AE
-    XK_Cyrillic_dzhe* = 0x000006AF
-    XK_Serbian_dze* = 0x000006AF # deprecated 
-    XK_numerosign* = 0x000006B0
-    XKc_Serbian_DJE* = 0x000006B1
-    XKc_Macedonia_GJE* = 0x000006B2
-    XKc_Cyrillic_IO* = 0x000006B3
-    XKc_Ukrainian_IE* = 0x000006B4
-    XKc_Ukranian_JE* = 0x000006B4 # deprecated 
-    XKc_Macedonia_DSE* = 0x000006B5
-    XKc_Ukrainian_I* = 0x000006B6
-    XKc_Ukranian_I* = 0x000006B6 # deprecated 
-    XKc_Ukrainian_YI* = 0x000006B7
-    XKc_Ukranian_YI* = 0x000006B7 # deprecated 
-    XKc_Cyrillic_JE* = 0x000006B8
-    XKc_Serbian_JE* = 0x000006B8 # deprecated 
-    XKc_Cyrillic_LJE* = 0x000006B9
-    XKc_Serbian_LJE* = 0x000006B9 # deprecated 
-    XKc_Cyrillic_NJE* = 0x000006BA
-    XKc_Serbian_NJE* = 0x000006BA # deprecated 
-    XKc_Serbian_TSHE* = 0x000006BB
-    XKc_Macedonia_KJE* = 0x000006BC
-    XKc_Ukrainian_GHE_WITH_UPTURN* = 0x000006BD
-    XKc_Byelorussian_SHORTU* = 0x000006BE
-    XKc_Cyrillic_DZHE* = 0x000006BF
-    XKc_Serbian_DZE* = 0x000006BF # deprecated 
-    XK_Cyrillic_yu* = 0x000006C0
-    XK_Cyrillic_a* = 0x000006C1
-    XK_Cyrillic_be* = 0x000006C2
-    XK_Cyrillic_tse* = 0x000006C3
-    XK_Cyrillic_de* = 0x000006C4
-    XK_Cyrillic_ie* = 0x000006C5
-    XK_Cyrillic_ef* = 0x000006C6
-    XK_Cyrillic_ghe* = 0x000006C7
-    XK_Cyrillic_ha* = 0x000006C8
-    XK_Cyrillic_i* = 0x000006C9
-    XK_Cyrillic_shorti* = 0x000006CA
-    XK_Cyrillic_ka* = 0x000006CB
-    XK_Cyrillic_el* = 0x000006CC
-    XK_Cyrillic_em* = 0x000006CD
-    XK_Cyrillic_en* = 0x000006CE
-    XK_Cyrillic_o* = 0x000006CF
-    XK_Cyrillic_pe* = 0x000006D0
-    XK_Cyrillic_ya* = 0x000006D1
-    XK_Cyrillic_er* = 0x000006D2
-    XK_Cyrillic_es* = 0x000006D3
-    XK_Cyrillic_te* = 0x000006D4
-    XK_Cyrillic_u* = 0x000006D5
-    XK_Cyrillic_zhe* = 0x000006D6
-    XK_Cyrillic_ve* = 0x000006D7
-    XK_Cyrillic_softsign* = 0x000006D8
-    XK_Cyrillic_yeru* = 0x000006D9
-    XK_Cyrillic_ze* = 0x000006DA
-    XK_Cyrillic_sha* = 0x000006DB
-    XK_Cyrillic_e* = 0x000006DC
-    XK_Cyrillic_shcha* = 0x000006DD
-    XK_Cyrillic_che* = 0x000006DE
-    XK_Cyrillic_hardsign* = 0x000006DF
-    XKc_Cyrillic_YU* = 0x000006E0
-    XKc_Cyrillic_A* = 0x000006E1
-    XKc_Cyrillic_BE* = 0x000006E2
-    XKc_Cyrillic_TSE* = 0x000006E3
-    XKc_Cyrillic_DE* = 0x000006E4
-    XKc_Cyrillic_IE* = 0x000006E5
-    XKc_Cyrillic_EF* = 0x000006E6
-    XKc_Cyrillic_GHE* = 0x000006E7
-    XKc_Cyrillic_HA* = 0x000006E8
-    XKc_Cyrillic_I* = 0x000006E9
-    XKc_Cyrillic_SHORTI* = 0x000006EA
-    XKc_Cyrillic_KA* = 0x000006EB
-    XKc_Cyrillic_EL* = 0x000006EC
-    XKc_Cyrillic_EM* = 0x000006ED
-    XKc_Cyrillic_EN* = 0x000006EE
-    XKc_Cyrillic_O* = 0x000006EF
-    XKc_Cyrillic_PE* = 0x000006F0
-    XKc_Cyrillic_YA* = 0x000006F1
-    XKc_Cyrillic_ER* = 0x000006F2
-    XKc_Cyrillic_ES* = 0x000006F3
-    XKc_Cyrillic_TE* = 0x000006F4
-    XKc_Cyrillic_U* = 0x000006F5
-    XKc_Cyrillic_ZHE* = 0x000006F6
-    XKc_Cyrillic_VE* = 0x000006F7
-    XKc_Cyrillic_SOFTSIGN* = 0x000006F8
-    XKc_Cyrillic_YERU* = 0x000006F9
-    XKc_Cyrillic_ZE* = 0x000006FA
-    XKc_Cyrillic_SHA* = 0x000006FB
-    XKc_Cyrillic_E* = 0x000006FC
-    XKc_Cyrillic_SHCHA* = 0x000006FD
-    XKc_Cyrillic_CHE* = 0x000006FE
-    XKc_Cyrillic_HARDSIGN* = 0x000006FF
-# XK_CYRILLIC 
-#*
-# * Greek
-# * Byte 3 = 7
-# *
-
-when defined(XK_GREEK) or true: 
-  const
-    XKc_Greek_ALPHAaccent* = 0x000007A1
-    XKc_Greek_EPSILONaccent* = 0x000007A2
-    XKc_Greek_ETAaccent* = 0x000007A3
-    XKc_Greek_IOTAaccent* = 0x000007A4
-    XKc_Greek_IOTAdieresis* = 0x000007A5
-    XKc_Greek_IOTAdiaeresis* = XKc_Greek_IOTAdieresis # old typo 
-    XKc_Greek_OMICRONaccent* = 0x000007A7
-    XKc_Greek_UPSILONaccent* = 0x000007A8
-    XKc_Greek_UPSILONdieresis* = 0x000007A9
-    XKc_Greek_OMEGAaccent* = 0x000007AB
-    XK_Greek_accentdieresis* = 0x000007AE
-    XK_Greek_horizbar* = 0x000007AF
-    XK_Greek_alphaaccent* = 0x000007B1
-    XK_Greek_epsilonaccent* = 0x000007B2
-    XK_Greek_etaaccent* = 0x000007B3
-    XK_Greek_iotaaccent* = 0x000007B4
-    XK_Greek_iotadieresis* = 0x000007B5
-    XK_Greek_iotaaccentdieresis* = 0x000007B6
-    XK_Greek_omicronaccent* = 0x000007B7
-    XK_Greek_upsilonaccent* = 0x000007B8
-    XK_Greek_upsilondieresis* = 0x000007B9
-    XK_Greek_upsilonaccentdieresis* = 0x000007BA
-    XK_Greek_omegaaccent* = 0x000007BB
-    XKc_Greek_ALPHA* = 0x000007C1
-    XKc_Greek_BETA* = 0x000007C2
-    XKc_Greek_GAMMA* = 0x000007C3
-    XKc_Greek_DELTA* = 0x000007C4
-    XKc_Greek_EPSILON* = 0x000007C5
-    XKc_Greek_ZETA* = 0x000007C6
-    XKc_Greek_ETA* = 0x000007C7
-    XKc_Greek_THETA* = 0x000007C8
-    XKc_Greek_IOTA* = 0x000007C9
-    XKc_Greek_KAPPA* = 0x000007CA
-    XKc_Greek_LAMDA* = 0x000007CB
-    XKc_Greek_LAMBDA* = 0x000007CB
-    XKc_Greek_MU* = 0x000007CC
-    XKc_Greek_NU* = 0x000007CD
-    XKc_Greek_XI* = 0x000007CE
-    XKc_Greek_OMICRON* = 0x000007CF
-    XKc_Greek_PI* = 0x000007D0
-    XKc_Greek_RHO* = 0x000007D1
-    XKc_Greek_SIGMA* = 0x000007D2
-    XKc_Greek_TAU* = 0x000007D4
-    XKc_Greek_UPSILON* = 0x000007D5
-    XKc_Greek_PHI* = 0x000007D6
-    XKc_Greek_CHI* = 0x000007D7
-    XKc_Greek_PSI* = 0x000007D8
-    XKc_Greek_OMEGA* = 0x000007D9
-    XK_Greek_alpha* = 0x000007E1
-    XK_Greek_beta* = 0x000007E2
-    XK_Greek_gamma* = 0x000007E3
-    XK_Greek_delta* = 0x000007E4
-    XK_Greek_epsilon* = 0x000007E5
-    XK_Greek_zeta* = 0x000007E6
-    XK_Greek_eta* = 0x000007E7
-    XK_Greek_theta* = 0x000007E8
-    XK_Greek_iota* = 0x000007E9
-    XK_Greek_kappa* = 0x000007EA
-    XK_Greek_lamda* = 0x000007EB
-    XK_Greek_lambda* = 0x000007EB
-    XK_Greek_mu* = 0x000007EC
-    XK_Greek_nu* = 0x000007ED
-    XK_Greek_xi* = 0x000007EE
-    XK_Greek_omicron* = 0x000007EF
-    XK_Greek_pi* = 0x000007F0
-    XK_Greek_rho* = 0x000007F1
-    XK_Greek_sigma* = 0x000007F2
-    XK_Greek_finalsmallsigma* = 0x000007F3
-    XK_Greek_tau* = 0x000007F4
-    XK_Greek_upsilon* = 0x000007F5
-    XK_Greek_phi* = 0x000007F6
-    XK_Greek_chi* = 0x000007F7
-    XK_Greek_psi* = 0x000007F8
-    XK_Greek_omega* = 0x000007F9
-    XK_Greek_switch* = 0x0000FF7E # Alias for mode_switch 
-# XK_GREEK 
-#*
-# * Technical
-# * Byte 3 = 8
-# *
-
-when defined(XK_TECHNICAL) or true: 
-  const
-    XK_leftradical* = 0x000008A1
-    XK_topleftradical* = 0x000008A2
-    XK_horizconnector* = 0x000008A3
-    XK_topintegral* = 0x000008A4
-    XK_botintegral* = 0x000008A5
-    XK_vertconnector* = 0x000008A6
-    XK_topleftsqbracket* = 0x000008A7
-    XK_botleftsqbracket* = 0x000008A8
-    XK_toprightsqbracket* = 0x000008A9
-    XK_botrightsqbracket* = 0x000008AA
-    XK_topleftparens* = 0x000008AB
-    XK_botleftparens* = 0x000008AC
-    XK_toprightparens* = 0x000008AD
-    XK_botrightparens* = 0x000008AE
-    XK_leftmiddlecurlybrace* = 0x000008AF
-    XK_rightmiddlecurlybrace* = 0x000008B0
-    XK_topleftsummation* = 0x000008B1
-    XK_botleftsummation* = 0x000008B2
-    XK_topvertsummationconnector* = 0x000008B3
-    XK_botvertsummationconnector* = 0x000008B4
-    XK_toprightsummation* = 0x000008B5
-    XK_botrightsummation* = 0x000008B6
-    XK_rightmiddlesummation* = 0x000008B7
-    XK_lessthanequal* = 0x000008BC
-    XK_notequal* = 0x000008BD
-    XK_greaterthanequal* = 0x000008BE
-    XK_integral* = 0x000008BF
-    XK_therefore* = 0x000008C0
-    XK_variation* = 0x000008C1
-    XK_infinity* = 0x000008C2
-    XK_nabla* = 0x000008C5
-    XK_approximate* = 0x000008C8
-    XK_similarequal* = 0x000008C9
-    XK_ifonlyif* = 0x000008CD
-    XK_implies* = 0x000008CE
-    XK_identical* = 0x000008CF
-    XK_radical* = 0x000008D6
-    XK_includedin* = 0x000008DA
-    XK_includes* = 0x000008DB
-    XK_intersection* = 0x000008DC
-    XK_union* = 0x000008DD
-    XK_logicaland* = 0x000008DE
-    XK_logicalor* = 0x000008DF
-    XK_partialderivative* = 0x000008EF
-    XK_function* = 0x000008F6
-    XK_leftarrow* = 0x000008FB
-    XK_uparrow* = 0x000008FC
-    XK_rightarrow* = 0x000008FD
-    XK_downarrow* = 0x000008FE
-# XK_TECHNICAL 
-#*
-# *  Special
-# *  Byte 3 = 9
-# *
-
-when defined(XK_SPECIAL): 
-  const
-    XK_blank* = 0x000009DF
-    XK_soliddiamond* = 0x000009E0
-    XK_checkerboard* = 0x000009E1
-    XK_ht* = 0x000009E2
-    XK_ff* = 0x000009E3
-    XK_cr* = 0x000009E4
-    XK_lf* = 0x000009E5
-    XK_nl* = 0x000009E8
-    XK_vt* = 0x000009E9
-    XK_lowrightcorner* = 0x000009EA
-    XK_uprightcorner* = 0x000009EB
-    XK_upleftcorner* = 0x000009EC
-    XK_lowleftcorner* = 0x000009ED
-    XK_crossinglines* = 0x000009EE
-    XK_horizlinescan1* = 0x000009EF
-    XK_horizlinescan3* = 0x000009F0
-    XK_horizlinescan5* = 0x000009F1
-    XK_horizlinescan7* = 0x000009F2
-    XK_horizlinescan9* = 0x000009F3
-    XK_leftt* = 0x000009F4
-    XK_rightt* = 0x000009F5
-    XK_bott* = 0x000009F6
-    XK_topt* = 0x000009F7
-    XK_vertbar* = 0x000009F8
-# XK_SPECIAL 
-#*
-# *  Publishing
-# *  Byte 3 = a
-# *
-
-when defined(XK_PUBLISHING) or true: 
-  const
-    XK_emspace* = 0x00000AA1
-    XK_enspace* = 0x00000AA2
-    XK_em3space* = 0x00000AA3
-    XK_em4space* = 0x00000AA4
-    XK_digitspace* = 0x00000AA5
-    XK_punctspace* = 0x00000AA6
-    XK_thinspace* = 0x00000AA7
-    XK_hairspace* = 0x00000AA8
-    XK_emdash* = 0x00000AA9
-    XK_endash* = 0x00000AAA
-    XK_signifblank* = 0x00000AAC
-    XK_ellipsis* = 0x00000AAE
-    XK_doubbaselinedot* = 0x00000AAF
-    XK_onethird* = 0x00000AB0
-    XK_twothirds* = 0x00000AB1
-    XK_onefifth* = 0x00000AB2
-    XK_twofifths* = 0x00000AB3
-    XK_threefifths* = 0x00000AB4
-    XK_fourfifths* = 0x00000AB5
-    XK_onesixth* = 0x00000AB6
-    XK_fivesixths* = 0x00000AB7
-    XK_careof* = 0x00000AB8
-    XK_figdash* = 0x00000ABB
-    XK_leftanglebracket* = 0x00000ABC
-    XK_decimalpoint* = 0x00000ABD
-    XK_rightanglebracket* = 0x00000ABE
-    XK_marker* = 0x00000ABF
-    XK_oneeighth* = 0x00000AC3
-    XK_threeeighths* = 0x00000AC4
-    XK_fiveeighths* = 0x00000AC5
-    XK_seveneighths* = 0x00000AC6
-    XK_trademark* = 0x00000AC9
-    XK_signaturemark* = 0x00000ACA
-    XK_trademarkincircle* = 0x00000ACB
-    XK_leftopentriangle* = 0x00000ACC
-    XK_rightopentriangle* = 0x00000ACD
-    XK_emopencircle* = 0x00000ACE
-    XK_emopenrectangle* = 0x00000ACF
-    XK_leftsinglequotemark* = 0x00000AD0
-    XK_rightsinglequotemark* = 0x00000AD1
-    XK_leftdoublequotemark* = 0x00000AD2
-    XK_rightdoublequotemark* = 0x00000AD3
-    XK_prescription* = 0x00000AD4
-    XK_minutes* = 0x00000AD6
-    XK_seconds* = 0x00000AD7
-    XK_latincross* = 0x00000AD9
-    XK_hexagram* = 0x00000ADA
-    XK_filledrectbullet* = 0x00000ADB
-    XK_filledlefttribullet* = 0x00000ADC
-    XK_filledrighttribullet* = 0x00000ADD
-    XK_emfilledcircle* = 0x00000ADE
-    XK_emfilledrect* = 0x00000ADF
-    XK_enopencircbullet* = 0x00000AE0
-    XK_enopensquarebullet* = 0x00000AE1
-    XK_openrectbullet* = 0x00000AE2
-    XK_opentribulletup* = 0x00000AE3
-    XK_opentribulletdown* = 0x00000AE4
-    XK_openstar* = 0x00000AE5
-    XK_enfilledcircbullet* = 0x00000AE6
-    XK_enfilledsqbullet* = 0x00000AE7
-    XK_filledtribulletup* = 0x00000AE8
-    XK_filledtribulletdown* = 0x00000AE9
-    XK_leftpointer* = 0x00000AEA
-    XK_rightpointer* = 0x00000AEB
-    XK_club* = 0x00000AEC
-    XK_diamond* = 0x00000AED
-    XK_heart* = 0x00000AEE
-    XK_maltesecross* = 0x00000AF0
-    XK_dagger* = 0x00000AF1
-    XK_doubledagger* = 0x00000AF2
-    XK_checkmark* = 0x00000AF3
-    XK_ballotcross* = 0x00000AF4
-    XK_musicalsharp* = 0x00000AF5
-    XK_musicalflat* = 0x00000AF6
-    XK_malesymbol* = 0x00000AF7
-    XK_femalesymbol* = 0x00000AF8
-    XK_telephone* = 0x00000AF9
-    XK_telephonerecorder* = 0x00000AFA
-    XK_phonographcopyright* = 0x00000AFB
-    XK_caret* = 0x00000AFC
-    XK_singlelowquotemark* = 0x00000AFD
-    XK_doublelowquotemark* = 0x00000AFE
-    XK_cursor* = 0x00000AFF
-# XK_PUBLISHING 
-#*
-# *  APL
-# *  Byte 3 = b
-# *
-
-when defined(XK_APL) or true: 
-  const
-    XK_leftcaret* = 0x00000BA3
-    XK_rightcaret* = 0x00000BA6
-    XK_downcaret* = 0x00000BA8
-    XK_upcaret* = 0x00000BA9
-    XK_overbar* = 0x00000BC0
-    XK_downtack* = 0x00000BC2
-    XK_upshoe* = 0x00000BC3
-    XK_downstile* = 0x00000BC4
-    XK_underbar* = 0x00000BC6
-    XK_jot* = 0x00000BCA
-    XK_quad* = 0x00000BCC
-    XK_uptack* = 0x00000BCE
-    XK_circle* = 0x00000BCF
-    XK_upstile* = 0x00000BD3
-    XK_downshoe* = 0x00000BD6
-    XK_rightshoe* = 0x00000BD8
-    XK_leftshoe* = 0x00000BDA
-    XK_lefttack* = 0x00000BDC
-    XK_righttack* = 0x00000BFC
-# XK_APL 
-#*
-# * Hebrew
-# * Byte 3 = c
-# *
-
-when defined(XK_HEBREW) or true: 
-  const
-    XK_hebrew_doublelowline* = 0x00000CDF
-    XK_hebrew_aleph* = 0x00000CE0
-    XK_hebrew_bet* = 0x00000CE1
-    XK_hebrew_beth* = 0x00000CE1 # deprecated 
-    XK_hebrew_gimel* = 0x00000CE2
-    XK_hebrew_gimmel* = 0x00000CE2 # deprecated 
-    XK_hebrew_dalet* = 0x00000CE3
-    XK_hebrew_daleth* = 0x00000CE3 # deprecated 
-    XK_hebrew_he* = 0x00000CE4
-    XK_hebrew_waw* = 0x00000CE5
-    XK_hebrew_zain* = 0x00000CE6
-    XK_hebrew_zayin* = 0x00000CE6 # deprecated 
-    XK_hebrew_chet* = 0x00000CE7
-    XK_hebrew_het* = 0x00000CE7 # deprecated 
-    XK_hebrew_tet* = 0x00000CE8
-    XK_hebrew_teth* = 0x00000CE8 # deprecated 
-    XK_hebrew_yod* = 0x00000CE9
-    XK_hebrew_finalkaph* = 0x00000CEA
-    XK_hebrew_kaph* = 0x00000CEB
-    XK_hebrew_lamed* = 0x00000CEC
-    XK_hebrew_finalmem* = 0x00000CED
-    XK_hebrew_mem* = 0x00000CEE
-    XK_hebrew_finalnun* = 0x00000CEF
-    XK_hebrew_nun* = 0x00000CF0
-    XK_hebrew_samech* = 0x00000CF1
-    XK_hebrew_samekh* = 0x00000CF1 # deprecated 
-    XK_hebrew_ayin* = 0x00000CF2
-    XK_hebrew_finalpe* = 0x00000CF3
-    XK_hebrew_pe* = 0x00000CF4
-    XK_hebrew_finalzade* = 0x00000CF5
-    XK_hebrew_finalzadi* = 0x00000CF5 # deprecated 
-    XK_hebrew_zade* = 0x00000CF6
-    XK_hebrew_zadi* = 0x00000CF6 # deprecated 
-    XK_hebrew_qoph* = 0x00000CF7
-    XK_hebrew_kuf* = 0x00000CF7 # deprecated 
-    XK_hebrew_resh* = 0x00000CF8
-    XK_hebrew_shin* = 0x00000CF9
-    XK_hebrew_taw* = 0x00000CFA
-    XK_hebrew_taf* = 0x00000CFA # deprecated 
-    XK_Hebrew_switch* = 0x0000FF7E # Alias for mode_switch 
-# XK_HEBREW 
-#*
-# * Thai
-# * Byte 3 = d
-# *
-
-when defined(XK_THAI) or true: 
-  const
-    XK_Thai_kokai* = 0x00000DA1
-    XK_Thai_khokhai* = 0x00000DA2
-    XK_Thai_khokhuat* = 0x00000DA3
-    XK_Thai_khokhwai* = 0x00000DA4
-    XK_Thai_khokhon* = 0x00000DA5
-    XK_Thai_khorakhang* = 0x00000DA6
-    XK_Thai_ngongu* = 0x00000DA7
-    XK_Thai_chochan* = 0x00000DA8
-    XK_Thai_choching* = 0x00000DA9
-    XK_Thai_chochang* = 0x00000DAA
-    XK_Thai_soso* = 0x00000DAB
-    XK_Thai_chochoe* = 0x00000DAC
-    XK_Thai_yoying* = 0x00000DAD
-    XK_Thai_dochada* = 0x00000DAE
-    XK_Thai_topatak* = 0x00000DAF
-    XK_Thai_thothan* = 0x00000DB0
-    XK_Thai_thonangmontho* = 0x00000DB1
-    XK_Thai_thophuthao* = 0x00000DB2
-    XK_Thai_nonen* = 0x00000DB3
-    XK_Thai_dodek* = 0x00000DB4
-    XK_Thai_totao* = 0x00000DB5
-    XK_Thai_thothung* = 0x00000DB6
-    XK_Thai_thothahan* = 0x00000DB7
-    XK_Thai_thothong* = 0x00000DB8
-    XK_Thai_nonu* = 0x00000DB9
-    XK_Thai_bobaimai* = 0x00000DBA
-    XK_Thai_popla* = 0x00000DBB
-    XK_Thai_phophung* = 0x00000DBC
-    XK_Thai_fofa* = 0x00000DBD
-    XK_Thai_phophan* = 0x00000DBE
-    XK_Thai_fofan* = 0x00000DBF
-    XK_Thai_phosamphao* = 0x00000DC0
-    XK_Thai_moma* = 0x00000DC1
-    XK_Thai_yoyak* = 0x00000DC2
-    XK_Thai_rorua* = 0x00000DC3
-    XK_Thai_ru* = 0x00000DC4
-    XK_Thai_loling* = 0x00000DC5
-    XK_Thai_lu* = 0x00000DC6
-    XK_Thai_wowaen* = 0x00000DC7
-    XK_Thai_sosala* = 0x00000DC8
-    XK_Thai_sorusi* = 0x00000DC9
-    XK_Thai_sosua* = 0x00000DCA
-    XK_Thai_hohip* = 0x00000DCB
-    XK_Thai_lochula* = 0x00000DCC
-    XK_Thai_oang* = 0x00000DCD
-    XK_Thai_honokhuk* = 0x00000DCE
-    XK_Thai_paiyannoi* = 0x00000DCF
-    XK_Thai_saraa* = 0x00000DD0
-    XK_Thai_maihanakat* = 0x00000DD1
-    XK_Thai_saraaa* = 0x00000DD2
-    XK_Thai_saraam* = 0x00000DD3
-    XK_Thai_sarai* = 0x00000DD4
-    XK_Thai_saraii* = 0x00000DD5
-    XK_Thai_saraue* = 0x00000DD6
-    XK_Thai_sarauee* = 0x00000DD7
-    XK_Thai_sarau* = 0x00000DD8
-    XK_Thai_sarauu* = 0x00000DD9
-    XK_Thai_phinthu* = 0x00000DDA
-    XK_Thai_maihanakat_maitho* = 0x00000DDE
-    XK_Thai_baht* = 0x00000DDF
-    XK_Thai_sarae* = 0x00000DE0
-    XK_Thai_saraae* = 0x00000DE1
-    XK_Thai_sarao* = 0x00000DE2
-    XK_Thai_saraaimaimuan* = 0x00000DE3
-    XK_Thai_saraaimaimalai* = 0x00000DE4
-    XK_Thai_lakkhangyao* = 0x00000DE5
-    XK_Thai_maiyamok* = 0x00000DE6
-    XK_Thai_maitaikhu* = 0x00000DE7
-    XK_Thai_maiek* = 0x00000DE8
-    XK_Thai_maitho* = 0x00000DE9
-    XK_Thai_maitri* = 0x00000DEA
-    XK_Thai_maichattawa* = 0x00000DEB
-    XK_Thai_thanthakhat* = 0x00000DEC
-    XK_Thai_nikhahit* = 0x00000DED
-    XK_Thai_leksun* = 0x00000DF0
-    XK_Thai_leknung* = 0x00000DF1
-    XK_Thai_leksong* = 0x00000DF2
-    XK_Thai_leksam* = 0x00000DF3
-    XK_Thai_leksi* = 0x00000DF4
-    XK_Thai_lekha* = 0x00000DF5
-    XK_Thai_lekhok* = 0x00000DF6
-    XK_Thai_lekchet* = 0x00000DF7
-    XK_Thai_lekpaet* = 0x00000DF8
-    XK_Thai_lekkao* = 0x00000DF9
-# XK_THAI 
-#*
-# *   Korean
-# *   Byte 3 = e
-# *
-
-when defined(XK_KOREAN) or true: 
-  const
-    XK_Hangul* = 0x0000FF31     # Hangul start/stop(toggle) 
-    XK_Hangul_Start* = 0x0000FF32 # Hangul start 
-    XK_Hangul_End* = 0x0000FF33 # Hangul end, English start 
-    XK_Hangul_Hanja* = 0x0000FF34 # Start Hangul->Hanja Conversion 
-    XK_Hangul_Jamo* = 0x0000FF35 # Hangul Jamo mode 
-    XK_Hangul_Romaja* = 0x0000FF36 # Hangul Romaja mode 
-    XK_Hangul_Codeinput* = 0x0000FF37 # Hangul code input mode 
-    XK_Hangul_Jeonja* = 0x0000FF38 # Jeonja mode 
-    XK_Hangul_Banja* = 0x0000FF39 # Banja mode 
-    XK_Hangul_PreHanja* = 0x0000FF3A # Pre Hanja conversion 
-    XK_Hangul_PostHanja* = 0x0000FF3B # Post Hanja conversion 
-    XK_Hangul_SingleCandidate* = 0x0000FF3C # Single candidate 
-    XK_Hangul_MultipleCandidate* = 0x0000FF3D # Multiple candidate 
-    XK_Hangul_PreviousCandidate* = 0x0000FF3E # Previous candidate 
-    XK_Hangul_Special* = 0x0000FF3F # Special symbols 
-    XK_Hangul_switch* = 0x0000FF7E # Alias for mode_switch 
-                                   # Hangul Consonant Characters 
-    XK_Hangul_Kiyeog* = 0x00000EA1
-    XK_Hangul_SsangKiyeog* = 0x00000EA2
-    XK_Hangul_KiyeogSios* = 0x00000EA3
-    XK_Hangul_Nieun* = 0x00000EA4
-    XK_Hangul_NieunJieuj* = 0x00000EA5
-    XK_Hangul_NieunHieuh* = 0x00000EA6
-    XK_Hangul_Dikeud* = 0x00000EA7
-    XK_Hangul_SsangDikeud* = 0x00000EA8
-    XK_Hangul_Rieul* = 0x00000EA9
-    XK_Hangul_RieulKiyeog* = 0x00000EAA
-    XK_Hangul_RieulMieum* = 0x00000EAB
-    XK_Hangul_RieulPieub* = 0x00000EAC
-    XK_Hangul_RieulSios* = 0x00000EAD
-    XK_Hangul_RieulTieut* = 0x00000EAE
-    XK_Hangul_RieulPhieuf* = 0x00000EAF
-    XK_Hangul_RieulHieuh* = 0x00000EB0
-    XK_Hangul_Mieum* = 0x00000EB1
-    XK_Hangul_Pieub* = 0x00000EB2
-    XK_Hangul_SsangPieub* = 0x00000EB3
-    XK_Hangul_PieubSios* = 0x00000EB4
-    XK_Hangul_Sios* = 0x00000EB5
-    XK_Hangul_SsangSios* = 0x00000EB6
-    XK_Hangul_Ieung* = 0x00000EB7
-    XK_Hangul_Jieuj* = 0x00000EB8
-    XK_Hangul_SsangJieuj* = 0x00000EB9
-    XK_Hangul_Cieuc* = 0x00000EBA
-    XK_Hangul_Khieuq* = 0x00000EBB
-    XK_Hangul_Tieut* = 0x00000EBC
-    XK_Hangul_Phieuf* = 0x00000EBD
-    XK_Hangul_Hieuh* = 0x00000EBE # Hangul Vowel Characters 
-    XK_Hangul_A* = 0x00000EBF
-    XK_Hangul_AE* = 0x00000EC0
-    XK_Hangul_YA* = 0x00000EC1
-    XK_Hangul_YAE* = 0x00000EC2
-    XK_Hangul_EO* = 0x00000EC3
-    XK_Hangul_E* = 0x00000EC4
-    XK_Hangul_YEO* = 0x00000EC5
-    XK_Hangul_YE* = 0x00000EC6
-    XK_Hangul_O* = 0x00000EC7
-    XK_Hangul_WA* = 0x00000EC8
-    XK_Hangul_WAE* = 0x00000EC9
-    XK_Hangul_OE* = 0x00000ECA
-    XK_Hangul_YO* = 0x00000ECB
-    XK_Hangul_U* = 0x00000ECC
-    XK_Hangul_WEO* = 0x00000ECD
-    XK_Hangul_WE* = 0x00000ECE
-    XK_Hangul_WI* = 0x00000ECF
-    XK_Hangul_YU* = 0x00000ED0
-    XK_Hangul_EU* = 0x00000ED1
-    XK_Hangul_YI* = 0x00000ED2
-    XK_Hangul_I* = 0x00000ED3   # Hangul syllable-final (JongSeong) Characters 
-    XK_Hangul_J_Kiyeog* = 0x00000ED4
-    XK_Hangul_J_SsangKiyeog* = 0x00000ED5
-    XK_Hangul_J_KiyeogSios* = 0x00000ED6
-    XK_Hangul_J_Nieun* = 0x00000ED7
-    XK_Hangul_J_NieunJieuj* = 0x00000ED8
-    XK_Hangul_J_NieunHieuh* = 0x00000ED9
-    XK_Hangul_J_Dikeud* = 0x00000EDA
-    XK_Hangul_J_Rieul* = 0x00000EDB
-    XK_Hangul_J_RieulKiyeog* = 0x00000EDC
-    XK_Hangul_J_RieulMieum* = 0x00000EDD
-    XK_Hangul_J_RieulPieub* = 0x00000EDE
-    XK_Hangul_J_RieulSios* = 0x00000EDF
-    XK_Hangul_J_RieulTieut* = 0x00000EE0
-    XK_Hangul_J_RieulPhieuf* = 0x00000EE1
-    XK_Hangul_J_RieulHieuh* = 0x00000EE2
-    XK_Hangul_J_Mieum* = 0x00000EE3
-    XK_Hangul_J_Pieub* = 0x00000EE4
-    XK_Hangul_J_PieubSios* = 0x00000EE5
-    XK_Hangul_J_Sios* = 0x00000EE6
-    XK_Hangul_J_SsangSios* = 0x00000EE7
-    XK_Hangul_J_Ieung* = 0x00000EE8
-    XK_Hangul_J_Jieuj* = 0x00000EE9
-    XK_Hangul_J_Cieuc* = 0x00000EEA
-    XK_Hangul_J_Khieuq* = 0x00000EEB
-    XK_Hangul_J_Tieut* = 0x00000EEC
-    XK_Hangul_J_Phieuf* = 0x00000EED
-    XK_Hangul_J_Hieuh* = 0x00000EEE # Ancient Hangul Consonant Characters 
-    XK_Hangul_RieulYeorinHieuh* = 0x00000EEF
-    XK_Hangul_SunkyeongeumMieum* = 0x00000EF0
-    XK_Hangul_SunkyeongeumPieub* = 0x00000EF1
-    XK_Hangul_PanSios* = 0x00000EF2
-    XK_Hangul_KkogjiDalrinIeung* = 0x00000EF3
-    XK_Hangul_SunkyeongeumPhieuf* = 0x00000EF4
-    XK_Hangul_YeorinHieuh* = 0x00000EF5 # Ancient Hangul Vowel Characters 
-    XK_Hangul_AraeA* = 0x00000EF6
-    XK_Hangul_AraeAE* = 0x00000EF7 # Ancient Hangul syllable-final (JongSeong) Characters 
-    XK_Hangul_J_PanSios* = 0x00000EF8
-    XK_Hangul_J_KkogjiDalrinIeung* = 0x00000EF9
-    XK_Hangul_J_YeorinHieuh* = 0x00000EFA # Korean currency symbol 
-    XK_Korean_Won* = 0x00000EFF
-# XK_KOREAN 
-#*
-# *   Armenian
-# *   Byte 3 = = $14
-# *
-
-when defined(XK_ARMENIAN) or true: 
-  const
-    XK_Armenian_eternity* = 0x000014A1
-    XK_Armenian_ligature_ew* = 0x000014A2
-    XK_Armenian_full_stop* = 0x000014A3
-    XK_Armenian_verjaket* = 0x000014A3
-    XK_Armenian_parenright* = 0x000014A4
-    XK_Armenian_parenleft* = 0x000014A5
-    XK_Armenian_guillemotright* = 0x000014A6
-    XK_Armenian_guillemotleft* = 0x000014A7
-    XK_Armenian_em_dash* = 0x000014A8
-    XK_Armenian_dot* = 0x000014A9
-    XK_Armenian_mijaket* = 0x000014A9
-    XK_Armenian_separation_mark* = 0x000014AA
-    XK_Armenian_but* = 0x000014AA
-    XK_Armenian_comma* = 0x000014AB
-    XK_Armenian_en_dash* = 0x000014AC
-    XK_Armenian_hyphen* = 0x000014AD
-    XK_Armenian_yentamna* = 0x000014AD
-    XK_Armenian_ellipsis* = 0x000014AE
-    XK_Armenian_exclam* = 0x000014AF
-    XK_Armenian_amanak* = 0x000014AF
-    XK_Armenian_accent* = 0x000014B0
-    XK_Armenian_shesht* = 0x000014B0
-    XK_Armenian_question* = 0x000014B1
-    XK_Armenian_paruyk* = 0x000014B1
-    XKc_Armenian_AYB* = 0x000014B2
-    XK_Armenian_ayb* = 0x000014B3
-    XKc_Armenian_BEN* = 0x000014B4
-    XK_Armenian_ben* = 0x000014B5
-    XKc_Armenian_GIM* = 0x000014B6
-    XK_Armenian_gim* = 0x000014B7
-    XKc_Armenian_DA* = 0x000014B8
-    XK_Armenian_da* = 0x000014B9
-    XKc_Armenian_YECH* = 0x000014BA
-    XK_Armenian_yech* = 0x000014BB
-    XKc_Armenian_ZA* = 0x000014BC
-    XK_Armenian_za* = 0x000014BD
-    XKc_Armenian_E* = 0x000014BE
-    XK_Armenian_e* = 0x000014BF
-    XKc_Armenian_AT* = 0x000014C0
-    XK_Armenian_at* = 0x000014C1
-    XKc_Armenian_TO* = 0x000014C2
-    XK_Armenian_to* = 0x000014C3
-    XKc_Armenian_ZHE* = 0x000014C4
-    XK_Armenian_zhe* = 0x000014C5
-    XKc_Armenian_INI* = 0x000014C6
-    XK_Armenian_ini* = 0x000014C7
-    XKc_Armenian_LYUN* = 0x000014C8
-    XK_Armenian_lyun* = 0x000014C9
-    XKc_Armenian_KHE* = 0x000014CA
-    XK_Armenian_khe* = 0x000014CB
-    XKc_Armenian_TSA* = 0x000014CC
-    XK_Armenian_tsa* = 0x000014CD
-    XKc_Armenian_KEN* = 0x000014CE
-    XK_Armenian_ken* = 0x000014CF
-    XKc_Armenian_HO* = 0x000014D0
-    XK_Armenian_ho* = 0x000014D1
-    XKc_Armenian_DZA* = 0x000014D2
-    XK_Armenian_dza* = 0x000014D3
-    XKc_Armenian_GHAT* = 0x000014D4
-    XK_Armenian_ghat* = 0x000014D5
-    XKc_Armenian_TCHE* = 0x000014D6
-    XK_Armenian_tche* = 0x000014D7
-    XKc_Armenian_MEN* = 0x000014D8
-    XK_Armenian_men* = 0x000014D9
-    XKc_Armenian_HI* = 0x000014DA
-    XK_Armenian_hi* = 0x000014DB
-    XKc_Armenian_NU* = 0x000014DC
-    XK_Armenian_nu* = 0x000014DD
-    XKc_Armenian_SHA* = 0x000014DE
-    XK_Armenian_sha* = 0x000014DF
-    XKc_Armenian_VO* = 0x000014E0
-    XK_Armenian_vo* = 0x000014E1
-    XKc_Armenian_CHA* = 0x000014E2
-    XK_Armenian_cha* = 0x000014E3
-    XKc_Armenian_PE* = 0x000014E4
-    XK_Armenian_pe* = 0x000014E5
-    XKc_Armenian_JE* = 0x000014E6
-    XK_Armenian_je* = 0x000014E7
-    XKc_Armenian_RA* = 0x000014E8
-    XK_Armenian_ra* = 0x000014E9
-    XKc_Armenian_SE* = 0x000014EA
-    XK_Armenian_se* = 0x000014EB
-    XKc_Armenian_VEV* = 0x000014EC
-    XK_Armenian_vev* = 0x000014ED
-    XKc_Armenian_TYUN* = 0x000014EE
-    XK_Armenian_tyun* = 0x000014EF
-    XKc_Armenian_RE* = 0x000014F0
-    XK_Armenian_re* = 0x000014F1
-    XKc_Armenian_TSO* = 0x000014F2
-    XK_Armenian_tso* = 0x000014F3
-    XKc_Armenian_VYUN* = 0x000014F4
-    XK_Armenian_vyun* = 0x000014F5
-    XKc_Armenian_PYUR* = 0x000014F6
-    XK_Armenian_pyur* = 0x000014F7
-    XKc_Armenian_KE* = 0x000014F8
-    XK_Armenian_ke* = 0x000014F9
-    XKc_Armenian_O* = 0x000014FA
-    XK_Armenian_o* = 0x000014FB
-    XKc_Armenian_FE* = 0x000014FC
-    XK_Armenian_fe* = 0x000014FD
-    XK_Armenian_apostrophe* = 0x000014FE
-    XK_Armenian_section_sign* = 0x000014FF
-# XK_ARMENIAN 
-#*
-# *   Georgian
-# *   Byte 3 = = $15
-# *
-
-when defined(XK_GEORGIAN) or true: 
-  const
-    XK_Georgian_an* = 0x000015D0
-    XK_Georgian_ban* = 0x000015D1
-    XK_Georgian_gan* = 0x000015D2
-    XK_Georgian_don* = 0x000015D3
-    XK_Georgian_en* = 0x000015D4
-    XK_Georgian_vin* = 0x000015D5
-    XK_Georgian_zen* = 0x000015D6
-    XK_Georgian_tan* = 0x000015D7
-    XK_Georgian_in* = 0x000015D8
-    XK_Georgian_kan* = 0x000015D9
-    XK_Georgian_las* = 0x000015DA
-    XK_Georgian_man* = 0x000015DB
-    XK_Georgian_nar* = 0x000015DC
-    XK_Georgian_on* = 0x000015DD
-    XK_Georgian_par* = 0x000015DE
-    XK_Georgian_zhar* = 0x000015DF
-    XK_Georgian_rae* = 0x000015E0
-    XK_Georgian_san* = 0x000015E1
-    XK_Georgian_tar* = 0x000015E2
-    XK_Georgian_un* = 0x000015E3
-    XK_Georgian_phar* = 0x000015E4
-    XK_Georgian_khar* = 0x000015E5
-    XK_Georgian_ghan* = 0x000015E6
-    XK_Georgian_qar* = 0x000015E7
-    XK_Georgian_shin* = 0x000015E8
-    XK_Georgian_chin* = 0x000015E9
-    XK_Georgian_can* = 0x000015EA
-    XK_Georgian_jil* = 0x000015EB
-    XK_Georgian_cil* = 0x000015EC
-    XK_Georgian_char* = 0x000015ED
-    XK_Georgian_xan* = 0x000015EE
-    XK_Georgian_jhan* = 0x000015EF
-    XK_Georgian_hae* = 0x000015F0
-    XK_Georgian_he* = 0x000015F1
-    XK_Georgian_hie* = 0x000015F2
-    XK_Georgian_we* = 0x000015F3
-    XK_Georgian_har* = 0x000015F4
-    XK_Georgian_hoe* = 0x000015F5
-    XK_Georgian_fi* = 0x000015F6
-# XK_GEORGIAN 
-#*
-# * Azeri (and other Turkic or Caucasian languages of ex-USSR)
-# * Byte 3 = = $16
-# *
-
-when defined(XK_CAUCASUS) or true: 
-  # latin 
-  const
-    XKc_Ccedillaabovedot* = 0x000016A2
-    XKc_Xabovedot* = 0x000016A3
-    XKc_Qabovedot* = 0x000016A5
-    XKc_Ibreve* = 0x000016A6
-    XKc_IE* = 0x000016A7
-    XKc_UO* = 0x000016A8
-    XKc_Zstroke* = 0x000016A9
-    XKc_Gcaron* = 0x000016AA
-    XKc_Obarred* = 0x000016AF
-    XK_ccedillaabovedot* = 0x000016B2
-    XK_xabovedot* = 0x000016B3
-    XKc_Ocaron* = 0x000016B4
-    XK_qabovedot* = 0x000016B5
-    XK_ibreve* = 0x000016B6
-    XK_ie* = 0x000016B7
-    XK_uo* = 0x000016B8
-    XK_zstroke* = 0x000016B9
-    XK_gcaron* = 0x000016BA
-    XK_ocaron* = 0x000016BD
-    XK_obarred* = 0x000016BF
-    XKc_SCHWA* = 0x000016C6
-    XK_schwa* = 0x000016F6 # those are not really Caucasus, but I put them here for now 
-                           # For Inupiak 
-    XKc_Lbelowdot* = 0x000016D1
-    XKc_Lstrokebelowdot* = 0x000016D2
-    XK_lbelowdot* = 0x000016E1
-    XK_lstrokebelowdot* = 0x000016E2 # For Guarani 
-    XKc_Gtilde* = 0x000016D3
-    XK_gtilde* = 0x000016E3
-# XK_CAUCASUS 
-#*
-# *   Vietnamese
-# *   Byte 3 = = $1e
-# *
-
-when defined(XK_VIETNAMESE) or true:
-  const 
-    XKc_Abelowdot* = 0x00001EA0
-    XK_abelowdot* = 0x00001EA1
-    XKc_Ahook* = 0x00001EA2
-    XK_ahook* = 0x00001EA3
-    XKc_Acircumflexacute* = 0x00001EA4
-    XK_acircumflexacute* = 0x00001EA5
-    XKc_Acircumflexgrave* = 0x00001EA6
-    XK_acircumflexgrave* = 0x00001EA7
-    XKc_Acircumflexhook* = 0x00001EA8
-    XK_acircumflexhook* = 0x00001EA9
-    XKc_Acircumflextilde* = 0x00001EAA
-    XK_acircumflextilde* = 0x00001EAB
-    XKc_Acircumflexbelowdot* = 0x00001EAC
-    XK_acircumflexbelowdot* = 0x00001EAD
-    XKc_Abreveacute* = 0x00001EAE
-    XK_abreveacute* = 0x00001EAF
-    XKc_Abrevegrave* = 0x00001EB0
-    XK_abrevegrave* = 0x00001EB1
-    XKc_Abrevehook* = 0x00001EB2
-    XK_abrevehook* = 0x00001EB3
-    XKc_Abrevetilde* = 0x00001EB4
-    XK_abrevetilde* = 0x00001EB5
-    XKc_Abrevebelowdot* = 0x00001EB6
-    XK_abrevebelowdot* = 0x00001EB7
-    XKc_Ebelowdot* = 0x00001EB8
-    XK_ebelowdot* = 0x00001EB9
-    XKc_Ehook* = 0x00001EBA
-    XK_ehook* = 0x00001EBB
-    XKc_Etilde* = 0x00001EBC
-    XK_etilde* = 0x00001EBD
-    XKc_Ecircumflexacute* = 0x00001EBE
-    XK_ecircumflexacute* = 0x00001EBF
-    XKc_Ecircumflexgrave* = 0x00001EC0
-    XK_ecircumflexgrave* = 0x00001EC1
-    XKc_Ecircumflexhook* = 0x00001EC2
-    XK_ecircumflexhook* = 0x00001EC3
-    XKc_Ecircumflextilde* = 0x00001EC4
-    XK_ecircumflextilde* = 0x00001EC5
-    XKc_Ecircumflexbelowdot* = 0x00001EC6
-    XK_ecircumflexbelowdot* = 0x00001EC7
-    XKc_Ihook* = 0x00001EC8
-    XK_ihook* = 0x00001EC9
-    XKc_Ibelowdot* = 0x00001ECA
-    XK_ibelowdot* = 0x00001ECB
-    XKc_Obelowdot* = 0x00001ECC
-    XK_obelowdot* = 0x00001ECD
-    XKc_Ohook* = 0x00001ECE
-    XK_ohook* = 0x00001ECF
-    XKc_Ocircumflexacute* = 0x00001ED0
-    XK_ocircumflexacute* = 0x00001ED1
-    XKc_Ocircumflexgrave* = 0x00001ED2
-    XK_ocircumflexgrave* = 0x00001ED3
-    XKc_Ocircumflexhook* = 0x00001ED4
-    XK_ocircumflexhook* = 0x00001ED5
-    XKc_Ocircumflextilde* = 0x00001ED6
-    XK_ocircumflextilde* = 0x00001ED7
-    XKc_Ocircumflexbelowdot* = 0x00001ED8
-    XK_ocircumflexbelowdot* = 0x00001ED9
-    XKc_Ohornacute* = 0x00001EDA
-    XK_ohornacute* = 0x00001EDB
-    XKc_Ohorngrave* = 0x00001EDC
-    XK_ohorngrave* = 0x00001EDD
-    XKc_Ohornhook* = 0x00001EDE
-    XK_ohornhook* = 0x00001EDF
-    XKc_Ohorntilde* = 0x00001EE0
-    XK_ohorntilde* = 0x00001EE1
-    XKc_Ohornbelowdot* = 0x00001EE2
-    XK_ohornbelowdot* = 0x00001EE3
-    XKc_Ubelowdot* = 0x00001EE4
-    XK_ubelowdot* = 0x00001EE5
-    XKc_Uhook* = 0x00001EE6
-    XK_uhook* = 0x00001EE7
-    XKc_Uhornacute* = 0x00001EE8
-    XK_uhornacute* = 0x00001EE9
-    XKc_Uhorngrave* = 0x00001EEA
-    XK_uhorngrave* = 0x00001EEB
-    XKc_Uhornhook* = 0x00001EEC
-    XK_uhornhook* = 0x00001EED
-    XKc_Uhorntilde* = 0x00001EEE
-    XK_uhorntilde* = 0x00001EEF
-    XKc_Uhornbelowdot* = 0x00001EF0
-    XK_uhornbelowdot* = 0x00001EF1
-    XKc_Ybelowdot* = 0x00001EF4
-    XK_ybelowdot* = 0x00001EF5
-    XKc_Yhook* = 0x00001EF6
-    XK_yhook* = 0x00001EF7
-    XKc_Ytilde* = 0x00001EF8
-    XK_ytilde* = 0x00001EF9
-    XKc_Ohorn* = 0x00001EFA     # U+01a0 
-    XK_ohorn* = 0x00001EFB      # U+01a1 
-    XKc_Uhorn* = 0x00001EFC     # U+01af 
-    XK_uhorn* = 0x00001EFD      # U+01b0 
-    XK_combining_tilde* = 0x00001E9F # U+0303 
-    XK_combining_grave* = 0x00001EF2 # U+0300 
-    XK_combining_acute* = 0x00001EF3 # U+0301 
-    XK_combining_hook* = 0x00001EFE # U+0309 
-    XK_combining_belowdot* = 0x00001EFF # U+0323 
-# XK_VIETNAMESE 
-
-when defined(XK_CURRENCY) or true: 
-  const
-    XK_EcuSign* = 0x000020A0
-    XK_ColonSign* = 0x000020A1
-    XK_CruzeiroSign* = 0x000020A2
-    XK_FFrancSign* = 0x000020A3
-    XK_LiraSign* = 0x000020A4
-    XK_MillSign* = 0x000020A5
-    XK_NairaSign* = 0x000020A6
-    XK_PesetaSign* = 0x000020A7
-    XK_RupeeSign* = 0x000020A8
-    XK_WonSign* = 0x000020A9
-    XK_NewSheqelSign* = 0x000020AA
-    XK_DongSign* = 0x000020AB
-    XK_EuroSign* = 0x000020AC
-# implementation
diff --git a/lib/wrappers/x11/x.nim b/lib/wrappers/x11/x.nim
deleted file mode 100644
index 2eefe311f..000000000
--- a/lib/wrappers/x11/x.nim
+++ /dev/null
@@ -1,401 +0,0 @@
-
-#
-#  Automatically converted by H2Pas 0.99.15 from x.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    x.h
-#
-# Pointers to basic pascal types, inserted by h2pas conversion program.
-import unsigned
-
-const 
-  X_PROTOCOL* = 11
-  X_PROTOCOL_REVISION* = 0
-
-type
-  PXID* = ptr TXID
-  TXID* = culong
-  PMask* = ptr TMask
-  TMask* = culong
-  PPAtom* = ptr PAtom
-  PAtom* = ptr TAtom
-  TAtom* = culong
-  PVisualID* = ptr TVisualID
-  TVisualID* = culong
-  PTime* = ptr TTime
-  TTime* = culong
-  PPWindow* = ptr PWindow
-  PWindow* = ptr TWindow
-  TWindow* = TXID
-  PDrawable* = ptr TDrawable
-  TDrawable* = TXID
-  PFont* = ptr TFont
-  TFont* = TXID
-  PPixmap* = ptr TPixmap
-  TPixmap* = TXID
-  PCursor* = ptr TCursor
-  TCursor* = TXID
-  PColormap* = ptr TColormap
-  TColormap* = TXID
-  PGContext* = ptr TGContext
-  TGContext* = TXID
-  PKeySym* = ptr TKeySym
-  TKeySym* = TXID
-  PKeyCode* = ptr TKeyCode
-  TKeyCode* = cuchar
-
-proc `==`*(a, b: TAtom): bool =
-    return unsigned.`==`(a,b)
-
-const 
-  None* = 0
-  ParentRelative* = 1
-  CopyFromParent* = 0
-  PointerWindow* = 0
-  InputFocus* = 1
-  PointerRoot* = 1
-  AnyPropertyType* = 0
-  AnyKey* = 0
-  AnyButton* = 0
-  AllTemporary* = 0
-  CurrentTime* = 0
-  NoSymbol* = 0
-  NoEventMask* = 0
-  KeyPressMask* = 1 shl 0
-  KeyReleaseMask* = 1 shl 1
-  ButtonPressMask* = 1 shl 2
-  ButtonReleaseMask* = 1 shl 3
-  EnterWindowMask* = 1 shl 4
-  LeaveWindowMask* = 1 shl 5
-  PointerMotionMask* = 1 shl 6
-  PointerMotionHintMask* = 1 shl 7
-  Button1MotionMask* = 1 shl 8
-  Button2MotionMask* = 1 shl 9
-  Button3MotionMask* = 1 shl 10
-  Button4MotionMask* = 1 shl 11
-  Button5MotionMask* = 1 shl 12
-  ButtonMotionMask* = 1 shl 13
-  KeymapStateMask* = 1 shl 14
-  ExposureMask* = 1 shl 15
-  VisibilityChangeMask* = 1 shl 16
-  StructureNotifyMask* = 1 shl 17
-  ResizeRedirectMask* = 1 shl 18
-  SubstructureNotifyMask* = 1 shl 19
-  SubstructureRedirectMask* = 1 shl 20
-  FocusChangeMask* = 1 shl 21
-  PropertyChangeMask* = 1 shl 22
-  ColormapChangeMask* = 1 shl 23
-  OwnerGrabButtonMask* = 1 shl 24
-  KeyPress* = 2
-  KeyRelease* = 3
-  ButtonPress* = 4
-  ButtonRelease* = 5
-  MotionNotify* = 6
-  EnterNotify* = 7
-  LeaveNotify* = 8
-  FocusIn* = 9
-  FocusOut* = 10
-  KeymapNotify* = 11
-  Expose* = 12
-  GraphicsExpose* = 13
-  NoExpose* = 14
-  VisibilityNotify* = 15
-  CreateNotify* = 16
-  DestroyNotify* = 17
-  UnmapNotify* = 18
-  MapNotify* = 19
-  MapRequest* = 20
-  ReparentNotify* = 21
-  ConfigureNotify* = 22
-  ConfigureRequest* = 23
-  GravityNotify* = 24
-  ResizeRequest* = 25
-  CirculateNotify* = 26
-  CirculateRequest* = 27
-  PropertyNotify* = 28
-  SelectionClear* = 29
-  SelectionRequest* = 30
-  SelectionNotify* = 31
-  ColormapNotify* = 32
-  ClientMessage* = 33
-  MappingNotify* = 34
-  LASTEvent* = 35
-  ShiftMask* = 1 shl 0
-  LockMask* = 1 shl 1
-  ControlMask* = 1 shl 2
-  Mod1Mask* = 1 shl 3
-  Mod2Mask* = 1 shl 4
-  Mod3Mask* = 1 shl 5
-  Mod4Mask* = 1 shl 6
-  Mod5Mask* = 1 shl 7
-  ShiftMapIndex* = 0
-  LockMapIndex* = 1
-  ControlMapIndex* = 2
-  Mod1MapIndex* = 3
-  Mod2MapIndex* = 4
-  Mod3MapIndex* = 5
-  Mod4MapIndex* = 6
-  Mod5MapIndex* = 7
-  Button1Mask* = 1 shl 8
-  Button2Mask* = 1 shl 9
-  Button3Mask* = 1 shl 10
-  Button4Mask* = 1 shl 11
-  Button5Mask* = 1 shl 12
-  AnyModifier* = 1 shl 15
-  Button1* = 1
-  Button2* = 2
-  Button3* = 3
-  Button4* = 4
-  Button5* = 5
-  NotifyNormal* = 0
-  NotifyGrab* = 1
-  NotifyUngrab* = 2
-  NotifyWhileGrabbed* = 3
-  NotifyHint* = 1
-  NotifyAncestor* = 0
-  NotifyVirtual* = 1
-  NotifyInferior* = 2
-  NotifyNonlinear* = 3
-  NotifyNonlinearVirtual* = 4
-  NotifyPointer* = 5
-  NotifyPointerRoot* = 6
-  NotifyDetailNone* = 7
-  VisibilityUnobscured* = 0
-  VisibilityPartiallyObscured* = 1
-  VisibilityFullyObscured* = 2
-  PlaceOnTop* = 0
-  PlaceOnBottom* = 1
-  FamilyInternet* = 0
-  FamilyDECnet* = 1
-  FamilyChaos* = 2
-  FamilyInternet6* = 6
-  FamilyServerInterpreted* = 5
-  PropertyNewValue* = 0
-  PropertyDelete* = 1
-  ColormapUninstalled* = 0
-  ColormapInstalled* = 1
-  GrabModeSync* = 0
-  GrabModeAsync* = 1
-  GrabSuccess* = 0
-  AlreadyGrabbed* = 1
-  GrabInvalidTime* = 2
-  GrabNotViewable* = 3
-  GrabFrozen* = 4
-  AsyncPointer* = 0
-  SyncPointer* = 1
-  ReplayPointer* = 2
-  AsyncKeyboard* = 3
-  SyncKeyboard* = 4
-  ReplayKeyboard* = 5
-  AsyncBoth* = 6
-  SyncBoth* = 7
-  RevertToNone* = None
-  RevertToPointerRoot* = PointerRoot
-  RevertToParent* = 2
-  Success* = 0
-  BadRequest* = 1
-  BadValue* = 2
-  BadWindow* = 3
-  BadPixmap* = 4
-  BadAtom* = 5
-  BadCursor* = 6
-  BadFont* = 7
-  BadMatch* = 8
-  BadDrawable* = 9
-  BadAccess* = 10
-  BadAlloc* = 11
-  BadColor* = 12
-  BadGC* = 13
-  BadIDChoice* = 14
-  BadName* = 15
-  BadLength* = 16
-  BadImplementation* = 17
-  FirstExtensionError* = 128
-  LastExtensionError* = 255
-  InputOutput* = 1
-  InputOnly* = 2
-  CWBackPixmap* = 1 shl 0
-  CWBackPixel* = 1 shl 1
-  CWBorderPixmap* = 1 shl 2
-  CWBorderPixel* = 1 shl 3
-  CWBitGravity* = 1 shl 4
-  CWWinGravity* = 1 shl 5
-  CWBackingStore* = 1 shl 6
-  CWBackingPlanes* = 1 shl 7
-  CWBackingPixel* = 1 shl 8
-  CWOverrideRedirect* = 1 shl 9
-  CWSaveUnder* = 1 shl 10
-  CWEventMask* = 1 shl 11
-  CWDontPropagate* = 1 shl 12
-  CWColormap* = 1 shl 13
-  CWCursor* = 1 shl 14
-  CWX* = 1 shl 0
-  CWY* = 1 shl 1
-  CWWidth* = 1 shl 2
-  CWHeight* = 1 shl 3
-  CWBorderWidth* = 1 shl 4
-  CWSibling* = 1 shl 5
-  CWStackMode* = 1 shl 6
-  ForgetGravity* = 0
-  NorthWestGravity* = 1
-  NorthGravity* = 2
-  NorthEastGravity* = 3
-  WestGravity* = 4
-  CenterGravity* = 5
-  EastGravity* = 6
-  SouthWestGravity* = 7
-  SouthGravity* = 8
-  SouthEastGravity* = 9
-  StaticGravity* = 10
-  UnmapGravity* = 0
-  NotUseful* = 0
-  WhenMapped* = 1
-  Always* = 2
-  IsUnmapped* = 0
-  IsUnviewable* = 1
-  IsViewable* = 2
-  SetModeInsert* = 0
-  SetModeDelete* = 1
-  DestroyAll* = 0
-  RetainPermanent* = 1
-  RetainTemporary* = 2
-  Above* = 0
-  Below* = 1
-  TopIf* = 2
-  BottomIf* = 3
-  Opposite* = 4
-  RaiseLowest* = 0
-  LowerHighest* = 1
-  PropModeReplace* = 0
-  PropModePrepend* = 1
-  PropModeAppend* = 2
-  GXclear* = 0x00000000
-  GXand* = 0x00000001
-  GXandReverse* = 0x00000002
-  GXcopy* = 0x00000003
-  GXandInverted* = 0x00000004
-  GXnoop* = 0x00000005
-  GXxor* = 0x00000006
-  GXor* = 0x00000007
-  GXnor* = 0x00000008
-  GXequiv* = 0x00000009
-  GXinvert* = 0x0000000A
-  GXorReverse* = 0x0000000B
-  GXcopyInverted* = 0x0000000C
-  GXorInverted* = 0x0000000D
-  GXnand* = 0x0000000E
-  GXset* = 0x0000000F
-  LineSolid* = 0
-  LineOnOffDash* = 1
-  LineDoubleDash* = 2
-  CapNotLast* = 0
-  CapButt* = 1
-  CapRound* = 2
-  CapProjecting* = 3
-  JoinMiter* = 0
-  JoinRound* = 1
-  JoinBevel* = 2
-  FillSolid* = 0
-  FillTiled* = 1
-  FillStippled* = 2
-  FillOpaqueStippled* = 3
-  EvenOddRule* = 0
-  WindingRule* = 1
-  ClipByChildren* = 0
-  IncludeInferiors* = 1
-  Unsorted* = 0
-  YSorted* = 1
-  YXSorted* = 2
-  YXBanded* = 3
-  CoordModeOrigin* = 0
-  CoordModePrevious* = 1
-  Complex* = 0
-  Nonconvex* = 1
-  Convex* = 2
-  ArcChord* = 0
-  ArcPieSlice* = 1
-  GCFunction* = 1 shl 0
-  GCPlaneMask* = 1 shl 1
-  GCForeground* = 1 shl 2
-  GCBackground* = 1 shl 3
-  GCLineWidth* = 1 shl 4
-  GCLineStyle* = 1 shl 5
-  GCCapStyle* = 1 shl 6
-  GCJoinStyle* = 1 shl 7
-  GCFillStyle* = 1 shl 8
-  GCFillRule* = 1 shl 9
-  GCTile* = 1 shl 10
-  GCStipple* = 1 shl 11
-  GCTileStipXOrigin* = 1 shl 12
-  GCTileStipYOrigin* = 1 shl 13
-  GCFont* = 1 shl 14
-  GCSubwindowMode* = 1 shl 15
-  GCGraphicsExposures* = 1 shl 16
-  GCClipXOrigin* = 1 shl 17
-  GCClipYOrigin* = 1 shl 18
-  GCClipMask* = 1 shl 19
-  GCDashOffset* = 1 shl 20
-  GCDashList* = 1 shl 21
-  GCArcMode* = 1 shl 22
-  GCLastBit* = 22
-  FontLeftToRight* = 0
-  FontRightToLeft* = 1
-  FontChange* = 255
-  XYBitmap* = 0
-  XYPixmap* = 1
-  ZPixmap* = 2
-  AllocNone* = 0
-  AllocAll* = 1
-  DoRed* = 1 shl 0
-  DoGreen* = 1 shl 1
-  DoBlue* = 1 shl 2
-  CursorShape* = 0
-  TileShape* = 1
-  StippleShape* = 2
-  AutoRepeatModeOff* = 0
-  AutoRepeatModeOn* = 1
-  AutoRepeatModeDefault* = 2
-  LedModeOff* = 0
-  LedModeOn* = 1
-  KBKeyClickPercent* = 1 shl 0
-  KBBellPercent* = 1 shl 1
-  KBBellPitch* = 1 shl 2
-  KBBellDuration* = 1 shl 3
-  KBLed* = 1 shl 4
-  KBLedMode* = 1 shl 5
-  KBKey* = 1 shl 6
-  KBAutoRepeatMode* = 1 shl 7
-  MappingSuccess* = 0
-  MappingBusy* = 1
-  MappingFailed* = 2
-  MappingModifier* = 0
-  MappingKeyboard* = 1
-  MappingPointer* = 2
-  DontPreferBlanking* = 0
-  PreferBlanking* = 1
-  DefaultBlanking* = 2
-  DisableScreenSaver* = 0
-  DisableScreenInterval* = 0
-  DontAllowExposures* = 0
-  AllowExposures* = 1
-  DefaultExposures* = 2
-  ScreenSaverReset* = 0
-  ScreenSaverActive* = 1
-  HostInsert* = 0
-  HostDelete* = 1
-  EnableAccess* = 1
-  DisableAccess* = 0
-  StaticGray* = 0
-  GrayScale* = 1
-  StaticColor* = 2
-  PseudoColor* = 3
-  TrueColor* = 4
-  DirectColor* = 5
-  LSBFirst* = 0
-  MSBFirst* = 1
-
-# implementation
diff --git a/lib/wrappers/x11/x11pragma.nim b/lib/wrappers/x11/x11pragma.nim
deleted file mode 100644
index bc88fb004..000000000
--- a/lib/wrappers/x11/x11pragma.nim
+++ /dev/null
@@ -1,20 +0,0 @@
-# included from xlib bindings
-
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libx11, cdecl, importc.}
-    {.pragma: libx11c, cdecl.}
-    when defined(use_pkg_config_static):
-        {.passl: gorge("pkg-config x11 --static --libs").}
-    else:
-        {.passl: gorge("pkg-config x11 --libs").}
-else:
-    when defined(macosx):
-        const 
-          libX11* = "libX11.dylib"
-    else:
-        const 
-          libX11* = "libX11.so"
-
-    {.pragma: libx11, cdecl, dynlib: libX11, importc.}
-    {.pragma: libx11c, cdecl, dynlib: libX11.}
diff --git a/lib/wrappers/x11/xatom.nim b/lib/wrappers/x11/xatom.nim
deleted file mode 100644
index b2e1dca91..000000000
--- a/lib/wrappers/x11/xatom.nim
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# THIS IS A GENERATED FILE
-#
-# Do not change!  Changing this file implies a protocol change!
-#
-
-import  
-  X
-
-const 
-  XA_PRIMARY* = TAtom(1)
-  XA_SECONDARY* = TAtom(2)
-  XA_ARC* = TAtom(3)
-  XA_ATOM* = TAtom(4)
-  XA_BITMAP* = TAtom(5)
-  XA_CARDINAL* = TAtom(6)
-  XA_COLORMAP* = TAtom(7)
-  XA_CURSOR* = TAtom(8)
-  XA_CUT_BUFFER0* = TAtom(9)
-  XA_CUT_BUFFER1* = TAtom(10)
-  XA_CUT_BUFFER2* = TAtom(11)
-  XA_CUT_BUFFER3* = TAtom(12)
-  XA_CUT_BUFFER4* = TAtom(13)
-  XA_CUT_BUFFER5* = TAtom(14)
-  XA_CUT_BUFFER6* = TAtom(15)
-  XA_CUT_BUFFER7* = TAtom(16)
-  XA_DRAWABLE* = TAtom(17)
-  XA_FONT* = TAtom(18)
-  XA_INTEGER* = TAtom(19)
-  XA_PIXMAP* = TAtom(20)
-  XA_POINT* = TAtom(21)
-  XA_RECTANGLE* = TAtom(22)
-  XA_RESOURCE_MANAGER* = TAtom(23)
-  XA_RGB_COLOR_MAP* = TAtom(24)
-  XA_RGB_BEST_MAP* = TAtom(25)
-  XA_RGB_BLUE_MAP* = TAtom(26)
-  XA_RGB_DEFAULT_MAP* = TAtom(27)
-  XA_RGB_GRAY_MAP* = TAtom(28)
-  XA_RGB_GREEN_MAP* = TAtom(29)
-  XA_RGB_RED_MAP* = TAtom(30)
-  XA_STRING* = TAtom(31)
-  XA_VISUALID* = TAtom(32)
-  XA_WINDOW* = TAtom(33)
-  XA_WM_COMMAND* = TAtom(34)
-  XA_WM_HINTS* = TAtom(35)
-  XA_WM_CLIENT_MACHINE* = TAtom(36)
-  XA_WM_ICON_NAME* = TAtom(37)
-  XA_WM_ICON_SIZE* = TAtom(38)
-  XA_WM_NAME* = TAtom(39)
-  XA_WM_NORMAL_HINTS* = TAtom(40)
-  XA_WM_SIZE_HINTS* = TAtom(41)
-  XA_WM_ZOOM_HINTS* = TAtom(42)
-  XA_MIN_SPACE* = TAtom(43)
-  XA_NORM_SPACE* = TAtom(44)
-  XA_MAX_SPACE* = TAtom(45)
-  XA_END_SPACE* = TAtom(46)
-  XA_SUPERSCRIPT_X* = TAtom(47)
-  XA_SUPERSCRIPT_Y* = TAtom(48)
-  XA_SUBSCRIPT_X* = TAtom(49)
-  XA_SUBSCRIPT_Y* = TAtom(50)
-  XA_UNDERLINE_POSITION* = TAtom(51)
-  XA_UNDERLINE_THICKNESS* = TAtom(52)
-  XA_STRIKEOUT_ASCENT* = TAtom(53)
-  XA_STRIKEOUT_DESCENT* = TAtom(54)
-  XA_ITALIC_ANGLE* = TAtom(55)
-  XA_X_HEIGHT* = TAtom(56)
-  XA_QUAD_WIDTH* = TAtom(57)
-  XA_WEIGHT* = TAtom(58)
-  XA_POINT_SIZE* = TAtom(59)
-  XA_RESOLUTION* = TAtom(60)
-  XA_COPYRIGHT* = TAtom(61)
-  XA_NOTICE* = TAtom(62)
-  XA_FONT_NAME* = TAtom(63)
-  XA_FAMILY_NAME* = TAtom(64)
-  XA_FULL_NAME* = TAtom(65)
-  XA_CAP_HEIGHT* = TAtom(66)
-  XA_WM_CLASS* = TAtom(67)
-  XA_WM_TRANSIENT_FOR* = TAtom(68)
-  XA_LAST_PREDEFINED* = TAtom(68)
-
-# implementation
diff --git a/lib/wrappers/x11/xcms.nim b/lib/wrappers/x11/xcms.nim
deleted file mode 100644
index 57aad6ae0..000000000
--- a/lib/wrappers/x11/xcms.nim
+++ /dev/null
@@ -1,396 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "X11" 
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xcms.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xcms.h
-#
-
-const 
-  XcmsFailure* = 0
-  XcmsSuccess* = 1
-  XcmsSuccessWithCompression* = 2
-
-type 
-  PXcmsColorFormat* = ptr TXcmsColorFormat
-  TXcmsColorFormat* = int32
-
-proc XcmsUndefinedFormat*(): TXcmsColorFormat
-proc XcmsCIEXYZFormat*(): TXcmsColorFormat
-proc XcmsCIEuvYFormat*(): TXcmsColorFormat
-proc XcmsCIExyYFormat*(): TXcmsColorFormat
-proc XcmsCIELabFormat*(): TXcmsColorFormat
-proc XcmsCIELuvFormat*(): TXcmsColorFormat
-proc XcmsTekHVCFormat*(): TXcmsColorFormat
-proc XcmsRGBFormat*(): TXcmsColorFormat
-proc XcmsRGBiFormat*(): TXcmsColorFormat
-const 
-  XcmsInitNone* = 0x00000000
-  XcmsInitSuccess* = 0x00000001
-  XcmsInitFailure* = 0x000000FF
-
-when defined(MACROS): 
-  proc DisplayOfCCC*(ccc: int32): int32
-  proc ScreenNumberOfCCC*(ccc: int32): int32
-  proc VisualOfCCC*(ccc: int32): int32
-  proc ClientWhitePointOfCCC*(ccc: int32): int32
-  proc ScreenWhitePointOfCCC*(ccc: int32): int32
-  proc FunctionSetOfCCC*(ccc: int32): int32
-type 
-  PXcmsFloat* = ptr TXcmsFloat
-  TXcmsFloat* = float64
-  PXcmsRGB* = ptr TXcmsRGB
-  TXcmsRGB*{.final.} = object 
-    red*: int16
-    green*: int16
-    blue*: int16
-
-  PXcmsRGBi* = ptr TXcmsRGBi
-  TXcmsRGBi*{.final.} = object 
-    red*: TXcmsFloat
-    green*: TXcmsFloat
-    blue*: TXcmsFloat
-
-  PXcmsCIEXYZ* = ptr TXcmsCIEXYZ
-  TXcmsCIEXYZ*{.final.} = object 
-    X*: TXcmsFloat
-    Y*: TXcmsFloat
-    Z*: TXcmsFloat
-
-  PXcmsCIEuvY* = ptr TXcmsCIEuvY
-  TXcmsCIEuvY*{.final.} = object 
-    u_prime*: TXcmsFloat
-    v_prime*: TXcmsFloat
-    Y*: TXcmsFloat
-
-  PXcmsCIExyY* = ptr TXcmsCIExyY
-  TXcmsCIExyY*{.final.} = object 
-    x*: TXcmsFloat
-    y*: TXcmsFloat
-    theY*: TXcmsFloat
-
-  PXcmsCIELab* = ptr TXcmsCIELab
-  TXcmsCIELab*{.final.} = object 
-    L_star*: TXcmsFloat
-    a_star*: TXcmsFloat
-    b_star*: TXcmsFloat
-
-  PXcmsCIELuv* = ptr TXcmsCIELuv
-  TXcmsCIELuv*{.final.} = object 
-    L_star*: TXcmsFloat
-    u_star*: TXcmsFloat
-    v_star*: TXcmsFloat
-
-  PXcmsTekHVC* = ptr TXcmsTekHVC
-  TXcmsTekHVC*{.final.} = object 
-    H*: TXcmsFloat
-    V*: TXcmsFloat
-    C*: TXcmsFloat
-
-  PXcmsPad* = ptr TXcmsPad
-  TXcmsPad*{.final.} = object 
-    pad0*: TXcmsFloat
-    pad1*: TXcmsFloat
-    pad2*: TXcmsFloat
-    pad3*: TXcmsFloat
-
-  PXcmsColor* = ptr TXcmsColor
-  TXcmsColor*{.final.} = object  # spec : record
-                                 #            case longint of
-                                 #               0 : ( RGB : TXcmsRGB );
-                                 #               1 : ( RGBi : TXcmsRGBi );
-                                 #               2 : ( CIEXYZ : TXcmsCIEXYZ );
-                                 #               3 : ( CIEuvY : TXcmsCIEuvY );
-                                 #               4 : ( CIExyY : TXcmsCIExyY );
-                                 #               5 : ( CIELab : TXcmsCIELab );
-                                 #               6 : ( CIELuv : TXcmsCIELuv );
-                                 #               7 : ( TekHVC : TXcmsTekHVC );
-                                 #               8 : ( Pad : TXcmsPad ); 
-                                 #            end; 
-    pad*: TXcmsPad
-    pixel*: int32
-    format*: TXcmsColorFormat
-
-  PXcmsPerScrnInfo* = ptr TXcmsPerScrnInfo
-  TXcmsPerScrnInfo*{.final.} = object 
-    screenWhitePt*: TXcmsColor
-    functionSet*: TXPointer
-    screenData*: TXPointer
-    state*: int8
-    pad*: array[0..2, char]
-
-  PXcmsCCC* = ptr TXcmsCCC
-  TXcmsCompressionProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, 
-                                para3: int32, para4: int32, para5: PBool): TStatus{.
-      cdecl.}
-  TXcmsWhiteAdjustProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, 
-                                para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-      cdecl.}
-  TXcmsCCC*{.final.} = object 
-    dpy*: PDisplay
-    screenNumber*: int32
-    visual*: PVisual
-    clientWhitePt*: TXcmsColor
-    gamutCompProc*: TXcmsCompressionProc
-    gamutCompClientData*: TXPointer
-    whitePtAdjProc*: TXcmsWhiteAdjustProc
-    whitePtAdjClientData*: TXPointer
-    pPerScrnInfo*: PXcmsPerScrnInfo
-
-  TXcmsCCCRec* = TXcmsCCC
-  PXcmsCCCRec* = ptr TXcmsCCCRec
-  TXcmsScreenInitProc* = proc (para1: PDisplay, para2: int32, 
-                               para3: PXcmsPerScrnInfo): TStatus{.cdecl.}
-  TXcmsScreenFreeProc* = proc (para1: TXPointer){.cdecl.}
-  TXcmsConversionProc* = proc (){.cdecl.}
-  PXcmsFuncListPtr* = ptr TXcmsFuncListPtr
-  TXcmsFuncListPtr* = TXcmsConversionProc
-  TXcmsParseStringProc* = proc (para1: cstring, para2: PXcmsColor): int32{.cdecl.}
-  PXcmsColorSpace* = ptr TXcmsColorSpace
-  TXcmsColorSpace*{.final.} = object 
-    prefix*: cstring
-    id*: TXcmsColorFormat
-    parseString*: TXcmsParseStringProc
-    to_CIEXYZ*: TXcmsFuncListPtr
-    from_CIEXYZ*: TXcmsFuncListPtr
-    inverse_flag*: int32
-
-  PXcmsFunctionSet* = ptr TXcmsFunctionSet
-  TXcmsFunctionSet*{.final.} = object  # error
-                                       #extern Status XcmsAddColorSpace (
-                                       #in declaration at line 323 
-    DDColorSpaces*: ptr PXcmsColorSpace
-    screenInitProc*: TXcmsScreenInitProc
-    screenFreeProc*: TXcmsScreenFreeProc
-
-
-proc XcmsAddFunctionSet*(para1: PXcmsFunctionSet): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsAllocColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                     para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsAllocNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                          para4: PXcmsColor, para5: PXcmsColor, 
-                          para6: TXcmsColorFormat): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCCCOfColormap*(para1: PDisplay, para2: TColormap): TXcmsCCC{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabClipLab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELabQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELabQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELabToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIELabWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvClipLuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvClipuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCIELuvQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsCIELuvToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIELuvWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIELab*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToCIExyY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEXYZToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToCIELuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIEuvYToTekHVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsCIExyYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsClientWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsConvertColors*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                        para4: TXcmsColorFormat, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsCreateCCC*(para1: PDisplay, para2: int32, para3: PVisual, 
-                    para4: PXcmsColor, para5: TXcmsCompressionProc, 
-                    para6: TXPointer, para7: TXcmsWhiteAdjustProc, 
-                    para8: TXPointer): TXcmsCCC{.cdecl, dynlib: libX11, importc.}
-proc XcmsDefaultCCC*(para1: PDisplay, para2: int32): TXcmsCCC{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsDisplayOfCCC*(para1: TXcmsCCC): PDisplay{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsFormatOfPrefix*(para1: cstring): TXcmsColorFormat{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsFreeCCC*(para1: TXcmsCCC){.cdecl, dynlib: libX11, importc.}
-proc XcmsLookupColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                      para4: PXcmsColor, para5: PXcmsColor, 
-                      para6: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsPrefixOfFormat*(para1: TXcmsColorFormat): cstring{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsQueryBlack*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryBlue*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                     para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsQueryColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                      para4: int32, para5: TXcmsColorFormat): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsQueryGreen*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryRed*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsQueryWhite*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsRGBiToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsRGBiToRGB*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                    para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsRGBToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                    para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsScreenNumberOfCCC*(para1: TXcmsCCC): int32{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsScreenWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetCCCOfColormap*(para1: PDisplay, para2: TColormap, para3: TXcmsCCC): TXcmsCCC{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsSetCompressionProc*(para1: TXcmsCCC, para2: TXcmsCompressionProc, 
-                             para3: TXPointer): TXcmsCompressionProc{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetWhiteAdjustProc*(para1: TXcmsCCC, para2: TXcmsWhiteAdjustProc, 
-                             para3: TXPointer): TXcmsWhiteAdjustProc{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsSetWhitePoint*(para1: TXcmsCCC, para2: PXcmsColor): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsStoreColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsStoreColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipV*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                      para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCClipVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32, 
-                       para4: int32, para5: PBool): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCQueryMaxV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCQueryMaxVC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMaxVSamples*(para1: TXcmsCCC, para2: TXcmsFloat, 
-                                 para3: PXcmsColor, para4: int32): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCQueryMinV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat, 
-                          para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XcmsTekHVCToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor, 
-                         para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XcmsTekHVCWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor, 
-                                 para3: PXcmsColor, para4: TXcmsColorFormat, 
-                                 para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XcmsVisualOfCCC*(para1: TXcmsCCC): PVisual{.cdecl, dynlib: libX11, importc.}
-# implementation
-
-proc XcmsUndefinedFormat(): TXcmsColorFormat = 
-  result = 0x00000000'i32
-
-proc XcmsCIEXYZFormat(): TXcmsColorFormat = 
-  result = 0x00000001'i32
-
-proc XcmsCIEuvYFormat(): TXcmsColorFormat = 
-  result = 0x00000002'i32
-
-proc XcmsCIExyYFormat(): TXcmsColorFormat = 
-  result = 0x00000003'i32
-
-proc XcmsCIELabFormat(): TXcmsColorFormat = 
-  result = 0x00000004'i32
-
-proc XcmsCIELuvFormat(): TXcmsColorFormat = 
-  result = 0x00000005'i32
-
-proc XcmsTekHVCFormat(): TXcmsColorFormat = 
-  result = 0x00000006'i32
-
-proc XcmsRGBFormat(): TXcmsColorFormat = 
-  result = 0x80000000'i32
-
-proc XcmsRGBiFormat(): TXcmsColorFormat = 
-  result = 0x80000001'i32
-
-when defined(MACROS): 
-  proc DisplayOfCCC(ccc: int32): int32 = 
-    result = ccc.dpy
-
-  proc ScreenNumberOfCCC(ccc: int32): int32 = 
-    result = ccc.screenNumber
-
-  proc VisualOfCCC(ccc: int32): int32 = 
-    result = ccc.visual
-
-  proc ClientWhitePointOfCCC(ccc: int32): int32 = 
-    result = addr(ccc.clientWhitePt)
-
-  proc ScreenWhitePointOfCCC(ccc: int32): int32 = 
-    result = addr(ccc.pPerScrnInfo.screenWhitePt)
-
-  proc FunctionSetOfCCC(ccc: int32): int32 = 
-    result = ccc.pPerScrnInfo.functionSet
diff --git a/lib/wrappers/x11/xf86dga.nim b/lib/wrappers/x11/xf86dga.nim
deleted file mode 100644
index 376f11861..000000000
--- a/lib/wrappers/x11/xf86dga.nim
+++ /dev/null
@@ -1,235 +0,0 @@
-#
-#   Copyright (c) 1999  XFree86 Inc
-#
-# $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ 
-
-import 
-  x, xlib
-
-const 
-  libXxf86dga* = "libXxf86dga.so"
-
-#type 
-#  cfloat* = float32
-
-# $XFree86: xc/include/extensions/xf86dga1.h,v 1.2 1999/04/17 07:05:41 dawes Exp $ 
-#
-#
-#Copyright (c) 1995  Jon Tombs
-#Copyright (c) 1995  XFree86 Inc
-#
-#
-#************************************************************************
-#
-#   THIS IS THE OLD DGA API AND IS OBSOLETE.  PLEASE DO NOT USE IT ANYMORE
-#
-#************************************************************************
-
-type 
-  PPcchar* = ptr ptr cstring
-
-const 
-  X_XF86DGAQueryVersion* = 0
-  X_XF86DGAGetVideoLL* = 1
-  X_XF86DGADirectVideo* = 2
-  X_XF86DGAGetViewPortSize* = 3
-  X_XF86DGASetViewPort* = 4
-  X_XF86DGAGetVidPage* = 5
-  X_XF86DGASetVidPage* = 6
-  X_XF86DGAInstallColormap* = 7
-  X_XF86DGAQueryDirectVideo* = 8
-  X_XF86DGAViewPortChanged* = 9
-  XF86DGADirectPresent* = 0x00000001
-  XF86DGADirectGraphics* = 0x00000002
-  XF86DGADirectMouse* = 0x00000004
-  XF86DGADirectKeyb* = 0x00000008
-  XF86DGAHasColormap* = 0x00000100
-  XF86DGADirectColormap* = 0x00000200
-
-proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, 
-                          minorVersion: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint, 
-                        width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar, 
-                      width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint, 
-                             height: Pcint): TStatus{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: TColormap): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAForkApp*(screen: cint): cint{.CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): TStatus{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-const 
-  X_XDGAQueryVersion* = 0     # 1 through 9 are in xf86dga1.pp 
-                              # 10 and 11 are reserved to avoid conflicts with rogue DGA extensions 
-  X_XDGAQueryModes* = 12
-  X_XDGASetMode* = 13
-  X_XDGASetViewport* = 14
-  X_XDGAInstallColormap* = 15
-  X_XDGASelectInput* = 16
-  X_XDGAFillRectangle* = 17
-  X_XDGACopyArea* = 18
-  X_XDGACopyTransparentArea* = 19
-  X_XDGAGetViewportStatus* = 20
-  X_XDGASync* = 21
-  X_XDGAOpenFramebuffer* = 22
-  X_XDGACloseFramebuffer* = 23
-  X_XDGASetClientVersion* = 24
-  X_XDGAChangePixmapMode* = 25
-  X_XDGACreateColormap* = 26
-  XDGAConcurrentAccess* = 0x00000001
-  XDGASolidFillRect* = 0x00000002
-  XDGABlitRect* = 0x00000004
-  XDGABlitTransRect* = 0x00000008
-  XDGAPixmap* = 0x00000010
-  XDGAInterlaced* = 0x00010000
-  XDGADoublescan* = 0x00020000
-  XDGAFlipImmediate* = 0x00000001
-  XDGAFlipRetrace* = 0x00000002
-  XDGANeedRoot* = 0x00000001
-  XF86DGANumberEvents* = 7
-  XDGAPixmapModeLarge* = 0
-  XDGAPixmapModeSmall* = 1
-  XF86DGAClientNotLocal* = 0
-  XF86DGANoDirectVideoMode* = 1
-  XF86DGAScreenNotActive* = 2
-  XF86DGADirectNotActivated* = 3
-  XF86DGAOperationNotSupported* = 4
-  XF86DGANumberErrors* = (XF86DGAOperationNotSupported + 1)
-
-type 
-  PXDGAMode* = ptr TXDGAMode
-  TXDGAMode*{.final.} = object 
-    num*: cint                # A unique identifier for the mode (num > 0) 
-    name*: cstring            # name of mode given in the XF86Config 
-    verticalRefresh*: cfloat
-    flags*: cint              # DGA_CONCURRENT_ACCESS, etc... 
-    imageWidth*: cint         # linear accessible portion (pixels) 
-    imageHeight*: cint
-    pixmapWidth*: cint        # Xlib accessible portion (pixels) 
-    pixmapHeight*: cint       # both fields ignored if no concurrent access 
-    bytesPerScanline*: cint
-    byteOrder*: cint          # MSBFirst, LSBFirst 
-    depth*: cint
-    bitsPerPixel*: cint
-    redMask*: culong
-    greenMask*: culong
-    blueMask*: culong
-    visualClass*: cshort
-    viewportWidth*: cint
-    viewportHeight*: cint
-    xViewportStep*: cint      # viewport position granularity 
-    yViewportStep*: cint
-    maxViewportX*: cint       # max viewport origin 
-    maxViewportY*: cint
-    viewportFlags*: cint      # types of page flipping possible 
-    reserved1*: cint
-    reserved2*: cint
-
-  PXDGADevice* = ptr TXDGADevice
-  TXDGADevice*{.final.} = object 
-    mode*: TXDGAMode
-    data*: Pcuchar
-    pixmap*: TPixmap
-
-  PXDGAButtonEvent* = ptr TXDGAButtonEvent
-  TXDGAButtonEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    button*: cuint
-
-  PXDGAKeyEvent* = ptr TXDGAKeyEvent
-  TXDGAKeyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    keycode*: cuint
-
-  PXDGAMotionEvent* = ptr TXDGAMotionEvent
-  TXDGAMotionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    display*: PDisplay
-    screen*: cint
-    time*: TTime
-    state*: cuint
-    dx*: cint
-    dy*: cint
-
-  PXDGAEvent* = ptr TXDGAEvent
-  TXDGAEvent*{.final.} = object 
-    pad*: array[0..23, clong] # sorry you have to cast if you want access
-                              #Case LongInt Of
-                              #      0 : (_type : cint);
-                              #      1 : (xbutton : TXDGAButtonEvent);
-                              #      2 : (xkey : TXDGAKeyEvent);
-                              #      3 : (xmotion : TXDGAMotionEvent);
-                              #      4 : (pad : Array[0..23] Of clong);
-  
-
-proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): TBool{.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): TBool{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){.
-    CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: TColormap){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice, 
-                         alloc: cint): TColormap{.CDecl, dynlib: libXxf86dga, 
-    importc.}
-proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint, 
-                        width: cuint, height: cuint, color: culong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint, 
-                   width: cuint, height: cuint, dstx: cint, dsty: cint){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint, 
-                              srcy: cint, width: cuint, height: cuint, 
-                              dstx: cint, dsty: cint, key: culong){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.CDecl, 
-    dynlib: libXxf86dga, importc.}
-proc XDGASync*(dpy: PDisplay, screen: cint){.CDecl, dynlib: libXxf86dga, importc.}
-proc XDGASetClientVersion*(dpy: PDisplay): TBool{.CDecl, dynlib: libXxf86dga, 
-    importc.}
-proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint, 
-                           mode: cint){.CDecl, dynlib: libXxf86dga, importc.}
-proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.CDecl, 
-    dynlib: libXxf86dga, importc.}
-# implementation
diff --git a/lib/wrappers/x11/xf86vmode.nim b/lib/wrappers/x11/xf86vmode.nim
deleted file mode 100644
index 18a922cab..000000000
--- a/lib/wrappers/x11/xf86vmode.nim
+++ /dev/null
@@ -1,229 +0,0 @@
-# $XFree86: xc/include/extensions/xf86vmode.h,v 3.30 2001/05/07 20:09:50 mvojkovi Exp $ 
-#
-#
-#Copyright 1995  Kaleb S. KEITHLEY
-#
-#Permission is hereby granted, free of charge, to any person obtaining
-#a copy of this software and associated documentation files (the
-#"Software"), to deal in the Software without restriction, including
-#without limitation the rights to use, copy, modify, merge, publish,
-#distribute, sublicense, and/or sell copies of the Software, and to
-#permit persons to whom the Software is furnished to do so, subject to
-#the following conditions:
-#
-#The above copyright notice and this permission notice shall be
-#included in all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-#IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES 
-#OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-#ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of Kaleb S. KEITHLEY 
-#shall not be used in advertising or otherwise to promote the sale, use 
-#or other dealings in this Software without prior written authorization
-#from Kaleb S. KEITHLEY
-#
-#
-# $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $ 
-# THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION 
-
-import 
-  x, xlib
-
-const 
-  libXxf86vm* = "libXxf86vm.so"
-
-type 
-  PINT32* = ptr int32
-
-const 
-  X_XF86VidModeQueryVersion* = 0
-  X_XF86VidModeGetModeLine* = 1
-  X_XF86VidModeModModeLine* = 2
-  X_XF86VidModeSwitchMode* = 3
-  X_XF86VidModeGetMonitor* = 4
-  X_XF86VidModeLockModeSwitch* = 5
-  X_XF86VidModeGetAllModeLines* = 6
-  X_XF86VidModeAddModeLine* = 7
-  X_XF86VidModeDeleteModeLine* = 8
-  X_XF86VidModeValidateModeLine* = 9
-  X_XF86VidModeSwitchToMode* = 10
-  X_XF86VidModeGetViewPort* = 11
-  X_XF86VidModeSetViewPort* = 12 # new for version 2.x of this extension 
-  X_XF86VidModeGetDotClocks* = 13
-  X_XF86VidModeSetClientVersion* = 14
-  X_XF86VidModeSetGamma* = 15
-  X_XF86VidModeGetGamma* = 16
-  X_XF86VidModeGetGammaRamp* = 17
-  X_XF86VidModeSetGammaRamp* = 18
-  X_XF86VidModeGetGammaRampSize* = 19
-  X_XF86VidModeGetPermissions* = 20
-  CLKFLAG_PROGRAMABLE* = 1
-
-when defined(XF86VIDMODE_EVENTS): 
-  const 
-    XF86VidModeNotify* = 0
-    XF86VidModeNumberEvents* = (XF86VidModeNotify + 1)
-    XF86VidModeNotifyMask* = 0x00000001
-    XF86VidModeNonEvent* = 0
-    XF86VidModeModeChange* = 1
-else: 
-  const 
-    XF86VidModeNumberEvents* = 0
-const 
-  XF86VidModeBadClock* = 0
-  XF86VidModeBadHTimings* = 1
-  XF86VidModeBadVTimings* = 2
-  XF86VidModeModeUnsuitable* = 3
-  XF86VidModeExtensionDisabled* = 4
-  XF86VidModeClientNotLocal* = 5
-  XF86VidModeZoomLocked* = 6
-  XF86VidModeNumberErrors* = (XF86VidModeZoomLocked + 1)
-  XF86VM_READ_PERMISSION* = 1
-  XF86VM_WRITE_PERMISSION* = 2
-
-type 
-  PXF86VidModeModeLine* = ptr TXF86VidModeModeLine
-  TXF86VidModeModeLine*{.final.} = object 
-    hdisplay*: cushort
-    hsyncstart*: cushort
-    hsyncend*: cushort
-    htotal*: cushort
-    hskew*: cushort
-    vdisplay*: cushort
-    vsyncstart*: cushort
-    vsyncend*: cushort
-    vtotal*: cushort
-    flags*: cuint
-    privsize*: cint
-    c_private*: PINT32
-
-  PPPXF86VidModeModeInfo* = ptr PPXF86VidModeModeInfo
-  PPXF86VidModeModeInfo* = ptr PXF86VidModeModeInfo
-  PXF86VidModeModeInfo* = ptr TXF86VidModeModeInfo
-  TXF86VidModeModeInfo*{.final.} = object 
-    dotclock*: cuint
-    hdisplay*: cushort
-    hsyncstart*: cushort
-    hsyncend*: cushort
-    htotal*: cushort
-    hskew*: cushort
-    vdisplay*: cushort
-    vsyncstart*: cushort
-    vsyncend*: cushort
-    vtotal*: cushort
-    flags*: cuint
-    privsize*: cint
-    c_private*: PINT32
-
-  PXF86VidModeSyncRange* = ptr TXF86VidModeSyncRange
-  TXF86VidModeSyncRange*{.final.} = object 
-    hi*: cfloat
-    lo*: cfloat
-
-  PXF86VidModeMonitor* = ptr TXF86VidModeMonitor
-  TXF86VidModeMonitor*{.final.} = object 
-    vendor*: cstring
-    model*: cstring
-    EMPTY*: cfloat
-    nhsync*: cuchar
-    hsync*: PXF86VidModeSyncRange
-    nvsync*: cuchar
-    vsync*: PXF86VidModeSyncRange
-
-  PXF86VidModeNotifyEvent* = ptr TXF86VidModeNotifyEvent
-  TXF86VidModeNotifyEvent*{.final.} = object 
-    theType*: cint            # of event 
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent req 
-    display*: PDisplay        # Display the event was read from 
-    root*: TWindow            # root window of event screen 
-    state*: cint              # What happened 
-    kind*: cint               # What happened 
-    forced*: TBool            # extents of new region 
-    time*: TTime              # event timestamp 
-  
-  PXF86VidModeGamma* = ptr TXF86VidModeGamma
-  TXF86VidModeGamma*{.final.} = object 
-    red*: cfloat              # Red Gamma value 
-    green*: cfloat            # Green Gamma value 
-    blue*: cfloat             # Blue Gamma value 
-  
-
-when defined(MACROS): 
-  proc XF86VidModeSelectNextMode*(disp: PDisplay, scr: cint): TBool
-  proc XF86VidModeSelectPrevMode*(disp: PDisplay, scr: cint): TBool
-proc XF86VidModeQueryVersion*(dpy: PDisplay, majorVersion: Pcint, 
-                              minorVersion: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeQueryExtension*(dpy: PDisplay, event_base: Pcint, 
-                                error_base: Pcint): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetClientVersion*(dpy: PDisplay): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetModeLine*(dpy: PDisplay, screen: cint, dotclock: Pcint, 
-                             modeline: PXF86VidModeModeLine): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetAllModeLines*(dpy: PDisplay, screen: cint, modecount: Pcint, 
-                                 modelinesPtr: PPPXF86VidModeModeInfo): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeAddModeLine*(dpy: PDisplay, screen: cint, 
-                             new_modeline: PXF86VidModeModeInfo, 
-                             after_modeline: PXF86VidModeModeInfo): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeDeleteModeLine*(dpy: PDisplay, screen: cint, 
-                                modeline: PXF86VidModeModeInfo): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeModModeLine*(dpy: PDisplay, screen: cint, 
-                             modeline: PXF86VidModeModeLine): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeValidateModeLine*(dpy: PDisplay, screen: cint, 
-                                  modeline: PXF86VidModeModeInfo): TStatus{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSwitchMode*(dpy: PDisplay, screen: cint, zoom: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSwitchToMode*(dpy: PDisplay, screen: cint, 
-                              modeline: PXF86VidModeModeInfo): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeLockModeSwitch*(dpy: PDisplay, screen: cint, lock: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetMonitor*(dpy: PDisplay, screen: cint, 
-                            monitor: PXF86VidModeMonitor): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetViewPort*(dpy: PDisplay, screen: cint, x_return: Pcint, 
-                             y_return: Pcint): TBool{.CDecl, dynlib: libXxf86vm, 
-    importc.}
-proc XF86VidModeSetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetDotClocks*(dpy: PDisplay, screen: cint, flags_return: Pcint, 
-                              number_of_clocks_return: Pcint, 
-                              max_dot_clock_return: Pcint, clocks_return: PPcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeSetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, 
-                              red_array: Pcushort, green_array: Pcushort, 
-                              blue_array: Pcushort): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, 
-                              red_array: Pcushort, green_array: Pcushort, 
-                              blue_array: Pcushort): TBool{.CDecl, 
-    dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetGammaRampSize*(dpy: PDisplay, screen: cint, size: Pcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-proc XF86VidModeGetPermissions*(dpy: PDisplay, screen: cint, permissions: Pcint): TBool{.
-    CDecl, dynlib: libXxf86vm, importc.}
-# implementation
-
-when defined(MACROS): 
-  proc XF86VidModeSelectNextMode(disp: PDisplay, scr: cint): TBool = 
-    XF86VidModeSelectNextMode = XF86VidModeSwitchMode(disp, scr, 1)
-
-  proc XF86VidModeSelectPrevMode(disp: PDisplay, scr: cint): TBool = 
-    XF86VidModeSelectPrevMode = XF86VidModeSwitchMode(disp, scr, - 1)
diff --git a/lib/wrappers/x11/xi.nim b/lib/wrappers/x11/xi.nim
deleted file mode 100644
index d1b9f7846..000000000
--- a/lib/wrappers/x11/xi.nim
+++ /dev/null
@@ -1,307 +0,0 @@
-#
-# $Xorg: XI.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $
-#
-#************************************************************
-#
-#Copyright 1989, 1998  The Open Group
-#
-#Permission to use, copy, modify, distribute, and sell this software and its
-#documentation for any purpose is hereby granted without fee, provided that
-#the above copyright notice appear in all copies and that both that
-#copyright notice and this permission notice appear in supporting
-#documentation.
-#
-#The above copyright notice and this permission notice shall be included in
-#all copies or substantial portions of the Software.
-#
-#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-#OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-#AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-#CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-#Except as contained in this notice, the name of The Open Group shall not be
-#used in advertising or otherwise to promote the sale, use or other dealings
-#in this Software without prior written authorization from The Open Group.
-#
-#Copyright 1989 by Hewlett-Packard Company, Palo Alto, California.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its
-#documentation for any purpose and without fee is hereby granted,
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in
-#supporting documentation, and that the name of Hewlett-Packard not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.
-#
-#HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#********************************************************/
-# $XFree86: xc/include/extensions/XI.h,v 1.5 2001/12/14 19:53:28 dawes Exp $
-#
-# Definitions used by the server, library and client
-#
-#        Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Histroy:
-#        2004/10/15 - Fixed a bug of accessing second based records by removing "paced record" and chnaged it to
-#                     "reocrd" only.
-#        2004/10/07 - Removed the "uses X;" line. The unit does not need it.
-#        2004/10/03 - Conversion from C header to Pascal unit.
-#
-
-const 
-  sz_xGetExtensionVersionReq* = 8
-  sz_xGetExtensionVersionReply* = 32
-  sz_xListInputDevicesReq* = 4
-  sz_xListInputDevicesReply* = 32
-  sz_xOpenDeviceReq* = 8
-  sz_xOpenDeviceReply* = 32
-  sz_xCloseDeviceReq* = 8
-  sz_xSetDeviceModeReq* = 8
-  sz_xSetDeviceModeReply* = 32
-  sz_xSelectExtensionEventReq* = 12
-  sz_xGetSelectedExtensionEventsReq* = 8
-  sz_xGetSelectedExtensionEventsReply* = 32
-  sz_xChangeDeviceDontPropagateListReq* = 12
-  sz_xGetDeviceDontPropagateListReq* = 8
-  sz_xGetDeviceDontPropagateListReply* = 32
-  sz_xGetDeviceMotionEventsReq* = 16
-  sz_xGetDeviceMotionEventsReply* = 32
-  sz_xChangeKeyboardDeviceReq* = 8
-  sz_xChangeKeyboardDeviceReply* = 32
-  sz_xChangePointerDeviceReq* = 8
-  sz_xChangePointerDeviceReply* = 32
-  sz_xGrabDeviceReq* = 20
-  sz_xGrabDeviceReply* = 32
-  sz_xUngrabDeviceReq* = 12
-  sz_xGrabDeviceKeyReq* = 20
-  sz_xGrabDeviceKeyReply* = 32
-  sz_xUngrabDeviceKeyReq* = 16
-  sz_xGrabDeviceButtonReq* = 20
-  sz_xGrabDeviceButtonReply* = 32
-  sz_xUngrabDeviceButtonReq* = 16
-  sz_xAllowDeviceEventsReq* = 12
-  sz_xGetDeviceFocusReq* = 8
-  sz_xGetDeviceFocusReply* = 32
-  sz_xSetDeviceFocusReq* = 16
-  sz_xGetFeedbackControlReq* = 8
-  sz_xGetFeedbackControlReply* = 32
-  sz_xChangeFeedbackControlReq* = 12
-  sz_xGetDeviceKeyMappingReq* = 8
-  sz_xGetDeviceKeyMappingReply* = 32
-  sz_xChangeDeviceKeyMappingReq* = 8
-  sz_xGetDeviceModifierMappingReq* = 8
-  sz_xSetDeviceModifierMappingReq* = 8
-  sz_xSetDeviceModifierMappingReply* = 32
-  sz_xGetDeviceButtonMappingReq* = 8
-  sz_xGetDeviceButtonMappingReply* = 32
-  sz_xSetDeviceButtonMappingReq* = 8
-  sz_xSetDeviceButtonMappingReply* = 32
-  sz_xQueryDeviceStateReq* = 8
-  sz_xQueryDeviceStateReply* = 32
-  sz_xSendExtensionEventReq* = 16
-  sz_xDeviceBellReq* = 8
-  sz_xSetDeviceValuatorsReq* = 8
-  sz_xSetDeviceValuatorsReply* = 32
-  sz_xGetDeviceControlReq* = 8
-  sz_xGetDeviceControlReply* = 32
-  sz_xChangeDeviceControlReq* = 8
-  sz_xChangeDeviceControlReply* = 32
-
-const 
-  INAME* = "XInputExtension"
-
-const 
-  XI_KEYBOARD* = "KEYBOARD"
-  XI_MOUSE* = "MOUSE"
-  XI_TABLET* = "TABLET"
-  XI_TOUCHSCREEN* = "TOUCHSCREEN"
-  XI_TOUCHPAD* = "TOUCHPAD"
-  XI_BARCODE* = "BARCODE"
-  XI_BUTTONBOX* = "BUTTONBOX"
-  XI_KNOB_BOX* = "KNOB_BOX"
-  XI_ONE_KNOB* = "ONE_KNOB"
-  XI_NINE_KNOB* = "NINE_KNOB"
-  XI_TRACKBALL* = "TRACKBALL"
-  XI_QUADRATURE* = "QUADRATURE"
-  XI_ID_MODULE* = "ID_MODULE"
-  XI_SPACEBALL* = "SPACEBALL"
-  XI_DATAGLOVE* = "DATAGLOVE"
-  XI_EYETRACKER* = "EYETRACKER"
-  XI_CURSORKEYS* = "CURSORKEYS"
-  XI_FOOTMOUSE* = "FOOTMOUSE"
-
-const 
-  Dont_Check* = 0
-  XInput_Initial_Release* = 1
-  XInput_Add_XDeviceBell* = 2
-  XInput_Add_XSetDeviceValuators* = 3
-  XInput_Add_XChangeDeviceControl* = 4
-
-const 
-  XI_Absent* = 0
-  XI_Present* = 1
-
-const 
-  XI_Initial_Release_Major* = 1
-  XI_Initial_Release_Minor* = 0
-
-const 
-  XI_Add_XDeviceBell_Major* = 1
-  XI_Add_XDeviceBell_Minor* = 1
-
-const 
-  XI_Add_XSetDeviceValuators_Major* = 1
-  XI_Add_XSetDeviceValuators_Minor* = 2
-
-const 
-  XI_Add_XChangeDeviceControl_Major* = 1
-  XI_Add_XChangeDeviceControl_Minor* = 3
-
-const 
-  DEVICE_RESOLUTION* = 1
-
-const 
-  NoSuchExtension* = 1
-
-const 
-  COUNT* = 0
-  CREATE* = 1
-
-const 
-  NewPointer* = 0
-  NewKeyboard* = 1
-
-const 
-  XPOINTER* = 0
-  XKEYBOARD* = 1
-
-const 
-  UseXKeyboard* = 0x000000FF
-
-const 
-  IsXPointer* = 0
-  IsXKeyboard* = 1
-  IsXExtensionDevice* = 2
-
-const 
-  AsyncThisDevice* = 0
-  SyncThisDevice* = 1
-  ReplayThisDevice* = 2
-  AsyncOtherDevices* = 3
-  AsyncAll* = 4
-  SyncAll* = 5
-
-const 
-  FollowKeyboard* = 3
-  RevertToFollowKeyboard* = 3
-
-const 
-  DvAccelNum* = int(1) shl 0
-  DvAccelDenom* = int(1) shl 1
-  DvThreshold* = int(1) shl 2
-
-const 
-  DvKeyClickPercent* = int(1) shl 0
-  DvPercent* = int(1) shl 1
-  DvPitch* = int(1) shl 2
-  DvDuration* = int(1) shl 3
-  DvLed* = int(1) shl 4
-  DvLedMode* = int(1) shl 5
-  DvKey* = int(1) shl 6
-  DvAutoRepeatMode* = 1 shl 7
-
-const 
-  DvString* = int(1) shl 0
-
-const 
-  DvInteger* = int(1) shl 0
-
-const 
-  DeviceMode* = int(1) shl 0
-  Relative* = 0
-  Absolute* = 1               # Merged from Metrolink tree for XINPUT stuff 
-  TS_Raw* = 57
-  TS_Scaled* = 58
-  SendCoreEvents* = 59
-  DontSendCoreEvents* = 60    # End of merged section 
-
-const 
-  ProximityState* = int(1) shl 1
-  InProximity* = int(0) shl 1
-  OutOfProximity* = int(1) shl 1
-
-const 
-  AddToList* = 0
-  DeleteFromList* = 1
-
-const 
-  KeyClass* = 0
-  ButtonClass* = 1
-  ValuatorClass* = 2
-  FeedbackClass* = 3
-  ProximityClass* = 4
-  FocusClass* = 5
-  OtherClass* = 6
-
-const 
-  KbdFeedbackClass* = 0
-  PtrFeedbackClass* = 1
-  StringFeedbackClass* = 2
-  IntegerFeedbackClass* = 3
-  LedFeedbackClass* = 4
-  BellFeedbackClass* = 5
-
-const 
-  devicePointerMotionHint* = 0
-  deviceButton1Motion* = 1
-  deviceButton2Motion* = 2
-  deviceButton3Motion* = 3
-  deviceButton4Motion* = 4
-  deviceButton5Motion* = 5
-  deviceButtonMotion* = 6
-  deviceButtonGrab* = 7
-  deviceOwnerGrabButton* = 8
-  noExtensionEvent* = 9
-
-const 
-  XI_BadDevice* = 0
-  XI_BadEvent* = 1
-  XI_BadMode* = 2
-  XI_DeviceBusy* = 3
-  XI_BadClass* = 4 # Make XEventClass be a CARD32 for 64 bit servers.  Don't affect client
-                   #  definition of XEventClass since that would be a library interface change.
-                   #  See the top of X.h for more _XSERVER64 magic.
-                   #
-
-when defined(XSERVER64): 
-  type 
-    XEventClass* = CARD32
-else: 
-  type 
-    XEventClass* = int32
-#******************************************************************
-# *
-# * Extension version structure.
-# *
-# 
-
-type 
-  PXExtensionVersion* = ptr TXExtensionVersion
-  TXExtensionVersion*{.final.} = object 
-    present*: int16
-    major_version*: int16
-    minor_version*: int16
-
-
-# implementation
diff --git a/lib/wrappers/x11/xinerama.nim b/lib/wrappers/x11/xinerama.nim
deleted file mode 100644
index 96f5d7da3..000000000
--- a/lib/wrappers/x11/xinerama.nim
+++ /dev/null
@@ -1,25 +0,0 @@
-# Converted from X11/Xinerama.h 
-import                        
-  xlib
-
-const
-  xineramaLib = "libXinerama.so"
-
-type 
-  PXineramaScreenInfo* = ptr TXineramaScreenInfo
-  TXineramaScreenInfo*{.final.} = object 
-    screen_number*: cint
-    x_org*: int16
-    y_org*: int16
-    width*: int16
-    height*: int16
-
-
-proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
-    cdecl, dynlib: xineramaLib, importc.}
-proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): TStatus{.
-    cdecl, dynlib: xineramaLib, importc.}
-proc XineramaIsActive*(dpy: PDisplay): TBool{.cdecl, dynlib: xineramaLib, importc.}
-proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{.
-    cdecl, dynlib: xineramaLib, importc.}
-
diff --git a/lib/wrappers/x11/xkb.nim b/lib/wrappers/x11/xkb.nim
deleted file mode 100644
index 86296430a..000000000
--- a/lib/wrappers/x11/xkb.nim
+++ /dev/null
@@ -1,2387 +0,0 @@
-#
-# $Xorg: XKB.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-# $Xorg: XKBstr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-# $Xorg: XKBgeom.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $
-#************************************************************
-#
-#Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-#
-#Permission to use, copy, modify, and distribute this
-#software and its documentation for any purpose and without
-#fee is hereby granted, provided that the above copyright
-#notice appear in all copies and that both that copyright
-#notice and this permission notice appear in supporting
-#documentation, and that the name of Silicon Graphics not be
-#used in advertising or publicity pertaining to distribution
-#of the software without specific prior written permission.
-#Silicon Graphics makes no representation about the suitability
-#of this software for any purpose. It is provided "as is"
-#without any express or implied warranty.
-#
-#SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-#SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-#AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-#GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-#DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-#OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-#THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-#********************************************************
-# $XFree86: xc/include/extensions/XKB.h,v 1.5 2002/11/20 04:49:01 dawes Exp $
-# $XFree86: xc/include/extensions/XKBgeom.h,v 3.9 2002/09/18 17:11:40 tsi Exp $
-#
-# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Thanks:
-#         I want to thanks to oliebol for putting up with all of the problems that was found
-#         while translating this code. ;)
-#
-#         I want to thanks #fpc channel in freenode irc, for helping me, and to put up with my
-#         wierd questions ;)
-#
-#         Thanks for mmc in #xlib on freenode irc And so for the channel itself for the helping me to
-#         understanding some of the problems I had converting this headers and pointing me to resources
-#         that helped translating this headers.
-#
-# Ido
-#
-#History:
-#        2004/10/15           - Fixed a bug of accessing second based records by removing "paced record" and
-#                               chnaged it to "reocrd" only.
-#        2004/10/04 - 06      - Convertion from the c header of XKBgeom.h.
-#        2004/10/03           - Removed the XKBstr_UNIT compiler decleration. Afther the joined files,
-#                                                                                     There is no need for it anymore.
-#                                                                             - There is a need to define (for now) XKBgeom (compiler define) in order
-#                                                                               to use the code of it. At this moment, I did not yet converted it to Pascal.
-#
-#        2004/09/17 - 10/04   - Convertion from the c header of XKBstr.
-#
-#        2004/10/03           - Joined xkbstr.pas into xkb.pas because of the circular calls problems.
-#                             - Added the history of xkbstr.pas above this addition.
-#
-#        2004/09/17           - Fixed a wrong convertion number of XkbPerKeyBitArraySize, insted
-#                               of float, it's now converted into integer (as it should have been).
-#
-#        2004/09/15 - 16      - Convertion from the c header of XKB.h.
-#
-
-import 
-  X, Xlib
-
-include "x11pragma.nim"
-
-proc XkbCharToInt*(v: int8): int16
-proc XkbIntTo2Chars*(i: int16, h, L: var int8)
-proc Xkb2CharsToInt*(h, L: int8): int16
-  #
-  #          Common data structures and access macros
-  #        
-type
-  PWord* = ptr array[0..64_000, int16]
-  PByte* = ptr byte
-  PXkbStatePtr* = ptr TXkbStateRec
-  TXkbStateRec*{.final.} = object 
-    group*: int8
-    locked_group*: int8
-    base_group*: int16
-    latched_group*: int16
-    mods*: int8
-    base_mods*: int8
-    latched_mods*: int8
-    locked_mods*: int8
-    compat_state*: int8
-    grab_mods*: int8
-    compat_grab_mods*: int8
-    lookup_mods*: int8
-    compat_lookup_mods*: int8
-    ptr_buttons*: int16
-
-
-proc XkbModLocks*(s: PXkbStatePtr): int8
-proc XkbStateMods*(s: PXkbStatePtr): int16
-proc XkbGroupLock*(s: PXkbStatePtr): int8
-proc XkbStateGroup*(s: PXkbStatePtr): int16
-proc XkbStateFieldFromRec*(s: PXkbStatePtr): int
-proc XkbGrabStateFromRec*(s: PXkbStatePtr): int
-type 
-  PXkbModsPtr* = ptr TXkbModsRec
-  TXkbModsRec*{.final.} = object 
-    mask*: int8               # effective mods
-    real_mods*: int8
-    vmods*: int16
-
-
-type 
-  PXkbKTMapEntryPtr* = ptr TXkbKTMapEntryRec
-  TXkbKTMapEntryRec*{.final.} = object 
-    active*: bool
-    level*: int8
-    mods*: TXkbModsRec
-
-
-type 
-  PXkbKeyTypePtr* = ptr TXkbKeyTypeRec
-  TXkbKeyTypeRec*{.final.} = object 
-    mods*: TXkbModsRec
-    num_levels*: int8
-    map_count*: int8
-    map*: PXkbKTMapEntryPtr
-    preserve*: PXkbModsPtr
-    name*: TAtom
-    level_names*: TAtom
-
-
-proc XkbNumGroups*(g: int16): int16
-proc XkbOutOfRangeGroupInfo*(g: int16): int16
-proc XkbOutOfRangeGroupAction*(g: int16): int16
-proc XkbOutOfRangeGroupNumber*(g: int16): int16
-proc XkbSetGroupInfo*(g, w, n: int16): int16
-proc XkbSetNumGroups*(g, n: int16): int16
-  #
-  #          Structures and access macros used primarily by the server
-  #        
-type 
-  PXkbBehavior* = ptr TXkbBehavior
-  TXkbBehavior*{.final.} = object 
-    theType*: int8
-    data*: int8
-
-
-type 
-  PXkbModAction* = ptr TXkbModAction
-  TXkbModAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    mask*: int8
-    real_mods*: int8
-    vmods1*: int8
-    vmods2*: int8
-
-
-proc XkbModActionVMods*(a: PXkbModAction): int16
-proc XkbSetModActionVMods*(a: PXkbModAction, v: int8)
-type 
-  PXkbGroupAction* = ptr TXkbGroupAction
-  TXkbGroupAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    group_XXX*: int8
-
-
-proc XkbSAGroup*(a: PXkbGroupAction): int8
-proc XkbSASetGroupProc*(a: PXkbGroupAction, g: int8)
-type 
-  PXkbISOAction* = ptr TXkbISOAction
-  TXkbISOAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    mask*: int8
-    real_mods*: int8
-    group_XXX*: int8
-    affect*: int8
-    vmods1*: int8
-    vmods2*: int8
-
-
-type 
-  PXkbPtrAction* = ptr TXkbPtrAction
-  TXkbPtrAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    high_XXX*: int8
-    low_XXX*: int8
-    high_YYY*: int8
-    low_YYY*: int8
-
-
-proc XkbPtrActionX*(a: PXkbPtrAction): int16
-proc XkbPtrActionY*(a: PXkbPtrAction): int16
-proc XkbSetPtrActionX*(a: PXkbPtrAction, x: int8)
-proc XkbSetPtrActionY*(a: PXkbPtrAction, y: int8)
-type 
-  PXkbPtrBtnAction* = ptr TXkbPtrBtnAction
-  TXkbPtrBtnAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    count*: int8
-    button*: int8
-
-
-type 
-  PXkbPtrDfltAction* = ptr TXkbPtrDfltAction
-  TXkbPtrDfltAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    affect*: int8
-    valueXXX*: int8
-
-
-proc XkbSAPtrDfltValue*(a: PXkbPtrDfltAction): int8
-proc XkbSASetPtrDfltValue*(a: PXkbPtrDfltAction, c: pointer)
-type 
-  PXkbSwitchScreenAction* = ptr TXkbSwitchScreenAction
-  TXkbSwitchScreenAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    screenXXX*: int8
-
-
-proc XkbSAScreen*(a: PXkbSwitchScreenAction): int8
-proc XkbSASetScreen*(a: PXkbSwitchScreenAction, s: pointer)
-type 
-  PXkbCtrlsAction* = ptr TXkbCtrlsAction
-  TXkbCtrlsAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    ctrls3*: int8
-    ctrls2*: int8
-    ctrls1*: int8
-    ctrls0*: int8
-
-
-proc XkbActionSetCtrls*(a: PXkbCtrlsAction, c: int8)
-proc XkbActionCtrls*(a: PXkbCtrlsAction): int16
-type 
-  PXkbMessageAction* = ptr TXkbMessageAction
-  TXkbMessageAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    message*: array[0..5, char]
-
-
-type 
-  PXkbRedirectKeyAction* = ptr TXkbRedirectKeyAction
-  TXkbRedirectKeyAction*{.final.} = object 
-    theType*: int8
-    new_key*: int8
-    mods_mask*: int8
-    mods*: int8
-    vmods_mask0*: int8
-    vmods_mask1*: int8
-    vmods0*: int8
-    vmods1*: int8
-
-
-proc XkbSARedirectVMods*(a: PXkbRedirectKeyAction): int16
-proc XkbSARedirectSetVMods*(a: PXkbRedirectKeyAction, m: int8)
-proc XkbSARedirectVModsMask*(a: PXkbRedirectKeyAction): int16
-proc XkbSARedirectSetVModsMask*(a: PXkbRedirectKeyAction, m: int8)
-type 
-  PXkbDeviceBtnAction* = ptr TXkbDeviceBtnAction
-  TXkbDeviceBtnAction*{.final.} = object 
-    theType*: int8
-    flags*: int8
-    count*: int8
-    button*: int8
-    device*: int8
-
-
-type 
-  PXkbDeviceValuatorAction* = ptr TXkbDeviceValuatorAction
-  TXkbDeviceValuatorAction*{.final.} = object  #
-                                               #      Macros to classify key actions
-                                               #                
-    theType*: int8
-    device*: int8
-    v1_what*: int8
-    v1_ndx*: int8
-    v1_value*: int8
-    v2_what*: int8
-    v2_ndx*: int8
-    v2_value*: int8
-
-
-const 
-  XkbAnyActionDataSize* = 7
-
-type 
-  PXkbAnyAction* = ptr TXkbAnyAction
-  TXkbAnyAction*{.final.} = object 
-    theType*: int8
-    data*: array[0..XkbAnyActionDataSize - 1, int8]
-
-
-proc XkbIsModAction*(a: PXkbAnyAction): bool
-proc XkbIsGroupAction*(a: PXkbAnyAction): bool
-proc XkbIsPtrAction*(a: PXkbAnyAction): bool
-type 
-  PXkbAction* = ptr TXkbAction
-  TXkbAction*{.final.} = object  #
-                                 #      XKB request codes, used in:
-                                 #      -  xkbReqType field of all requests
-                                 #      -  requestMinor field of some events
-                                 #                
-    any*: TXkbAnyAction
-    mods*: TXkbModAction
-    group*: TXkbGroupAction
-    iso*: TXkbISOAction
-    thePtr*: TXkbPtrAction
-    btn*: TXkbPtrBtnAction
-    dflt*: TXkbPtrDfltAction
-    screen*: TXkbSwitchScreenAction
-    ctrls*: TXkbCtrlsAction
-    msg*: TXkbMessageAction
-    redirect*: TXkbRedirectKeyAction
-    devbtn*: TXkbDeviceBtnAction
-    devval*: TXkbDeviceValuatorAction
-    theType*: int8
-
-
-const 
-  X_kbUseExtension* = 0
-  X_kbSelectEvents* = 1
-  X_kbBell* = 3
-  X_kbGetState* = 4
-  X_kbLatchLockState* = 5
-  X_kbGetControls* = 6
-  X_kbSetControls* = 7
-  X_kbGetMap* = 8
-  X_kbSetMap* = 9
-  X_kbGetCompatMap* = 10
-  X_kbSetCompatMap* = 11
-  X_kbGetIndicatorState* = 12
-  X_kbGetIndicatorMap* = 13
-  X_kbSetIndicatorMap* = 14
-  X_kbGetNamedIndicator* = 15
-  X_kbSetNamedIndicator* = 16
-  X_kbGetNames* = 17
-  X_kbSetNames* = 18
-  X_kbGetGeometry* = 19
-  X_kbSetGeometry* = 20
-  X_kbPerClientFlags* = 21
-  X_kbListComponents* = 22
-  X_kbGetKbdByName* = 23
-  X_kbGetDeviceInfo* = 24
-  X_kbSetDeviceInfo* = 25
-  X_kbSetDebuggingFlags* = 101 #
-                               #      In the X sense, XKB reports only one event.
-                               #      The type field of all XKB events is XkbEventCode
-                               #                
-
-const 
-  XkbEventCode* = 0
-  XkbNumberEvents* = XkbEventCode + 1 #
-                                      #      XKB has a minor event code so it can use one X event code for
-                                      #      multiple purposes.
-                                      #       - reported in the xkbType field of all XKB events.
-                                      #       - XkbSelectEventDetails: Indicates the event for which event details
-                                      #         are being changed
-                                      #                
-
-const 
-  XkbNewKeyboardNotify* = 0
-  XkbMapNotify* = 1
-  XkbStateNotify* = 2
-  XkbControlsNotify* = 3
-  XkbIndicatorStateNotify* = 4
-  XkbIndicatorMapNotify* = 5
-  XkbNamesNotify* = 6
-  XkbCompatMapNotify* = 7
-  XkbBellNotify* = 8
-  XkbActionMessage* = 9
-  XkbAccessXNotify* = 10
-  XkbExtensionDeviceNotify* = 11 #
-                                 #      Event Mask:
-                                 #       - XkbSelectEvents:  Specifies event interest.
-                                 #    
-
-const 
-  XkbNewKeyboardNotifyMask* = int(1) shl 0
-  XkbMapNotifyMask* = int(1) shl 1
-  XkbStateNotifyMask* = int(1) shl 2
-  XkbControlsNotifyMask* = int(1) shl 3
-  XkbIndicatorStateNotifyMask* = int(1) shl 4
-  XkbIndicatorMapNotifyMask* = int(1) shl 5
-  XkbNamesNotifyMask* = int(1) shl 6
-  XkbCompatMapNotifyMask* = int(1) shl 7
-  XkbBellNotifyMask* = int(1) shl 8
-  XkbActionMessageMask* = int(1) shl 9
-  XkbAccessXNotifyMask* = int(1) shl 10
-  XkbExtensionDeviceNotifyMask* = int(1) shl 11
-  XkbAllEventsMask* = 0x00000FFF #
-                                 #      NewKeyboardNotify event details:
-                                 #    
-
-const 
-  XkbNKN_KeycodesMask* = int(1) shl 0
-  XkbNKN_GeometryMask* = int(1) shl 1
-  XkbNKN_DeviceIDMask* = int(1) shl 2
-  XkbAllNewKeyboardEventsMask* = 0x00000007 #
-                                            #      AccessXNotify event types:
-                                            #       - The 'what' field of AccessXNotify events reports the
-                                            #         reason that the event was generated.
-                                            #                
-
-const 
-  XkbAXN_SKPress* = 0
-  XkbAXN_SKAccept* = 1
-  XkbAXN_SKReject* = 2
-  XkbAXN_SKRelease* = 3
-  XkbAXN_BKAccept* = 4
-  XkbAXN_BKReject* = 5
-  XkbAXN_AXKWarning* = 6 #
-                         #      AccessXNotify details:
-                         #      - Used as an event detail mask to limit the conditions under which
-                         #        AccessXNotify events are reported
-                         #                
-
-const 
-  XkbAXN_SKPressMask* = int(1) shl 0
-  XkbAXN_SKAcceptMask* = int(1) shl 1
-  XkbAXN_SKRejectMask* = int(1) shl 2
-  XkbAXN_SKReleaseMask* = int(1) shl 3
-  XkbAXN_BKAcceptMask* = int(1) shl 4
-  XkbAXN_BKRejectMask* = int(1) shl 5
-  XkbAXN_AXKWarningMask* = int(1) shl 6
-  XkbAllAccessXEventsMask* = 0x0000000F #
-                                        #      State detail mask:
-                                        #       - The 'changed' field of StateNotify events reports which of
-                                        #         the keyboard state components have changed.
-                                        #       - Used as an event detail mask to limit the conditions under
-                                        #         which StateNotify events are reported.
-                                        #                
-
-const 
-  XkbModifierStateMask* = int(1) shl 0
-  XkbModifierBaseMask* = int(1) shl 1
-  XkbModifierLatchMask* = int(1) shl 2
-  XkbModifierLockMask* = int(1) shl 3
-  XkbGroupStateMask* = int(1) shl 4
-  XkbGroupBaseMask* = int(1) shl 5
-  XkbGroupLatchMask* = int(1) shl 6
-  XkbGroupLockMask* = int(1) shl 7
-  XkbCompatStateMask* = int(1) shl 8
-  XkbGrabModsMask* = int(1) shl 9
-  XkbCompatGrabModsMask* = int(1) shl 10
-  XkbLookupModsMask* = int(1) shl 11
-  XkbCompatLookupModsMask* = int(1) shl 12
-  XkbPointerButtonMask* = int(1) shl 13
-  XkbAllStateComponentsMask* = 0x00003FFF #
-                                          #      Controls detail masks:
-                                          #       The controls specified in XkbAllControlsMask:
-                                          #       - The 'changed' field of ControlsNotify events reports which of
-                                          #         the keyboard controls have changed.
-                                          #       - The 'changeControls' field of the SetControls request specifies
-                                          #         the controls for which values are to be changed.
-                                          #       - Used as an event detail mask to limit the conditions under
-                                          #         which ControlsNotify events are reported.
-                                          #
-                                          #       The controls specified in the XkbAllBooleanCtrlsMask:
-                                          #       - The 'enabledControls' field of ControlsNotify events reports the
-                                          #         current status of the boolean controls.
-                                          #       - The 'enabledControlsChanges' field of ControlsNotify events reports
-                                          #         any boolean controls that have been turned on or off.
-                                          #       - The 'affectEnabledControls' and 'enabledControls' fields of the
-                                          #         kbSetControls request change the set of enabled controls.
-                                          #       - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
-                                          #         an XkbControlsRec specify the controls to be changed if the keyboard
-                                          #         times out and the values to which they should be changed.
-                                          #       - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
-                                          #         request specifies the specify the controls to be reset when the
-                                          #         client exits and the values to which they should be reset.
-                                          #       - The 'ctrls' field of an indicator map specifies the controls
-                                          #         that drive the indicator.
-                                          #       - Specifies the boolean controls affected by the SetControls and
-                                          #         LockControls key actions.
-                                          #                
-
-const 
-  XkbRepeatKeysMask* = int(1) shl 0
-  XkbSlowKeysMask* = int(1) shl 1
-  XkbBounceKeysMask* = int(1) shl 2
-  XkbStickyKeysMask* = int(1) shl 3
-  XkbMouseKeysMask* = int(1) shl 4
-  XkbMouseKeysAccelMask* = int(1) shl 5
-  XkbAccessXKeysMask* = int(1) shl 6
-  XkbAccessXTimeoutMask* = int(1) shl 7
-  XkbAccessXFeedbackMask* = int(1) shl 8
-  XkbAudibleBellMask* = int(1) shl 9
-  XkbOverlay1Mask* = int(1) shl 10
-  XkbOverlay2Mask* = int(1) shl 11
-  XkbIgnoreGroupLockMask* = int(1) shl 12
-  XkbGroupsWrapMask* = int(1) shl 27
-  XkbInternalModsMask* = int(1) shl 28
-  XkbIgnoreLockModsMask* = int(1) shl 29
-  XkbPerKeyRepeatMask* = int(1) shl 30
-  XkbControlsEnabledMask* = int(1) shl 31
-  XkbAccessXOptionsMask* = XkbStickyKeysMask or XkbAccessXFeedbackMask
-  XkbAllBooleanCtrlsMask* = 0x00001FFF
-  XkbAllControlsMask* = 0xF8001FFF #
-                                   #      Compatibility Map Compontents:
-                                   #       - Specifies the components to be allocated in XkbAllocCompatMap.
-                                   #                
-
-const 
-  XkbSymInterpMask* = 1 shl 0
-  XkbGroupCompatMask* = 1 shl 1
-  XkbAllCompatMask* = 0x00000003 #
-                                 #      Assorted constants and limits.
-                                 #                
-
-const 
-  XkbAllIndicatorsMask* = 0xFFFFFFFF #
-                                     #      Map components masks:
-                                     #      Those in AllMapComponentsMask:
-                                     #       - Specifies the individual fields to be loaded or changed for the
-                                     #         GetMap and SetMap requests.
-                                     #      Those in ClientInfoMask:
-                                     #       - Specifies the components to be allocated by XkbAllocClientMap.
-                                     #      Those in ServerInfoMask:
-                                     #       - Specifies the components to be allocated by XkbAllocServerMap.
-                                     #                
-
-const 
-  XkbKeyTypesMask* = 1 shl 0
-  XkbKeySymsMask* = 1 shl 1
-  XkbModifierMapMask* = 1 shl 2
-  XkbExplicitComponentsMask* = 1 shl 3
-  XkbKeyActionsMask* = 1 shl 4
-  XkbKeyBehaviorsMask* = 1 shl 5
-  XkbVirtualModsMask* = 1 shl 6
-  XkbVirtualModMapMask* = 1 shl 7
-  XkbAllClientInfoMask* = XkbKeyTypesMask or XkbKeySymsMask or
-      XkbModifierMapMask
-  XkbAllServerInfoMask* = XkbExplicitComponentsMask or XkbKeyActionsMask or
-      XkbKeyBehaviorsMask or XkbVirtualModsMask or XkbVirtualModMapMask
-  XkbAllMapComponentsMask* = XkbAllClientInfoMask or XkbAllServerInfoMask #
-                                                                          #      Names component mask:
-                                                                          #       - Specifies the names to be loaded or changed for the GetNames and
-                                                                          #         SetNames requests.
-                                                                          #       - Specifies the names that have changed in a NamesNotify event.
-                                                                          #       - Specifies the names components to be allocated by XkbAllocNames.
-                                                                          #                
-
-const 
-  XkbKeycodesNameMask* = 1 shl 0
-  XkbGeometryNameMask* = 1 shl 1
-  XkbSymbolsNameMask* = 1 shl 2
-  XkbPhysSymbolsNameMask* = 1 shl 3
-  XkbTypesNameMask* = 1 shl 4
-  XkbCompatNameMask* = 1 shl 5
-  XkbKeyTypeNamesMask* = 1 shl 6
-  XkbKTLevelNamesMask* = 1 shl 7
-  XkbIndicatorNamesMask* = 1 shl 8
-  XkbKeyNamesMask* = 1 shl 9
-  XkbKeyAliasesMask* = 1 shl 10
-  XkbVirtualModNamesMask* = 1 shl 11
-  XkbGroupNamesMask* = 1 shl 12
-  XkbRGNamesMask* = 1 shl 13
-  XkbComponentNamesMask* = 0x0000003F
-  XkbAllNamesMask* = 0x00003FFF #
-                                #      Miscellaneous event details:
-                                #      - event detail masks for assorted events that don't reall
-                                #        have any details.
-                                #                
-
-const 
-  XkbAllStateEventsMask* = XkbAllStateComponentsMask
-  XkbAllMapEventsMask* = XkbAllMapComponentsMask
-  XkbAllControlEventsMask* = XkbAllControlsMask
-  XkbAllIndicatorEventsMask* = XkbAllIndicatorsMask
-  XkbAllNameEventsMask* = XkbAllNamesMask
-  XkbAllCompatMapEventsMask* = XkbAllCompatMask
-  XkbAllBellEventsMask* = int(1) shl 0
-  XkbAllActionMessagesMask* = int(1) shl 0 #
-                                           #      XKB reports one error:  BadKeyboard
-                                           #      A further reason for the error is encoded into to most significant
-                                           #      byte of the resourceID for the error:
-                                           #         XkbErr_BadDevice - the device in question was not found
-                                           #         XkbErr_BadClass  - the device was found but it doesn't belong to
-                                           #                            the appropriate class.
-                                           #         XkbErr_BadId     - the device was found and belongs to the right
-                                           #                            class, but not feedback with a matching id was
-                                           #                            found.
-                                           #      The low byte of the resourceID for this error contains the device
-                                           #      id, class specifier or feedback id that failed.
-                                           #                
-
-const 
-  XkbKeyboard* = 0
-  XkbNumberErrors* = 1
-  XkbErr_BadDevice* = 0x000000FF
-  XkbErr_BadClass* = 0x000000FE
-  XkbErr_BadId* = 0x000000FD #
-                             #      Keyboard Components Mask:
-                             #      - Specifies the components that follow a GetKeyboardByNameReply
-                             #                
-
-const 
-  XkbClientMapMask* = int(1) shl 0
-  XkbServerMapMask* = int(1) shl 1
-  XkbCompatMapMask* = int(1) shl 2
-  XkbIndicatorMapMask* = int(1) shl 3
-  XkbNamesMask* = int(1) shl 4
-  XkbGeometryMask* = int(1) shl 5
-  XkbControlsMask* = int(1) shl 6
-  XkbAllComponentsMask* = 0x0000007F #
-                                     #      AccessX Options Mask
-                                     #       - The 'accessXOptions' field of an XkbControlsRec specifies the
-                                     #         AccessX options that are currently in effect.
-                                     #       - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
-                                     #         fields of an XkbControlsRec specify the Access X options to be
-                                     #         changed if the keyboard times out and the values to which they
-                                     #         should be changed.
-                                     #                
-
-const 
-  XkbAX_SKPressFBMask* = int(1) shl 0
-  XkbAX_SKAcceptFBMask* = int(1) shl 1
-  XkbAX_FeatureFBMask* = int(1) shl 2
-  XkbAX_SlowWarnFBMask* = int(1) shl 3
-  XkbAX_IndicatorFBMask* = int(1) shl 4
-  XkbAX_StickyKeysFBMask* = int(1) shl 5
-  XkbAX_TwoKeysMask* = int(1) shl 6
-  XkbAX_LatchToLockMask* = int(1) shl 7
-  XkbAX_SKReleaseFBMask* = int(1) shl 8
-  XkbAX_SKRejectFBMask* = int(1) shl 9
-  XkbAX_BKRejectFBMask* = int(1) shl 10
-  XkbAX_DumbBellFBMask* = int(1) shl 11
-  XkbAX_FBOptionsMask* = 0x00000F3F
-  XkbAX_SKOptionsMask* = 0x000000C0
-  XkbAX_AllOptionsMask* = 0x00000FFF #
-                                     #      XkbUseCoreKbd is used to specify the core keyboard without having
-                                     #                        to look up its X input extension identifier.
-                                     #      XkbUseCorePtr is used to specify the core pointer without having
-                                     #                        to look up its X input extension identifier.
-                                     #      XkbDfltXIClass is used to specify "don't care" any place that the
-                                     #                        XKB protocol is looking for an X Input Extension
-                                     #                        device class.
-                                     #      XkbDfltXIId is used to specify "don't care" any place that the
-                                     #                        XKB protocol is looking for an X Input Extension
-                                     #                        feedback identifier.
-                                     #      XkbAllXIClasses is used to get information about all device indicators,
-                                     #                        whether they're part of the indicator feedback class
-                                     #                        or the keyboard feedback class.
-                                     #      XkbAllXIIds is used to get information about all device indicator
-                                     #                        feedbacks without having to list them.
-                                     #      XkbXINone is used to indicate that no class or id has been specified.
-                                     #      XkbLegalXILedClass(c)  True if 'c' specifies a legal class with LEDs
-                                     #      XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
-                                     #      XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
-                                     #      XkbExplicitXIClass(c)  True if 'c' explicitly specifies a device class
-                                     #      XkbExplicitXIId(c)     True if 'i' explicitly specifies a device id
-                                     #      XkbSingleXIClass(c)    True if 'c' specifies exactly one device class,
-                                     #                             including the default.
-                                     #      XkbSingleXIId(i)       True if 'i' specifies exactly one device
-                                     #                              identifier, including the default.
-                                     #                
-
-const 
-  XkbUseCoreKbd* = 0x00000100
-  XkbUseCorePtr* = 0x00000200
-  XkbDfltXIClass* = 0x00000300
-  XkbDfltXIId* = 0x00000400
-  XkbAllXIClasses* = 0x00000500
-  XkbAllXIIds* = 0x00000600
-  XkbXINone* = 0x0000FF00
-
-proc XkbLegalXILedClass*(c: int): bool
-proc XkbLegalXIBellClass*(c: int): bool
-proc XkbExplicitXIDevice*(c: int): bool
-proc XkbExplicitXIClass*(c: int): bool
-proc XkbExplicitXIId*(c: int): bool
-proc XkbSingleXIClass*(c: int): bool
-proc XkbSingleXIId*(c: int): bool
-const 
-  XkbNoModifier* = 0x000000FF
-  XkbNoShiftLevel* = 0x000000FF
-  XkbNoShape* = 0x000000FF
-  XkbNoIndicator* = 0x000000FF
-  XkbNoModifierMask* = 0
-  XkbAllModifiersMask* = 0x000000FF
-  XkbAllVirtualModsMask* = 0x0000FFFF
-  XkbNumKbdGroups* = 4
-  XkbMaxKbdGroup* = XkbNumKbdGroups - 1
-  XkbMaxMouseKeysBtn* = 4 #
-                          #      Group Index and Mask:
-                          #       - Indices into the kt_index array of a key type.
-                          #       - Mask specifies types to be changed for XkbChangeTypesOfKey
-                          #    
-
-const 
-  XkbGroup1Index* = 0
-  XkbGroup2Index* = 1
-  XkbGroup3Index* = 2
-  XkbGroup4Index* = 3
-  XkbAnyGroup* = 254
-  XkbAllGroups* = 255
-  XkbGroup1Mask* = 1 shl 0
-  XkbGroup2Mask* = 1 shl 1
-  XkbGroup3Mask* = 1 shl 2
-  XkbGroup4Mask* = 1 shl 3
-  XkbAnyGroupMask* = 1 shl 7
-  XkbAllGroupsMask* = 0x0000000F #
-                                 #      BuildCoreState: Given a keyboard group and a modifier state,
-                                 #                      construct the value to be reported an event.
-                                 #      GroupForCoreState:  Given the state reported in an event,
-                                 #                      determine the keyboard group.
-                                 #      IsLegalGroup:   Returns TRUE if 'g' is a valid group index.
-                                 #                
-
-proc XkbBuildCoreState*(m, g: int): int
-proc XkbGroupForCoreState*(s: int): int
-proc XkbIsLegalGroup*(g: int): bool
-  #
-  #      GroupsWrap values:
-  #       - The 'groupsWrap' field of an XkbControlsRec specifies the
-  #         treatment of out of range groups.
-  #       - Bits 6 and 7 of the group info field of a key symbol map
-  #         specify the interpretation of out of range groups for the
-  #         corresponding key.
-  #                
-const 
-  XkbWrapIntoRange* = 0x00000000
-  XkbClampIntoRange* = 0x00000040
-  XkbRedirectIntoRange* = 0x00000080 #
-                                     #      Action flags:  Reported in the 'flags' field of most key actions.
-                                     #      Interpretation depends on the type of the action; not all actions
-                                     #      accept all flags.
-                                     #
-                                     #      Option                    Used for Actions
-                                     #      ------                    ----------------
-                                     #      ClearLocks                SetMods, LatchMods, SetGroup, LatchGroup
-                                     #      LatchToLock               SetMods, LatchMods, SetGroup, LatchGroup
-                                     #      LockNoLock                LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
-                                     #      LockNoUnlock              LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
-                                     #      UseModMapMods             SetMods, LatchMods, LockMods, ISOLock
-                                     #      GroupAbsolute             SetGroup, LatchGroup, LockGroup, ISOLock
-                                     #      UseDfltButton             PtrBtn, LockPtrBtn
-                                     #      NoAcceleration            MovePtr
-                                     #      MoveAbsoluteX             MovePtr
-                                     #      MoveAbsoluteY             MovePtr
-                                     #      ISODfltIsGroup            ISOLock
-                                     #      ISONoAffectMods           ISOLock
-                                     #      ISONoAffectGroup          ISOLock
-                                     #      ISONoAffectPtr            ISOLock
-                                     #      ISONoAffectCtrls          ISOLock
-                                     #      MessageOnPress            ActionMessage
-                                     #      MessageOnRelease          ActionMessage
-                                     #      MessageGenKeyEvent        ActionMessage
-                                     #      AffectDfltBtn             SetPtrDflt
-                                     #      DfltBtnAbsolute           SetPtrDflt
-                                     #      SwitchApplication SwitchScreen
-                                     #      SwitchAbsolute            SwitchScreen
-                                     #                
-
-const 
-  XkbSA_ClearLocks* = int(1) shl 0
-  XkbSA_LatchToLock* = int(1) shl 1
-  XkbSA_LockNoLock* = int(1) shl 0
-  XkbSA_LockNoUnlock* = int(1) shl 1
-  XkbSA_UseModMapMods* = int(1) shl 2
-  XkbSA_GroupAbsolute* = int(1) shl 2
-  XkbSA_UseDfltButton* = 0
-  XkbSA_NoAcceleration* = int(1) shl 0
-  XkbSA_MoveAbsoluteX* = int(1) shl 1
-  XkbSA_MoveAbsoluteY* = int(1) shl 2
-  XkbSA_ISODfltIsGroup* = int(1) shl 7
-  XkbSA_ISONoAffectMods* = int(1) shl 6
-  XkbSA_ISONoAffectGroup* = int(1) shl 5
-  XkbSA_ISONoAffectPtr* = int(1) shl 4
-  XkbSA_ISONoAffectCtrls* = int(1) shl 3
-  XkbSA_ISOAffectMask* = 0x00000078
-  XkbSA_MessageOnPress* = int(1) shl 0
-  XkbSA_MessageOnRelease* = int(1) shl 1
-  XkbSA_MessageGenKeyEvent* = int(1) shl 2
-  XkbSA_AffectDfltBtn* = 1
-  XkbSA_DfltBtnAbsolute* = int(1) shl 2
-  XkbSA_SwitchApplication* = int(1) shl 0
-  XkbSA_SwitchAbsolute* = int(1) shl 2 #
-                                       #      The following values apply to the SA_DeviceValuator
-                                       #      action only.  Valuator operations specify the action
-                                       #      to be taken.   Values specified in the action are
-                                       #      multiplied by 2^scale before they are applied.
-                                       #                
-
-const 
-  XkbSA_IgnoreVal* = 0x00000000
-  XkbSA_SetValMin* = 0x00000010
-  XkbSA_SetValCenter* = 0x00000020
-  XkbSA_SetValMax* = 0x00000030
-  XkbSA_SetValRelative* = 0x00000040
-  XkbSA_SetValAbsolute* = 0x00000050
-  XkbSA_ValOpMask* = 0x00000070
-  XkbSA_ValScaleMask* = 0x00000007
-
-proc XkbSA_ValOp*(a: int): int
-proc XkbSA_ValScale*(a: int): int
-  #
-  #      Action types: specifies the type of a key action.  Reported in the
-  #      type field of all key actions.
-  #                
-const 
-  XkbSA_NoAction* = 0x00000000
-  XkbSA_SetMods* = 0x00000001
-  XkbSA_LatchMods* = 0x00000002
-  XkbSA_LockMods* = 0x00000003
-  XkbSA_SetGroup* = 0x00000004
-  XkbSA_LatchGroup* = 0x00000005
-  XkbSA_LockGroup* = 0x00000006
-  XkbSA_MovePtr* = 0x00000007
-  XkbSA_PtrBtn* = 0x00000008
-  XkbSA_LockPtrBtn* = 0x00000009
-  XkbSA_SetPtrDflt* = 0x0000000A
-  XkbSA_ISOLock* = 0x0000000B
-  XkbSA_Terminate* = 0x0000000C
-  XkbSA_SwitchScreen* = 0x0000000D
-  XkbSA_SetControls* = 0x0000000E
-  XkbSA_LockControls* = 0x0000000F
-  XkbSA_ActionMessage* = 0x00000010
-  XkbSA_RedirectKey* = 0x00000011
-  XkbSA_DeviceBtn* = 0x00000012
-  XkbSA_LockDeviceBtn* = 0x00000013
-  XkbSA_DeviceValuator* = 0x00000014
-  XkbSA_LastAction* = XkbSA_DeviceValuator
-  XkbSA_NumActions* = XkbSA_LastAction + 1
-
-const 
-  XkbSA_XFree86Private* = 0x00000086
-#
-#      Specifies the key actions that clear latched groups or modifiers.
-#                
-
-const  ##define        XkbSA_BreakLatch \
-       #        ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
-       #        (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
-       #        (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\
-       #        (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
-       #
-  XkbSA_BreakLatch* = (1 shl XkbSA_PtrBtn) or (1 shl XkbSA_LockPtrBtn) or
-      (1 shl XkbSA_Terminate) or (1 shl XkbSA_SwitchScreen) or
-      (1 shl XkbSA_SetControls) or (1 shl XkbSA_LockControls) or
-      (1 shl XkbSA_ActionMessage) or (1 shl XkbSA_RedirectKey) or
-      (1 shl XkbSA_DeviceBtn) or (1 shl XkbSA_LockDeviceBtn) #
-                                                             #      Key Behavior Qualifier:
-                                                             #         KB_Permanent indicates that the behavior describes an unalterable
-                                                             #         characteristic of the keyboard, not an XKB software-simulation of
-                                                             #         the listed behavior.
-                                                             #      Key Behavior Types:
-                                                             #         Specifies the behavior of the underlying key.
-                                                             #                
-
-const 
-  XkbKB_Permanent* = 0x00000080
-  XkbKB_OpMask* = 0x0000007F
-  XkbKB_Default* = 0x00000000
-  XkbKB_Lock* = 0x00000001
-  XkbKB_RadioGroup* = 0x00000002
-  XkbKB_Overlay1* = 0x00000003
-  XkbKB_Overlay2* = 0x00000004
-  XkbKB_RGAllowNone* = 0x00000080 #
-                                  #      Various macros which describe the range of legal keycodes.
-                                  #                
-
-const 
-  XkbMinLegalKeyCode* = 8
-  XkbMaxLegalKeyCode* = 255
-  XkbMaxKeyCount* = XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1
-  XkbPerKeyBitArraySize* = (XkbMaxLegalKeyCode + 1) div 8
-
-proc XkbIsLegalKeycode*(k: int): bool
-type 
-  PXkbControlsPtr* = ptr TXkbControlsRec
-  TXkbControlsRec*{.final.} = object 
-    mk_dflt_btn*: int8
-    num_groups*: int8
-    groups_wrap*: int8
-    internal*: TXkbModsRec
-    ignore_lock*: TXkbModsRec
-    enabled_ctrls*: int16
-    repeat_delay*: int16
-    repeat_interval*: int16
-    slow_keys_delay*: int16
-    debounce_delay*: int16
-    mk_delay*: int16
-    mk_interval*: int16
-    mk_time_to_max*: int16
-    mk_max_speed*: int16
-    mk_curve*: int16
-    ax_options*: int16
-    ax_timeout*: int16
-    axt_opts_mask*: int16
-    axt_opts_values*: int16
-    axt_ctrls_mask*: int16
-    axt_ctrls_values*: int16
-    per_key_repeat*: array[0..XkbPerKeyBitArraySize - 1, int8]
-
-
-proc XkbAX_AnyFeedback*(c: PXkbControlsPtr): int16
-proc XkbAX_NeedOption*(c: PXkbControlsPtr, w: int16): int16
-proc XkbAX_NeedFeedback*(c: PXkbControlsPtr, w: int16): bool
-  #
-  #      Assorted constants and limits.
-  #                
-const 
-  XkbNumModifiers* = 8
-  XkbNumVirtualMods* = 16
-  XkbNumIndicators* = 32
-  XkbMaxRadioGroups* = 32
-  XkbAllRadioGroupsMask* = 0xFFFFFFFF
-  XkbMaxShiftLevel* = 63
-  XkbMaxSymsPerKey* = XkbMaxShiftLevel * XkbNumKbdGroups
-  XkbRGMaxMembers* = 12
-  XkbActionMessageLength* = 6
-  XkbKeyNameLength* = 4
-  XkbMaxRedirectCount* = 8
-  XkbGeomPtsPerMM* = 10
-  XkbGeomMaxColors* = 32
-  XkbGeomMaxLabelColors* = 3
-  XkbGeomMaxPriority* = 255
-
-type 
-  PXkbServerMapPtr* = ptr TXkbServerMapRec
-  TXkbServerMapRec*{.final.} = object 
-    num_acts*: int16
-    size_acts*: int16
-    acts*: ptr array[0..0xfff, TXkbAction]
-    behaviors*: PXkbBehavior
-    key_acts*: PWord
-    explicit*: PByte
-    vmods*: array[0..XkbNumVirtualMods - 1, int8]
-    vmodmap*: PWord
-
-
-proc XkbSMKeyActionsPtr*(m: PXkbServerMapPtr, k: int16): PXkbAction
-  #
-  #          Structures and access macros used primarily by clients
-  #        
-type 
-  PXkbSymMapPtr* = ptr TXkbSymMapRec
-  TXkbSymMapRec*{.final.} = object 
-    kt_index*: array[0..XkbNumKbdGroups - 1, int8]
-    group_info*: int8
-    width*: int8
-    offset*: int8
-
-
-type 
-  PXkbClientMapPtr* = ptr TXkbClientMapRec
-  TXkbClientMapRec*{.final.} = object 
-    size_types*: int8
-    num_types*: int8
-    types*: ptr array[0..0xffff, TXkbKeyTypeRec]
-    size_syms*: int16
-    num_syms*: int16
-    syms*: ptr array[0..0xffff, TKeySym]
-    key_sym_map*: ptr array[0..0xffff, TXkbSymMapRec]
-    modmap*: PByte
-
-
-proc XkbCMKeyGroupInfo*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyNumGroups*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyGroupWidth*(m: PXkbClientMapPtr, k: int16, g: int8): int8
-proc XkbCMKeyGroupsWidth*(m: PXkbClientMapPtr, k: int16): int8
-proc XkbCMKeyTypeIndex*(m: PXkbClientMapPtr, k: int16, g: int8): int8
-proc XkbCMKeyType*(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtr
-proc XkbCMKeyNumSyms*(m: PXkbClientMapPtr, k: int16): int16
-proc XkbCMKeySymsOffset*(m: PXkbClientMapPtr, k: int16): int8
-  #
-  #          Compatibility structures and access macros
-  #        
-type 
-  PXkbSymInterpretPtr* = ptr TXkbSymInterpretRec
-  TXkbSymInterpretRec*{.final.} = object 
-    sym*: TKeySym
-    flags*: int8
-    match*: int8
-    mods*: int8
-    virtual_mod*: int8
-    act*: TXkbAnyAction
-
-
-type 
-  PXkbCompatMapPtr* = ptr TXkbCompatMapRec
-  TXkbCompatMapRec*{.final.} = object 
-    sym_interpret*: PXkbSymInterpretPtr
-    groups*: array[0..XkbNumKbdGroups - 1, TXkbModsRec]
-    num_si*: int16
-    size_si*: int16
-
-
-type 
-  PXkbIndicatorMapPtr* = ptr TXkbIndicatorMapRec
-  TXkbIndicatorMapRec*{.final.} = object 
-    flags*: int8
-    which_groups*: int8
-    groups*: int8
-    which_mods*: int8
-    mods*: TXkbModsRec
-    ctrls*: int16
-
-
-proc XkbIM_IsAuto*(i: PXkbIndicatorMapPtr): bool
-proc XkbIM_InUse*(i: PXkbIndicatorMapPtr): bool
-type 
-  PXkbIndicatorPtr* = ptr TXkbIndicatorRec
-  TXkbIndicatorRec*{.final.} = object 
-    phys_indicators*: int32
-    maps*: array[0..XkbNumIndicators - 1, TXkbIndicatorMapRec]
-
-
-type 
-  PXkbKeyNamePtr* = ptr TXkbKeyNameRec
-  TXkbKeyNameRec*{.final.} = object 
-    name*: array[0..XkbKeyNameLength - 1, Char]
-
-
-type 
-  PXkbKeyAliasPtr* = ptr TXkbKeyAliasRec
-  TXkbKeyAliasRec*{.final.} = object  #
-                                      #          Names for everything
-                                      #        
-    float*: array[0..XkbKeyNameLength - 1, Char]
-    alias*: array[0..XkbKeyNameLength - 1, Char]
-
-
-type 
-  PXkbNamesPtr* = ptr TXkbNamesRec
-  TXkbNamesRec*{.final.} = object  #
-                                   #      Key Type index and mask for the four standard key types.
-                                   #                
-    keycodes*: TAtom
-    geometry*: TAtom
-    symbols*: TAtom
-    types*: TAtom
-    compat*: TAtom
-    vmods*: array[0..XkbNumVirtualMods - 1, TAtom]
-    indicators*: array[0..XkbNumIndicators - 1, TAtom]
-    groups*: array[0..XkbNumKbdGroups - 1, TAtom]
-    keys*: PXkbKeyNamePtr
-    key_aliases*: PXkbKeyAliasPtr
-    radio_groups*: PAtom
-    phys_symbols*: TAtom
-    num_keys*: int8
-    num_key_aliases*: int8
-    num_rg*: int16
-
-
-const 
-  XkbOneLevelIndex* = 0
-  XkbTwoLevelIndex* = 1
-  XkbAlphabeticIndex* = 2
-  XkbKeypadIndex* = 3
-  XkbLastRequiredType* = XkbKeypadIndex
-  XkbNumRequiredTypes* = XkbLastRequiredType + 1
-  XkbMaxKeyTypes* = 255
-  XkbOneLevelMask* = 1 shl 0
-  XkbTwoLevelMask* = 1 shl 1
-  XkbAlphabeticMask* = 1 shl 2
-  XkbKeypadMask* = 1 shl 3
-  XkbAllRequiredTypes* = 0x0000000F
-
-proc XkbShiftLevel*(n: int8): int8
-proc XkbShiftLevelMask*(n: int8): int8
-  #
-  #      Extension name and version information
-  #                
-const 
-  XkbName* = "XKEYBOARD"
-  XkbMajorVersion* = 1
-  XkbMinorVersion* = 0 #
-                       #      Explicit map components:
-                       #       - Used in the 'explicit' field of an XkbServerMap.  Specifies
-                       #         the keyboard components that should _not_ be updated automatically
-                       #         in response to core protocol keyboard mapping requests.
-                       #                
-
-const 
-  XkbExplicitKeyTypesMask* = 0x0000000F
-  XkbExplicitKeyType1Mask* = 1 shl 0
-  XkbExplicitKeyType2Mask* = 1 shl 1
-  XkbExplicitKeyType3Mask* = 1 shl 2
-  XkbExplicitKeyType4Mask* = 1 shl 3
-  XkbExplicitInterpretMask* = 1 shl 4
-  XkbExplicitAutoRepeatMask* = 1 shl 5
-  XkbExplicitBehaviorMask* = 1 shl 6
-  XkbExplicitVModMapMask* = 1 shl 7
-  XkbAllExplicitMask* = 0x000000FF #
-                                   #      Symbol interpretations flags:
-                                   #       - Used in the flags field of a symbol interpretation
-                                   #                
-
-const 
-  XkbSI_AutoRepeat* = 1 shl 0
-  XkbSI_LockingKey* = 1 shl 1 #
-                              #      Symbol interpretations match specification:
-                              #       - Used in the match field of a symbol interpretation to specify
-                              #         the conditions under which an interpretation is used.
-                              #                
-
-const 
-  XkbSI_LevelOneOnly* = 0x00000080
-  XkbSI_OpMask* = 0x0000007F
-  XkbSI_NoneOf* = 0
-  XkbSI_AnyOfOrNone* = 1
-  XkbSI_AnyOf* = 2
-  XkbSI_AllOf* = 3
-  XkbSI_Exactly* = 4 #
-                     #      Indicator map flags:
-                     #       - Used in the flags field of an indicator map to indicate the
-                     #         conditions under which and indicator can be changed and the
-                     #         effects of changing the indicator.
-                     #                
-
-const 
-  XkbIM_NoExplicit* = int(1) shl 7
-  XkbIM_NoAutomatic* = int(1) shl 6
-  XkbIM_LEDDrivesKB* = int(1) shl 5 #
-                                    #      Indicator map component specifications:
-                                    #       - Used by the 'which_groups' and 'which_mods' fields of an indicator
-                                    #         map to specify which keyboard components should be used to drive
-                                    #         the indicator.
-                                    #                
-
-const 
-  XkbIM_UseBase* = int(1) shl 0
-  XkbIM_UseLatched* = int(1) shl 1
-  XkbIM_UseLocked* = int(1) shl 2
-  XkbIM_UseEffective* = int(1) shl 3
-  XkbIM_UseCompat* = int(1) shl 4
-  XkbIM_UseNone* = 0
-  XkbIM_UseAnyGroup* = XkbIM_UseBase or XkbIM_UseLatched or XkbIM_UseLocked or
-      XkbIM_UseEffective
-  XkbIM_UseAnyMods* = XkbIM_UseAnyGroup or XkbIM_UseCompat #
-                                                           #      GetByName components:
-                                                           #       - Specifies desired or necessary components to GetKbdByName request.
-                                                           #       - Reports the components that were found in a GetKbdByNameReply
-                                                           #                
-
-const 
-  XkbGBN_TypesMask* = int(1) shl 0
-  XkbGBN_CompatMapMask* = int(1) shl 1
-  XkbGBN_ClientSymbolsMask* = int(1) shl 2
-  XkbGBN_ServerSymbolsMask* = int(1) shl 3
-  XkbGBN_SymbolsMask* = XkbGBN_ClientSymbolsMask or XkbGBN_ServerSymbolsMask
-  XkbGBN_IndicatorMapMask* = int(1) shl 4
-  XkbGBN_KeyNamesMask* = int(1) shl 5
-  XkbGBN_GeometryMask* = int(1) shl 6
-  XkbGBN_OtherNamesMask* = int(1) shl 7
-  XkbGBN_AllComponentsMask* = 0x000000FF #
-                                         #       ListComponents flags
-                                         #                        
-
-const 
-  XkbLC_Hidden* = int(1) shl 0
-  XkbLC_Default* = int(1) shl 1
-  XkbLC_Partial* = int(1) shl 2
-  XkbLC_AlphanumericKeys* = int(1) shl 8
-  XkbLC_ModifierKeys* = int(1) shl 9
-  XkbLC_KeypadKeys* = int(1) shl 10
-  XkbLC_FunctionKeys* = int(1) shl 11
-  XkbLC_AlternateGroup* = int(1) shl 12 #
-                                        #      X Input Extension Interactions
-                                        #      - Specifies the possible interactions between XKB and the X input
-                                        #        extension
-                                        #      - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
-                                        #        XKB information about an extension device.
-                                        #      - Reports the list of supported optional features in the reply to
-                                        #        XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
-                                        #      XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
-                                        #      events to indicate an attempt to use an unsupported feature.
-                                        #                
-
-const 
-  XkbXI_KeyboardsMask* = int(1) shl 0
-  XkbXI_ButtonActionsMask* = int(1) shl 1
-  XkbXI_IndicatorNamesMask* = int(1) shl 2
-  XkbXI_IndicatorMapsMask* = int(1) shl 3
-  XkbXI_IndicatorStateMask* = int(1) shl 4
-  XkbXI_UnsupportedFeatureMask* = int(1) shl 15
-  XkbXI_AllFeaturesMask* = 0x0000001F
-  XkbXI_AllDeviceFeaturesMask* = 0x0000001E
-  XkbXI_IndicatorsMask* = 0x0000001C
-  XkbAllExtensionDeviceEventsMask* = 0x0000801F #
-                                                #      Per-Client Flags:
-                                                #       - Specifies flags to be changed by the PerClientFlags request.
-                                                #                
-
-const 
-  XkbPCF_DetectableAutoRepeatMask* = int(1) shl 0
-  XkbPCF_GrabsUseXKBStateMask* = int(1) shl 1
-  XkbPCF_AutoResetControlsMask* = int(1) shl 2
-  XkbPCF_LookupStateWhenGrabbed* = int(1) shl 3
-  XkbPCF_SendEventUsesXKBState* = int(1) shl 4
-  XkbPCF_AllFlagsMask* = 0x0000001F #
-                                    #      Debugging flags and controls
-                                    #                
-
-const 
-  XkbDF_DisableLocks* = 1 shl 0
-
-type 
-  PXkbPropertyPtr* = ptr TXkbPropertyRec
-  TXkbPropertyRec*{.final.} = object 
-    name*: cstring
-    value*: cstring
-
-
-type 
-  PXkbColorPtr* = ptr TXkbColorRec
-  TXkbColorRec*{.final.} = object 
-    pixel*: int16
-    spec*: cstring
-
-
-type 
-  PXkbPointPtr* = ptr TXkbPointRec
-  TXkbPointRec*{.final.} = object 
-    x*: int16
-    y*: int16
-
-
-type 
-  PXkbBoundsPtr* = ptr TXkbBoundsRec
-  TXkbBoundsRec*{.final.} = object 
-    x1*: int16
-    y1*: int16
-    x2*: int16
-    y2*: int16
-
-
-proc XkbBoundsWidth*(b: PXkbBoundsPtr): int16
-proc XkbBoundsHeight*(b: PXkbBoundsPtr): int16
-type 
-  PXkbOutlinePtr* = ptr TXkbOutlineRec
-  TXkbOutlineRec*{.final.} = object 
-    num_points*: int16
-    sz_points*: int16
-    corner_radius*: int16
-    points*: PXkbPointPtr
-
-
-type 
-  PXkbShapePtr* = ptr TXkbShapeRec
-  TXkbShapeRec*{.final.} = object 
-    name*: TAtom
-    num_outlines*: int16
-    sz_outlines*: int16
-    outlines*: ptr array [0..0xffff, TXkbOutlineRec]
-    approx*: ptr array[0..0xffff, TXkbOutlineRec]
-    primary*: ptr array[0..0xffff, TXkbOutlineRec]
-    bounds*: TXkbBoundsRec
-
-
-proc XkbOutlineIndex*(s: PXkbShapePtr, o: PXkbOutlinePtr): int32
-type 
-  PXkbShapeDoodadPtr* = ptr TXkbShapeDoodadRec
-  TXkbShapeDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    color_ndx*: int16
-    shape_ndx*: int16
-
-
-type 
-  PXkbTextDoodadPtr* = ptr TXkbTextDoodadRec
-  TXkbTextDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    width*: int16
-    height*: int16
-    color_ndx*: int16
-    text*: cstring
-    font*: cstring
-
-
-type 
-  PXkbIndicatorDoodadPtr* = ptr TXkbIndicatorDoodadRec
-  TXkbIndicatorDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    shape_ndx*: int16
-    on_color_ndx*: int16
-    off_color_ndx*: int16
-
-
-type 
-  PXkbLogoDoodadPtr* = ptr TXkbLogoDoodadRec
-  TXkbLogoDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-    color_ndx*: int16
-    shape_ndx*: int16
-    logo_name*: cstring
-
-
-type 
-  PXkbAnyDoodadPtr* = ptr TXkbAnyDoodadRec
-  TXkbAnyDoodadRec*{.final.} = object 
-    name*: TAtom
-    theType*: int8
-    priority*: int8
-    top*: int16
-    left*: int16
-    angle*: int16
-
-
-type 
-  PXkbDoodadPtr* = ptr TXkbDoodadRec
-  TXkbDoodadRec*{.final.} = object 
-    any*: TXkbAnyDoodadRec
-    shape*: TXkbShapeDoodadRec
-    text*: TXkbTextDoodadRec
-    indicator*: TXkbIndicatorDoodadRec
-    logo*: TXkbLogoDoodadRec
-
-
-const 
-  XkbUnknownDoodad* = 0
-  XkbOutlineDoodad* = 1
-  XkbSolidDoodad* = 2
-  XkbTextDoodad* = 3
-  XkbIndicatorDoodad* = 4
-  XkbLogoDoodad* = 5
-
-type 
-  PXkbKeyPtr* = ptr TXkbKeyRec
-  TXkbKeyRec*{.final.} = object 
-    name*: TXkbKeyNameRec
-    gap*: int16
-    shape_ndx*: int8
-    color_ndx*: int8
-
-
-type 
-  PXkbRowPtr* = ptr TXkbRowRec
-  TXkbRowRec*{.final.} = object 
-    top*: int16
-    left*: int16
-    num_keys*: int16
-    sz_keys*: int16
-    vertical*: int16
-    Keys*: PXkbKeyPtr
-    bounds*: TXkbBoundsRec
-
-
-type 
-  PXkbOverlayPtr* = ptr TXkbOverlayRec #forward for TXkbSectionRec use.
-                                       #Do not add more "type"
-  PXkbSectionPtr* = ptr TXkbSectionRec
-  TXkbSectionRec*{.final.} = object  #Do not add more "type"
-    name*: TAtom
-    priority*: int8
-    top*: int16
-    left*: int16
-    width*: int16
-    height*: int16
-    angle*: int16
-    num_rows*: int16
-    num_doodads*: int16
-    num_overlays*: int16
-    rows*: PXkbRowPtr
-    doodads*: PXkbDoodadPtr
-    bounds*: TXkbBoundsRec
-    overlays*: PXkbOverlayPtr
-
-  PXkbOverlayKeyPtr* = ptr TXkbOverlayKeyRec
-  TXkbOverlayKeyRec*{.final.} = object  #Do not add more "type"
-    over*: TXkbKeyNameRec
-    under*: TXkbKeyNameRec
-
-  PXkbOverlayRowPtr* = ptr TXkbOverlayRowRec
-  TXkbOverlayRowRec*{.final.} = object  #Do not add more "type"
-    row_under*: int16
-    num_keys*: int16
-    sz_keys*: int16
-    keys*: PXkbOverlayKeyPtr
-
-  TXkbOverlayRec*{.final.} = object 
-    name*: TAtom
-    section_under*: PXkbSectionPtr
-    num_rows*: int16
-    sz_rows*: int16
-    rows*: PXkbOverlayRowPtr
-    bounds*: PXkbBoundsPtr
-
-
-type 
-  PXkbGeometryRec* = ptr TXkbGeometryRec
-  PXkbGeometryPtr* = PXkbGeometryRec
-  TXkbGeometryRec*{.final.} = object 
-    name*: TAtom
-    width_mm*: int16
-    height_mm*: int16
-    label_font*: cstring
-    label_color*: PXkbColorPtr
-    base_color*: PXkbColorPtr
-    sz_properties*: int16
-    sz_colors*: int16
-    sz_shapes*: int16
-    sz_sections*: int16
-    sz_doodads*: int16
-    sz_key_aliases*: int16
-    num_properties*: int16
-    num_colors*: int16
-    num_shapes*: int16
-    num_sections*: int16
-    num_doodads*: int16
-    num_key_aliases*: int16
-    properties*: ptr array[0..0xffff, TXkbPropertyRec]
-    colors*: ptr array[0..0xffff, TXkbColorRec]
-    shapes*: ptr array[0..0xffff, TXkbShapeRec]
-    sections*: ptr array[0..0xffff, TXkbSectionRec]
-    key_aliases*: ptr array[0..0xffff, TXkbKeyAliasRec]
-
-
-const 
-  XkbGeomPropertiesMask* = 1 shl 0
-  XkbGeomColorsMask* = 1 shl 1
-  XkbGeomShapesMask* = 1 shl 2
-  XkbGeomSectionsMask* = 1 shl 3
-  XkbGeomDoodadsMask* = 1 shl 4
-  XkbGeomKeyAliasesMask* = 1 shl 5
-  XkbGeomAllMask* = 0x0000003F
-
-type 
-  PXkbGeometrySizesPtr* = ptr TXkbGeometrySizesRec
-  TXkbGeometrySizesRec*{.final.} = object  #
-                                           #          Tie it all together into one big keyboard description
-                                           #        
-    which*: int16
-    num_properties*: int16
-    num_colors*: int16
-    num_shapes*: int16
-    num_sections*: int16
-    num_doodads*: int16
-    num_key_aliases*: int16
-
-
-type 
-  PXkbDescPtr* = ptr TXkbDescRec
-  TXkbDescRec*{.final.} = object 
-    dpy*: PDisplay
-    flags*: int16
-    device_spec*: int16
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    ctrls*: PXkbControlsPtr
-    server*: PXkbServerMapPtr
-    map*: PXkbClientMapPtr
-    indicators*: PXkbIndicatorPtr
-    names*: PXkbNamesPtr
-    compat*: PXkbCompatMapPtr
-    geom*: PXkbGeometryPtr
-
-
-proc XkbKeyKeyTypeIndex*(d: PXkbDescPtr, k: int16, g: int8): int8
-proc XkbKeyKeyType*(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtr
-proc XkbKeyGroupWidth*(d: PXkbDescPtr, k: int16, g: int8): int8
-proc XkbKeyGroupsWidth*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyGroupInfo*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyNumGroups*(d: PXkbDescPtr, k: int16): int8
-proc XkbKeyNumSyms*(d: PXkbDescPtr, k: int16): int16
-proc XkbKeySym*(d: PXkbDescPtr, k: int16, n: int16): TKeySym
-proc XkbKeySymEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): TKeySym
-proc XkbKeyAction*(d: PXkbDescPtr, k: int16, n: int16): PXkbAction
-proc XkbKeyActionEntry*(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8
-proc XkbKeyHasActions*(d: PXkbDescPtr, k: int16): bool
-proc XkbKeyNumActions*(d: PXkbDescPtr, k: int16): int16
-proc XkbKeyActionsPtr*(d: PXkbDescPtr, k: int16): PXkbAction
-proc XkbKeycodeInRange*(d: PXkbDescPtr, k: int16): bool
-proc XkbNumKeys*(d: PXkbDescPtr): int8
-  #
-  #          The following structures can be used to track changes
-  #          to a keyboard device
-  #        
-type 
-  PXkbMapChangesPtr* = ptr TXkbMapChangesRec
-  TXkbMapChangesRec*{.final.} = object 
-    changed*: int16
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    first_type*: int8
-    num_types*: int8
-    first_key_sym*: TKeyCode
-    num_key_syms*: int8
-    first_key_act*: TKeyCode
-    num_key_acts*: int8
-    first_key_behavior*: TKeyCode
-    num_key_behaviors*: int8
-    first_key_explicit*: TKeyCode
-    num_key_explicit*: int8
-    first_modmap_key*: TKeyCode
-    num_modmap_keys*: int8
-    first_vmodmap_key*: TKeyCode
-    num_vmodmap_keys*: int8
-    pad*: int8
-    vmods*: int16
-
-
-type 
-  PXkbControlsChangesPtr* = ptr TXkbControlsChangesRec
-  TXkbControlsChangesRec*{.final.} = object 
-    changed_ctrls*: int16
-    enabled_ctrls_changes*: int16
-    num_groups_changed*: bool
-
-
-type 
-  PXkbIndicatorChangesPtr* = ptr TXkbIndicatorChangesRec
-  TXkbIndicatorChangesRec*{.final.} = object 
-    state_changes*: int16
-    map_changes*: int16
-
-
-type 
-  PXkbNameChangesPtr* = ptr TXkbNameChangesRec
-  TXkbNameChangesRec*{.final.} = object 
-    changed*: int16
-    first_type*: int8
-    num_types*: int8
-    first_lvl*: int8
-    num_lvls*: int8
-    num_aliases*: int8
-    num_rg*: int8
-    first_key*: int8
-    num_keys*: int8
-    changed_vmods*: int16
-    changed_indicators*: int32
-    changed_groups*: int8
-
-
-type 
-  PXkbCompatChangesPtr* = ptr TXkbCompatChangesRec
-  TXkbCompatChangesRec*{.final.} = object 
-    changed_groups*: int8
-    first_si*: int16
-    num_si*: int16
-
-
-type 
-  PXkbChangesPtr* = ptr TXkbChangesRec
-  TXkbChangesRec*{.final.} = object  #
-                                     #          These data structures are used to construct a keymap from
-                                     #          a set of components or to list components in the server
-                                     #          database.
-                                     #        
-    device_spec*: int16
-    state_changes*: int16
-    map*: TXkbMapChangesRec
-    ctrls*: TXkbControlsChangesRec
-    indicators*: TXkbIndicatorChangesRec
-    names*: TXkbNameChangesRec
-    compat*: TXkbCompatChangesRec
-
-
-type 
-  PXkbComponentNamesPtr* = ptr TXkbComponentNamesRec
-  TXkbComponentNamesRec*{.final.} = object 
-    keymap*: ptr int16
-    keycodes*: ptr int16
-    types*: ptr int16
-    compat*: ptr int16
-    symbols*: ptr int16
-    geometry*: ptr int16
-
-
-type 
-  PXkbComponentNamePtr* = ptr TXkbComponentNameRec
-  TXkbComponentNameRec*{.final.} = object 
-    flags*: int16
-    name*: cstring
-
-
-type 
-  PXkbComponentListPtr* = ptr TXkbComponentListRec
-  TXkbComponentListRec*{.final.} = object  #
-                                           #          The following data structures describe and track changes to a
-                                           #          non-keyboard extension device
-                                           #        
-    num_keymaps*: int16
-    num_keycodes*: int16
-    num_types*: int16
-    num_compat*: int16
-    num_symbols*: int16
-    num_geometry*: int16
-    keymaps*: PXkbComponentNamePtr
-    keycodes*: PXkbComponentNamePtr
-    types*: PXkbComponentNamePtr
-    compat*: PXkbComponentNamePtr
-    symbols*: PXkbComponentNamePtr
-    geometry*: PXkbComponentNamePtr
-
-
-type 
-  PXkbDeviceLedInfoPtr* = ptr TXkbDeviceLedInfoRec
-  TXkbDeviceLedInfoRec*{.final.} = object 
-    led_class*: int16
-    led_id*: int16
-    phys_indicators*: int16
-    maps_present*: int16
-    names_present*: int16
-    state*: int16
-    names*: array[0..XkbNumIndicators - 1, TAtom]
-    maps*: array[0..XkbNumIndicators - 1, TXkbIndicatorMapRec]
-
-
-type 
-  PXkbDeviceInfoPtr* = ptr TXkbDeviceInfoRec
-  TXkbDeviceInfoRec*{.final.} = object 
-    name*: cstring
-    theType*: TAtom
-    device_spec*: int16
-    has_own_state*: bool
-    supported*: int16
-    unsupported*: int16
-    num_btns*: int16
-    btn_acts*: PXkbAction
-    sz_leds*: int16
-    num_leds*: int16
-    dflt_kbd_fb*: int16
-    dflt_led_fb*: int16
-    leds*: PXkbDeviceLedInfoPtr
-
-
-proc XkbXI_DevHasBtnActs*(d: PXkbDeviceInfoPtr): bool
-proc XkbXI_LegalDevBtn*(d: PXkbDeviceInfoPtr, b: int16): bool
-proc XkbXI_DevHasLeds*(d: PXkbDeviceInfoPtr): bool
-type 
-  PXkbDeviceLedChangesPtr* = ptr TXkbDeviceLedChangesRec
-  TXkbDeviceLedChangesRec*{.final.} = object 
-    led_class*: int16
-    led_id*: int16
-    defined*: int16           #names or maps changed
-    next*: PXkbDeviceLedChangesPtr
-
-
-type 
-  PXkbDeviceChangesPtr* = ptr TXkbDeviceChangesRec
-  TXkbDeviceChangesRec*{.final.} = object 
-    changed*: int16
-    first_btn*: int16
-    num_btns*: int16
-    leds*: TXkbDeviceLedChangesRec
-
-
-proc XkbShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr
-proc XkbShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtr
-proc XkbSetShapeDoodadColor*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                             c: PXkbColorPtr)
-proc XkbSetShapeDoodadShape*(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                             s: PXkbShapePtr)
-proc XkbTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr
-proc XkbSetTextDoodadColor*(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, 
-                            c: PXkbColorPtr)
-proc XkbIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr
-proc XkbIndicatorDoodadOnColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr
-proc XkbIndicatorDoodadOffColor*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr
-proc XkbSetIndicatorDoodadOnColor*(g: PXkbGeometryPtr, 
-                                   d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)
-proc XkbSetIndicatorDoodadOffColor*(g: PXkbGeometryPtr, 
-                                    d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr)
-proc XkbSetIndicatorDoodadShape*(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                 s: PXkbShapeDoodadPtr)
-proc XkbLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr
-proc XkbLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtr
-proc XkbSetLogoDoodadColor*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                            c: PXkbColorPtr)
-proc XkbSetLogoDoodadShape*(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                            s: PXkbShapeDoodadPtr)
-proc XkbKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr
-proc XkbKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtr
-proc XkbSetKeyShape*(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr)
-proc XkbSetKeyColor*(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr)
-proc XkbGeomColorIndex*(g: PXkbGeometryPtr, c: PXkbColorPtr): int32
-proc XkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring, value: cstring): PXkbPropertyPtr{.
-    libx11c, importc: "XkbAddGeomProperty".}
-proc XkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.
-    libx11c, importc: "XkbAddGeomKeyAlias".}
-proc XkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.
-    libx11c, importc: "XkbAddGeomColor".}
-proc XkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.
-    libx11c, importc: "XkbAddGeomOutline".}
-proc XkbAddGeomShape*(geom: PXkbGeometryPtr, name: TAtom, sz_outlines: int16): PXkbShapePtr{.
-    libx11c, importc: "XkbAddGeomShape".}
-proc XkbAddGeomKey*(row: PXkbRowPtr): PXkbKeyPtr{.libx11c, 
-    importc: "XkbAddGeomKey".}
-proc XkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.libx11c, importc: "XkbAddGeomRow".}
-proc XkbAddGeomSection*(geom: PXkbGeometryPtr, name: TAtom, sz_rows: int16, 
-                        sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.
-    libx11c, importc: "XkbAddGeomSection".}
-proc XkbAddGeomOverlay*(section: PXkbSectionPtr, name: TAtom, sz_rows: int16): PXkbOverlayPtr{.
-    libx11c, importc: "XkbAddGeomOverlay".}
-proc XkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16, 
-                           sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}
-proc XkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                           over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-    libx11c, importc: "XkbAddGeomOverlayKey".}
-proc XkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                       name: TAtom): PXkbDoodadPtr{.libx11c, 
-    importc: "XkbAddGeomDoodad".}
-proc XkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                            freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomKeyAliases".}
-proc XkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomColors".}
-proc XkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16, freeAll: bool){.
-    libx11c, importc: "XkbFreeGeomDoodads".}
-proc XkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                            freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomProperties".}
-proc XkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOverlayKeys".}
-proc XkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16, 
-                             count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}
-proc XkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOverlays".}
-proc XkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16, freeAll: bool){.
-    libx11c, importc: "XkbFreeGeomKeys".}
-proc XkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16, 
-                      freeAll: bool){.libx11c, 
-                                      importc: "XkbFreeGeomRows".}
-proc XkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomSections".}
-proc XkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomPoints".}
-proc XkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16, 
-                          freeAll: bool){.libx11c, 
-    importc: "XkbFreeGeomOutlines".}
-proc XkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                        freeAll: bool){.libx11c, 
-                                        importc: "XkbFreeGeomShapes".}
-proc XkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.
-    libx11c, importc: "XkbFreeGeometry".}
-proc XkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): TStatus{.libx11c, importc: "XkbAllocGeomProps".}
-proc XkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomKeyAliases".}
-proc XkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): TStatus{.libx11c, importc: "XkbAllocGeomColors".}
-proc XkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): TStatus{.libx11c, importc: "XkbAllocGeomShapes".}
-proc XkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomSections".}
-proc XkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlays".}
-proc XkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlayRows".}
-proc XkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomOverlayKeys".}
-proc XkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomDoodads".}
-proc XkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): TStatus{.
-    libx11c, importc: "XkbAllocGeomSectionDoodads".}
-proc XkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): TStatus{.libx11c, importc: "XkbAllocGeomOutlines".}
-proc XkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): TStatus{.libx11c, importc: "XkbAllocGeomRows".}
-proc XkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): TStatus{.libx11c, importc: "XkbAllocGeomPoints".}
-proc XkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): TStatus{.libx11c, importc: "XkbAllocGeomKeys".}
-proc XkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): TStatus{.
-    libx11c, importc: "XkbAllocGeometry".}
-proc XkbSetGeometryProc*(dpy: PDisplay, deviceSpec: int16, geom: PXkbGeometryPtr): TStatus{.
-    libx11c, importc: "XkbSetGeometry".}
-proc XkbComputeShapeTop*(shape: PXkbShapePtr, bounds: PXkbBoundsPtr): bool{.
-    libx11c, importc: "XkbComputeShapeTop".}
-proc XkbComputeShapeBounds*(shape: PXkbShapePtr): bool{.libx11c, 
-    importc: "XkbComputeShapeBounds".}
-proc XkbComputeRowBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                          row: PXkbRowPtr): bool{.libx11c, 
-    importc: "XkbComputeRowBounds".}
-proc XkbComputeSectionBounds*(geom: PXkbGeometryPtr, section: PXkbSectionPtr): bool{.
-    libx11c, importc: "XkbComputeSectionBounds".}
-proc XkbFindOverlayForKey*(geom: PXkbGeometryPtr, wanted: PXkbSectionPtr, 
-                           under: cstring): cstring{.libx11c, 
-    importc: "XkbFindOverlayForKey".}
-proc XkbGetGeometryProc*(dpy: PDisplay, xkb: PXkbDescPtr): TStatus{.libx11c, importc: "XkbGetGeometry".}
-proc XkbGetNamedGeometry*(dpy: PDisplay, xkb: PXkbDescPtr, name: TAtom): TStatus{.
-    libx11c, importc: "XkbGetNamedGeometry".}
-when defined(XKB_IN_SERVER): 
-  proc SrvXkbAddGeomKeyAlias*(geom: PXkbGeometryPtr, alias: cstring, 
-                              float: cstring): PXkbKeyAliasPtr{.libx11c, importc: "XkbAddGeomKeyAlias".}
-  proc SrvXkbAddGeomColor*(geom: PXkbGeometryPtr, spec: cstring, pixel: int16): PXkbColorPtr{.
-      libx11c, importc: "XkbAddGeomColor".}
-  proc SrvXkbAddGeomDoodad*(geom: PXkbGeometryPtr, section: PXkbSectionPtr, 
-                            name: TAtom): PXkbDoodadPtr{.libx11c, 
-      importc: "XkbAddGeomDoodad".}
-  proc SrvXkbAddGeomKey*(geom: PXkbGeometryPtr, alias: cstring, float: cstring): PXkbKeyAliasPtr{.
-      libx11c, importc: "XkbAddGeomKeyAlias".}
-  proc SrvXkbAddGeomOutline*(shape: PXkbShapePtr, sz_points: int16): PXkbOutlinePtr{.
-      libx11c, importc: "XkbAddGeomOutline".}
-  proc SrvXkbAddGeomOverlay*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                             over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-      libx11c, importc: "XkbAddGeomOverlayKey".}
-  proc SrvXkbAddGeomOverlayRow*(overlay: PXkbOverlayPtr, row_under: int16, 
-                                sz_keys: int16): PXkbOverlayRowPtr{.libx11c, importc: "XkbAddGeomOverlayRow".}
-  proc SrvXkbAddGeomOverlayKey*(overlay: PXkbOverlayPtr, row: PXkbOverlayRowPtr, 
-                                over: cstring, under: cstring): PXkbOverlayKeyPtr{.
-      libx11c, importc: "XkbAddGeomOverlayKey".}
-  proc SrvXkbAddGeomProperty*(geom: PXkbGeometryPtr, name: cstring, 
-                              value: cstring): PXkbPropertyPtr{.libx11c, importc: "XkbAddGeomProperty".}
-  proc SrvXkbAddGeomRow*(section: PXkbSectionPtr, sz_keys: int16): PXkbRowPtr{.
-      libx11c, importc: "XkbAddGeomRow".}
-  proc SrvXkbAddGeomSection*(geom: PXkbGeometryPtr, name: TAtom, sz_rows: int16, 
-                             sz_doodads: int16, sz_overlays: int16): PXkbSectionPtr{.
-      libx11c, importc: "XkbAddGeomSection".}
-  proc SrvXkbAddGeomShape*(geom: PXkbGeometryPtr, name: TAtom, 
-                           sz_outlines: int16): PXkbShapePtr{.libx11c, importc: "XkbAddGeomShape".}
-  proc SrvXkbAllocGeomKeyAliases*(geom: PXkbGeometryPtr, nAliases: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomKeyAliases".}
-  proc SrvXkbAllocGeomColors*(geom: PXkbGeometryPtr, nColors: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomColors".}
-  proc SrvXkbAllocGeomDoodads*(geom: PXkbGeometryPtr, nDoodads: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomDoodads".}
-  proc SrvXkbAllocGeomKeys*(row: PXkbRowPtr, nKeys: int16): TStatus{.libx11c, importc: "XkbAllocGeomKeys".}
-  proc SrvXkbAllocGeomOutlines*(shape: PXkbShapePtr, nOL: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOutlines".}
-  proc SrvXkbAllocGeomPoints*(ol: PXkbOutlinePtr, nPts: int16): TStatus{.libx11c, importc: "XkbAllocGeomPoints".}
-  proc SrvXkbAllocGeomProps*(geom: PXkbGeometryPtr, nProps: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomProps".}
-  proc SrvXkbAllocGeomRows*(section: PXkbSectionPtr, nRows: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomRows".}
-  proc SrvXkbAllocGeomSectionDoodads*(section: PXkbSectionPtr, nDoodads: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomSectionDoodads".}
-  proc SrvXkbAllocGeomSections*(geom: PXkbGeometryPtr, nSections: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomSections".}
-  proc SrvXkbAllocGeomOverlays*(section: PXkbSectionPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlays".}
-  proc SrvXkbAllocGeomOverlayRows*(overlay: PXkbOverlayPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlayRows".}
-  proc SrvXkbAllocGeomOverlayKeys*(row: PXkbOverlayRowPtr, num_needed: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomOverlayKeys".}
-  proc SrvXkbAllocGeomShapes*(geom: PXkbGeometryPtr, nShapes: int16): TStatus{.
-      libx11c, importc: "XkbAllocGeomShapes".}
-  proc SrvXkbAllocGeometry*(xkb: PXkbDescPtr, sizes: PXkbGeometrySizesPtr): TStatus{.
-      libx11c, importc: "XkbAllocGeometry".}
-  proc SrvXkbFreeGeomKeyAliases*(geom: PXkbGeometryPtr, first: int16, 
-                                 count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomKeyAliases".}
-  proc SrvXkbFreeGeomColors*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomColors".}
-  proc SrvXkbFreeGeomDoodads*(doodads: PXkbDoodadPtr, nDoodads: int16, 
-                              freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomDoodads".}
-  proc SrvXkbFreeGeomProperties*(geom: PXkbGeometryPtr, first: int16, 
-                                 count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomProperties".}
-  proc SrvXkbFreeGeomOverlayKeys*(row: PXkbOverlayRowPtr, first: int16, 
-                                  count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayKeys".}
-  proc SrvXkbFreeGeomOverlayRows*(overlay: PXkbOverlayPtr, first: int16, 
-                                  count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlayRows".}
-  proc SrvXkbFreeGeomOverlays*(section: PXkbSectionPtr, first: int16, 
-                               count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomOverlays".}
-  proc SrvXkbFreeGeomKeys*(row: PXkbRowPtr, first: int16, count: int16, 
-                           freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomKeys".}
-  proc SrvXkbFreeGeomRows*(section: PXkbSectionPtr, first: int16, count: int16, 
-                           freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomRows".}
-  proc SrvXkbFreeGeomSections*(geom: PXkbGeometryPtr, first: int16, 
-                               count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomSections".}
-  proc SrvXkbFreeGeomPoints*(outline: PXkbOutlinePtr, first: int16, 
-                             count: int16, freeAll: bool){.libx11c, importc: "XkbFreeGeomPoints".}
-  proc SrvXkbFreeGeomOutlines*(shape: PXkbShapePtr, first: int16, count: int16, 
-                               freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomOutlines".}
-  proc SrvXkbFreeGeomShapes*(geom: PXkbGeometryPtr, first: int16, count: int16, 
-                             freeAll: bool){.libx11c, 
-      importc: "XkbFreeGeomShapes".}
-  proc SrvXkbFreeGeometry*(geom: PXkbGeometryPtr, which: int16, freeMap: bool){.
-      libx11c, importc: "XkbFreeGeometry".}
-# implementation
-
-import                        #************************************ xkb ************************************
-  xi
-
-proc XkbLegalXILedClass(c: int): bool = 
-  ##define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||((c)==LedFeedbackClass)||
-  #                                ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))
-  Result = (c == KbdFeedbackClass) or (c == LedFeedbackClass) or
-      (c == XkbDfltXIClass) or (c == XkbAllXIClasses)
-
-proc XkbLegalXIBellClass(c: int): bool = 
-  ##define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||((c)==BellFeedbackClass)||
-  #                                 ((c)==XkbDfltXIClass)||((c)==XkbAllXIClasses))
-  Result = (c == KbdFeedbackClass) or (c == BellFeedbackClass) or
-      (c == XkbDfltXIClass) or (c == XkbAllXIClasses)
-
-proc XkbExplicitXIDevice(c: int): bool = 
-  ##define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbExplicitXIClass(c: int): bool = 
-  ##define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbExplicitXIId(c: int): bool = 
-  ##define XkbExplicitXIId(c) (((c)&(~0xff))==0)
-  Result = (c and (not 0x000000FF)) == 0
-
-proc XkbSingleXIClass(c: int): bool = 
-  ##define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
-  Result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIClass)
-
-proc XkbSingleXIId(c: int): bool = 
-  ##define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
-  Result = ((c and (not 0x000000FF)) == 0) or (c == XkbDfltXIId)
-
-proc XkbBuildCoreState(m, g: int): int = 
-  ##define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
-  Result = ((g and 0x00000003) shl 13) or (m and 0x000000FF)
-
-proc XkbGroupForCoreState(s: int): int = 
-  ##define XkbGroupForCoreState(s) (((s)>>13)&0x3)
-  Result = (s shr 13) and 0x00000003
-
-proc XkbIsLegalGroup(g: int): bool = 
-  ##define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
-  Result = (g >= 0) and (g < XkbNumKbdGroups)
-
-proc XkbSA_ValOp(a: int): int = 
-  ##define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
-  Result = a and XkbSA_ValOpMask
-
-proc XkbSA_ValScale(a: int): int = 
-  ##define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
-  Result = a and XkbSA_ValScaleMask
-
-proc XkbIsModAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
-  Result = (ze(a.theType) >= XkbSA_SetMods) and (ze(a.theType) <= XkbSA_LockMods)
-
-proc XkbIsGroupAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
-  Result = (ze(a.theType) >= XkbSA_SetGroup) or (ze(a.theType) <= XkbSA_LockGroup)
-
-proc XkbIsPtrAction(a: PXkbAnyAction): bool = 
-  ##define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
-  Result = (ze(a.theType) >= XkbSA_MovePtr) and
-      (ze(a.theType) <= XkbSA_SetPtrDflt)
-
-proc XkbIsLegalKeycode(k: int): bool = 
-  ##define        XkbIsLegalKeycode(k)    (((k)>=XkbMinLegalKeyCode)&&((k)<=XkbMaxLegalKeyCode))
-  Result = (k >= XkbMinLegalKeyCode) and (k <= XkbMaxLegalKeyCode)
-
-proc XkbShiftLevel(n: int8): int8 = 
-  ##define XkbShiftLevel(n) ((n)-1)
-  Result = n - 1'i8
-
-proc XkbShiftLevelMask(n: int8): int8 = 
-  ##define XkbShiftLevelMask(n) (1<<((n)-1))
-  Result = 1'i8 shl (n - 1'i8)
-
-proc XkbCharToInt(v: int8): int16 = 
-  ##define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
-  if ((v and 0x80'i8) != 0'i8): Result = v or (not 0xFF'i16)
-  else: Result = int16(v and 0x7F'i8)
-  
-proc XkbIntTo2Chars(i: int16, h, L: var int8) = 
-  ##define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
-  h = toU8((i shr 8'i16) and 0x00FF'i16)
-  L = toU8(i and 0xFF'i16)
-
-proc Xkb2CharsToInt(h, L: int8): int16 = 
-  when defined(cpu64): 
-    ##define Xkb2CharsToInt(h,l) ((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)): (int)(((h)<<8)|(l)&0x7fff))
-    if (h and 0x80'i8) != 0'i8: 
-      Result = toU16((ze(h) shl 8) or ze(L) or not 0x0000FFFF)
-    else: 
-      Result = toU16((ze(h) shl 8) or ze(L) and 0x00007FFF)
-  else: 
-    ##define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l)))
-    Result = toU16(ze(h) shl 8 or ze(L))
-
-proc XkbModLocks(s: PXkbStatePtr): int8 = 
-  ##define XkbModLocks(s) ((s)->locked_mods)
-  Result = s.locked_mods
-
-proc XkbStateMods(s: PXkbStatePtr): int16 = 
-  ##define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
-  Result = s.base_mods or s.latched_mods or XkbModLocks(s)
-
-proc XkbGroupLock(s: PXkbStatePtr): int8 = 
-  ##define XkbGroupLock(s) ((s)->locked_group)
-  Result = s.locked_group
-
-proc XkbStateGroup(s: PXkbStatePtr): int16 = 
-  ##define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
-  Result = S.base_group + (s.latched_group) + XkbGroupLock(s)
-
-proc XkbStateFieldFromRec(s: PXkbStatePtr): int = 
-  ##define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
-  Result = XkbBuildCoreState(s.lookup_mods, s.group)
-
-proc XkbGrabStateFromRec(s: PXkbStatePtr): int = 
-  ##define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)
-  Result = XkbBuildCoreState(s.grab_mods, s.group)
-
-proc XkbNumGroups(g: int16): int16 = 
-  ##define XkbNumGroups(g) ((g)&0x0f)
-  Result = g and 0x0000000F'i16
-
-proc XkbOutOfRangeGroupInfo(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)
-  Result = g and 0x000000F0'i16
-
-proc XkbOutOfRangeGroupAction(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupAction(g) ((g)&0xc0)
-  Result = g and 0x000000C0'i16
-
-proc XkbOutOfRangeGroupNumber(g: int16): int16 = 
-  ##define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)
-  Result = (g and 0x00000030'i16) shr 4'i16
-
-proc XkbSetGroupInfo(g, w, n: int16): int16 = 
-  ##define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
-  Result = (w and 0x000000C0'i16) or 
-    ((n and 3'i16) shl 4'i16) or (g and 0x0000000F'i16)
-
-proc XkbSetNumGroups(g, n: int16): int16 = 
-  ##define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))
-  Result = (g and 0x000000F0'i16) or (n and 0x0000000F'i16)
-
-proc XkbModActionVMods(a: PXkbModAction): int16 = 
-  ##define XkbModActionVMods(a) ((short)(((a)->vmods1<<8)|((a)->vmods2)))
-  Result = toU16((ze(a.vmods1) shl 8) or ze(a.vmods2))
-
-proc XkbSetModActionVMods(a: PXkbModAction, v: int8) = 
-  ##define XkbSetModActionVMods(a,v) (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
-  a.vmods1 = toU8((ze(v) shr 8) and 0x000000FF)
-  a.vmods2 = toU8(ze(v) and 0x000000FF)
-
-proc XkbSAGroup(a: PXkbGroupAction): int8 = 
-  ##define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX))
-  Result = int8(XkbCharToInt(a.group_XXX))
-
-proc XkbSASetGroupProc(a: PXkbGroupAction, g: int8) = 
-  ##define XkbSASetGroup(a,g) ((a)->group_XXX=(g))
-  a.group_XXX = g
-
-proc XkbPtrActionX(a: PXkbPtrAction): int16 = 
-  ##define XkbPtrActionX(a) (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
-  Result = int16(Xkb2CharsToInt(a.high_XXX, a.low_XXX))
-
-proc XkbPtrActionY(a: PXkbPtrAction): int16 = 
-  ##define XkbPtrActionY(a) (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
-  Result = int16(Xkb2CharsToInt(a.high_YYY, a.low_YYY))
-
-proc XkbSetPtrActionX(a: PXkbPtrAction, x: int8) = 
-  ##define XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
-  XkbIntTo2Chars(x, a.high_XXX, a.low_XXX)
-
-proc XkbSetPtrActionY(a: PXkbPtrAction, y: int8) = 
-  ##define XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
-  XkbIntTo2Chars(y, a.high_YYY, a.low_YYY)
-
-proc XkbSAPtrDfltValue(a: PXkbPtrDfltAction): int8 = 
-  ##define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX))
-  Result = int8(XkbCharToInt(a.valueXXX))
-
-proc XkbSASetPtrDfltValue(a: PXkbPtrDfltAction, c: pointer) = 
-  ##define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))
-  a.valueXXX = toU8(cast[int](c))
-
-proc XkbSAScreen(a: PXkbSwitchScreenAction): int8 = 
-  ##define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX))
-  Result = toU8(XkbCharToInt(a.screenXXX))
-
-proc XkbSASetScreen(a: PXkbSwitchScreenAction, s: pointer) = 
-  ##define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))
-  a.screenXXX = toU8(cast[int](s))
-
-proc XkbActionSetCtrls(a: PXkbCtrlsAction, c: int8) = 
-  ##define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),((a)->ctrls2=(((c)>>16)&0xff)),
-  #                                 ((a)->ctrls1=(((c)>>8)&0xff)),((a)->ctrls0=((c)&0xff)))        
-  a.ctrls3 = toU8((ze(c) shr 24) and 0x000000FF)
-  a.ctrls2 = toU8((ze(c) shr 16) and 0x000000FF)
-  a.ctrls1 = toU8((ze(c) shr 8) and 0x000000FF)
-  a.ctrls0 = toU8(ze(c) and 0x000000FF)
-
-proc XkbActionCtrls(a: PXkbCtrlsAction): int16 = 
-  ##define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|(((unsigned int)(a)->ctrls2)<<16)|
-  #                            (((unsigned int)(a)->ctrls1)<<8)|((unsigned int)((a)->ctrls0)))      
-  Result = toU16((ze(a.ctrls3) shl 24) or (ze(a.ctrls2) shl 16) or 
-     (ze(a.ctrls1) shl 8) or ze(a.ctrls0))
-
-proc XkbSARedirectVMods(a: PXkbRedirectKeyAction): int16 = 
-  ##define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|((unsigned int)(a)->vmods0))
-  Result = toU16((ze(a.vmods1) shl 8) or ze(a.vmods0))
-
-proc XkbSARedirectSetVMods(a: PXkbRedirectKeyAction, m: int8) = 
-  ##define XkbSARedirectSetVMods(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))
-  a.vmods_mask1 = toU8((ze(m) shr 8) and 0x000000FF)
-  a.vmods_mask0 = toU8(ze(m) or 0x000000FF)
-
-proc XkbSARedirectVModsMask(a: PXkbRedirectKeyAction): int16 = 
-  ##define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|
-  #                                     ((unsigned int)(a)->vmods_mask0))
-  Result = toU16((ze(a.vmods_mask1) shl 8) or ze(a.vmods_mask0))
-
-proc XkbSARedirectSetVModsMask(a: PXkbRedirectKeyAction, m: int8) = 
-  ##define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),((a)->vmods_mask0=((m)&0xff)))
-  a.vmods_mask1 = toU8(ze(m) shr 8 and 0x000000FF)
-  a.vmods_mask0 = toU8(ze(m) and 0x000000FF)
-
-proc XkbAX_AnyFeedback(c: PXkbControlsPtr): int16 = 
-  ##define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
-  Result = toU16(ze(c.enabled_ctrls) and XkbAccessXFeedbackMask)
-
-proc XkbAX_NeedOption(c: PXkbControlsPtr, w: int16): int16 = 
-  ##define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))
-  Result = toU16(ze(c.ax_options) and ze(w))
-
-proc XkbAX_NeedFeedback(c: PXkbControlsPtr, w: int16): bool = 
-  ##define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
-  Result = (XkbAX_AnyFeedback(c) > 0'i16) and (XkbAX_NeedOption(c, w) > 0'i16)
-
-proc XkbSMKeyActionsPtr(m: PXkbServerMapPtr, k: int16): PXkbAction = 
-  ##define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
-  Result = addr(m.acts[ze(m.key_acts[ze(k)])])
-
-proc XkbCMKeyGroupInfo(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)
-  Result = m.key_sym_map[ze(k)].group_info
-
-proc XkbCMKeyNumGroups(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))
-  Result = toU8(XkbNumGroups(m.key_sym_map[ze(k)].group_info))
-
-proc XkbCMKeyGroupWidth(m: PXkbClientMapPtr, k: int16, g: int8): int8 = 
-  ##define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
-  Result = XkbCMKeyType(m, k, g).num_levels
-
-proc XkbCMKeyGroupsWidth(m: PXkbClientMapPtr, K: int16): int8 = 
-  ##define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
-  Result = m.key_sym_map[ze(k)].width
-
-proc XkbCMKeyTypeIndex(m: PXkbClientMapPtr, k: int16, g: int8): int8 = 
-  ##define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
-  Result = m.key_sym_map[ze(k)].kt_index[ze(g) and 0x00000003]
-
-proc XkbCMKeyType(m: PXkbClientMapPtr, k: int16, g: int8): PXkbKeyTypePtr = 
-  ##define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
-  Result = addr(m.types[ze(XkbCMKeyTypeIndex(m, k, g))])
-
-proc XkbCMKeyNumSyms(m: PXkbClientMapPtr, k: int16): int16 = 
-  ##define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
-  Result = toU16(ze(XkbCMKeyGroupsWidth(m, k)) or ze(XkbCMKeyNumGroups(m, k)))
-
-proc XkbCMKeySymsOffset(m: PXkbClientMapPtr, k: int16): int8 = 
-  ##define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
-  Result = m.key_sym_map[ze(k)].offset
-
-proc XkbCMKeySymsPtr*(m: PXkbClientMapPtr, k: int16): PKeySym = 
-  ##define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])
-  Result = addr(m.syms[ze(XkbCMKeySymsOffset(m, k))])
-
-proc XkbIM_IsAuto(i: PXkbIndicatorMapPtr): bool = 
-  ##define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&(((i)->which_groups&&(i)->groups)||
-  #                           ((i)->which_mods&&(i)->mods.mask)||  ((i)->ctrls)))
-  Result = ((ze(i.flags) and XkbIM_NoAutomatic) == 0) and
-      (((i.which_groups > 0'i8) and (i.groups > 0'i8)) or
-      ((i.which_mods > 0'i8) and (i.mods.mask > 0'i8)) or (i.ctrls > 0'i8))
-
-proc XkbIM_InUse(i: PXkbIndicatorMapPtr): bool = 
-  ##define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||((i)->which_mods)||((i)->ctrls)) 
-  Result = (i.flags > 0'i8) or (i.which_groups > 0'i8) or (i.which_mods > 0'i8) or
-      (i.ctrls > 0'i8)
-
-proc XkbKeyKeyTypeIndex(d: PXkbDescPtr, k: int16, g: int8): int8 = 
-  ##define XkbKeyKeyTypeIndex(d,k,g)      (XkbCMKeyTypeIndex((d)->map,k,g))
-  Result = XkbCMKeyTypeIndex(d.map, k, g)
-
-proc XkbKeyKeyType(d: PXkbDescPtr, k: int16, g: int8): PXkbKeyTypePtr = 
-  ##define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))
-  Result = XkbCMKeyType(d.map, k, g)
-
-proc XkbKeyGroupWidth(d: PXkbDescPtr, k: int16, g: int8): int8 = 
-  ##define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))
-  Result = XkbCMKeyGroupWidth(d.map, k, g)
-
-proc XkbKeyGroupsWidth(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))
-  Result = XkbCMKeyGroupsWidth(d.map, k)
-
-proc XkbKeyGroupInfo(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))
-  Result = XkbCMKeyGroupInfo(d.map, k)
-
-proc XkbKeyNumGroups(d: PXkbDescPtr, k: int16): int8 = 
-  ##define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))
-  Result = XkbCMKeyNumGroups(d.map, k)
-
-proc XkbKeyNumSyms(d: PXkbDescPtr, k: int16): int16 = 
-  ##define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))
-  Result = XkbCMKeyNumSyms(d.map, k)
-
-proc XkbKeySymsPtr*(d: PXkbDescPtr, k: int16): PKeySym = 
-  ##define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))
-  Result = XkbCMKeySymsPtr(d.map, k)
-
-proc XkbKeySym(d: PXkbDescPtr, k: int16, n: int16): TKeySym = 
-  ##define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])
-  Result = cast[ptr array[0..0xffff, TKeySym]](XkbKeySymsPtr(d, k))[ze(n)] # XXX: this seems strange!
-
-proc XkbKeySymEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): TKeySym = 
-  ##define XkbKeySymEntry(d,k,sl,g) (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
-  Result = XkbKeySym(d, k, toU16(ze(XkbKeyGroupsWidth(d, k)) * ze(g) + ze(sl)))
-
-proc XkbKeyAction(d: PXkbDescPtr, k: int16, n: int16): PXkbAction = 
-  ##define XkbKeyAction(d,k,n) (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
-  #if (XkbKeyHasActions(d, k)): 
-  #  Result = XkbKeyActionsPtr(d, k)[ze(n)] #Buggy !!!
-  assert(false)
-  result = nil
-  
-proc XkbKeyActionEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): int8 = 
-  ##define XkbKeyActionEntry(d,k,sl,g) (XkbKeyHasActions(d,k) ?
-  #                                      XkbKeyAction(d, k, ((XkbKeyGroupsWidth(d, k) * (g))+(sl))):NULL)
-  if XkbKeyHasActions(d, k): 
-    Result = XkbKeyGroupsWidth(d, k) *% g +% toU8(sl)
-  else: 
-    Result = 0'i8
-  
-proc XkbKeyHasActions(d: PXkbDescPtr, k: int16): bool = 
-  ##define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)
-  Result = d.server.key_acts[ze(k)] != 0'i16
-
-proc XkbKeyNumActions(d: PXkbDescPtr, k: int16): int16 = 
-  ##define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
-  if (XkbKeyHasActions(d, k)): Result = XkbKeyNumSyms(d, k)
-  else: Result = 1'i16
-  
-proc XkbKeyActionsPtr(d: PXkbDescPtr, k: int16): PXkbAction = 
-  ##define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))
-  Result = XkbSMKeyActionsPtr(d.server, k)
-
-proc XkbKeycodeInRange(d: PXkbDescPtr, k: int16): bool = 
-  ##define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&& ((k)<=(d)->max_key_code))
-  Result = (char(toU8(k)) >= d.min_key_code) and (char(toU8(k)) <= d.max_key_code)
-
-proc XkbNumKeys(d: PXkbDescPtr): int8 = 
-  ##define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)
-  Result = toU8(ord(d.max_key_code) - ord(d.min_key_code) + 1)
-
-proc XkbXI_DevHasBtnActs(d: PXkbDeviceInfoPtr): bool = 
-  ##define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
-  Result = (d.num_btns > 0'i16) and (not (d.btn_acts == nil))
-
-proc XkbXI_LegalDevBtn(d: PXkbDeviceInfoPtr, b: int16): bool = 
-  ##define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
-  Result = XkbXI_DevHasBtnActs(d) and (b <% d.num_btns)
-
-proc XkbXI_DevHasLeds(d: PXkbDeviceInfoPtr): bool = 
-  ##define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))
-  Result = (d.num_leds > 0'i16) and (not (d.leds == nil))
-
-proc XkbBoundsWidth(b: PXkbBoundsPtr): int16 = 
-  ##define XkbBoundsWidth(b) (((b)->x2)-((b)->x1))
-  Result = (b.x2) - b.x1
-
-proc XkbBoundsHeight(b: PXkbBoundsPtr): int16 = 
-  ##define XkbBoundsHeight(b) (((b)->y2)-((b)->y1))
-  Result = (b.y2) - b.y1
-
-proc XkbOutlineIndex(s: PXkbShapePtr, o: PXkbOutlinePtr): int32 = 
-  ##define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0]))
-  Result = int32((cast[TAddress](o) - cast[TAddress](addr(s.outlines[0]))) div sizeof(PXkbOutlinePtr))
-
-proc XkbShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr = 
-  ##define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr((g.colors[ze(d.color_ndx)]))
-
-proc XkbShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbShapePtr = 
-  ##define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = addr(g.shapes[ze(d.shape_ndx)])
-
-proc XkbSetShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                            c: PXkbColorPtr) = 
-  ##define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, 
-                            s: PXkbShapePtr) = 
-  ##define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr = 
-  ##define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr(g.colors[ze(d.color_ndx)])
-
-proc XkbSetTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, 
-                           c: PXkbColorPtr) = 
-  ##define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr = 
-  ##define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(d.shape_ndx)]))
-
-proc XkbIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = 
-  ##define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx])
-  Result = addr(g.colors[ze(d.on_color_ndx)])
-
-proc XkbIndicatorDoodadOffColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = 
-  ##define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx])
-  Result = addr(g.colors[ze(d.off_color_ndx)])
-
-proc XkbSetIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                  c: PXkbColorPtr) = 
-  ##define XkbSetIndicatorDoodadOnColor(g,d,c) ((d)->on_color_ndx= (c)-&(g)->colors[0])
-  d.on_color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetIndicatorDoodadOffColor(g: PXkbGeometryPtr, 
-                                   d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr) = 
-  ##define        XkbSetIndicatorDoodadOffColor(g,d,c) ((d)->off_color_ndx= (c)-&(g)->colors[0])
-  d.off_color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TxkbColorRec))
-
-proc XkbSetIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, 
-                                s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetIndicatorDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - (cast[TAddress](addr(g.shapes[0])))) div sizeof(TXkbShapeRec))
-
-proc XkbLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr = 
-  ##define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx])
-  Result = addr(g.colors[ze(d.color_ndx)])
-
-proc XkbLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbShapeDoodadPtr = 
-  ##define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(d.shape_ndx)]))
-
-proc XkbSetLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                           c: PXkbColorPtr) = 
-  ##define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0])
-  d.color_ndx = toU16((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TXkbColorRec))
-
-proc XkbSetLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, 
-                           s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0])
-  d.shape_ndx = toU16((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr = 
-  ##define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx])
-  Result = cast[PXkbShapeDoodadPtr](addr(g.shapes[ze(k.shape_ndx)]))
-
-proc XkbKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbColorPtr = 
-  ##define XkbKeyColor(g,k) (&(g)->colors[(k)->color_ndx])
-  Result = addr(g.colors[ze(k.color_ndx)])
-
-proc XkbSetKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr) = 
-  ##define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0])
-  k.shape_ndx = toU8((cast[TAddress](s) - cast[TAddress](addr(g.shapes[0]))) div sizeof(TXkbShapeRec))
-
-proc XkbSetKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr) = 
-  ##define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0])
-  k.color_ndx = toU8((cast[TAddress](c) - cast[TAddress](addr(g.colors[0]))) div sizeof(TxkbColorRec))
-
-proc XkbGeomColorIndex(g: PXkbGeometryPtr, c: PXkbColorPtr): int32 = 
-  ##define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0]))
-  Result = toU16((cast[TAddress](c) - (cast[TAddress](addr(g.colors[0])))) div sizeof(TxkbColorRec))
diff --git a/lib/wrappers/x11/xkblib.nim b/lib/wrappers/x11/xkblib.nim
deleted file mode 100644
index 1b450f289..000000000
--- a/lib/wrappers/x11/xkblib.nim
+++ /dev/null
@@ -1,661 +0,0 @@
-# $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $
-#************************************************************
-#Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-#
-#Permission to use, copy, modify, and distribute this
-#software and its documentation for any purpose and without
-#fee is hereby granted, provided that the above copyright
-#notice appear in all copies and that both that copyright
-#notice and this permission notice appear in supporting
-#documentation, and that the name of Silicon Graphics not be
-#used in advertising or publicity pertaining to distribution
-#of the software without specific prior written permission.
-#Silicon Graphics makes no representation about the suitability
-#of this software for any purpose. It is provided "as is"
-#without any express or implied warranty.
-#
-#SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-#SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-#AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-#GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
-#DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING `from` LOSS OF USE,
-#DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-#OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-#THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-#********************************************************/
-# $XFree86: xc/lib/X11/XKBlib.h,v 3.3 2001/08/01 00:44:38 tsi Exp $
-#
-# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
-#
-#Thanks:
-#         I want to thanks to oliebol for putting up with all of the problems that was found
-#         while translating this code. ;)
-#
-#         I want to thanks #fpc channel in freenode irc, for helping me, and to put up with my
-#         wierd questions ;)
-#
-#         Thanks for mmc in #xlib on freenode irc And so for the channel itself for the helping me to
-#         understanding some of the problems I had converting this headers and pointing me to resources
-#         that helped translating this headers.
-#
-# Ido
-#
-#History:
-#        2004/10/15        - Fixed a bug of accessing second based records by removing "paced record" and
-#                            chnaged it to "reocrd" only.
-#        2004/10/10        - Added to TXkbGetAtomNameFunc and TXkbInternAtomFunc the cdecl call.
-#        2004/10/06 - 09   - Convertion `from` the c header of XKBlib.h
-#
-#
-
-import 
-  X, Xlib, XKB
-
-
-include "x11pragma.nim"
-
-
-type 
-  PXkbAnyEvent* = ptr TXkbAnyEvent
-  TXkbAnyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds;
-    xkb_type*: int16          # XKB event minor code
-    device*: int16            # device ID
-  
-
-type 
-  PXkbNewKeyboardNotifyEvent* = ptr TXkbNewKeyboardNotifyEvent
-  TXkbNewKeyboardNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbNewKeyboardNotify
-    device*: int16            # device ID
-    old_device*: int16        # device ID of previous keyboard
-    min_key_code*: int16      # minimum key code
-    max_key_code*: int16      # maximum key code
-    old_min_key_code*: int16  # min key code of previous kbd
-    old_max_key_code*: int16  # max key code of previous kbd
-    changed*: int16           # changed aspects of the keyboard
-    req_major*: int8          # major and minor opcode of req
-    req_minor*: int8          # that caused change, if applicable
-  
-
-type 
-  PXkbMapNotifyEvent* = ptr TXkbMapNotifyEvent
-  TXkbMapNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbMapNotify
-    device*: int16            # device ID
-    changed*: int16           # fields which have been changed
-    flags*: int16             # reserved
-    first_type*: int16        # first changed key type
-    num_types*: int16         # number of changed key types
-    min_key_code*: TKeyCode
-    max_key_code*: TKeyCode
-    first_key_sym*: TKeyCode
-    first_key_act*: TKeyCode
-    first_key_behavior*: TKeyCode
-    first_key_explicit*: TKeyCode
-    first_modmap_key*: TKeyCode
-    first_vmodmap_key*: TKeyCode
-    num_key_syms*: int16
-    num_key_acts*: int16
-    num_key_behaviors*: int16
-    num_key_explicit*: int16
-    num_modmap_keys*: int16
-    num_vmodmap_keys*: int16
-    vmods*: int16             # mask of changed virtual mods
-  
-
-type 
-  PXkbStateNotifyEvent* = ptr TXkbStateNotifyEvent
-  TXkbStateNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbStateNotify
-    device*: int16            # device ID
-    changed*: int16           # mask of changed state components
-    group*: int16             # keyboard group
-    base_group*: int16        # base keyboard group
-    latched_group*: int16     # latched keyboard group
-    locked_group*: int16      # locked keyboard group
-    mods*: int16              # modifier state
-    base_mods*: int16         # base modifier state
-    latched_mods*: int16      # latched modifiers
-    locked_mods*: int16       # locked modifiers
-    compat_state*: int16      # compatibility state
-    grab_mods*: int8          # mods used for grabs
-    compat_grab_mods*: int8   # grab mods for non-XKB clients
-    lookup_mods*: int8        # mods sent to clients
-    compat_lookup_mods*: int8 # mods sent to non-XKB clients
-    ptr_buttons*: int16       # pointer button state
-    keycode*: TKeyCode        # keycode that caused the change
-    event_type*: int8         # KeyPress or KeyRelease
-    req_major*: int8          # Major opcode of request
-    req_minor*: int8          # Minor opcode of request
-  
-
-type 
-  PXkbControlsNotifyEvent* = ptr TXkbControlsNotifyEvent
-  TXkbControlsNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbControlsNotify
-    device*: int16            # device ID
-    changed_ctrls*: int16     # controls with changed sub-values
-    enabled_ctrls*: int16     # controls currently enabled
-    enabled_ctrl_changes*: int16 # controls just {en,dis}abled
-    num_groups*: int16        # total groups on keyboard
-    keycode*: TKeyCode        # key that caused change or 0
-    event_type*: int8         # type of event that caused change
-    req_major*: int8          # if keycode==0, major and minor
-    req_minor*: int8          # opcode of req that caused change
-  
-
-type 
-  PXkbIndicatorNotifyEvent* = ptr TXkbIndicatorNotifyEvent
-  TXkbIndicatorNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbIndicatorNotify
-    device*: int16            # device
-    changed*: int16           # indicators with new state or map
-    state*: int16             # current state of all indicators
-  
-
-type 
-  PXkbNamesNotifyEvent* = ptr TXkbNamesNotifyEvent
-  TXkbNamesNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbNamesNotify
-    device*: int16            # device ID
-    changed*: int32           # names that have changed
-    first_type*: int16        # first key type with new name
-    num_types*: int16         # number of key types with new names
-    first_lvl*: int16         # first key type new new level names
-    num_lvls*: int16          # # of key types w/new level names
-    num_aliases*: int16       # total number of key aliases
-    num_radio_groups*: int16  # total number of radio groups
-    changed_vmods*: int16     # virtual modifiers with new names
-    changed_groups*: int16    # groups with new names
-    changed_indicators*: int16 # indicators with new names
-    first_key*: int16         # first key with new name
-    num_keys*: int16          # number of keys with new names
-  
-
-type 
-  PXkbCompatMapNotifyEvent* = ptr TXkbCompatMapNotifyEvent
-  TXkbCompatMapNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbCompatMapNotify
-    device*: int16            # device ID
-    changed_groups*: int16    # groups with new compat maps
-    first_si*: int16          # first new symbol interp
-    num_si*: int16            # number of new symbol interps
-    num_total_si*: int16      # total # of symbol interps
-  
-
-type 
-  PXkbBellNotifyEvent* = ptr TXkbBellNotifyEvent
-  TXkbBellNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbBellNotify
-    device*: int16            # device ID
-    percent*: int16           # requested volume as a % of maximum
-    pitch*: int16             # requested pitch in Hz
-    duration*: int16          # requested duration in useconds
-    bell_class*: int16        # (input extension) feedback class
-    bell_id*: int16           # (input extension) ID of feedback
-    name*: TAtom              # "name" of requested bell
-    window*: TWindow          # window associated with event
-    event_only*: bool         # "event only" requested
-  
-
-type 
-  PXkbActionMessageEvent* = ptr TXkbActionMessageEvent
-  TXkbActionMessageEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbActionMessage
-    device*: int16            # device ID
-    keycode*: TKeyCode        # key that generated the event
-    press*: bool              # true if act caused by key press
-    key_event_follows*: bool  # true if key event also generated
-    group*: int16             # effective group
-    mods*: int16              # effective mods
-    message*: array[0..XkbActionMessageLength, Char] # message -- leave space for NUL
-  
-
-type 
-  PXkbAccessXNotifyEvent* = ptr TXkbAccessXNotifyEvent
-  TXkbAccessXNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbAccessXNotify
-    device*: int16            # device ID
-    detail*: int16            # XkbAXN_*
-    keycode*: int16           # key of event
-    sk_delay*: int16          # current slow keys delay
-    debounce_delay*: int16    # current debounce delay
-  
-
-type 
-  PXkbExtensionDeviceNotifyEvent* = ptr TXkbExtensionDeviceNotifyEvent
-  TXkbExtensionDeviceNotifyEvent*{.final.} = object 
-    theType*: int16           # XkbAnyEvent
-    serial*: int32            # of last req processed by server
-    send_event*: bool         # is this `from` a SendEvent request?
-    display*: PDisplay        # Display the event was read `from`
-    time*: TTime              # milliseconds
-    xkb_type*: int16          # XkbExtensionDeviceNotify
-    device*: int16            # device ID
-    reason*: int16            # reason for the event
-    supported*: int16         # mask of supported features
-    unsupported*: int16       # mask of unsupported features
-                              # that some app tried to use
-    first_btn*: int16         # first button that changed
-    num_btns*: int16          # range of buttons changed
-    leds_defined*: int16      # indicators with names or maps
-    led_state*: int16         # current state of the indicators
-    led_class*: int16         # feedback class for led changes
-    led_id*: int16            # feedback id for led changes
-  
-
-type 
-  PXkbEvent* = ptr TXkbEvent
-  TXkbEvent*{.final.} = object 
-    theType*: int16
-    any*: TXkbAnyEvent
-    new_kbd*: TXkbNewKeyboardNotifyEvent
-    map*: TXkbMapNotifyEvent
-    state*: TXkbStateNotifyEvent
-    ctrls*: TXkbControlsNotifyEvent
-    indicators*: TXkbIndicatorNotifyEvent
-    names*: TXkbNamesNotifyEvent
-    compat*: TXkbCompatMapNotifyEvent
-    bell*: TXkbBellNotifyEvent
-    message*: TXkbActionMessageEvent
-    accessx*: TXkbAccessXNotifyEvent
-    device*: TXkbExtensionDeviceNotifyEvent
-    core*: TXEvent
-
-
-type
-  PXkbKbdDpyStatePtr* = ptr TXkbKbdDpyStateRec
-  TXkbKbdDpyStateRec*{.final.} = object  # XkbOpenDisplay error codes 
-
-const 
-  XkbOD_Success* = 0
-  XkbOD_BadLibraryVersion* = 1
-  XkbOD_ConnectionRefused* = 2
-  XkbOD_NonXkbServer* = 3
-  XkbOD_BadServerVersion* = 4 # Values for XlibFlags 
-
-const 
-  XkbLC_ForceLatin1Lookup* = 1 shl 0
-  XkbLC_ConsumeLookupMods* = 1 shl 1
-  XkbLC_AlwaysConsumeShiftAndLock* = 1 shl 2
-  XkbLC_IgnoreNewKeyboards* = 1 shl 3
-  XkbLC_ControlFallback* = 1 shl 4
-  XkbLC_ConsumeKeysOnComposeFail* = 1 shl 29
-  XkbLC_ComposeLED* = 1 shl 30
-  XkbLC_BeepOnComposeFail* = 1 shl 31
-  XkbLC_AllComposeControls* = 0xC0000000
-  XkbLC_AllControls* = 0xC000001F
-
-proc XkbIgnoreExtension*(ignore: bool): bool{.libx11c, 
-    importc: "XkbIgnoreExtension".}
-proc XkbOpenDisplay*(name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn, 
-                                    reason: ptr int16): PDisplay{.libx11c, importc: "XkbOpenDisplay".}
-proc XkbQueryExtension*(dpy: PDisplay, opcodeReturn, eventBaseReturn, 
-                                       errorBaseReturn, majorRtrn, minorRtrn: ptr int16): bool{.
-    libx11c, importc: "XkbQueryExtension".}
-proc XkbUseExtension*(dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16): bool{.
-    libx11c, importc: "XkbUseExtension".}
-proc XkbLibraryVersion*(libMajorRtrn, libMinorRtrn: ptr int16): bool{.libx11c, importc: "XkbLibraryVersion".}
-proc XkbSetXlibControls*(dpy: PDisplay, affect, values: int16): int16{.libx11c, importc: "XkbSetXlibControls".}
-proc XkbGetXlibControls*(dpy: PDisplay): int16{.libx11c, 
-    importc: "XkbGetXlibControls".}
-type 
-  TXkbInternAtomFunc* = proc (dpy: PDisplay, name: cstring, only_if_exists: bool): TAtom{.
-      cdecl.}
-
-type 
-  TXkbGetAtomNameFunc* = proc (dpy: PDisplay, atom: TAtom): cstring{.cdecl.}
-
-proc XkbSetAtomFuncs*(getAtom: TXkbInternAtomFunc, getName: TXkbGetAtomNameFunc){.
-    libx11c, importc: "XkbSetAtomFuncs".}
-proc XkbKeycodeToKeysym*(dpy: PDisplay, kc: TKeyCode, group, level: int16): TKeySym{.
-    libx11c, importc: "XkbKeycodeToKeysym".}
-proc XkbKeysymToModifiers*(dpy: PDisplay, ks: TKeySym): int16{.libx11c, importc: "XkbKeysymToModifiers".}
-proc XkbLookupKeySym*(dpy: PDisplay, keycode: TKeyCode, 
-                      modifiers, modifiers_return: int16, keysym_return: PKeySym): bool{.
-    libx11c, importc: "XkbLookupKeySym".}
-proc XkbLookupKeyBinding*(dpy: PDisplay, sym_rtrn: TKeySym, mods: int16, 
-                          buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
-    libx11c, importc: "XkbLookupKeyBinding".}
-proc XkbTranslateKeyCode*(xkb: PXkbDescPtr, keycode: TKeyCode, 
-                          modifiers, modifiers_return: int16, 
-                          keysym_return: PKeySym): bool{.libx11c, 
-    importc: "XkbTranslateKeyCode".}
-proc XkbTranslateKeySym*(dpy: PDisplay, sym_return: TKeySym, modifiers: int16, 
-                         buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
-    libx11c, importc: "XkbTranslateKeySym".}
-proc XkbSetAutoRepeatRate*(dpy: PDisplay, deviceSpec, delay, interval: int16): bool{.
-    libx11c, importc: "XkbSetAutoRepeatRate".}
-proc XkbGetAutoRepeatRate*(dpy: PDisplay, deviceSpec: int16, 
-                           delayRtrn, intervalRtrn: PWord): bool{.libx11c, importc: "XkbGetAutoRepeatRate".}
-proc XkbChangeEnabledControls*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbChangeEnabledControls".}
-proc XkbDeviceBell*(dpy: PDisplay, win: TWindow, 
-                    deviceSpec, bellClass, bellID, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbDeviceBell".}
-proc XkbForceDeviceBell*(dpy: PDisplay, 
-                         deviceSpec, bellClass, bellID, percent: int16): bool{.
-    libx11c, importc: "XkbForceDeviceBell".}
-proc XkbDeviceBellEvent*(dpy: PDisplay, win: TWindow, 
-                         deviceSpec, bellClass, bellID, percent: int16, 
-                         name: TAtom): bool{.libx11c, 
-    importc: "XkbDeviceBellEvent".}
-proc XkbBell*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbBell".}
-proc XkbForceBell*(dpy: PDisplay, percent: int16): bool{.libx11c, 
-    importc: "XkbForceBell".}
-proc XkbBellEvent*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
-    libx11c, importc: "XkbBellEvent".}
-proc XkbSelectEvents*(dpy: PDisplay, deviceID, affect, values: int16): bool{.
-    libx11c, importc: "XkbSelectEvents".}
-proc XkbSelectEventDetails*(dpy: PDisplay, deviceID, eventType: int16, 
-                            affect, details: int32): bool{.libx11c, importc: "XkbSelectEventDetails".}
-proc XkbNoteMapChanges*(old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent, 
-                        wanted: int16){.libx11c, 
-                                        importc: "XkbNoteMapChanges".}
-proc XkbNoteNameChanges*(old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent, 
-                         wanted: int16){.libx11c, 
-    importc: "XkbNoteNameChanges".}
-proc XkbGetIndicatorState*(dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord): TStatus{.
-    libx11c, importc: "XkbGetIndicatorState".}
-proc XkbGetDeviceIndicatorState*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 pStateRtrn: PWord): TStatus{.libx11c, importc: "XkbGetDeviceIndicatorState".}
-proc XkbGetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetIndicatorMap".}
-proc XkbSetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
-    libx11c, importc: "XkbSetIndicatorMap".}
-proc XkbNoteIndicatorMapChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
-proc XkbNoteIndicatorStateChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
-proc XkbGetIndicatorMapChanges*(d: PDisplay, x: PXkbDescPtr, 
-                                c: PXkbIndicatorChangesPtr): TStatus
-proc XkbChangeIndicatorMaps*(d: PDisplay, x: PXkbDescPtr, 
-                             c: PXkbIndicatorChangesPtr): bool
-proc XkbGetNamedIndicator*(dpy: PDisplay, name: TAtom, pNdxRtrn: ptr int16, 
-                           pStateRtrn: ptr bool, pMapRtrn: PXkbIndicatorMapPtr, 
-                           pRealRtrn: ptr bool): bool{.libx11c, 
-    importc: "XkbGetNamedIndicator".}
-proc XkbGetNamedDeviceIndicator*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 name: TAtom, pNdxRtrn: ptr int16, 
-                                 pStateRtrn: ptr bool, 
-                                 pMapRtrn: PXkbIndicatorMapPtr, 
-                                 pRealRtrn: ptr bool): bool{.libx11c, importc: "XkbGetNamedDeviceIndicator".}
-proc XkbSetNamedIndicator*(dpy: PDisplay, name: TAtom, 
-                           changeState, state, createNewMap: bool, 
-                           pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedIndicator".}
-proc XkbSetNamedDeviceIndicator*(dpy: PDisplay, 
-                                 deviceSpec, ledClass, ledID: int16, 
-                                 name: TAtom, 
-                                 changeState, state, createNewMap: bool, 
-                                 pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedDeviceIndicator".}
-proc XkbLockModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbLockModifiers".}
-proc XkbLatchModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
-    libx11c, importc: "XkbLatchModifiers".}
-proc XkbLockGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLockGroup".}
-proc XkbLatchGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLatchGroup".}
-proc XkbSetServerInternalMods*(dpy: PDisplay, deviceSpec, affectReal, 
-    realValues, affectVirtual, virtualValues: int16): bool{.libx11c, importc: "XkbSetServerInternalMods".}
-proc XkbSetIgnoreLockMods*(dpy: PDisplay, deviceSpec, affectReal, realValues, 
-    affectVirtual, virtualValues: int16): bool{.libx11c, 
-    importc: "XkbSetIgnoreLockMods".}
-proc XkbVirtualModsToReal*(dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord): bool{.
-    libx11c, importc: "XkbVirtualModsToReal".}
-proc XkbComputeEffectiveMap*(xkb: PXkbDescPtr, theType: PXkbKeyTypePtr, 
-                             map_rtrn: PByte): bool{.libx11c, 
-    importc: "XkbComputeEffectiveMap".}
-proc XkbInitCanonicalKeyTypes*(xkb: PXkbDescPtr, which: int16, keypadVMod: int16): TStatus{.
-    libx11c, importc: "XkbInitCanonicalKeyTypes".}
-proc XkbAllocKeyboard*(): PXkbDescPtr{.libx11c, 
-                                       importc: "XkbAllocKeyboard".}
-proc XkbFreeKeyboard*(xkb: PXkbDescPtr, which: int16, freeDesc: bool){.libx11c, importc: "XkbFreeKeyboard".}
-proc XkbAllocClientMap*(xkb: PXkbDescPtr, which, nTypes: int16): TStatus{.libx11c, importc: "XkbAllocClientMap".}
-proc XkbAllocServerMap*(xkb: PXkbDescPtr, which, nActions: int16): TStatus{.
-    libx11c, importc: "XkbAllocServerMap".}
-proc XkbFreeClientMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeClientMap".}
-proc XkbFreeServerMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeServerMap".}
-proc XkbAddKeyType*(xkb: PXkbDescPtr, name: TAtom, map_count: int16, 
-                    want_preserve: bool, num_lvls: int16): PXkbKeyTypePtr{.
-    libx11c, importc: "XkbAddKeyType".}
-proc XkbAllocIndicatorMaps*(xkb: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbAllocIndicatorMaps".}
-proc XkbFreeIndicatorMaps*(xkb: PXkbDescPtr){.libx11c, 
-    importc: "XkbFreeIndicatorMaps".}
-proc XkbGetMap*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.libx11c, importc: "XkbGetMap".}
-proc XkbGetUpdatedMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetUpdatedMap".}
-proc XkbGetMapChanges*(dpy: PDisplay, xkb: PXkbDescPtr, 
-                       changes: PXkbMapChangesPtr): TStatus{.libx11c, importc: "XkbGetMapChanges".}
-proc XkbRefreshKeyboardMapping*(event: PXkbMapNotifyEvent): TStatus{.libx11c, importc: "XkbRefreshKeyboardMapping".}
-proc XkbGetKeyTypes*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeyTypes".}
-proc XkbGetKeySyms*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeySyms".}
-proc XkbGetKeyActions*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetKeyActions".}
-proc XkbGetKeyBehaviors*(dpy: PDisplay, firstKey, nKeys: int16, 
-                         desc: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbGetKeyBehaviors".}
-proc XkbGetVirtualMods*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetVirtualMods".}
-proc XkbGetKeyExplicitComponents*(dpy: PDisplay, firstKey, nKeys: int16, 
-                                  desc: PXkbDescPtr): TStatus{.libx11c, importc: "XkbGetKeyExplicitComponents".}
-proc XkbGetKeyModifierMap*(dpy: PDisplay, firstKey, nKeys: int16, 
-                           desc: PXkbDescPtr): TStatus{.libx11c, 
-    importc: "XkbGetKeyModifierMap".}
-proc XkbAllocControls*(xkb: PXkbDescPtr, which: int16): TStatus{.libx11c, importc: "XkbAllocControls".}
-proc XkbFreeControls*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeControls".}
-proc XkbGetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetControls".}
-proc XkbSetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
-    libx11c, importc: "XkbSetControls".}
-proc XkbNoteControlsChanges*(old: PXkbControlsChangesPtr, 
-                             new: PXkbControlsNotifyEvent, wanted: int16){.
-    libx11c, importc: "XkbNoteControlsChanges".}
-proc XkbGetControlsChanges*(d: PDisplay, x: PXkbDescPtr, 
-                            c: PXkbControlsChangesPtr): TStatus
-proc XkbChangeControls*(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool
-proc XkbAllocCompatMap*(xkb: PXkbDescPtr, which, nInterpret: int16): TStatus{.
-    libx11c, importc: "XkbAllocCompatMap".}
-proc XkbFreeCompatMap*(xkib: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeCompatMap".}
-proc XkbGetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetCompatMap".}
-proc XkbSetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr, 
-                      updateActions: bool): bool{.libx11c, 
-    importc: "XkbSetCompatMap".}
-proc XkbAddSymInterpret*(xkb: PXkbDescPtr, si: PXkbSymInterpretPtr, 
-                         updateMap: bool, changes: PXkbChangesPtr): PXkbSymInterpretPtr{.
-    libx11c, importc: "XkbAddSymInterpret".}
-proc XkbAllocNames*(xkb: PXkbDescPtr, which: int16, 
-                    nTotalRG, nTotalAliases: int16): TStatus{.libx11c, importc: "XkbAllocNames".}
-proc XkbGetNames*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
-    libx11c, importc: "XkbGetNames".}
-proc XkbSetNames*(dpy: PDisplay, which, firstType, nTypes: int16, 
-                  desc: PXkbDescPtr): bool{.libx11c, 
-    importc: "XkbSetNames".}
-proc XkbChangeNames*(dpy: PDisplay, xkb: PXkbDescPtr, 
-                     changes: PXkbNameChangesPtr): bool{.libx11c, 
-    importc: "XkbChangeNames".}
-proc XkbFreeNames*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeNames".}
-proc XkbGetState*(dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr): TStatus{.
-    libx11c, importc: "XkbGetState".}
-proc XkbSetMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetMap".}
-proc XkbChangeMap*(dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr): bool{.
-    libx11c, importc: "XkbChangeMap".}
-proc XkbSetDetectableAutoRepeat*(dpy: PDisplay, detectable: bool, 
-                                 supported: ptr bool): bool{.libx11c, importc: "XkbSetDetectableAutoRepeat".}
-proc XkbGetDetectableAutoRepeat*(dpy: PDisplay, supported: ptr bool): bool{.
-    libx11c, importc: "XkbGetDetectableAutoRepeat".}
-proc XkbSetAutoResetControls*(dpy: PDisplay, changes: int16, 
-                              auto_ctrls, auto_values: PWord): bool{.libx11c, importc: "XkbSetAutoResetControls".}
-proc XkbGetAutoResetControls*(dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord): bool{.
-    libx11c, importc: "XkbGetAutoResetControls".}
-proc XkbSetPerClientControls*(dpy: PDisplay, change: int16, values: PWord): bool{.
-    libx11c, importc: "XkbSetPerClientControls".}
-proc XkbGetPerClientControls*(dpy: PDisplay, ctrls: PWord): bool{.libx11c, importc: "XkbGetPerClientControls".}
-proc XkbCopyKeyType*(`from`, into: PXkbKeyTypePtr): TStatus{.libx11c, importc: "XkbCopyKeyType".}
-proc XkbCopyKeyTypes*(`from`, into: PXkbKeyTypePtr, num_types: int16): TStatus{.
-    libx11c, importc: "XkbCopyKeyTypes".}
-proc XkbResizeKeyType*(xkb: PXkbDescPtr, type_ndx, map_count: int16, 
-                       want_preserve: bool, new_num_lvls: int16): TStatus{.
-    libx11c, importc: "XkbResizeKeyType".}
-proc XkbResizeKeySyms*(desc: PXkbDescPtr, forKey, symsNeeded: int16): PKeySym{.
-    libx11c, importc: "XkbResizeKeySyms".}
-proc XkbResizeKeyActions*(desc: PXkbDescPtr, forKey, actsNeeded: int16): PXkbAction{.
-    libx11c, importc: "XkbResizeKeyActions".}
-proc XkbChangeTypesOfKey*(xkb: PXkbDescPtr, key, num_groups: int16, 
-                          groups: int16, newTypes: ptr int16, 
-                          pChanges: PXkbMapChangesPtr): TStatus{.libx11c, importc: "XkbChangeTypesOfKey".}
-    
-proc XkbListComponents*(dpy: PDisplay, deviceSpec: int16, 
-                        ptrns: PXkbComponentNamesPtr, max_inout: ptr int16): PXkbComponentListPtr{.
-    libx11c, importc: "XkbListComponents".}
-proc XkbFreeComponentList*(list: PXkbComponentListPtr){.libx11c, 
-    importc: "XkbFreeComponentList".}
-proc XkbGetKeyboard*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.
-    libx11c, importc: "XkbGetKeyboard".}
-proc XkbGetKeyboardByName*(dpy: PDisplay, deviceSpec: int16, 
-                           names: PXkbComponentNamesPtr, want, need: int16, 
-                           load: bool): PXkbDescPtr{.libx11c, 
-    importc: "XkbGetKeyboardByName".}
-    
-proc XkbKeyTypesForCoreSymbols*(xkb: PXkbDescPtr, 
-                                map_width: int16,  # keyboard device
-                                core_syms: PKeySym,  # always mapWidth symbols
-                                protected: int16,  # explicit key types
-                                types_inout: ptr int16,  # always four type indices
-                                xkb_syms_rtrn: PKeySym): int16{.libx11c, importc: "XkbKeyTypesForCoreSymbols".}
-  # must have enough space
-proc XkbApplyCompatMapToKey*(xkb: PXkbDescPtr,  
-                             key: TKeyCode,  # key to be updated
-                             changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyCompatMapToKey".}
-  # resulting changes to map
-proc XkbUpdateMapFromCore*(xkb: PXkbDescPtr,  
-                           first_key: TKeyCode,  # first changed key
-                           num_keys,
-                           map_width: int16, 
-                           core_keysyms: PKeySym,  # symbols `from` core keymap
-                           changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbUpdateMapFromCore".}
-
-proc XkbAddDeviceLedInfo*(devi: PXkbDeviceInfoPtr, ledClass, ledId: int16): PXkbDeviceLedInfoPtr{.
-    libx11c, importc: "XkbAddDeviceLedInfo".}
-proc XkbResizeDeviceButtonActions*(devi: PXkbDeviceInfoPtr, newTotal: int16): TStatus{.
-    libx11c, importc: "XkbResizeDeviceButtonActions".}
-proc XkbAllocDeviceInfo*(deviceSpec, nButtons, szLeds: int16): PXkbDeviceInfoPtr{.
-    libx11c, importc: "XkbAllocDeviceInfo".}
-proc XkbFreeDeviceInfo*(devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool){.
-    libx11c, importc: "XkbFreeDeviceInfo".}
-proc XkbNoteDeviceChanges*(old: PXkbDeviceChangesPtr, 
-                           new: PXkbExtensionDeviceNotifyEvent, wanted: int16){.
-    libx11c, importc: "XkbNoteDeviceChanges".}
-proc XkbGetDeviceInfo*(dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16): PXkbDeviceInfoPtr{.
-    libx11c, importc: "XkbGetDeviceInfo".}
-proc XkbGetDeviceInfoChanges*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                              changes: PXkbDeviceChangesPtr): TStatus{.libx11c, importc: "XkbGetDeviceInfoChanges".}
-proc XkbGetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                                all: bool, first, nBtns: int16): TStatus{.libx11c, importc: "XkbGetDeviceButtonActions".}
-proc XkbGetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                          ledClass, ledId, which: int16): TStatus{.libx11c, importc: "XkbGetDeviceLedInfo".}
-proc XkbSetDeviceInfo*(dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr): bool{.
-    libx11c, importc: "XkbSetDeviceInfo".}
-proc XkbChangeDeviceInfo*(dpy: PDisplay, desc: PXkbDeviceInfoPtr, 
-                          changes: PXkbDeviceChangesPtr): bool{.libx11c, importc: "XkbChangeDeviceInfo".}
-proc XkbSetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                          ledClass, ledID, which: int16): bool{.libx11c, importc: "XkbSetDeviceLedInfo".}
-proc XkbSetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, 
-                                first, nBtns: int16): bool{.libx11c, importc: "XkbSetDeviceButtonActions".}
-
-proc XkbToControl*(c: int8): int8{.libx11c, 
-                                   importc: "XkbToControl".}
-
-proc XkbSetDebuggingFlags*(dpy: PDisplay, mask, flags: int16, msg: cstring, 
-                           ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16): bool{.
-    libx11c, importc: "XkbSetDebuggingFlags".}
-proc XkbApplyVirtualModChanges*(xkb: PXkbDescPtr, changed: int16, 
-                                changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyVirtualModChanges".}
-
-# implementation
-
-proc XkbNoteIndicatorMapChanges(o, n: PXkbIndicatorChangesPtr, w: int16) = 
-  ##define XkbNoteIndicatorMapChanges(o,n,w) ((o)->map_changes|=((n)->map_changes&(w)))
-  o.map_changes = o.map_changes or (n.map_changes and w)
-
-proc XkbNoteIndicatorStateChanges(o, n: PXkbIndicatorChangesPtr, w: int16) = 
-  ##define XkbNoteIndicatorStateChanges(o,n,w) ((o)->state_changes|=((n)->state_changes&(w)))
-  o.state_changes = o.state_changes or (n.state_changes and (w))
-
-proc XkbGetIndicatorMapChanges(d: PDisplay, x: PXkbDescPtr, 
-                               c: PXkbIndicatorChangesPtr): TStatus = 
-  ##define XkbGetIndicatorMapChanges(d,x,c) (XkbGetIndicatorMap((d),(c)->map_changes,x)
-  Result = XkbGetIndicatorMap(d, c.map_changes, x)
-
-proc XkbChangeIndicatorMaps(d: PDisplay, x: PXkbDescPtr, 
-                            c: PXkbIndicatorChangesPtr): bool = 
-  ##define XkbChangeIndicatorMaps(d,x,c) (XkbSetIndicatorMap((d),(c)->map_changes,x))
-  Result = XkbSetIndicatorMap(d, c.map_changes, x)
-
-proc XkbGetControlsChanges(d: PDisplay, x: PXkbDescPtr, 
-                           c: PXkbControlsChangesPtr): TStatus = 
-  ##define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
-  Result = XkbGetControls(d, c.changed_ctrls, x)
-
-proc XkbChangeControls(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool = 
-  ##define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
-  Result = XkbSetControls(d, c.changed_ctrls, x)
diff --git a/lib/wrappers/x11/xlib.nim b/lib/wrappers/x11/xlib.nim
deleted file mode 100644
index e6010feb7..000000000
--- a/lib/wrappers/x11/xlib.nim
+++ /dev/null
@@ -1,2020 +0,0 @@
-
-import 
-  x
-
-include "x11pragma.nim"
-
-type
-  cunsigned* = cint
-  Pcint* = ptr cint
-  PPcint* = ptr Pcint
-  PPcuchar* = ptr ptr cuchar
-  PWideChar* = ptr int16
-  PPChar* = ptr cstring
-  PPPChar* = ptr ptr cstring
-  Pculong* = ptr culong
-  Pcuchar* = cstring
-  Pcuint* = ptr cuint
-  Pcushort* = ptr uint16
-#  Automatically converted by H2Pas 0.99.15 from xlib.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xlib.h
-
-const 
-  XlibSpecificationRelease* = 6
-
-type 
-  PXPointer* = ptr TXPointer
-  TXPointer* = ptr char
-  PBool* = ptr TBool
-  TBool* = int           #cint?
-  PStatus* = ptr TStatus
-  TStatus* = cint
-
-const 
-  QueuedAlready* = 0
-  QueuedAfterReading* = 1
-  QueuedAfterFlush* = 2
-
-type 
-  PPXExtData* = ptr PXExtData
-  PXExtData* = ptr TXExtData
-  TXExtData*{.final.} = object 
-    number*: cint
-    next*: PXExtData
-    free_private*: proc (extension: PXExtData): cint{.cdecl.}
-    private_data*: TXPointer
-
-  PXExtCodes* = ptr TXExtCodes
-  TXExtCodes*{.final.} = object 
-    extension*: cint
-    major_opcode*: cint
-    first_event*: cint
-    first_error*: cint
-
-  PXPixmapFormatValues* = ptr TXPixmapFormatValues
-  TXPixmapFormatValues*{.final.} = object 
-    depth*: cint
-    bits_per_pixel*: cint
-    scanline_pad*: cint
-
-  PXGCValues* = ptr TXGCValues
-  TXGCValues*{.final.} = object 
-    function*: cint
-    plane_mask*: culong
-    foreground*: culong
-    background*: culong
-    line_width*: cint
-    line_style*: cint
-    cap_style*: cint
-    join_style*: cint
-    fill_style*: cint
-    fill_rule*: cint
-    arc_mode*: cint
-    tile*: TPixmap
-    stipple*: TPixmap
-    ts_x_origin*: cint
-    ts_y_origin*: cint
-    font*: TFont
-    subwindow_mode*: cint
-    graphics_exposures*: TBool
-    clip_x_origin*: cint
-    clip_y_origin*: cint
-    clip_mask*: TPixmap
-    dash_offset*: cint
-    dashes*: cchar
-
-  PXGC* = ptr TXGC
-  TXGC*{.final.} = object 
-  TGC* = PXGC
-  PGC* = ptr TGC
-  PVisual* = ptr TVisual
-  TVisual*{.final.} = object 
-    ext_data*: PXExtData
-    visualid*: TVisualID
-    c_class*: cint
-    red_mask*, green_mask*, blue_mask*: culong
-    bits_per_rgb*: cint
-    map_entries*: cint
-
-  PDepth* = ptr TDepth
-  TDepth*{.final.} = object 
-    depth*: cint
-    nvisuals*: cint
-    visuals*: PVisual
-
-  PXDisplay* = ptr TXDisplay
-  TXDisplay*{.final.} = object 
-  PScreen* = ptr TScreen
-  TScreen*{.final.} = object 
-    ext_data*: PXExtData
-    display*: PXDisplay
-    root*: TWindow
-    width*, height*: cint
-    mwidth*, mheight*: cint
-    ndepths*: cint
-    depths*: PDepth
-    root_depth*: cint
-    root_visual*: PVisual
-    default_gc*: TGC
-    cmap*: TColormap
-    white_pixel*: culong
-    black_pixel*: culong
-    max_maps*, min_maps*: cint
-    backing_store*: cint
-    save_unders*: TBool
-    root_input_mask*: clong
-
-  PScreenFormat* = ptr TScreenFormat
-  TScreenFormat*{.final.} = object 
-    ext_data*: PXExtData
-    depth*: cint
-    bits_per_pixel*: cint
-    scanline_pad*: cint
-
-  PXSetWindowAttributes* = ptr TXSetWindowAttributes
-  TXSetWindowAttributes*{.final.} = object 
-    background_pixmap*: TPixmap
-    background_pixel*: culong
-    border_pixmap*: TPixmap
-    border_pixel*: culong
-    bit_gravity*: cint
-    win_gravity*: cint
-    backing_store*: cint
-    backing_planes*: culong
-    backing_pixel*: culong
-    save_under*: TBool
-    event_mask*: clong
-    do_not_propagate_mask*: clong
-    override_redirect*: TBool
-    colormap*: TColormap
-    cursor*: TCursor
-
-  PXWindowAttributes* = ptr TXWindowAttributes
-  TXWindowAttributes*{.final.} = object 
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    depth*: cint
-    visual*: PVisual
-    root*: TWindow
-    c_class*: cint
-    bit_gravity*: cint
-    win_gravity*: cint
-    backing_store*: cint
-    backing_planes*: culong
-    backing_pixel*: culong
-    save_under*: TBool
-    colormap*: TColormap
-    map_installed*: TBool
-    map_state*: cint
-    all_event_masks*: clong
-    your_event_mask*: clong
-    do_not_propagate_mask*: clong
-    override_redirect*: TBool
-    screen*: PScreen
-
-  PXHostAddress* = ptr TXHostAddress
-  TXHostAddress*{.final.} = object 
-    family*: cint
-    len*: cint
-    address*: cstring
-
-  PXServerInterpretedAddress* = ptr TXServerInterpretedAddress
-  TXServerInterpretedAddress*{.final.} = object 
-    typelength*: cint
-    valuelength*: cint
-    theType*: cstring
-    value*: cstring
-
-  PXImage* = ptr TXImage
-  TF*{.final.} = object 
-    create_image*: proc (para1: PXDisplay, para2: PVisual, para3: cuint, 
-                         para4: cint, para5: cint, para6: cstring, para7: cuint, 
-                         para8: cuint, para9: cint, para10: cint): PXImage{.
-        cdecl.}
-    destroy_image*: proc (para1: PXImage): cint{.cdecl.}
-    get_pixel*: proc (para1: PXImage, para2: cint, para3: cint): culong{.cdecl.}
-    put_pixel*: proc (para1: PXImage, para2: cint, para3: cint, para4: culong): cint{.
-        cdecl.}
-    sub_image*: proc (para1: PXImage, para2: cint, para3: cint, para4: cuint, 
-                      para5: cuint): PXImage{.cdecl.}
-    add_pixel*: proc (para1: PXImage, para2: clong): cint{.cdecl.}
-
-  TXImage*{.final.} = object 
-    width*, height*: cint
-    xoffset*: cint
-    format*: cint
-    data*: cstring
-    byte_order*: cint
-    bitmap_unit*: cint
-    bitmap_bit_order*: cint
-    bitmap_pad*: cint
-    depth*: cint
-    bytes_per_line*: cint
-    bits_per_pixel*: cint
-    red_mask*: culong
-    green_mask*: culong
-    blue_mask*: culong
-    obdata*: TXPointer
-    f*: TF
-
-  PXWindowChanges* = ptr TXWindowChanges
-  TXWindowChanges*{.final.} = object 
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    sibling*: TWindow
-    stack_mode*: cint
-
-  PXColor* = ptr TXColor
-  TXColor*{.final.} = object 
-    pixel*: culong
-    red*, green*, blue*: cushort
-    flags*: cchar
-    pad*: cchar
-
-  PXSegment* = ptr TXSegment
-  TXSegment*{.final.} = object 
-    x1*, y1*, x2*, y2*: cshort
-
-  PXPoint* = ptr TXPoint
-  TXPoint*{.final.} = object 
-    x*, y*: cshort
-
-  PXRectangle* = ptr TXRectangle
-  TXRectangle*{.final.} = object 
-    x*, y*: cshort
-    width*, height*: cushort
-
-  PXArc* = ptr TXArc
-  TXArc*{.final.} = object 
-    x*, y*: cshort
-    width*, height*: cushort
-    angle1*, angle2*: cshort
-
-  PXKeyboardControl* = ptr TXKeyboardControl
-  TXKeyboardControl*{.final.} = object 
-    key_click_percent*: cint
-    bell_percent*: cint
-    bell_pitch*: cint
-    bell_duration*: cint
-    led*: cint
-    led_mode*: cint
-    key*: cint
-    auto_repeat_mode*: cint
-
-  PXKeyboardState* = ptr TXKeyboardState
-  TXKeyboardState*{.final.} = object 
-    key_click_percent*: cint
-    bell_percent*: cint
-    bell_pitch*, bell_duration*: cuint
-    led_mask*: culong
-    global_auto_repeat*: cint
-    auto_repeats*: array[0..31, cchar]
-
-  PXTimeCoord* = ptr TXTimeCoord
-  TXTimeCoord*{.final.} = object 
-    time*: TTime
-    x*, y*: cshort
-
-  PXModifierKeymap* = ptr TXModifierKeymap
-  TXModifierKeymap*{.final.} = object 
-    max_keypermod*: cint
-    modifiermap*: PKeyCode
-
-  PDisplay* = ptr TDisplay
-  TDisplay* = TXDisplay
-  PXPrivate* = ptr TXPrivate
-  TXPrivate*{.final.} = object 
-  PXrmHashBucketRec* = ptr TXrmHashBucketRec
-  TXrmHashBucketRec*{.final.} = object 
-  PXPrivDisplay* = ptr TXPrivDisplay
-  TXPrivDisplay*{.final.} = object 
-    ext_data*: PXExtData
-    private1*: PXPrivate
-    fd*: cint
-    private2*: cint
-    proto_major_version*: cint
-    proto_minor_version*: cint
-    vendor*: cstring
-    private3*: TXID
-    private4*: TXID
-    private5*: TXID
-    private6*: cint
-    resource_alloc*: proc (para1: PXDisplay): TXID{.cdecl.}
-    byte_order*: cint
-    bitmap_unit*: cint
-    bitmap_pad*: cint
-    bitmap_bit_order*: cint
-    nformats*: cint
-    pixmap_format*: PScreenFormat
-    private8*: cint
-    release*: cint
-    private9*, private10*: PXPrivate
-    qlen*: cint
-    last_request_read*: culong
-    request*: culong
-    private11*: TXPointer
-    private12*: TXPointer
-    private13*: TXPointer
-    private14*: TXPointer
-    max_request_size*: cunsigned
-    db*: PXrmHashBucketRec
-    private15*: proc (para1: PXDisplay): cint{.cdecl.}
-    display_name*: cstring
-    default_screen*: cint
-    nscreens*: cint
-    screens*: PScreen
-    motion_buffer*: culong
-    private16*: culong
-    min_keycode*: cint
-    max_keycode*: cint
-    private17*: TXPointer
-    private18*: TXPointer
-    private19*: cint
-    xdefaults*: cstring
-
-  PXKeyEvent* = ptr TXKeyEvent
-  TXKeyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    keycode*: cuint
-    same_screen*: TBool
-
-  PXKeyPressedEvent* = ptr TXKeyPressedEvent
-  TXKeyPressedEvent* = TXKeyEvent
-  PXKeyReleasedEvent* = ptr TXKeyReleasedEvent
-  TXKeyReleasedEvent* = TXKeyEvent
-  PXButtonEvent* = ptr TXButtonEvent
-  TXButtonEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    button*: cuint
-    same_screen*: TBool
-
-  PXButtonPressedEvent* = ptr TXButtonPressedEvent
-  TXButtonPressedEvent* = TXButtonEvent
-  PXButtonReleasedEvent* = ptr TXButtonReleasedEvent
-  TXButtonReleasedEvent* = TXButtonEvent
-  PXMotionEvent* = ptr TXMotionEvent
-  TXMotionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    state*: cuint
-    is_hint*: cchar
-    same_screen*: TBool
-
-  PXPointerMovedEvent* = ptr TXPointerMovedEvent
-  TXPointerMovedEvent* = TXMotionEvent
-  PXCrossingEvent* = ptr TXCrossingEvent
-  TXCrossingEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    root*: TWindow
-    subwindow*: TWindow
-    time*: TTime
-    x*, y*: cint
-    x_root*, y_root*: cint
-    mode*: cint
-    detail*: cint
-    same_screen*: TBool
-    focus*: TBool
-    state*: cuint
-
-  PXEnterWindowEvent* = ptr TXEnterWindowEvent
-  TXEnterWindowEvent* = TXCrossingEvent
-  PXLeaveWindowEvent* = ptr TXLeaveWindowEvent
-  TXLeaveWindowEvent* = TXCrossingEvent
-  PXFocusChangeEvent* = ptr TXFocusChangeEvent
-  TXFocusChangeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    mode*: cint
-    detail*: cint
-
-  PXFocusInEvent* = ptr TXFocusInEvent
-  TXFocusInEvent* = TXFocusChangeEvent
-  PXFocusOutEvent* = ptr TXFocusOutEvent
-  TXFocusOutEvent* = TXFocusChangeEvent
-  PXKeymapEvent* = ptr TXKeymapEvent
-  TXKeymapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    key_vector*: array[0..31, cchar]
-
-  PXExposeEvent* = ptr TXExposeEvent
-  TXExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    count*: cint
-
-  PXGraphicsExposeEvent* = ptr TXGraphicsExposeEvent
-  TXGraphicsExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    x*, y*: cint
-    width*, height*: cint
-    count*: cint
-    major_code*: cint
-    minor_code*: cint
-
-  PXNoExposeEvent* = ptr TXNoExposeEvent
-  TXNoExposeEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    major_code*: cint
-    minor_code*: cint
-
-  PXVisibilityEvent* = ptr TXVisibilityEvent
-  TXVisibilityEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    state*: cint
-
-  PXCreateWindowEvent* = ptr TXCreateWindowEvent
-  TXCreateWindowEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    override_redirect*: TBool
-
-  PXDestroyWindowEvent* = ptr TXDestroyWindowEvent
-  TXDestroyWindowEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-
-  PXUnmapEvent* = ptr TXUnmapEvent
-  TXUnmapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    from_configure*: TBool
-
-  PXMapEvent* = ptr TXMapEvent
-  TXMapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    override_redirect*: TBool
-
-  PXMapRequestEvent* = ptr TXMapRequestEvent
-  TXMapRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-
-  PXReparentEvent* = ptr TXReparentEvent
-  TXReparentEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    parent*: TWindow
-    x*, y*: cint
-    override_redirect*: TBool
-
-  PXConfigureEvent* = ptr TXConfigureEvent
-  TXConfigureEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    above*: TWindow
-    override_redirect*: TBool
-
-  PXGravityEvent* = ptr TXGravityEvent
-  TXGravityEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    x*, y*: cint
-
-  PXResizeRequestEvent* = ptr TXResizeRequestEvent
-  TXResizeRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    width*, height*: cint
-
-  PXConfigureRequestEvent* = ptr TXConfigureRequestEvent
-  TXConfigureRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    x*, y*: cint
-    width*, height*: cint
-    border_width*: cint
-    above*: TWindow
-    detail*: cint
-    value_mask*: culong
-
-  PXCirculateEvent* = ptr TXCirculateEvent
-  TXCirculateEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    event*: TWindow
-    window*: TWindow
-    place*: cint
-
-  PXCirculateRequestEvent* = ptr TXCirculateRequestEvent
-  TXCirculateRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    parent*: TWindow
-    window*: TWindow
-    place*: cint
-
-  PXPropertyEvent* = ptr TXPropertyEvent
-  TXPropertyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    atom*: TAtom
-    time*: TTime
-    state*: cint
-
-  PXSelectionClearEvent* = ptr TXSelectionClearEvent
-  TXSelectionClearEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    selection*: TAtom
-    time*: TTime
-
-  PXSelectionRequestEvent* = ptr TXSelectionRequestEvent
-  TXSelectionRequestEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    owner*: TWindow
-    requestor*: TWindow
-    selection*: TAtom
-    target*: TAtom
-    property*: TAtom
-    time*: TTime
-
-  PXSelectionEvent* = ptr TXSelectionEvent
-  TXSelectionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    requestor*: TWindow
-    selection*: TAtom
-    target*: TAtom
-    property*: TAtom
-    time*: TTime
-
-  PXColormapEvent* = ptr TXColormapEvent
-  TXColormapEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    colormap*: TColormap
-    c_new*: TBool
-    state*: cint
-
-  PXClientMessageEvent* = ptr TXClientMessageEvent
-  TXClientMessageEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    message_type*: TAtom
-    format*: cint
-    data*: array[0..4, clong] # using clong here to be 32/64-bit dependent
-        # as the original C union
-
-  PXMappingEvent* = ptr TXMappingEvent
-  TXMappingEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-    request*: cint
-    first_keycode*: cint
-    count*: cint
-
-  PXErrorEvent* = ptr TXErrorEvent
-  TXErrorEvent*{.final.} = object 
-    theType*: cint
-    display*: PDisplay
-    resourceid*: TXID
-    serial*: culong
-    error_code*: cuchar
-    request_code*: cuchar
-    minor_code*: cuchar
-
-  PXAnyEvent* = ptr TXAnyEvent
-  TXAnyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    window*: TWindow
-
-  PXEvent* = ptr TXEvent
-  TXEvent*{.final.} = object 
-    theType*: cint
-    pad*: array[0..22, clong] #
-                              #       case longint of
-                              #          0 : ( theType : cint );
-                              #          1 : ( xany : TXAnyEvent );
-                              #          2 : ( xkey : TXKeyEvent );
-                              #          3 : ( xbutton : TXButtonEvent );
-                              #          4 : ( xmotion : TXMotionEvent );
-                              #          5 : ( xcrossing : TXCrossingEvent );
-                              #          6 : ( xfocus : TXFocusChangeEvent );
-                              #          7 : ( xexpose : TXExposeEvent );
-                              #          8 : ( xgraphicsexpose : TXGraphicsExposeEvent );
-                              #          9 : ( xnoexpose : TXNoExposeEvent );
-                              #          10 : ( xvisibility : TXVisibilityEvent );
-                              #          11 : ( xcreatewindow : TXCreateWindowEvent );
-                              #          12 : ( xdestroywindow : TXDestroyWindowEvent );
-                              #          13 : ( xunmap : TXUnmapEvent );
-                              #          14 : ( xmap : TXMapEvent );
-                              #          15 : ( xmaprequest : TXMapRequestEvent );
-                              #          16 : ( xreparent : TXReparentEvent );
-                              #          17 : ( xconfigure : TXConfigureEvent );
-                              #          18 : ( xgravity : TXGravityEvent );
-                              #          19 : ( xresizerequest : TXResizeRequestEvent );
-                              #          20 : ( xconfigurerequest : TXConfigureRequestEvent );
-                              #          21 : ( xcirculate : TXCirculateEvent );
-                              #          22 : ( xcirculaterequest : TXCirculateRequestEvent );
-                              #          23 : ( xproperty : TXPropertyEvent );
-                              #          24 : ( xselectionclear : TXSelectionClearEvent );
-                              #          25 : ( xselectionrequest : TXSelectionRequestEvent );
-                              #          26 : ( xselection : TXSelectionEvent );
-                              #          27 : ( xcolormap : TXColormapEvent );
-                              #          28 : ( xclient : TXClientMessageEvent );
-                              #          29 : ( xmapping : TXMappingEvent );
-                              #          30 : ( xerror : TXErrorEvent );
-                              #          31 : ( xkeymap : TXKeymapEvent );
-                              #          32 : ( pad : array[0..23] of clong );
-                              #          
-  
-
-proc xclient*(e: PXEvent): PXClientMessageEvent =
-    ## Treats XEvent as XClientMessageEvent
-    return cast[PXClientMessageEvent](e)
-
-proc xclient*(e: var TXEvent): PXClientMessageEvent =
-    return xclient(PXEvent(e.addr))
-
-type 
-  PXCharStruct* = ptr TXCharStruct
-  TXCharStruct*{.final.} = object 
-    lbearing*: cshort
-    rbearing*: cshort
-    width*: cshort
-    ascent*: cshort
-    descent*: cshort
-    attributes*: cushort
-
-  PXFontProp* = ptr TXFontProp
-  TXFontProp*{.final.} = object 
-    name*: TAtom
-    card32*: culong
-
-  PPPXFontStruct* = ptr PPXFontStruct
-  PPXFontStruct* = ptr PXFontStruct
-  PXFontStruct* = ptr TXFontStruct
-  TXFontStruct*{.final.} = object 
-    ext_data*: PXExtData
-    fid*: TFont
-    direction*: cunsigned
-    min_char_or_byte2*: cunsigned
-    max_char_or_byte2*: cunsigned
-    min_byte1*: cunsigned
-    max_byte1*: cunsigned
-    all_chars_exist*: TBool
-    default_char*: cunsigned
-    n_properties*: cint
-    properties*: PXFontProp
-    min_bounds*: TXCharStruct
-    max_bounds*: TXCharStruct
-    per_char*: PXCharStruct
-    ascent*: cint
-    descent*: cint
-
-  PXTextItem* = ptr TXTextItem
-  TXTextItem*{.final.} = object 
-    chars*: cstring
-    nchars*: cint
-    delta*: cint
-    font*: TFont
-
-  PXChar2b* = ptr TXChar2b
-  TXChar2b*{.final.} = object 
-    byte1*: cuchar
-    byte2*: cuchar
-
-  PXTextItem16* = ptr TXTextItem16
-  TXTextItem16*{.final.} = object 
-    chars*: PXChar2b
-    nchars*: cint
-    delta*: cint
-    font*: TFont
-
-  PXEDataObject* = ptr TXEDataObject
-  TXEDataObject*{.final.} = object 
-    display*: PDisplay        #case longint of
-                              #          0 : ( display : PDisplay );
-                              #          1 : ( gc : TGC );
-                              #          2 : ( visual : PVisual );
-                              #          3 : ( screen : PScreen );
-                              #          4 : ( pixmap_format : PScreenFormat );
-                              #          5 : ( font : PXFontStruct );
-  
-  PXFontSetExtents* = ptr TXFontSetExtents
-  TXFontSetExtents*{.final.} = object 
-    max_ink_extent*: TXRectangle
-    max_logical_extent*: TXRectangle
-
-  PXOM* = ptr TXOM
-  TXOM*{.final.} = object 
-  PXOC* = ptr TXOC
-  TXOC*{.final.} = object 
-  TXFontSet* = PXOC
-  PXFontSet* = ptr TXFontSet
-  PXmbTextItem* = ptr TXmbTextItem
-  TXmbTextItem*{.final.} = object 
-    chars*: cstring
-    nchars*: cint
-    delta*: cint
-    font_set*: TXFontSet
-
-  PXwcTextItem* = ptr TXwcTextItem
-  TXwcTextItem*{.final.} = object 
-    chars*: PWideChar         #wchar_t*
-    nchars*: cint
-    delta*: cint
-    font_set*: TXFontSet
-
-
-const 
-  XNRequiredCharSet* = "requiredCharSet"
-  XNQueryOrientation* = "queryOrientation"
-  XNBaseFontName* = "baseFontName"
-  XNOMAutomatic* = "omAutomatic"
-  XNMissingCharSet* = "missingCharSet"
-  XNDefaultString* = "defaultString"
-  XNOrientation* = "orientation"
-  XNDirectionalDependentDrawing* = "directionalDependentDrawing"
-  XNContextualDrawing* = "contextualDrawing"
-  XNFontInfo* = "fontInfo"
-
-type 
-  PXOMCharSetList* = ptr TXOMCharSetList
-  TXOMCharSetList*{.final.} = object 
-    charset_count*: cint
-    charset_list*: PPChar
-
-  PXOrientation* = ptr TXOrientation
-  TXOrientation* = enum 
-    XOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR, 
-    XOMOrientation_TTB_RTL, XOMOrientation_Context
-  PXOMOrientation* = ptr TXOMOrientation
-  TXOMOrientation*{.final.} = object 
-    num_orientation*: cint
-    orientation*: PXOrientation
-
-  PXOMFontInfo* = ptr TXOMFontInfo
-  TXOMFontInfo*{.final.} = object 
-    num_font*: cint
-    font_struct_list*: ptr PXFontStruct
-    font_name_list*: PPChar
-
-  PXIM* = ptr TXIM
-  TXIM*{.final.} = object 
-  PXIC* = ptr TXIC
-  TXIC*{.final.} = object 
-  TXIMProc* = proc (para1: TXIM, para2: TXPointer, para3: TXPointer){.cdecl.}
-  TXICProc* = proc (para1: TXIC, para2: TXPointer, para3: TXPointer): TBool{.
-      cdecl.}
-  TXIDProc* = proc (para1: PDisplay, para2: TXPointer, para3: TXPointer){.cdecl.}
-  PXIMStyle* = ptr TXIMStyle
-  TXIMStyle* = culong
-  PXIMStyles* = ptr TXIMStyles
-  TXIMStyles*{.final.} = object 
-    count_styles*: cushort
-    supported_styles*: PXIMStyle
-
-
-const 
-  XIMPreeditArea* = 0x00000001
-  XIMPreeditCallbacks* = 0x00000002
-  XIMPreeditPosition* = 0x00000004
-  XIMPreeditNothing* = 0x00000008
-  XIMPreeditNone* = 0x00000010
-  XIMStatusArea* = 0x00000100
-  XIMStatusCallbacks* = 0x00000200
-  XIMStatusNothing* = 0x00000400
-  XIMStatusNone* = 0x00000800
-  XNVaNestedList* = "XNVaNestedList"
-  XNQueryInputStyle* = "queryInputStyle"
-  XNClientWindow* = "clientWindow"
-  XNInputStyle* = "inputStyle"
-  XNFocusWindow* = "focusWindow"
-  XNResourceName* = "resourceName"
-  XNResourceClass* = "resourceClass"
-  XNGeometryCallback* = "geometryCallback"
-  XNDestroyCallback* = "destroyCallback"
-  XNFilterEvents* = "filterEvents"
-  XNPreeditStartCallback* = "preeditStartCallback"
-  XNPreeditDoneCallback* = "preeditDoneCallback"
-  XNPreeditDrawCallback* = "preeditDrawCallback"
-  XNPreeditCaretCallback* = "preeditCaretCallback"
-  XNPreeditStateNotifyCallback* = "preeditStateNotifyCallback"
-  XNPreeditAttributes* = "preeditAttributes"
-  XNStatusStartCallback* = "statusStartCallback"
-  XNStatusDoneCallback* = "statusDoneCallback"
-  XNStatusDrawCallback* = "statusDrawCallback"
-  XNStatusAttributes* = "statusAttributes"
-  XNArea* = "area"
-  XNAreaNeeded* = "areaNeeded"
-  XNSpotLocation* = "spotLocation"
-  XNColormap* = "colorMap"
-  XNStdColormap* = "stdColorMap"
-  XNForeground* = "foreground"
-  XNBackground* = "background"
-  XNBackgroundPixmap* = "backgroundPixmap"
-  XNFontSet* = "fontSet"
-  XNLineSpace* = "lineSpace"
-  XNCursor* = "cursor"
-  XNQueryIMValuesList* = "queryIMValuesList"
-  XNQueryICValuesList* = "queryICValuesList"
-  XNVisiblePosition* = "visiblePosition"
-  XNR6PreeditCallback* = "r6PreeditCallback"
-  XNStringConversionCallback* = "stringConversionCallback"
-  XNStringConversion* = "stringConversion"
-  XNResetState* = "resetState"
-  XNHotKey* = "hotKey"
-  XNHotKeyState* = "hotKeyState"
-  XNPreeditState* = "preeditState"
-  XNSeparatorofNestedList* = "separatorofNestedList"
-  XBufferOverflow* = - (1)
-  XLookupNone* = 1
-  XLookupChars* = 2
-  XLookupKeySymVal* = 3
-  XLookupBoth* = 4
-
-type 
-  PXVaNestedList* = ptr TXVaNestedList
-  TXVaNestedList* = pointer
-  PXIMCallback* = ptr TXIMCallback
-  TXIMCallback*{.final.} = object 
-    client_data*: TXPointer
-    callback*: TXIMProc
-
-  PXICCallback* = ptr TXICCallback
-  TXICCallback*{.final.} = object 
-    client_data*: TXPointer
-    callback*: TXICProc
-
-  PXIMFeedback* = ptr TXIMFeedback
-  TXIMFeedback* = culong
-
-const 
-  XIMReverse* = 1
-  XIMUnderline* = 1 shl 1
-  XIMHighlight* = 1 shl 2
-  XIMPrimary* = 1 shl 5
-  XIMSecondary* = 1 shl 6
-  XIMTertiary* = 1 shl 7
-  XIMVisibleToForward* = 1 shl 8
-  XIMVisibleToBackword* = 1 shl 9
-  XIMVisibleToCenter* = 1 shl 10
-
-type 
-  PXIMText* = ptr TXIMText
-  TXIMText*{.final.} = object 
-    len*: cushort
-    feedback*: PXIMFeedback
-    encoding_is_wchar*: TBool
-    multi_byte*: cstring
-
-  PXIMPreeditState* = ptr TXIMPreeditState
-  TXIMPreeditState* = culong
-
-const 
-  XIMPreeditUnKnown* = 0
-  XIMPreeditEnable* = 1
-  XIMPreeditDisable* = 1 shl 1
-
-type 
-  PXIMPreeditStateNotifyCallbackStruct* = ptr TXIMPreeditStateNotifyCallbackStruct
-  TXIMPreeditStateNotifyCallbackStruct*{.final.} = object 
-    state*: TXIMPreeditState
-
-  PXIMResetState* = ptr TXIMResetState
-  TXIMResetState* = culong
-
-const 
-  XIMInitialState* = 1
-  XIMPreserveState* = 1 shl 1
-
-type 
-  PXIMStringConversionFeedback* = ptr TXIMStringConversionFeedback
-  TXIMStringConversionFeedback* = culong
-
-const 
-  XIMStringConversionLeftEdge* = 0x00000001
-  XIMStringConversionRightEdge* = 0x00000002
-  XIMStringConversionTopEdge* = 0x00000004
-  XIMStringConversionBottomEdge* = 0x00000008
-  XIMStringConversionConcealed* = 0x00000010
-  XIMStringConversionWrapped* = 0x00000020
-
-type 
-  PXIMStringConversionText* = ptr TXIMStringConversionText
-  TXIMStringConversionText*{.final.} = object 
-    len*: cushort
-    feedback*: PXIMStringConversionFeedback
-    encoding_is_wchar*: TBool
-    mbs*: cstring
-
-  PXIMStringConversionPosition* = ptr TXIMStringConversionPosition
-  TXIMStringConversionPosition* = cushort
-  PXIMStringConversionType* = ptr TXIMStringConversionType
-  TXIMStringConversionType* = cushort
-
-const 
-  XIMStringConversionBuffer* = 0x00000001
-  XIMStringConversionLine* = 0x00000002
-  XIMStringConversionWord* = 0x00000003
-  XIMStringConversionChar* = 0x00000004
-
-type 
-  PXIMStringConversionOperation* = ptr TXIMStringConversionOperation
-  TXIMStringConversionOperation* = cushort
-
-const 
-  XIMStringConversionSubstitution* = 0x00000001
-  XIMStringConversionRetrieval* = 0x00000002
-
-type 
-  PXIMCaretDirection* = ptr TXIMCaretDirection
-  TXIMCaretDirection* = enum 
-    XIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord, 
-    XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart, 
-    XIMLineEnd, XIMAbsolutePosition, XIMDontChange
-  PXIMStringConversionCallbackStruct* = ptr TXIMStringConversionCallbackStruct
-  TXIMStringConversionCallbackStruct*{.final.} = object 
-    position*: TXIMStringConversionPosition
-    direction*: TXIMCaretDirection
-    operation*: TXIMStringConversionOperation
-    factor*: cushort
-    text*: PXIMStringConversionText
-
-  PXIMPreeditDrawCallbackStruct* = ptr TXIMPreeditDrawCallbackStruct
-  TXIMPreeditDrawCallbackStruct*{.final.} = object 
-    caret*: cint
-    chg_first*: cint
-    chg_length*: cint
-    text*: PXIMText
-
-  PXIMCaretStyle* = ptr TXIMCaretStyle
-  TXIMCaretStyle* = enum 
-    XIMIsInvisible, XIMIsPrimary, XIMIsSecondary
-  PXIMPreeditCaretCallbackStruct* = ptr TXIMPreeditCaretCallbackStruct
-  TXIMPreeditCaretCallbackStruct*{.final.} = object 
-    position*: cint
-    direction*: TXIMCaretDirection
-    style*: TXIMCaretStyle
-
-  PXIMStatusDataType* = ptr TXIMStatusDataType
-  TXIMStatusDataType* = enum 
-    XIMTextType, XIMBitmapType
-  PXIMStatusDrawCallbackStruct* = ptr TXIMStatusDrawCallbackStruct
-  TXIMStatusDrawCallbackStruct*{.final.} = object 
-    theType*: TXIMStatusDataType
-    bitmap*: TPixmap
-
-  PXIMHotKeyTrigger* = ptr TXIMHotKeyTrigger
-  TXIMHotKeyTrigger*{.final.} = object 
-    keysym*: TKeySym
-    modifier*: cint
-    modifier_mask*: cint
-
-  PXIMHotKeyTriggers* = ptr TXIMHotKeyTriggers
-  TXIMHotKeyTriggers*{.final.} = object 
-    num_hot_key*: cint
-    key*: PXIMHotKeyTrigger
-
-  PXIMHotKeyState* = ptr TXIMHotKeyState
-  TXIMHotKeyState* = culong
-
-const 
-  XIMHotKeyStateON* = 0x00000001
-  XIMHotKeyStateOFF* = 0x00000002
-
-type 
-  PXIMValuesList* = ptr TXIMValuesList
-  TXIMValuesList*{.final.} = object 
-    count_values*: cushort
-    supported_values*: PPChar
-
-
-type 
-  funcdisp* = proc (display: PDisplay): cint{.cdecl.}
-  funcifevent* = proc (display: PDisplay, event: PXEvent, p: TXPointer): TBool{.
-      cdecl.}
-  chararr32* = array[0..31, char]
-
-const 
-  AllPlanes*: culong = culong(not 0)
-
-proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct{.libx11.}
-proc XQueryFont*(para1: PDisplay, para2: TXID): PXFontStruct{.libx11.}
-proc XGetMotionEvents*(para1: PDisplay, para2: TWindow, para3: TTime, 
-                       para4: TTime, para5: Pcint): PXTimeCoord{.libx11.}
-proc XDeleteModifiermapEntry*(para1: PXModifierKeymap, para2: TKeyCode, 
-                              para3: cint): PXModifierKeymap{.libx11.}
-proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap{.libx11.}
-proc XInsertModifiermapEntry*(para1: PXModifierKeymap, para2: TKeyCode, 
-                              para3: cint): PXModifierKeymap{.libx11.}
-proc XNewModifiermap*(para1: cint): PXModifierKeymap{.libx11.}
-proc XCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, para4: cint, 
-                   para5: cint, para6: cstring, para7: cuint, para8: cuint, 
-                   para9: cint, para10: cint): PXImage{.libx11.}
-proc XInitImage*(para1: PXImage): TStatus{.libx11.}
-proc XGetImage*(para1: PDisplay, para2: TDrawable, para3: cint, para4: cint, 
-                para5: cuint, para6: cuint, para7: culong, para8: cint): PXImage{.
-    libx11.}
-proc XGetSubImage*(para1: PDisplay, para2: TDrawable, para3: cint, para4: cint, 
-                   para5: cuint, para6: cuint, para7: culong, para8: cint, 
-                   para9: PXImage, para10: cint, para11: cint): PXImage{.libx11.}
-proc XOpenDisplay*(para1: cstring): PDisplay{.libx11.}
-proc XrmInitialize*(){.libx11.}
-proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring{.libx11.}
-proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring{.libx11.}
-proc XGetAtomName*(para1: PDisplay, para2: TAtom): cstring{.libx11.}
-proc XGetAtomNames*(para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar): TStatus{.
-    libx11.}
-proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring{.
-    libx11.}
-proc XDisplayName*(para1: cstring): cstring{.libx11.}
-proc XKeysymToString*(para1: TKeySym): cstring{.libx11.}
-proc XSynchronize*(para1: PDisplay, para2: TBool): funcdisp{.libx11.}
-proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp{.libx11.}
-proc XInternAtom*(para1: PDisplay, para2: cstring, para3: TBool): TAtom{.libx11.}
-proc XInternAtoms*(para1: PDisplay, para2: PPchar, para3: cint, para4: TBool, 
-                   para5: PAtom): TStatus{.libx11.}
-proc XCopyColormapAndFree*(para1: PDisplay, para2: TColormap): TColormap{.libx11.}
-proc XCreateColormap*(para1: PDisplay, para2: TWindow, para3: PVisual, 
-                      para4: cint): TColormap{.libx11.}
-proc XCreatePixmapCursor*(para1: PDisplay, para2: TPixmap, para3: TPixmap, 
-                          para4: PXColor, para5: PXColor, para6: cuint, 
-                          para7: cuint): TCursor{.libx11.}
-proc XCreateGlyphCursor*(para1: PDisplay, para2: TFont, para3: TFont, 
-                         para4: cuint, para5: cuint, para6: PXColor, 
-                         para7: PXColor): TCursor{.libx11.}
-proc XCreateFontCursor*(para1: PDisplay, para2: cuint): TCursor{.libx11.}
-proc XLoadFont*(para1: PDisplay, para2: cstring): TFont{.libx11.}
-proc XCreateGC*(para1: PDisplay, para2: TDrawable, para3: culong, 
-                para4: PXGCValues): TGC{.libx11.}
-proc XGContextFromGC*(para1: TGC): TGContext{.libx11.}
-proc XFlushGC*(para1: PDisplay, para2: TGC){.libx11.}
-proc XCreatePixmap*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                    para4: cuint, para5: cuint): TPixmap{.libx11.}
-proc XCreateBitmapFromData*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                            para4: cuint, para5: cuint): TPixmap{.libx11.}
-proc XCreatePixmapFromBitmapData*(para1: PDisplay, para2: TDrawable, 
-                                  para3: cstring, para4: cuint, para5: cuint, 
-                                  para6: culong, para7: culong, para8: cuint): TPixmap{.
-    libx11.}
-proc XCreateSimpleWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                          para4: cint, para5: cuint, para6: cuint, para7: cuint, 
-                          para8: culong, para9: culong): TWindow{.libx11.}
-proc XGetSelectionOwner*(para1: PDisplay, para2: TAtom): TWindow{.libx11.}
-proc XCreateWindow*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint, 
-                    para5: cuint, para6: cuint, para7: cuint, para8: cint, 
-                    para9: cuint, para10: PVisual, para11: culong, 
-                    para12: PXSetWindowAttributes): TWindow{.libx11.}
-proc XListInstalledColormaps*(para1: PDisplay, para2: TWindow, para3: Pcint): PColormap{.
-    libx11.}
-proc XListFonts*(para1: PDisplay, para2: cstring, para3: cint, para4: Pcint): PPChar{.
-    libx11.}
-proc XListFontsWithInfo*(para1: PDisplay, para2: cstring, para3: cint, 
-                         para4: Pcint, para5: PPXFontStruct): PPChar{.libx11.}
-proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
-proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar{.libx11.}
-proc XListProperties*(para1: PDisplay, para2: TWindow, para3: Pcint): PAtom{.
-    libx11.}
-proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress{.
-    libx11.}
-proc XKeycodeToKeysym*(para1: PDisplay, para2: TKeyCode, para3: cint): TKeySym{.
-    libx11.}
-proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): TKeySym{.libx11.}
-proc XGetKeyboardMapping*(para1: PDisplay, para2: TKeyCode, para3: cint, 
-                          para4: Pcint): PKeySym{.libx11.}
-proc XStringToKeysym*(para1: cstring): TKeySym{.libx11.}
-proc XMaxRequestSize*(para1: PDisplay): clong{.libx11.}
-proc XExtendedMaxRequestSize*(para1: PDisplay): clong{.libx11.}
-proc XResourceManagerString*(para1: PDisplay): cstring{.libx11.}
-proc XScreenResourceString*(para1: PScreen): cstring{.libx11.}
-proc XDisplayMotionBufferSize*(para1: PDisplay): culong{.libx11.}
-proc XVisualIDFromVisual*(para1: PVisual): TVisualID{.libx11.}
-proc XInitThreads*(): TStatus{.libx11.}
-proc XLockDisplay*(para1: PDisplay){.libx11.}
-proc XUnlockDisplay*(para1: PDisplay){.libx11.}
-proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes{.libx11.}
-proc XAddExtension*(para1: PDisplay): PXExtCodes{.libx11.}
-proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData{.libx11.}
-proc XEHeadOfExtensionList*(para1: TXEDataObject): PPXExtData{.libx11.}
-proc XRootWindow*(para1: PDisplay, para2: cint): TWindow{.libx11.}
-proc XDefaultRootWindow*(para1: PDisplay): TWindow{.libx11.}
-proc XRootWindowOfScreen*(para1: PScreen): TWindow{.libx11.}
-proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual{.libx11.}
-proc XDefaultVisualOfScreen*(para1: PScreen): PVisual{.libx11.}
-proc XDefaultGC*(para1: PDisplay, para2: cint): TGC{.libx11.}
-proc XDefaultGCOfScreen*(para1: PScreen): TGC{.libx11.}
-proc XBlackPixel*(para1: PDisplay, para2: cint): culong{.libx11.}
-proc XWhitePixel*(para1: PDisplay, para2: cint): culong{.libx11.}
-proc XAllPlanes*(): culong{.libx11.}
-proc XBlackPixelOfScreen*(para1: PScreen): culong{.libx11.}
-proc XWhitePixelOfScreen*(para1: PScreen): culong{.libx11.}
-proc XNextRequest*(para1: PDisplay): culong{.libx11.}
-proc XLastKnownRequestProcessed*(para1: PDisplay): culong{.libx11.}
-proc XServerVendor*(para1: PDisplay): cstring{.libx11.}
-proc XDisplayString*(para1: PDisplay): cstring{.libx11.}
-proc XDefaultColormap*(para1: PDisplay, para2: cint): TColormap{.libx11.}
-proc XDefaultColormapOfScreen*(para1: PScreen): TColormap{.libx11.}
-proc XDisplayOfScreen*(para1: PScreen): PDisplay{.libx11.}
-proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen{.libx11.}
-proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen{.libx11.}
-proc XEventMaskOfScreen*(para1: PScreen): clong{.libx11.}
-proc XScreenNumberOfScreen*(para1: PScreen): cint{.libx11.}
-type 
-  TXErrorHandler* = proc (para1: PDisplay, para2: PXErrorEvent): cint{.cdecl.}
-
-proc XSetErrorHandler*(para1: TXErrorHandler): TXErrorHandler{.libx11.}
-type 
-  TXIOErrorHandler* = proc (para1: PDisplay): cint{.cdecl.}
-
-proc XSetIOErrorHandler*(para1: TXIOErrorHandler): TXIOErrorHandler{.libx11.}
-proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues{.
-    libx11.}
-proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint{.libx11.}
-proc XReconfigureWMWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                           para4: cuint, para5: PXWindowChanges): TStatus{.
-    libx11.}
-proc XGetWMProtocols*(para1: PDisplay, para2: TWindow, para3: PPAtom, 
-                      para4: Pcint): TStatus{.libx11.}
-proc XSetWMProtocols*(para1: PDisplay, para2: TWindow, para3: PAtom, para4: cint): TStatus{.
-    libx11.}
-proc XIconifyWindow*(para1: PDisplay, para2: TWindow, para3: cint): TStatus{.
-    libx11.}
-proc XWithdrawWindow*(para1: PDisplay, para2: TWindow, para3: cint): TStatus{.
-    libx11.}
-proc XGetCommand*(para1: PDisplay, para2: TWindow, para3: PPPchar, para4: Pcint): TStatus{.
-    libx11.}
-proc XGetWMColormapWindows*(para1: PDisplay, para2: TWindow, para3: PPWindow, 
-                            para4: Pcint): TStatus{.libx11.}
-proc XSetWMColormapWindows*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                            para4: cint): TStatus{.libx11.}
-proc XFreeStringList*(para1: PPchar){.libx11.}
-proc XSetTransientForHint*(para1: PDisplay, para2: TWindow, para3: TWindow): cint{.
-    libx11.}
-proc XActivateScreenSaver*(para1: PDisplay): cint{.libx11.}
-proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
-proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
-    libx11.}
-proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint{.libx11.}
-proc XAddToSaveSet*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XAllocColor*(para1: PDisplay, para2: TColormap, para3: PXColor): TStatus{.
-    libx11.}
-proc XAllocColorCells*(para1: PDisplay, para2: TColormap, para3: TBool, 
-                       para4: Pculong, para5: cuint, para6: Pculong, 
-                       para7: cuint): TStatus{.libx11.}
-proc XAllocColorPlanes*(para1: PDisplay, para2: TColormap, para3: TBool, 
-                        para4: Pculong, para5: cint, para6: cint, para7: cint, 
-                        para8: cint, para9: Pculong, para10: Pculong, 
-                        para11: Pculong): TStatus{.libx11.}
-proc XAllocNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                       para4: PXColor, para5: PXColor): TStatus{.libx11.}
-proc XAllowEvents*(para1: PDisplay, para2: cint, para3: TTime): cint{.libx11.}
-proc XAutoRepeatOff*(para1: PDisplay): cint{.libx11.}
-proc XAutoRepeatOn*(para1: PDisplay): cint{.libx11.}
-proc XBell*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XBitmapBitOrder*(para1: PDisplay): cint{.libx11.}
-proc XBitmapPad*(para1: PDisplay): cint{.libx11.}
-proc XBitmapUnit*(para1: PDisplay): cint{.libx11.}
-proc XCellsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XChangeActivePointerGrab*(para1: PDisplay, para2: cuint, para3: TCursor, 
-                               para4: TTime): cint{.libx11.}
-proc XChangeGC*(para1: PDisplay, para2: TGC, para3: culong, para4: PXGCValues): cint{.
-    libx11.}
-proc XChangeKeyboardControl*(para1: PDisplay, para2: culong, 
-                             para3: PXKeyboardControl): cint{.libx11.}
-proc XChangeKeyboardMapping*(para1: PDisplay, para2: cint, para3: cint, 
-                             para4: PKeySym, para5: cint): cint{.libx11.}
-proc XChangePointerControl*(para1: PDisplay, para2: TBool, para3: TBool, 
-                            para4: cint, para5: cint, para6: cint): cint{.libx11.}
-proc XChangeProperty*(para1: PDisplay, para2: TWindow, para3: TAtom, 
-                      para4: TAtom, para5: cint, para6: cint, para7: Pcuchar, 
-                      para8: cint): cint{.libx11.}
-proc XChangeSaveSet*(para1: PDisplay, para2: TWindow, para3: cint): cint{.libx11.}
-proc XChangeWindowAttributes*(para1: PDisplay, para2: TWindow, para3: culong, 
-                              para4: PXSetWindowAttributes): cint{.libx11.}
-proc XCheckIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-                    para4: TXPointer): TBool{.libx11.}
-proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): TBool{.
-    libx11.}
-proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): TBool{.
-    libx11.}
-proc XCheckTypedWindowEvent*(para1: PDisplay, para2: TWindow, para3: cint, 
-                             para4: PXEvent): TBool{.libx11.}
-proc XCheckWindowEvent*(para1: PDisplay, para2: TWindow, para3: clong, 
-                        para4: PXEvent): TBool{.libx11.}
-proc XCirculateSubwindows*(para1: PDisplay, para2: TWindow, para3: cint): cint{.
-    libx11.}
-proc XCirculateSubwindowsDown*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XCirculateSubwindowsUp*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XClearArea*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint, 
-                 para5: cuint, para6: cuint, para7: TBool): cint{.libx11.}
-proc XClearWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XCloseDisplay*(para1: PDisplay): cint{.libx11.}
-proc XConfigureWindow*(para1: PDisplay, para2: TWindow, para3: cuint, 
-                       para4: PXWindowChanges): cint{.libx11.}
-proc XConnectionNumber*(para1: PDisplay): cint{.libx11.}
-proc XConvertSelection*(para1: PDisplay, para2: TAtom, para3: TAtom, 
-                        para4: TAtom, para5: TWindow, para6: TTime): cint{.
-    libx11.}
-proc XCopyArea*(para1: PDisplay, para2: TDrawable, para3: TDrawable, para4: TGC, 
-                para5: cint, para6: cint, para7: cuint, para8: cuint, 
-                para9: cint, para10: cint): cint{.libx11.}
-proc XCopyGC*(para1: PDisplay, para2: TGC, para3: culong, para4: TGC): cint{.
-    libx11.}
-proc XCopyPlane*(para1: PDisplay, para2: TDrawable, para3: TDrawable, 
-                 para4: TGC, para5: cint, para6: cint, para7: cuint, 
-                 para8: cuint, para9: cint, para10: cint, para11: culong): cint{.
-    libx11.}
-proc XDefaultDepth*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDefaultDepthOfScreen*(para1: PScreen): cint{.libx11.}
-proc XDefaultScreen*(para1: PDisplay): cint{.libx11.}
-proc XDefineCursor*(para1: PDisplay, para2: TWindow, para3: TCursor): cint{.
-    libx11.}
-proc XDeleteProperty*(para1: PDisplay, para2: TWindow, para3: TAtom): cint{.
-    libx11.}
-proc XDestroyWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XDestroySubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XDoesBackingStore*(para1: PScreen): cint{.libx11.}
-proc XDoesSaveUnders*(para1: PScreen): TBool{.libx11.}
-proc XDisableAccessControl*(para1: PDisplay): cint{.libx11.}
-proc XDisplayCells*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayHeight*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint{.
-    libx11.}
-proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayWidth*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XDrawArc*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
-    libx11.}
-proc XDrawArcs*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXArc, 
-                para5: cint): cint{.libx11.}
-proc XDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                       para4: cint, para5: cint, para6: cstring, para7: cint): cint{.
-    libx11.}
-proc XDrawImageString16*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                         para4: cint, para5: cint, para6: PXChar2b, para7: cint): cint{.
-    libx11.}
-proc XDrawLine*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                para5: cint, para6: cint, para7: cint): cint{.libx11.}
-proc XDrawLines*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXPoint, 
-                 para5: cint, para6: cint): cint{.libx11.}
-proc XDrawPoint*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                 para5: cint): cint{.libx11.}
-proc XDrawPoints*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXPoint, 
-                  para5: cint, para6: cint): cint{.libx11.}
-proc XDrawRectangle*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
-proc XDrawRectangles*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                      para4: PXRectangle, para5: cint): cint{.libx11.}
-proc XDrawSegments*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                    para4: PXSegment, para5: cint): cint{.libx11.}
-proc XDrawString*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: cstring, para7: cint): cint{.libx11.}
-proc XDrawString16*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                    para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.}
-proc XDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                para5: cint, para6: PXTextItem, para7: cint): cint{.libx11.}
-proc XDrawText16*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXTextItem16, para7: cint): cint{.libx11.}
-proc XEnableAccessControl*(para1: PDisplay): cint{.libx11.}
-proc XEventsQueued*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XFetchName*(para1: PDisplay, para2: TWindow, para3: PPchar): TStatus{.
-    libx11.}
-proc XFillArc*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-               para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{.
-    libx11.}
-proc XFillArcs*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXArc, 
-                para5: cint): cint{.libx11.}
-proc XFillPolygon*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                   para4: PXPoint, para5: cint, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XFillRectangle*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                     para5: cint, para6: cuint, para7: cuint): cint{.libx11.}
-proc XFillRectangles*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                      para4: PXRectangle, para5: cint): cint{.libx11.}
-proc XFlush*(para1: PDisplay): cint{.libx11.}
-proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XFree*(para1: pointer): cint{.libx11.}
-proc XFreeColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XFreeColors*(para1: PDisplay, para2: TColormap, para3: Pculong, 
-                  para4: cint, para5: culong): cint{.libx11.}
-proc XFreeCursor*(para1: PDisplay, para2: TCursor): cint{.libx11.}
-proc XFreeExtensionList*(para1: PPchar): cint{.libx11.}
-proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint{.libx11.}
-proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint{.
-    libx11.}
-proc XFreeFontNames*(para1: PPchar): cint{.libx11.}
-proc XFreeFontPath*(para1: PPchar): cint{.libx11.}
-proc XFreeGC*(para1: PDisplay, para2: TGC): cint{.libx11.}
-proc XFreeModifiermap*(para1: PXModifierKeymap): cint{.libx11.}
-proc XFreePixmap*(para1: PDisplay, para2: TPixmap): cint{.libx11.}
-proc XGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, 
-                para5: cuint, para6: cuint, para7: cuint, para8: cint, 
-                para9: cint, para10: Pcint, para11: Pcint, para12: Pcint, 
-                para13: Pcint): cint{.libx11.}
-proc XGetErrorDatabaseText*(para1: PDisplay, para2: cstring, para3: cstring, 
-                            para4: cstring, para5: cstring, para6: cint): cint{.
-    libx11.}
-proc XGetErrorText*(para1: PDisplay, para2: cint, para3: cstring, para4: cint): cint{.
-    libx11.}
-proc XGetFontProperty*(para1: PXFontStruct, para2: TAtom, para3: Pculong): TBool{.
-    libx11.}
-proc XGetGCValues*(para1: PDisplay, para2: TGC, para3: culong, para4: PXGCValues): TStatus{.
-    libx11.}
-proc XGetGeometry*(para1: PDisplay, para2: TDrawable, para3: PWindow, 
-                   para4: Pcint, para5: Pcint, para6: Pcuint, para7: Pcuint, 
-                   para8: Pcuint, para9: Pcuint): TStatus{.libx11.}
-proc XGetIconName*(para1: PDisplay, para2: TWindow, para3: PPchar): TStatus{.
-    libx11.}
-proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint{.
-    libx11.}
-proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint{.libx11.}
-proc XGetPointerControl*(para1: PDisplay, para2: Pcint, para3: Pcint, 
-                         para4: Pcint): cint{.libx11.}
-proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
-    libx11.}
-proc XGetScreenSaver*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint, 
-                      para5: Pcint): cint{.libx11.}
-proc XGetTransientForHint*(para1: PDisplay, para2: TWindow, para3: PWindow): TStatus{.
-    libx11.}
-proc XGetWindowProperty*(para1: PDisplay, para2: TWindow, para3: TAtom, 
-                         para4: clong, para5: clong, para6: TBool, para7: TAtom, 
-                         para8: PAtom, para9: Pcint, para10: Pculong, 
-                         para11: Pculong, para12: PPcuchar): cint{.libx11.}
-proc XGetWindowAttributes*(para1: PDisplay, para2: TWindow, 
-                           para3: PXWindowAttributes): TStatus{.libx11.}
-proc XGrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: TWindow, 
-                  para5: TBool, para6: cuint, para7: cint, para8: cint, 
-                  para9: TWindow, para10: TCursor): cint{.libx11.}
-proc XGrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: TWindow, 
-               para5: TBool, para6: cint, para7: cint): cint{.libx11.}
-proc XGrabKeyboard*(para1: PDisplay, para2: TWindow, para3: TBool, para4: cint, 
-                    para5: cint, para6: TTime): cint{.libx11.}
-proc XGrabPointer*(para1: PDisplay, para2: TWindow, para3: TBool, para4: cuint, 
-                   para5: cint, para6: cint, para7: TWindow, para8: TCursor, 
-                   para9: TTime): cint{.libx11.}
-proc XGrabServer*(para1: PDisplay): cint{.libx11.}
-proc XHeightMMOfScreen*(para1: PScreen): cint{.libx11.}
-proc XHeightOfScreen*(para1: PScreen): cint{.libx11.}
-proc XIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-               para4: TXPointer): cint{.libx11.}
-proc XImageByteOrder*(para1: PDisplay): cint{.libx11.}
-proc XInstallColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XKeysymToKeycode*(para1: PDisplay, para2: TKeySym): TKeyCode{.libx11.}
-proc XKillClient*(para1: PDisplay, para2: TXID): cint{.libx11.}
-proc XLookupColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                   para4: PXColor, para5: PXColor): TStatus{.libx11.}
-proc XLowerWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapRaised*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapSubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMapWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint{.libx11.}
-proc XMaxCmapsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XMinCmapsOfScreen*(para1: PScreen): cint{.libx11.}
-proc XMoveResizeWindow*(para1: PDisplay, para2: TWindow, para3: cint, 
-                        para4: cint, para5: cuint, para6: cuint): cint{.libx11.}
-proc XMoveWindow*(para1: PDisplay, para2: TWindow, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XNoOp*(para1: PDisplay): cint{.libx11.}
-proc XParseColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                  para4: PXColor): TStatus{.libx11.}
-proc XParseGeometry*(para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint, 
-                     para5: Pcuint): cint{.libx11.}
-proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XPeekIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, 
-                   para4: TXPointer): cint{.libx11.}
-proc XPending*(para1: PDisplay): cint{.libx11.}
-proc XPlanesOfScreen*(para1: PScreen): cint{.libx11.}
-proc XProtocolRevision*(para1: PDisplay): cint{.libx11.}
-proc XProtocolVersion*(para1: PDisplay): cint{.libx11.}
-proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.}
-proc XPutImage*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: PXImage, 
-                para5: cint, para6: cint, para7: cint, para8: cint, 
-                para9: cuint, para10: cuint): cint{.libx11.}
-proc XQLength*(para1: PDisplay): cint{.libx11.}
-proc XQueryBestCursor*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                       para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestSize*(para1: PDisplay, para2: cint, para3: TDrawable, 
-                     para4: cuint, para5: cuint, para6: Pcuint, para7: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestStipple*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                        para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryBestTile*(para1: PDisplay, para2: TDrawable, para3: cuint, 
-                     para4: cuint, para5: Pcuint, para6: Pcuint): TStatus{.
-    libx11.}
-proc XQueryColor*(para1: PDisplay, para2: TColormap, para3: PXColor): cint{.
-    libx11.}
-proc XQueryColors*(para1: PDisplay, para2: TColormap, para3: PXColor, 
-                   para4: cint): cint{.libx11.}
-proc XQueryExtension*(para1: PDisplay, para2: cstring, para3: Pcint, 
-                      para4: Pcint, para5: Pcint): TBool{.libx11.}
-  #?
-proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint{.libx11.}
-proc XQueryPointer*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                    para4: PWindow, para5: Pcint, para6: Pcint, para7: Pcint, 
-                    para8: Pcint, para9: Pcuint): TBool{.libx11.}
-proc XQueryTextExtents*(para1: PDisplay, para2: TXID, para3: cstring, 
-                        para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, 
-                        para8: PXCharStruct): cint{.libx11.}
-proc XQueryTextExtents16*(para1: PDisplay, para2: TXID, para3: PXChar2b, 
-                          para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, 
-                          para8: PXCharStruct): cint{.libx11.}
-proc XQueryTree*(para1: PDisplay, para2: TWindow, para3: PWindow, 
-                 para4: PWindow, para5: PPWindow, para6: Pcuint): TStatus{.
-    libx11.}
-proc XRaiseWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XReadBitmapFile*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                      para4: Pcuint, para5: Pcuint, para6: PPixmap, 
-                      para7: Pcint, para8: Pcint): cint{.libx11.}
-proc XReadBitmapFileData*(para1: cstring, para2: Pcuint, para3: Pcuint, 
-                          para4: PPcuchar, para5: Pcint, para6: Pcint): cint{.
-    libx11.}
-proc XRebindKeysym*(para1: PDisplay, para2: TKeySym, para3: PKeySym, 
-                    para4: cint, para5: Pcuchar, para6: cint): cint{.libx11.}
-proc XRecolorCursor*(para1: PDisplay, para2: TCursor, para3: PXColor, 
-                     para4: PXColor): cint{.libx11.}
-proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint{.libx11.}
-proc XRemoveFromSaveSet*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.}
-proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{.
-    libx11.}
-proc XReparentWindow*(para1: PDisplay, para2: TWindow, para3: TWindow, 
-                      para4: cint, para5: cint): cint{.libx11.}
-proc XResetScreenSaver*(para1: PDisplay): cint{.libx11.}
-proc XResizeWindow*(para1: PDisplay, para2: TWindow, para3: cuint, para4: cuint): cint{.
-    libx11.}
-proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint{.
-    libx11.}
-proc XRotateBuffers*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XRotateWindowProperties*(para1: PDisplay, para2: TWindow, para3: PAtom, 
-                              para4: cint, para5: cint): cint{.libx11.}
-proc XScreenCount*(para1: PDisplay): cint{.libx11.}
-proc XSelectInput*(para1: PDisplay, para2: TWindow, para3: clong): cint{.libx11.}
-proc XSendEvent*(para1: PDisplay, para2: TWindow, para3: TBool, para4: clong, 
-                 para5: PXEvent): TStatus{.libx11.}
-proc XSetAccessControl*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XSetArcMode*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetBackground*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetClipMask*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetClipOrigin*(para1: PDisplay, para2: TGC, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XSetClipRectangles*(para1: PDisplay, para2: TGC, para3: cint, para4: cint, 
-                         para5: PXRectangle, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint{.libx11.}
-proc XSetCommand*(para1: PDisplay, para2: TWindow, para3: PPchar, para4: cint): cint{.
-    libx11.}
-proc XSetDashes*(para1: PDisplay, para2: TGC, para3: cint, para4: cstring, 
-                 para5: cint): cint{.libx11.}
-proc XSetFillRule*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetFillStyle*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetFont*(para1: PDisplay, para2: TGC, para3: TFont): cint{.libx11.}
-proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint{.libx11.}
-proc XSetForeground*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetFunction*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetGraphicsExposures*(para1: PDisplay, para2: TGC, para3: TBool): cint{.
-    libx11.}
-proc XSetIconName*(para1: PDisplay, para2: TWindow, para3: cstring): cint{.
-    libx11.}
-proc XSetInputFocus*(para1: PDisplay, para2: TWindow, para3: cint, para4: TTime): cint{.
-    libx11.}
-proc XSetLineAttributes*(para1: PDisplay, para2: TGC, para3: cuint, para4: cint, 
-                         para5: cint, para6: cint): cint{.libx11.}
-proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint{.
-    libx11.}
-proc XSetPlaneMask*(para1: PDisplay, para2: TGC, para3: culong): cint{.libx11.}
-proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{.
-    libx11.}
-proc XSetScreenSaver*(para1: PDisplay, para2: cint, para3: cint, para4: cint, 
-                      para5: cint): cint{.libx11.}
-proc XSetSelectionOwner*(para1: PDisplay, para2: TAtom, para3: TWindow, 
-                         para4: TTime): cint{.libx11.}
-proc XSetState*(para1: PDisplay, para2: TGC, para3: culong, para4: culong, 
-                para5: cint, para6: culong): cint{.libx11.}
-proc XSetStipple*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetSubwindowMode*(para1: PDisplay, para2: TGC, para3: cint): cint{.libx11.}
-proc XSetTSOrigin*(para1: PDisplay, para2: TGC, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XSetTile*(para1: PDisplay, para2: TGC, para3: TPixmap): cint{.libx11.}
-proc XSetWindowBackground*(para1: PDisplay, para2: TWindow, para3: culong): cint{.
-    libx11.}
-proc XSetWindowBackgroundPixmap*(para1: PDisplay, para2: TWindow, para3: TPixmap): cint{.
-    libx11.}
-proc XSetWindowBorder*(para1: PDisplay, para2: TWindow, para3: culong): cint{.
-    libx11.}
-proc XSetWindowBorderPixmap*(para1: PDisplay, para2: TWindow, para3: TPixmap): cint{.
-    libx11.}
-proc XSetWindowBorderWidth*(para1: PDisplay, para2: TWindow, para3: cuint): cint{.
-    libx11.}
-proc XSetWindowColormap*(para1: PDisplay, para2: TWindow, para3: TColormap): cint{.
-    libx11.}
-proc XStoreBuffer*(para1: PDisplay, para2: cstring, para3: cint, para4: cint): cint{.
-    libx11.}
-proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint{.libx11.}
-proc XStoreColor*(para1: PDisplay, para2: TColormap, para3: PXColor): cint{.
-    libx11.}
-proc XStoreColors*(para1: PDisplay, para2: TColormap, para3: PXColor, 
-                   para4: cint): cint{.libx11.}
-proc XStoreName*(para1: PDisplay, para2: TWindow, para3: cstring): cint{.libx11.}
-proc XStoreNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring, 
-                       para4: culong, para5: cint): cint{.libx11.}
-proc XSync*(para1: PDisplay, para2: TBool): cint{.libx11.}
-proc XTextExtents*(para1: PXFontStruct, para2: cstring, para3: cint, 
-                   para4: Pcint, para5: Pcint, para6: Pcint, para7: PXCharStruct): cint{.
-    libx11.}
-proc XTextExtents16*(para1: PXFontStruct, para2: PXChar2b, para3: cint, 
-                     para4: Pcint, para5: Pcint, para6: Pcint, 
-                     para7: PXCharStruct): cint{.libx11.}
-proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint{.libx11.}
-proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint{.
-    libx11.}
-proc XTranslateCoordinates*(para1: PDisplay, para2: TWindow, para3: TWindow, 
-                            para4: cint, para5: cint, para6: Pcint, 
-                            para7: Pcint, para8: PWindow): TBool{.libx11.}
-proc XUndefineCursor*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XUngrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: TWindow): cint{.
-    libx11.}
-proc XUngrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: TWindow): cint{.
-    libx11.}
-proc XUngrabKeyboard*(para1: PDisplay, para2: TTime): cint{.libx11.}
-proc XUngrabPointer*(para1: PDisplay, para2: TTime): cint{.libx11.}
-proc XUngrabServer*(para1: PDisplay): cint{.libx11.}
-proc XUninstallColormap*(para1: PDisplay, para2: TColormap): cint{.libx11.}
-proc XUnloadFont*(para1: PDisplay, para2: TFont): cint{.libx11.}
-proc XUnmapSubwindows*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XUnmapWindow*(para1: PDisplay, para2: TWindow): cint{.libx11.}
-proc XVendorRelease*(para1: PDisplay): cint{.libx11.}
-proc XWarpPointer*(para1: PDisplay, para2: TWindow, para3: TWindow, para4: cint, 
-                   para5: cint, para6: cuint, para7: cuint, para8: cint, 
-                   para9: cint): cint{.libx11.}
-proc XWidthMMOfScreen*(para1: PScreen): cint{.libx11.}
-proc XWidthOfScreen*(para1: PScreen): cint{.libx11.}
-proc XWindowEvent*(para1: PDisplay, para2: TWindow, para3: clong, para4: PXEvent): cint{.
-    libx11.}
-proc XWriteBitmapFile*(para1: PDisplay, para2: cstring, para3: TPixmap, 
-                       para4: cuint, para5: cuint, para6: cint, para7: cint): cint{.
-    libx11.}
-proc XSupportsLocale*(): TBool{.libx11.}
-proc XSetLocaleModifiers*(para1: cstring): cstring{.libx11.}
-proc XOpenOM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, 
-              para4: cstring): TXOM{.libx11.}
-proc XCloseOM*(para1: TXOM): TStatus{.libx11.}
-proc XSetOMValues*(para1: TXOM): cstring{.varargs, libx11.}
-proc XGetOMValues*(para1: TXOM): cstring{.varargs, libx11.}
-proc XDisplayOfOM*(para1: TXOM): PDisplay{.libx11.}
-proc XLocaleOfOM*(para1: TXOM): cstring{.libx11.}
-proc XCreateOC*(para1: TXOM): TXOC{.varargs, libx11.}
-proc XDestroyOC*(para1: TXOC){.libx11.}
-proc XOMOfOC*(para1: TXOC): TXOM{.libx11.}
-proc XSetOCValues*(para1: TXOC): cstring{.varargs, libx11.}
-proc XGetOCValues*(para1: TXOC): cstring{.varargs, libx11.}
-proc XCreateFontSet*(para1: PDisplay, para2: cstring, para3: PPPchar, 
-                     para4: Pcint, para5: PPchar): TXFontSet{.libx11.}
-proc XFreeFontSet*(para1: PDisplay, para2: TXFontSet){.libx11.}
-proc XFontsOfFontSet*(para1: TXFontSet, para2: PPPXFontStruct, para3: PPPchar): cint{.
-    libx11.}
-proc XBaseFontNameListOfFontSet*(para1: TXFontSet): cstring{.libx11.}
-proc XLocaleOfFontSet*(para1: TXFontSet): cstring{.libx11.}
-proc XContextDependentDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XDirectionalDependentDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XContextualDrawing*(para1: TXFontSet): TBool{.libx11.}
-proc XExtentsOfFontSet*(para1: TXFontSet): PXFontSetExtents{.libx11.}
-proc XmbTextEscapement*(para1: TXFontSet, para2: cstring, para3: cint): cint{.
-    libx11.}
-proc XwcTextEscapement*(para1: TXFontSet, para2: PWideChar, para3: cint): cint{.
-    libx11.}
-proc Xutf8TextEscapement*(para1: TXFontSet, para2: cstring, para3: cint): cint{.
-    libx11.}
-proc XmbTextExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc XwcTextExtents*(para1: TXFontSet, para2: PWideChar, para3: cint, 
-                     para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc Xutf8TextExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                       para4: PXRectangle, para5: PXRectangle): cint{.libx11.}
-proc XmbTextPerCharExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                            para4: PXRectangle, para5: PXRectangle, para6: cint, 
-                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): TStatus{.
-    libx11.}
-proc XwcTextPerCharExtents*(para1: TXFontSet, para2: PWideChar, para3: cint, 
-                            para4: PXRectangle, para5: PXRectangle, para6: cint, 
-                            para7: Pcint, para8: PXRectangle, para9: PXRectangle): TStatus{.
-    libx11.}
-proc Xutf8TextPerCharExtents*(para1: TXFontSet, para2: cstring, para3: cint, 
-                              para4: PXRectangle, para5: PXRectangle, 
-                              para6: cint, para7: Pcint, para8: PXRectangle, 
-                              para9: PXRectangle): TStatus{.libx11.}
-proc XmbDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
-proc XwcDrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                  para5: cint, para6: PXwcTextItem, para7: cint){.libx11.}
-proc Xutf8DrawText*(para1: PDisplay, para2: TDrawable, para3: TGC, para4: cint, 
-                    para5: cint, para6: PXmbTextItem, para7: cint){.libx11.}
-proc XmbDrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                    para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                    para8: cint){.libx11.}
-proc XwcDrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                    para4: TGC, para5: cint, para6: cint, para7: PWideChar, 
-                    para8: cint){.libx11.}
-proc Xutf8DrawString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                      para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                      para8: cint){.libx11.}
-proc XmbDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                         para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                         para8: cint){.libx11.}
-proc XwcDrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                         para4: TGC, para5: cint, para6: cint, para7: PWideChar, 
-                         para8: cint){.libx11.}
-proc Xutf8DrawImageString*(para1: PDisplay, para2: TDrawable, para3: TXFontSet, 
-                           para4: TGC, para5: cint, para6: cint, para7: cstring, 
-                           para8: cint){.libx11.}
-proc XOpenIM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, 
-              para4: cstring): TXIM{.libx11.}
-proc XCloseIM*(para1: TXIM): TStatus{.libx11.}
-proc XGetIMValues*(para1: TXIM): cstring{.varargs, libx11.}
-proc XSetIMValues*(para1: TXIM): cstring{.varargs, libx11.}
-proc XDisplayOfIM*(para1: TXIM): PDisplay{.libx11.}
-proc XLocaleOfIM*(para1: TXIM): cstring{.libx11.}
-proc XCreateIC*(para1: TXIM): TXIC{.varargs, libx11.}
-proc XDestroyIC*(para1: TXIC){.libx11.}
-proc XSetICFocus*(para1: TXIC){.libx11.}
-proc XUnsetICFocus*(para1: TXIC){.libx11.}
-proc XwcResetIC*(para1: TXIC): PWideChar{.libx11.}
-proc XmbResetIC*(para1: TXIC): cstring{.libx11.}
-proc Xutf8ResetIC*(para1: TXIC): cstring{.libx11.}
-proc XSetICValues*(para1: TXIC): cstring{.varargs, libx11.}
-proc XGetICValues*(para1: TXIC): cstring{.varargs, libx11.}
-proc XIMOfIC*(para1: TXIC): TXIM{.libx11.}
-proc XFilterEvent*(para1: PXEvent, para2: TWindow): TBool{.libx11.}
-proc XmbLookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: cstring, 
-                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
-proc XwcLookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: PWideChar, 
-                      para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.}
-proc Xutf8LookupString*(para1: TXIC, para2: PXKeyPressedEvent, para3: cstring, 
-                        para4: cint, para5: PKeySym, para6: PStatus): cint{.
-    libx11.}
-proc XVaCreateNestedList*(unused: cint): TXVaNestedList{.varargs, libx11.}
-proc XRegisterIMInstantiateCallback*(para1: PDisplay, para2: PXrmHashBucketRec, 
-                                     para3: cstring, para4: cstring, 
-                                     para5: TXIDProc, para6: TXPointer): TBool{.
-    libx11.}
-proc XUnregisterIMInstantiateCallback*(para1: PDisplay, 
-                                       para2: PXrmHashBucketRec, para3: cstring, 
-                                       para4: cstring, para5: TXIDProc, 
-                                       para6: TXPointer): TBool{.libx11.}
-type 
-  TXConnectionWatchProc* = proc (para1: PDisplay, para2: TXPointer, para3: cint, 
-                                 para4: TBool, para5: PXPointer){.cdecl.}
-
-proc XInternalConnectionNumbers*(para1: PDisplay, para2: PPcint, para3: Pcint): TStatus{.
-    libx11.}
-proc XProcessInternalConnection*(para1: PDisplay, para2: cint){.libx11.}
-proc XAddConnectionWatch*(para1: PDisplay, para2: TXConnectionWatchProc, 
-                          para3: TXPointer): TStatus{.libx11.}
-proc XRemoveConnectionWatch*(para1: PDisplay, para2: TXConnectionWatchProc, 
-                             para3: TXPointer){.libx11.}
-proc XSetAuthorization*(para1: cstring, para2: cint, para3: cstring, para4: cint){.
-    libx11.}
-  #
-  #  _Xmbtowc?
-  #  _Xwctomb?
-  #
-when defined(MACROS): 
-  proc ConnectionNumber*(dpy: PDisplay): cint
-  proc RootWindow*(dpy: PDisplay, scr: cint): TWindow
-  proc DefaultScreen*(dpy: PDisplay): cint
-  proc DefaultRootWindow*(dpy: PDisplay): TWindow
-  proc DefaultVisual*(dpy: PDisplay, scr: cint): PVisual
-  proc DefaultGC*(dpy: PDisplay, scr: cint): TGC
-  proc BlackPixel*(dpy: PDisplay, scr: cint): culong
-  proc WhitePixel*(dpy: PDisplay, scr: cint): culong
-  proc QLength*(dpy: PDisplay): cint
-  proc DisplayWidth*(dpy: PDisplay, scr: cint): cint
-  proc DisplayHeight*(dpy: PDisplay, scr: cint): cint
-  proc DisplayWidthMM*(dpy: PDisplay, scr: cint): cint
-  proc DisplayHeightMM*(dpy: PDisplay, scr: cint): cint
-  proc DisplayPlanes*(dpy: PDisplay, scr: cint): cint
-  proc DisplayCells*(dpy: PDisplay, scr: cint): cint
-  proc ScreenCount*(dpy: PDisplay): cint
-  proc ServerVendor*(dpy: PDisplay): cstring
-  proc ProtocolVersion*(dpy: PDisplay): cint
-  proc ProtocolRevision*(dpy: PDisplay): cint
-  proc VendorRelease*(dpy: PDisplay): cint
-  proc DisplayString*(dpy: PDisplay): cstring
-  proc DefaultDepth*(dpy: PDisplay, scr: cint): cint
-  proc DefaultColormap*(dpy: PDisplay, scr: cint): TColormap
-  proc BitmapUnit*(dpy: PDisplay): cint
-  proc BitmapBitOrder*(dpy: PDisplay): cint
-  proc BitmapPad*(dpy: PDisplay): cint
-  proc ImageByteOrder*(dpy: PDisplay): cint
-  proc NextRequest*(dpy: PDisplay): culong
-  proc LastKnownRequestProcessed*(dpy: PDisplay): culong
-  proc ScreenOfDisplay*(dpy: PDisplay, scr: cint): PScreen
-  proc DefaultScreenOfDisplay*(dpy: PDisplay): PScreen
-  proc DisplayOfScreen*(s: PScreen): PDisplay
-  proc RootWindowOfScreen*(s: PScreen): TWindow
-  proc BlackPixelOfScreen*(s: PScreen): culong
-  proc WhitePixelOfScreen*(s: PScreen): culong
-  proc DefaultColormapOfScreen*(s: PScreen): TColormap
-  proc DefaultDepthOfScreen*(s: PScreen): cint
-  proc DefaultGCOfScreen*(s: PScreen): TGC
-  proc DefaultVisualOfScreen*(s: PScreen): PVisual
-  proc WidthOfScreen*(s: PScreen): cint
-  proc HeightOfScreen*(s: PScreen): cint
-  proc WidthMMOfScreen*(s: PScreen): cint
-  proc HeightMMOfScreen*(s: PScreen): cint
-  proc PlanesOfScreen*(s: PScreen): cint
-  proc CellsOfScreen*(s: PScreen): cint
-  proc MinCmapsOfScreen*(s: PScreen): cint
-  proc MaxCmapsOfScreen*(s: PScreen): cint
-  proc DoesSaveUnders*(s: PScreen): TBool
-  proc DoesBackingStore*(s: PScreen): cint
-  proc EventMaskOfScreen*(s: PScreen): clong
-  proc XAllocID*(dpy: PDisplay): TXID
-# implementation
-
-when defined(MACROS): 
-  proc ConnectionNumber(dpy: PDisplay): cint = 
-    ConnectionNumber = (PXPrivDisplay(dpy))[] .fd
-
-  proc RootWindow(dpy: PDisplay, scr: cint): TWindow = 
-    RootWindow = (ScreenOfDisplay(dpy, scr))[] .root
-
-  proc DefaultScreen(dpy: PDisplay): cint = 
-    DefaultScreen = (PXPrivDisplay(dpy))[] .default_screen
-
-  proc DefaultRootWindow(dpy: PDisplay): TWindow = 
-    DefaultRootWindow = (ScreenOfDisplay(dpy, DefaultScreen(dpy)))[] .root
-
-  proc DefaultVisual(dpy: PDisplay, scr: cint): PVisual = 
-    DefaultVisual = (ScreenOfDisplay(dpy, scr))[] .root_visual
-
-  proc DefaultGC(dpy: PDisplay, scr: cint): TGC = 
-    DefaultGC = (ScreenOfDisplay(dpy, scr))[] .default_gc
-
-  proc BlackPixel(dpy: PDisplay, scr: cint): culong = 
-    BlackPixel = (ScreenOfDisplay(dpy, scr))[] .black_pixel
-
-  proc WhitePixel(dpy: PDisplay, scr: cint): culong = 
-    WhitePixel = (ScreenOfDisplay(dpy, scr))[] .white_pixel
-
-  proc QLength(dpy: PDisplay): cint = 
-    QLength = (PXPrivDisplay(dpy))[] .qlen
-
-  proc DisplayWidth(dpy: PDisplay, scr: cint): cint = 
-    DisplayWidth = (ScreenOfDisplay(dpy, scr))[] .width
-
-  proc DisplayHeight(dpy: PDisplay, scr: cint): cint = 
-    DisplayHeight = (ScreenOfDisplay(dpy, scr))[] .height
-
-  proc DisplayWidthMM(dpy: PDisplay, scr: cint): cint = 
-    DisplayWidthMM = (ScreenOfDisplay(dpy, scr))[] .mwidth
-
-  proc DisplayHeightMM(dpy: PDisplay, scr: cint): cint = 
-    DisplayHeightMM = (ScreenOfDisplay(dpy, scr))[] .mheight
-
-  proc DisplayPlanes(dpy: PDisplay, scr: cint): cint = 
-    DisplayPlanes = (ScreenOfDisplay(dpy, scr))[] .root_depth
-
-  proc DisplayCells(dpy: PDisplay, scr: cint): cint = 
-    DisplayCells = (DefaultVisual(dpy, scr))[] .map_entries
-
-  proc ScreenCount(dpy: PDisplay): cint = 
-    ScreenCount = (PXPrivDisplay(dpy))[] .nscreens
-
-  proc ServerVendor(dpy: PDisplay): cstring = 
-    ServerVendor = (PXPrivDisplay(dpy))[] .vendor
-
-  proc ProtocolVersion(dpy: PDisplay): cint = 
-    ProtocolVersion = (PXPrivDisplay(dpy))[] .proto_major_version
-
-  proc ProtocolRevision(dpy: PDisplay): cint = 
-    ProtocolRevision = (PXPrivDisplay(dpy))[] .proto_minor_version
-
-  proc VendorRelease(dpy: PDisplay): cint = 
-    VendorRelease = (PXPrivDisplay(dpy))[] .release
-
-  proc DisplayString(dpy: PDisplay): cstring = 
-    DisplayString = (PXPrivDisplay(dpy))[] .display_name
-
-  proc DefaultDepth(dpy: PDisplay, scr: cint): cint = 
-    DefaultDepth = (ScreenOfDisplay(dpy, scr))[] .root_depth
-
-  proc DefaultColormap(dpy: PDisplay, scr: cint): TColormap = 
-    DefaultColormap = (ScreenOfDisplay(dpy, scr))[] .cmap
-
-  proc BitmapUnit(dpy: PDisplay): cint = 
-    BitmapUnit = (PXPrivDisplay(dpy))[] .bitmap_unit
-
-  proc BitmapBitOrder(dpy: PDisplay): cint = 
-    BitmapBitOrder = (PXPrivDisplay(dpy))[] .bitmap_bit_order
-
-  proc BitmapPad(dpy: PDisplay): cint = 
-    BitmapPad = (PXPrivDisplay(dpy))[] .bitmap_pad
-
-  proc ImageByteOrder(dpy: PDisplay): cint = 
-    ImageByteOrder = (PXPrivDisplay(dpy))[] .byte_order
-
-  proc NextRequest(dpy: PDisplay): culong = 
-    NextRequest = ((PXPrivDisplay(dpy))[] .request) + 1
-
-  proc LastKnownRequestProcessed(dpy: PDisplay): culong = 
-    LastKnownRequestProcessed = (PXPrivDisplay(dpy))[] .last_request_read
-
-  proc ScreenOfDisplay(dpy: PDisplay, scr: cint): PScreen = 
-    ScreenOfDisplay = addr((((PXPrivDisplay(dpy))[] .screens)[scr]))
-
-  proc DefaultScreenOfDisplay(dpy: PDisplay): PScreen = 
-    DefaultScreenOfDisplay = ScreenOfDisplay(dpy, DefaultScreen(dpy))
-
-  proc DisplayOfScreen(s: PScreen): PDisplay = 
-    DisplayOfScreen = s[] .display
-
-  proc RootWindowOfScreen(s: PScreen): TWindow = 
-    RootWindowOfScreen = s[] .root
-
-  proc BlackPixelOfScreen(s: PScreen): culong = 
-    BlackPixelOfScreen = s[] .black_pixel
-
-  proc WhitePixelOfScreen(s: PScreen): culong = 
-    WhitePixelOfScreen = s[] .white_pixel
-
-  proc DefaultColormapOfScreen(s: PScreen): TColormap = 
-    DefaultColormapOfScreen = s[] .cmap
-
-  proc DefaultDepthOfScreen(s: PScreen): cint = 
-    DefaultDepthOfScreen = s[] .root_depth
-
-  proc DefaultGCOfScreen(s: PScreen): TGC = 
-    DefaultGCOfScreen = s[] .default_gc
-
-  proc DefaultVisualOfScreen(s: PScreen): PVisual = 
-    DefaultVisualOfScreen = s[] .root_visual
-
-  proc WidthOfScreen(s: PScreen): cint = 
-    WidthOfScreen = s[] .width
-
-  proc HeightOfScreen(s: PScreen): cint = 
-    HeightOfScreen = s[] .height
-
-  proc WidthMMOfScreen(s: PScreen): cint = 
-    WidthMMOfScreen = s[] .mwidth
-
-  proc HeightMMOfScreen(s: PScreen): cint = 
-    HeightMMOfScreen = s[] .mheight
-
-  proc PlanesOfScreen(s: PScreen): cint = 
-    PlanesOfScreen = s[] .root_depth
-
-  proc CellsOfScreen(s: PScreen): cint = 
-    CellsOfScreen = (DefaultVisualOfScreen(s))[] .map_entries
-
-  proc MinCmapsOfScreen(s: PScreen): cint = 
-    MinCmapsOfScreen = s[] .min_maps
-
-  proc MaxCmapsOfScreen(s: PScreen): cint = 
-    MaxCmapsOfScreen = s[] .max_maps
-
-  proc DoesSaveUnders(s: PScreen): TBool = 
-    DoesSaveUnders = s[] .save_unders
-
-  proc DoesBackingStore(s: PScreen): cint = 
-    DoesBackingStore = s[] .backing_store
-
-  proc EventMaskOfScreen(s: PScreen): clong = 
-    EventMaskOfScreen = s[] .root_input_mask
-
-  proc XAllocID(dpy: PDisplay): TXID = 
-    XAllocID = (PXPrivDisplay(dpy))[] .resource_alloc(dpy)
diff --git a/lib/wrappers/x11/xrandr.nim b/lib/wrappers/x11/xrandr.nim
deleted file mode 100644
index ee6f1705b..000000000
--- a/lib/wrappers/x11/xrandr.nim
+++ /dev/null
@@ -1,194 +0,0 @@
-#
-#  $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $
-# 
-#  Copyright (C) 2000 Compaq Computer Corporation, Inc.
-#  Copyright (C) 2002 Hewlett-Packard Company, Inc.
-# 
-#  Permission to use, copy, modify, distribute, and sell this software and its
-#  documentation for any purpose is hereby granted without fee, provided that
-#  the above copyright notice appear in all copies and that both that
-#  copyright notice and this permission notice appear in supporting
-#  documentation, and that the name of Compaq not be used in advertising or
-#  publicity pertaining to distribution of the software without specific,
-#  written prior permission.  HP makes no representations about the
-#  suitability of this software for any purpose.  It is provided "as is"
-#  without express or implied warranty.
-# 
-#  HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
-#  BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-#  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-#  OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
-#  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# 
-#  Author:  Jim Gettys, HP Labs, HP.
-#
-
-import 
-  x, xlib
-
-const 
-  libXrandr* = "libXrandr.so"
-  
-# * $XFree86: xc/include/extensions/randr.h,v 1.4 2001/11/24 07:24:58 keithp Exp $
-# *
-# * Copyright (C) 2000, Compaq Computer Corporation, 
-# * Copyright (C) 2002, Hewlett Packard, Inc.
-# *
-# * Permission to use, copy, modify, distribute, and sell this software and its
-# * documentation for any purpose is hereby granted without fee, provided that
-# * the above copyright notice appear in all copies and that both that
-# * copyright notice and this permission notice appear in supporting
-# * documentation, and that the name of Compaq or HP not be used in advertising
-# * or publicity pertaining to distribution of the software without specific,
-# * written prior permission.  HP makes no representations about the
-# * suitability of this software for any purpose.  It is provided "as is"
-# * without express or implied warranty.
-# *
-# * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
-# * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
-# * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-# * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
-# * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# *
-# * Author:  Jim Gettys, HP Labs, Hewlett-Packard, Inc.
-# *
-
-type 
-  PRotation* = ptr TRotation
-  TRotation* = cushort
-  PSizeID* = ptr TSizeID
-  TSizeID* = cushort
-  PSubpixelOrder* = ptr TSubpixelOrder
-  TSubpixelOrder* = cushort
-
-const 
-  RANDR_NAME* = "RANDR"
-  RANDR_MAJOR* = 1
-  RANDR_MINOR* = 1
-  RRNumberErrors* = 0
-  RRNumberEvents* = 1
-  constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediately 
-  X_RROldGetScreenInfo* = 1
-  X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request id 
-  constX_RRSetScreenConfig* = 2
-  X_RROldScreenChangeSelectInput* = 3 # 3 used to be ScreenChangeSelectInput; deprecated 
-  constX_RRSelectInput* = 4
-  constX_RRGetScreenInfo* = 5      # used in XRRSelectInput 
-  RRScreenChangeNotifyMask* = 1 shl 0
-  RRScreenChangeNotify* = 0   # used in the rotation field; rotation and reflection in 0.1 proto. 
-  RR_Rotate_0* = 1
-  RR_Rotate_90* = 2
-  RR_Rotate_180* = 4
-  RR_Rotate_270* = 8          # new in 1.0 protocol, to allow reflection of screen 
-  RR_Reflect_X* = 16
-  RR_Reflect_Y* = 32
-  RRSetConfigSuccess* = 0
-  RRSetConfigInvalidConfigTime* = 1
-  RRSetConfigInvalidTime* = 2
-  RRSetConfigFailed* = 3
-
-type 
-  PXRRScreenSize* = ptr TXRRScreenSize
-  TXRRScreenSize*{.final.} = object  #
-                                     #   Events.
-                                     #
-    width*, height*: cint
-    mwidth*, mheight*: cint
-
-  TXRRScreenChangeNotifyEvent*{.final.} = object  # internal representation is private to the library 
-    typ*: cint                # event base 
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    window*: TWindow          # window which selected for this event 
-    root*: TWindow            # Root window for changed screen 
-    timestamp*: TTime         # when the screen change occurred 
-    config_timestamp*: TTime  # when the last configuration change 
-    size_index*: TSizeID
-    subpixel_order*: TSubpixelOrder
-    rotation*: TRotation
-    width*: cint
-    height*: cint
-    mwidth*: cint
-    mheight*: cint
-
-  PXRRScreenConfiguration* = ptr TXRRScreenConfiguration
-  TXRRScreenConfiguration*{.final.} = object 
-
-proc XRRQueryExtension*(dpy: PDisplay, event_basep, error_basep: Pcint): TBool{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRQueryVersion*(dpy: PDisplay, major_versionp: Pcint, 
-                      minor_versionp: Pcint): TStatus{.cdecl, dynlib: libXrandr, 
-    importc.}
-proc XRRGetScreenInfo*(dpy: PDisplay, draw: TDrawable): PXRRScreenConfiguration{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRFreeScreenConfigInfo*(config: PXRRScreenConfiguration){.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  Note that screen configuration changes are only permitted if the client can
-  #  prove it has up to date configuration information.  We are trying to
-  #  insist that it become possible for screens to change dynamically, so
-  #  we want to ensure the client knows what it is talking about when requesting
-  #  changes.
-  #
-proc XRRSetScreenConfig*(dpy: PDisplay, config: PXRRScreenConfiguration, 
-                         draw: TDrawable, size_index: cint, rotation: TRotation, 
-                         timestamp: TTime): TStatus{.cdecl, dynlib: libXrandr, 
-    importc.}
-  # added in v1.1, sorry for the lame name 
-proc XRRSetScreenConfigAndRate*(dpy: PDisplay, config: PXRRScreenConfiguration, 
-                                draw: TDrawable, size_index: cint, 
-                                rotation: TRotation, rate: cshort, 
-                                timestamp: TTime): TStatus{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigRotations*(config: PXRRScreenConfiguration, 
-                         current_rotation: PRotation): TRotation{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigTimes*(config: PXRRScreenConfiguration, config_timestamp: PTime): TTime{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigSizes*(config: PXRRScreenConfiguration, nsizes: Pcint): PXRRScreenSize{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigRates*(config: PXRRScreenConfiguration, sizeID: cint, 
-                     nrates: Pcint): ptr int16{.cdecl, dynlib: libXrandr, importc.}
-proc XRRConfigCurrentConfiguration*(config: PXRRScreenConfiguration, 
-                                    rotation: PRotation): TSizeID{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRConfigCurrentRate*(config: PXRRScreenConfiguration): cshort{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRRootToScreen*(dpy: PDisplay, root: TWindow): cint{.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  returns the screen configuration for the specified screen; does a lazy
-  #  evalution to delay getting the information, and caches the result.
-  #  These routines should be used in preference to XRRGetScreenInfo
-  #  to avoid unneeded round trips to the X server.  These are new
-  #  in protocol version 0.1.
-  #
-proc XRRScreenConfig*(dpy: PDisplay, screen: cint): PXRRScreenConfiguration{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRConfig*(screen: PScreen): PXRRScreenConfiguration{.cdecl, 
-    dynlib: libXrandr, importc.}
-proc XRRSelectInput*(dpy: PDisplay, window: TWindow, mask: cint){.cdecl, 
-    dynlib: libXrandr, importc.}
-  #
-  #  the following are always safe to call, even if RandR is not implemented 
-  #  on a screen 
-  #
-proc XRRRotations*(dpy: PDisplay, screen: cint, current_rotation: PRotation): TRotation{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRSizes*(dpy: PDisplay, screen: cint, nsizes: Pcint): PXRRScreenSize{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRRates*(dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint): ptr int16{.
-    cdecl, dynlib: libXrandr, importc.}
-proc XRRTimes*(dpy: PDisplay, screen: cint, config_timestamp: PTime): TTime{.
-    cdecl, dynlib: libXrandr, importc.}
-  #
-  #  intended to take RRScreenChangeNotify,  or 
-  #  ConfigureNotify (on the root window)
-  #  returns 1 if it is an event type it understands, 0 if not
-  #
-proc XRRUpdateConfiguration*(event: PXEvent): cint{.cdecl, dynlib: libXrandr, 
-    importc.}
-# implementation
diff --git a/lib/wrappers/x11/xrender.nim b/lib/wrappers/x11/xrender.nim
deleted file mode 100644
index c4b2b364d..000000000
--- a/lib/wrappers/x11/xrender.nim
+++ /dev/null
@@ -1,241 +0,0 @@
-
-import 
-  x, xlib
-
-when defined(use_pkg_config) or defined(use_pkg_config_static):
-    {.pragma: libxrender, cdecl, importc.}
-    when defined(use_pkg_config):
-        {.passl: gorge("pkg-config xrender --libs").}
-    else:
-        {.passl: gorge("pkg-config xrender --static --libs").}
-else:
-    when defined(macosx):
-        const 
-          libXrender* = "libXrender.dylib"
-    else:
-        const 
-          libXrender* = "libXrender.so"
-
-    
-    {.pragma: libxrender, dynlib: libXrender, cdecl, importc.}
-#const 
-#  libXrender* = "libXrender.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xrender.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xrender.h
-#
-
-type 
-  PGlyph* = ptr TGlyph
-  TGlyph* = int32
-  PGlyphSet* = ptr TGlyphSet
-  TGlyphSet* = int32
-  PPicture* = ptr TPicture
-  TPicture* = int32
-  PPictFormat* = ptr TPictFormat
-  TPictFormat* = int32
-
-const 
-  RENDER_NAME* = "RENDER"
-  RENDER_MAJOR* = 0
-  RENDER_MINOR* = 0
-  constX_RenderQueryVersion* = 0
-  X_RenderQueryPictFormats* = 1
-  X_RenderQueryPictIndexValues* = 2
-  X_RenderQueryDithers* = 3
-  constX_RenderCreatePicture* = 4
-  constX_RenderChangePicture* = 5
-  X_RenderSetPictureClipRectangles* = 6
-  constX_RenderFreePicture* = 7
-  constX_RenderComposite* = 8
-  X_RenderScale* = 9
-  X_RenderTrapezoids* = 10
-  X_RenderTriangles* = 11
-  X_RenderTriStrip* = 12
-  X_RenderTriFan* = 13
-  X_RenderColorTrapezoids* = 14
-  X_RenderColorTriangles* = 15
-  X_RenderTransform* = 16
-  constX_RenderCreateGlyphSet* = 17
-  constX_RenderReferenceGlyphSet* = 18
-  constX_RenderFreeGlyphSet* = 19
-  constX_RenderAddGlyphs* = 20
-  constX_RenderAddGlyphsFromPicture* = 21
-  constX_RenderFreeGlyphs* = 22
-  constX_RenderCompositeGlyphs8* = 23
-  constX_RenderCompositeGlyphs16* = 24
-  constX_RenderCompositeGlyphs32* = 25
-  BadPictFormat* = 0
-  BadPicture* = 1
-  BadPictOp* = 2
-  BadGlyphSet* = 3
-  BadGlyph* = 4
-  RenderNumberErrors* = BadGlyph + 1
-  PictTypeIndexed* = 0
-  PictTypeDirect* = 1
-  PictOpClear* = 0
-  PictOpSrc* = 1
-  PictOpDst* = 2
-  PictOpOver* = 3
-  PictOpOverReverse* = 4
-  PictOpIn* = 5
-  PictOpInReverse* = 6
-  PictOpOut* = 7
-  PictOpOutReverse* = 8
-  PictOpAtop* = 9
-  PictOpAtopReverse* = 10
-  PictOpXor* = 11
-  PictOpAdd* = 12
-  PictOpSaturate* = 13
-  PictOpMaximum* = 13
-  PolyEdgeSharp* = 0
-  PolyEdgeSmooth* = 1
-  PolyModePrecise* = 0
-  PolyModeImprecise* = 1
-  CPRepeat* = 1 shl 0
-  CPAlphaMap* = 1 shl 1
-  CPAlphaXOrigin* = 1 shl 2
-  CPAlphaYOrigin* = 1 shl 3
-  CPClipXOrigin* = 1 shl 4
-  CPClipYOrigin* = 1 shl 5
-  CPClipMask* = 1 shl 6
-  CPGraphicsExposure* = 1 shl 7
-  CPSubwindowMode* = 1 shl 8
-  CPPolyEdge* = 1 shl 9
-  CPPolyMode* = 1 shl 10
-  CPDither* = 1 shl 11
-  CPLastBit* = 11
-
-type 
-  PXRenderDirectFormat* = ptr TXRenderDirectFormat
-  TXRenderDirectFormat*{.final.} = object 
-    red*: int16
-    redMask*: int16
-    green*: int16
-    greenMask*: int16
-    blue*: int16
-    blueMask*: int16
-    alpha*: int16
-    alphaMask*: int16
-
-  PXRenderPictFormat* = ptr TXRenderPictFormat
-  TXRenderPictFormat*{.final.} = object 
-    id*: TPictFormat
-    thetype*: int32
-    depth*: int32
-    direct*: TXRenderDirectFormat
-    colormap*: TColormap
-
-
-const 
-  PictFormatID* = 1 shl 0
-  PictFormatType* = 1 shl 1
-  PictFormatDepth* = 1 shl 2
-  PictFormatRed* = 1 shl 3
-  PictFormatRedMask* = 1 shl 4
-  PictFormatGreen* = 1 shl 5
-  PictFormatGreenMask* = 1 shl 6
-  PictFormatBlue* = 1 shl 7
-  PictFormatBlueMask* = 1 shl 8
-  PictFormatAlpha* = 1 shl 9
-  PictFormatAlphaMask* = 1 shl 10
-  PictFormatColormap* = 1 shl 11
-
-type 
-  PXRenderVisual* = ptr TXRenderVisual
-  TXRenderVisual*{.final.} = object 
-    visual*: PVisual
-    format*: PXRenderPictFormat
-
-  PXRenderDepth* = ptr TXRenderDepth
-  TXRenderDepth*{.final.} = object 
-    depth*: int32
-    nvisuals*: int32
-    visuals*: PXRenderVisual
-
-  PXRenderScreen* = ptr TXRenderScreen
-  TXRenderScreen*{.final.} = object 
-    depths*: PXRenderDepth
-    ndepths*: int32
-    fallback*: PXRenderPictFormat
-
-  PXRenderInfo* = ptr TXRenderInfo
-  TXRenderInfo*{.final.} = object 
-    format*: PXRenderPictFormat
-    nformat*: int32
-    screen*: PXRenderScreen
-    nscreen*: int32
-    depth*: PXRenderDepth
-    ndepth*: int32
-    visual*: PXRenderVisual
-    nvisual*: int32
-
-  PXRenderPictureAttributes* = ptr TXRenderPictureAttributes
-  TXRenderPictureAttributes*{.final.} = object 
-    repeat*: TBool
-    alpha_map*: TPicture
-    alpha_x_origin*: int32
-    alpha_y_origin*: int32
-    clip_x_origin*: int32
-    clip_y_origin*: int32
-    clip_mask*: TPixmap
-    graphics_exposures*: TBool
-    subwindow_mode*: int32
-    poly_edge*: int32
-    poly_mode*: int32
-    dither*: TAtom
-
-  PXGlyphInfo* = ptr TXGlyphInfo
-  TXGlyphInfo*{.final.} = object 
-    width*: int16
-    height*: int16
-    x*: int16
-    y*: int16
-    xOff*: int16
-    yOff*: int16
-
-
-proc XRenderQueryExtension*(dpy: PDisplay, event_basep: ptr int32, 
-                            error_basep: ptr int32): TBool{.libxrender.}
-proc XRenderQueryVersion*(dpy: PDisplay, major_versionp: ptr int32, 
-                          minor_versionp: ptr int32): TStatus{.libxrender.}
-proc XRenderQueryFormats*(dpy: PDisplay): TStatus{.libxrender.}
-proc XRenderFindVisualFormat*(dpy: PDisplay, visual: PVisual): PXRenderPictFormat{.
-    libxrender.}
-proc XRenderFindFormat*(dpy: PDisplay, mask: int32, 
-                        `template`: PXRenderPictFormat, count: int32): PXRenderPictFormat{.
-    libxrender.}
-proc XRenderCreatePicture*(dpy: PDisplay, drawable: TDrawable, 
-                           format: PXRenderPictFormat, valuemask: int32, 
-                           attributes: PXRenderPictureAttributes): TPicture{.
-    libxrender.}
-proc XRenderChangePicture*(dpy: PDisplay, picture: TPicture, valuemask: int32, 
-                           attributes: PXRenderPictureAttributes){.libxrender.}
-proc XRenderFreePicture*(dpy: PDisplay, picture: TPicture){.libxrender.}
-proc XRenderComposite*(dpy: PDisplay, op: int32, src: TPicture, mask: TPicture, 
-                       dst: TPicture, src_x: int32, src_y: int32, mask_x: int32, 
-                       mask_y: int32, dst_x: int32, dst_y: int32, width: int32, 
-                       height: int32){.libxrender.}
-proc XRenderCreateGlyphSet*(dpy: PDisplay, format: PXRenderPictFormat): TGlyphSet{.
-    libxrender.}
-proc XRenderReferenceGlyphSet*(dpy: PDisplay, existing: TGlyphSet): TGlyphSet{.
-    libxrender.}
-proc XRenderFreeGlyphSet*(dpy: PDisplay, glyphset: TGlyphSet){.libxrender.}
-proc XRenderAddGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph, 
-                       glyphs: PXGlyphInfo, nglyphs: int32, images: cstring, 
-                       nbyte_images: int32){.libxrender.}
-proc XRenderFreeGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph, 
-                        nglyphs: int32){.libxrender.}
-proc XRenderCompositeString8*(dpy: PDisplay, op: int32, src: TPicture, 
-                              dst: TPicture, maskFormat: PXRenderPictFormat, 
-                              glyphset: TGlyphSet, xSrc: int32, ySrc: int32, 
-                              xDst: int32, yDst: int32, str: cstring, 
-                              nchar: int32){.libxrender.}
-# implementation
diff --git a/lib/wrappers/x11/xresource.nim b/lib/wrappers/x11/xresource.nim
deleted file mode 100644
index f553b4413..000000000
--- a/lib/wrappers/x11/xresource.nim
+++ /dev/null
@@ -1,200 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xresource.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xresource.h
-#
-
-proc Xpermalloc*(para1: int32): cstring{.cdecl, dynlib: libX11, importc.}
-type 
-  PXrmQuark* = ptr TXrmQuark
-  TXrmQuark* = int32
-  TXrmQuarkList* = PXrmQuark
-  PXrmQuarkList* = ptr TXrmQuarkList
-
-proc NULLQUARK*(): TXrmQuark
-type 
-  PXrmString* = ptr TXrmString
-  TXrmString* = ptr char
-
-proc NULLSTRING*(): TXrmString
-proc XrmStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmPermStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmQuarkToString*(para1: TXrmQuark): TXrmString{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmUniqueQuark*(): TXrmQuark{.cdecl, dynlib: libX11, importc.}
-when defined(MACROS): 
-  proc XrmStringsEqual*(a1, a2: cstring): bool
-type 
-  PXrmBinding* = ptr TXrmBinding
-  TXrmBinding* = enum 
-    XrmBindTightly, XrmBindLoosely
-  TXrmBindingList* = PXrmBinding
-  PXrmBindingList* = ptr TXrmBindingList
-
-proc XrmStringToQuarkList*(para1: cstring, para2: TXrmQuarkList){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmStringToBindingQuarkList*(para1: cstring, para2: TXrmBindingList, 
-                                  para3: TXrmQuarkList){.cdecl, dynlib: libX11, 
-    importc.}
-type 
-  PXrmName* = ptr TXrmName
-  TXrmName* = TXrmQuark
-  PXrmNameList* = ptr TXrmNameList
-  TXrmNameList* = TXrmQuarkList
-
-when defined(MACROS): 
-  proc XrmNameToString*(name: int32): TXrmString
-  proc XrmStringToName*(str: cstring): int32
-  proc XrmStringToNameList*(str: cstring, name: PXrmQuark)
-type 
-  PXrmClass* = ptr TXrmClass
-  TXrmClass* = TXrmQuark
-  PXrmClassList* = ptr TXrmClassList
-  TXrmClassList* = TXrmQuarkList
-
-when defined(MACROS): 
-  proc XrmClassToString*(c_class: int32): TXrmString
-  proc XrmStringToClass*(c_class: cstring): int32
-  proc XrmStringToClassList*(str: cstring, c_class: PXrmQuark)
-type 
-  PXrmRepresentation* = ptr TXrmRepresentation
-  TXrmRepresentation* = TXrmQuark
-
-when defined(MACROS): 
-  proc XrmStringToRepresentation*(str: cstring): int32
-  proc XrmRepresentationToString*(thetype: int32): TXrmString
-type 
-  PXrmValue* = ptr TXrmValue
-  TXrmValue*{.final.} = object 
-    size*: int32
-    address*: TXPointer
-
-  TXrmValuePtr* = PXrmValue
-  PXrmValuePtr* = ptr TXrmValuePtr
-  PXrmHashBucketRec* = ptr TXrmHashBucketRec
-  TXrmHashBucketRec*{.final.} = object 
-  TXrmHashBucket* = PXrmHashBucketRec
-  PXrmHashBucket* = ptr TXrmHashBucket
-  PXrmHashTable* = ptr TXrmHashTable
-  TXrmHashTable* = ptr TXrmHashBucket
-  TXrmDatabase* = PXrmHashBucketRec
-  PXrmDatabase* = ptr TXrmDatabase
-
-proc XrmDestroyDatabase*(para1: TXrmDatabase){.cdecl, dynlib: libX11, importc.}
-proc XrmQPutResource*(para1: PXrmDatabase, para2: TXrmBindingList, 
-                      para3: TXrmQuarkList, para4: TXrmRepresentation, 
-                      para5: PXrmValue){.cdecl, dynlib: libX11, importc.}
-proc XrmPutResource*(para1: PXrmDatabase, para2: cstring, para3: cstring, 
-                     para4: PXrmValue){.cdecl, dynlib: libX11, importc.}
-proc XrmQPutStringResource*(para1: PXrmDatabase, para2: TXrmBindingList, 
-                            para3: TXrmQuarkList, para4: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmPutStringResource*(para1: PXrmDatabase, para2: cstring, para3: cstring){.
-    cdecl, dynlib: libX11, importc.}
-proc XrmPutLineResource*(para1: PXrmDatabase, para2: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmQGetResource*(para1: TXrmDatabase, para2: TXrmNameList, 
-                      para3: TXrmClassList, para4: PXrmRepresentation, 
-                      para5: PXrmValue): TBool{.cdecl, dynlib: libX11, importc.}
-proc XrmGetResource*(para1: TXrmDatabase, para2: cstring, para3: cstring, 
-                     para4: PPchar, para5: PXrmValue): TBool{.cdecl, 
-    dynlib: libX11, importc.}
-  # There is no definition of TXrmSearchList 
-  #function XrmQGetSearchList(para1:TXrmDatabase; para2:TXrmNameList; para3:TXrmClassList; para4:TXrmSearchList; para5:longint):TBool;cdecl;external libX11;
-  #function XrmQGetSearchResource(para1:TXrmSearchList; para2:TXrmName; para3:TXrmClass; para4:PXrmRepresentation; para5:PXrmValue):TBool;cdecl;external libX11;
-proc XrmSetDatabase*(para1: PDisplay, para2: TXrmDatabase){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmGetDatabase*(para1: PDisplay): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmGetFileDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmCombineFileDatabase*(para1: cstring, para2: PXrmDatabase, para3: TBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XrmGetStringDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmPutFileDatabase*(para1: TXrmDatabase, para2: cstring){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmMergeDatabases*(para1: TXrmDatabase, para2: PXrmDatabase){.cdecl, 
-    dynlib: libX11, importc.}
-proc XrmCombineDatabase*(para1: TXrmDatabase, para2: PXrmDatabase, para3: TBool){.
-    cdecl, dynlib: libX11, importc.}
-const 
-  XrmEnumAllLevels* = 0
-  XrmEnumOneLevel* = 1
-
-type 
-  funcbool* = proc (): TBool {.cdecl.}
-
-proc XrmEnumerateDatabase*(para1: TXrmDatabase, para2: TXrmNameList, 
-                           para3: TXrmClassList, para4: int32, para5: funcbool, 
-                           para6: TXPointer): TBool{.cdecl, dynlib: libX11, 
-    importc.}
-proc XrmLocaleOfDatabase*(para1: TXrmDatabase): cstring{.cdecl, dynlib: libX11, 
-    importc.}
-type 
-  PXrmOptionKind* = ptr TXrmOptionKind
-  TXrmOptionKind* = enum 
-    XrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg, 
-    XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgs
-  PXrmOptionDescRec* = ptr TXrmOptionDescRec
-  TXrmOptionDescRec*{.final.} = object 
-    option*: cstring
-    specifier*: cstring
-    argKind*: TXrmOptionKind
-    value*: TXPointer
-
-  TXrmOptionDescList* = PXrmOptionDescRec
-  PXrmOptionDescList* = ptr TXrmOptionDescList
-
-proc XrmParseCommand*(para1: PXrmDatabase, para2: TXrmOptionDescList, 
-                      para3: int32, para4: cstring, para5: ptr int32, 
-                      para6: PPchar){.cdecl, dynlib: libX11, importc.}
-# implementation
-
-proc NULLQUARK(): TXrmQuark = 
-  result = TXrmQuark(0)
-
-proc NULLSTRING(): TXrmString = 
-  result = nil
-
-when defined(MACROS): 
-  proc XrmStringsEqual(a1, a2: cstring): bool = 
-    result = (strcomp(a1, a2)) == 0
-
-  proc XrmNameToString(name: int32): TXrmString = 
-    result = XrmQuarkToString(name)
-
-  proc XrmStringToName(str: cstring): int32 = 
-    result = XrmStringToQuark(str)
-
-  proc XrmStringToNameList(str: cstring, name: PXrmQuark) = 
-    XrmStringToQuarkList(str, name)
-
-  proc XrmClassToString(c_class: int32): TXrmString = 
-    result = XrmQuarkToString(c_class)
-
-  proc XrmStringToClass(c_class: cstring): int32 = 
-    result = XrmStringToQuark(c_class)
-
-  proc XrmStringToClassList(str: cstring, c_class: PXrmQuark) = 
-    XrmStringToQuarkList(str, c_class)
-
-  proc XrmStringToRepresentation(str: cstring): int32 = 
-    result = XrmStringToQuark(str)
-
-  proc XrmRepresentationToString(thetype: int32): TXrmString = 
-    result = XrmQuarkToString(thetype)
diff --git a/lib/wrappers/x11/xshm.nim b/lib/wrappers/x11/xshm.nim
deleted file mode 100644
index e56bd87b1..000000000
--- a/lib/wrappers/x11/xshm.nim
+++ /dev/null
@@ -1,77 +0,0 @@
-
-import 
-  x, xlib
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xshm.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xshm.h
-#
-
-const 
-  constX_ShmQueryVersion* = 0
-  constX_ShmAttach* = 1
-  constX_ShmDetach* = 2
-  constX_ShmPutImage* = 3
-  constX_ShmGetImage* = 4
-  constX_ShmCreatePixmap* = 5
-  ShmCompletion* = 0
-  ShmNumberEvents* = ShmCompletion + 1
-  BadShmSeg* = 0
-  ShmNumberErrors* = BadShmSeg + 1
-
-type 
-  PShmSeg* = ptr TShmSeg
-  TShmSeg* = culong
-  PXShmCompletionEvent* = ptr TXShmCompletionEvent
-  TXShmCompletionEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong
-    send_event*: TBool
-    display*: PDisplay
-    drawable*: TDrawable
-    major_code*: cint
-    minor_code*: cint
-    shmseg*: TShmSeg
-    offset*: culong
-
-  PXShmSegmentInfo* = ptr TXShmSegmentInfo
-  TXShmSegmentInfo*{.final.} = object 
-    shmseg*: TShmSeg
-    shmid*: cint
-    shmaddr*: cstring
-    readOnly*: TBool
-
-
-proc XShmQueryExtension*(para1: PDisplay): TBool{.cdecl, dynlib: libX11, importc.}
-proc XShmGetEventBase*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
-proc XShmQueryVersion*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool): TBool{.
-    cdecl, dynlib: libX11, importc.}
-proc XShmPixmapFormat*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
-proc XShmAttach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmDetach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmPutImage*(para1: PDisplay, para2: TDrawable, para3: TGC, 
-                   para4: PXImage, para5: cint, para6: cint, para7: cint, 
-                   para8: cint, para9: cuint, para10: cuint, para11: TBool): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XShmGetImage*(para1: PDisplay, para2: TDrawable, para3: PXImage, 
-                   para4: cint, para5: cint, para6: culong): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, 
-                      para4: cint, para5: cstring, para6: PXShmSegmentInfo, 
-                      para7: cuint, para8: cuint): PXImage{.cdecl, 
-    dynlib: libX11, importc.}
-proc XShmCreatePixmap*(para1: PDisplay, para2: TDrawable, para3: cstring, 
-                       para4: PXShmSegmentInfo, para5: cuint, para6: cuint, 
-                       para7: cuint): TPixmap{.cdecl, dynlib: libX11, importc.}
-# implementation
diff --git a/lib/wrappers/x11/xutil.nim b/lib/wrappers/x11/xutil.nim
deleted file mode 100644
index b66955927..000000000
--- a/lib/wrappers/x11/xutil.nim
+++ /dev/null
@@ -1,412 +0,0 @@
-
-import 
-  x, xlib, keysym
-
-#const 
-#  libX11* = "libX11.so"
-
-#
-#  Automatically converted by H2Pas 0.99.15 from xutil.h
-#  The following command line parameters were used:
-#    -p
-#    -T
-#    -S
-#    -d
-#    -c
-#    xutil.h
-#
-
-const 
-  NoValue* = 0x00000000
-  XValue* = 0x00000001
-  YValue* = 0x00000002
-  WidthValue* = 0x00000004
-  HeightValue* = 0x00000008
-  AllValues* = 0x0000000F
-  XNegative* = 0x00000010
-  YNegative* = 0x00000020
-
-type 
-  TCPoint*{.final.} = object 
-    x*: cint
-    y*: cint
-
-  PXSizeHints* = ptr TXSizeHints
-  TXSizeHints*{.final.} = object 
-    flags*: clong
-    x*, y*: cint
-    width*, height*: cint
-    min_width*, min_height*: cint
-    max_width*, max_height*: cint
-    width_inc*, height_inc*: cint
-    min_aspect*, max_aspect*: TCPoint
-    base_width*, base_height*: cint
-    win_gravity*: cint
-
-
-const 
-  USPosition* = 1 shl 0
-  USSize* = 1 shl 1
-  PPosition* = 1 shl 2
-  PSize* = 1 shl 3
-  PMinSize* = 1 shl 4
-  PMaxSize* = 1 shl 5
-  PResizeInc* = 1 shl 6
-  PAspect* = 1 shl 7
-  PBaseSize* = 1 shl 8
-  PWinGravity* = 1 shl 9
-  PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or
-      PAspect
-
-type 
-  PXWMHints* = ptr TXWMHints
-  TXWMHints*{.final.} = object 
-    flags*: clong
-    input*: TBool
-    initial_state*: cint
-    icon_pixmap*: TPixmap
-    icon_window*: TWindow
-    icon_x*, icon_y*: cint
-    icon_mask*: TPixmap
-    window_group*: TXID
-
-
-const 
-  InputHint* = 1 shl 0
-  StateHint* = 1 shl 1
-  IconPixmapHint* = 1 shl 2
-  IconWindowHint* = 1 shl 3
-  IconPositionHint* = 1 shl 4
-  IconMaskHint* = 1 shl 5
-  WindowGroupHint* = 1 shl 6
-  AllHints* = InputHint or StateHint or IconPixmapHint or IconWindowHint or
-      IconPositionHint or IconMaskHint or WindowGroupHint
-  XUrgencyHint* = 1 shl 8
-  WithdrawnState* = 0
-  NormalState* = 1
-  IconicState* = 3
-  DontCareState* = 0
-  ZoomState* = 2
-  InactiveState* = 4
-
-type 
-  PXTextProperty* = ptr TXTextProperty
-  TXTextProperty*{.final.} = object 
-    value*: pcuchar
-    encoding*: TAtom
-    format*: cint
-    nitems*: culong
-
-
-const 
-  XNoMemory* = - 1
-  XLocaleNotSupported* = - 2
-  XConverterNotFound* = - 3
-
-type 
-  PXICCEncodingStyle* = ptr TXICCEncodingStyle
-  TXICCEncodingStyle* = enum 
-    XStringStyle, XCompoundTextStyle, XTextStyle, XStdICCTextStyle, 
-    XUTF8StringStyle
-  PPXIconSize* = ptr PXIconSize
-  PXIconSize* = ptr TXIconSize
-  TXIconSize*{.final.} = object 
-    min_width*, min_height*: cint
-    max_width*, max_height*: cint
-    width_inc*, height_inc*: cint
-
-  PXClassHint* = ptr TXClassHint
-  TXClassHint*{.final.} = object 
-    res_name*: cstring
-    res_class*: cstring
-
-
-type 
-  PXComposeStatus* = ptr TXComposeStatus
-  TXComposeStatus*{.final.} = object 
-    compose_ptr*: TXPointer
-    chars_matched*: cint
-
-
-type 
-  PXRegion* = ptr TXRegion
-  TXRegion*{.final.} = object 
-  TRegion* = PXRegion
-  PRegion* = ptr TRegion
-
-const 
-  RectangleOut* = 0
-  RectangleIn* = 1
-  RectanglePart* = 2
-
-type 
-  PXVisualInfo* = ptr TXVisualInfo
-  TXVisualInfo*{.final.} = object 
-    visual*: PVisual
-    visualid*: TVisualID
-    screen*: cint
-    depth*: cint
-    class*: cint
-    red_mask*: culong
-    green_mask*: culong
-    blue_mask*: culong
-    colormap_size*: cint
-    bits_per_rgb*: cint
-
-
-const 
-  VisualNoMask* = 0x00000000
-  VisualIDMask* = 0x00000001
-  VisualScreenMask* = 0x00000002
-  VisualDepthMask* = 0x00000004
-  VisualClassMask* = 0x00000008
-  VisualRedMaskMask* = 0x00000010
-  VisualGreenMaskMask* = 0x00000020
-  VisualBlueMaskMask* = 0x00000040
-  VisualColormapSizeMask* = 0x00000080
-  VisualBitsPerRGBMask* = 0x00000100
-  VisualAllMask* = 0x000001FF
-
-type 
-  PPXStandardColormap* = ptr PXStandardColormap
-  PXStandardColormap* = ptr TXStandardColormap
-  TXStandardColormap*{.final.} = object 
-    colormap*: TColormap
-    red_max*: culong
-    red_mult*: culong
-    green_max*: culong
-    green_mult*: culong
-    blue_max*: culong
-    blue_mult*: culong
-    base_pixel*: culong
-    visualid*: TVisualID
-    killid*: TXID
-
-
-const 
-  BitmapSuccess* = 0
-  BitmapOpenFailed* = 1
-  BitmapFileInvalid* = 2
-  BitmapNoMemory* = 3
-  XCSUCCESS* = 0
-  XCNOMEM* = 1
-  XCNOENT* = 2
-  ReleaseByFreeingColormap*: TXID = TXID(1)
-
-type 
-  PXContext* = ptr TXContext
-  TXContext* = cint
-
-proc XAllocClassHint*(): PXClassHint{.cdecl, dynlib: libX11, importc.}
-proc XAllocIconSize*(): PXIconSize{.cdecl, dynlib: libX11, importc.}
-proc XAllocSizeHints*(): PXSizeHints{.cdecl, dynlib: libX11, importc.}
-proc XAllocStandardColormap*(): PXStandardColormap{.cdecl, dynlib: libX11, 
-    importc.}
-proc XAllocWMHints*(): PXWMHints{.cdecl, dynlib: libX11, importc.}
-proc XClipBox*(para1: TRegion, para2: PXRectangle): cint{.cdecl, dynlib: libX11, 
-    importc.}
-proc XCreateRegion*(): TRegion{.cdecl, dynlib: libX11, importc.}
-proc XDefaultString*(): cstring{.cdecl, dynlib: libX11, importc.}
-proc XDeleteContext*(para1: PDisplay, para2: TXID, para3: TXContext): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XDestroyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
-proc XEmptyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
-proc XEqualRegion*(para1: TRegion, para2: TRegion): cint{.cdecl, dynlib: libX11, 
-    importc.}
-proc XFindContext*(para1: PDisplay, para2: TXID, para3: TXContext, 
-                   para4: PXPointer): cint{.cdecl, dynlib: libX11, importc.}
-proc XGetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetIconSizes*(para1: PDisplay, para2: TWindow, para3: PPXIconSize, 
-                    para4: Pcint): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetRGBColormaps*(para1: PDisplay, para2: TWindow, 
-                       para3: PPXStandardColormap, para4: Pcint, para5: TAtom): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                    para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetStandardColormap*(para1: PDisplay, para2: TWindow, 
-                           para3: PXStandardColormap, para4: TAtom): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetVisualInfo*(para1: PDisplay, para2: clong, para3: PXVisualInfo, 
-                     para4: Pcint): PXVisualInfo{.cdecl, dynlib: libX11, importc.}
-proc XGetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMHints*(para1: PDisplay, para2: TWindow): PXWMHints{.cdecl, 
-    dynlib: libX11, importc.}
-proc XGetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XGetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                        para4: ptr int): TStatus{.cdecl, dynlib: libX11, importc.}
-proc XGetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                      para4: ptr int, para5: TAtom): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XGetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
-    cdecl, dynlib: libX11, importc.}
-proc XIntersectRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XConvertCase*(para1: TKeySym, para2: PKeySym, para3: PKeySym){.cdecl, 
-    dynlib: libX11, importc.}
-proc XLookupString*(para1: PXKeyEvent, para2: cstring, para3: cint, 
-                    para4: PKeySym, para5: PXComposeStatus): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XMatchVisualInfo*(para1: PDisplay, para2: cint, para3: cint, para4: cint, 
-                       para5: PXVisualInfo): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XOffsetRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XPointInRegion*(para1: TRegion, para2: cint, para3: cint): TBool{.cdecl, 
-    dynlib: libX11, importc.}
-proc XPolygonRegion*(para1: PXPoint, para2: cint, para3: cint): TRegion{.cdecl, 
-    dynlib: libX11, importc.}
-proc XRectInRegion*(para1: TRegion, para2: cint, para3: cint, para4: cuint, 
-                    para5: cuint): cint{.cdecl, dynlib: libX11, importc.}
-proc XSaveContext*(para1: PDisplay, para2: TXID, para3: TXContext, 
-                   para4: cstring): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetIconSizes*(para1: PDisplay, para2: TWindow, para3: PXIconSize, 
-                    para4: cint): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetRGBColormaps*(para1: PDisplay, para2: TWindow, 
-                       para3: PXStandardColormap, para4: cint, para5: TAtom){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                    para4: TAtom): cint{.cdecl, dynlib: libX11, importc.}
-proc XSetStandardProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                             para4: cstring, para5: TPixmap, para6: PPchar, 
-                             para7: cint, para8: PXSizeHints): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: TAtom){.cdecl, dynlib: libX11, importc.}
-proc XSetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMHints*(para1: PDisplay, para2: TWindow, para3: PXWMHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints){.
-    cdecl, dynlib: libX11, importc.}
-proc XSetWMProperties*(para1: PDisplay, para2: TWindow, para3: PXTextProperty, 
-                       para4: PXTextProperty, para5: PPchar, para6: cint, 
-                       para7: PXSizeHints, para8: PXWMHints, para9: PXClassHint){.
-    cdecl, dynlib: libX11, importc.}
-proc XmbSetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                         para4: cstring, para5: PPchar, para6: cint, 
-                         para7: PXSizeHints, para8: PXWMHints, 
-                         para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
-proc Xutf8SetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring, 
-                           para4: cstring, para5: PPchar, para6: cint, 
-                           para7: PXSizeHints, para8: PXWMHints, 
-                           para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
-proc XSetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints, 
-                      para4: TAtom){.cdecl, dynlib: libX11, importc.}
-proc XSetRegion*(para1: PDisplay, para2: TGC, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetStandardColormap*(para1: PDisplay, para2: TWindow, 
-                           para3: PXStandardColormap, para4: TAtom){.cdecl, 
-    dynlib: libX11, importc.}
-proc XSetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XShrinkRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XStringListToTextProperty*(para1: PPchar, para2: cint, 
-                                para3: PXTextProperty): TStatus{.cdecl, 
-    dynlib: libX11, importc.}
-proc XSubtractRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XmbTextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, 
-                                para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XwcTextListToTextProperty*(para1: PDisplay, para2: ptr ptr int16, para3: cint, 
-                                para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc Xutf8TextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, 
-                                  para4: TXICCEncodingStyle, 
-                                  para5: PXTextProperty): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XwcFreeStringList*(para1: ptr ptr int16){.cdecl, dynlib: libX11, importc.}
-proc XTextPropertyToStringList*(para1: PXTextProperty, para2: PPPchar, 
-                                para3: Pcint): TStatus{.cdecl, dynlib: libX11, 
-    importc.}
-proc XmbTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                para3: PPPchar, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XwcTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                para3: ptr ptr ptr int16, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc Xutf8TextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, 
-                                  para3: PPPchar, para4: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XUnionRectWithRegion*(para1: PXRectangle, para2: TRegion, para3: TRegion): cint{.
-    cdecl, dynlib: libX11, importc.}
-proc XUnionRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XWMGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, 
-                  para5: cuint, para6: PXSizeHints, para7: Pcint, para8: Pcint, 
-                  para9: Pcint, para10: Pcint, para11: Pcint): cint{.cdecl, 
-    dynlib: libX11, importc.}
-proc XXorRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl, 
-    dynlib: libX11, importc.}
-when defined(MACROS): 
-  proc XDestroyImage*(ximage: PXImage): cint
-  proc XGetPixel*(ximage: PXImage, x, y: cint): culong
-  proc XPutPixel*(ximage: PXImage, x, y: cint, pixel: culong): cint
-  proc XSubImage*(ximage: PXImage, x, y: cint, width, height: cuint): PXImage
-  proc XAddPixel*(ximage: PXImage, value: clong): cint
-  proc IsKeypadKey*(keysym: TKeySym): bool
-  proc IsPrivateKeypadKey*(keysym: TKeySym): bool
-  proc IsCursorKey*(keysym: TKeySym): bool
-  proc IsPFKey*(keysym: TKeySym): bool
-  proc IsFunctionKey*(keysym: TKeySym): bool
-  proc IsMiscFunctionKey*(keysym: TKeySym): bool
-  proc IsModifierKey*(keysym: TKeySym): bool
-    #function XUniqueContext : TXContext;
-    #function XStringToContext(_string : Pchar) : TXContext;
-# implementation
-
-when defined(MACROS): 
-  proc XDestroyImage(ximage: PXImage): cint = 
-    XDestroyImage = ximage[] .f.destroy_image(ximage)
-
-  proc XGetPixel(ximage: PXImage, x, y: cint): culong = 
-    XGetPixel = ximage[] .f.get_pixel(ximage, x, y)
-
-  proc XPutPixel(ximage: PXImage, x, y: cint, pixel: culong): cint = 
-    XPutPixel = ximage[] .f.put_pixel(ximage, x, y, pixel)
-
-  proc XSubImage(ximage: PXImage, x, y: cint, width, height: cuint): PXImage = 
-    XSubImage = ximage[] .f.sub_image(ximage, x, y, width, height)
-
-  proc XAddPixel(ximage: PXImage, value: clong): cint = 
-    XAddPixel = ximage[] .f.add_pixel(ximage, value)
-
-  proc IsKeypadKey(keysym: TKeySym): bool = 
-    IsKeypadKey = (keysym >= XK_KP_Space) and (keysym <= XK_KP_Equal)
-
-  proc IsPrivateKeypadKey(keysym: TKeySym): bool = 
-    IsPrivateKeypadKey = (keysym >= 0x11000000) and (keysym <= 0x1100FFFF)
-
-  proc IsCursorKey(keysym: TKeySym): bool = 
-    IsCursorKey = (keysym >= XK_Home) and (keysym < XK_Select)
-
-  proc IsPFKey(keysym: TKeySym): bool = 
-    IsPFKey = (keysym >= XK_KP_F1) and (keysym <= XK_KP_F4)
-
-  proc IsFunctionKey(keysym: TKeySym): bool = 
-    IsFunctionKey = (keysym >= XK_F1) and (keysym <= XK_F35)
-
-  proc IsMiscFunctionKey(keysym: TKeySym): bool = 
-    IsMiscFunctionKey = (keysym >= XK_Select) and (keysym <= XK_Break)
-
-  proc IsModifierKey(keysym: TKeySym): bool = 
-    IsModifierKey = ((keysym >= XK_Shift_L) And (keysym <= XK_Hyper_R)) Or
-        (keysym == XK_Mode_switch) Or (keysym == XK_Num_Lock)
diff --git a/lib/wrappers/x11/xv.nim b/lib/wrappers/x11/xv.nim
deleted file mode 100644
index 45ab61418..000000000
--- a/lib/wrappers/x11/xv.nim
+++ /dev/null
@@ -1,84 +0,0 @@
-#***********************************************************
-#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
-#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its 
-#documentation for any purpose and without fee is hereby granted, 
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in 
-#supporting documentation, and that the names of Digital or MIT not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.  
-#
-#DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#******************************************************************
-# $XFree86: xc/include/extensions/Xv.h,v 1.3 1999/05/23 06:33:22 dawes Exp $ 
-
-import 
-  x
-
-const 
-  XvName* = "libXVideo.so"
-  XvVersion* = 2
-  XvRevision* = 2             # Symbols 
-
-type 
-  TXvPortID* = TXID
-  TXvEncodingID* = TXID
-
-const 
-  XvNone* = 0
-  XvInput* = 0
-  XvOutput* = 1
-  XvInputMask* = 1 shl XvInput
-  XvOutputMask* = 1 shl XvOutput
-  XvVideoMask* = 0x00000004
-  XvStillMask* = 0x00000008
-  XvImageMask* = 0x00000010   # These two are not client viewable 
-  XvPixmapMask* = 0x00010000
-  XvWindowMask* = 0x00020000
-  XvGettable* = 0x00000001
-  XvSettable* = 0x00000002
-  XvRGB* = 0
-  XvYUV* = 1
-  XvPacked* = 0
-  XvPlanar* = 1
-  XvTopToBottom* = 0
-  XvBottomToTop* = 1          # Events 
-  XvVideoNotify* = 0
-  XvPortNotify* = 1
-  XvNumEvents* = 2            # Video Notify Reasons 
-  XvStarted* = 0
-  XvStopped* = 1
-  XvBusy* = 2
-  XvPreempted* = 3
-  XvHardError* = 4
-  XvLastReason* = 4
-  XvNumReasons* = XvLastReason + 1
-  XvStartedMask* = 1 shl XvStarted
-  XvStoppedMask* = 1 shl XvStopped
-  XvBusyMask* = 1 shl XvBusy
-  XvPreemptedMask* = 1 shl XvPreempted
-  XvHardErrorMask* = 1 shl XvHardError
-  XvAnyReasonMask* = (1 shl XvNumReasons) - 1
-  XvNoReasonMask* = 0         # Errors 
-  XvBadPort* = 0
-  XvBadEncoding* = 1
-  XvBadControl* = 2
-  XvNumErrors* = 3            # Status 
-  XvBadExtension* = 1
-  XvAlreadyGrabbed* = 2
-  XvInvalidTime* = 3
-  XvBadReply* = 4
-  XvBadAlloc* = 5
-
-# implementation
diff --git a/lib/wrappers/x11/xvlib.nim b/lib/wrappers/x11/xvlib.nim
deleted file mode 100644
index 19fd0d000..000000000
--- a/lib/wrappers/x11/xvlib.nim
+++ /dev/null
@@ -1,234 +0,0 @@
-#***********************************************************
-#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
-#and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
-#
-#                        All Rights Reserved
-#
-#Permission to use, copy, modify, and distribute this software and its 
-#documentation for any purpose and without fee is hereby granted, 
-#provided that the above copyright notice appear in all copies and that
-#both that copyright notice and this permission notice appear in 
-#supporting documentation, and that the names of Digital or MIT not be
-#used in advertising or publicity pertaining to distribution of the
-#software without specific, written prior permission.  
-#
-#DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-#DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-#ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-#WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-#ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-#SOFTWARE.
-#
-#******************************************************************
-# $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $ 
-#*
-#** File: 
-#**
-#**   Xvlib.h --- Xv library public header file
-#**
-#** Author: 
-#**
-#**   David Carver (Digital Workstation Engineering/Project Athena)
-#**
-#** Revisions:
-#**
-#**   26.06.91 Carver
-#**     - changed XvFreeAdaptors to XvFreeAdaptorInfo
-#**     - changed XvFreeEncodings to XvFreeEncodingInfo
-#**
-#**   11.06.91 Carver
-#**     - changed SetPortControl to SetPortAttribute
-#**     - changed GetPortControl to GetPortAttribute
-#**     - changed QueryBestSize
-#**
-#**   05.15.91 Carver
-#**     - version 2.0 upgrade
-#**
-#**   01.24.91 Carver
-#**     - version 1.4 upgrade
-#**
-#*
-
-import 
-  x, xlib, xshm, xv
-
-const 
-  libXv* = "libXv.so"
-
-type 
-  PXvRational* = ptr TXvRational
-  TXvRational*{.final.} = object 
-    numerator*: cint
-    denominator*: cint
-
-  PXvAttribute* = ptr TXvAttribute
-  TXvAttribute*{.final.} = object 
-    flags*: cint              # XvGettable, XvSettable 
-    min_value*: cint
-    max_value*: cint
-    name*: cstring
-
-  PPXvEncodingInfo* = ptr PXvEncodingInfo
-  PXvEncodingInfo* = ptr TXvEncodingInfo
-  TXvEncodingInfo*{.final.} = object 
-    encoding_id*: TXvEncodingID
-    name*: cstring
-    width*: culong
-    height*: culong
-    rate*: TXvRational
-    num_encodings*: culong
-
-  PXvFormat* = ptr TXvFormat
-  TXvFormat*{.final.} = object 
-    depth*: cchar
-    visual_id*: culong
-
-  PPXvAdaptorInfo* = ptr PXvAdaptorInfo
-  PXvAdaptorInfo* = ptr TXvAdaptorInfo
-  TXvAdaptorInfo*{.final.} = object 
-    base_id*: TXvPortID
-    num_ports*: culong
-    thetype*: cchar
-    name*: cstring
-    num_formats*: culong
-    formats*: PXvFormat
-    num_adaptors*: culong
-
-  PXvVideoNotifyEvent* = ptr TXvVideoNotifyEvent
-  TXvVideoNotifyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    drawable*: TDrawable      # drawable 
-    reason*: culong           # what generated this event 
-    port_id*: TXvPortID       # what port 
-    time*: TTime              # milliseconds 
-  
-  PXvPortNotifyEvent* = ptr TXvPortNotifyEvent
-  TXvPortNotifyEvent*{.final.} = object 
-    theType*: cint
-    serial*: culong           # # of last request processed by server 
-    send_event*: TBool        # true if this came from a SendEvent request 
-    display*: PDisplay        # Display the event was read from 
-    port_id*: TXvPortID       # what port 
-    time*: TTime              # milliseconds 
-    attribute*: TAtom         # atom that identifies attribute 
-    value*: clong             # value of attribute 
-  
-  PXvEvent* = ptr TXvEvent
-  TXvEvent*{.final.} = object 
-    pad*: array[0..23, clong] #case longint of
-                              #      0 : (
-                              #            theType : cint;
-                              #	  );
-                              #      1 : (
-                              #            xvvideo : TXvVideoNotifyEvent;
-                              #          );
-                              #      2 : (
-                              #            xvport : TXvPortNotifyEvent;
-                              #          );
-                              #      3 : (
-                              #            
-                              #          );
-  
-  PXvImageFormatValues* = ptr TXvImageFormatValues
-  TXvImageFormatValues*{.final.} = object 
-    id*: cint                 # Unique descriptor for the format 
-    theType*: cint            # XvRGB, XvYUV 
-    byte_order*: cint         # LSBFirst, MSBFirst 
-    guid*: array[0..15, cchar] # Globally Unique IDentifier 
-    bits_per_pixel*: cint
-    format*: cint             # XvPacked, XvPlanar 
-    num_planes*: cint         # for RGB formats only 
-    depth*: cint
-    red_mask*: cuint
-    green_mask*: cuint
-    blue_mask*: cuint         # for YUV formats only 
-    y_sample_bits*: cuint
-    u_sample_bits*: cuint
-    v_sample_bits*: cuint
-    horz_y_period*: cuint
-    horz_u_period*: cuint
-    horz_v_period*: cuint
-    vert_y_period*: cuint
-    vert_u_period*: cuint
-    vert_v_period*: cuint
-    component_order*: array[0..31, char] # eg. UYVY 
-    scanline_order*: cint     # XvTopToBottom, XvBottomToTop 
-  
-  PXvImage* = ptr TXvImage
-  TXvImage*{.final.} = object 
-    id*: cint
-    width*, height*: cint
-    data_size*: cint          # bytes 
-    num_planes*: cint
-    pitches*: pcint           # bytes 
-    offsets*: pcint           # bytes 
-    data*: pointer
-    obdata*: TXPointer
-
-
-proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase, 
-    p_eventBase, p_errorBase: pcuint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvQueryAdaptors*(display: PDisplay, window: TWindow, p_nAdaptors: pcuint, 
-                      p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv, 
-    importc.}
-proc XvQueryEncodings*(display: PDisplay, port: TXvPortID, p_nEncoding: pcuint, 
-                       p_pEncoding: PPXvEncodingInfo): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvPutVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvPutStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGetVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGetStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC, 
-                 vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvStopVideo*(display: PDisplay, port: TXvPortID, drawable: TDrawable): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvGrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvUngrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSelectVideoNotify*(display: PDisplay, drawable: TDrawable, onoff: TBool): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSelectPortNotify*(display: PDisplay, port: TXvPortID, onoff: TBool): cint{.
-    cdecl, dynlib: libXv, importc.}
-proc XvSetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom, 
-                         value: cint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvGetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom, 
-                         p_value: pcint): cint{.cdecl, dynlib: libXv, importc.}
-proc XvQueryBestSize*(display: PDisplay, port: TXvPortID, motion: TBool, 
-                      vid_w, vid_h, drw_w, drw_h: cuint, 
-                      p_actual_width, p_actual_height: pcuint): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvQueryPortAttributes*(display: PDisplay, port: TXvPortID, number: pcint): PXvAttribute{.
-    cdecl, dynlib: libXv, importc.}
-proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.}
-proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv, 
-    importc.}
-proc XvListImageFormats*(display: PDisplay, port_id: TXvPortID, 
-                         count_return: pcint): PXvImageFormatValues{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvCreateImage*(display: PDisplay, port: TXvPortID, id: cint, data: pointer, 
-                    width, height: cint): PXvImage{.cdecl, dynlib: libXv, 
-    importc.}
-proc XvPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC, 
-                 image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, 
-                 dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl, 
-    dynlib: libXv, importc.}
-proc XvShmPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC, 
-                    image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, 
-                    dest_x, dest_y: cint, dest_w, dest_h: cuint, 
-                    send_event: TBool): cint{.cdecl, dynlib: libXv, importc.}
-proc XvShmCreateImage*(display: PDisplay, port: TXvPortID, id: cint, 
-                       data: pointer, width, height: cint, 
-                       shminfo: PXShmSegmentInfo): PXvImage{.cdecl, 
-    dynlib: libXv, importc.}
-# implementation
diff --git a/lib/wrappers/zip/zlib.nim b/lib/wrappers/zip/zlib.nim
index de52a06e1..c4c6ac071 100644
--- a/lib/wrappers/zip/zlib.nim
+++ b/lib/wrappers/zip/zlib.nim
@@ -102,6 +102,7 @@ proc compress2*(dest: pbytef, destLen: puLongf, source: pbytef,
 proc uncompress*(dest: pbytef, destLen: puLongf, source: pbytef, 
                  sourceLen: uLong): cint{.cdecl, dynlib: libz, 
     importc: "uncompress".}
+proc compressBound*(sourceLen: uLong): uLong {.cdecl, dynlib: libz, importc.}
 proc gzopen*(path: cstring, mode: cstring): gzFile{.cdecl, dynlib: libz, 
     importc: "gzopen".}
 proc gzdopen*(fd: int32, mode: cstring): gzFile{.cdecl, dynlib: libz,