summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/cairo/cairo.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/cairo/cairoft.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/cairo/cairowin32.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/cairo/cairoxlib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/atk.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gdk2.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gdk2pixbuf.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gdkglext.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/glib2.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gtk2.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gtkglext.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/gtkhtml.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/libglade2.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/pango.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/gtk/pangoutils.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/iup.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/libcurl.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/lua/lauxlib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/lua/lua.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/lua/lualib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/mysql.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/odbcsql.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/gl.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/glext.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/glu.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/glut.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/glx.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/opengl/wingl.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/pcre/pcre.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/pcre/pcre_all.c0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/postgres.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/python.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_gfx.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_image.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_mixer.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_mixer_nosmpeg.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_net.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/sdl_ttf.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sdl/smpeg.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/sqlite3.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/tcl.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/cursorfont.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/keysym.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/x.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xatom.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xcms.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xf86dga.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xf86vmode.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xi.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xinerama.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xkb.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xkblib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xlib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xrandr.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xrender.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xresource.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xshm.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xutil.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xv.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/x11/xvlib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/zip/libzip.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/zip/zlib.nim0
-rwxr-xr-x[-rw-r--r--]lib/oldwrappers/zip/zzip.nim0
-rwxr-xr-xlib/pure/pegs.nim20
-rwxr-xr-xlib/pure/re.nim12
-rwxr-xr-xlib/wrappers/gtk/gdk2.nim40
-rwxr-xr-xlib/wrappers/gtk/gdk2pixbuf.nim271
-rwxr-xr-xlib/wrappers/gtk/glib2.nim4498
-rwxr-xr-xlib/wrappers/gtk/gtk2.nim2452
-rwxr-xr-xlib/wrappers/gtk/libglade2.nim111
-rwxr-xr-xlib/wrappers/gtk/pango.nim1157
72 files changed, 7311 insertions, 1250 deletions
diff --git a/lib/oldwrappers/cairo/cairo.nim b/lib/oldwrappers/cairo/cairo.nim
index 6da8183f3..6da8183f3 100644..100755
--- a/lib/oldwrappers/cairo/cairo.nim
+++ b/lib/oldwrappers/cairo/cairo.nim
diff --git a/lib/oldwrappers/cairo/cairoft.nim b/lib/oldwrappers/cairo/cairoft.nim
index 2418aa922..2418aa922 100644..100755
--- a/lib/oldwrappers/cairo/cairoft.nim
+++ b/lib/oldwrappers/cairo/cairoft.nim
diff --git a/lib/oldwrappers/cairo/cairowin32.nim b/lib/oldwrappers/cairo/cairowin32.nim
index 5d07c2611..5d07c2611 100644..100755
--- a/lib/oldwrappers/cairo/cairowin32.nim
+++ b/lib/oldwrappers/cairo/cairowin32.nim
diff --git a/lib/oldwrappers/cairo/cairoxlib.nim b/lib/oldwrappers/cairo/cairoxlib.nim
index dfe44eb87..dfe44eb87 100644..100755
--- a/lib/oldwrappers/cairo/cairoxlib.nim
+++ b/lib/oldwrappers/cairo/cairoxlib.nim
diff --git a/lib/oldwrappers/gtk/atk.nim b/lib/oldwrappers/gtk/atk.nim
index ae7a34c4b..ae7a34c4b 100644..100755
--- a/lib/oldwrappers/gtk/atk.nim
+++ b/lib/oldwrappers/gtk/atk.nim
diff --git a/lib/oldwrappers/gtk/gdk2.nim b/lib/oldwrappers/gtk/gdk2.nim
index 0ca5056b5..0ca5056b5 100644..100755
--- a/lib/oldwrappers/gtk/gdk2.nim
+++ b/lib/oldwrappers/gtk/gdk2.nim
diff --git a/lib/oldwrappers/gtk/gdk2pixbuf.nim b/lib/oldwrappers/gtk/gdk2pixbuf.nim
index daaa1479b..daaa1479b 100644..100755
--- a/lib/oldwrappers/gtk/gdk2pixbuf.nim
+++ b/lib/oldwrappers/gtk/gdk2pixbuf.nim
diff --git a/lib/oldwrappers/gtk/gdkglext.nim b/lib/oldwrappers/gtk/gdkglext.nim
index 524b5f730..524b5f730 100644..100755
--- a/lib/oldwrappers/gtk/gdkglext.nim
+++ b/lib/oldwrappers/gtk/gdkglext.nim
diff --git a/lib/oldwrappers/gtk/glib2.nim b/lib/oldwrappers/gtk/glib2.nim
index 3f33501e8..3f33501e8 100644..100755
--- a/lib/oldwrappers/gtk/glib2.nim
+++ b/lib/oldwrappers/gtk/glib2.nim
diff --git a/lib/oldwrappers/gtk/gtk2.nim b/lib/oldwrappers/gtk/gtk2.nim
index e7c5be7be..e7c5be7be 100644..100755
--- a/lib/oldwrappers/gtk/gtk2.nim
+++ b/lib/oldwrappers/gtk/gtk2.nim
diff --git a/lib/oldwrappers/gtk/gtkglext.nim b/lib/oldwrappers/gtk/gtkglext.nim
index 38da5d25e..38da5d25e 100644..100755
--- a/lib/oldwrappers/gtk/gtkglext.nim
+++ b/lib/oldwrappers/gtk/gtkglext.nim
diff --git a/lib/oldwrappers/gtk/gtkhtml.nim b/lib/oldwrappers/gtk/gtkhtml.nim
index c9ccc3595..c9ccc3595 100644..100755
--- a/lib/oldwrappers/gtk/gtkhtml.nim
+++ b/lib/oldwrappers/gtk/gtkhtml.nim
diff --git a/lib/oldwrappers/gtk/libglade2.nim b/lib/oldwrappers/gtk/libglade2.nim
index 5e323680e..5e323680e 100644..100755
--- a/lib/oldwrappers/gtk/libglade2.nim
+++ b/lib/oldwrappers/gtk/libglade2.nim
diff --git a/lib/oldwrappers/gtk/pango.nim b/lib/oldwrappers/gtk/pango.nim
index ade2da989..ade2da989 100644..100755
--- a/lib/oldwrappers/gtk/pango.nim
+++ b/lib/oldwrappers/gtk/pango.nim
diff --git a/lib/oldwrappers/gtk/pangoutils.nim b/lib/oldwrappers/gtk/pangoutils.nim
index e6f3ab94c..e6f3ab94c 100644..100755
--- a/lib/oldwrappers/gtk/pangoutils.nim
+++ b/lib/oldwrappers/gtk/pangoutils.nim
diff --git a/lib/oldwrappers/iup.nim b/lib/oldwrappers/iup.nim
index c37d31047..c37d31047 100644..100755
--- a/lib/oldwrappers/iup.nim
+++ b/lib/oldwrappers/iup.nim
diff --git a/lib/oldwrappers/libcurl.nim b/lib/oldwrappers/libcurl.nim
index 9cb352fb7..9cb352fb7 100644..100755
--- a/lib/oldwrappers/libcurl.nim
+++ b/lib/oldwrappers/libcurl.nim
diff --git a/lib/oldwrappers/lua/lauxlib.nim b/lib/oldwrappers/lua/lauxlib.nim
index 477dd5874..477dd5874 100644..100755
--- a/lib/oldwrappers/lua/lauxlib.nim
+++ b/lib/oldwrappers/lua/lauxlib.nim
diff --git a/lib/oldwrappers/lua/lua.nim b/lib/oldwrappers/lua/lua.nim
index 54f8d46bb..54f8d46bb 100644..100755
--- a/lib/oldwrappers/lua/lua.nim
+++ b/lib/oldwrappers/lua/lua.nim
diff --git a/lib/oldwrappers/lua/lualib.nim b/lib/oldwrappers/lua/lualib.nim
index df5d53101..df5d53101 100644..100755
--- a/lib/oldwrappers/lua/lualib.nim
+++ b/lib/oldwrappers/lua/lualib.nim
diff --git a/lib/oldwrappers/mysql.nim b/lib/oldwrappers/mysql.nim
index e94afb1a2..e94afb1a2 100644..100755
--- a/lib/oldwrappers/mysql.nim
+++ b/lib/oldwrappers/mysql.nim
diff --git a/lib/oldwrappers/odbcsql.nim b/lib/oldwrappers/odbcsql.nim
index 77719e85f..77719e85f 100644..100755
--- a/lib/oldwrappers/odbcsql.nim
+++ b/lib/oldwrappers/odbcsql.nim
diff --git a/lib/oldwrappers/opengl/gl.nim b/lib/oldwrappers/opengl/gl.nim
index 79f09b544..79f09b544 100644..100755
--- a/lib/oldwrappers/opengl/gl.nim
+++ b/lib/oldwrappers/opengl/gl.nim
diff --git a/lib/oldwrappers/opengl/glext.nim b/lib/oldwrappers/opengl/glext.nim
index 0a2138584..0a2138584 100644..100755
--- a/lib/oldwrappers/opengl/glext.nim
+++ b/lib/oldwrappers/opengl/glext.nim
diff --git a/lib/oldwrappers/opengl/glu.nim b/lib/oldwrappers/opengl/glu.nim
index 297f4d354..297f4d354 100644..100755
--- a/lib/oldwrappers/opengl/glu.nim
+++ b/lib/oldwrappers/opengl/glu.nim
diff --git a/lib/oldwrappers/opengl/glut.nim b/lib/oldwrappers/opengl/glut.nim
index 55ee18bda..55ee18bda 100644..100755
--- a/lib/oldwrappers/opengl/glut.nim
+++ b/lib/oldwrappers/opengl/glut.nim
diff --git a/lib/oldwrappers/opengl/glx.nim b/lib/oldwrappers/opengl/glx.nim
index a967acfc6..a967acfc6 100644..100755
--- a/lib/oldwrappers/opengl/glx.nim
+++ b/lib/oldwrappers/opengl/glx.nim
diff --git a/lib/oldwrappers/opengl/wingl.nim b/lib/oldwrappers/opengl/wingl.nim
index 2cebf8622..2cebf8622 100644..100755
--- a/lib/oldwrappers/opengl/wingl.nim
+++ b/lib/oldwrappers/opengl/wingl.nim
diff --git a/lib/oldwrappers/pcre/pcre.nim b/lib/oldwrappers/pcre/pcre.nim
index 05f937579..05f937579 100644..100755
--- a/lib/oldwrappers/pcre/pcre.nim
+++ b/lib/oldwrappers/pcre/pcre.nim
diff --git a/lib/oldwrappers/pcre/pcre_all.c b/lib/oldwrappers/pcre/pcre_all.c
index bcda06e50..bcda06e50 100644..100755
--- a/lib/oldwrappers/pcre/pcre_all.c
+++ b/lib/oldwrappers/pcre/pcre_all.c
diff --git a/lib/oldwrappers/postgres.nim b/lib/oldwrappers/postgres.nim
index 4b43333d7..4b43333d7 100644..100755
--- a/lib/oldwrappers/postgres.nim
+++ b/lib/oldwrappers/postgres.nim
diff --git a/lib/oldwrappers/python.nim b/lib/oldwrappers/python.nim
index ea9ef1fd5..ea9ef1fd5 100644..100755
--- a/lib/oldwrappers/python.nim
+++ b/lib/oldwrappers/python.nim
diff --git a/lib/oldwrappers/sdl/sdl.nim b/lib/oldwrappers/sdl/sdl.nim
index 7d2b6ba26..7d2b6ba26 100644..100755
--- a/lib/oldwrappers/sdl/sdl.nim
+++ b/lib/oldwrappers/sdl/sdl.nim
diff --git a/lib/oldwrappers/sdl/sdl_gfx.nim b/lib/oldwrappers/sdl/sdl_gfx.nim
index 8ae8eca0b..8ae8eca0b 100644..100755
--- a/lib/oldwrappers/sdl/sdl_gfx.nim
+++ b/lib/oldwrappers/sdl/sdl_gfx.nim
diff --git a/lib/oldwrappers/sdl/sdl_image.nim b/lib/oldwrappers/sdl/sdl_image.nim
index a15afd575..a15afd575 100644..100755
--- a/lib/oldwrappers/sdl/sdl_image.nim
+++ b/lib/oldwrappers/sdl/sdl_image.nim
diff --git a/lib/oldwrappers/sdl/sdl_mixer.nim b/lib/oldwrappers/sdl/sdl_mixer.nim
index a17ef09d4..a17ef09d4 100644..100755
--- a/lib/oldwrappers/sdl/sdl_mixer.nim
+++ b/lib/oldwrappers/sdl/sdl_mixer.nim
diff --git a/lib/oldwrappers/sdl/sdl_mixer_nosmpeg.nim b/lib/oldwrappers/sdl/sdl_mixer_nosmpeg.nim
index 879867607..879867607 100644..100755
--- a/lib/oldwrappers/sdl/sdl_mixer_nosmpeg.nim
+++ b/lib/oldwrappers/sdl/sdl_mixer_nosmpeg.nim
diff --git a/lib/oldwrappers/sdl/sdl_net.nim b/lib/oldwrappers/sdl/sdl_net.nim
index f27a674ae..f27a674ae 100644..100755
--- a/lib/oldwrappers/sdl/sdl_net.nim
+++ b/lib/oldwrappers/sdl/sdl_net.nim
diff --git a/lib/oldwrappers/sdl/sdl_ttf.nim b/lib/oldwrappers/sdl/sdl_ttf.nim
index 724c2f634..724c2f634 100644..100755
--- a/lib/oldwrappers/sdl/sdl_ttf.nim
+++ b/lib/oldwrappers/sdl/sdl_ttf.nim
diff --git a/lib/oldwrappers/sdl/smpeg.nim b/lib/oldwrappers/sdl/smpeg.nim
index 733a3fcf9..733a3fcf9 100644..100755
--- a/lib/oldwrappers/sdl/smpeg.nim
+++ b/lib/oldwrappers/sdl/smpeg.nim
diff --git a/lib/oldwrappers/sqlite3.nim b/lib/oldwrappers/sqlite3.nim
index 7dd33f296..7dd33f296 100644..100755
--- a/lib/oldwrappers/sqlite3.nim
+++ b/lib/oldwrappers/sqlite3.nim
diff --git a/lib/oldwrappers/tcl.nim b/lib/oldwrappers/tcl.nim
index 813714ecd..813714ecd 100644..100755
--- a/lib/oldwrappers/tcl.nim
+++ b/lib/oldwrappers/tcl.nim
diff --git a/lib/oldwrappers/x11/cursorfont.nim b/lib/oldwrappers/x11/cursorfont.nim
index b262ad7c1..b262ad7c1 100644..100755
--- a/lib/oldwrappers/x11/cursorfont.nim
+++ b/lib/oldwrappers/x11/cursorfont.nim
diff --git a/lib/oldwrappers/x11/keysym.nim b/lib/oldwrappers/x11/keysym.nim
index b1fe13b80..b1fe13b80 100644..100755
--- a/lib/oldwrappers/x11/keysym.nim
+++ b/lib/oldwrappers/x11/keysym.nim
diff --git a/lib/oldwrappers/x11/x.nim b/lib/oldwrappers/x11/x.nim
index aa6e7f821..aa6e7f821 100644..100755
--- a/lib/oldwrappers/x11/x.nim
+++ b/lib/oldwrappers/x11/x.nim
diff --git a/lib/oldwrappers/x11/xatom.nim b/lib/oldwrappers/x11/xatom.nim
index b2e1dca91..b2e1dca91 100644..100755
--- a/lib/oldwrappers/x11/xatom.nim
+++ b/lib/oldwrappers/x11/xatom.nim
diff --git a/lib/oldwrappers/x11/xcms.nim b/lib/oldwrappers/x11/xcms.nim
index 57aad6ae0..57aad6ae0 100644..100755
--- a/lib/oldwrappers/x11/xcms.nim
+++ b/lib/oldwrappers/x11/xcms.nim
diff --git a/lib/oldwrappers/x11/xf86dga.nim b/lib/oldwrappers/x11/xf86dga.nim
index 376f11861..376f11861 100644..100755
--- a/lib/oldwrappers/x11/xf86dga.nim
+++ b/lib/oldwrappers/x11/xf86dga.nim
diff --git a/lib/oldwrappers/x11/xf86vmode.nim b/lib/oldwrappers/x11/xf86vmode.nim
index 18a922cab..18a922cab 100644..100755
--- a/lib/oldwrappers/x11/xf86vmode.nim
+++ b/lib/oldwrappers/x11/xf86vmode.nim
diff --git a/lib/oldwrappers/x11/xi.nim b/lib/oldwrappers/x11/xi.nim
index d1b9f7846..d1b9f7846 100644..100755
--- a/lib/oldwrappers/x11/xi.nim
+++ b/lib/oldwrappers/x11/xi.nim
diff --git a/lib/oldwrappers/x11/xinerama.nim b/lib/oldwrappers/x11/xinerama.nim
index 96f5d7da3..96f5d7da3 100644..100755
--- a/lib/oldwrappers/x11/xinerama.nim
+++ b/lib/oldwrappers/x11/xinerama.nim
diff --git a/lib/oldwrappers/x11/xkb.nim b/lib/oldwrappers/x11/xkb.nim
index f1b0448a8..f1b0448a8 100644..100755
--- a/lib/oldwrappers/x11/xkb.nim
+++ b/lib/oldwrappers/x11/xkb.nim
diff --git a/lib/oldwrappers/x11/xkblib.nim b/lib/oldwrappers/x11/xkblib.nim
index 92d438a60..92d438a60 100644..100755
--- a/lib/oldwrappers/x11/xkblib.nim
+++ b/lib/oldwrappers/x11/xkblib.nim
diff --git a/lib/oldwrappers/x11/xlib.nim b/lib/oldwrappers/x11/xlib.nim
index 19ebda9e0..19ebda9e0 100644..100755
--- a/lib/oldwrappers/x11/xlib.nim
+++ b/lib/oldwrappers/x11/xlib.nim
diff --git a/lib/oldwrappers/x11/xrandr.nim b/lib/oldwrappers/x11/xrandr.nim
index ee6f1705b..ee6f1705b 100644..100755
--- a/lib/oldwrappers/x11/xrandr.nim
+++ b/lib/oldwrappers/x11/xrandr.nim
diff --git a/lib/oldwrappers/x11/xrender.nim b/lib/oldwrappers/x11/xrender.nim
index 7b85fc9a7..7b85fc9a7 100644..100755
--- a/lib/oldwrappers/x11/xrender.nim
+++ b/lib/oldwrappers/x11/xrender.nim
diff --git a/lib/oldwrappers/x11/xresource.nim b/lib/oldwrappers/x11/xresource.nim
index ddb2a89c2..ddb2a89c2 100644..100755
--- a/lib/oldwrappers/x11/xresource.nim
+++ b/lib/oldwrappers/x11/xresource.nim
diff --git a/lib/oldwrappers/x11/xshm.nim b/lib/oldwrappers/x11/xshm.nim
index e56bd87b1..e56bd87b1 100644..100755
--- a/lib/oldwrappers/x11/xshm.nim
+++ b/lib/oldwrappers/x11/xshm.nim
diff --git a/lib/oldwrappers/x11/xutil.nim b/lib/oldwrappers/x11/xutil.nim
index 563702123..563702123 100644..100755
--- a/lib/oldwrappers/x11/xutil.nim
+++ b/lib/oldwrappers/x11/xutil.nim
diff --git a/lib/oldwrappers/x11/xv.nim b/lib/oldwrappers/x11/xv.nim
index 45ab61418..45ab61418 100644..100755
--- a/lib/oldwrappers/x11/xv.nim
+++ b/lib/oldwrappers/x11/xv.nim
diff --git a/lib/oldwrappers/x11/xvlib.nim b/lib/oldwrappers/x11/xvlib.nim
index 19fd0d000..19fd0d000 100644..100755
--- a/lib/oldwrappers/x11/xvlib.nim
+++ b/lib/oldwrappers/x11/xvlib.nim
diff --git a/lib/oldwrappers/zip/libzip.nim b/lib/oldwrappers/zip/libzip.nim
index 2f8abc46c..2f8abc46c 100644..100755
--- a/lib/oldwrappers/zip/libzip.nim
+++ b/lib/oldwrappers/zip/libzip.nim
diff --git a/lib/oldwrappers/zip/zlib.nim b/lib/oldwrappers/zip/zlib.nim
index 9b49b9663..9b49b9663 100644..100755
--- a/lib/oldwrappers/zip/zlib.nim
+++ b/lib/oldwrappers/zip/zlib.nim
diff --git a/lib/oldwrappers/zip/zzip.nim b/lib/oldwrappers/zip/zzip.nim
index a656322ee..a656322ee 100644..100755
--- a/lib/oldwrappers/zip/zzip.nim
+++ b/lib/oldwrappers/zip/zzip.nim
diff --git a/lib/pure/pegs.nim b/lib/pure/pegs.nim
index 201f13111..e5a655b2e 100755
--- a/lib/pure/pegs.nim
+++ b/lib/pure/pegs.nim
@@ -1371,7 +1371,27 @@ proc peg*(pattern: string): TPeg =
   ##   peg"{\ident} \s* '=' \s* {.*}"
   result = parsePeg(pattern, "pattern")
 
+proc escapePeg*(s: string): string = 
+  ## escapes `s` so that it is matched verbatim when used as a peg.
+  result = ""
+  var inQuote = false
+  for c in items(s):  
+    case c
+    of '\0'..'\31', '\'', '"', '\\': 
+      if inQuote: 
+        result.add('\'')
+        inQuote = false
+      result.add("\\x")
+      result.add(toHex(ord(c), 2))
+    else:
+      if not inQuote: 
+        result.add('\'')
+        inQuote = true
+      result.add(c)
+  if inQuote: result.add('\'')
+
 when isMainModule:
+  assert escapePeg("abc''def'") == r"'abc'\x27\x27'def'\x27"
   assert match("(a b c)", peg"'(' @ ')'")
   assert match("W_HI_Le", peg"\y 'while'")
   assert(not match("W_HI_L", peg"\y 'while'"))
diff --git a/lib/pure/re.nim b/lib/pure/re.nim
index b4aa75637..dfa191963 100755
--- a/lib/pure/re.nim
+++ b/lib/pure/re.nim
@@ -273,6 +273,18 @@ proc split*(s: string, sep: TRegEx): seq[string] =
   ## Splits the string `s` into substrings.
   accumulateResult(split(s, sep))
   
+proc escapeRe*(s: string): string = 
+  ## escapes `s` so that it is matched verbatim when used as a regular 
+  ## expression.
+  result = ""
+  for c in items(s):
+    case c
+    of 'a'..'z', 'A'..'Z', '0'..'9', '_':
+      result.add(c)
+    else: 
+      result.add("\\x")
+      result.add(toHex(ord(c), 2))
+  
 const ## common regular expressions
   reIdentifier* = r"\b[a-zA-Z_]+[a-zA-Z_0-9]*\b"  ## describes an identifier
   reNatural* = r"\b\d+\b" ## describes a natural number
diff --git a/lib/wrappers/gtk/gdk2.nim b/lib/wrappers/gtk/gdk2.nim
index 04840f24a..3be2c4027 100755
--- a/lib/wrappers/gtk/gdk2.nim
+++ b/lib/wrappers/gtk/gdk2.nim
@@ -1012,11 +1012,11 @@ proc layout_line*(drawable: PDrawable, gc: PGC, x: gint, y: gint,
 proc layout*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
                   layout: PLayout){.cdecl, dynlib: lib, 
     importc: "gdk_draw_layout".}
-proc layout_line_with_colors*(drawable: PDrawable, gc: PGC, x: gint, 
+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_with_colors*(drawable: PDrawable, gc: PGC, x: gint, y: gint, 
+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".}
@@ -1210,7 +1210,7 @@ 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_with_values*(drawable: PDrawable, values: PGCValues, 
+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, 
@@ -2844,7 +2844,7 @@ 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_with_rect*(region: PRegion, rect: PRectangle){.cdecl, 
+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".}
@@ -3133,15 +3133,15 @@ const
   bm_TWindowObject_destroyed* = 0x0018'i16
   bp_TWindowObject_destroyed* = 3'i16
 
-proc WindowObject_guffaw_gravity*(a: var TWindowObject): guint
-proc WindowObject_set_guffaw_gravity*(a: var TWindowObject, 
+proc WindowObject_guffaw_gravity*(a: PWindowObject): guint
+proc WindowObject_set_guffaw_gravity*(a: PWindowObject, 
                                       `guffaw_gravity`: guint)
-proc WindowObject_input_only*(a: var TWindowObject): guint
-proc WindowObject_set_input_only*(a: var TWindowObject, `input_only`: guint)
-proc WindowObject_modal_hint*(a: var TWindowObject): guint
-proc WindowObject_set_modal_hint*(a: var TWindowObject, `modal_hint`: guint)
-proc WindowObject_destroyed*(a: var TWindowObject): guint
-proc WindowObject_set_destroyed*(a: var TWindowObject, `destroyed`: 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{.
@@ -3800,39 +3800,39 @@ proc WINDOW_GET_CLASS*(obj: Pointer): PWindowObjectClass =
 proc WINDOW_OBJECT*(anObject: Pointer): PWindowObject = 
   result = cast[PWindowObject](WINDOW(anObject))
 
-proc WindowObject_guffaw_gravity*(a: var TWindowObject): guint = 
+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: var TWindowObject, 
+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: var TWindowObject): guint = 
+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: var TWindowObject, `input_only`: guint) = 
+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: var TWindowObject): guint = 
+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: var TWindowObject, `modal_hint`: guint) = 
+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: var TWindowObject): guint = 
+proc WindowObject_destroyed*(a: PWindowObject): guint = 
   result = (a.flag0 and bm_TWindowObject_destroyed) shr
       bp_TWindowObject_destroyed
 
-proc WindowObject_set_destroyed*(a: var TWindowObject, `destroyed`: guint) = 
+proc WindowObject_set_destroyed*(a: PWindowObject, `destroyed`: guint) = 
   a.flag0 = a.flag0 or
       (int16(`destroyed` shl bp_TWindowObject_destroyed) and
       bm_TWindowObject_destroyed)
diff --git a/lib/wrappers/gtk/gdk2pixbuf.nim b/lib/wrappers/gtk/gdk2pixbuf.nim
new file mode 100755
index 000000000..e866e51ff
--- /dev/null
+++ b/lib/wrappers/gtk/gdk2pixbuf.nim
@@ -0,0 +1,271 @@
+{.deadCodeElim: on.}
+import 
+  glib2
+
+when defined(win32): 
+  const 
+    pixbuflib = "libgdk_pixbuf-2.0-0.dll"
+elif defined(darwin): 
+  const 
+    pixbuflib = "gdk_pixbuf-2.0.0"
+  # 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/glib2.nim b/lib/wrappers/gtk/glib2.nim
new file mode 100755
index 000000000..bfa65471a
--- /dev/null
+++ b/lib/wrappers/gtk/glib2.nim
@@ -0,0 +1,4498 @@
+{.deadCodeElim: on.}
+when defined(windows): 
+  const 
+    gliblib = "libglib-2.0-0.dll"
+    gmodulelib = "libgmodule-2.0-0.dll"
+    gobjectlib = "libgobject-2.0-0.dll"
+else: 
+  const 
+    gliblib = "libglib-2.0.so"
+    gmodulelib = "libgmodule-2.0.so"
+    gobjectlib = "libgobject-2.0.so"
+# 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* = bool
+  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.} = 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
+
+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)
+
+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.} = 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.} = 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)
+
+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()
diff --git a/lib/wrappers/gtk/gtk2.nim b/lib/wrappers/gtk/gtk2.nim
index b736f1395..11b94c870 100755
--- a/lib/wrappers/gtk/gtk2.nim
+++ b/lib/wrappers/gtk/gtk2.nim
@@ -3554,10 +3554,10 @@ 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: var TWidgetAuxInfo): guint
-proc set_x_set*(a: var TWidgetAuxInfo, x_set: guint)
-proc y_set*(a: var TWidgetAuxInfo): guint
-proc set_y_set*(a: var TWidgetAuxInfo, y_set: guint)
+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, 
@@ -3843,8 +3843,8 @@ 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: var TAccelKey): guint
-proc set_accel_flags*(a: var TAccelKey, `accel_flags`: guint)
+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, 
@@ -3915,16 +3915,15 @@ 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: var TContainer): guint
-proc set_border_width*(a: var TContainer, `border_width`: guint)
-proc need_resize*(a: var TContainer): guint
-proc set_need_resize*(a: var TContainer, `need_resize`: guint)
+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: var TContainer, `resize_mode`: guint)
-proc reallocate_redraws*(a: var TContainer): guint
-proc set_reallocate_redraws*(a: var TContainer, `reallocate_redraws`: guint)
-proc has_focus_chain*(a: var TContainer): guint
-proc set_has_focus_chain*(a: var TContainer, `has_focus_chain`: 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){.
@@ -4058,43 +4057,43 @@ 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: var TWindow): guint
-proc set_allow_shrink*(a: var TWindow, `allow_shrink`: guint)
-proc allow_grow*(a: var TWindow): guint
-proc set_allow_grow*(a: var TWindow, `allow_grow`: guint)
-proc configure_notify_received*(a: var TWindow): guint
-proc set_configure_notify_received*(a: var TWindow, 
+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: var TWindow): guint
-proc set_need_default_position*(a: var TWindow, `need_default_position`: guint)
-proc need_default_size*(a: var TWindow): guint
-proc set_need_default_size*(a: var TWindow, `need_default_size`: guint)
-proc position*(a: var TWindow): guint
-proc set_position*(a: var TWindow, `position`: guint)
-proc get_type*(a: var TWindow): guint
-proc set_type*(a: var TWindow, `type`: guint)
-proc has_user_ref_count*(a: var TWindow): guint
-proc set_has_user_ref_count*(a: var TWindow, `has_user_ref_count`: guint)
-proc has_focus*(a: var TWindow): guint
-proc set_has_focus*(a: var TWindow, `has_focus`: guint)
-proc modal*(a: var TWindow): guint
-proc set_modal*(a: var TWindow, `modal`: guint)
-proc destroy_with_parent*(a: var TWindow): guint
-proc set_destroy_with_parent*(a: var TWindow, `destroy_with_parent`: guint)
-proc has_frame*(a: var TWindow): guint
-proc set_has_frame*(a: var TWindow, `has_frame`: guint)
-proc iconify_initially*(a: var TWindow): guint
-proc set_iconify_initially*(a: var TWindow, `iconify_initially`: guint)
-proc stick_initially*(a: var TWindow): guint
-proc set_stick_initially*(a: var TWindow, `stick_initially`: guint)
-proc maximize_initially*(a: var TWindow): guint
-proc set_maximize_initially*(a: var TWindow, `maximize_initially`: guint)
-proc decorated*(a: var TWindow): guint
-proc set_decorated*(a: var TWindow, `decorated`: guint)
-proc type_hint*(a: var TWindow): guint
-proc set_type_hint*(a: var TWindow, `type_hint`: guint)
-proc gravity*(a: var TWindow): guint
-proc set_gravity*(a: var TWindow, `gravity`: 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 set_position*(a: gtk2.PWindow, `position`: 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
@@ -4287,14 +4286,14 @@ 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: var TLabel): guint
-proc set_jtype*(a: var TLabel, `jtype`: guint)
-proc wrap*(a: var TLabel): guint
-proc set_wrap*(a: var TLabel, `wrap`: guint)
-proc use_underline*(a: var TLabel): guint
-proc set_use_underline*(a: var TLabel, `use_underline`: guint)
-proc use_markup*(a: var TLabel): guint
-proc set_use_markup*(a: var TLabel, `use_markup`: guint)
+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".}
@@ -4364,8 +4363,8 @@ 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: var TAccelLabelClass): guint
-proc set_latin1_to_char*(a: var TAccelLabelClass, `latin1_to_char`: guint)
+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, 
@@ -4521,12 +4520,12 @@ const
 
 proc entry_add*(binding_set: PBindingSet, keyval: guint, 
                         modifiers: gdk2.TModifierType)
-proc parsed*(a: var TBindingSet): guint
-proc set_parsed*(a: var TBindingSet, `parsed`: guint)
-proc destroyed*(a: var TBindingEntry): guint
-proc set_destroyed*(a: var TBindingEntry, `destroyed`: guint)
-proc in_emission*(a: var TBindingEntry): guint
-proc set_in_emission*(a: var TBindingEntry, `in_emission`: guint)
+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, 
@@ -4576,16 +4575,16 @@ 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: var TBox): guint
-proc set_homogeneous*(a: var TBox, `homogeneous`: guint)
-proc expand*(a: var TBoxChild): guint
-proc set_expand*(a: var TBoxChild, `expand`: guint)
-proc fill*(a: var TBoxChild): guint
-proc set_fill*(a: var TBoxChild, `fill`: guint)
-proc pack*(a: var TBoxChild): guint
-proc set_pack*(a: var TBoxChild, `pack`: guint)
-proc is_secondary*(a: var TBoxChild): guint
-proc set_is_secondary*(a: var TBoxChild, `is_secondary`: guint)
+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, 
@@ -4660,26 +4659,26 @@ 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: var TButton): guint
-proc set_constructed*(a: var TButton, `constructed`: guint)
-proc in_button*(a: var TButton): guint
-proc set_in_button*(a: var TButton, `in_button`: guint)
-proc button_down*(a: var TButton): guint
-proc set_button_down*(a: var TButton, `button_down`: guint)
-proc relief*(a: var TButton): guint
-proc set_relief*(a: var TButton, `relief`: guint)
-proc use_underline*(a: var TButton): guint
-proc set_use_underline*(a: var TButton, `use_underline`: guint)
-proc use_stock*(a: var TButton): guint
-proc set_use_stock*(a: var TButton, `use_stock`: guint)
-proc depressed*(a: var TButton): guint
-proc set_depressed*(a: var TButton, `depressed`: guint)
-proc depress_on_activate*(a: var TButton): guint
-proc set_depress_on_activate*(a: var TButton, `depress_on_activate`: guint)
+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 set_relief*(a: PButton, `relief`: 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_with_label*(`label`: cstring): PButton{.cdecl, dynlib: lib, 
+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".}
@@ -4794,16 +4793,16 @@ 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: var TCellRenderer): guint
-proc set_mode*(a: var TCellRenderer, `mode`: guint)
-proc visible*(a: var TCellRenderer): guint
-proc set_visible*(a: var TCellRenderer, `visible`: guint)
-proc is_expander*(a: var TCellRenderer): guint
-proc set_is_expander*(a: var TCellRenderer, `is_expander`: guint)
-proc is_expanded*(a: var TCellRenderer): guint
-proc set_is_expanded*(a: var TCellRenderer, `is_expanded`: guint)
-proc cell_background_set*(a: var TCellRenderer): guint
-proc set_cell_background_set*(a: var TCellRenderer, `cell_background_set`: guint)
+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, 
@@ -4860,26 +4859,26 @@ 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: var TCellRendererText): guint
-proc set_strikethrough*(a: var TCellRendererText, `strikethrough`: guint)
-proc editable*(a: var TCellRendererText): guint
-proc set_editable*(a: var TCellRendererText, `editable`: guint)
-proc scale_set*(a: var TCellRendererText): guint
-proc set_scale_set*(a: var TCellRendererText, `scale_set`: guint)
-proc foreground_set*(a: var TCellRendererText): guint
-proc set_foreground_set*(a: var TCellRendererText, `foreground_set`: guint)
-proc background_set*(a: var TCellRendererText): guint
-proc set_background_set*(a: var TCellRendererText, `background_set`: guint)
-proc underline_set*(a: var TCellRendererText): guint
-proc set_underline_set*(a: var TCellRendererText, `underline_set`: guint)
-proc rise_set*(a: var TCellRendererText): guint
-proc set_rise_set*(a: var TCellRendererText, `rise_set`: guint)
-proc strikethrough_set*(a: var TCellRendererText): guint
-proc set_strikethrough_set*(a: var TCellRendererText, `strikethrough_set`: guint)
-proc editable_set*(a: var TCellRendererText): guint
-proc set_editable_set*(a: var TCellRendererText, `editable_set`: guint)
-proc calc_fixed_height*(a: var TCellRendererText): guint
-proc set_calc_fixed_height*(a: var TCellRendererText, `calc_fixed_height`: guint)
+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, 
@@ -4900,12 +4899,12 @@ 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: var TCellRendererToggle): guint
-proc set_active*(a: var TCellRendererToggle, `active`: guint)
-proc activatable*(a: var TCellRendererToggle): guint
-proc set_activatable*(a: var TCellRendererToggle, `activatable`: guint)
-proc radio*(a: var TCellRendererToggle): guint
-proc set_radio*(a: var TCellRendererToggle, `radio`: guint)
+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, 
@@ -4961,24 +4960,24 @@ 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: var TMenuItem): guint
-proc set_show_submenu_indicator*(a: var TMenuItem, 
+proc show_submenu_indicator*(a: PMenuItem): guint
+proc set_show_submenu_indicator*(a: PMenuItem, 
                                  `show_submenu_indicator`: guint)
-proc submenu_placement*(a: var TMenuItem): guint
-proc set_submenu_placement*(a: var TMenuItem, `submenu_placement`: guint)
-proc submenu_direction*(a: var TMenuItem): guint
-proc set_submenu_direction*(a: var TMenuItem, `submenu_direction`: guint)
-proc right_justify*(a: var TMenuItem): guint
-proc set_right_justify*(a: var TMenuItem, `right_justify`: guint)
-proc timer_from_keypress*(a: var TMenuItem): guint
-proc set_timer_from_keypress*(a: var TMenuItem, `timer_from_keypress`: guint)
-proc hide_on_activate*(a: var TMenuItemClass): guint
-proc set_hide_on_activate*(a: var TMenuItemClass, `hide_on_activate`: 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_with_label*(`label`: cstring): PMenuItem{.cdecl, dynlib: lib, 
+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".}
@@ -5025,17 +5024,17 @@ 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: var TToggleButton): guint
-proc set_active*(a: var TToggleButton, `active`: guint)
-proc draw_indicator*(a: var TToggleButton): guint
-proc set_draw_indicator*(a: var TToggleButton, `draw_indicator`: guint)
-proc inconsistent*(a: var TToggleButton): guint
-proc set_inconsistent*(a: var TToggleButton, `inconsistent`: guint)
+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_with_label*(`label`: cstring): PToggleButton{.cdecl, 
+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".}
@@ -5065,7 +5064,7 @@ 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_with_label*(`label`: cstring): PCheckButton{.cdecl, 
+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".}
@@ -5086,17 +5085,17 @@ 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: var TCheckMenuItem): guint
-proc set_active*(a: var TCheckMenuItem, `active`: guint)
-proc always_show_toggle*(a: var TCheckMenuItem): guint
-proc set_always_show_toggle*(a: var TCheckMenuItem, `always_show_toggle`: guint)
-proc inconsistent*(a: var TCheckMenuItem): guint
-proc set_inconsistent*(a: var TCheckMenuItem, `inconsistent`: guint)
+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*(): PWidget{.cdecl, dynlib: lib, 
                                       importc: "gtk_check_menu_item_new".}
-proc check_menu_item_new_with_label*(`label`: cstring): PWidget{.cdecl, 
+proc check_menu_item_new*(`label`: cstring): PWidget{.cdecl, 
     dynlib: lib, importc: "gtk_check_menu_item_new_with_label".}
 proc check_menu_item_new_with_mnemonic*(`label`: cstring): PWidget{.cdecl, 
     dynlib: lib, importc: "gtk_check_menu_item_new_with_mnemonic".}
@@ -5204,22 +5203,22 @@ proc UNSET_FLAG*(clist: PCList, flag: guint16)
 #proc GTK_CELL_PIXTEXT_get*(cell: pointer): PGtkCellPixText
 #proc GTK_CELL_WIDGET_get*(cell: pointer): PGtkCellWidget
 
-proc visible*(a: var TCListColumn): guint
-proc set_visible*(a: var TCListColumn, `visible`: guint)
-proc width_set*(a: var TCListColumn): guint
-proc set_width_set*(a: var TCListColumn, `width_set`: guint)
-proc resizeable*(a: var TCListColumn): guint
-proc set_resizeable*(a: var TCListColumn, `resizeable`: guint)
-proc auto_resize*(a: var TCListColumn): guint
-proc set_auto_resize*(a: var TCListColumn, `auto_resize`: guint)
-proc button_passive*(a: var TCListColumn): guint
-proc set_button_passive*(a: var TCListColumn, `button_passive`: guint)
-proc fg_set*(a: var TCListRow): guint
-proc set_fg_set*(a: var TCListRow, `fg_set`: guint)
-proc bg_set*(a: var TCListRow): guint
-proc set_bg_set*(a: var TCListRow, `bg_set`: guint)
-proc selectable*(a: var TCListRow): guint
-proc set_selectable*(a: var TCListRow, `selectable`: guint)
+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".}
@@ -5509,16 +5508,16 @@ 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: var TCombo): guint
-proc set_value_in_list*(a: var TCombo, `value_in_list`: guint)
-proc ok_if_empty*(a: var TCombo): guint
-proc set_ok_if_empty*(a: var TCombo, `ok_if_empty`: guint)
-proc case_sensitive*(a: var TCombo): guint
-proc set_case_sensitive*(a: var TCombo, `case_sensitive`: guint)
-proc use_arrows*(a: var TCombo): guint
-proc set_use_arrows*(a: var TCombo, `use_arrows`: guint)
-proc use_arrows_always*(a: var TCombo): guint
-proc set_use_arrows_always*(a: var TCombo, `use_arrows_always`: guint)
+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, 
@@ -5560,16 +5559,16 @@ 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: var TCTree): guint
-proc set_line_style*(a: var TCTree, `line_style`: guint)
-proc expander_style*(a: var TCTree): guint
-proc set_expander_style*(a: var TCTree, `expander_style`: guint)
-proc show_stub*(a: var TCTree): guint
-proc set_show_stub*(a: var TCTree, `show_stub`: guint)
-proc is_leaf*(a: var TCTreeRow): guint
-proc set_is_leaf*(a: var TCTreeRow, `is_leaf`: guint)
-proc expanded*(a: var TCTreeRow): guint
-proc set_expanded*(a: var TCTreeRow, `expanded`: guint)
+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".}
@@ -5920,20 +5919,20 @@ 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: var TMenuShell): guint
-proc set_active*(a: var TMenuShell, `active`: guint)
-proc have_grab*(a: var TMenuShell): guint
-proc set_have_grab*(a: var TMenuShell, `have_grab`: guint)
-proc have_xgrab*(a: var TMenuShell): guint
-proc set_have_xgrab*(a: var TMenuShell, `have_xgrab`: guint)
-proc ignore_leave*(a: var TMenuShell): guint
-proc set_ignore_leave*(a: var TMenuShell, `ignore_leave`: guint)
-proc menu_flag*(a: var TMenuShell): guint
-proc set_menu_flag*(a: var TMenuShell, `menu_flag`: guint)
-proc ignore_enter*(a: var TMenuShell): guint
-proc set_ignore_enter*(a: var TMenuShell, `ignore_enter`: guint)
-proc submenu_placement*(a: var TMenuShellClass): guint
-proc set_submenu_placement*(a: var TMenuShellClass, `submenu_placement`: guint)
+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, 
@@ -5979,23 +5978,23 @@ 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: var TMenu): guint
-proc set_needs_destruction_ref_count*(a: var TMenu, 
+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: var TMenu): guint
-proc set_torn_off*(a: var TMenu, `torn_off`: guint)
-proc tearoff_active*(a: var TMenu): guint
-proc set_tearoff_active*(a: var TMenu, `tearoff_active`: guint)
-proc scroll_fast*(a: var TMenu): guint
-proc set_scroll_fast*(a: var TMenu, `scroll_fast`: guint)
-proc upper_arrow_visible*(a: var TMenu): guint
-proc set_upper_arrow_visible*(a: var TMenu, `upper_arrow_visible`: guint)
-proc lower_arrow_visible*(a: var TMenu): guint
-proc set_lower_arrow_visible*(a: var TMenu, `lower_arrow_visible`: guint)
-proc upper_arrow_prelight*(a: var TMenu): guint
-proc set_upper_arrow_prelight*(a: var TMenu, `upper_arrow_prelight`: guint)
-proc lower_arrow_prelight*(a: var TMenu): guint
-proc set_lower_arrow_prelight*(a: var TMenu, `lower_arrow_prelight`: 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, 
@@ -6067,32 +6066,32 @@ 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: var TEntry): guint
-proc set_editable*(a: var TEntry, `editable`: guint)
-proc visible*(a: var TEntry): guint
-proc set_visible*(a: var TEntry, `visible`: guint)
-proc overwrite_mode*(a: var TEntry): guint
-proc set_overwrite_mode*(a: var TEntry, `overwrite_mode`: guint)
-proc in_drag*(a: var TEntry): guint
-proc set_in_drag*(a: var TEntry, `in_drag`: guint)
-proc cache_includes_preedit*(a: var TEntry): guint
-proc set_cache_includes_preedit*(a: var TEntry, `cache_includes_preedit`: guint)
-proc need_im_reset*(a: var TEntry): guint
-proc set_need_im_reset*(a: var TEntry, `need_im_reset`: guint)
-proc has_frame*(a: var TEntry): guint
-proc set_has_frame*(a: var TEntry, `has_frame`: guint)
-proc activates_default*(a: var TEntry): guint
-proc set_activates_default*(a: var TEntry, `activates_default`: guint)
-proc cursor_visible*(a: var TEntry): guint
-proc set_cursor_visible*(a: var TEntry, `cursor_visible`: guint)
-proc in_click*(a: var TEntry): guint
-proc set_in_click*(a: var TEntry, `in_click`: guint)
-proc is_cell_renderer*(a: var TEntry): guint
-proc set_is_cell_renderer*(a: var TEntry, `is_cell_renderer`: guint)
-proc editing_canceled*(a: var TEntry): guint
-proc set_editing_canceled*(a: var TEntry, `editing_canceled`: guint)
-proc mouse_cursor_obscured*(a: var TEntry): guint
-proc set_mouse_cursor_obscured*(a: var TEntry, `mouse_cursor_obscured`: guint)
+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, 
@@ -6436,18 +6435,18 @@ 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: var THandleBox): guint
-proc set_handle_position*(a: var THandleBox, `handle_position`: guint)
-proc float_window_mapped*(a: var THandleBox): guint
-proc set_float_window_mapped*(a: var THandleBox, `float_window_mapped`: guint)
-proc child_detached*(a: var THandleBox): guint
-proc set_child_detached*(a: var THandleBox, `child_detached`: guint)
-proc in_drag*(a: var THandleBox): guint
-proc set_in_drag*(a: var THandleBox, `in_drag`: guint)
-proc shrink_on_detach*(a: var THandleBox): guint
-proc set_shrink_on_detach*(a: var THandleBox, `shrink_on_detach`: guint)
-proc snap_edge*(a: var THandleBox): gint
-proc set_snap_edge*(a: var THandleBox, `snap_edge`: gint)
+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, 
@@ -6491,24 +6490,24 @@ 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: var TPaned): guint
-proc set_position_set*(a: var TPaned, `position_set`: guint)
-proc in_drag*(a: var TPaned): guint
-proc set_in_drag*(a: var TPaned, `in_drag`: guint)
-proc child1_shrink*(a: var TPaned): guint
-proc set_child1_shrink*(a: var TPaned, `child1_shrink`: guint)
-proc child1_resize*(a: var TPaned): guint
-proc set_child1_resize*(a: var TPaned, `child1_resize`: guint)
-proc child2_shrink*(a: var TPaned): guint
-proc set_child2_shrink*(a: var TPaned, `child2_shrink`: guint)
-proc child2_resize*(a: var TPaned): guint
-proc set_child2_resize*(a: var TPaned, `child2_resize`: guint)
-proc orientation*(a: var TPaned): guint
-proc set_orientation*(a: var TPaned, `orientation`: guint)
-proc in_recursion*(a: var TPaned): guint
-proc set_in_recursion*(a: var TPaned, `in_recursion`: guint)
-proc handle_prelit*(a: var TPaned): guint
-proc set_handle_prelit*(a: var TPaned, `handle_prelit`: guint)
+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".}
@@ -6639,8 +6638,8 @@ 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: var TRcStyle): guint
-proc set_engine_specified*(a: var TRcStyle, `engine_specified`: guint)
+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".}
@@ -6863,26 +6862,26 @@ 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: var TRange): guint
-proc set_inverted*(a: var TRange, `inverted`: guint)
-proc flippable*(a: var TRange): guint
-proc set_flippable*(a: var TRange, `flippable`: guint)
-proc has_stepper_a*(a: var TRange): guint
-proc set_has_stepper_a*(a: var TRange, `has_stepper_a`: guint)
-proc has_stepper_b*(a: var TRange): guint
-proc set_has_stepper_b*(a: var TRange, `has_stepper_b`: guint)
-proc has_stepper_c*(a: var TRange): guint
-proc set_has_stepper_c*(a: var TRange, `has_stepper_c`: guint)
-proc has_stepper_d*(a: var TRange): guint
-proc set_has_stepper_d*(a: var TRange, `has_stepper_d`: guint)
-proc need_recalc*(a: var TRange): guint
-proc set_need_recalc*(a: var TRange, `need_recalc`: guint)
-proc slider_size_fixed*(a: var TRange): guint
-proc set_slider_size_fixed*(a: var TRange, `slider_size_fixed`: guint)
-proc trough_click_forward*(a: var TRange): guint
-proc set_trough_click_forward*(a: var TRange, `trough_click_forward`: guint)
-proc update_pending*(a: var TRange): guint
-proc set_update_pending*(a: var TRange, `update_pending`: guint)
+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".}
@@ -6916,10 +6915,10 @@ 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: var TScale): guint
-proc set_draw_value*(a: var TScale, `draw_value`: guint)
-proc value_pos*(a: var TScale): guint
-proc set_value_pos*(a: var TScale, `value_pos`: guint)
+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".}
@@ -6947,7 +6946,7 @@ 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_with_range*(min: gdouble, max: gdouble, step: gdouble): PHScale{.
+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
@@ -7137,7 +7136,7 @@ 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_with_label*(`label`: cstring): PImageMenuItem{.cdecl, 
+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".}
@@ -7157,8 +7156,8 @@ 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: var TIMContextSimple): guint
-proc set_in_hex_sequence*(a: var TIMContextSimple, `in_hex_sequence`: guint)
+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, 
@@ -7253,7 +7252,7 @@ proc delete_entries*(ifactory: PItemFactory, n_entries: guint,
 proc popup*(ifactory: PItemFactory, x: guint, y: guint, 
                          mouse_button: guint, time: guint32){.cdecl, 
     dynlib: lib, importc: "gtk_item_factory_popup".}
-proc popup_with_data*(ifactory: PItemFactory, popup_data: gpointer, 
+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".}
@@ -7305,12 +7304,12 @@ 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: var TList): guint
-proc set_selection_mode*(a: var TList, `selection_mode`: guint)
-proc drag_selection*(a: var TList): guint
-proc set_drag_selection*(a: var TList, `drag_selection`: guint)
-proc add_mode*(a: var TList): guint
-proc set_add_mode*(a: var TList, `add_mode`: guint)
+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, 
@@ -7528,7 +7527,7 @@ 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_with_model*(child_model: PTreeModel): PTreeModel{.
+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".}
@@ -7559,8 +7558,8 @@ 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: var TListStore): guint
-proc set_columns_dirty*(a: var TListStore, `columns_dirty`: guint)
+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, 
@@ -7728,30 +7727,30 @@ 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: var TNotebook): guint
-proc set_show_tabs*(a: var TNotebook, `show_tabs`: guint)
-proc homogeneous*(a: var TNotebook): guint
-proc set_homogeneous*(a: var TNotebook, `homogeneous`: guint)
-proc show_border*(a: var TNotebook): guint
-proc set_show_border*(a: var TNotebook, `show_border`: guint)
-proc tab_pos*(a: var TNotebook): guint
-proc set_tab_pos*(a: var TNotebook, `tab_pos`: guint)
-proc scrollable*(a: var TNotebook): guint
-proc set_scrollable*(a: var TNotebook, `scrollable`: guint)
-proc in_child*(a: var TNotebook): guint
-proc set_in_child*(a: var TNotebook, `in_child`: guint)
-proc click_child*(a: var TNotebook): guint
-proc set_click_child*(a: var TNotebook, `click_child`: guint)
-proc button*(a: var TNotebook): guint
-proc set_button*(a: var TNotebook, `button`: guint)
-proc need_timer*(a: var TNotebook): guint
-proc set_need_timer*(a: var TNotebook, `need_timer`: guint)
-proc child_has_focus*(a: var TNotebook): guint
-proc set_child_has_focus*(a: var TNotebook, `child_has_focus`: guint)
-proc have_visible_child*(a: var TNotebook): guint
-proc set_have_visible_child*(a: var TNotebook, `have_visible_child`: guint)
-proc focus_out*(a: var TNotebook): guint
-proc set_focus_out*(a: var TNotebook, `focus_out`: guint)
+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 set_tab_pos*(a: PNotebook, `tab_pos`: 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".}
@@ -7854,12 +7853,12 @@ 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: var TOldEditable): guint
-proc set_has_selection*(a: var TOldEditable, `has_selection`: guint)
-proc editable*(a: var TOldEditable): guint
-proc set_editable*(a: var TOldEditable, `editable`: guint)
-proc visible*(a: var TOldEditable): guint
-proc set_visible*(a: var TOldEditable, `visible`: guint)
+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, 
@@ -7897,8 +7896,8 @@ 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: var TPixmap): guint
-proc set_build_insensitive*(a: var TPixmap, `build_insensitive`: guint)
+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, 
@@ -7919,8 +7918,8 @@ 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: var TPlug): guint
-proc set_same_app*(a: var TPlug, `same_app`: guint)
+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, 
@@ -7945,10 +7944,10 @@ 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: var TPreview): guint
-proc set_type*(a: var TPreview, `type`: guint)
-proc get_expand*(a: var TPreview): guint
-proc set_expand*(a: var TPreview, `expand`: guint)
+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".}
@@ -7986,12 +7985,12 @@ const
   bm_TGtkProgress_use_text_format* = 0x0004'i16
   bp_TGtkProgress_use_text_format* = 2'i16
 
-proc show_text*(a: var TProgress): guint
-proc set_show_text*(a: var TProgress, `show_text`: guint)
-proc activity_mode*(a: var TProgress): guint
-proc set_activity_mode*(a: var TProgress, `activity_mode`: guint)
-proc use_text_format*(a: var TProgress): guint
-proc set_use_text_format*(a: var TProgress, `use_text_format`: guint)
+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
@@ -8002,8 +8001,8 @@ 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: var TProgressBar): guint
-proc set_activity_dir*(a: var TProgressBar, `activity_dir`: guint)
+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, 
@@ -8039,13 +8038,13 @@ 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_with_label*(group: PGSList, `label`: cstring): PRadioButton{.
+proc radio_button_new*(group: PGSList, `label`: cstring): PRadioButton{.
     cdecl, dynlib: lib, importc: "gtk_radio_button_new_with_label".}
-proc new_with_label_from_widget*(group: PRadioButton, 
+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 new_with_mnemonic_from_widget*(group: PRadioButton, 
+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".}
@@ -8061,7 +8060,7 @@ 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_with_label*(group: PGSList, `label`: cstring): PRadioMenuItem{.
+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".}
@@ -8089,18 +8088,18 @@ 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: var TScrolledWindow): guint
-proc set_hscrollbar_policy*(a: var TScrolledWindow, `hscrollbar_policy`: guint)
-proc vscrollbar_policy*(a: var TScrolledWindow): guint
-proc set_vscrollbar_policy*(a: var TScrolledWindow, `vscrollbar_policy`: guint)
-proc hscrollbar_visible*(a: var TScrolledWindow): guint
-proc set_hscrollbar_visible*(a: var TScrolledWindow, `hscrollbar_visible`: guint)
-proc vscrollbar_visible*(a: var TScrolledWindow): guint
-proc set_vscrollbar_visible*(a: var TScrolledWindow, `vscrollbar_visible`: guint)
-proc window_placement*(a: var TScrolledWindow): guint
-proc set_window_placement*(a: var TScrolledWindow, `window_placement`: guint)
-proc focus_out*(a: var TScrolledWindow): guint
-proc set_focus_out*(a: var TScrolledWindow, `focus_out`: guint)
+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{.
@@ -8219,10 +8218,10 @@ 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: var TSizeGroup): guint
-proc set_have_width*(a: var TSizeGroup, `have_width`: guint)
-proc have_height*(a: var TSizeGroup): guint
-proc set_have_height*(a: var TSizeGroup, `have_height`: guint)
+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, 
@@ -8260,16 +8259,16 @@ 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: var TSocket): guint
-proc set_same_app*(a: var TSocket, `same_app`: guint)
-proc focus_in*(a: var TSocket): guint
-proc set_focus_in*(a: var TSocket, `focus_in`: guint)
-proc have_size*(a: var TSocket): guint
-proc set_have_size*(a: var TSocket, `have_size`: guint)
-proc need_map*(a: var TSocket): guint
-proc set_need_map*(a: var TSocket, `need_map`: guint)
-proc is_mapped*(a: var TSocket): guint
-proc set_is_mapped*(a: var TSocket, `is_mapped`: guint)
+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".}
@@ -8304,24 +8303,24 @@ 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: var TSpinButton): guint
-proc set_in_child*(a: var TSpinButton, `in_child`: guint)
-proc click_child*(a: var TSpinButton): guint
-proc set_click_child*(a: var TSpinButton, `click_child`: guint)
-proc button*(a: var TSpinButton): guint
-proc set_button*(a: var TSpinButton, `button`: guint)
-proc need_timer*(a: var TSpinButton): guint
-proc set_need_timer*(a: var TSpinButton, `need_timer`: guint)
-proc timer_calls*(a: var TSpinButton): guint
-proc set_timer_calls*(a: var TSpinButton, `timer_calls`: guint)
-proc digits*(a: var TSpinButton): guint
-proc set_digits*(a: var TSpinButton, `digits`: guint)
-proc numeric*(a: var TSpinButton): guint
-proc set_numeric*(a: var TSpinButton, `numeric`: guint)
-proc wrap*(a: var TSpinButton): guint
-proc set_wrap*(a: var TSpinButton, `wrap`: guint)
-proc snap_to_ticks*(a: var TSpinButton): guint
-proc set_snap_to_ticks*(a: var TSpinButton, `snap_to_ticks`: guint)
+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, 
@@ -8330,7 +8329,7 @@ proc configure*(spin_button: PSpinButton, adjustment: PAdjustment,
 proc spin_button_new*(adjustment: PAdjustment, climb_rate: gdouble, 
                       digits: guint): PSpinButton{.cdecl, dynlib: lib, 
     importc: "gtk_spin_button_new".}
-proc spin_button_new_with_range*(min: gdouble, max: gdouble, step: gdouble): PSpinButton{.
+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, 
@@ -8487,8 +8486,8 @@ const
   bm_TGtkStatusbar_has_resize_grip* = 0x0001'i16
   bp_TGtkStatusbar_has_resize_grip* = 0'i16
 
-proc has_resize_grip*(a: var TStatusbar): guint
-proc set_has_resize_grip*(a: var TStatusbar, `has_resize_grip`: guint)
+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, 
@@ -8539,30 +8538,30 @@ 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: var TTable): guint
-proc set_homogeneous*(a: var TTable, `homogeneous`: guint)
-proc xexpand*(a: var TTableChild): guint
-proc set_xexpand*(a: var TTableChild, `xexpand`: guint)
-proc yexpand*(a: var TTableChild): guint
-proc set_yexpand*(a: var TTableChild, `yexpand`: guint)
-proc xshrink*(a: var TTableChild): guint
-proc set_xshrink*(a: var TTableChild, `xshrink`: guint)
-proc yshrink*(a: var TTableChild): guint
-proc set_yshrink*(a: var TTableChild, `yshrink`: guint)
-proc xfill*(a: var TTableChild): guint
-proc set_xfill*(a: var TTableChild, `xfill`: guint)
-proc yfill*(a: var TTableChild): guint
-proc set_yfill*(a: var TTableChild, `yfill`: guint)
-proc need_expand*(a: var TTableRowCol): guint
-proc set_need_expand*(a: var TTableRowCol, `need_expand`: guint)
-proc need_shrink*(a: var TTableRowCol): guint
-proc set_need_shrink*(a: var TTableRowCol, `need_shrink`: guint)
-proc expand*(a: var TTableRowCol): guint
-proc set_expand*(a: var TTableRowCol, `expand`: guint)
-proc shrink*(a: var TTableRowCol): guint
-proc set_shrink*(a: var TTableRowCol, `shrink`: guint)
-proc empty*(a: var TTableRowCol): guint
-proc set_empty*(a: var TTableRowCol, `empty`: guint)
+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".}
@@ -8607,8 +8606,8 @@ 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: var TTearoffMenuItem): guint
-proc set_torn_off*(a: var TTearoffMenuItem, `torn_off`: guint)
+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, 
@@ -8910,57 +8909,57 @@ const
   bm_TGtkTextTag_pad3* = 0x00800000'i32
   bp_TGtkTextTag_pad3* = 23'i32
 
-proc bg_color_set*(a: var TTextTag): guint
-proc set_bg_color_set*(a: var TTextTag, `bg_color_set`: guint)
-proc bg_stipple_set*(a: var TTextTag): guint
-proc set_bg_stipple_set*(a: var TTextTag, `bg_stipple_set`: guint)
-proc fg_color_set*(a: var TTextTag): guint
-proc set_fg_color_set*(a: var TTextTag, `fg_color_set`: guint)
-proc scale_set*(a: var TTextTag): guint
-proc set_scale_set*(a: var TTextTag, `scale_set`: guint)
-proc fg_stipple_set*(a: var TTextTag): guint
-proc set_fg_stipple_set*(a: var TTextTag, `fg_stipple_set`: guint)
-proc justification_set*(a: var TTextTag): guint
-proc set_justification_set*(a: var TTextTag, `justification_set`: guint)
-proc left_margin_set*(a: var TTextTag): guint
-proc set_left_margin_set*(a: var TTextTag, `left_margin_set`: guint)
-proc indent_set*(a: var TTextTag): guint
-proc set_indent_set*(a: var TTextTag, `indent_set`: guint)
-proc rise_set*(a: var TTextTag): guint
-proc set_rise_set*(a: var TTextTag, `rise_set`: guint)
-proc strikethrough_set*(a: var TTextTag): guint
-proc set_strikethrough_set*(a: var TTextTag, `strikethrough_set`: guint)
-proc right_margin_set*(a: var TTextTag): guint
-proc set_right_margin_set*(a: var TTextTag, `right_margin_set`: guint)
-proc pixels_above_lines_set*(a: var TTextTag): guint
-proc set_pixels_above_lines_set*(a: var TTextTag, 
+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: var TTextTag): guint
-proc set_pixels_below_lines_set*(a: var TTextTag, 
+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: var TTextTag): guint
-proc set_pixels_inside_wrap_set*(a: var TTextTag, 
+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: var TTextTag): guint
-proc set_tabs_set*(a: var TTextTag, `tabs_set`: guint)
-proc underline_set*(a: var TTextTag): guint
-proc set_underline_set*(a: var TTextTag, `underline_set`: guint)
-proc wrap_mode_set*(a: var TTextTag): guint
-proc set_wrap_mode_set*(a: var TTextTag, `wrap_mode_set`: guint)
-proc bg_full_height_set*(a: var TTextTag): guint
-proc set_bg_full_height_set*(a: var TTextTag, `bg_full_height_set`: guint)
-proc invisible_set*(a: var TTextTag): guint
-proc set_invisible_set*(a: var TTextTag, `invisible_set`: guint)
-proc editable_set*(a: var TTextTag): guint
-proc set_editable_set*(a: var TTextTag, `editable_set`: guint)
-proc language_set*(a: var TTextTag): guint
-proc set_language_set*(a: var TTextTag, `language_set`: guint)
-proc pad1*(a: var TTextTag): guint
-proc set_pad1*(a: var TTextTag, `pad1`: guint)
-proc pad2*(a: var TTextTag): guint
-proc set_pad2*(a: var TTextTag, `pad2`: guint)
-proc pad3*(a: var TTextTag): guint
-proc set_pad3*(a: var TTextTag, `pad3`: 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
@@ -8981,24 +8980,24 @@ const
   bm_TGtkTextAppearance_pad4* = 0x0800'i16
   bp_TGtkTextAppearance_pad4* = 11'i16
 
-proc underline*(a: var TTextAppearance): guint
-proc set_underline*(a: var TTextAppearance, `underline`: guint)
-proc strikethrough*(a: var TTextAppearance): guint
-proc set_strikethrough*(a: var TTextAppearance, `strikethrough`: guint)
-proc draw_bg*(a: var TTextAppearance): guint
-proc set_draw_bg*(a: var TTextAppearance, `draw_bg`: guint)
-proc inside_selection*(a: var TTextAppearance): guint
-proc set_inside_selection*(a: var TTextAppearance, `inside_selection`: guint)
-proc is_text*(a: var TTextAppearance): guint
-proc set_is_text*(a: var TTextAppearance, `is_text`: guint)
-proc pad1*(a: var TTextAppearance): guint
-proc set_pad1*(a: var TTextAppearance, `pad1`: guint)
-proc pad2*(a: var TTextAppearance): guint
-proc set_pad2*(a: var TTextAppearance, `pad2`: guint)
-proc pad3*(a: var TTextAppearance): guint
-proc set_pad3*(a: var TTextAppearance, `pad3`: guint)
-proc pad4*(a: var TTextAppearance): guint
-proc set_pad4*(a: var TTextAppearance, `pad4`: guint)
+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
@@ -9017,22 +9016,22 @@ const
   bm_TGtkTextAttributes_pad4* = 0x0080'i16
   bp_TGtkTextAttributes_pad4* = 7'i16
 
-proc invisible*(a: var TTextAttributes): guint
-proc set_invisible*(a: var TTextAttributes, `invisible`: guint)
-proc bg_full_height*(a: var TTextAttributes): guint
-proc set_bg_full_height*(a: var TTextAttributes, `bg_full_height`: guint)
-proc editable*(a: var TTextAttributes): guint
-proc set_editable*(a: var TTextAttributes, `editable`: guint)
-proc realized*(a: var TTextAttributes): guint
-proc set_realized*(a: var TTextAttributes, `realized`: guint)
-proc pad1*(a: var TTextAttributes): guint
-proc set_pad1*(a: var TTextAttributes, `pad1`: guint)
-proc pad2*(a: var TTextAttributes): guint
-proc set_pad2*(a: var TTextAttributes, `pad2`: guint)
-proc pad3*(a: var TTextAttributes): guint
-proc set_pad3*(a: var TTextAttributes, `pad3`: guint)
-proc pad4*(a: var TTextAttributes): guint
-proc set_pad4*(a: var TTextAttributes, `pad4`: guint)
+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
@@ -9084,10 +9083,10 @@ const
   bm_TGtkTextMarkBody_not_deleteable* = 0x0002'i16
   bp_TGtkTextMarkBody_not_deleteable* = 1'i16
 
-proc visible*(a: var TTextMarkBody): guint
-proc set_visible*(a: var TTextMarkBody, `visible`: guint)
-proc not_deleteable*(a: var TTextMarkBody): guint
-proc set_not_deleteable*(a: var TTextMarkBody, `not_deleteable`: guint)
+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
@@ -9354,8 +9353,8 @@ 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: var TTextBuffer): guint
-proc set_modified*(a: var TTextBuffer, `modified`: guint)
+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, 
@@ -9517,20 +9516,20 @@ const
   bm_TGtkTextLayout_cursor_direction* = 0x0006'i16
   bp_TGtkTextLayout_cursor_direction* = 1'i16
 
-proc cursor_visible*(a: var TTextLayout): guint
-proc set_cursor_visible*(a: var TTextLayout, `cursor_visible`: guint)
-proc cursor_direction*(a: var TTextLayout): gint
-proc set_cursor_direction*(a: var TTextLayout, `cursor_direction`: gint)
+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: var TTextCursorDisplay): guint
-proc set_is_strong*(a: var TTextCursorDisplay, `is_strong`: guint)
-proc is_weak*(a: var TTextCursorDisplay): guint
-proc set_is_weak*(a: var TTextCursorDisplay, `is_weak`: guint)
+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, 
@@ -9671,28 +9670,28 @@ 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: var TTextView): guint
-proc set_editable*(a: var TTextView, `editable`: guint)
-proc overwrite_mode*(a: var TTextView): guint
-proc set_overwrite_mode*(a: var TTextView, `overwrite_mode`: guint)
-proc cursor_visible*(a: var TTextView): guint
-proc set_cursor_visible*(a: var TTextView, `cursor_visible`: guint)
-proc need_im_reset*(a: var TTextView): guint
-proc set_need_im_reset*(a: var TTextView, `need_im_reset`: guint)
-proc just_selected_element*(a: var TTextView): guint
-proc set_just_selected_element*(a: var TTextView, `just_selected_element`: guint)
-proc disable_scroll_on_focus*(a: var TTextView): guint
-proc set_disable_scroll_on_focus*(a: var TTextView, 
+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: var TTextView): guint
-proc set_onscreen_validated*(a: var TTextView, `onscreen_validated`: guint)
-proc mouse_cursor_obscured*(a: var TTextView): guint
-proc set_mouse_cursor_obscured*(a: var TTextView, `mouse_cursor_obscured`: 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_with_buffer*(buffer: PTextBuffer): PTextView{.cdecl, 
+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".}
@@ -9831,10 +9830,10 @@ 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: var TTipsQuery): guint
-proc set_emit_always*(a: var TTipsQuery, `emit_always`: guint)
-proc in_query*(a: var TTipsQuery): guint
-proc set_in_query*(a: var TTipsQuery, `in_query`: guint)
+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, 
@@ -9864,14 +9863,14 @@ 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: var TTooltips): guint
-proc set_delay*(a: var TTooltips, `delay`: guint)
-proc enabled*(a: var TTooltips): guint
-proc set_enabled*(a: var TTooltips, `enabled`: guint)
-proc have_grab*(a: var TTooltips): guint
-proc set_have_grab*(a: var TTooltips, `have_grab`: guint)
-proc use_sticky_delay*(a: var TTooltips): guint
-proc set_use_sticky_delay*(a: var TTooltips, `use_sticky_delay`: guint)
+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".}
@@ -9900,10 +9899,10 @@ 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: var TToolbar): guint
-proc set_style_set*(a: var TToolbar, `style_set`: guint)
-proc icon_size_set*(a: var TToolbar): guint
-proc set_icon_size_set*(a: var TToolbar, `icon_size_set`: guint)
+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".}
@@ -10002,12 +10001,12 @@ 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: var TTree): guint
-proc set_selection_mode*(a: var TTree, `selection_mode`: guint)
-proc view_mode*(a: var TTree): guint
-proc set_view_mode*(a: var TTree, `view_mode`: guint)
-proc view_line*(a: var TTree): guint
-proc set_view_line*(a: var TTree, `view_line`: guint)
+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, 
@@ -10082,13 +10081,13 @@ 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: var TTreeItem): guint
-proc set_expanded*(a: var TTreeItem, `expanded`: guint)
+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_with_label*(`label`: cstring): PTreeItem{.cdecl, dynlib: lib, 
+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".}
@@ -10160,8 +10159,8 @@ 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: var TTreeStore): guint
-proc set_columns_dirty*(a: var TTreeStore, `columns_dirty`: guint)
+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, 
@@ -10220,23 +10219,23 @@ 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: var TTreeViewColumn): guint
-proc set_visible*(a: var TTreeViewColumn, `visible`: guint)
-proc resizable*(a: var TTreeViewColumn): guint
-proc set_resizable*(a: var TTreeViewColumn, `resizable`: guint)
-proc clickable*(a: var TTreeViewColumn): guint
-proc set_clickable*(a: var TTreeViewColumn, `clickable`: guint)
-proc dirty*(a: var TTreeViewColumn): guint
-proc set_dirty*(a: var TTreeViewColumn, `dirty`: guint)
-proc show_sort_indicator*(a: var TTreeViewColumn): guint
-proc set_show_sort_indicator*(a: var TTreeViewColumn, 
+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: var TTreeViewColumn): guint
-proc set_maybe_reordered*(a: var TTreeViewColumn, `maybe_reordered`: guint)
-proc reorderable*(a: var TTreeViewColumn): guint
-proc set_reorderable*(a: var TTreeViewColumn, `reorderable`: guint)
-proc use_resized_width*(a: var TTreeViewColumn): guint
-proc set_use_resized_width*(a: var TTreeViewColumn, `use_resized_width`: 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, 
@@ -10477,28 +10476,28 @@ const
   bm_TGtkTreeViewPrivate_disable_popdown* = 0x0400'i16
   bp_TGtkTreeViewPrivate_disable_popdown* = 10'i16
 
-proc scroll_to_use_align*(a: var TTreeViewPrivate): guint
-proc set_scroll_to_use_align*(a: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint
-proc set_fixed_height_check*(a: var TTreeViewPrivate, 
+proc fixed_height_check*(a: PTreeViewPrivate): guint
+proc set_fixed_height_check*(a: PTreeViewPrivate, 
                              `fixed_height_check`: guint)
-proc reorderable*(a: var TTreeViewPrivate): guint
-proc set_reorderable*(a: var TTreeViewPrivate, `reorderable`: guint)
-proc header_has_focus*(a: var TTreeViewPrivate): guint
-proc set_header_has_focus*(a: var TTreeViewPrivate, `header_has_focus`: guint)
-proc drag_column_window_state*(a: var TTreeViewPrivate): guint
-proc set_drag_column_window_state*(a: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint
-proc set_has_rules*(a: var TTreeViewPrivate, `has_rules`: guint)
-proc mark_rows_col_dirty*(a: var TTreeViewPrivate): guint
-proc set_mark_rows_col_dirty*(a: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint
-proc set_enable_search*(a: var TTreeViewPrivate, `enable_search`: guint)
-proc disable_popdown*(a: var TTreeViewPrivate): guint
-proc set_disable_popdown*(a: var TTreeViewPrivate, `disable_popdown`: 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".}
@@ -10546,7 +10545,7 @@ 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_with_tree_view*(tree_view: PTreeView): PTreeSelection{.
+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, 
@@ -10582,7 +10581,7 @@ 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 view_new_with_model*(model: PTreeModel): PTreeView{.cdecl, 
+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".}
@@ -10785,7 +10784,7 @@ 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_with_range*(min: gdouble, max: gdouble, step: gdouble): PVScale{.
+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
@@ -11108,20 +11107,20 @@ proc WIDGET_DOUBLE_BUFFERED*(wid: pointer): gboolean =
 proc TYPE_REQUISITION*(): GType = 
   result = requisition_get_type()
 
-proc x_set*(a: var TWidgetAuxInfo): guint = 
+proc x_set*(a: PWidgetAuxInfo): guint = 
   result = (a.flag0 and bm_TGtkWidgetAuxInfo_x_set) shr
       bp_TGtkWidgetAuxInfo_x_set
 
-proc set_x_set*(a: var TWidgetAuxInfo, `x_set`: guint) = 
+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: var TWidgetAuxInfo): guint = 
+proc y_set*(a: PWidgetAuxInfo): guint = 
   result = (a.flag0 and bm_TGtkWidgetAuxInfo_y_set) shr
       bp_TGtkWidgetAuxInfo_y_set
 
-proc set_y_set*(a: var TWidgetAuxInfo, `y_set`: guint) = 
+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)
@@ -11191,11 +11190,11 @@ proc ACCEL_GROUP_GET_CLASS*(obj: pointer): PAccelGroupClass =
   result = cast[PAccelGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
       TYPE_ACCEL_GROUP()))
 
-proc accel_flags*(a: var TAccelKey): guint = 
+proc accel_flags*(a: PAccelKey): guint = 
   result = (a.flag0 and bm_TGtkAccelKey_accel_flags) shr
       bp_TGtkAccelKey_accel_flags
 
-proc set_accel_flags*(a: var TAccelKey, `accel_flags`: guint) = 
+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)
@@ -11228,20 +11227,15 @@ proc IS_RESIZE_CONTAINER*(widget: pointer): bool =
   result = (IS_CONTAINER(widget)) and
       ((resize_mode(cast[PContainer](widget))) != cint(RESIZE_PARENT))
 
-proc border_width*(a: var TContainer): guint = 
+proc border_width*(a: PContainer): guint = 
   result = (a.Container_flag0 and bm_TGtkContainer_border_width) shr
       bp_TGtkContainer_border_width
 
-proc set_border_width*(a: var TContainer, `border_width`: guint) = 
-  a.Container_flag0 = a.Container_flag0 or
-      ((`border_width` shl bp_TGtkContainer_border_width) and
-      bm_TGtkContainer_border_width)
-
-proc need_resize*(a: var TContainer): guint = 
+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: var TContainer, `need_resize`: guint) = 
+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)
@@ -11250,25 +11244,25 @@ 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: var TContainer, `resize_mode`: guint) = 
+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: var TContainer): guint = 
+proc reallocate_redraws*(a: PContainer): guint = 
   result = (a.Containerflag0 and bm_TGtkContainer_reallocate_redraws) shr
       bp_TGtkContainer_reallocate_redraws
 
-proc set_reallocate_redraws*(a: var TContainer, `reallocate_redraws`: guint) = 
+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: var TContainer): guint = 
+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: var TContainer, `has_focus_chain`: guint) = 
+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)
@@ -11313,157 +11307,157 @@ proc IS_WINDOW_CLASS*(klass: pointer): bool =
 proc WINDOW_GET_CLASS*(obj: pointer): PWindowClass = 
   result = cast[PWindowClass](CHECK_GET_CLASS(obj, gtk2.TYPE_WINDOW()))
 
-proc allow_shrink*(a: var TWindow): guint = 
+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: var TWindow, `allow_shrink`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `allow_grow`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, 
+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: var TWindow): guint = 
+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: var TWindow, `need_default_position`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `need_default_size`: guint) = 
+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: var TWindow): guint = 
+proc position*(a: gtk2.PWindow): guint = 
   result = (a.Window_flag0 and bm_TGtkWindow_position) shr
       bp_TGtkWindow_position
 
-proc set_position*(a: var TWindow, `position`: guint) = 
+proc set_position*(a: gtk2.PWindow, `position`: guint) = 
   a.Window_flag0 = a.Window_flag0 or
       ((`position` shl bp_TGtkWindow_position) and bm_TGtkWindow_position)
 
-proc get_type*(a: var TWindow): guint = 
+proc get_type*(a: gtk2.PWindow): guint = 
   result = (a.Window_flag0 and bm_TGtkWindow_type) shr bp_TGtkWindow_type
 
-proc set_type*(a: var TWindow, `type`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `has_user_ref_count`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `has_focus`: guint) = 
+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: var TWindow): guint = 
+proc modal*(a: gtk2.PWindow): guint = 
   result = (a.Window_flag0 and bm_TGtkWindow_modal) shr bp_TGtkWindow_modal
 
-proc set_modal*(a: var TWindow, `modal`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `destroy_with_parent`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `has_frame`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `iconify_initially`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `stick_initially`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `maximize_initially`: guint) = 
+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: var TWindow): guint = 
+proc decorated*(a: gtk2.PWindow): guint = 
   result = (a.Windowflag0 and bm_TGtkWindow_decorated) shr
       bp_TGtkWindow_decorated
 
-proc set_decorated*(a: var TWindow, `decorated`: guint) = 
+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: var TWindow): guint = 
+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: var TWindow, `type_hint`: guint) = 
+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: var TWindow): guint = 
+proc gravity*(a: gtk2.PWindow): guint = 
   result = (a.Windowflag0 and bm_TGtkWindow_gravity) shr
       bp_TGtkWindow_gravity
 
-proc set_gravity*(a: var TWindow, `gravity`: guint) = 
+proc set_gravity*(a: gtk2.PWindow, `gravity`: guint) = 
   a.Windowflag0 = a.Windowflag0 or
       ((`gravity` shl bp_TGtkWindow_gravity) and bm_TGtkWindow_gravity)
 
@@ -11488,9 +11482,6 @@ proc WINDOW_GROUP_GET_CLASS*(obj: pointer): PWindowGroupClass =
   result = cast[PWindowGroupClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
       TYPE_WINDOW_GROUP()))
 
-proc position*(window: PWindow, position: TWindowPosition) = 
-  set_position(window, position)
-
 proc TYPE_LABEL*(): GType = 
   result = label_get_type()
 
@@ -11509,34 +11500,34 @@ proc IS_LABEL_CLASS*(klass: pointer): bool =
 proc LABEL_GET_CLASS*(obj: pointer): PLabelClass = 
   result = cast[PLabelClass](CHECK_GET_CLASS(obj, TYPE_LABEL()))
 
-proc jtype*(a: var TLabel): guint = 
+proc jtype*(a: PLabel): guint = 
   result = (a.Labelflag0 and bm_TGtkLabel_jtype) shr bp_TGtkLabel_jtype
 
-proc set_jtype*(a: var TLabel, `jtype`: guint) = 
+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: var TLabel): guint = 
+proc wrap*(a: PLabel): guint = 
   result = (a.Labelflag0 and bm_TGtkLabel_wrap) shr bp_TGtkLabel_wrap
 
-proc set_wrap*(a: var TLabel, `wrap`: guint) = 
+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: var TLabel): guint = 
+proc use_underline*(a: PLabel): guint = 
   result = (a.Labelflag0 and bm_TGtkLabel_use_underline) shr
       bp_TGtkLabel_use_underline
 
-proc set_use_underline*(a: var TLabel, `use_underline`: guint) = 
+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: var TLabel): guint = 
+proc use_markup*(a: PLabel): guint = 
   result = (a.Labelflag0 and bm_TGtkLabel_use_markup) shr
       bp_TGtkLabel_use_markup
 
-proc set_use_markup*(a: var TLabel, `use_markup`: guint) = 
+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)
@@ -11559,11 +11550,11 @@ proc IS_ACCEL_LABEL_CLASS*(klass: pointer): bool =
 proc ACCEL_LABEL_GET_CLASS*(obj: pointer): PAccelLabelClass = 
   result = cast[PAccelLabelClass](CHECK_GET_CLASS(obj, TYPE_ACCEL_LABEL()))
 
-proc latin1_to_char*(a: var TAccelLabelClass): guint = 
+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: var TAccelLabelClass, `latin1_to_char`: guint) = 
+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)
@@ -11679,29 +11670,29 @@ proc IS_ARROW_CLASS*(klass: pointer): bool =
 proc ARROW_GET_CLASS*(obj: pointer): PArrowClass = 
   result = cast[PArrowClass](CHECK_GET_CLASS(obj, TYPE_ARROW()))
 
-proc parsed*(a: var TBindingSet): guint = 
+proc parsed*(a: PBindingSet): guint = 
   result = (a.flag0 and bm_TGtkBindingSet_parsed) shr
       bp_TGtkBindingSet_parsed
 
-proc set_parsed*(a: var TBindingSet, `parsed`: guint) = 
+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: var TBindingEntry): guint = 
+proc destroyed*(a: PBindingEntry): guint = 
   result = (a.flag0 and bm_TGtkBindingEntry_destroyed) shr
       bp_TGtkBindingEntry_destroyed
 
-proc set_destroyed*(a: var TBindingEntry, `destroyed`: guint) = 
+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: var TBindingEntry): guint = 
+proc in_emission*(a: PBindingEntry): guint = 
   result = (a.flag0 and bm_TGtkBindingEntry_in_emission) shr
       bp_TGtkBindingEntry_in_emission
 
-proc set_in_emission*(a: var TBindingEntry, `in_emission`: guint) = 
+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)
@@ -11728,40 +11719,40 @@ proc IS_BOX_CLASS*(klass: pointer): bool =
 proc BOX_GET_CLASS*(obj: pointer): PBoxClass = 
   result = cast[PBoxClass](CHECK_GET_CLASS(obj, TYPE_BOX()))
 
-proc homogeneous*(a: var TBox): guint = 
+proc homogeneous*(a: PBox): guint = 
   result = (a.Boxflag0 and bm_TGtkBox_homogeneous) shr bp_TGtkBox_homogeneous
 
-proc set_homogeneous*(a: var TBox, `homogeneous`: guint) = 
+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: var TBoxChild): guint = 
+proc expand*(a: PBoxChild): guint = 
   result = (a.flag0 and bm_TGtkBoxChild_expand) shr bp_TGtkBoxChild_expand
 
-proc set_expand*(a: var TBoxChild, `expand`: guint) = 
+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: var TBoxChild): guint = 
+proc fill*(a: PBoxChild): guint = 
   result = (a.flag0 and bm_TGtkBoxChild_fill) shr bp_TGtkBoxChild_fill
 
-proc set_fill*(a: var TBoxChild, `fill`: guint) = 
+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: var TBoxChild): guint = 
+proc pack*(a: PBoxChild): guint = 
   result = (a.flag0 and bm_TGtkBoxChild_pack) shr bp_TGtkBoxChild_pack
 
-proc set_pack*(a: var TBoxChild, `pack`: guint) = 
+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: var TBoxChild): guint = 
+proc is_secondary*(a: PBoxChild): guint = 
   result = (a.flag0 and bm_TGtkBoxChild_is_secondary) shr
       bp_TGtkBoxChild_is_secondary
 
-proc set_is_secondary*(a: var TBoxChild, `is_secondary`: guint) = 
+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)
@@ -11808,72 +11799,72 @@ proc IS_BUTTON_CLASS*(klass: pointer): bool =
 proc BUTTON_GET_CLASS*(obj: pointer): PButtonClass = 
   result = cast[PButtonClass](CHECK_GET_CLASS(obj, TYPE_BUTTON()))
 
-proc constructed*(a: var TButton): guint = 
+proc constructed*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_constructed) shr
       bp_TGtkButton_constructed
 
-proc set_constructed*(a: var TButton, `constructed`: guint) = 
+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: var TButton): guint = 
+proc in_button*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_in_button) shr
       bp_TGtkButton_in_button
 
-proc set_in_button*(a: var TButton, `in_button`: guint) = 
+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: var TButton): guint = 
+proc button_down*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_button_down) shr
       bp_TGtkButton_button_down
 
-proc set_button_down*(a: var TButton, `button_down`: guint) = 
+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: var TButton): guint = 
+proc relief*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_relief) shr bp_TGtkButton_relief
 
-proc set_relief*(a: var TButton, `relief`: guint) = 
+proc set_relief*(a: PButton, `relief`: guint) = 
   a.Buttonflag0 = a.Buttonflag0 or
       (int16(`relief` shl bp_TGtkButton_relief) and bm_TGtkButton_relief)
 
-proc use_underline*(a: var TButton): guint = 
+proc use_underline*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_use_underline) shr
       bp_TGtkButton_use_underline
 
-proc set_use_underline*(a: var TButton, `use_underline`: guint) = 
+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: var TButton): guint = 
+proc use_stock*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_use_stock) shr
       bp_TGtkButton_use_stock
 
-proc set_use_stock*(a: var TButton, `use_stock`: guint) = 
+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: var TButton): guint = 
+proc depressed*(a: PButton): guint = 
   result = (a.Buttonflag0 and bm_TGtkButton_depressed) shr
       bp_TGtkButton_depressed
 
-proc set_depressed*(a: var TButton, `depressed`: guint) = 
+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: var TButton): guint = 
+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: var TButton, `depress_on_activate`: guint) = 
+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)
@@ -11932,47 +11923,47 @@ proc IS_CELL_RENDERER_CLASS*(klass: pointer): bool =
 proc CELL_RENDERER_GET_CLASS*(obj: pointer): PCellRendererClass = 
   result = cast[PCellRendererClass](CHECK_GET_CLASS(obj, TYPE_CELL_RENDERER()))
 
-proc mode*(a: var TCellRenderer): guint = 
+proc mode*(a: PCellRenderer): guint = 
   result = (a.CellRendererflag0 and bm_TGtkCellRenderer_mode) shr
       bp_TGtkCellRenderer_mode
 
-proc set_mode*(a: var TCellRenderer, `mode`: guint) = 
+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: var TCellRenderer): guint = 
+proc visible*(a: PCellRenderer): guint = 
   result = (a.CellRendererflag0 and bm_TGtkCellRenderer_visible) shr
       bp_TGtkCellRenderer_visible
 
-proc set_visible*(a: var TCellRenderer, `visible`: guint) = 
+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: var TCellRenderer): guint = 
+proc is_expander*(a: PCellRenderer): guint = 
   result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expander) shr
       bp_TGtkCellRenderer_is_expander
 
-proc set_is_expander*(a: var TCellRenderer, `is_expander`: guint) = 
+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: var TCellRenderer): guint = 
+proc is_expanded*(a: PCellRenderer): guint = 
   result = (a.CellRendererflag0 and bm_TGtkCellRenderer_is_expanded) shr
       bp_TGtkCellRenderer_is_expanded
 
-proc set_is_expanded*(a: var TCellRenderer, `is_expanded`: guint) = 
+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: var TCellRenderer): guint = 
+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: var TCellRenderer, `cell_background_set`: guint) = 
+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
@@ -11998,97 +11989,97 @@ proc CELL_RENDERER_TEXT_GET_CLASS*(obj: pointer): PCellRendererTextClass =
   result = cast[PCellRendererTextClass](CHECK_GET_CLASS(obj, 
       TYPE_CELL_RENDERER_TEXT()))
 
-proc strikethrough*(a: var TCellRendererText): guint = 
+proc strikethrough*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_strikethrough) shr
       bp_TGtkCellRendererText_strikethrough
 
-proc set_strikethrough*(a: var TCellRendererText, `strikethrough`: guint) = 
+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: var TCellRendererText): guint = 
+proc editable*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable) shr
       bp_TGtkCellRendererText_editable
 
-proc set_editable*(a: var TCellRendererText, `editable`: guint) = 
+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: var TCellRendererText): guint = 
+proc scale_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_scale_set) shr
       bp_TGtkCellRendererText_scale_set
 
-proc set_scale_set*(a: var TCellRendererText, `scale_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc foreground_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and
       bm_TGtkCellRendererText_foreground_set) shr
       bp_TGtkCellRendererText_foreground_set
 
-proc set_foreground_set*(a: var TCellRendererText, `foreground_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc background_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and
       bm_TGtkCellRendererText_background_set) shr
       bp_TGtkCellRendererText_background_set
 
-proc set_background_set*(a: var TCellRendererText, `background_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc underline_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_underline_set) shr
       bp_TGtkCellRendererText_underline_set
 
-proc set_underline_set*(a: var TCellRendererText, `underline_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc rise_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_rise_set) shr
       bp_TGtkCellRendererText_rise_set
 
-proc set_rise_set*(a: var TCellRendererText, `rise_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc strikethrough_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and
       bm_TGtkCellRendererText_strikethrough_set) shr
       bp_TGtkCellRendererText_strikethrough_set
 
-proc set_strikethrough_set*(a: var TCellRendererText, `strikethrough_set`: guint) = 
+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: var TCellRendererText): guint = 
+proc editable_set*(a: PCellRendererText): guint = 
   result = (a.CellRendererTextflag0 and bm_TGtkCellRendererText_editable_set) shr
       bp_TGtkCellRendererText_editable_set
 
-proc set_editable_set*(a: var TCellRendererText, `editable_set`: guint) = 
+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: var TCellRendererText): guint = 
+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: var TCellRendererText, `calc_fixed_height`: guint) = 
+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
@@ -12114,30 +12105,30 @@ proc CELL_RENDERER_TOGGLE_GET_CLASS*(obj: pointer): PCellRendererToggleClass =
   result = cast[PCellRendererToggleClass](CHECK_GET_CLASS(obj, 
       TYPE_CELL_RENDERER_TOGGLE()))
 
-proc active*(a: var TCellRendererToggle): guint = 
+proc active*(a: PCellRendererToggle): guint = 
   result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_active) shr
       bp_TGtkCellRendererToggle_active
 
-proc set_active*(a: var TCellRendererToggle, `active`: guint) = 
+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: var TCellRendererToggle): guint = 
+proc activatable*(a: PCellRendererToggle): guint = 
   result = (a.CellRendererToggleflag0 and
       bm_TGtkCellRendererToggle_activatable) shr
       bp_TGtkCellRendererToggle_activatable
 
-proc set_activatable*(a: var TCellRendererToggle, `activatable`: guint) = 
+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: var TCellRendererToggle): guint = 
+proc radio*(a: PCellRendererToggle): guint = 
   result = (a.CellRendererToggleflag0 and bm_TGtkCellRendererToggle_radio) shr
       bp_TGtkCellRendererToggle_radio
 
-proc set_radio*(a: var TCellRendererToggle, `radio`: guint) = 
+proc set_radio*(a: PCellRendererToggle, `radio`: guint) = 
   a.CellRendererToggleflag0 = a.CellRendererToggleflag0 or
       (int16(`radio` shl bp_TGtkCellRendererToggle_radio) and
       bm_TGtkCellRendererToggle_radio)
@@ -12198,58 +12189,58 @@ proc IS_MENU_ITEM_CLASS*(klass: pointer): bool =
 proc MENU_ITEM_GET_CLASS*(obj: pointer): PMenuItemClass = 
   result = cast[PMenuItemClass](CHECK_GET_CLASS(obj, TYPE_MENU_ITEM()))
 
-proc show_submenu_indicator*(a: var TMenuItem): guint = 
+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: var TMenuItem, 
+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: var TMenuItem): guint = 
+proc submenu_placement*(a: PMenuItem): guint = 
   result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_placement) shr
       bp_TGtkMenuItem_submenu_placement
 
-proc set_submenu_placement*(a: var TMenuItem, `submenu_placement`: guint) = 
+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: var TMenuItem): guint = 
+proc submenu_direction*(a: PMenuItem): guint = 
   result = (a.MenuItemflag0 and bm_TGtkMenuItem_submenu_direction) shr
       bp_TGtkMenuItem_submenu_direction
 
-proc set_submenu_direction*(a: var TMenuItem, `submenu_direction`: guint) = 
+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: var TMenuItem): guint = 
+proc right_justify*(a: PMenuItem): guint = 
   result = (a.MenuItemflag0 and bm_TGtkMenuItem_right_justify) shr
       bp_TGtkMenuItem_right_justify
 
-proc set_right_justify*(a: var TMenuItem, `right_justify`: guint) = 
+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: var TMenuItem): guint = 
+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: var TMenuItem, `timer_from_keypress`: guint) = 
+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: var TMenuItemClass): guint = 
+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: var TMenuItemClass, `hide_on_activate`: guint) = 
+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)
@@ -12275,29 +12266,29 @@ proc IS_TOGGLE_BUTTON_CLASS*(klass: pointer): bool =
 proc TOGGLE_BUTTON_GET_CLASS*(obj: pointer): PToggleButtonClass = 
   result = cast[PToggleButtonClass](CHECK_GET_CLASS(obj, TYPE_TOGGLE_BUTTON()))
 
-proc active*(a: var TToggleButton): guint = 
+proc active*(a: PToggleButton): guint = 
   result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_active) shr
       bp_TGtkToggleButton_active
 
-proc set_active*(a: var TToggleButton, `active`: guint) = 
+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: var TToggleButton): guint = 
+proc draw_indicator*(a: PToggleButton): guint = 
   result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_draw_indicator) shr
       bp_TGtkToggleButton_draw_indicator
 
-proc set_draw_indicator*(a: var TToggleButton, `draw_indicator`: guint) = 
+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: var TToggleButton): guint = 
+proc inconsistent*(a: PToggleButton): guint = 
   result = (a.ToggleButtonflag0 and bm_TGtkToggleButton_inconsistent) shr
       bp_TGtkToggleButton_inconsistent
 
-proc set_inconsistent*(a: var TToggleButton, `inconsistent`: guint) = 
+proc set_inconsistent*(a: PToggleButton, `inconsistent`: guint) = 
   a.ToggleButtonflag0 = a.ToggleButtonflag0 or
       (int16(`inconsistent` shl bp_TGtkToggleButton_inconsistent) and
       bm_TGtkToggleButton_inconsistent)
@@ -12339,29 +12330,29 @@ proc IS_CHECK_MENU_ITEM_CLASS*(klass: pointer): bool =
 proc CHECK_MENU_ITEM_GET_CLASS*(obj: pointer): PCheckMenuItemClass = 
   result = cast[PCheckMenuItemClass](CHECK_GET_CLASS(obj, TYPE_CHECK_MENU_ITEM()))
 
-proc active*(a: var TCheckMenuItem): guint = 
+proc active*(a: PCheckMenuItem): guint = 
   result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_active) shr
       bp_TGtkCheckMenuItem_active
 
-proc set_active*(a: var TCheckMenuItem, `active`: guint) = 
+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: var TCheckMenuItem): guint = 
+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: var TCheckMenuItem, `always_show_toggle`: guint) = 
+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: var TCheckMenuItem): guint = 
+proc inconsistent*(a: PCheckMenuItem): guint = 
   result = (a.CheckMenuItemflag0 and bm_TGtkCheckMenuItem_inconsistent) shr
       bp_TGtkCheckMenuItem_inconsistent
 
-proc set_inconsistent*(a: var TCheckMenuItem, `inconsistent`: guint) = 
+proc set_inconsistent*(a: PCheckMenuItem, `inconsistent`: guint) = 
   a.CheckMenuItemflag0 = a.CheckMenuItemflag0 or
       (int16(`inconsistent` shl bp_TGtkCheckMenuItem_inconsistent) and
       bm_TGtkCheckMenuItem_inconsistent)
@@ -12439,70 +12430,70 @@ when false:
   proc CELL_WIDGET_get*(cell: pointer): PCellWidget = 
     result = cast[PCellWidget](addr((cell)))
 
-proc visible*(a: var TCListColumn): guint = 
+proc visible*(a: PCListColumn): guint = 
   result = (a.flag0 and bm_TGtkCListColumn_visible) shr
       bp_TGtkCListColumn_visible
 
-proc set_visible*(a: var TCListColumn, `visible`: guint) = 
+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: var TCListColumn): guint = 
+proc width_set*(a: PCListColumn): guint = 
   result = (a.flag0 and bm_TGtkCListColumn_width_set) shr
       bp_TGtkCListColumn_width_set
 
-proc set_width_set*(a: var TCListColumn, `width_set`: guint) = 
+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: var TCListColumn): guint = 
+proc resizeable*(a: PCListColumn): guint = 
   result = (a.flag0 and bm_TGtkCListColumn_resizeable) shr
       bp_TGtkCListColumn_resizeable
 
-proc set_resizeable*(a: var TCListColumn, `resizeable`: guint) = 
+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: var TCListColumn): guint = 
+proc auto_resize*(a: PCListColumn): guint = 
   result = (a.flag0 and bm_TGtkCListColumn_auto_resize) shr
       bp_TGtkCListColumn_auto_resize
 
-proc set_auto_resize*(a: var TCListColumn, `auto_resize`: guint) = 
+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: var TCListColumn): guint = 
+proc button_passive*(a: PCListColumn): guint = 
   result = (a.flag0 and bm_TGtkCListColumn_button_passive) shr
       bp_TGtkCListColumn_button_passive
 
-proc set_button_passive*(a: var TCListColumn, `button_passive`: guint) = 
+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: var TCListRow): guint = 
+proc fg_set*(a: PCListRow): guint = 
   result = (a.flag0 and bm_TGtkCListRow_fg_set) shr bp_TGtkCListRow_fg_set
 
-proc set_fg_set*(a: var TCListRow, `fg_set`: guint) = 
+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: var TCListRow): guint = 
+proc bg_set*(a: PCListRow): guint = 
   result = (a.flag0 and bm_TGtkCListRow_bg_set) shr bp_TGtkCListRow_bg_set
 
-proc set_bg_set*(a: var TCListRow, `bg_set`: guint) = 
+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: var TCListRow): guint = 
+proc selectable*(a: PCListRow): guint = 
   result = (a.flag0 and bm_TGtkCListRow_selectable) shr
       bp_TGtkCListRow_selectable
 
-proc set_selectable*(a: var TCListRow, `selectable`: guint) = 
+proc set_selectable*(a: PCListRow, `selectable`: guint) = 
   a.flag0 = a.flag0 or
       (int16(`selectable` shl bp_TGtkCListRow_selectable) and
       bm_TGtkCListRow_selectable)
@@ -12620,47 +12611,47 @@ proc IS_COMBO_CLASS*(klass: pointer): bool =
 proc COMBO_GET_CLASS*(obj: pointer): PComboClass = 
   result = cast[PComboClass](CHECK_GET_CLASS(obj, TYPE_COMBO()))
 
-proc value_in_list*(a: var TCombo): guint = 
+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: var TCombo, `value_in_list`: guint) = 
+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: var TCombo): guint = 
+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: var TCombo, `ok_if_empty`: guint) = 
+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: var TCombo): guint = 
+proc case_sensitive*(a: PCombo): guint = 
   result = (a.Comboflag0 and bm_TGtkCombo_case_sensitive) shr
       bp_TGtkCombo_case_sensitive
 
-proc set_case_sensitive*(a: var TCombo, `case_sensitive`: guint) = 
+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: var TCombo): guint = 
+proc use_arrows*(a: PCombo): guint = 
   result = (a.Comboflag0 and bm_TGtkCombo_use_arrows) shr
       bp_TGtkCombo_use_arrows
 
-proc set_use_arrows*(a: var TCombo, `use_arrows`: guint) = 
+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: var TCombo): guint = 
+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: var TCombo, `use_arrows_always`: guint) = 
+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)
@@ -12701,47 +12692,47 @@ proc CTREE_FUNC*(fun: TAddress): TCTreeFunc =
 proc TYPE_CTREE_NODE*(): GType = 
   result = ctree_node_get_type()
 
-proc line_style*(a: var TCTree): guint = 
+proc line_style*(a: PCTree): guint = 
   result = (a.CTreeflag0 and bm_TGtkCTree_line_style) shr
       bp_TGtkCTree_line_style
 
-proc set_line_style*(a: var TCTree, `line_style`: guint) = 
+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: var TCTree): guint = 
+proc expander_style*(a: PCTree): guint = 
   result = (a.CTreeflag0 and bm_TGtkCTree_expander_style) shr
       bp_TGtkCTree_expander_style
 
-proc set_expander_style*(a: var TCTree, `expander_style`: guint) = 
+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: var TCTree): guint = 
+proc show_stub*(a: PCTree): guint = 
   result = (a.CTreeflag0 and bm_TGtkCTree_show_stub) shr
       bp_TGtkCTree_show_stub
 
-proc set_show_stub*(a: var TCTree, `show_stub`: guint) = 
+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: var TCTreeRow): guint = 
+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: var TCTreeRow, `is_leaf`: guint) = 
+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: var TCTreeRow): guint = 
+proc expanded*(a: PCTreeRow): guint = 
   result = (a.CTreeRow_flag0 and bm_TGtkCTreeRow_expanded) shr
       bp_TGtkCTreeRow_expanded
 
-proc set_expanded*(a: var TCTreeRow, `expanded`: guint) = 
+proc set_expanded*(a: PCTreeRow, `expanded`: guint) = 
   a.CTreeRow_flag0 = a.CTreeRowflag0 or
       (int16(`expanded` shl bp_TGtkCTreeRow_expanded) and
       bm_TGtkCTreeRow_expanded)
@@ -12840,65 +12831,65 @@ proc IS_MENU_SHELL_CLASS*(klass: pointer): bool =
 proc MENU_SHELL_GET_CLASS*(obj: pointer): PMenuShellClass = 
   result = cast[PMenuShellClass](CHECK_GET_CLASS(obj, TYPE_MENU_SHELL()))
 
-proc active*(a: var TMenuShell): guint = 
+proc active*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_active) shr
       bp_TGtkMenuShell_active
 
-proc set_active*(a: var TMenuShell, `active`: guint) = 
+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: var TMenuShell): guint = 
+proc have_grab*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_grab) shr
       bp_TGtkMenuShell_have_grab
 
-proc set_have_grab*(a: var TMenuShell, `have_grab`: guint) = 
+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: var TMenuShell): guint = 
+proc have_xgrab*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_have_xgrab) shr
       bp_TGtkMenuShell_have_xgrab
 
-proc set_have_xgrab*(a: var TMenuShell, `have_xgrab`: guint) = 
+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: var TMenuShell): guint = 
+proc ignore_leave*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_leave) shr
       bp_TGtkMenuShell_ignore_leave
 
-proc set_ignore_leave*(a: var TMenuShell, `ignore_leave`: guint) = 
+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: var TMenuShell): guint = 
+proc menu_flag*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_menu_flag) shr
       bp_TGtkMenuShell_menu_flag
 
-proc set_menu_flag*(a: var TMenuShell, `menu_flag`: guint) = 
+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: var TMenuShell): guint = 
+proc ignore_enter*(a: PMenuShell): guint = 
   result = (a.MenuShellflag0 and bm_TGtkMenuShell_ignore_enter) shr
       bp_TGtkMenuShell_ignore_enter
 
-proc set_ignore_enter*(a: var TMenuShell, `ignore_enter`: guint) = 
+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: var TMenuShellClass): guint = 
+proc submenu_placement*(a: PMenuShellClass): guint = 
   result = (a.MenuShellClassflag0 and bm_TGtkMenuShellClass_submenu_placement) shr
       bp_TGtkMenuShellClass_submenu_placement
 
-proc set_submenu_placement*(a: var TMenuShellClass, `submenu_placement`: guint) = 
+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)
@@ -12921,74 +12912,74 @@ proc IS_MENU_CLASS*(klass: pointer): bool =
 proc MENU_GET_CLASS*(obj: pointer): PMenuClass = 
   result = cast[PMenuClass](CHECK_GET_CLASS(obj, TYPE_MENU()))
 
-proc needs_destruction_ref_count*(a: var TMenu): guint = 
+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: var TMenu, 
+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: var TMenu): guint = 
+proc torn_off*(a: PMenu): guint = 
   result = (a.Menuflag0 and bm_TGtkMenu_torn_off) shr bp_TGtkMenu_torn_off
 
-proc set_torn_off*(a: var TMenu, `torn_off`: guint) = 
+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: var TMenu): guint = 
+proc tearoff_active*(a: PMenu): guint = 
   result = (a.Menuflag0 and bm_TGtkMenu_tearoff_active) shr
       bp_TGtkMenu_tearoff_active
 
-proc set_tearoff_active*(a: var TMenu, `tearoff_active`: guint) = 
+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: var TMenu): guint = 
+proc scroll_fast*(a: PMenu): guint = 
   result = (a.Menuflag0 and bm_TGtkMenu_scroll_fast) shr
       bp_TGtkMenu_scroll_fast
 
-proc set_scroll_fast*(a: var TMenu, `scroll_fast`: guint) = 
+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: var TMenu): guint = 
+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: var TMenu, `upper_arrow_visible`: guint) = 
+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: var TMenu): guint = 
+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: var TMenu, `lower_arrow_visible`: guint) = 
+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: var TMenu): guint = 
+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: var TMenu, `upper_arrow_prelight`: guint) = 
+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: var TMenu): guint = 
+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: var TMenu, `lower_arrow_prelight`: guint) = 
+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)
@@ -13020,110 +13011,110 @@ proc IS_ENTRY_CLASS*(klass: pointer): bool =
 proc ENTRY_GET_CLASS*(obj: pointer): PEntryClass = 
   result = cast[PEntryClass](CHECK_GET_CLASS(obj, TYPE_ENTRY()))
 
-proc editable*(a: var TEntry): guint = 
+proc editable*(a: PEntry): guint = 
   result = (a.Entryflag0 and bm_TGtkEntry_editable) shr bp_TGtkEntry_editable
 
-proc set_editable*(a: var TEntry, `editable`: guint) = 
+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: var TEntry): guint = 
+proc visible*(a: PEntry): guint = 
   result = (a.Entryflag0 and bm_TGtkEntry_visible) shr bp_TGtkEntry_visible
 
-proc set_visible*(a: var TEntry, `visible`: guint) = 
+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: var TEntry): guint = 
+proc overwrite_mode*(a: PEntry): guint = 
   result = (a.Entryflag0 and bm_TGtkEntry_overwrite_mode) shr
       bp_TGtkEntry_overwrite_mode
 
-proc set_overwrite_mode*(a: var TEntry, `overwrite_mode`: guint) = 
+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: var TEntry): guint = 
+proc in_drag*(a: PEntry): guint = 
   result = (a.Entryflag0 and bm_TGtkEntry_in_drag) shr bp_TGtkEntry_in_drag
 
-proc set_in_drag*(a: var TEntry, `in_drag`: guint) = 
+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: var TEntry): guint = 
+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: var TEntry, `cache_includes_preedit`: guint) = 
+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: var TEntry): guint = 
+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: var TEntry, `need_im_reset`: guint) = 
+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: var TEntry): guint = 
+proc has_frame*(a: PEntry): guint = 
   result = (a.flag1 and bm_TGtkEntry_has_frame) shr bp_TGtkEntry_has_frame
 
-proc set_has_frame*(a: var TEntry, `has_frame`: guint) = 
+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: var TEntry): guint = 
+proc activates_default*(a: PEntry): guint = 
   result = (a.flag1 and bm_TGtkEntry_activates_default) shr
       bp_TGtkEntry_activates_default
 
-proc set_activates_default*(a: var TEntry, `activates_default`: guint) = 
+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: var TEntry): guint = 
+proc cursor_visible*(a: PEntry): guint = 
   result = (a.flag1 and bm_TGtkEntry_cursor_visible) shr
       bp_TGtkEntry_cursor_visible
 
-proc set_cursor_visible*(a: var TEntry, `cursor_visible`: guint) = 
+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: var TEntry): guint = 
+proc in_click*(a: PEntry): guint = 
   result = (a.flag1 and bm_TGtkEntry_in_click) shr bp_TGtkEntry_in_click
 
-proc set_in_click*(a: var TEntry, `in_click`: guint) = 
+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: var TEntry): guint = 
+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: var TEntry, `is_cell_renderer`: guint) = 
+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: var TEntry): guint = 
+proc editing_canceled*(a: PEntry): guint = 
   result = (a.flag1 and bm_TGtkEntry_editing_canceled) shr
       bp_TGtkEntry_editing_canceled
 
-proc set_editing_canceled*(a: var TEntry, `editing_canceled`: guint) = 
+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: var TEntry): guint = 
+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: var TEntry, `mouse_cursor_obscured`: guint) = 
+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)
@@ -13259,56 +13250,56 @@ proc IS_HANDLE_BOX_CLASS*(klass: pointer): bool =
 proc HANDLE_BOX_GET_CLASS*(obj: pointer): PHandleBoxClass = 
   result = cast[PHandleBoxClass](CHECK_GET_CLASS(obj, TYPE_HANDLE_BOX()))
 
-proc handle_position*(a: var THandleBox): guint = 
+proc handle_position*(a: PHandleBox): guint = 
   result = (a.HandleBoxflag0 and bm_TGtkHandleBox_handle_position) shr
       bp_TGtkHandleBox_handle_position
 
-proc set_handle_position*(a: var THandleBox, `handle_position`: guint) = 
+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: var THandleBox): guint = 
+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: var THandleBox, `float_window_mapped`: guint) = 
+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: var THandleBox): guint = 
+proc child_detached*(a: PHandleBox): guint = 
   result = (a.HandleBoxflag0 and bm_TGtkHandleBox_child_detached) shr
       bp_TGtkHandleBox_child_detached
 
-proc set_child_detached*(a: var THandleBox, `child_detached`: guint) = 
+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: var THandleBox): guint = 
+proc in_drag*(a: PHandleBox): guint = 
   result = (a.HandleBoxflag0 and bm_TGtkHandleBox_in_drag) shr
       bp_TGtkHandleBox_in_drag
 
-proc set_in_drag*(a: var THandleBox, `in_drag`: guint) = 
+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: var THandleBox): guint = 
+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: var THandleBox, `shrink_on_detach`: guint) = 
+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: var THandleBox): gint = 
+proc snap_edge*(a: PHandleBox): gint = 
   result = (a.HandleBoxflag0 and bm_TGtkHandleBox_snap_edge) shr
       bp_TGtkHandleBox_snap_edge
 
-proc set_snap_edge*(a: var THandleBox, `snap_edge`: gint) = 
+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)
@@ -13331,81 +13322,81 @@ proc IS_PANED_CLASS*(klass: pointer): bool =
 proc PANED_GET_CLASS*(obj: pointer): PPanedClass = 
   result = cast[PPanedClass](CHECK_GET_CLASS(obj, TYPE_PANED()))
 
-proc position_set*(a: var TPaned): guint = 
+proc position_set*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_position_set) shr
       bp_TGtkPaned_position_set
 
-proc set_position_set*(a: var TPaned, `position_set`: guint) = 
+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: var TPaned): guint = 
+proc in_drag*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_in_drag) shr bp_TGtkPaned_in_drag
 
-proc set_in_drag*(a: var TPaned, `in_drag`: guint) = 
+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: var TPaned): guint = 
+proc child1_shrink*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_child1_shrink) shr
       bp_TGtkPaned_child1_shrink
 
-proc set_child1_shrink*(a: var TPaned, `child1_shrink`: guint) = 
+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: var TPaned): guint = 
+proc child1_resize*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_child1_resize) shr
       bp_TGtkPaned_child1_resize
 
-proc set_child1_resize*(a: var TPaned, `child1_resize`: guint) = 
+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: var TPaned): guint = 
+proc child2_shrink*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_child2_shrink) shr
       bp_TGtkPaned_child2_shrink
 
-proc set_child2_shrink*(a: var TPaned, `child2_shrink`: guint) = 
+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: var TPaned): guint = 
+proc child2_resize*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_child2_resize) shr
       bp_TGtkPaned_child2_resize
 
-proc set_child2_resize*(a: var TPaned, `child2_resize`: guint) = 
+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: var TPaned): guint = 
+proc orientation*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_orientation) shr
       bp_TGtkPaned_orientation
 
-proc set_orientation*(a: var TPaned, `orientation`: guint) = 
+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: var TPaned): guint = 
+proc in_recursion*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_in_recursion) shr
       bp_TGtkPaned_in_recursion
 
-proc set_in_recursion*(a: var TPaned, `in_recursion`: guint) = 
+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: var TPaned): guint = 
+proc handle_prelit*(a: PPaned): guint = 
   result = (a.Panedflag0 and bm_TGtkPaned_handle_prelit) shr
       bp_TGtkPaned_handle_prelit
 
-proc set_handle_prelit*(a: var TPaned, `handle_prelit`: guint) = 
+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)
@@ -13524,11 +13515,11 @@ proc IS_RC_STYLE_CLASS*(klass: pointer): bool =
 proc RC_STYLE_GET_CLASS*(obj: pointer): PRcStyleClass = 
   result = cast[PRcStyleClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_RC_STYLE()))
 
-proc engine_specified*(a: var TRcStyle): guint = 
+proc engine_specified*(a: PRcStyle): guint = 
   result = (a.RcStyleflag0 and bm_TGtkRcStyle_engine_specified) shr
       bp_TGtkRcStyle_engine_specified
 
-proc set_engine_specified*(a: var TRcStyle, `engine_specified`: guint) = 
+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)
@@ -13581,90 +13572,90 @@ proc IS_RANGE_CLASS*(klass: pointer): bool =
 proc RANGE_GET_CLASS*(obj: pointer): PRangeClass = 
   result = cast[PRangeClass](CHECK_GET_CLASS(obj, TYPE_RANGE()))
 
-proc inverted*(a: var TRange): guint = 
+proc inverted*(a: PRange): guint = 
   result = (a.Rangeflag0 and bm_TGtkRange_inverted) shr bp_TGtkRange_inverted
 
-proc set_inverted*(a: var TRange, `inverted`: guint) = 
+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: var TRange): guint = 
+proc flippable*(a: PRange): guint = 
   result = (a.Rangeflag0 and bm_TGtkRange_flippable) shr
       bp_TGtkRange_flippable
 
-proc set_flippable*(a: var TRange, `flippable`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `has_stepper_a`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `has_stepper_b`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `has_stepper_c`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `has_stepper_d`: guint) = 
+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: var TRange): guint = 
+proc need_recalc*(a: PRange): guint = 
   result = (a.Rangeflag0 and bm_TGtkRange_need_recalc) shr
       bp_TGtkRange_need_recalc
 
-proc set_need_recalc*(a: var TRange, `need_recalc`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `slider_size_fixed`: guint) = 
+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: var TRange): guint = 
+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: var TRange, `trough_click_forward`: guint) = 
+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: var TRange): guint = 
+proc update_pending*(a: PRange): guint = 
   result = (a.flag1 and bm_TGtkRange_update_pending) shr
       bp_TGtkRange_update_pending
 
-proc set_update_pending*(a: var TRange, `update_pending`: guint) = 
+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)
@@ -13687,20 +13678,20 @@ proc IS_SCALE_CLASS*(klass: pointer): bool =
 proc SCALE_GET_CLASS*(obj: pointer): PScaleClass = 
   result = cast[PScaleClass](CHECK_GET_CLASS(obj, TYPE_SCALE()))
 
-proc draw_value*(a: var TScale): guint = 
+proc draw_value*(a: PScale): guint = 
   result = (a.Scaleflag0 and bm_TGtkScale_draw_value) shr
       bp_TGtkScale_draw_value
 
-proc set_draw_value*(a: var TScale, `draw_value`: guint) = 
+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: var TScale): guint = 
+proc value_pos*(a: PScale): guint = 
   result = (a.Scaleflag0 and bm_TGtkScale_value_pos) shr
       bp_TGtkScale_value_pos
 
-proc set_value_pos*(a: var TScale, `value_pos`: guint) = 
+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)
@@ -13879,11 +13870,11 @@ 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: var TIMContextSimple): guint = 
+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: var TIMContextSimple, `in_hex_sequence`: guint) = 
+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)
@@ -13998,28 +13989,28 @@ proc IS_LIST_CLASS*(klass: pointer): bool =
 proc LIST_GET_CLASS*(obj: pointer): PListClass = 
   result = cast[PListClass](CHECK_GET_CLASS(obj, TYPE_LIST()))
 
-proc selection_mode*(a: var TList): guint = 
+proc selection_mode*(a: PList): guint = 
   result = (a.Listflag0 and bm_TGtkList_selection_mode) shr
       bp_TGtkList_selection_mode
 
-proc set_selection_mode*(a: var TList, `selection_mode`: guint) = 
+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: var TList): guint = 
+proc drag_selection*(a: PList): guint = 
   result = (a.Listflag0 and bm_TGtkList_drag_selection) shr
       bp_TGtkList_drag_selection
 
-proc set_drag_selection*(a: var TList, `drag_selection`: guint) = 
+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: var TList): guint = 
+proc add_mode*(a: PList): guint = 
   result = (a.Listflag0 and bm_TGtkList_add_mode) shr bp_TGtkList_add_mode
 
-proc set_add_mode*(a: var TList, `add_mode`: guint) = 
+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)
 
@@ -14130,11 +14121,11 @@ proc IS_LIST_STORE_CLASS*(klass: pointer): bool =
 proc LIST_STORE_GET_CLASS*(obj: pointer): PListStoreClass = 
   result = cast[PListStoreClass](CHECK_GET_CLASS(obj, TYPE_LIST_STORE()))
 
-proc columns_dirty*(a: var TListStore): guint = 
+proc columns_dirty*(a: PListStore): guint = 
   result = (a.ListStoreflag0 and bm_TGtkListStore_columns_dirty) shr
       bp_TGtkListStore_columns_dirty
 
-proc set_columns_dirty*(a: var TListStore, `columns_dirty`: guint) = 
+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)
@@ -14203,109 +14194,109 @@ proc IS_NOTEBOOK_CLASS*(klass: pointer): bool =
 proc NOTEBOOK_GET_CLASS*(obj: pointer): PNotebookClass = 
   result = cast[PNotebookClass](CHECK_GET_CLASS(obj, TYPE_NOTEBOOK()))
 
-proc show_tabs*(a: var TNotebook): guint = 
+proc show_tabs*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_show_tabs) shr
       bp_TGtkNotebook_show_tabs
 
-proc set_show_tabs*(a: var TNotebook, `show_tabs`: guint) = 
+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: var TNotebook): guint = 
+proc homogeneous*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_homogeneous) shr
       bp_TGtkNotebook_homogeneous
 
-proc set_homogeneous*(a: var TNotebook, `homogeneous`: guint) = 
+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: var TNotebook): guint = 
+proc show_border*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_show_border) shr
       bp_TGtkNotebook_show_border
 
-proc set_show_border*(a: var TNotebook, `show_border`: guint) = 
+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: var TNotebook): guint = 
+proc tab_pos*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_tab_pos) shr
       bp_TGtkNotebook_tab_pos
 
-proc set_tab_pos*(a: var TNotebook, `tab_pos`: guint) = 
+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: var TNotebook): guint = 
+proc scrollable*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_scrollable) shr
       bp_TGtkNotebook_scrollable
 
-proc set_scrollable*(a: var TNotebook, `scrollable`: guint) = 
+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: var TNotebook): guint = 
+proc in_child*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_in_child) shr
       bp_TGtkNotebook_in_child
 
-proc set_in_child*(a: var TNotebook, `in_child`: guint) = 
+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: var TNotebook): guint = 
+proc click_child*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_click_child) shr
       bp_TGtkNotebook_click_child
 
-proc set_click_child*(a: var TNotebook, `click_child`: guint) = 
+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: var TNotebook): guint = 
+proc button*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_button) shr
       bp_TGtkNotebook_button
 
-proc set_button*(a: var TNotebook, `button`: guint) = 
+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: var TNotebook): guint = 
+proc need_timer*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_need_timer) shr
       bp_TGtkNotebook_need_timer
 
-proc set_need_timer*(a: var TNotebook, `need_timer`: guint) = 
+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: var TNotebook): guint = 
+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: var TNotebook, `child_has_focus`: guint) = 
+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: var TNotebook): guint = 
+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: var TNotebook, `have_visible_child`: guint) = 
+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: var TNotebook): guint = 
+proc focus_out*(a: PNotebook): guint = 
   result = (a.Notebookflag0 and bm_TGtkNotebook_focus_out) shr
       bp_TGtkNotebook_focus_out
 
-proc set_focus_out*(a: var TNotebook, `focus_out`: guint) = 
+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)
@@ -14328,29 +14319,29 @@ proc IS_OLD_EDITABLE_CLASS*(klass: pointer): bool =
 proc OLD_EDITABLE_GET_CLASS*(obj: pointer): POldEditableClass = 
   result = cast[POldEditableClass](CHECK_GET_CLASS(obj, TYPE_OLD_EDITABLE()))
 
-proc has_selection*(a: var TOldEditable): guint = 
+proc has_selection*(a: POldEditable): guint = 
   result = (a.OldEditableflag0 and bm_TGtkOldEditable_has_selection) shr
       bp_TGtkOldEditable_has_selection
 
-proc set_has_selection*(a: var TOldEditable, `has_selection`: guint) = 
+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: var TOldEditable): guint = 
+proc editable*(a: POldEditable): guint = 
   result = (a.OldEditableflag0 and bm_TGtkOldEditable_editable) shr
       bp_TGtkOldEditable_editable
 
-proc set_editable*(a: var TOldEditable, `editable`: guint) = 
+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: var TOldEditable): guint = 
+proc visible*(a: POldEditable): guint = 
   result = (a.OldEditableflag0 and bm_TGtkOldEditable_visible) shr
       bp_TGtkOldEditable_visible
 
-proc set_visible*(a: var TOldEditable, `visible`: guint) = 
+proc set_visible*(a: POldEditable, `visible`: guint) = 
   a.OldEditableflag0 = a.OldEditableflag0 or
       (int16(`visible` shl bp_TGtkOldEditable_visible) and
       bm_TGtkOldEditable_visible)
@@ -14391,11 +14382,11 @@ proc IS_PIXMAP_CLASS*(klass: pointer): bool =
 proc PIXMAP_GET_CLASS*(obj: pointer): PPixmapClass = 
   result = cast[PPixmapClass](CHECK_GET_CLASS(obj, gtk2.TYPE_PIXMAP()))
 
-proc build_insensitive*(a: var TPixmap): guint = 
+proc build_insensitive*(a: PPixmap): guint = 
   result = (a.Pixmapflag0 and bm_TGtkPixmap_build_insensitive) shr
       bp_TGtkPixmap_build_insensitive
 
-proc set_build_insensitive*(a: var TPixmap, `build_insensitive`: guint) = 
+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)
@@ -14418,10 +14409,10 @@ proc IS_PLUG_CLASS*(klass: pointer): bool =
 proc PLUG_GET_CLASS*(obj: pointer): PPlugClass = 
   result = cast[PPlugClass](CHECK_GET_CLASS(obj, TYPE_PLUG()))
 
-proc same_app*(a: var TPlug): guint = 
+proc same_app*(a: PPlug): guint = 
   result = (a.Plugflag0 and bm_TGtkPlug_same_app) shr bp_TGtkPlug_same_app
 
-proc set_same_app*(a: var TPlug, `same_app`: guint) = 
+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)
 
@@ -14443,18 +14434,18 @@ proc IS_PREVIEW_CLASS*(klass: pointer): bool =
 proc PREVIEW_GET_CLASS*(obj: pointer): PPreviewClass = 
   result = cast[PPreviewClass](CHECK_GET_CLASS(obj, TYPE_PREVIEW()))
 
-proc get_type*(a: var TPreview): guint = 
+proc get_type*(a: PPreview): guint = 
   result = (a.Previewflag0 and bm_TGtkPreview_type) shr bp_TGtkPreview_type
 
-proc set_type*(a: var TPreview, `type`: guint) = 
+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: var TPreview): guint = 
+proc get_expand*(a: PPreview): guint = 
   result = (a.Previewflag0 and bm_TGtkPreview_expand) shr
       bp_TGtkPreview_expand
 
-proc set_expand*(a: var TPreview, `expand`: guint) = 
+proc set_expand*(a: PPreview, `expand`: guint) = 
   a.Previewflag0 = a.Previewflag0 or
       (int16(`expand` shl bp_TGtkPreview_expand) and bm_TGtkPreview_expand)
 
@@ -14478,29 +14469,29 @@ proc IS_PROGRESS_CLASS*(klass: pointer): bool =
 proc PROGRESS_GET_CLASS*(obj: pointer): PProgressClass = 
   result = cast[PProgressClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS()))
 
-proc show_text*(a: var TProgress): guint = 
+proc show_text*(a: PProgress): guint = 
   result = (a.Progressflag0 and bm_TGtkProgress_show_text) shr
       bp_TGtkProgress_show_text
 
-proc set_show_text*(a: var TProgress, `show_text`: guint) = 
+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: var TProgress): guint = 
+proc activity_mode*(a: PProgress): guint = 
   result = (a.Progressflag0 and bm_TGtkProgress_activity_mode) shr
       bp_TGtkProgress_activity_mode
 
-proc set_activity_mode*(a: var TProgress, `activity_mode`: guint) = 
+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: var TProgress): guint = 
+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: var TProgress, `use_text_format`: guint) = 
+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)
@@ -14523,11 +14514,11 @@ proc IS_PROGRESS_BAR_CLASS*(klass: pointer): bool =
 proc PROGRESS_BAR_GET_CLASS*(obj: pointer): PProgressBarClass = 
   result = cast[PProgressBarClass](CHECK_GET_CLASS(obj, TYPE_PROGRESS_BAR()))
 
-proc activity_dir*(a: var TProgressBar): guint = 
+proc activity_dir*(a: PProgressBar): guint = 
   result = (a.ProgressBarflag0 and bm_TGtkProgressBar_activity_dir) shr
       bp_TGtkProgressBar_activity_dir
 
-proc set_activity_dir*(a: var TProgressBar, `activity_dir`: guint) = 
+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)
@@ -14589,60 +14580,60 @@ proc SCROLLED_WINDOW_GET_CLASS*(obj: pointer): PScrolledWindowClass =
   result = cast[PScrolledWindowClass](CHECK_GET_CLASS(obj, 
       TYPE_SCROLLED_WINDOW()))
 
-proc hscrollbar_policy*(a: var TScrolledWindow): guint = 
+proc hscrollbar_policy*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_hscrollbar_policy) shr
       bp_TGtkScrolledWindow_hscrollbar_policy
 
-proc set_hscrollbar_policy*(a: var TScrolledWindow, `hscrollbar_policy`: guint) = 
+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: var TScrolledWindow): guint = 
+proc vscrollbar_policy*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_vscrollbar_policy) shr
       bp_TGtkScrolledWindow_vscrollbar_policy
 
-proc set_vscrollbar_policy*(a: var TScrolledWindow, `vscrollbar_policy`: guint) = 
+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: var TScrolledWindow): guint = 
+proc hscrollbar_visible*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and
       bm_TGtkScrolledWindow_hscrollbar_visible) shr
       bp_TGtkScrolledWindow_hscrollbar_visible
 
-proc set_hscrollbar_visible*(a: var TScrolledWindow, `hscrollbar_visible`: guint) = 
+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: var TScrolledWindow): guint = 
+proc vscrollbar_visible*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and
       bm_TGtkScrolledWindow_vscrollbar_visible) shr
       bp_TGtkScrolledWindow_vscrollbar_visible
 
-proc set_vscrollbar_visible*(a: var TScrolledWindow, `vscrollbar_visible`: guint) = 
+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: var TScrolledWindow): guint = 
+proc window_placement*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_window_placement) shr
       bp_TGtkScrolledWindow_window_placement
 
-proc set_window_placement*(a: var TScrolledWindow, `window_placement`: guint) = 
+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: var TScrolledWindow): guint = 
+proc focus_out*(a: PScrolledWindow): guint = 
   result = (a.ScrolledWindowflag0 and bm_TGtkScrolledWindow_focus_out) shr
       bp_TGtkScrolledWindow_focus_out
 
-proc set_focus_out*(a: var TScrolledWindow, `focus_out`: guint) = 
+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)
@@ -14743,8 +14734,9 @@ proc signal_handler_pending*(anObject: PObject, signal_id: guint,
 
 proc signal_handler_pending_by_func*(anObject: PObject, signal_id: guint, 
                                      may_be_blocked: gboolean, 
-                                     fun: TSignalFunc, data: gpointer): gboolean = 
-  var t: TGSignalMatchType
+                                     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: 
@@ -14770,20 +14762,20 @@ proc IS_SIZE_GROUP_CLASS*(klass: pointer): bool =
 proc SIZE_GROUP_GET_CLASS*(obj: pointer): PSizeGroupClass = 
   result = cast[PSizeGroupClass](CHECK_GET_CLASS(obj, TYPE_SIZE_GROUP()))
 
-proc have_width*(a: var TSizeGroup): guint = 
+proc have_width*(a: PSizeGroup): guint = 
   result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_width) shr
       bp_TGtkSizeGroup_have_width
 
-proc set_have_width*(a: var TSizeGroup, `have_width`: guint) = 
+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: var TSizeGroup): guint = 
+proc have_height*(a: PSizeGroup): guint = 
   result = (a.SizeGroupflag0 and bm_TGtkSizeGroup_have_height) shr
       bp_TGtkSizeGroup_have_height
 
-proc set_have_height*(a: var TSizeGroup, `have_height`: guint) = 
+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)
@@ -14806,47 +14798,47 @@ proc IS_SOCKET_CLASS*(klass: pointer): bool =
 proc SOCKET_GET_CLASS*(obj: pointer): PSocketClass = 
   result = cast[PSocketClass](CHECK_GET_CLASS(obj, TYPE_SOCKET()))
 
-proc same_app*(a: var TSocket): guint = 
+proc same_app*(a: PSocket): guint = 
   result = (a.Socketflag0 and bm_TGtkSocket_same_app) shr
       bp_TGtkSocket_same_app
 
-proc set_same_app*(a: var TSocket, `same_app`: guint) = 
+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: var TSocket): guint = 
+proc focus_in*(a: PSocket): guint = 
   result = (a.Socketflag0 and bm_TGtkSocket_focus_in) shr
       bp_TGtkSocket_focus_in
 
-proc set_focus_in*(a: var TSocket, `focus_in`: guint) = 
+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: var TSocket): guint = 
+proc have_size*(a: PSocket): guint = 
   result = (a.Socketflag0 and bm_TGtkSocket_have_size) shr
       bp_TGtkSocket_have_size
 
-proc set_have_size*(a: var TSocket, `have_size`: guint) = 
+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: var TSocket): guint = 
+proc need_map*(a: PSocket): guint = 
   result = (a.Socketflag0 and bm_TGtkSocket_need_map) shr
       bp_TGtkSocket_need_map
 
-proc set_need_map*(a: var TSocket, `need_map`: guint) = 
+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: var TSocket): guint = 
+proc is_mapped*(a: PSocket): guint = 
   result = (a.Socketflag0 and bm_TGtkSocket_is_mapped) shr
       bp_TGtkSocket_is_mapped
 
-proc set_is_mapped*(a: var TSocket, `is_mapped`: guint) = 
+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)
@@ -14869,80 +14861,80 @@ proc IS_SPIN_BUTTON_CLASS*(klass: pointer): bool =
 proc SPIN_BUTTON_GET_CLASS*(obj: pointer): PSpinButtonClass = 
   result = cast[PSpinButtonClass](CHECK_GET_CLASS(obj, TYPE_SPIN_BUTTON()))
 
-proc in_child*(a: var TSpinButton): guint = 
+proc in_child*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_in_child) shr
       bp_TGtkSpinButton_in_child
 
-proc set_in_child*(a: var TSpinButton, `in_child`: guint) = 
+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: var TSpinButton): guint = 
+proc click_child*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_click_child) shr
       bp_TGtkSpinButton_click_child
 
-proc set_click_child*(a: var TSpinButton, `click_child`: guint) = 
+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: var TSpinButton): guint = 
+proc button*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_button) shr
       bp_TGtkSpinButton_button
 
-proc set_button*(a: var TSpinButton, `button`: guint) = 
+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: var TSpinButton): guint = 
+proc need_timer*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_need_timer) shr
       bp_TGtkSpinButton_need_timer
 
-proc set_need_timer*(a: var TSpinButton, `need_timer`: guint) = 
+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: var TSpinButton): guint = 
+proc timer_calls*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_timer_calls) shr
       bp_TGtkSpinButton_timer_calls
 
-proc set_timer_calls*(a: var TSpinButton, `timer_calls`: guint) = 
+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: var TSpinButton): guint = 
+proc digits*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_digits) shr
       bp_TGtkSpinButton_digits
 
-proc set_digits*(a: var TSpinButton, `digits`: guint) = 
+proc set_digits*(a: PSpinButton, `digits`: guint) = 
   a.SpinButtonflag0 = a.SpinButtonflag0 or
       ((`digits` shl bp_TGtkSpinButton_digits) and bm_TGtkSpinButton_digits)
 
-proc numeric*(a: var TSpinButton): guint = 
+proc numeric*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_numeric) shr
       bp_TGtkSpinButton_numeric
 
-proc set_numeric*(a: var TSpinButton, `numeric`: guint) = 
+proc set_numeric*(a: PSpinButton, `numeric`: guint) = 
   a.SpinButtonflag0 = a.SpinButtonflag0 or
       ((`numeric` shl bp_TGtkSpinButton_numeric) and
       bm_TGtkSpinButton_numeric)
 
-proc wrap*(a: var TSpinButton): guint = 
+proc wrap*(a: PSpinButton): guint = 
   result = (a.SpinButtonflag0 and bm_TGtkSpinButton_wrap) shr
       bp_TGtkSpinButton_wrap
 
-proc set_wrap*(a: var TSpinButton, `wrap`: guint) = 
+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: var TSpinButton): guint = 
+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: var TSpinButton, `snap_to_ticks`: guint) = 
+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)
@@ -14965,11 +14957,11 @@ proc IS_STATUSBAR_CLASS*(klass: pointer): bool =
 proc STATUSBAR_GET_CLASS*(obj: pointer): PStatusbarClass = 
   result = cast[PStatusbarClass](CHECK_GET_CLASS(obj, TYPE_STATUSBAR()))
 
-proc has_resize_grip*(a: var TStatusbar): guint = 
+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: var TStatusbar, `has_resize_grip`: guint) = 
+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)
@@ -14992,108 +14984,108 @@ proc IS_TABLE_CLASS*(klass: pointer): bool =
 proc TABLE_GET_CLASS*(obj: pointer): PTableClass = 
   result = cast[PTableClass](CHECK_GET_CLASS(obj, gtk2.TYPE_TABLE()))
 
-proc homogeneous*(a: var TTable): guint = 
+proc homogeneous*(a: PTable): guint = 
   result = (a.Tableflag0 and bm_TGtkTable_homogeneous) shr
       bp_TGtkTable_homogeneous
 
-proc set_homogeneous*(a: var TTable, `homogeneous`: guint) = 
+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: var TTableChild): guint = 
+proc xexpand*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_xexpand) shr
       bp_TGtkTableChild_xexpand
 
-proc set_xexpand*(a: var TTableChild, `xexpand`: guint) = 
+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: var TTableChild): guint = 
+proc yexpand*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_yexpand) shr
       bp_TGtkTableChild_yexpand
 
-proc set_yexpand*(a: var TTableChild, `yexpand`: guint) = 
+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: var TTableChild): guint = 
+proc xshrink*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_xshrink) shr
       bp_TGtkTableChild_xshrink
 
-proc set_xshrink*(a: var TTableChild, `xshrink`: guint) = 
+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: var TTableChild): guint = 
+proc yshrink*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_yshrink) shr
       bp_TGtkTableChild_yshrink
 
-proc set_yshrink*(a: var TTableChild, `yshrink`: guint) = 
+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: var TTableChild): guint = 
+proc xfill*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_xfill) shr
       bp_TGtkTableChild_xfill
 
-proc set_xfill*(a: var TTableChild, `xfill`: guint) = 
+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: var TTableChild): guint = 
+proc yfill*(a: PTableChild): guint = 
   result = (a.TableChildflag0 and bm_TGtkTableChild_yfill) shr
       bp_TGtkTableChild_yfill
 
-proc set_yfill*(a: var TTableChild, `yfill`: guint) = 
+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: var TTableRowCol): guint = 
+proc need_expand*(a: PTableRowCol): guint = 
   result = (a.flag0 and bm_TGtkTableRowCol_need_expand) shr
       bp_TGtkTableRowCol_need_expand
 
-proc set_need_expand*(a: var TTableRowCol, `need_expand`: guint) = 
+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: var TTableRowCol): guint = 
+proc need_shrink*(a: PTableRowCol): guint = 
   result = (a.flag0 and bm_TGtkTableRowCol_need_shrink) shr
       bp_TGtkTableRowCol_need_shrink
 
-proc set_need_shrink*(a: var TTableRowCol, `need_shrink`: guint) = 
+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: var TTableRowCol): guint = 
+proc expand*(a: PTableRowCol): guint = 
   result = (a.flag0 and bm_TGtkTableRowCol_expand) shr
       bp_TGtkTableRowCol_expand
 
-proc set_expand*(a: var TTableRowCol, `expand`: guint) = 
+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: var TTableRowCol): guint = 
+proc shrink*(a: PTableRowCol): guint = 
   result = (a.flag0 and bm_TGtkTableRowCol_shrink) shr
       bp_TGtkTableRowCol_shrink
 
-proc set_shrink*(a: var TTableRowCol, `shrink`: guint) = 
+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: var TTableRowCol): guint = 
+proc empty*(a: PTableRowCol): guint = 
   result = (a.flag0 and bm_TGtkTableRowCol_empty) shr
       bp_TGtkTableRowCol_empty
 
-proc set_empty*(a: var TTableRowCol, `empty`: guint) = 
+proc set_empty*(a: PTableRowCol, `empty`: guint) = 
   a.flag0 = a.flag0 or
       (int16(`empty` shl bp_TGtkTableRowCol_empty) and
       bm_TGtkTableRowCol_empty)
@@ -15118,11 +15110,11 @@ proc TEAROFF_MENU_ITEM_GET_CLASS*(obj: pointer): PTearoffMenuItemClass =
   result = cast[PTearoffMenuItemClass](CHECK_GET_CLASS(obj, 
       TYPE_TEAROFF_MENU_ITEM()))
 
-proc torn_off*(a: var TTearoffMenuItem): guint = 
+proc torn_off*(a: PTearoffMenuItem): guint = 
   result = (a.TearoffMenuItemflag0 and bm_TGtkTearoffMenuItem_torn_off) shr
       bp_TGtkTearoffMenuItem_torn_off
 
-proc set_torn_off*(a: var TTearoffMenuItem, `torn_off`: guint) = 
+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)
@@ -15199,366 +15191,366 @@ proc TEXT_TAG_GET_CLASS*(obj: pointer): PTextTagClass =
 proc TYPE_TEXT_ATTRIBUTES*(): GType = 
   result = text_attributes_get_type()
 
-proc bg_color_set*(a: var TTextTag): guint = 
+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: var TTextTag, `bg_color_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `bg_stipple_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `fg_color_set`: guint) = 
+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: var TTextTag): guint = 
+proc scale_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_scale_set) shr
       bp_TGtkTextTag_scale_set
 
-proc set_scale_set*(a: var TTextTag, `scale_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `fg_stipple_set`: guint) = 
+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: var TTextTag): guint = 
+proc justification_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_justification_set) shr
       bp_TGtkTextTag_justification_set
 
-proc set_justification_set*(a: var TTextTag, `justification_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `left_margin_set`: guint) = 
+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: var TTextTag): guint = 
+proc indent_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_indent_set) shr
       bp_TGtkTextTag_indent_set
 
-proc set_indent_set*(a: var TTextTag, `indent_set`: guint) = 
+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: var TTextTag): guint = 
+proc rise_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_rise_set) shr
       bp_TGtkTextTag_rise_set
 
-proc set_rise_set*(a: var TTextTag, `rise_set`: guint) = 
+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: var TTextTag): guint = 
+proc strikethrough_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_strikethrough_set) shr
       bp_TGtkTextTag_strikethrough_set
 
-proc set_strikethrough_set*(a: var TTextTag, `strikethrough_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `right_margin_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, 
+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: var TTextTag): guint = 
+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: var TTextTag, 
+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: var TTextTag): guint = 
+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: var TTextTag, 
+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: var TTextTag): guint = 
+proc tabs_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_tabs_set) shr
       bp_TGtkTextTag_tabs_set
 
-proc set_tabs_set*(a: var TTextTag, `tabs_set`: guint) = 
+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: var TTextTag): guint = 
+proc underline_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_underline_set) shr
       bp_TGtkTextTag_underline_set
 
-proc set_underline_set*(a: var TTextTag, `underline_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `wrap_mode_set`: guint) = 
+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: var TTextTag): guint = 
+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: var TTextTag, `bg_full_height_set`: guint) = 
+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: var TTextTag): guint = 
+proc invisible_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_invisible_set) shr
       bp_TGtkTextTag_invisible_set
 
-proc set_invisible_set*(a: var TTextTag, `invisible_set`: guint) = 
+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: var TTextTag): guint = 
+proc editable_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_editable_set) shr
       bp_TGtkTextTag_editable_set
 
-proc set_editable_set*(a: var TTextTag, `editable_set`: guint) = 
+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: var TTextTag): guint = 
+proc language_set*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_language_set) shr
       bp_TGtkTextTag_language_set
 
-proc set_language_set*(a: var TTextTag, `language_set`: guint) = 
+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: var TTextTag): guint = 
+proc pad1*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_pad1) shr bp_TGtkTextTag_pad1
 
-proc set_pad1*(a: var TTextTag, `pad1`: guint) = 
+proc set_pad1*(a: PTextTag, `pad1`: guint) = 
   a.TextTagflag0 = a.TextTagflag0 or
       ((`pad1` shl bp_TGtkTextTag_pad1) and bm_TGtkTextTag_pad1)
 
-proc pad2*(a: var TTextTag): guint = 
+proc pad2*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_pad2) shr bp_TGtkTextTag_pad2
 
-proc set_pad2*(a: var TTextTag, `pad2`: guint) = 
+proc set_pad2*(a: PTextTag, `pad2`: guint) = 
   a.TextTagflag0 = a.TextTagflag0 or
       ((`pad2` shl bp_TGtkTextTag_pad2) and bm_TGtkTextTag_pad2)
 
-proc pad3*(a: var TTextTag): guint = 
+proc pad3*(a: PTextTag): guint = 
   result = (a.TextTagflag0 and bm_TGtkTextTag_pad3) shr bp_TGtkTextTag_pad3
 
-proc set_pad3*(a: var TTextTag, `pad3`: guint) = 
+proc set_pad3*(a: PTextTag, `pad3`: guint) = 
   a.TextTagflag0 = a.TextTagflag0 or
       ((`pad3` shl bp_TGtkTextTag_pad3) and bm_TGtkTextTag_pad3)
 
-proc underline*(a: var TTextAppearance): guint = 
+proc underline*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_underline) shr
       bp_TGtkTextAppearance_underline
 
-proc set_underline*(a: var TTextAppearance, `underline`: guint) = 
+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: var TTextAppearance): guint = 
+proc strikethrough*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_strikethrough) shr
       bp_TGtkTextAppearance_strikethrough
 
-proc set_strikethrough*(a: var TTextAppearance, `strikethrough`: guint) = 
+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: var TTextAppearance): guint = 
+proc draw_bg*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_draw_bg) shr
       bp_TGtkTextAppearance_draw_bg
 
-proc set_draw_bg*(a: var TTextAppearance, `draw_bg`: guint) = 
+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: var TTextAppearance): guint = 
+proc inside_selection*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_inside_selection) shr
       bp_TGtkTextAppearance_inside_selection
 
-proc set_inside_selection*(a: var TTextAppearance, `inside_selection`: guint) = 
+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: var TTextAppearance): guint = 
+proc is_text*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_is_text) shr
       bp_TGtkTextAppearance_is_text
 
-proc set_is_text*(a: var TTextAppearance, `is_text`: guint) = 
+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: var TTextAppearance): guint = 
+proc pad1*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_pad1) shr
       bp_TGtkTextAppearance_pad1
 
-proc set_pad1*(a: var TTextAppearance, `pad1`: guint) = 
+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: var TTextAppearance): guint = 
+proc pad2*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_pad2) shr
       bp_TGtkTextAppearance_pad2
 
-proc set_pad2*(a: var TTextAppearance, `pad2`: guint) = 
+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: var TTextAppearance): guint = 
+proc pad3*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_pad3) shr
       bp_TGtkTextAppearance_pad3
 
-proc set_pad3*(a: var TTextAppearance, `pad3`: guint) = 
+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: var TTextAppearance): guint = 
+proc pad4*(a: PTextAppearance): guint = 
   result = (a.flag0 and bm_TGtkTextAppearance_pad4) shr
       bp_TGtkTextAppearance_pad4
 
-proc set_pad4*(a: var TTextAppearance, `pad4`: guint) = 
+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: var TTextAttributes): guint = 
+proc invisible*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_invisible) shr
       bp_TGtkTextAttributes_invisible
 
-proc set_invisible*(a: var TTextAttributes, `invisible`: guint) = 
+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: var TTextAttributes): guint = 
+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: var TTextAttributes, `bg_full_height`: guint) = 
+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: var TTextAttributes): guint = 
+proc editable*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_editable) shr
       bp_TGtkTextAttributes_editable
 
-proc set_editable*(a: var TTextAttributes, `editable`: guint) = 
+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: var TTextAttributes): guint = 
+proc realized*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_realized) shr
       bp_TGtkTextAttributes_realized
 
-proc set_realized*(a: var TTextAttributes, `realized`: guint) = 
+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: var TTextAttributes): guint = 
+proc pad1*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_pad1) shr
       bp_TGtkTextAttributes_pad1
 
-proc set_pad1*(a: var TTextAttributes, `pad1`: guint) = 
+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: var TTextAttributes): guint = 
+proc pad2*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_pad2) shr
       bp_TGtkTextAttributes_pad2
 
-proc set_pad2*(a: var TTextAttributes, `pad2`: guint) = 
+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: var TTextAttributes): guint = 
+proc pad3*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_pad3) shr
       bp_TGtkTextAttributes_pad3
 
-proc set_pad3*(a: var TTextAttributes, `pad3`: guint) = 
+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: var TTextAttributes): guint = 
+proc pad4*(a: PTextAttributes): guint = 
   result = (a.flag0 and bm_TGtkTextAttributes_pad4) shr
       bp_TGtkTextAttributes_pad4
 
-proc set_pad4*(a: var TTextAttributes, `pad4`: guint) = 
+proc set_pad4*(a: PTextAttributes, `pad4`: guint) = 
   a.flag0 = a.flag0 or
       (int16(`pad4` shl bp_TGtkTextAttributes_pad4) and
       bm_TGtkTextAttributes_pad4)
@@ -15602,20 +15594,20 @@ proc IS_TEXT_MARK_CLASS*(klass: pointer): bool =
 proc TEXT_MARK_GET_CLASS*(obj: pointer): PTextMarkClass = 
   result = cast[PTextMarkClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_TEXT_MARK()))
 
-proc visible*(a: var TTextMarkBody): guint = 
+proc visible*(a: PTextMarkBody): guint = 
   result = (a.flag0 and bm_TGtkTextMarkBody_visible) shr
       bp_TGtkTextMarkBody_visible
 
-proc set_visible*(a: var TTextMarkBody, `visible`: guint) = 
+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: var TTextMarkBody): guint = 
+proc not_deleteable*(a: PTextMarkBody): guint = 
   result = (a.flag0 and bm_TGtkTextMarkBody_not_deleteable) shr
       bp_TGtkTextMarkBody_not_deleteable
 
-proc set_not_deleteable*(a: var TTextMarkBody, `not_deleteable`: guint) = 
+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)
@@ -15675,11 +15667,11 @@ proc TEXT_BUFFER_GET_CLASS*(obj: pointer): PTextBufferClass =
   result = cast[PTextBufferClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
       TYPE_TEXT_BUFFER()))
 
-proc modified*(a: var TTextBuffer): guint = 
+proc modified*(a: PTextBuffer): guint = 
   result = (a.TextBufferflag0 and bm_TGtkTextBuffer_modified) shr
       bp_TGtkTextBuffer_modified
 
-proc set_modified*(a: var TTextBuffer, `modified`: guint) = 
+proc set_modified*(a: PTextBuffer, `modified`: guint) = 
   a.TextBufferflag0 = a.TextBufferflag0 or
       (int16(`modified` shl bp_TGtkTextBuffer_modified) and
       bm_TGtkTextBuffer_modified)
@@ -15704,38 +15696,38 @@ proc TEXT_LAYOUT_GET_CLASS*(obj: pointer): PTextLayoutClass =
   result = cast[PTextLayoutClass](G_TYPE_INSTANCE_GET_CLASS(obj, 
       TYPE_TEXT_LAYOUT()))
 
-proc cursor_visible*(a: var TTextLayout): guint = 
+proc cursor_visible*(a: PTextLayout): guint = 
   result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_visible) shr
       bp_TGtkTextLayout_cursor_visible
 
-proc set_cursor_visible*(a: var TTextLayout, `cursor_visible`: guint) = 
+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: var TTextLayout): gint = 
+proc cursor_direction*(a: PTextLayout): gint = 
   result = (a.TextLayoutflag0 and bm_TGtkTextLayout_cursor_direction) shr
       bp_TGtkTextLayout_cursor_direction
 
-proc set_cursor_direction*(a: var TTextLayout, `cursor_direction`: gint) = 
+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: var TTextCursorDisplay): guint = 
+proc is_strong*(a: PTextCursorDisplay): guint = 
   result = (a.flag0 and bm_TGtkTextCursorDisplay_is_strong) shr
       bp_TGtkTextCursorDisplay_is_strong
 
-proc set_is_strong*(a: var TTextCursorDisplay, `is_strong`: guint) = 
+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: var TTextCursorDisplay): guint = 
+proc is_weak*(a: PTextCursorDisplay): guint = 
   result = (a.flag0 and bm_TGtkTextCursorDisplay_is_weak) shr
       bp_TGtkTextCursorDisplay_is_weak
 
-proc set_is_weak*(a: var TTextCursorDisplay, `is_weak`: guint) = 
+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)
@@ -15758,77 +15750,77 @@ proc IS_TEXT_VIEW_CLASS*(klass: pointer): bool =
 proc TEXT_VIEW_GET_CLASS*(obj: pointer): PTextViewClass = 
   result = cast[PTextViewClass](CHECK_GET_CLASS(obj, TYPE_TEXT_VIEW()))
 
-proc editable*(a: var TTextView): guint = 
+proc editable*(a: PTextView): guint = 
   result = (a.TextViewflag0 and bm_TGtkTextView_editable) shr
       bp_TGtkTextView_editable
 
-proc set_editable*(a: var TTextView, `editable`: guint) = 
+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: var TTextView): guint = 
+proc overwrite_mode*(a: PTextView): guint = 
   result = (a.TextViewflag0 and bm_TGtkTextView_overwrite_mode) shr
       bp_TGtkTextView_overwrite_mode
 
-proc set_overwrite_mode*(a: var TTextView, `overwrite_mode`: guint) = 
+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: var TTextView): guint = 
+proc cursor_visible*(a: PTextView): guint = 
   result = (a.TextViewflag0 and bm_TGtkTextView_cursor_visible) shr
       bp_TGtkTextView_cursor_visible
 
-proc set_cursor_visible*(a: var TTextView, `cursor_visible`: guint) = 
+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: var TTextView): guint = 
+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: var TTextView, `need_im_reset`: guint) = 
+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: var TTextView): guint = 
+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: var TTextView, `just_selected_element`: guint) = 
+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: var TTextView): guint = 
+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: var TTextView, 
+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: var TTextView): guint = 
+proc onscreen_validated*(a: PTextView): guint = 
   result = (a.TextViewflag0 and bm_TGtkTextView_onscreen_validated) shr
       bp_TGtkTextView_onscreen_validated
 
-proc set_onscreen_validated*(a: var TTextView, `onscreen_validated`: guint) = 
+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: var TTextView): guint = 
+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: var TTextView, `mouse_cursor_obscured`: guint) = 
+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
@@ -15852,20 +15844,20 @@ proc IS_TIPS_QUERY_CLASS*(klass: pointer): bool =
 proc TIPS_QUERY_GET_CLASS*(obj: pointer): PTipsQueryClass = 
   result = cast[PTipsQueryClass](CHECK_GET_CLASS(obj, TYPE_TIPS_QUERY()))
 
-proc emit_always*(a: var TTipsQuery): guint = 
+proc emit_always*(a: PTipsQuery): guint = 
   result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_emit_always) shr
       bp_TGtkTipsQuery_emit_always
 
-proc set_emit_always*(a: var TTipsQuery, `emit_always`: guint) = 
+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: var TTipsQuery): guint = 
+proc in_query*(a: PTipsQuery): guint = 
   result = (a.TipsQueryflag0 and bm_TGtkTipsQuery_in_query) shr
       bp_TGtkTipsQuery_in_query
 
-proc set_in_query*(a: var TTipsQuery, `in_query`: guint) = 
+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)
@@ -15888,36 +15880,36 @@ proc IS_TOOLTIPS_CLASS*(klass: pointer): bool =
 proc TOOLTIPS_GET_CLASS*(obj: pointer): PTooltipsClass = 
   result = cast[PTooltipsClass](CHECK_GET_CLASS(obj, TYPE_TOOLTIPS()))
 
-proc delay*(a: var TTooltips): guint = 
+proc delay*(a: PTooltips): guint = 
   result = (a.Tooltipsflag0 and bm_TGtkTooltips_delay) shr
       bp_TGtkTooltips_delay
 
-proc set_delay*(a: var TTooltips, `delay`: guint) = 
+proc set_delay*(a: PTooltips, `delay`: guint) = 
   a.Tooltipsflag0 = a.Tooltipsflag0 or
       ((`delay` shl bp_TGtkTooltips_delay) and bm_TGtkTooltips_delay)
 
-proc enabled*(a: var TTooltips): guint = 
+proc enabled*(a: PTooltips): guint = 
   result = (a.Tooltipsflag0 and bm_TGtkTooltips_enabled) shr
       bp_TGtkTooltips_enabled
 
-proc set_enabled*(a: var TTooltips, `enabled`: guint) = 
+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: var TTooltips): guint = 
+proc have_grab*(a: PTooltips): guint = 
   result = (a.Tooltipsflag0 and bm_TGtkTooltips_have_grab) shr
       bp_TGtkTooltips_have_grab
 
-proc set_have_grab*(a: var TTooltips, `have_grab`: guint) = 
+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: var TTooltips): guint = 
+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: var TTooltips, `use_sticky_delay`: guint) = 
+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)
@@ -15940,20 +15932,20 @@ proc IS_TOOLBAR_CLASS*(klass: pointer): bool =
 proc TOOLBAR_GET_CLASS*(obj: pointer): PToolbarClass = 
   result = cast[PToolbarClass](CHECK_GET_CLASS(obj, TYPE_TOOLBAR()))
 
-proc style_set*(a: var TToolbar): guint = 
+proc style_set*(a: PToolbar): guint = 
   result = (a.Toolbarflag0 and bm_TGtkToolbar_style_set) shr
       bp_TGtkToolbar_style_set
 
-proc set_style_set*(a: var TToolbar, `style_set`: guint) = 
+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: var TToolbar): guint = 
+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: var TToolbar, `icon_size_set`: guint) = 
+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)
@@ -15985,26 +15977,26 @@ proc TREE_ROOT_TREE*(obj: pointer): PTree =
 proc TREE_SELECTION_OLD*(obj: pointer): PGList = 
   result = (TREE_ROOT_TREE(obj)).selection
 
-proc selection_mode*(a: var TTree): guint = 
+proc selection_mode*(a: PTree): guint = 
   result = (a.Treeflag0 and bm_TGtkTree_selection_mode) shr
       bp_TGtkTree_selection_mode
 
-proc set_selection_mode*(a: var TTree, `selection_mode`: guint) = 
+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: var TTree): guint = 
+proc view_mode*(a: PTree): guint = 
   result = (a.Treeflag0 and bm_TGtkTree_view_mode) shr bp_TGtkTree_view_mode
 
-proc set_view_mode*(a: var TTree, `view_mode`: guint) = 
+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: var TTree): guint = 
+proc view_line*(a: PTree): guint = 
   result = (a.Treeflag0 and bm_TGtkTree_view_line) shr bp_TGtkTree_view_line
 
-proc set_view_line*(a: var TTree, `view_line`: guint) = 
+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)
 
@@ -16057,11 +16049,11 @@ proc TREE_ITEM_GET_CLASS*(obj: pointer): PTreeItemClass =
 proc TREE_ITEM_SUBTREE*(obj: pointer): PWidget = 
   result = (TREE_ITEM(obj)).subtree
 
-proc expanded*(a: var TTreeItem): guint = 
+proc expanded*(a: PTreeItem): guint = 
   result = (a.TreeItemflag0 and bm_TGtkTreeItem_expanded) shr
       bp_TGtkTreeItem_expanded
 
-proc set_expanded*(a: var TTreeItem, `expanded`: guint) = 
+proc set_expanded*(a: PTreeItem, `expanded`: guint) = 
   a.TreeItemflag0 = a.TreeItemflag0 or
       (int16(`expanded` shl bp_TGtkTreeItem_expanded) and
       bm_TGtkTreeItem_expanded)
@@ -16103,11 +16095,11 @@ proc IS_TREE_STORE_CLASS*(klass: pointer): bool =
 proc TREE_STORE_GET_CLASS*(obj: pointer): PTreeStoreClass = 
   result = cast[PTreeStoreClass](CHECK_GET_CLASS(obj, TYPE_TREE_STORE()))
 
-proc columns_dirty*(a: var TTreeStore): guint = 
+proc columns_dirty*(a: PTreeStore): guint = 
   result = (a.TreeStoreflag0 and bm_TGtkTreeStore_columns_dirty) shr
       bp_TGtkTreeStore_columns_dirty
 
-proc set_columns_dirty*(a: var TTreeStore, `columns_dirty`: guint) = 
+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)
@@ -16132,77 +16124,77 @@ proc TREE_VIEW_COLUMN_GET_CLASS*(obj: pointer): PTreeViewColumnClass =
   result = cast[PTreeViewColumnClass](CHECK_GET_CLASS(obj, 
       TYPE_TREE_VIEW_COLUMN()))
 
-proc visible*(a: var TTreeViewColumn): guint = 
+proc visible*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_visible) shr
       bp_TGtkTreeViewColumn_visible
 
-proc set_visible*(a: var TTreeViewColumn, `visible`: guint) = 
+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: var TTreeViewColumn): guint = 
+proc resizable*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_resizable) shr
       bp_TGtkTreeViewColumn_resizable
 
-proc set_resizable*(a: var TTreeViewColumn, `resizable`: guint) = 
+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: var TTreeViewColumn): guint = 
+proc clickable*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_clickable) shr
       bp_TGtkTreeViewColumn_clickable
 
-proc set_clickable*(a: var TTreeViewColumn, `clickable`: guint) = 
+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: var TTreeViewColumn): guint = 
+proc dirty*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_dirty) shr
       bp_TGtkTreeViewColumn_dirty
 
-proc set_dirty*(a: var TTreeViewColumn, `dirty`: guint) = 
+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: var TTreeViewColumn): guint = 
+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: var TTreeViewColumn, 
+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: var TTreeViewColumn): guint = 
+proc maybe_reordered*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_maybe_reordered) shr
       bp_TGtkTreeViewColumn_maybe_reordered
 
-proc set_maybe_reordered*(a: var TTreeViewColumn, `maybe_reordered`: guint) = 
+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: var TTreeViewColumn): guint = 
+proc reorderable*(a: PTreeViewColumn): guint = 
   result = (a.TreeViewColumnflag0 and bm_TGtkTreeViewColumn_reorderable) shr
       bp_TGtkTreeViewColumn_reorderable
 
-proc set_reorderable*(a: var TTreeViewColumn, `reorderable`: guint) = 
+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: var TTreeViewColumn): guint = 
+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: var TTreeViewColumn, `use_resized_width`: guint) = 
+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)
@@ -16283,91 +16275,91 @@ proc DRAW_EXPANDERS*(tree_view: PTreeView): bool =
 proc COLUMN_DRAG_DEAD_MULTIPLIER*(tree_view: PTreeView): int32 = 
   result = 10'i32 * (HEADER_HEIGHT(tree_view))
 
-proc scroll_to_use_align*(a: var TTreeViewPrivate): guint = 
+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: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint = 
+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: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint = 
+proc reorderable*(a: PTreeViewPrivate): guint = 
   result = (a.flag0 and bm_TGtkTreeViewPrivate_reorderable) shr
       bp_TGtkTreeViewPrivate_reorderable
 
-proc set_reorderable*(a: var TTreeViewPrivate, `reorderable`: guint) = 
+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: var TTreeViewPrivate): guint = 
+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: var TTreeViewPrivate, `header_has_focus`: guint) = 
+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: var TTreeViewPrivate): guint = 
+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: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint = 
+proc has_rules*(a: PTreeViewPrivate): guint = 
   result = (a.flag0 and bm_TGtkTreeViewPrivate_has_rules) shr
       bp_TGtkTreeViewPrivate_has_rules
 
-proc set_has_rules*(a: var TTreeViewPrivate, `has_rules`: guint) = 
+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: var TTreeViewPrivate): guint = 
+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: var TTreeViewPrivate, 
+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: var TTreeViewPrivate): guint = 
+proc enable_search*(a: PTreeViewPrivate): guint = 
   result = (a.flag0 and bm_TGtkTreeViewPrivate_enable_search) shr
       bp_TGtkTreeViewPrivate_enable_search
 
-proc set_enable_search*(a: var TTreeViewPrivate, `enable_search`: guint) = 
+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: var TTreeViewPrivate): guint = 
+proc disable_popdown*(a: PTreeViewPrivate): guint = 
   result = (a.flag0 and bm_TGtkTreeViewPrivate_disable_popdown) shr
       bp_TGtkTreeViewPrivate_disable_popdown
 
-proc set_disable_popdown*(a: var TTreeViewPrivate, `disable_popdown`: guint) = 
+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)
diff --git a/lib/wrappers/gtk/libglade2.nim b/lib/wrappers/gtk/libglade2.nim
new file mode 100755
index 000000000..c3ddb111a
--- /dev/null
+++ b/lib/wrappers/gtk/libglade2.nim
@@ -0,0 +1,111 @@
+{.deadCodeElim: on.}
+import 
+  glib2, gtk2
+
+when defined(win32): 
+  const 
+    LibGladeLib = "libglade-2.0-0.dll"
+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*(fname: cstring, root: cstring, domain: cstring): PXML = 
+  result = xml_new(fname, root, domain)
+
+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
new file mode 100755
index 000000000..facdffb38
--- /dev/null
+++ b/lib/wrappers/gtk/pango.nim
@@ -0,0 +1,1157 @@
+{.deadCodeElim: on.}
+import 
+  glib2
+
+when defined(win32): 
+  const 
+    lib* = "libpango-1.0-0.dll"
+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 = - int(rect.y)
+
+proc DESCENT*(rect: TRectangle): int32 = 
+  result = int(rect.y) + int(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()